洋蔥路由(英語:Onion routing)為一種在電腦網絡上匿名溝通的技術。在洋蔥路由的網絡中,消息一層一層的加密包裝成像洋蔥一樣的數據包,并經由一系列被稱作洋蔥路由器的網絡節點發送,每經過一個洋蔥路由器會將數據包的最外層解密,直至目的地時將最后一層解密,目的地因而能獲得原始消息。而因為透過這一系列的加密包裝,每一個網絡節點(包含目的地)都只能知道上一個節點的位置,但無法知道整個發送路徑以及原發送者的地址。
發明與實現
1990年代中期,美國海軍研究實驗室的研究員保羅?塞維利亞森(Paul Syverson)、麥可?里德和大衛?戈爾德施拉格(David Goldschlag)為了保護美國在線情報系統而開發了洋蔥路由。其后國防高等研究計劃署接手該項目繼續開發,并在1998年獲得海軍的專利。2002年計算機科學家羅杰?丁高戴恩(Roger Dingledine)和尼克?馬修森(Nick Mathewson)加入了塞維利亞森的項目,并開始開發Tor;Tor為“洋蔥路由項目”(The Onion 路由 project)的頭字語,該項目后來成為規模最大的洋蔥路由實現并廣為人知。之后美國海軍研究實驗室將Tor以自由軟件授權的方式公開了源代碼,丁高戴恩、馬修森以及其他五位成員在2006年成立了名為“The Tor Project”的非營利組織,并獲得包含電子前哨基金會在內的幾個組織的財政資助。
數據結構
一個在洋蔥路由網絡中傳遞的數據包例子。發送者首先將數據包發送給路由器A,解密了藍色一層,并發現要傳給B,而數據包發送至B時又解密了綠色一層,同理再傳給C,而C在解密了紅色一層后得到原始要發送的消息并將之傳給目的地。
被稱作洋蔥路由的原因在于消息一層一層的加密包裝成被稱作洋蔥數據包的數據結構,層數取決于到目的地中間會經過的節點數,每經過一個節點層會將數據包的最外層解密,因此任一個節點都無法同時知曉這個消息最初與最終的目的地,使發送者達到匿名的效果。
數據包的創建與發送
為了發送洋蔥數據包,發送消息者會從“目錄節點”(directory node)提供的列表中選取一些節點,并以這些規劃出一條被稱作“鏈”(chain)或“線路”(circuit)的發送路徑,這條路徑將為傳輸數據包所用。為了確保發送者的匿名性,任一節點都無法知道在鏈中自己的前一個節點是發送者還是鏈上的另一節點;同理,任一節點也無法知道在鏈中自己的下一節點是目的地還是鏈上另一節點。只有鏈上的最后一個節點知道自己是鏈上最終節點,該節點被稱作“出口節點”(exit node)。
洋蔥路由網絡使用非對稱加密,發送者從目錄節點獲得一把公開密鑰,用之將要發送的消息加密并發送給鏈上的第一個節點,該節點又被稱作入口節點(entry node);其后與之創建連接和共享密鑰。創建連接后發送者就可以通過這條連接發送加密過的消息至鏈上的第二個節點,該消息將只有第二個節點可以解密;當第二個節點收到此消息后,便會與前一個節點也就是入口節點同樣的創建連接,使發送者的加密連接延伸到它,但第二個節點并不曉得前一個節點在鏈中的身份。之后按照同樣原理,發送者通過入口節點和第二個節點的這條加密連接將只有第三個節點能解密的消息發送給第三個節點,第三節點同樣的與第二個節點創建連接;借由重復相同的步驟,發送者能產生一條越來越長的連接,但在性能上仍有限制。
當鏈上的連接都創建后,發送者就可以透過其發送數據并保持匿名性。當目的地回送數據時,鏈上的節點會透過同一條連接將數據回傳,且一樣對數據層層加密,但加密的順序與發送者完全相反;原發送者收到目的地回傳的數據時,將僅剩最內一層加密,此時對其解密就可拿到目的地回送的消息。
弱點
計時分析
傳統互聯網不被認為具有匿名性的一個理由為互聯網xSP具有紀錄和追蹤各電腦間的連接能力;例如當有人訪問一個特定網站時,往來的信息內容如密碼等,雖然能透過像是https等加密連接方式保護讓其他人無法得知內容,但是連接本身卻仍會有紀錄,包含何時創建連接,多少數據量被發送等。洋蔥路由雖然能創建并隱藏兩電腦之間的連接,使兩者之間并無一個可分辨的直接連接,但仍會有上述的連接紀錄問題。流量分析可借由搜索連接紀錄的連接時間和數據傳輸量來試圖判別潛在的一對發送者與接收者;例如當有人發送51KB的數據到一個未知的電腦,三秒后另一未知的電腦發送51KB的數據給一個特定的網站,則可以推斷此人可能與該網站曾創建連接。此外還有一些原因可以讓流量分析更加有效,包含節點的損壞或離開網絡,以及當鏈已經因為定期重建而改變,但有些鏈上節點卻仍在追蹤此前創建的會話等。
大蒜路由是洋蔥路由的一種變體,其結合了i2p網絡并將多份消息加密打包在一起,使其更難被攻擊者以流量分析的方式破解。
出口節點漏洞
雖然消息在洋蔥路由網絡中被層層加密,但是在出口節點時,該節點會把最后一層解密并將原始消息傳給接收者;因此若出口節點遭到攻擊或是受控制,則原始的消息將會被截取。瑞典研究員丹?伊格史塔德(瑞典語:Dan Egersta)曾用此方式獲得了超過100封寄給外國大使館的電子郵件密碼。出口節點漏洞的原理與未加密無線網絡很類似,后者為用戶將未加密的數據在無線網絡上傳送時可能中途被其他人截走;這兩種問題都可以透過端對端加密連接如SSL、HTTPS等方式解決。
條目
??密碼學
??迪菲-赫爾曼密鑰交換
??Java Anon Proxy
??俄羅斯娃娃
??代理服務器
??黑暗網絡
參考資料 >