2012-05-13 128 views
5

如果我的服務器執行SYN Cookies以避免DoS攻擊,但攻擊者知道服務器使用SYN Cookie,那麼他們可能僅通過發送ACK就可以創建半/完全打開的連接?SYN Cookie網絡服務器安全

我知道SYN Cookie使用一種算法來創建唯一的初始連接,如果攻擊者握手不完整,SYN將被丟棄,並且只能通過接收有效的SYN-ACK來重新創建。

但是攻擊者是否還能以某種方式管理?

回答

1

沒有,它不應有可能爲攻擊者知道SYN初始序列值是爲了完成TCP 3向握手的。此外,當使用SYN Cookie時,任何TCP端口都不可能處於半開狀態。答案根源於密碼學。

SYN Cookies的實現可以使用Symmetric Cipher來生成序列ID。例如,當機器啓動時,它將生成一個隨機密鑰,用於所有TCP序列號。當機器接收並傳入SYN數據包到開放端口時,它將通過加密服務器的IP地址,客戶端的IP地址和正在使用的端口號來生成序列ID。服務器不需要跟蹤它發出的SYN初始序列id,所以它沒有每個客戶端的狀態,這個「半開」的tcp套接字的想法並不適用(at-至少在DoS方面)。現在,當客戶端發回其SYN-ACK數據包時,它需要包含SYN初始序列ID。當服務器從SYN-ACK數據包中獲取客戶端的初始序列號時,它可以通過加密服務器的IP地址,客戶端的IP地址和正在使用的端口號來反向工作。