關於洋蔥路由

網路通訊的傳輸模式基本上是以儲存後轉送的方式運行,概念上類似於傳統的郵遞運送方式,也就是說傳輸連線會資料以稱為整塊IP datagram為單位的形式送出,有時這也稱作資料封包。 每個資料封包裡都會含有一個來源IP位址(資料發送者)以及一個目的IP位址(資料接收者),就和傳統的郵件一樣會有寄件者與收件者。 從發送者到接收者之間會經過多個站點轉換,途中每個路由器都會先去檢視資料封包裡的目的IP位址,再將資料封包往下一個更接近目的地的方向轉送出去。 因此,在發送者與接收者中間的所有路由器,都可以確切的知道通訊雙方的身份與活動內容。 而且特別是您的網路服務供應商,它更能夠把您的網路活動歷程記錄彙整成完整的行為特徵模式。 此外,在網路上的每個能夠看見您的資料封包的伺服器,都能夠把您的網路活動歷程彙整成行為特徵模式。

洋蔥路由的目標,就是藉由把您的網路連線流量經過多個不同的代理伺服器間接轉送,進而強化您的隱私保護。 您的連線傳輸資料會被多層加密,並且經過洋蔥路由網路中的多個不同節點間皆轉送後,才能抵達目的接收者。 您可以參閱這個視覺化頁面了解此流程的更多細節。 在這種模式下,您的網路服務供應商所能觀察到的,就只有您正在與洋蔥路由節點通訊這件事實。 同樣的,對於網站伺服器而言,它也只能知道有來自洋蔥路由節點的訪客連上線。

總括而言,洋蔥路由的目標就是要解決這三個隱私的問題:

第一就是,洋蔥路由能有效防止網站或其他網路服務得知您的真實位置,因為這項資訊可被用來記錄並彙整出您的個人行為模式特徵,像是您的個人興趣與嗜好等。 有了洋蔥路由的保護,您的網路連線活動本身就不會透露出這些資訊,因此您就有權利可以選擇,針對每條連線決定要透露出哪些資訊給對方。

第二則是,洋蔥路由能夠有效防止在地端的監控者(例如您的網路服務供應商或者在您家中共用區域網路的人)得知您的網路活動內容,包括您下載了什麼資料以及連上了什麼網站等。 它同時也能防止那些監控者藉由識別出您的網路活動內容來進行審查過濾,因為若您能夠連接上洋蔥路由網路,您就能夠連上網際網路上的任意網站。

第三則是,洋蔥路由會將您的連線傳輸資料透過多個洋蔥路由中繼節點來轉送,因此沒有任何一個節點能夠得知您的網路行為內容。 因為這些中繼節點都是由不同的個人或團體所架設維護的主機,這種分散式信任模式的網路會比傳統的單站式代理伺服器還要更加安全可靠。

但仍請注意,在某些情況下洋蔥路由的隱私保護機制仍無法完全發揮,更多詳情請參閱仍可行的攻擊方式

如上所提,若有監聽者可以同時觀察到您的電腦以及目的網站或出口節點兩邊的網路連線流量的話,是能夠利用您的連線流量進入與離開洋蔥路由網路時的活動來進行時差匹配攻擊。 洋蔥路由目前並無法防範這樣的威脅模式。

在某些特定情況中,如果監聽者或執法單位能夠監看特定一部分的網路流量的話,透過觀察連線的頭尾兩個端點的網路流量並進行時差匹配分析的話,是有可能會發現並懷疑您經常與您的某個朋友聯繫。 再次強調,這種情況必須是基於他們已經盯上並懷疑某個特定目標時才有可能做到。 在大部份的國家裡,以嫌疑犯的相關懷疑要件申請法院核發的搜索票,會比時差匹配分析的結果還要更容易。

此外,由於洋蔥路由會重複使用迴路通道來執行多條TCP連線,因此要在同一個出口節點上將匿名與非匿名的連線流量匹配關聯在一起也是有可能做到的,因此您隨時都要留意有哪些應用程式正在同時使用洋蔥路由。 或許甚至最好是為這些應用程式執行獨立的洋蔥路由客戶端程式。

其實「Tor」這個字可以意指幾個不同的事。

洋蔥路由是一個程式,您可以在您的電腦上執行來幫助維護您在網路上的安全。 它可以藉由將您的網路通訊資料透過分散式網路中多個由志願者所架設維運的中繼節點主機來回轉送,進而保護您的隱私:防止任何正在監聽您的網路的惡意人士得知您正連上了哪個網站,也同時防止您所連上的網站得知您的真實地理位置。 由志願者所架設維運的中繼節點組成所謂的 Tor 網路。

大部分的人是利用 Tor 瀏覽器來使用 Tor 的,它是一個 Firefox 瀏覽器的改良版本,有特別針對隱私保護機制做了許多修補。 您可以在參閱我們的關於頁面,以了解更多洋蔥路由的資訊。

洋蔥路由專案計畫是一個非營利(慈善)組織,負責開發與維護洋蔥路由軟體。

它的全名就是洋蔥路由網路。 在西元2001-2002年時,我們開始進行下一代的設計與開發,但當時我們跟別人說我們在開發洋蔥路由時,他們常常會問說:「好棒!是哪一個洋蔥路由?」 儘管說洋蔥路由已經成為大家熟悉的名詞,然而我們的Tor其實是從美國海軍實驗室的洋蔥路由計畫裡誕生的。

(這個字在德文與土耳其文裡也有特別的含意。)

注意:儘管說它最初是由縮寫而來的,但是仍不應該寫成「TOR」。 只有第一個字母需要大寫而已。 實際上,我們發現有些還沒造訪過我們網站(或深入了解我們洋蔥路由相關資訊)的人,常常會寫錯這個字。

不會,答案是否定的。 您需要使用另一套能夠理解該應用程式與其所使用通訊協定的獨立的程式,才能夠去清除或者過濾它所傳送的資料。 Tor 瀏覽器會盡可能的把應用程式資料維持一致,例如標頭裡的 user-agent 欄位字串,以便讓所有的使用者連線看起來皆相同。 然而,對於您在網頁表單裡所輸入的文字,Tor 瀏覽器就完全無法控制了。

典型的代理伺服器提供者會在網路上架設一台伺服器,並幫您把網路流量透過它來轉送。 這是一個簡單且易於維護的設計架構。 所有的使用者連線都會透過同一臺伺服器出入。 服務提供者可能繪像使用者收取費用,或者是透過在伺服器上的廣告來取得營收。 在最簡易的設定中,您甚至不須額外安裝任何軟體。 您只需要將您的瀏覽器連線導向該代理伺服器主機即可。 如果您不在乎個人隱私與匿名性保護,且對於服務提供者也完全信任的話,簡易型的代理伺服器是可以是不錯的解決方案。 某些簡易型的代理伺服器提供者還會使用SSL來保護您的網路連線,以免您的網路流量被他人竊聽取得,尤其是當您在公共咖啡廳使用免費無線網路服務時。

簡易型代理伺服器服務的設計架構,也造成了單一失敗環節的弱點。 因為該服務提供者可以同時掌握到您的真實身份,以及您在網路上的所有活動歷程。 由於您的網路流量都透過他的伺服器來轉送,因此他都可以看的一清二楚的。 在某些情況下,當您連上銀行或電子商務網站時,他們甚至還可以看到您的加密連線內容。 您必須要對於該服務的提供者完全信任,相信他們不會窺視您的網路連線資料,也不會在您的網路連線資料流中注入廣告或側錄您的私密資訊。

洋蔥路由的原理是將您與目標網站間的網路連線資料,透過3個不同的伺服器間接轉送。 且由於每個中繼節點間都有獨立的加密層保護,因此任何正在監控您的網路連線的人,都沒有辦法可以閱讀或篡改您送上洋蔥路由網路的連線資料。 您的網路連線資料從洋蔥路由客戶端(在您的電腦中)一直到進入開放網際網路空間前,都會全程處於加密狀態。

第一個伺服器沒辦法知道我的真實位址嗎?

答案是有可能的。 三節點迴路上的第一個伺服器,確實是能夠看見被加密的洋蔥路由連線流量從您的電腦中發出。 但是它仍然無法得知您的身份以及您透過 Tor 進行什麼樣的網路活動。 它只能看見「此IP位址正在使用 Tor」而已。 洋蔥路由的保護機制仍能防止它找出您的身份,以及您的網路連線是通往哪個網站。

第三個伺服器主機看不到我的網路連線資料嗎?

答案是有可能的。 在這三個伺服器主機中,如果第三臺主機心懷惡意的話,是可以竊聽到您送至 Tor 資料。 但是它是無法得知這連線流量的來源是誰。 而且如果您的連線是有加密的話(例如透過HTTPS協定),那它頂多也只能知道連線的目的地是誰而已。 請參閱這篇有關於洋蔥路由與HTTPS的圖說,就可以了解洋蔥路由與HTTPS協定兩者間的互動關係。

可以。

洋蔥路由的軟體皆是屬於自由軟體。 這表示說您有權利可以自由的複製或發佈洋蔥路由相關軟體,不論是原封不動或有修改過的版本,皆可以自由或免費的方式發送。 您完全不需要徵求我們的授權同意。

然而,若您想要重新發佈洋蔥路由軟體的話,請務必要遵守我們的授權協議規定。 意思是說,不論您是要發佈我們的洋蔥路由軟體的部份或全部,裡面都必須要包含我們的授權協議檔案。

然而,大部分來詢問我們這個問題的人,都不是只想單獨發佈洋蔥路由軟體。 他們想要分發 Tor 瀏覽器。 這包含 Firefox 延長支持版和 NoScript 擴展。 因此,您也必須要同時遵守該些軟體的使用授權協議規定。 這兩個 Firefox 瀏覽器的擴充元件是以 GNU 公眾授權協議所發佈的,而 Firefox 瀏覽器的 ESR 版本則是以 Mozilla 公眾授權協議發佈。 簡而言之,要遵守這些授權協議規定的基本作法,就是將他們的原始程式碼與可安裝執行的軟體程式檔一起發佈。

同時,您也必須要確保您的使用者能夠正確釐清何謂洋蔥路由、原始開發者是誰、它能夠提供什麼樣的功能特性(以及其能力極限)。 請參閱我們的註冊商標問答集以了解更多細節。

能夠搭配洋蔥路由來使用的應用軟體非常多,但是我們仍未針對它們在程式層的匿名性保護等級進行過全面性的研究,因此目前仍然無法對於安全性設定做任何建議。 我們的維基頁面有一份由社群成員所撰寫維護的洋蔥化特定軟體指引可以參考。 同時也期望您能協助補充該指引以使其更加完善!

大多數人都使用的 Tor 瀏覽器,基本上已經包含了讓您可以安全地上網瀏覽網頁時會需要的所有功能。 以其他瀏覽器搭配 Tor 來使用是危險也不建議的作法。

洋蔥路由裡面完全沒有任何後門。

我們也知道許多聰明的律師都會說,在我們的法律管轄區域(美國)裡,是不太有可能會有人對我們要求或施壓去加入後門的。 如果真的有人這樣做的話,那我們一定會堅決反對,並且通常會勝訴(律師說法)。

我們絕對不會在洋蔥路由裡加入任何後門。 我們認為在洋蔥路由裡加入後門對於我們的使用者來說是非常不負責任的行為,並且對於整個安全防護軟體產業來說也會是一個很差勁的先例。 如果我們在自己的安全防護軟體中加入特製的後門的話,會直接摧毀我們自己的專業聲譽。 此後就再也沒有任會相信我們所開發的軟體了!

儘管是如此,仍然還是有不少隱晦的攻擊方式會被人嘗試利用。 例如有人可能會假冒我們的身份,或者入侵我們的電腦系統之類的。 洋蔥路由是開源軟體,意即您可以隨時查閱其原始程式碼(或是最新的diffs差異比對檔)以尋找任何可疑的線索。 假如我們(或是發佈提供洋蔥路由軟體的人)不給予您取得程式原始碼的話,那就肯定是事有悉翹了。 同時您也應該要利用PGP數位簽章驗證發佈版本的軟體,以確保沒有任何人在軟體發佈網站上動手腳。

此外,有時候在洋蔥路由軟體中也有可能出現意外的漏洞,進而影響您的匿名保護機制。 我們都會隨時檢驗並且修復任何與匿名性保護機制有關的錯誤或漏洞,因此您也應該要把洋蔥路由軟體隨時更新至最新版本。

洋蔥路由(與其他目前實務上常見的各種低延遲匿名通訊系統設計一樣)的連線中,當惡意人士恰好能夠同時監聽同一條連線通道的起點與終點兩端之流量時,匿名保護機制就會完全破功。 舉例來說,當有個惡意人士掌控了您的洋蔥路由入口節點,並且又同時監聽您所造訪的目的網站的狀況下。 針對這樣的情境,目前在學術研究上還沒有找到任何低延遲的通訊系統設計,可以有效防堵惡意人士在同一條連線流量的兩端進行時差匹配分析攻擊。

那我們該怎麼辦呢? 在此假設惡意人士已經掌控並且監聽C個中繼節點。 並假設網路上總共有N個中繼節點。 如果您從網路上選取入口以及出口節點來使用時,那惡意人士能夠針對您的連線流量發動此種匹配攻擊的成功機率大約為(c/n)2。 然而行為特徵分析對於絕大多數使用者來說,跟被全程追蹤監控是一樣糟糕的情況,同樣來說,被攻擊者盯上一次與時常被攻擊者盯上也是同樣危險的。 因此,若使用者每次都隨機挑選入口及出口節點的話,那就幾乎沒有機會可以逃出這種攻擊者的行為特徵分析涵蓋範圍了。

而解決方式就是在「入口護衛節點」身上:每個洋蔥路由客戶端程式只會隨機挑選出少數幾個中繼節點作為入口節點,並且固定只使用這幾個節點作為迴路的第一站。 如果這幾個中繼節點不是被惡意人士所掌控的話,那攻擊者就完全沒有成功的機會,因此使用者也就能繼續保持安全狀態。 即使是這幾個中繼節點是被攻擊者所掌控的話,雖然他能藉此竊聽到使用者的大部分網路連線流量,但是要實際做行為特徵分析的話,成功機率也不會比前一個情境還要高。 因此,相較於前一情境中,使用者完全沒有脫逃攻擊者的行為特徵分析,在現在這樣的設計架構裡,使用者至少還有逃脫的機會(機率為(n-c)/n級數)。

關於更多詳細容您可以參閱匿名通訊協定之降級分析針對匿名通訊被動式歷程記錄攻擊之防禦策略,尤其是這篇位置隱藏型伺服器

且當某些惡意人士企圖利用少量洋蔥路由節點來收集所有洋蔥路由使用者的IP位址時,限縮您的入口節點數量也同時發揮抵禦效果。 (儘管說這種攻擊方式無法得知使用者的網路連線目的站台,但光是取得使用者實際位址清單,在某種程度上就可能造成為害。) 然而,這項功能的效果必須要等到我們正式佈署「目錄護衛節點」機制後,才能夠較為完善。

洋蔥路由用了多種不同的金鑰,它們是為了要滿足幾個要求而設計的: 1. 用於確保洋蔥路由網路中資料保密的加密用金鑰。 2. 用於讓客戶端程式能夠確認與之連線通訊的目標中繼節點身份用的認證金鑰。 3. 用於確保所有客戶端程式取得的中繼節點清單的簽章金鑰。

加密:首先,在洋蔥路由裡所有的連線都會使用TLS加密機制,因此任何監聽者都無法藉由檢視網路資料封包來得知其所屬的迴路是哪條。 此外,洋蔥路由客戶端程式會跟迴路中的每個中繼節點建立專屬的暫時性加密金鑰,這層額外的加密可以確保只有出口節點能夠看到資料封包的實際內容。 且雙方都會在迴路關閉時,將迴路金鑰刪除,因此即使惡意人士在側錄到網路連線資料後,又成功入侵中繼節點伺服器,也無法取得金鑰來將錄得的資料解密。

認證:每一個洋蔥路由中繼節點都擁有一把稱為「洋蔥金鑰」的公開解密金鑰。 每個中繼節點固定每隔四週,就更換自己的洋蔥金鑰。 當洋蔥路由客戶端程式在建立迴路時,其中每個步驟都會要求洋蔥路由的中繼節點證明擁有它所屬的洋蔥金鑰。 如此一來,迴路上的首個中繼節點就無法惡意操控整條迴路上的連線。 由於迴路是由洋蔥路由客戶端程式選擇決定的,因此可以確保洋蔥路由的「分散氏信任」特性:亦即迴路中沒有任何一個中繼節點,能夠同時得知連線的客戶端以及目的端的相關資訊。

協調:客戶端程式如何得知有哪些中繼節點,以及如何確定它們擁有正確的金鑰? 每個中繼節點都擁有一把「身份金鑰」,這是永久性的公開簽章金鑰。 除此之外,每個目錄主管機構也還會有一把「目錄簽署金鑰」。 目錄管理機構為所有已知中繼提供已簽名的列表,列出了每個中繼的一組證書(由它們的身份密鑰自簽名),指定了它們的密鑰、位置、退出策略等。 所以,除非對手可以控制大多數目錄管理機構(截至 2022 年共有 8 個),否則無法欺騙 Tor 客戶端使用其他 Tor 中繼。

客戶端程式如何得知有哪些目錄主管機構?

洋蔥路由軟體內建了一張清單,裡面包含了每個目錄主管機構主機的相關資訊,包括它們的地理位置與公開金鑰。 因此,想要誘騙使用者透過假的洋蔥路由網路來連線的唯一方式,就是誘使他們去執行被特殊篡改過的軟體版本。

使用者如何確認有取得正確的軟體?

當我們發佈軟體套件或原始程式碼的時候,我們都會用GNU Privacy Guard對它做數位簽章。 請參閱如何驗證 Tor 瀏覽器的數位簽章

為了要能夠真的確定該簽章是由我們所簽署的,您就必須要與我們實際見面,並且直接複製我們的GPG金鑰指紋,或是透過已經擁有該指紋的人取得。 如果您真的會需要顧慮到這種層級的安全風險,我們建議您參與資訊安全社群的互動並建立人脈。

假如洋蔥路由的迴路都正常運行無誤的話,那每隔10分鐘洋蔥路由軟體會自動為新的TCP連線切換一個另一個迴路。 (如果現有的迴路出現問題的話,那洋蔥路由就會隨即更換一條新的迴路。)

但是必須注意的是,同一條TCP連線(例如長時間的IRC連線)會永遠停留在舊迴路上運行。 依照我們的設計,是不會把已建立的連線從一條迴路轉移到另一條上。 因為這樣對於有能力長時間監聽部份網路連線流量的惡意人士來說,他們就會有好幾次機會去配對推測您連線的目的網站。