“恶意”用户使用欺骗 IP 发送具有最大序列号的 TCP 数据包

网络工程 通讯协议
2021-07-22 12:06:34

在以下情况下会发生什么?

有一个服务器。

  1. 用户 A 与服务器通信。
  2. 用户B(恶意)知道用户A的IP地址。他发送写入了用户A IP的TCP数据包,序列号为4294967295(最大32位值)。

它会改变/中断与服务器上用户 A 的连接状态吗?

1个回答

很可能序列号在连接的有效窗口之外,并且简单地被接收器丢弃。

如果它恰好在窗口内,则接收方会将其视为来自 A 的有效数据。 TCP 是不安全且未经身份验证的。通过足够的尝试将其放入窗口并不难。

您可以并且应该通过在 TCP 流之上运行诸如 TLS 之类的身份验证协议来“修复”此问题,或者仅使用经过身份验证的传输方式(如 QUIC),其中在不知道 A 的密钥材料的情况下永远不会接受数据包。