
我處於不可靠的 ISP/AS 下,例如 GFW。他們積極嘗試透過發送SYN RST
到已建立的連線、使連線逾時、幹擾握手等攻擊來破壞 TCP+TLS 會話。
網路堆疊中是否有實用程式可以找出伺服器是否受到此類服務品質攻擊?
例如,要偵測SYN RST
來自客戶端/伺服器以外的其他人的訊號,我們可以比較客戶端和伺服器的 tcpdump 來確定訊號是否來自第 3 方。我們可以手動執行此操作或編寫腳本。但是,有現成的工具嗎?可以p0f
用在這個嗎?
答案1
原則,指紋可以偵測到攻擊。但您可能已經注意到,這通常是機率性的方法,在這種情況下,您無法確定任何單一資料包是否是良性的,或者是否是偽造的以可靠地阻止它。
最好查看 TTL 等元資料字段,對於真正的資料包,該字段可能會低於偽造的資料包,因為它經過了更多路由器,每個路由器都會遞減計數器。如果資料包的 TTL 與先前在連線中觀察到的資料顯著不同,則丟棄該資料包是有意義的。這可能可以使用 iptables connmark match/CONNMARK 目標規則(將新連接的 TTL 記錄到連接標記並檢查後續資料包)來實現。
您可能知道俄羅斯的許多網路資源都被封鎖。阻止的技術有所不同,但其中之一就是完全按照您告訴我們的操作 — 如果 ТСПУ 設備(代表“технические средства противодействия它可以發送TCP RST。它不會阻塞(或至少沒有阻塞)後續的正常資料包,所以如果如果你有辦法偵測並消除RST封包,你就可以自由地使用「被封鎖」的資源。有一個網站專門介紹規避審查制度的方法,ntc黨(我與它沒有任何關係)。特別是社區的活躍成員之一,瓦爾迪克SS,做了一個軟體再見DPI哪個能夠來規避這種阻塞。它似乎也使用了提到的 TTL 洞察力。他還列出了其他具有類似功能的軟體。
另外我想具體解決一下標題中的問題。網路安全協定包裝整個IP封包(包括TCP)或僅其有效負載,並使用電子簽名對其進行身份驗證,因此無法使用您描述的方法進行篡改。您不需要加密資料包,IPsecah
標頭僅新增(並檢查)MAC,否則以明文形式呈現。或者您可以使用esp
標頭進行加密。
不幸的是,當您連接到任意「匿名」服務時,您不能依賴於此,因為要啟用 IPsec,您需要與相關方共用金鑰事先的使用該技術。