首页/网络/协议速查/重协商(1.2)与移除(1.3)

重协商(1.2)与移除(1.3)

TLS 1.2 可在连接内重新协商参数(如换客户端证书),但历史上出现过多起 DoS 与注入漏洞;1.3 直接移除该机制。

协议速查网络更新于 2026-10-13

TLS 重协商的兴衰

TLS 1.2 允许在同一条已建立的连接里重新协商参数,典型用途是中途要求对方提供客户端证书,或把安全强度提升到更高等级。便利的代价是攻击面:历史上出现过重协商风暴耗尽服务器资源,以及握手中毒一类漏洞,安全重协商扩展正是为了修补这些问题。TLS 1.3 直接移除了这项机制,把中途认证改为握手后认证,把密钥更新抽成专门的密钥更新消息。

基本信息

涉及版本TLS 1.2 允许,TLS 1.3 已移除
典型用途中途请求客户端证书、提升安全参数
主要风险资源耗尽型攻击、握手相关的历史漏洞
加固手段使用安全重协商扩展,或直接禁用重协商
1.3 替代握手后认证与密钥更新
识别方式同一连接内出现第二次客户端问候

1.2 与 1.3 对照

能力TLS 1.2TLS 1.3
中途变更参数通过重协商完成不再提供该机制
中途请求客户端证书依赖重协商使用握手后认证
更新密钥通过重协商专门的密钥更新消息
抓包特征同一连接出现第二个问候不会出现该特征

服务端配置示例

服务端配置示例
# 客户端证书校验的策略需要与重协商行为一起考虑
ssl_verify_client optional;
ssl_verify_depth 2;
ssl_protocols TLSv1.2 TLSv1.3;   # 同时保留时注意两者的认证时机差异
# 抓包确认是否存在重协商:同一连接内是否再次出现客户端问候

典型使用场景

  • 协议升级评估:从 1.2 升到 1.3 前确认客户端证书的请求时机变化
  • 老客户端兼容:确认对方是否依赖重协商提交客户端证书
  • 安全加固:核对历史漏洞相关的缓解措施是否仍然有效
  • 抓包分析:判断会话是否发生多次握从而导致延迟
  • 接入链路排障:多层设备都对同一连接提出认证要求时的时序问题
判断是否发生重协商很直观:在抓包结果里看同一条连接内是否出现第二次客户端问候,现代 TLS 1.3 连接不会再有这个现象。如果升级到 1.3 后客户端证书相关的功能失效,方向就在认证时机上,而不是证书本身或密钥配置。

易错点

  • 老客户端依赖重协商提交客户端证书,升级到 1.3 后功能失效,却去排查证书配置
  • 未启用安全重协商相关扩展,把历史漏洞的缓解措施漏掉
  • 把多次握手当成网络抖动,忽略是被反复触发的重协商
  • 只看协议版本不看实际握手时序,误判链路各环节的责任
  • 在性能敏感场景保留会高频触发重新协商的配置,带来额外延迟

数据来源与参考

  • RFC 5746(安全重协商)
  • RFC 8446 附录 D

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌