摘要

  • TCP 保留随时间推进的分量,同时加入由秘密密钥和连接四元组决定的偏移。
  • 这种设计阻碍路径外预测,但不认证通信双方的身份。 如果服务器的下一个初始序列号可以由刚刚观察到的数值推算,攻击者即使看不到受害连接,也可能伪造它。RFC 1948 描述的盲目欺骗正利用了这段空隙:攻击者先测量目标的序列号变化,再冒用另一个源地址发送 SYN,并猜出确认不可见回复所需的数字。

修复方案没有丢掉 TCP 用于区分连接不同轮次的计时推进,而是改变了不同连接之间可以相互透露什么。起始值变为 M + F(四元组, 秘密)。即使公开的计时分量有规律,不同的源地址、目的地址、源端口或目的端口也会得到一个依赖秘密的偏移;不知道该秘密的外部观察者不应能够计算它。

RFC 6528 把这一思路写入 Standards Track 规范,RFC 9293 又将其纳入现行 TCP 规范。线上的报文格式没有增加字段;控制点位于端系统内部,即它如何选择写入 SYN 的 32 位数字。