複製鏈接
請複製以下鏈接發送給好友

洋葱路由

鎖定
洋葱路由(英語:Onion routing)為一種在電腦網絡上匿名溝通的技術。在洋葱路由的網絡中,消息一層一層的加密包裝成像洋葱一樣的數據包,並經由一系列被稱作洋葱路由器網絡節點發送,每經過一個洋葱路由器會將數據包的最外層解密,直至目的地時將最後一層解密,目的地因而能獲得原始消息。而因為透過這一系列的加密包裝,每一個網絡節點(包含目的地)都只能知道上一個節點的位置,但無法知道整個發送路徑以及原發送者的地址。 [1] 
中文名
洋葱路由
外文名
OnionRouting
原    理
Chaum的混合瀑布原理
目    標
保護信息發送者和接受者的隱私
學    科
密碼學
領    域
密碼學

洋葱路由發明與實現

1990年代中期,美國海軍研究實驗室的研究員保羅‧塞維利亞森(Paul Syverson)、麥可‧裏德和大衞‧戈爾德施拉格(David Goldschlag)為了保護美國在線情報系統而開發了洋葱路由。其後國防高等研究計劃署接手該項目繼續開發,並在1998年獲得海軍的專利。2002年計算機科學家羅傑‧丁高戴恩(Roger Dingledine)和尼克‧馬修森(Nick Mathewson)加入了塞維利亞森的項目,並開始開發Tor;Tor為“洋葱路由項目”(The Onion Routing project)的頭字語,該項目後來成為規模最大的洋葱路由實現並廣為人知。之後美國海軍研究實驗室將Tor以自由軟件授權的方式公開了源代碼,丁高戴恩、馬修森以及其他五位成員在2006年成立了名為“The Tor Project”的非營利組織,並獲得包含電子前哨基金會在內的幾個組織的財政資助。 [2] 

洋葱路由數據結構

一個在洋葱路由網絡中傳遞的數據包例子。發送者首先將數據包發送給路由器A,解密了藍色一層,並發現要傳給B,而數據包發送至B時又解密了綠色一層,同理再傳給C,而C在解密了紅色一層後得到原始要發送的消息並將之傳給目的地。
被稱作洋葱路由的原因在於消息一層一層的加密包裝成被稱作洋葱數據包的數據結構,層數取決於到目的地中間會經過的節點數,每經過一個節點層會將數據包的最外層解密,因此任一個節點都無法同時知曉這個消息最初與最終的目的地,使發送者達到匿名的效果。
數據包的創建與發送
為了發送洋葱數據包,發送消息者會從“目錄節點”(directory node)提供的列表中選取一些節點,並以這些規劃出一條被稱作“鏈”(chain)或“線路”(circuit)的發送路徑,這條路徑將為傳輸數據包所用。為了確保發送者的匿名性,任一節點都無法知道在鏈中自己的前一個節點是發送者還是鏈上的另一節點;同理,任一節點也無法知道在鏈中自己的下一節點是目的地還是鏈上另一節點。只有鏈上的最後一個節點知道自己是鏈上最終節點,該節點被稱作“出口節點”(exit node)。
洋葱路由網絡使用非對稱加密,發送者從目錄節點獲得一把公開密鑰,用之將要發送的消息加密併發送給鏈上的第一個節點,該節點又被稱作入口節點(entry node);其後與之創建連接和共享密鑰。創建連接後發送者就可以通過這條連接發送加密過的消息至鏈上的第二個節點,該消息將只有第二個節點可以解密;當第二個節點收到此消息後,便會與前一個節點也就是入口節點同樣的創建連接,使發送者的加密連接延伸到它,但第二個節點並不曉得前一個節點在鏈中的身份。之後按照同樣原理,發送者通過入口節點和第二個節點的這條加密連接將只有第三個節點能解密的消息發送給第三個節點,第三節點同樣的與第二個節點創建連接;藉由重複相同的步驟,發送者能產生一條越來越長的連接,但在性能上仍有限制。
當鏈上的連接都創建後,發送者就可以透過其發送數據並保持匿名性。當目的地回送數據時,鏈上的節點會透過同一條連接將數據回傳,且一樣對數據層層加密,但加密的順序與發送者完全相反;原發送者收到目的地回傳的數據時,將僅剩最內一層加密,此時對其解密就可拿到目的地回送的消息。

洋葱路由弱點

洋葱路由計時分析

傳統互聯網不被認為具有匿名性的一個理由為互聯網服務供應商具有紀錄和追蹤各電腦間的連接能力;例如當有人訪問一個特定網站時,往來的信息內容如密碼等,雖然能透過像是HTTPS等加密連接方式保護讓其他人無法得知內容,但是連接本身卻仍會有紀錄,包含何時創建連接,多少數據量被髮送等。洋葱路由雖然能創建並隱藏兩電腦之間的連接,使兩者之間並無一個可分辨的直接連接,但仍會有上述的連接紀錄問題。流量分析可藉由搜索連接紀錄的連接時間和數據傳輸量來試圖判別潛在的一對發送者與接收者;例如當有人發送51KB的數據到一個未知的電腦,三秒後另一未知的電腦發送51KB的數據給一個特定的網站,則可以推斷此人可能與該網站曾創建連接。此外還有一些原因可以讓流量分析更加有效,包含節點的損壞或離開網絡,以及當鏈已經因為定期重建而改變,但有些鏈上節點卻仍在追蹤此前創建的會話等。 [3] 
大蒜路由是洋葱路由的一種變體,其結合了I2P網絡並將多份消息加密打包在一起,使其更難被攻擊者以流量分析的方式破解。

洋葱路由出口節點漏洞

雖然消息在洋葱路由網絡中被層層加密,但是在出口節點時,該節點會把最後一層解密並將原始消息傳給接收者;因此若出口節點遭到攻擊或是受控制,則原始的消息將會被截取。瑞典研究員丹‧伊格史塔德(瑞典語:Dan Egersta)曾用此方式獲得了超過100封寄給外國大使館電子郵件密碼。出口節點漏洞的原理與未加密無線網絡很類似,後者為用户將未加密的數據在無線網絡上傳送時可能中途被其他人截走;這兩種問題都可以透過端對端加密連接如SSLHTTPS等方式解決。

洋葱路由相關條目

參考資料
  • 1.    Goldschlag D., Reed M., Syverson P. Onion Routing for Anonymous and Private Internet Connections (PDF). CACM. 1999-01-28
  • 2.    Reed M. G., Sylverson P. F., Goldschlag D. M. Anonymous connections and onion routing (pdf). IEEE Journal on Selected Areas in Communications. 1998年5月, 16 (4): 482–494
  • 3.    Wright, Matthew. K.; Adler, Micah; Levine, Brian Neil; Shields, Clay. The Predecessor Attack: An Analysis of a Threat to Anonymous Communications Systems (PDF). ACM Transactions on Information and System Security (TISSEC). 2004-11, 7 (4): 489–522