首页/安全/加密与证书速查/TLS 重协商与安全缓解
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条
证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

TLS 重协商与安全缓解

TLS 1.2 允许握手完成后重新协商参数(含客户端发起);历史上出现过前缀注入类问题,现代实现默认启用 RFC 5746 安全重协商,TLS 1.3 则彻底取消了重协商。

加密与证书速查安全更新于 2026-10-12
TLS 1.2支持重协商;OpenSSL 1.0.1+ 默认启用 RFC 5746 安全重协商标记
TLS 1.3无重协商概念,改用 KeyUpdate 与握手后认证
风险面客户端发起的重协商带来 CPU 放大与历史注入类问题
缓解升级 OpenSSL 与服务端软件,协议收敛到 1.2 以上

确认运行库与协议配置

确认运行库与协议配置
openssl version
nginx -V 2>&1 | grep -o 'OpenSSL [0-9.]*[a-z]*'
# 服务端配置建议
# ssl_protocols TLSv1.2 TLSv1.3;
少数老旧设备依赖重协商(例如在已建立连接上再做客户端证书认证的应用),升级到 TLS 1.3 前先验证这些流程。

易错点

  • 认为禁用 TLS 1.0/1.1 就自动禁用了重协商(1.2 仍支持,依赖实现的安全默认)
  • 忽略依赖重协商的旧客户端,升级后出现偶发握手失败

数据来源与参考

  • RFC 5746(重协商指示扩展)
  • RFC 8446 §1.2(与 1.2 的差异)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌