TLS 1.3 是国际互联网工程任务组(IETF)制定的 TLS 新标准。在过去的五年里,IETF 一直致力于 TLS 1.3 协议的标准制定工作。TLS 用于保护 Web(以及更多其他领域),提供加密并确保每个 HTTPS 网站和 API 的真实性。
最新版本的 TLS —— TLS 1.3 (RFC 8446) 已于昨天发布。这是该协议的第一次重大改革,带来了重大的安全性和性能改进。
TLS 1.3 基于更早的 TLS 1.2,但与 TLS 1.2 也有较大的区别,因为 TLS 1.3 设计的第一个重要目标就是避免之前版本存在的缺陷,主要区别包括:
-
将密钥协商和认证算法从密码包中分离出来
-
移除脆弱和较少使用的命名椭圆曲线支持
-
移除 MD5 和 SHA-224 密码散列函数的支持
-
请求数字签名,即便使用之前的配置
-
集成 HKDF 和半短暂 DH 提议
-
替换使用 PSK 和凭据的恢复
-
支持 1-RTT 握手并初步支持 0-RTT
-
通过在 (EC)DH 密钥协议期间使用临时密钥来保证完善的前向安全性
-
放弃许多不安全或过时特性的支持,包括数据压缩、重新协商、非 AEAD 密码本、静态 RSA 和静态 DH 密钥交换、自定义 DHE 分组、点格式协商、更改密码本规范的协议、UNIX 时间的 Hello 消息,以及长度字段 AD 输入到 AEAD 密码本
-
禁止用于向后兼容性的 SSL 和 RC4 协商
-
集成会话散列的使用
-
弃用记录层版本号和冻结数以改进向后兼容性
-
将一些安全相关的算法细节从附录移动到标准,并将 ClientKeyShare 降级到附录
-
添加带有 Poly1305 消息验证码的 ChaCha20 流加密
-
添加 Ed25519 和 Ed448 数字签名算法
-
添加 x25519 和 x448 密钥交换协议
Cloudflare 也发布了一篇博客对 TLS 1.3 RFC 8446 进行了详细的介绍,我们不妨关注一下。
在 IETF 中,协议又被称为 RFC。TLS 1.0 是 RFC 2246,TLS 1.1 是 RFC 4346,TLS 1.2 是 RFC 5246。现在,TLS 1.3 则为 RFC 8446。RFC 通常按顺序发布,并保留 46 作为 RFC 编号的一部分。
推动制定 TLS 1.3 协议的主要诉求是:
-
减少握手的延迟时间
-
对更多的握手消息进行加密
-
提高应对跨协议攻击的机动性
-
删除遗留下来的旧功能
目前 TLS 1.3 RFC 8446 已正式发布,相信随着采用的增加,新协议将使互联网更快、更安全。