Snowflake (軟件)

Snowflake是一款通過中繼數據請求從而突破網絡審查的一套軟件,其中繼節點由網絡未被審查的國家的用戶運行,而受審查國家的用戶可以通過Tor瀏覽器內置的Snowflake客戶端來將Snowflake中繼節點作為代理服務器,從而連接Tor網絡。Snowflake節點可以通過安裝瀏覽器擴展程序、安裝獨立軟件或者瀏覽嵌有Snowflake中繼的網頁來創建。

Snowflake瀏覽器擴展程序

歷史

編輯

2016年1月,Snowflake的第一個版本發布,由前Google工程師兼音樂會鋼琴家Serene英語Serene (pianist)發明[1]。其名字「Snowflake」(雪花)是對數目龐大的ICE協商相關臨時代理服務器的比喻[2]

2019年FirefoxGoogle Chrome的Snowflake擴展程序發布。[2]

2023年2月,一款據稱是Snowflake升級版本的獨立軟件Snowstorm發布。該軟件以Rust語言編寫,由開放技術基金會資助,目前正在beta測試中。[3][4]

運作

編輯
 
  1. 終端用戶向Broker尋求Snowflake代理
  2. Broker找到一個可用的Snowflake代理
  3. Broker回復終端用戶
  4. 終端用戶聯繫該Snowflake代理,使用WebRTC點對點連接
  5. 數據通過橋中繼到Tor網絡

伊朗俄羅斯中國一些國家封鎖Tor網絡,用戶無法通過公開的Tor入口節點連接上,必須通過網橋——未公開的中繼來連接。而審查者會嘗試深度包檢測等手段識別並封鎖網橋[5]

Snowflake系統目前由四個主體構成:

  • 客戶端(Client
  • Broker
  • 代理(Proxy
  • 橋(Bridge

客戶端

編輯

當用戶選擇使用Snowflake網橋時,他們的軟件作為「客戶端」運作[6]

該部分的源代碼位於Snowflake倉庫的「client」目錄下。

Broker

編輯

「客戶端」首先連接到Broker,獲取由志願者運作的可用Snowflake「代理」,該過程使用域前置技術,看起來就像是訪問一個主流網站[7][5]。目前Tor瀏覽器內置的Snowflake網橋以多個使用CDN77的網站作為偽裝域名。

該部分的源代碼位於Snowflake倉庫的「broker」目錄下。

代理

編輯
<iframe src="https://snowflake.torproject.org/embed.html" width="320" height="240" frameborder="0" scrolling="no"></iframe>
— snowflake.torproject.org
在網頁上嵌入Snowflake的HTML代碼,用戶通過一個開關即可運作代理

客戶端通過Broker獲取到Snowflake代理後,直接向代理發起WebRTC連接,此處中間人看到的內容就像是視頻會議應用產生的P2P流量[5]

志願者安裝一個瀏覽器擴展程序或者保持嵌入有Snowflake代碼的標籤頁開啟都會使其計算機變成一個代理[2]。在後者的情況下,志願者只需打開一個網頁內的開關即可使其運作。另外Snowflake代理也可以作為獨立程序運行,比如在Docker容器中運行[7]

Snowflake代理只要網頁或者程序連接到互聯網就會一直運行,如果某運行者的計算機使用動態IP,代理的IP也會隨之變化[1][7]。Snowflake代理以Tor入口的角色運作,而非出口,並不直接訪問用戶需要的網站,因此降低了法律風險[1]。中繼流量會增加志願者計算機的帶寬用量,但一般不會降低做其他事情的網速[1][7]

該部分的源代碼位於Snowflake倉庫的「proxy」目錄下。

志願者運作的「代理」並不直接連接Tor入口節點,而是與Snowflake「橋」通信(目前「橋」有兩個,都位於歐洲),「橋」則負責中轉流量到Tor網絡[8][6]

該部分的源代碼位於Snowflake倉庫的「server」目錄下。

應對措施

編輯

審查者可能使用DTLS指紋識別並封鎖Snowflake,這在俄羅斯曾經發生過。另一種可能的審查方法是安裝並運行Tor瀏覽器,然後封鎖所有其提供的Snowflake代理。這兩種方法在面對大量志願者建立節點的情況下會遇到挑戰。[9][10]

應用

編輯

Snowflake在2022年10月伊朗示威期間被廣泛討論和使用[1],還有人發布了波斯語的使用教程[11][5]

同年,俄羅斯政府增大了對Tor技術和政治上的封鎖力度,結果是該國境內Snowflake網橋的使用人數增加[9][10]

參見

編輯
  • 賽風 - 使用多種反審查技術的翻牆工具
  • 閃現代理 - 與Snowflake原理類似的網橋
  • 球鞋網路 - 在網絡接入受限的國家廣泛使用的技術
  • uProxy - 類似地,由志願者擔當代理節點的瀏覽器擴展程序

參考來源

編輯
  1. ^ 1.0 1.1 1.2 1.3 1.4 Schwarzer, Matthias. Netzsperre im Iran umgehen: Wie "Snowflake" einen Weg ins freie Internet ermöglicht - so kann der Westen helfen. RedaktionsNetzwerk Deutschland英語RedaktionsNetzwerk Deutschland. 2022-09-30 [2022-10-10]. (原始內容存檔於2022-10-10) (德語). 
  2. ^ 2.0 2.1 2.2 Cimpanu, Catalin. Tor Snowflake turns your browser into a proxy for users in censored countries. ZDNet. 2019-10-16 [2023-04-20]. (原始內容存檔於2023-01-16) (英語). 
  3. ^ Binder, Matt. Snowflake helped Tor users thwart Russian censorship. Now the VPN is branching out as Snowstorm.. Mashable. 2023-02-10 [2023-04-20]. (原始內容存檔於2023-06-08). 
  4. ^ Moreno, Johan. As The Internet Freedom Project Expands, Snowflake Becomes Snowstorm. 福布斯. 2023-02-08 [2023-04-20]. (原始內容存檔於2023-04-01). 
  5. ^ 5.0 5.1 5.2 5.3 Quintin, Cooper. Snowflake Makes It Easy For Anyone to Fight Censorship. 電子前哨基金會. 2022-10-04 [2023-04-20]. (原始內容存檔於2022-10-10) (英語). 
  6. ^ 6.0 6.1 Technical Overview. gitlab.torproject.org. 2021-11-04 [2023-04-20]. (原始內容存檔於2023-05-11). 
  7. ^ 7.0 7.1 7.2 7.3 Eikenberg, Ronald. Internetsperren im Iran: So leisten Sie mit Snowflake Unterstützung. c't Magazin (Heise online德語heise online). 2022-09-30 [2023-04-20]. (原始內容存檔於2023-04-14) (德語). 
  8. ^ duncan. New Release: Tor Browser 12.0. Tor Blog. 2022-12-07 [2023-05-14]. (原始內容存檔於2023-05-26). Bug tor-browser-build#40674: Add Secondary Snowflake Bridge 
  9. ^ 9.0 9.1 Tor 项目如何对抗俄罗斯的审查. Solidot. 2022-07-31 [2023-04-20]. (原始內容存檔於2022-10-07). 
  10. ^ 10.0 10.1 Burgess, Matt. How Tor Is Fighting—and Beating—Russian Censorship. 連線. 2022-07-28 [2022-07-30]. (原始內容存檔於2022-08-08). 
  11. ^ Iran: Circumventing Censorship with Tor. Tor Project Forum. 2022-09-22 [2023-04-20]. (原始內容存檔於2023-05-24) (英語). 

外部連結

編輯