蓝盟IT小贴士,来喽!
在TCP复位攻击中,攻击者通过向通信中的一方或两方发送伪造消息来立即断开连接,并断开通信双方的连接。 通常,如果客户端发现到达的消息段对于相关连接不正确,则TCP发送复位消息段,从而导致TCP连接的快速分解。
TCP复位攻击利用该机制,通过向通信对方发送伪造的复位消息,欺骗通信对方,尽早关闭TCP连接。 在伪造的复位消息段完全真实的情况下,接收机认为它是有效的,并关闭TCP连接,以使得连接不用于进一步信息交换。 服务器可以创建新的TCP连接来恢复通信,但是连接可能会被攻击者复位。 幸运的是,由于攻击者将伪造的消息组装并发送很长时间,因此该攻击通常仅在长连接上具有杀伤力,而短连接上还没有攻击,因此人已经完成了信息交换。
在某种意义上,伪造TCP消息段是很容易的。 因为TCP/IP没有用于验证服务器方面的身份的嵌入方法。 一些特殊的IP扩展协议,如IPSec,确实可以认证,但并没有被广泛使用。 客户端仅接收消息段,并尽可能使用高级协议(如TLS )来验证服务端身份。 但是,此方法不适用于TCP复位分组。 因为TCP复位包是TCP协议本身的一部分,所以无法使用更高级别的协议来验证。
容易伪造TCP消息段,而不容易伪造正确的TCP复位消息段来完成攻击。 为了理解这项工作的困难性,首先需要理解TCP协议的结构。
因为网络不可信,所以将数据包重建成字节流并不容易。 TCP分组有可能被丢弃,有可能不按发送顺序到达客户端,有可能被重复发送,或者消息被破坏。 因此,TCP协议的作用是在不可靠的网络上提供可靠的通信。 TCP可以请求连接的双方密切联系、连续地报告哪些数据接收到并实现可靠的通信,由此服务方可以估计客户端还没有接收到的数据并重发丢失的数据。
要进一步理解这一过程,需要理解服务器和客户端如何使用序列号来标记和跟踪数据。
文/上海蓝盟 IT外包专家