|课后作业 TCP 复位攻击的原理

本文正在参与 “网络协议必知必会”征文活动


TCP 协议是网络体系结构传输层中提供面向连接的传输协议。

TCP 协议的特点:

  • TCP是面向连接的传输层协议
  • 每条TCP连接只能有两个端点,每条TCP连接只能是点对点的(一对一)
  • 提供可靠的交付服务,保证传送的数据无差错、不丢失、不重复且有序
  • 提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据
  • 面向字节流的
  • TCP报文的长度则根据接收方给出的窗口值和当前网络拥塞程度来决定

TCP 协议主要标志:

  1. ACK:此标志确认标志;有两个取值:0和1;
  2. RST:这个标志表示连接复位请求。用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包;
  3. SYN:表示同步序号,用来建立连接。

建立连接(3次握手)

TCP三次握手时序图.png

  1. 客户机的 T C P TCP 首先向服务器的 T C P TCP 发送连接请求报文段。
  2. 服务器的 T C P TCP 收到连接请求报文段后,如同意连接,则向客户机发回确认,并为该 T C P TCP 连接分配缓存和变量
  3. 当客户机收到确认报文段后,还要向服务器给出确认,并为该TCP连接分配缓存和变量。

注:服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的,第三次握手报文段才可以携带数据


关闭连接(四次挥手)

TCP四次挥手时序图

  1. 客户机打算关闭连接时,向其 T C P TCP 发送连接释放报文段,并停止发送数据,主动关闭 T C P TCP 连接。发送端不能再发送数据,但对方还可以发送数据。
  2. 服务器收到连接释放报文段后即发出确认
  3. 若服务器已没有要向客户机发送的数据,就通知 T C P TCP 释放连接,此时其发出连接释放报文段
  4. 客户机收到连接释放报文段后,必须发出确认。必须经过时间等待计时器设置的时间2MSL(最长报文段寿命)后,客户机才进入连接关闭状态。

RST 复位攻击

RST 复位攻击就是利用TCP 的Rst标志实现的。即客户端 A 和 服务端 B 之间建立了 TCP 连接。此时 客户端 C 伪造了一个 客户端 A 的 TCP 数据包发给服务器 B,使服务器 B 误认为与客户端 A 之间的连接状态异常,执行复位操作,断开了与客户端 A 之间的 TCP 连接,这就是 RST 复位攻击了。

猜你喜欢

转载自juejin.im/post/7034512422132154376