TLS 1.2 vs TLS 1.3 对比

发布时间:2026/9/5 7:50:29
TLS 1.2 vs TLS 1.3 对比 TLS 1.2 vs TLS 1.3 对比一、核心设计理念变化维度TLS 1.2TLS 1.3密码套件数量300IANA 注册了 300 多个仅 5 个RFC 8446 定义密钥交换RSA、DH、DHE、ECDH、ECDHE5种仅 ECDHE / DHE强制前向保密认证方式写在套件名里RSA/ECDSA由证书决定套件名不再包含认证算法加密模式CBC、GCM、CCM、Stream仅 AEADGCM/CCM/ChaCha20-Poly1305哈希算法MD5、SHA-1、SHA-256、SHA-384仅 SHA-256 / SHA-384密钥派生自定义 PRF拼接哈希迭代HKDFRFC 5869 标准完整握手 RTT2-RTT1-RTT会话恢复 RTT1-RTTSession Ticket / Session ID0-RTTEarly Data前向保密可选用 ECDHE/DHE 才有强制二、密码套件对比TLS 1.3 密码套件仅 5 个RFC 8446套件名对称加密模式哈希状态TLS_AES_256_GCM_SHA384AES-256GCMSHA-384强制推荐TLS_AES_128_GCM_SHA256AES-128GCMSHA-256强制推荐TLS_CHACHA20_POLY1305_SHA256ChaCha20Poly1305SHA-256推荐移动/低功耗TLS_AES_128_CCM_SHA256AES-128CCMSHA-256可选IoT/受限设备TLS_AES_128_CCM_8_SHA256AES-128CCM-8SHA-256可选极低功耗 IoT命名规则变化TLS 1.3 套件名 TLS_加密算法_模式_哈希不再包含密钥交换和认证算法——因为 1.3 只支持 ECDHE/DHE 密钥交换认证由证书签名算法单独协商。TLS 1.2 常见密码套件对比用套件名密钥交换认证加密模式哈希TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384ECDHERSAAES-256GCMSHA-384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256ECDHEECDSAAES-128GCMSHA-256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256ECDHERSAChaCha20Poly1305SHA-256TLS_DHE_RSA_WITH_AES_256_GCM_SHA384DHERSAAES-256GCMSHA-384TLS_RSA_WITH_AES_256_CBC_SHA256RSARSAAES-256CBCSHA-256TLS_RSA_WITH_AES_128_CBC_SHARSARSAAES-128CBCSHA-1TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256ECDHERSAAES-128CBCSHA-256TLS_RSA_WITH_3DES_EDE_CBC_SHARSARSA3DESCBCSHA-1TLS 1.2 有超过 300 个注册套件包含大量已被攻破的算法RC4、Export、匿名 DH 等。三、TLS 1.3 新增的算法/机制1. 新增密钥交换组Named GroupsTLS 1.3 支持的组RFC 8446 RFC 8734组类型安全强度说明secp256r1(P-256)ECDHE128位最常用NIST 标准secp384r1(P-384)ECDHE192位高安全secp521r1(P-521)ECDHE256位极高安全X25519ECDHE128位1.3 新增主推Curve25519高性能恒定时间X448ECDHE224位1.3 新增Curve448高安全ffdhe2048DHE112位有限域 DH2048位ffdhe3072DHE128位有限域 DH3072位ffdhe4096DHE152位有限域 DH4096位X25519MLKEM768混合128位抗量子后量子混合组RFC 9180 / draftX25519 Kyber-768X25519/X448 在 TLS 1.2 中通过 RFC 8422 扩展支持但在 TLS 1.3 中成为默认推荐组性能和安全性优于 P-256。2. 新增签名算法证书签名算法说明TLS 1.2TLS 1.3rsa_pkcs1_sha256/384/512RSA PKCS#1 v1.5支持支持但推荐 PSSrsa_pss_sha256/384/512RSA-PSS扩展支持 主推ecdsa_secp256r1_sha256ECDSA P-256支持支持ecdsa_secp384r1_sha384ECDSA P-384支持支持ecdsa_secp521r1_sha512ECDSA P-521支持支持ed25519EdDSA Curve25519不支持支持新增RFC 8420ed448EdDSA Curve448不支持支持新增TLS 1.3 支持的签名算法signature_algorithms 扩展TLS 1.3移除了rsa_pkcs1_sha1、rsa_pkcs1_md5_sha1、ecdsa_sha1 等弱哈希签名。3. 新增 HKDF 密钥派生TLS 1.2TLS 1.3密钥派生自定义 PRFPRF(secret, label, seed) P_hash(secret, label seed)HKDFRFC 5869Extract Expand两阶段密钥分离主密钥 → 多个子密钥客户端写密钥/服务器写密钥/IV/MAC密钥更清晰的密钥调度early_secrethandshake_secretmaster_secret每阶段独立派生哈希灵活性PRF 哈希在套件中固定HKDF 哈希在套件中指定SHA-256/SHA-3844. 新增 ChaCha20-Poly1305 为标准套件虽然 ChaCha20-Poly1305 在 TLS 1.2 中通过 RFC 7905 扩展支持但在 TLS 1.3 中成为三个强制推荐套件之一特别适合移动设备和低功耗 IoT比 AES-GCM 在没有 AES 硬件加速的设备上快 3 倍。四、TLS 1.3 移除的算法/机制被移除的算法清单被移除项原因攻击/漏洞RSA 密钥交换无前向保密服务器私钥泄露可解密历史流量—静态 ECDH无前向保密—CBC 模式多个 padding oracle 攻击BEAST、Lucky13、POODLE3DES64位块大小生日攻击SWEET32RC4多个密码分析攻击Fluhrer-Mantin-Shamir、Barak-MaitraMD5碰撞攻击—SHA-1签名/PRF碰撞攻击SHAtteredExport 套件故意弱化的 40位/56位加密FREAK、Logjam匿名 DHADH/AECDH无认证易受中间人—压缩CRIME/BREACH 攻击CRIME、BREACH、TIME自定义 PRF非标准实现易出错—重协商Renegotiation协议复杂度高多个漏洞Renegotiation AttackRSA PKCS#1 v1.5 加密Bleichenbacher 攻击ROBOTDSSDSA签名弱算法已被 NIST 弃用—密码套件数量对比TLS 1.2: 300 注册套件其中大量已不安全 TLS 1.3: 5 个套件全部安全全部 AEAD全部前向保密五、握手流程对比TLS 1.2 完整握手2-RTT客户端 服务端 │ │ │── ClientHello ─────────────────────→ │ (支持的套件、压缩、扩展) │ │ │←── ServerHello ───────────────────── │ (选中套件) │←── Certificate ───────────────────── │ (服务器证书) │←── ServerKeyExchange ─────────────── │ (DHE/ECDHE 参数RSA密钥交换时无) │←── ServerHelloDone ───────────────── │ │ │ │── ClientKeyExchange ───────────────→ │ (预主密钥RSA加密 / DH参数) │── ChangeCipherSpec ────────────────→ │ │── Finished ─────────────────────────→ │ (加密) │ │ │←── ChangeCipherSpec ───────────────── │ │←── Finished ───────────────────────── │ (加密) │ │ │═══ 应用数据 ═════════════════════════ │TLS 1.3 完整握手1-RTT客户端 服务端 │ │ │── ClientHello ─────────────────────→ │ (key_share: 客户端ECDHE公钥) │ (supported_groups, signature_algos) │ │ │ │←── ServerHello ───────────────────── │ (key_share: 服务端ECDHE公钥) │←── EncryptedExtensions ───────────── │ (加密ALPN、版本等) │←── Certificate ───────────────────── │ (加密) │←── CertificateVerify ─────────────── │ (加密证书签名) │←── Finished ──────────────────────── │ (加密) │ │ │── Finished ─────────────────────────→ │ (加密) │ │ │═══ 应用数据 ═════════════════════════ │关键变化ServerHello 之后所有消息都加密1.2 中 Certificate 等是明文密钥交换参数在 ClientHello/ServerHello 的 key_share 扩展中直接携带不需要单独的 ServerKeyExchange移除了 ChangeCipherSpec兼容模式下仍发送但被忽略1-RTT 即可开始传输应用数据六、安全特性对比总结安全特性TLS 1.2TLS 1.3前向保密PFS可选需选 ECDHE/DHE 套件强制加密握手消息仅 Finished 后加密ServerHello 后全部加密弱算法包含 RC4/3DES/CBC/MD5/SHA-1全部移除重协商支持有漏洞移除压缩支持CRIME 漏洞移除0-RTT不支持支持需重放保护密钥派生自定义 PRFHKDF 标准降级攻击防护弱TLS_FALLBACK_SCSV 扩展强版本协商在扩展中downgrade protection后量子密码不支持支持混合组X25519MLKEM768证书透明度可选更易集成握手加密