【问题标题】:SYN Cookie Network Server SecuritySYN Cookie 网络服务器安全
【发布时间】:2012-05-21 02:33:33
【问题描述】:
如果我的服务器实现了 SYN Cookie 来避免 DoS 攻击,但攻击者知道服务器使用了 SYN Cookie,他们是否有可能通过发送 ACK 来创建半开/全开连接?
我知道 SYN Cookie 使用一种算法来创建唯一的初始连接,如果攻击者握手不完整,则 SYN 会被丢弃,并且只能通过接收有效的 SYN-ACK 来重新创建。
但是攻击者还能以某种方式管理吗?
【问题讨论】:
标签:
security
networking
cookies
【解决方案1】:
不,攻击者不应该知道 SYN 初始序列值是什么来完成 TCP 3 次握手。此外,任何 tcp 端口在使用 SYN Cookie 时都不可能处于半开状态。答案植根于密码学。
SYN Cookies 的实现可以使用Symmetric Cipher 来生成序列ID。例如,当机器启动时,它将生成一个随机密钥,用于所有 TCP 序列 ID。当机器收到并传入 SYN 数据包到一个开放端口时,它将通过加密服务器的 IP 地址、客户端的 IP 地址和正在使用的端口号生成一个序列 ID。服务器不需要跟踪它发出的 SYN 初始序列 ID,因此它没有每个客户端的状态,并且这种“半开”tcp 套接字的想法并不真正适用(at-至少在 DoS 方面)。现在,当客户端发回它的 SYN-ACK 数据包时,它需要包含 SYN 初始序列 ID。当服务器在 SYN-ACK 数据包中从客户端获取此初始序列 ID 时,它可以通过加密服务器的 IP 地址、客户端的 IP 地址和正在使用的端口号来反向工作。