这是一份关于TLS 1.3(RFC8446)协议的中文翻译文档,旨在帮助国内开发者和安全专家更好地理解和应用最新的加密通信标准。
TLS 1.3 是一种安全的互联网通信协议,旨在为双方提供一个安全通道。它是 RFC5705 和 RFC6066 的更新版,并取代了 RFC5077、RFC5246 和 RFC6961。该版本包括两个主要部分:握手协议和记录协议。其中,握手协议负责验证通信双方的身份、协商加密模式及参数并确定共享密钥;而记录协议则使用由握手协议商定的参数来保护数据传输的安全性。
TLS 1.3 的设计目标是提供一个具备认证(Authentication)、保密(Confidentiality)和完整性(Integrity)属性的安全通道。通过非对称算法或预共享密钥完成身份验证,虽然 TLS 不隐藏传输的数据长度,但终端设备可以通过填充 TLS 记录来掩盖实际数据的大小以提高安全性。
TLS 1.3 并不直接兼容旧版本,不过所有 TLS 版本都包含一个用于在双方支持的情况下协商公共协议版本的机制。因此,尽管它取代了包括 1.2 在内的先前版本,但仍然可以与这些老版进行一定程度上的交互和协作。
对于对称算法的支持方面,TLS 1.3 已经删除所有被认为过时或存在安全问题的选项,并仅保留支持“关联数据认证加密”(AEAD)方式。此外,密码套件的概念也进行了调整,将身份验证、密钥交换机制与记录保护算法(包括密钥长度)、Hash 函数分离。
TLS 1.3 新增了0-RTT模式,在连接建立阶段可以为某些应用节省一次往返时间,但这也牺牲了一定的安全性。静态 RSA 和 Diffie-Hellman 密码套件已被移除;所有基于公钥的密钥交换算法现在都能提供前向安全性。此外,从 ServerHello 之后的所有握手消息都已加密,并且新引入了 EncryptedExtension 消息来确保扩展信息以加密方式传输。
TLS 1.3 还重新设计了密钥导出函数,使密码学家能够通过改进的密钥分离特性更容易地进行分析。基于 HMAC 的提取-扩展密钥导出函数(HKDF)被用作基础组件,并且握手状态机也进行了重大重构以提高一致性和删除冗余消息。
TLS 1.3 主要区别包括:支持的对称算法列表移除了所有过时或存在问题的选项;新增了0-RTT模式;静态 RSA 和 Diffie-Hellman 密码套件已被移除;从 ServerHello 后的所有握手信息都已加密传输;密钥导出函数重新设计并优化,以及进行了重大重构以简化和统一握手状态机。