Snowflake (軟件)
Snowflake是一款通過中繼數據請求從而突破網絡審查的一套軟件,其代理由網絡未被審查的國家的用戶執行,而受審查國家的用戶可以通過Tor瀏覽器內建的Snowflake客戶端來通過Snowflake代理連接網橋、從而連接Tor網絡。Snowflake代理可以通過安裝瀏覽器擴充程式、安裝獨立軟件或者瀏覽嵌有Snowflake中繼的網頁來建立。
歷史
編輯2016年1月,Snowflake的第一個版本發佈,由前Google工程師兼音樂會鋼琴家Serene發明[1]。其名字「Snowflake」(雪花)是對數目龐大的ICE協商相關臨時代理伺服器的比喻[2]。
2019年Firefox和Google Chrome的Snowflake擴充程式發佈。[2]
2023年2月,一款據稱是Snowflake升級版本的獨立軟件Snowstorm發佈。該軟件以Rust語言編寫,由開放技術基金會資助,目前正在beta測試中。[3][4]
運作
編輯像伊朗、俄羅斯和中國一些國家封鎖Tor網絡,用戶無法通過公開的Tor入口節點連接上,必須通過網橋——未公開的中繼來連接。而審查者會嘗試深度包檢測等手段辨識並封鎖網橋[5] 。
Snowflake系統目前由四個主體構成:
- 客戶端(snowflake-client)
- 經紀人(snowflake-broker)
- 代理(snowflake-proxy)
- 網橋(snowflake-server)
客戶端
編輯當用戶選擇使用Snowflake網橋時,他們的軟件作為客戶端運作[6]。
經紀人
編輯與fte或obfs4網橋不同,客戶端並不直接連接到網橋本身,而是首先聯絡經紀人,取得一些由志願者運作的可用Snowflake代理,該過程使用域前置技術[7][5]。在Tor瀏覽器的預設組態中,客戶端以多個使用CDN77的網站作為域前置的偽裝域名,中間人看起來就像是訪問一個主流網站,實際連接的是Tor Project運作的經紀人。
代理
編輯<iframe src="https://snowflake.torproject.org/embed.html" width="320" height="240" frameborder="0" scrolling="no"></iframe>
— snowflake.torproject .org,
在網頁上嵌入Snowflake的HTML代碼,用戶通過一個開關即可運作代理
客戶端通過經紀人取得到Snowflake代理後,直接向代理發起WebRTC連接,此處中間人看到的內容就像是視像會議應用產生的P2P流量[5]。
志願者安裝一個瀏覽器擴充程式或者保持嵌入有Snowflake代碼的分頁開啟都會使其電腦變成一個代理[2]。在後者的情況下,志願者只需打開一個網頁內的開關即可使其運作。另外Snowflake代理也可以作為獨立程式執行,比如在Docker容器中執行[7]。
Snowflake代理只要網頁或者程式連接到互聯網就會一直執行,如果某執行者的電腦使用動態IP,代理的IP也會隨之變化[1][7]。Snowflake代理以Tor入口的角色運作,而非出口,並不直接訪問用戶需要的網站,因此降低了法律風險[1]。中繼流量會增加志願者電腦的頻寬用量,但一般不會降低做其他事情的網速[1][7]。
網橋
編輯志願者運作的代理並不直接連接Tor網絡,而是向經紀人介紹自己後,等待客戶端的連接並將其請求中轉到Snowflake網橋,後者將流量接力到Tor網絡[8][6]。
目前Tor瀏覽器的內建組態包含兩個Snowflake網橋,暱稱分別為crusty12和flakey3,都位於歐洲[9]。
應對措施
編輯審查者可能使用DTLS指紋辨識並封鎖Snowflake代理,這在俄羅斯曾經發生過。另一種可能的審查方法是安裝並執行Tor瀏覽器,然後封鎖所有其提供的Snowflake代理。這兩種方法在面對大量志願者建立節點的情況下會遇到挑戰[10][11]。
應用
編輯Snowflake在2022年10月伊朗示威期間被廣泛討論和使用[1],還有人發佈了波斯語的使用教程[12][5]。
同年,俄羅斯政府增大了對Tor技術和政治上的封鎖力度,結果是該國境內Snowflake網橋的使用人數增加[10][11]。
參見
編輯參考來源
編輯- ^ 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. 2022-09-30 [2022-10-10]. (原始內容存檔於2022-10-10) (德語).
- ^ 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) (英語).
- ^ 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).
- ^ Moreno, Johan. As The Internet Freedom Project Expands, Snowflake Becomes Snowstorm. 福布斯. 2023-02-08 [2023-04-20]. (原始內容存檔於2023-04-01).
- ^ 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.0 6.1 Technical Overview. gitlab.torproject.org. 2021-11-04 [2023-04-20]. (原始內容存檔於2023-05-11).
- ^ 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). 2022-09-30 [2023-04-20]. (原始內容存檔於2023-04-14) (德語).
- ^ 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
- ^ Relay Search - transport:snowflake. Tor Metrics. [2024-12-03].
- ^ 10.0 10.1 Tor 项目如何对抗俄罗斯的审查. Solidot. 2022-07-31 [2023-04-20]. (原始內容存檔於2022-10-07).
- ^ 11.0 11.1 Burgess, Matt. How Tor Is Fighting—and Beating—Russian Censorship. 連線. 2022-07-28 [2022-07-30]. (原始內容存檔於2022-08-08).
- ^ Iran: Circumventing Censorship with Tor. Tor Project Forum. 2022-09-22 [2023-04-20]. (原始內容存檔於2023-05-24) (英語).
外部連結
編輯- Snowflake ❄️ (頁面存檔備份,存於互聯網檔案館) - torproject.org (簡體中文)
- Snowflake 原始碼倉庫 - gitlab.torproject.org
- Bridge users using transport snowflake (頁面存檔備份,存於互聯網檔案館) - Tor Metrics (英文)