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的反審查工具有phantomsocksGhosTCPINTANGGeneva百科GoodbyeDPI百科等。