Tor 歷史:從洋蔥路由到今天的關鍵時間軸
Tor 於 1995 年在美國海軍研究實驗室起步,2002 年公開部署,2006 年成立 Tor Project。查看重要日期與資助來源的證據。
Tor 的歷史簡介
Tor 的歷史始於 1995 年,地點是美國海軍研究實驗室,也就是美國海軍的研究機構。David Goldschlag、Michael G. Reed 和 Paul Syverson 在此建立了最早的洋蔥路由原型。Tor Project 自己的時間軸指出,他們提出的問題是:「是否能建立不會揭露誰在與誰通訊的網際網路連線?」現今人們使用的網路於 2002 年 10 月部署,並以自由及開放原始碼軟體授權發布其程式碼。Tor Project, Inc. 於 2006 年成立,為非營利組織。
以下每個日期都來自 Tor Project 發布的時間軸、版本資訊或官方支援頁面。對於有爭議的說法,例如誰資助這項工作,本節會說明現有證據,以及可自行查證的位置。
洋蔥路由實際執行的功能
洋蔥路由會分離網際網路通常綁在一起的兩項資訊:你的身分,以及你要求的內容。Tor 用戶端會選擇 3 個 relay,並透過這些 relay 建立 circuit。它會為網路流量套用 3 層加密,每個 relay 各負責 1 層。每個 relay 會剝除 1 層加密,只知道下一個 hop 的位址,然後將封包轉送出去。這種分層方式就是名稱的由來。
第 1 個 relay 稱為 guard,可看到你的 IP 位址,但看不到目的地。最後 1 個 relay 稱為 exit,可看到目的地,但看不到你的 IP 位址。中間的 relay 兩者都看不到。沒有任何單一 relay 同時掌握這兩部分資訊,這就是其完整的安全性依據。因此,這些 relay 必須由彼此無關的人員運作。如果同一個組織同時運作你的 guard 和 exit,這種分離就會消失,而加密也無法提供保護。
已知的弱點是流量關聯分析。能同時監看 circuit 兩端的觀察者,可以比對流入與流出封包的時間和大小。Tor 無法防禦能同時監看整個網際網路的攻擊者。Roger Dingledine、Nick Mathewson 和 Paul Syverson 在 2004 年發表的設計論文《Tor: The Second-Generation Onion Router》中,也已在威脅模型內說明這點。
為何私有網路會毫無用處
這是簡短摘要略過的部分,也是理解本頁其他內容的關鍵。
軍事或情報組織無法從只承載自身流量的網路取得匿名性。匿名性來自群體,而不是密碼。若離開網路的每個連線都屬於同一個辦公室,觀察者只要看見連線離開,就已經知道答案。加密仍然完全有效,但匿名性並不存在,因為沒有其他對象可供混淆。
因此,這套設計必須公開,且流量必須與其他人的流量混合。程式碼在 2002 年 10 月以自由軟體授權發布,任何人都可以執行 relay。記者、倡議者、研究人員,以及想避開廣告網路的一般使用者,最後都成為保護其中所有其他人的群體。Dingledine 和 Mathewson 在 2006 年的論文〈Anonymity Loves Company: Usability and the Network Effect〉中闡述了這項論點;該論文於 Workshop on the Economics of Information Security 發表。結論是,使用者群體的規模與多樣性是系統的安全性質,而不是行銷數字。
從 alpha code 到非營利組織
Tor Project 的時間表與已發表的論文記錄了以下發展:
- 2002 年 10 月:Tor network 啟用,程式碼採用「自由且開放的軟體授權」。
- 2003 年底:network 運作於「約十多個 volunteer node,其中大多位於美國,另有一個位於德國」。
- 2004 年:Dingledine、Mathewson 與 Syverson 發表設計論文《Tor: The Second-Generation Onion Router》。
- 2004 年:Electronic Frontier Foundation (EFF) 開始資助 Tor 的開發工作。
- 2006 年:The Tor Project, Inc. 成立為 501(c)(3) 非營利組織,以維持開發工作。
- 2007 年:開始開發 bridge,因為各國防火牆已開始封鎖公開 relay 清單。
- 2008 年:開始開發 Tor Browser。
後來有兩個日期,影響了 network 現今的使用方式。Tor Project 的時間表將 Tor 在 Arab Spring 期間的使用時間列為 2010 年底,當時 Tor 用於保護身分及存取遭封鎖的網站。時間表也記錄 2013 年 Snowden 文件曝光後,Tor 的作用開始廣為人知,並指出這些文件顯示 Tor 在當時尚未遭破解。這兩起事件都沒有改變 protocol,卻都改變了安裝 Tor 的使用者群體。
誰支付 Tor 的費用,以及如何查證
Tor Project 在自己的支援頁面上回答了這個問題:「Tor Project 的資金來自政府補助、私人基金會與個人捐款。」政府資金是其中一部分,而且從一開始就是如此。支持者頁面列出 U.S. Department of State,以及 Ford Foundation、Open Technology Fund、Craig Newmark Philanthropies,還有 Brave、DuckDuckGo、Mullvad VPN 與 Fastly 等公司。經審計的財務資料會以部落格文章發布;最近一份於 December 2025 發布,涵蓋 2023 至 2024 財政年度。該專案的立場是:「公開說明贊助者與資金模式,是維持社群信任的最佳方式。」
有用的問題不是誰支付了費用,而是這些資金能買到什麼。Tor 不是需要登入的服務。它是一份通訊協定規格、一個可閱讀原始碼的用戶端,以及由陌生人運作的中繼節點網路。若有人想植入後門,就必須放在三個位置之一,而每個位置都可以查證。
- 在原始碼中。用戶端採用開放原始碼,通訊協定也公開規範。學術研究人員會定期發表針對 Tor 的攻擊研究,而且他們有充分的專業誘因,能優先找出缺陷。
- 在二進位檔中。Tor Browser 的建置自 August 2013 起具備可重現性,因此獨立建置者可以重新建置版本,再與公開下載檔逐位元組比對。不符合原始碼的二進位檔,無須信任發布者即可被發現。
- 在中繼節點中。Tor Project 不負責運作這個網路。「Tor network 仰賴志願者捐出頻寬」,guard、middle relay、exit 與 bridge 分屬數千名互不相關的運作者。入侵某個資助者,不會因此入侵這些中繼節點。
該專案的自身聲明很簡短:「Tor 沒有後門。軟體採用開放原始碼,其程式碼可由獨立人員稽核,而且每個版本都會簽署,以防止遭到竄改。」這句話之所以有價值,是因為每個分句都指出了可以自行查證的事項。
確實存在一項限制,但它涉及優先順序,而不是誠信問題。補助資金會影響哪些工作優先進行,因此審查規避所獲得的資助,比網路效能等工作更為持續。這是對該專案的合理批評,但不同於「程式碼已遭入侵」這種批評。要回答前一項問題,應閱讀財務報告,而不是相信任何人的保證。
隱藏服務改稱 onion services
onion service 是永遠不公開 IP 位址的伺服器。用戶端與伺服器各自在網路中建立通往會合點的 circuit,因此任一方都不會得知另一方的位址。這個位址不是由註冊機構指派的名稱,而是由伺服器的公開金鑰衍生而來,因此 .onion 位址看起來像隨機字元。
onion services 時間軸列出了各版本的發布時間:
- 8 April 2004:hidden services 首次實作於 Tor 0.0.6pre1。
- 21 September 2007:version 2 hidden services 在 Tor 0.2.0.7-alpha 中推出。
- 19 December 2016:version 3 開始開發,版本為 Tor 0.3.0.1-alpha。
- 9 January 2018:version 3 發布,版本為 Tor 0.3.2.9。
「hidden services」改稱「onion services」是逐步發生的,而不是在單一日期完成;Tor Project 的官方文件目前仍同時使用這兩個名稱。舊名稱無法準確描述其特性。許多 onion site 都是公開、可建立索引且有人宣傳的;隱藏的是伺服器的位置,而不是網站本身。原始名稱仍保留在設定檔中,成為一項有用的歷史痕跡。現在仍可透過以下方式在 torrc 中宣告 onion service:
HiddenServiceDir /var/lib/tor/my_service/
HiddenServicePort 80 127.0.0.1:8080該目錄存放 service key,以及包含位址的 hostname 檔案。port 設定會將 onion 位址上的連接埠對應到同一台機器上的本機位址,因此 web server 可以持續綁定至 127.0.0.1,完全不必在公開介面上監聽。Version 3 是預設版本,因此今天使用這兩行建立的 service 會取得 v3 位址。
onion 位址也不是 domain name。2015 年 10 月發布的 RFC 7686 將 .onion 保留為特殊用途的 domain name,讓一般 resolver 停止將這些查詢洩漏至公開 DNS(domain name system)。該 RFC 設定的規則十分明確:「Authoritative servers MUST respond to queries for .onion with NXDOMAIN。」將這項規則與一般 domain name 的解析方式相比,差異正是 onion service 的核心。DNS name 是由註冊機構指派給你的,並透過你無法控制的 server 進行查詢。onion 位址是公開金鑰,因此可自行驗證身分,不需要進行查詢。
舊版 .onion 位址為何停止運作
這兩種位址格式不相容,舊版格式也已永久停用。
The data behind this chart
[
{
"version": "v2 (retired 2021)",
"address_length_chars": 16,
"service_key": "RSA-1024",
"address_hash": "SHA-1, truncated to 80 bits"
},
{
"version": "v3 (current)",
"address_length_chars": 56,
"service_key": "Ed25519",
"address_hash": "SHA3-256"
}
]v2 位址長度為 16 個字元,因為其中只包含 RSA-1024 公開金鑰之 SHA-1 雜湊的前 80 個位元。v3 位址長度為 56 個字元,因為其中包含完整的 Ed25519 公開金鑰,以及校驗和與版本位元組。v3 位址較長,是因為不再截斷雜湊結果,因此位址本身現在就是服務的完整身分。
- 15 September 2020, Tor 0.4.4.x:Tor 開始警告操作人員與用戶端,指出 v2 已棄用。
- 15 July 2021, Tor 0.4.6.x:從程式碼庫移除 v2 支援。
- 15 October 2021:所有受支援系列的新穩定版用戶端停用 v2。
官方說明的原因是密碼學安全性。「隨著人類對數學與密碼學的理解持續發展,version 2 的基礎變得脆弱,在當時已不安全。」截至 2021 年,截短為 80 位元的 SHA-1 雜湊與 1024 位元 RSA 金鑰都低於合理的安全標準,而該位址格式也沒有保留空間可替換這兩者。
對讀者而言,後果很簡單,因此有必要明確說明。所有在 2021 年以前發布的 16 字元 .onion 連結都已永久失效,且沒有重新導向。v2 位址無法升級,因為該位址本身就是舊金鑰。操作人員必須建立新服務,並透過用戶已信任的其他管道發布新位址。
橋接與可插拔傳輸:審查持續變化
公開中繼站清單是刻意發布的,讓用戶端可以自行選擇路徑,而不必信任單一伺服器代為選擇。同一份公開清單也會直接成為任何想阻擋 Tor 的國家可用的封鎖清單。橋接的研究工作始於 2007 年。橋接是未列入公開清單的中繼站。您可以透過網頁或電子郵件要求取得少量橋接,而審查者無法封鎖自己無法列舉的位址。
之後,封鎖目標從位址轉向流量特徵。深度封包檢測無論流量要前往哪個 IP 位址,都能辨識線路上的 Tor 協定。可插拔傳輸因此應運而生:它會改變 Tor 流量的外觀,但不改變流量的功能。在目前的 Tor Browser 中,這些傳輸整合在名為 lyrebird 的單一二進位檔中。lyrebird 是 obfs4proxy 的後繼產品,而用戶端設定只需在 torrc 中加入以下 3 行:
UseBridges 1
ClientTransportPlugin meek_lite,obfs4,snowflake,webtunnel exec [PATH]/lyrebird
Bridge obfs4 <IP ADDRESS>:<PORT> <FINGERPRINT> cert=<CERTIFICATE> iat-mode=0將 [PATH] 替換為存放 lyrebird 二進位檔的目錄,並從 Tor Project 的橋接網站完整複製 Bridge 行,不要手動輸入。每種傳輸解決不同的封鎖方式:
- obfs4 會讓流量看起來像無法辨識的內容,不帶有過濾器可比對的協定標頭。Tor 官方建議先嘗試它,因為這是一種隨機化傳輸,適用於大多數使用者。
- snowflake 會透過志願者在一般網頁瀏覽器中執行的短期代理轉送流量,因此您連線的位址會持續變化。它已在 2021 年 7 月 6 日的 version 10.5 中正式加入 Tor Browser。
- meek 會透過大型雲端供應商轉送連線,因此流量看起來像是前往該供應商;封鎖這類流量也代表必須封鎖該供應商。
- webtunnel 採用與 obfs4 相反的方法。它不是讓流量看起來像無法辨識的內容,而是透過「將負載連線包裝成類似 WebSocket 的 HTTPS 連線」,讓流量看起來像是連往網頁伺服器的一般 HTTPS 連線。Tor Project 於 2024 年 3 月 12 日在穩定版 Tor Browser 中發布了它,適用於只允許少量協定的網路。
這個順序才是過去 20 年的實際發展脈絡。每一種新傳輸都是因應特定封鎖技術開始奏效而出現的,而這些版本發布日期也記錄了審查者在各年度採用的手段。
Tor 不是 VPN,VPS 也不是
許多人是在閱讀 VPN 相關資訊後接觸 Tor,因此有必要準確區分兩者。VPN(virtual private network,虛擬私人網路)會將你的網路流量傳送到由單一公司營運的一台伺服器,而該公司會在同一時間看到你的真實位址與目的地。Tor 會將你的網路流量經過由不同人員營運的 3 個 relay,因此沒有任何單一 relay 同時掌握這兩項資訊。兩者採用不同的信任模型,也有不同的失效模式。VPS 與 VPN 的差異說明兩者各自適用的情境。
如果你需要的是在自己控制的機器之間建立私密通道,而不是在群體中保持匿名,那麼你需要的是自行執行的 VPN。你可以在大約 40 行設定中,在 VPS 上自行架設 WireGuard VPN。這能保護你的流量,避免遭到區域網路與網際網路服務供應商監看。但它無法讓你對託管伺服器的公司保持匿名,因為你是使用自己的付款資料租用該伺服器。至於VPS hosting 是否安全,則是另一個不同的威脅問題:還有哪些人能連到你的機器。
另一種做法是執行 relay,而 Tor 網路也依賴 relay。Bridge、guard、middle relay 與 exit 都需要有人營運。Tor Project 的 relay guide 明確指出:「執行 relay 需要技術能力與持續投入。」Exit 會帶來法律風險,因為其他人的流量會以你的 IP 位址離開網際網路,託管服務供應商也會因此收到相關申訴。開始執行 relay 前,先閱讀該指南,不要等到開始後才閱讀。
FAQ
Tor 是由美國政府建立的嗎?
洋蔥路由始於 1995 年的美國海軍研究實驗室。David Goldschlag、Michael G. Reed 和 Paul Syverson 在當時建立了最初的原型。Tor 本身是下一代設計,由 Roger Dingledine、Nick Mathewson 和 Paul Syverson 約於 2001 年至 2002 年開始開發。該網路於 2002 年 10 月依據自由軟體授權發布。Tor Project, Inc. 自 2006 年起便是獨立的 501(c)(3) 非營利組織。它確實源自政府研究,而這也是網路必須開放給所有人的原因:如果網路只承載單一組織的流量,該組織便無法從中取得匿名性,因為每個離開該組織的連線都會透過使用這個網路這一事實,辨識出傳送者。
政府提供資金是否代表 Tor 有後門?
Tor Project 的回答是:「Tor 沒有後門。軟體採用開放原始碼,其程式碼可由獨立人士稽核,而且每個版本都會簽署,以防止遭到竄改。」讓這項說法可以驗證,而不只是承諾的,是其周邊架構。協定規格公開,Tor Browser 的建置具備可重現性,因此獨立建置者能重新建置版本,並與公開的二進位檔比較;中繼站則由志願者運作,而非由任何資助者管理。資金確實會影響哪些工作優先完成,Tor blog 上經稽核的財務報告也會說明資金來源。這是優先順序的問題,不是程式碼的問題。
為什麼我舊的 .onion 位址停止運作?
那是 version 2 位址,而 v2 onion services 已於 2021 年退役。Tor 自 2020 年 9 月 15 日起開始發出相關警告,於 2021 年 7 月 15 日在 Tor 0.4.6.x 中移除 v2 程式碼,並於 2021 年 10 月 15 日在穩定版本中停用 v2。v2 位址在 .onion 之前有 16 個字元,v3 位址則有 56 個字元。這類位址沒有重新導向,也沒有升級路徑,因為位址是由舊金鑰衍生而來。因此,服務管理者必須建立新的服務,並發布新的位址。
Tor 和 VPN 一樣嗎?
不一樣。VPN 會將你的流量傳送至由單一公司運作的單一伺服器,而該公司能同時看到你的真實 IP 位址和目的地。Tor 會將流量經由由不同人員運作的 3 個中繼站傳送,因此第一個中繼站看得到你的位址,卻看不到目的地;最後一個中繼站看得到目的地,卻看不到你的位址。Tor 速度較慢,設計目標是對抗未監看整個網際網路的觀察者,以提供匿名性。VPN 速度較快,設計目標則是防止區域網路和網際網路服務提供者得知你的流量內容,以提供隱私。
什麼是可插拔傳輸?我需要使用嗎?
可插拔傳輸是一種包裝層。它會改變 Tor 流量在網路線路上的外觀,但不會改變 Tor 的運作方式,因此能避免識別 Tor 協定的過濾器直接比對。只有在一般 Tor 無法建立連線時才需要使用,這通常表示你的網路或所在國家正在封鎖 Tor。Tor Browser 會在名為 lyrebird 的單一二進位檔中提供 obfs4、snowflake、meek 和 webtunnel。請先使用 obfs4,因為它是隨機化傳輸,對多數人都有效;如果該連線始終無法完成,再嘗試 webtunnel 或 snowflake。