TCP 序列号随机化

TCP 序列号随机化

在最近的一次采访中,我的朋友被问及防火墙的 TCP 序列号随机化功能。采访者提到,我们知道防火墙会随机化 TCP 序列号,但中间的攻击者仍然可以嗅探到线路上的数据包并代表发送者发送它。那么随机化会带来什么呢?

我已经研究过这种针对序列号的攻击RFC 6528但还不能完全掌握这个概念。

我将非常感激帮助我理解这一点。

答案1

我对 Overmind 的回答没有任何异议,这肯定很好地概括了为什么发明了序列号随机化。但我不确定它是否回答了问题按照要求,所以我会尽力这么做。

你说得对。目前,没有什么可以阻止特权 MITM 伪造 TCP 重置,使用有效的 SN - 不管有没有随机的 SN。但特权 MITM 不需要费尽心思通过他的网络干扰您的连接 - 他只需拔掉电缆或更改路由器 ACL。

SN 随机化旨在阻止其他所有人做同样的事情。如果你的 SN 可以被猜出来,任何人可以伪造 TCP 重置,并使连接不同步。如果无法猜测,则需要访问数据流。

答案2

传统上,每个设备都使用定时计数器(如时钟)来选择 ISN,该计数器每 4 微秒递增一次。此计数器在 TCP 启动时初始化,然后其值每 4 微秒增加 1,直到达到可能的最大 32 位值(4Gigs),此时它“回绕”到 0 并恢复递增。每次建立新连接时,都会从此计时器的当前值中获取 ISN。由于以 4 微秒的增量从 0 计数到 4,294,967,295 需要 4 个多小时,因此这实际上确保了每个连接不会与任何先前的连接发生冲突。这种方法的主要问题是它使 ISN 变得可预测。恶意人士可以编写代码来分析 ISN,然后根据先前连接的 ISN 预测后续 TCP 连接的 ISN。由于这代表了安全风险(过去曾被利用),因此防火墙实现现在在其 ISN 选择过程中使用随机数。这样,可预测性就不再是一个问题。

相关内容