Kai*_*ran 6 security cookies networking
如果我的服务器实现SYN Cookies以避免DoS攻击,但攻击者知道服务器使用SYN Cookie,他们是否可以通过发送ACK来创建半/全开连接?
我知道SYN Cookies使用算法来创建唯一的初始连接,如果攻击者握手不完整,则SYN被丢弃,只能通过接收有效的SYN-ACK来重新创建.
但攻击者还能以某种方式管理吗?
不,攻击者不可能知道 SYN 初始序列值是什么来完成 TCP 3 路握手。此外,任何 tcp 端口在使用 SYN Cookie 时都不可能处于半开放状态。答案植根于密码学。
SYN Cookie的实现可以使用对称密码来生成序列 ID。例如,当机器启动时,它将生成一个随机密钥,用于所有 TCP 序列 ID。当机器接收到开放端口的传入 SYN 数据包时,它将通过加密服务器的 IP 地址、客户端的 IP 地址和正在使用的端口号来生成序列 ID。服务器不需要跟踪它发出的 SYN 初始序列 id,因此它没有每个客户端的状态,并且这种“半打开”tcp 套接字的想法并不真正适用(at-至少在 DoS 方面)。现在,当客户端发回 SYN-ACK 数据包时,它需要包含 SYN 初始序列 ID。当服务器在 SYN-ACK 数据包中从客户端获取此初始序列 ID 时,它可以通过加密服务器的 IP 地址、客户端的 IP 地址和正在使用的端口号来向后工作。