摘要
- 当两个端点仍保留有效的 TCP-AO 连接状态时,TCP-AO 可以认证重置报文。
- 对端重启后,无法验证的重置会被丢弃;残留连接必须依靠存活检测或应用恢复来清理。
重启制造了不对称的状态
在故障发生前,两端都掌握 TCP 连接、初始序列号以及该连接所需的流量密钥。因此,处于同一安全上下文中的重置可以通过认证。
路由器重启后,可能仍记得要与邻居使用 TCP-AO,却已经丢失那条具体连接的状态。RFC 5925 说明:如果不知道初始序列号对,例如重启后发送重置时,重置应当不带认证。要求使用 TCP-AO 的接收端无法验证该报文,只能丢弃它。
于是,一端认为连接已经不存在,另一端却仍保存着旧连接;后者没有得到能够接受的证明。
为什么不能接受这个诚实的重置
如果把未认证重置当作恢复例外,攻击者也能伪造同样的报文并终止受保护会话。接收端无法仅凭报文判断发送者是重启后的诚实对端,还是伪造者。
代价是清理速度变慢。存活的一端可能继续保存过时状态,直到自己的存活机制确认连接不再推进。RFC 5925 建议使用 TCP 或应用层 keepalive,并要求实现检测并清除过量的 TCP 连接状态,以保护内存。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
