ssl 协议全称安全套接层协议,是早期应用在客户端和服务器之间的加密通信协议,主要作用就是在网络传输过程中对数据加密,防止数据在公网传输的时候被窃听篡改冒充,我们平时访问网页看到地址栏 https,底层最早就是依靠 ssl 协议实现,现在大家学习的时候经常会听到 tls,tls 是 ssl 协议升级迭代之后的新版本,ssl 协议版本比较老,现在已经不再推荐使用,主流系统浏览器都逐步淘汰旧 ssl 版本,生产环境统一改用 tls,很多教材仍然保留 ssl 协议这个叫法,习惯把整套这套加密体系统称为 ssl,ssl 协议工作在传输层和应用层之间,属于中间层协议,能够对 http ftp 这类上层应用协议做加密封装,完成身份认证,密钥协商,数据加密,完整性校验这几项核心能力,本篇深度讲解 ssl 协议定义,工作原理,握手流程,版本演进,安全风险,适合计算机网络课程学习。
ssl 协议核心功能
身份认证 通过数字证书确认服务器真实身份,防止访问到假冒网站,客户端可以校验证书是否由可信 CA 机构签发
数据加密 通信双方协商出会话密钥,后续传输的数据全部加密,中间人就算抓到数据包,也无法直接读出明文内容
完整性校验 增加校验机制,判断传输的数据有没有中途被修改,如果数据包被篡改,通信会直接报错终止
ssl 协议版本演进表格
| 版本 | 发布时间特点 | 当前状态 |
|---|---|---|
| SSL 1.0 | 内部测试版本,没有对外正式发布 | 已经废弃 |
| SSL 2.0 | 早期正式版本,存在多处安全漏洞 | 淘汰禁用 |
| SSL 3.0 | 改进版本,依然存在已知漏洞,比如 POODLE 攻击 | 主流浏览器服务器全部禁用 |
| TLS 1.0 | ssl3.0 升级,属于第一代 tls | 逐步淘汰 |
| TLS 1.1 | 继续优化加密套件 | 逐步淘汰 |
| TLS 1.2 | 目前广泛稳定使用版本 | 主流推荐 |
| TLS 1.3 | 新版优化,简化握手,安全性更高 | 新平台优先启用 |
ssl 协议握手深度流程
第一步 客户端发送 hello 报文,告知服务器自己支持的 ssl 协议版本,加密套件列表,随机数
第二步 服务器返回 hello 报文,选定协议版本和加密套件,同时发送数字证书,生成服务器随机数
第三步 客户端校验证书,确认证书合法有效,生成预主密钥,用服务器公钥加密之后发给服务器
第四步 双方利用三个随机数计算生成会话密钥,后续通信都使用这个对称会话密钥加密数据
第五步 双方发送 finished 消息,握手完成,正式开始加密数据传输
ssl 协议工作特点说明
ssl 协议属于独立于上层业务的通用安全层,上层协议不需要大改动,只要套上 ssl 协议就可以获得加密能力,所以 http 加上 ssl 协议之后就变成 https,ftp 加上 ssl 协议就是 ftps
ssl 协议同时结合非对称加密和对称加密,握手阶段使用非对称加密安全协商密钥,正式传数据使用对称加密,兼顾安全性和传输速度,这是它设计上很经典的思路
旧版 ssl 协议的主要问题是加密算法老旧,存在多种公开漏洞,容易被中间人攻击降级攻击,所以现在不建议继续开启 ssl2.0 ssl3.0,很多服务器如果还保留旧 ssl 协议支持,会被安全扫描判定高危风险
理解 ssl 协议的学习步骤
第一步 区分概念,明白 ssl 协议是老协议,tls 是它的继任者,很多文档里面 ssl 是统称
第二步 掌握三大核心能力,身份认证 加密传输 防篡改
第三步 理解握手流程,明白为什么要同时使用非对称加密和对称加密
第四步 了解证书 CA 的作用,知道证书是 ssl 协议身份认证的核心载体
第五步 对照版本演进,清楚 ssl3.0 已经废弃,现在主流是 tls1.2 和 tls1.3
第六步 了解 https 和 ssl 协议关系,知道 https 等于 http 加 ssl 或者 tls 加密层
整体总结,ssl 协议是早期安全套接层加密通信协议,核心解决公网传输窃听篡改身份伪造问题,通过证书认证和密钥协商建立加密通道,它的后续升级版本就是 tls,旧版 ssl 协议因为安全漏洞已经淘汰,但是很多教材和运维习惯仍然沿用 ssl 协议这个名称,日常所说 https 底层加密,现在实际运行基本都是 tls 协议,学习的时候不要把 ssl 协议和 tls 完全割裂,要理解二者的传承关系。
【常见问题】
问题 1 ssl 协议是指什么,它和 https 是什么关系
回答 1 ssl 协议是指安全套接层加密协议,https 就是 http 协议叠加 ssl 协议加密层,把明文 http 传输改成加密传输,这是 ssl 协议最典型的应用场景。
问题 2 ssl 协议是指什么,ssl 协议现在还可以继续使用吗
回答 1 ssl 协议是指早期加密协议,旧版 ssl2.0 和 ssl3.0 存在已知安全漏洞,现在已经不推荐启用 ssl 协议,生产环境优先使用升级后的 tls 协议。
问题 3 ssl 协议是指什么,ssl 协议依靠什么验证服务器身份
回答 1 ssl 协议是指安全套接层协议,ssl 协议通过数字证书完成服务器身份校验,证书由 CA 机构签发,这是 ssl 协议身份认证的核心机制。
问题 4 ssl 协议是指什么,ssl 协议握手的作用是什么
回答 1 ssl 协议是指安全套接层协议,ssl 协议握手阶段主要完成版本协商,加密套件选择,证书校验与会话密钥生成,为后续加密传输建立通道。
【免责申明】
本文内容仅作为计算机网络基础知识学习参考,协议标准会随安全规范更新,部署加密服务请参考最新 RFC 标准与安全加固规范,不要继续启用存在漏洞的旧版 ssl 协议。


