附录 E. 向后兼容性
本附录讨论了 TLS 1.2 与早期版本(SSL 3.0、TLS 1.0、TLS 1.1)之间的向后兼容性注意事项。
E.1. 与 TLS 1.0/1.1 的差异
TLS 1.2 相对于 TLS 1.1 的主要变化:
- PRF 基于 SHA-256,而不是 MD5/SHA-1 组合。
- 增加了对 AES 密码套件和 SHA-256 的支持。
- 移除了 IDEA 和 DES 密码套件。
- 握手消息中要求
signature_algorithms扩展。 - 对
Finished消息的 MAC 使用协商的哈希算法。
E.2. 与 SSL 3.0 的互操作
TLS 1.2 实现可能支持与 SSL 3.0 对等方的协商,但强烈建议避免使用 SSL 3.0,因其存在已知漏洞(如 POODLE)。
E.3. 版本回退攻击
攻击者可能尝试将连接降级到较早版本。实现必须在检测到意外版本回退时中止握手。客户端和服务器应当优先使用 TLS 1.2。
E.4. 填充预言攻击
针对 CBC 模式密码的填充预言攻击(如 [CBCATT])说明了正确实现填充处理的重要性。TLS 1.2 通过在加密前计算 MAC 并使用显式 IV 来缓解此类攻击。
E.5. 兼容性建议
- 实现应当默认启用 TLS 1.2。
- 仅在必要时才启用旧版本,并避免使用不安全的密码套件。
- 应当实现
renegotiation_info扩展以防范重协商攻击。
注意:本译文由 AI 翻译,可能包含错误。请参考 RFC 5246 官方英文原文进行核对。