Desync
TCB脫同步(英語:TCB desync)是一種規避深度包檢測的方法。該方法首次在Zhongjie Wang等人的論文Your state is not mine: a closer look at evading stateful internet censorship中提出。其中「TCB」指的是TCP控制塊(TCP Control Block),即網絡設備記錄連接狀態的數據結構。
技術原理
編輯要了解desync的工作原理,首先要簡單了解GFW是如何檢測並封禁網站的。
當我們訪問使用HTTPS協議的網站時,通信傳輸的信息(包括但不限於域名等)全部經過非對稱加密,以防止通信過程被監聽和篡改。但為了幫助單IP多站點的服務器實現HTTPS通信(通常通過反向代理服務器檢測域名實現),TLS握手時會發送SNI信息(可以理解為域名),而加密型SNI(如ESNI和ECH)尚未普及,且GFW會直接對此採取TCP RST阻斷措施,所以目前SNI都是明文形式。於是,GFW就可以方便地檢測TLS握手識別你所訪問的網站,進而通過黑名單機制採取措施(通常為TCP重置攻擊)。
desync軟件之一Phantomsocks利用WinDivert(Windows)、Pcap、RawSocket(Linux)等修改TCP幀,偽造部分幀參數。修改後的TCP幀不合常理,會使大部分防火牆的審查功能紊亂,無法正常跟蹤TCP連接狀態,從而不能進行SNI等檢測,進而也就不會發出RST阻斷連接。
當然,這一手段也存在局限性:
- 由於是對TCP連接進行的干預,無法對UDP協議等提供保護;
- TCP幀被偽造後,部分開啟嚴格管控模式的網站服務器也會拒絕用戶的請求;
- 你的訪問日誌仍可能被記錄,並通過人工審核等方式監控。
實現
編輯目前,實現desync的反審查工具有phantomsocks、GhosTCP、INTANG、Geneva(百科)、GoodbyeDPI(百科)等。