1. 分类
| 协议/版本 | 发布年份 | 状态 | 主要特点 | 安全性 / 特点说明 | ServerHelloDone |
|---|---|---|---|---|---|
| SSL 1.0 | 1994 | 废弃 | 内部版本,未公开 | 未公开使用,无安全性 | ❌ 无 |
| SSL 2.0 | 1995 | 废弃 | 第一个公开 SSL | 无消息认证,弱加密,易受中间人攻击 | ❌ 无 |
| SSL 3.0 | 1996 | 废弃 | 修复部分 SSL2.0 问题,增加 MAC | 存在 POODLE 攻击风险 | ✅ 有 |
| TLS 1.0 | 1999 | 弃用 | 基于 SSL3.0,增加安全散列算法 | 容易受 BEAST 攻击 | ✅ 有 |
| TLS 1.1 | 2006 | 弃用 | 增加 IV 随机化 | 缓解部分攻击,但仍有局限 | ✅ 有 |
| TLS 1.2 | 2008 | 主流 | 支持 SHA-256、AEAD 加密(GCM)、灵活密钥交换 | 安全性好,广泛使用 | ✅ 有 |
| TLS 1.3 | 2018 | 新主流 | 简化握手,减少 RTT,0-RTT 支持 | 去掉不安全算法,性能更好 | ❌ 无 |
2. 流程
1️⃣ 客户端验证服务器 2️⃣ 双方协商会话密钥 3️⃣ 使用会话密钥加密通信
TLS 版本区别三要素
会话密钥协商方式 & 加密套件
- TLS 1.0~1.2:支持 RSA、DH、ECDH 等多种方式
- RSA:不安全,前向保密差
- 临时 DH/ECDH:提供前向保密
- TLS 1.3:只用临时 DH/ECDH,强制前向保密
- 加密套件从多选变为简化 AEAD(TLS1.3),安全性更高
握手流程优化
- TLS 1.2 及以前:2 RTT(往返)完成握手
- TLS 1.3:1 RTT 就能完成握手,支持 0-RTT 数据传输
安全性增强
- 弃用弱算法(RC4、MD5、SHA-1)
- 强制使用安全算法(AES-GCM、ChaCha20-Poly1305 等 AEAD)
- 前向保密(PFS)默认启用,防止服务器密钥泄露影响历史通信
| 名称 | 作用 | 例子 | 备注 |
|---|---|---|---|
| 会话密钥协商方式(Key Exchange) | 客户端和服务端如何协商出对称会话密钥,决定前向保密 | RSA, DH, DHE, ECDH, ECDHE, PSK | TLS 1.3 去掉纯 RSA,只保留安全方式 |
| 加密套件(Cipher Suite) | TLS 协议中定义的一组加密和认证算法组合 | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | 包含“密钥协商方式 + 对称加密算法 + 完整性认证/AEAD” |
| 加密算法(Encryption Algorithm) | 用于加密数据的具体算法 | AES, Camellia, SEED, ChaCha20 | 对称加密算法(Bulk Cipher),套件里指定 |