TLS 1.2 vs TLS 1.3 对比
2026/9/5 7:49:52 网站建设 项目流程

TLS 1.2 vs TLS 1.3 对比

一、核心设计理念变化

维度

TLS 1.2

TLS 1.3

密码套件数量

300+(IANA 注册了 300 多个)

仅 5 个(RFC 8446 定义)

密钥交换

RSA、DH、DHE、ECDH、ECDHE(5种)

仅 ECDHE / DHE(强制前向保密)

认证方式

写在套件名里(RSA/ECDSA)

由证书决定,套件名不再包含认证算法

加密模式

CBC、GCM、CCM、Stream

仅 AEAD

(GCM/CCM/ChaCha20-Poly1305)

哈希算法

MD5、SHA-1、SHA-256、SHA-384

仅 SHA-256 / SHA-384

密钥派生

自定义 PRF(拼接+哈希迭代)

HKDF(RFC 5869 标准)

完整握手 RTT

2-RTT

1-RTT

会话恢复 RTT

1-RTT(Session Ticket / Session ID)

0-RTT(Early Data)

前向保密

可选(用 ECDHE/DHE 才有)

强制

二、密码套件对比

TLS 1.3 密码套件(仅 5 个,RFC 8446)

套件名

对称加密

模式

哈希

状态

TLS_AES_256_GCM_SHA384

AES-256

GCM

SHA-384

强制推荐

TLS_AES_128_GCM_SHA256

AES-128

GCM

SHA-256

强制推荐

TLS_CHACHA20_POLY1305_SHA256

ChaCha20

Poly1305

SHA-256

推荐(移动/低功耗)

TLS_AES_128_CCM_SHA256

AES-128

CCM

SHA-256

可选(IoT/受限设备)

TLS_AES_128_CCM_8_SHA256

AES-128

CCM-8

SHA-256

可选(极低功耗 IoT)

命名规则变化:TLS 1.3 套件名 = TLS_<加密算法>_<模式>_<哈希>,不再包含密钥交换和认证算法——因为 1.3 只支持 ECDHE/DHE 密钥交换,认证由证书签名算法单独协商。

TLS 1.2 常见密码套件(对比用)

套件名

密钥交换

认证

加密

模式

哈希

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

ECDHE

RSA

AES-256

GCM

SHA-384

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

ECDHE

ECDSA

AES-128

GCM

SHA-256

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

ECDHE

RSA

ChaCha20

Poly1305

SHA-256

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

DHE

RSA

AES-256

GCM

SHA-384

TLS_RSA_WITH_AES_256_CBC_SHA256

RSA

RSA

AES-256

CBC

SHA-256

TLS_RSA_WITH_AES_128_CBC_SHA

RSA

RSA

AES-128

CBC

SHA-1

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

ECDHE

RSA

AES-128

CBC

SHA-256

TLS_RSA_WITH_3DES_EDE_CBC_SHA

RSA

RSA

3DES

CBC

SHA-1

TLS 1.2 有超过 300 个注册套件,包含大量已被攻破的算法(RC4、Export、匿名 DH 等)。

三、TLS 1.3 新增的算法/机制

1. 新增密钥交换组(Named Groups)

TLS 1.3 支持的组(RFC 8446 + RFC 8734):

类型

安全强度

说明

secp256r1(P-256)

ECDHE

128位

最常用,NIST 标准

secp384r1(P-384)

ECDHE

192位

高安全

secp521r1(P-521)

ECDHE

256位

极高安全

X25519

ECDHE

128位

1.3 新增主推,Curve25519,高性能恒定时间

X448

ECDHE

224位

1.3 新增,Curve448,高安全

ffdhe2048

DHE

112位

有限域 DH,2048位

ffdhe3072

DHE

128位

有限域 DH,3072位

ffdhe4096

DHE

152位

有限域 DH,4096位

X25519MLKEM768

混合

128位+抗量子

后量子混合组(RFC 9180 / draft),X25519 + Kyber-768

X25519/X448 在 TLS 1.2 中通过 RFC 8422 扩展支持,但在 TLS 1.3 中成为默认推荐组,性能和安全性优于 P-256。

2. 新增签名算法(证书签名)

算法

说明

TLS 1.2

TLS 1.3

rsa_pkcs1_sha256/384/512

RSA PKCS#1 v1.5

支持

支持(但推荐 PSS)

rsa_pss_sha256/384/512

RSA-PSS

扩展

支持 主推

ecdsa_secp256r1_sha256

ECDSA P-256

支持

支持

ecdsa_secp384r1_sha384

ECDSA P-384

支持

支持

ecdsa_secp521r1_sha512

ECDSA P-521

支持

支持

ed25519

EdDSA Curve25519

不支持

支持新增(RFC 8420)

ed448

EdDSA Curve448

不支持

支持新增

TLS 1.3 支持的签名算法(signature_algorithms 扩展):
TLS 1.3移除了rsa_pkcs1_sha1、rsa_pkcs1_md5_sha1、ecdsa_sha1 等弱哈希签名。

3. 新增 HKDF 密钥派生

TLS 1.2

TLS 1.3

密钥派生

自定义 PRF:PRF(secret, label, seed) = P_hash(secret, label + seed)

HKDF(RFC 5869):Extract + Expand两阶段

密钥分离

主密钥 → 多个子密钥(客户端写密钥/服务器写密钥/IV/MAC密钥)

更清晰的密钥调度:early_secret

handshake_secret

master_secret,每阶段独立派生

哈希灵活性

PRF 哈希在套件中固定

HKDF 哈希在套件中指定(SHA-256/SHA-384)

4. 新增 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、POODLE

3DES

64位块大小,生日攻击

SWEET32

RC4

多个密码分析攻击

Fluhrer-Mantin-Shamir、Barak-Maitra

MD5

碰撞攻击

SHA-1(签名/PRF)

碰撞攻击

SHAttered

Export 套件

故意弱化的 40位/56位加密

FREAK、Logjam

匿名 DH(ADH/AECDH)

无认证,易受中间人

压缩

CRIME/BREACH 攻击

CRIME、BREACH、TIME

自定义 PRF

非标准,实现易出错

重协商(Renegotiation)

协议复杂度高,多个漏洞

Renegotiation Attack

RSA PKCS#1 v1.5 加密

Bleichenbacher 攻击

ROBOT

DSS(DSA)签名

弱算法,已被 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 ─────────────────────────→ │ (加密!) │ │ │═══ 应用数据 ═════════════════════════ │
关键变化
  1. ServerHello 之后所有消息都加密(1.2 中 Certificate 等是明文)
  2. 密钥交换参数在 ClientHello/ServerHello 的 key_share 扩展中直接携带,不需要单独的 ServerKeyExchange
  3. 移除了 ChangeCipherSpec(兼容模式下仍发送但被忽略)
  4. 1-RTT 即可开始传输应用数据

六、安全特性对比总结

安全特性

TLS 1.2

TLS 1.3

前向保密(PFS)

可选(需选 ECDHE/DHE 套件)

强制

加密握手消息

仅 Finished 后加密

ServerHello 后全部加密

弱算法

包含 RC4/3DES/CBC/MD5/SHA-1

全部移除

重协商

支持(有漏洞)

移除

压缩

支持(CRIME 漏洞)

移除

0-RTT

不支持

支持(需重放保护)

密钥派生

自定义 PRF

HKDF 标准

降级攻击防护

弱(TLS_FALLBACK_SCSV 扩展)

强(版本协商在扩展中,downgrade protection)

后量子密码

不支持

支持混合组(X25519MLKEM768)

证书透明度

可选

更易集成(握手加密)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询