TorBrowser 深度解析:三層中繼與反指紋背後的設計取捨

系统工具 ·约 8 分钟 ·記筆記的貓:團子

TorBrowser 是什麼

TorBrowser 是一款基於 Tor 網路的隱私保護瀏覽器,由 Tor Project 與 Guardian Project 合作開發,TorBrowser官網提供完整的中文安裝指南。它的核心承諾很簡單:讓你在網路上的真實 IP 地址對任何人都不可見,包括你的網路供應商(ISP)、連線路徑上的監控者,以及你造訪的網站本身。

但 TorBrowser 提供的不是數學上的絕對匿名——它的安全模型是概率性匿名:讓你看起來和其他數百萬 Tor 用戶沒有區別,而不是讓你消失得無影無蹤。這條底線在素材包的安全邊界文檔裡被反覆強調,也是理解這款軟體所有設計取捨的起點。

安裝

TorBrowser 的 Android 安裝包約 77.96MB,最新版本為 10.0.1688.1.3-Release,包名 org.torproject.torbrowser。下載渠道有三:F-Droid(開源無追蹤,官方優先推薦)、Guardian Project 官網(TorBrowser下載 APK)、Google Play(自動更新但 Orbot 已下架)。素材包的 Android 安裝文檔特別提到,iOS 上沒有官方 TorBrowser——Apple 對 App Store 的政策限制阻擋了 VPN 式全局流量路由,iOS 用戶只能用第三方 Onion Browser 作為功能受限的替代。

Android 安裝後首次啟動會進入 Tor Launcher 連線介面,大多數情況下直接點「連線」即可,10~30 秒完成電路構建。如果連線卡住,通常意味著所在網路對 Tor 有封鎖——此時需要進入「配置」選單,啟用可插拔傳輸(obfs4、Snowflake 等)來繞過審查。素材包的首次連線文檔提醒:首次連線比後續慢是正常的,因為要從目錄伺服器下載數千個中繼節點的完整清單並快取到本地。

Tor 連線介面——啟動後點「連線」即可自動構建加密電路

為什麼是三層中繼:Tor 電路的架構原理

打開 TorBrowser,你每一次網路請求都不是直接從手機飛向目標網站,而是走一條經過三個隨機中繼節點的加密鏈路。素材包的首次連線文檔提到 Tor Launcher 會「隨機挑選三個中繼節點,建立加密電路」——但為什麼是三個?兩個不行嗎?四個不是更安全?

這個三層結構來自 Tor Project 的一個核心判斷:匿名性與延遲的平衡點。

第一層(入口中繼)知道「請求來自哪裡」但不知道「要去哪裡」;第三層(出口中繼)知道「要去哪裡」但不知道「請求來自哪裡」;第二層(中間中繼)兩頭都不知道。每一層只與相鄰層對稱加密,中繼節點之間無法串聯資訊。這種設計確保:沒有任何一個單點能同時看到請求的起點和終點。

為什麼不是兩層?因為兩層的情況下,出口中繼如果被敵方控制,它只需要觀察「哪個入口中繼在同一時間對我發起請求」就能做關聯分析。三層結構讓關聯攻擊的成本指數級上升——敵方必須同時控制入口和出口兩個節點,還要能觀察中間層的流量特徵。

為什麼不是四層或更多?每一層都會增加延遲。素材包的安全邊界文檔提到 Tor 比普通瀏覽多消耗 2~3 倍流量——這不僅是加密開銷,更是多跳中繼的傳輸成本。三層是 Tor Project 在早期經過大量模擬後確定的最優折中:匿名性提升到關聯攻擊成本不可接受的程度,同時延遲還在人類可忍受的範圍內。

反指紋設計:讓數百萬人長得一模一樣

隱私瀏覽器面臨的最大挑戰之一不是 IP 洩露,而是瀏覽器指紋。素材包的 JS 策略文檔列出了 JavaScript 可以查詢的指紋維度:Canvas 畫布、WebGL 渲染資訊、安裝字體清單、螢幕解析度、甚至時區和語言設定。這些資訊組合起來可以給每個瀏覽器生成一個唯一 ID——就像指紋一樣。

TorBrowser 的應對策略不是「阻止所有指紋查詢」,而是更激進的做法:讓所有人的指紋看起來完全一樣。統一的 User-Agent、標準化的字體清單、強制 Letterboxing(把視窗尺寸鎖定在幾個標準化值,讓全螢幕和縮放後的視窗尺寸都落入預定義的桶裡)。素材包的 JS 策略文檔特別提到,這些反指紋設計「只有在 JavaScript 啟用時才會主動生效」——這裡有一個張力:JavaScript 是現代網站的必需元件,但它同時也是網站繞過 Tor 保護的最佳通道。

這就是 TorBrowser 三檔安全級別的由來。素材包的 Android 安裝文檔提到 Android 版只保留了「標準」和「最安全」兩檔(砍掉了桌面版的「較安全」),而 JS 策略文檔詳細解釋了三種 JavaScript 禁用策略與安全級別的對應關係:最安全級別完全禁用 JavaScript、較安全級別只禁 HTTP 網站的腳本、標準級別全面允許。每一檔都是「便利性 vs. 攻擊面」的取捨——標準級別提供完整網站體驗但風險敞口最大,最安全級別的純文字瀏覽可以正常工作但大多數現代網站無法互動。

Tor 瀏覽器的安全級別選單——從標準到最安全,攻擊面逐檔收斂

Tor 防不住的事:安全模型的邊界

理解 Tor 的設計原理之後,最重要的問題反而是:它做不到什麼。素材包的安全邊界文檔用了整篇來梳理這個問題,核心結論是:Tor 網路本身的加密鏈路可以防住 ISP、被動監聽者和普通網站追蹤,但有幾個風險點是 Tor 架構無法解決的。

第一個風險點是出口節點後的流量。Tor 網路的最後一跳(出口中繼 → 目標伺服器)是明文傳輸——如果目標網站用的是 HTTP 而非 HTTPS,惡意出口節點可以嗅探這段內容。這也是 TorBrowser 預設強制 HTTPS Everywhere 擴充的原因。素材包提醒,個人用戶不應運營出口節點——如果有人通過你的出口節點做了違法的事,法律請求會先發到你這裡。

第二個風險點是全球流量關聯攻擊。如果攻擊者能同時監控「你發送請求的時間/流量特徵」和「某個出口節點發送請求的時間/流量特徵」,通過時序分析可能關聯出你是誰。這種攻擊成本極高,普通用戶不太會遇到,但它在理論上是可行的。

第三個也是最常見的風險來源是使用者自身行為——在 Tor 中登入 Google 或 Facebook、下載可疑檔案後離線打開、在 .onion 網站上透露個人資訊。這些行為都能繞過 Tor 的保護,讓你的真實身份暴露。素材包最後給出的使用原則很實際:保持預設設定、不要安裝額外擴充、不要最小化或自由縮放視窗、敏感操作專用一個 Tor 視窗與日常瀏覽徹底隔離。

結語

TorBrowser 的設計哲學可以濃縮成一句話:在無法做到絕對安全的情況下,讓所有人的風險看起來一樣。三層中繼架構把關聯攻擊的成本推到不可接受的高度,統一指紋設計把單個用戶從人海裡抹平,三檔安全級別讓你在便利與保護之間有得選——但每一層保護都有代價,每一條規則都有邊界。理解這些原理不是為了變得更"懂",而是為了在需要隱私的時候做出正確的取捨。

本文為個人基於網路公開資料整理編寫,非官方內容,僅供學習交流參考;軟體版權歸原作者所有,請支持正版;使用過程中遇到問題請查閱官方管道,本文不承擔任何責任。

團子還試過這些