技術人員的 Tor

2015 年 6 月 15 日



Tor 是一種技術,現今新聞文章中經常出現。然而,對於 Tor 有許多誤解。甚至許多技術人員只看到它被用於負面目的,但 Tor 遠遠不只如此。它是民主和言論自由的重要工具 - 但它也是技術人員日常生活中非常有用的東西。Tor 也是一個有趣的案例研究,說明如何設計具有非常特定安全性需求的系統。

網際網路目前是一個相當惡劣的地方。有各種威脅,從 腳本小子網路釣魚攻擊到世界許多主要情報機構普遍的 大規模監控。這些問題的嚴重程度直到最近才變得明顯。在此背景下,像 Tor 這樣的工具填補了一個非常重要的利基市場。你可以說,這是一個時代的徵兆,甚至像 Facebook 這樣的公司也鼓勵 使用 Tor 來存取他們的服務。現在是將 Tor 加入你的工具庫的最佳時機。

Tor 如何運作?

Tor 的目標是啟用匿名網路流量。Tor 一詞最初代表洋蔥路由器(儘管 Tor 不應像縮寫一樣大寫)。洋蔥路由是 Tor 用來隱藏用戶端 IP 位址的方法。這也帶來了一個額外好處,讓中間的任何人極難看出誰在網路上要求哪些資訊。實際上,這表示如果有人攔截您電腦附近的流量,Tor 會隱藏您正在與哪些伺服器通訊。如果有人攔截伺服器附近的流量,他們將無法看出誰正在拜訪該伺服器。

Tor 的運作方式是讓數千名志工主機稱為 Tor 中繼站的東西。這些基本上是花費所有時間轉送流量的伺服器。因此,當您想要存取服務時,執行在您電腦上的 Tor 用戶端程式會選擇三個不同的中繼站。然後,它會取得資訊封包,並使用公開金鑰密碼學將它們包在加密中。它會對封包加密三次,對選用於此通訊階段的中繼站的每個公開金鑰加密一次。然後,它會將三重加密封包傳送給清單上的第一個中繼站。該中繼站會解開針對自己的加密,剩下的就是具有兩層加密的封包。第一個中繼站會將封包傳送給第二個中繼站,第二個中繼站會解開另一層加密。它會將此傳送給最後一個中繼站,最後一個中繼站會解開最後一層加密。由於沒有加密了,最後一個中繼站知道封包的實際目的地,因此它會連絡最初要求的服務。然後,它會收到答案,並使用相同的流程反向傳送資訊。

最後一個中繼站通常稱為出口中繼站。第一個中繼站通常稱為入口中繼站。這種運作方式只有入口中繼站知道您電腦的實際 IP 位址,而只有出口中繼站知道您實際上想要連絡哪個服務。而且,該服務只會看到出口中繼站的 IP 位址。所有這些事情結合在一起,可以很好地保護用戶端的匿名性。

一個重點是,您不必信任所有 Tor 中繼站,才能信任 Tor 網路。由於任何人都可以設定自己的中繼站,因此沒有什麼可以阻止惡意行為者設定中繼站。因此,Tor 的設計即使發生這種情況也不會受到影響。

Tor 明確設計為 低延遲網路,表示在良好情況下,可以使用它進行即時通訊、音訊會議或甚至視訊會議。

Tor 軟體用戶端

如果您想使用 Tor,有兩個選項:第一個是執行用戶端程式,第二個是下載並執行稱為 Tor 瀏覽器套件 的程式。如果您想將 Tor 用於網路以外的其他類型的流量,直接執行 Tor 用戶端軟體會很有用。安裝通常透過作業系統的常規套件管理系統進行,安裝後,它應該在您的機器上於背景執行,而您完全不必執行任何動作。由於 Tor 作為代理伺服器運作,您不會直接與 Tor 互動。相反地,您要求您的常規程式透過 Tor 進行流量通道。

預設情況下,Tor 用戶端程式會使用稱為 SOCKS 的通訊協定,監聽埠 9050,這是一個標準代理協定,許多應用程式都可以設定為使用。例如,我使用稱為 Gajim 的程式進行即時通訊。在此程式中,我已設定所有帳戶透過指定正確的 SOCKS 代理設定,透過 Tor 進行連線。

如果您使用命令列工具,通常可以使用稱為 usewithtortorsocks 的程式,以透明的方式讓程式使用 Tor。也有其他使用 Tor 的方式,Thunderbird 可以設定為透過 Tor 執行所有流量,如果您想讓您的電子郵件更難以追蹤和攔截,但手動設定 Thunderbird 中的 Tor 有一些風險。有許多可能的資訊外洩類型,例如 DNS 查詢、標頭中的地理位置資訊,甚至在某些情況下郵件標頭中的 IP 位址。幸運的是,有一個稱為 TorBirdy 的外掛程式,它自動執行許多步驟,並嘗試阻止此類不安全的資訊外洩發生。

Tor 瀏覽器套件

使用 Tor 最簡單的方法是下載 Tor 瀏覽器套件,甚至不必安裝,它可以在下載後直接執行(您也可以將它放在 USB 隨身碟或 DVD 中,並從那裡執行)。Tor 瀏覽器套件基本上是 Tor 用戶端軟體與高度自訂瀏覽器的結合。由於瀏覽器有許多可能洩露您匿名性的方式,還有許多其他可能威脅您安全性的因素,因此 Tor 瀏覽器套件比僅設定您的常規瀏覽器使用 Tor 安全得多。

Tor 瀏覽器套件附帶多個外掛程式,將改善您的隱私權,它也已設定為不會透過字型設定、Flash 外掛程式和其他功能等側頻道洩露資訊。

隱藏服務

Tor 還有另一個有趣的特色,最近備受矚目。Tor 隱藏服務讓服務可以隱藏其 IP 位址,就像一般的 Tor 操作讓客戶端可以隱藏其 IP 位址一樣。它的運作方式是使用稱為會面協定的東西,這有點複雜。基本上,你可以想像客戶端和伺服器都建立了自己的三個中繼器完整電路。然後它們在中間某個地方會面,在 Tor 網路中的某個地方,然後從那個點開始建立連線。一般來說,隱藏服務是使用 .onion URL 找到並聯絡的,它包含 16 個字母數字字元,後面接著 .onion。這 16 個字元是隱藏服務公開金鑰的表示,這表示連線的路由是自我驗證的。沒有人可以在不竊取其私鑰的情況下偽裝成隱藏服務。

隱藏服務極為強大,原因有幾個。首先,它們讓服務提供者可以匿名。這當然已經被用於許多好的和壞的原因。其次,如果你只公開一個服務作為隱藏服務,你可以強制你的客戶端使用 Tor,這讓他們更難意外公開其資訊。第三,隱藏服務是以一種方式實作的,讓流量永遠不會離開 Tor 網路。隱藏服務沒有出口中繼器。這表示與隱藏服務的通訊將始終加密到服務。這對一般的 Tor 連線不一定成立。最後,你可以在沒有公開可路由 IP 位址的情況下公開隱藏服務。如何使用這一點的一個非常實際的範例是公開 SSH 作為隱藏服務。這讓你可以在任何地方 SSH 到你自己的伺服器,而無需開啟防火牆或擁有公開 IP。我在家裡執行多個無法公開存取的伺服器,能夠 SSH 到它們並管理它們無論如何都是極為強大的。

Facebook 最近透過將其伺服器公開為隱藏服務而引起轟動。這是向前邁進的一大步。因此,您可能會問,這是否為您參與專案時應執行的步驟。一般來說,我會說是的,儘管這確實需要一些額外的作業和測試。讓您的使用者可以使用此功能,對所有人而言通常是有益的。

橋接器和混淆協定

在某些地區,審查情況十分嚴重,以致於無法以一般方式使用 Tor。大多數時候,這是因為他們會封鎖所有 Tor 中繼的所有流量。由於 Tor 中繼必須公開,因此審查者可以輕鬆下載要封鎖的 IP 清單。

由於這種情況,Tor 軟體支援稱為橋接器的事物。這些是未公開的入口中繼,如果您需要,可以在執行時要求一個。有時必要的另一個解決方案是使用混淆的通訊協定。由於最先進的審查者會使用深入封包檢查,因此 Tor 流量偽裝成其他類型的流量非常重要。目前 Tor 中實作了幾個不同的外掛程式來解決此問題,但這是與審查競爭的持續軍備競賽。

匿名性難以達成 - Tor 無法防護哪些情況?

Tor 是一種工具,就像任何工具一樣,它有擅長的事物,也有不擅長的事物。重要的是要知道 Tor 無法防範所有威脅。即使您正確使用 Tor,仍有事項需要記住。

在使用 Tor 時,匿名性和安全性方面最大的日常問題是,如果您傳送至伺服器的流量未加密,則 Tor 將無法提供協助。具體來說,您與前兩個中繼之間的流量將會加密且難以攻擊。但是,出口中繼將能夠看到通過的所有流量。防範此問題的方法是使用將您的資訊加密到端點的通訊協定(例如 HTTPS 或具有 STARTTLS 的 SMTP)。另一種方法是使用公開隱藏服務的服務,這可確保您獲得所有流量的端對端加密。

Tor 通常被歸類為低延遲網路。這對匿名性有影響。基本上,Tor 的設計方式是,如果攻擊者可以觀察中繼之間的大量網路流量,他們就有可能對大部分流量進行去匿名化。原因是,由於 Tor 流量應即時傳出和傳回,因此有可能對封包時間進行關聯。這可能導致隱私權外洩。然而,這正是 Tor 的設計方式。目前的研究所暗示,如果你想要接近即時流量的東西,基本上不可能獲得完全的匿名性。如果你願意等幾個小時讓每個封包抵達,則有 其他類型的技術 可供使用,但 Tor 並非針對這些使用案例設計。

如果你犯錯並以任何方式公開你的 IP 位址,Tor 也無法保護你。一個典型的不良範例是使用 Tor 進行點對點檔案分享,這不僅會破壞 Tor 網路,也無法隱藏你的位址,因為大多數檔案分享協定會公開你的真實 IP 位址。如果你想要確保不公開你的 IP 位址,你也需要避免執行可能會公開它的外掛程式。這就是 Tor 瀏覽器套件不附帶 Flash 外掛程式的其中一個原因,因為它從隱私權的角度來看太危險了。

如果你將你的伺服器公開為隱藏服務,也會出現相同的警告。如果你真的想要保持隱藏,你需要確保你的伺服器元件都不會以任何方式公開你的 IP 位址。這說起來容易做起來難,正如下一節將討論的。

Tor 失效了嗎?

當我與技術人員討論 Tor 時,我會遇到的較常見問題之一是,我是否認為 Tor 已損壞,或者我們是否真的可以信任它,政府是否已在其中放置後門等。關於 Tor 有許多謠言和理論,而且通常它們只是謠言和理論。話雖如此,正如我在上面提到的,Tor 並不能防範所有事情。然而,如果 Tor 包含後門,我會感到非常驚訝。該程式碼是開源的,而且多年來許多專家都看過它。該協定也是開放的,並且已在其他開源專案中實作多次。當然,不排除存在沒有人注意到的後門,但就我個人而言,我不會賭它。我建議任何擔心這種情況的技術人員花幾個小時瀏覽原始碼。該專案永遠需要更多人監督。

研究

話雖如此,Tor 已損壞過很多次。造成這種情況的主要原因是,匿名性極其困難,而 Tor 正在突破以前所做的事情的界限。因此,Tor 是研究人員喜愛探討的主題,看看他們是否能找出讓它執行意外操作的方法。這也是我們了解匿名性硬性限制所在位置的主要方式。Tor 是許多研究的主題,這最終對社群有益,因為每次發表一篇討論 Tor 弱點的新論文時,Tor 開發人員都會修復它。一開始沒有什麼是完美的,所以這種反覆運算和修復的方式就是我們達到可以信任工具的狀態。

2014 年的事件

人們擔心 Tor 的安全性程度,原因之一是過去幾年發生了一連串可疑事件。具體來說,Tor 的使用者和使用隱藏服務的人都在各種情況下被逮捕。然而,在這個時間點,我們沒有任何跡象表明這些逮捕行動實際上是因為 Tor 軟體或協定的缺陷。在我們所知道的情況中,原因似乎可以歸因於各種錯誤。在一個案例中,Tor 瀏覽器套件所依據的 Firefox 版本有一個錯誤,因此警方接管伺服器後,他們可以攻擊這個瀏覽器並解除相關使用者的匿名性(但僅限於造訪那個特定隱藏服務的人)。在第一個絲路市場的案例中,很明顯調查人員設法駭入管理員介面,並說服它傳回其真實 IP 位址。

然後我們有 行動代號 Onymous。這項行動是幾個不同執法機構之間的合作,目的是要關閉大量的非法線上市場。這項行動有趣的地方在於它周圍的所有宣傳。最初他們聲稱已經關閉了 400 多個隱藏服務。但在塵埃落定後,似乎只有 27 個網站被關閉,而且只有 17 人被逮捕。你仍然可以辯稱這是一個很大的數字,因為它們應該受到 Tor 和隱藏服務的保護。但事實是,顯然絲路市場 2 的主機人把他的名字寫在某個地方——執法機構把他帶走並開始訊問他。顯然他指出了其他 16 個人,這些人隨即被逮捕,他們的電腦也被扣押。因此,這不涉及任何 Tor 漏洞——儘管英國的一個執法機構實際上發了一則推文,嘲諷 Tor 被破解了。這都是宣傳。更多資訊可以在 這部影片 中找到。

此外,查看愛德華·斯諾登洩露的 文件,很明顯最強大的攻擊者似乎沒有好的方法來破解 Tor。我發現這非常令人鼓舞。

Tor 的日常使用

現在你對 Tor 有了更好的了解,是時候讓我們快速討論一下你如何在日常工作中使用 Tor。正如你可能從上面的資訊中猜測到的,Tor 可以用於許多不同的目的。但對於開發人員所做的工作類型,使用 Tor 可以做的第一件也是最簡單的事情就是以不同的方式測試你的系統。在許多情況下,很難在沒有 cookie 和個人化的情況下看到系統的樣子。Tor 讓這變得非常容易。

你可以做的另一種測試是讓系統很容易嘗試,看起來它來自許多不同的國家。你可以控制 Tor 使用的中繼,以控制你的流量將從哪個國家傳出。

正如我之前提到的,將 SSH 放在 Tor 隱藏服務的後面是一種非常有用的方式,可以從地球上的任何地方存取你的系統,這種方式會在你的連線上放置至少兩層加密。然而,即使對於這樣的設定,擁有良好的密碼(或僅對 SSH 使用公鑰登入)並讓遠端無法登入 root 帳戶非常重要。

Tails

如果您碰巧處於 Tor 對您絕對必要且預期會受到強敵攻擊的情況,您將會陷入棘手的處境。僅在您的常規機器上安裝 Tor 並非必然足夠。因此,有一個名為 Tails 的專案,它是一個從 CD/DVD 或 USB 隨身碟執行的 Linux 發行版。它預先設定為透過 Tor 傳送網路流量,並具備許多其他隱私和匿名功能。它隨附多種不同的工具,讓您可以輕鬆地私下通訊、傳送加密電子郵件,並以安全的方式處理文件。

Tails 有趣的地方在於它完全失憶,在您執行它之後,它不會在您的電腦上留下任何痕跡。它可以儲存少量資料,但預設不會留下任何痕跡。

Tails 並非您在日常工作中會需要用到的東西,但在某些情況下,像 Tails 這樣的東西會非常強大。每位記者都應該知道如何使用它,每位律師也一樣。它是一個強大的工具,在有必要使用它之前做好準備是一個好主意。

結論

Tor 是一個絕佳的工具,可以執行許多驚人的任務。它是當今以安全方式部署的有用密碼學最強大的範例之一。不過,正如我們所見,沒有任何工具是完美的。為了正確使用 Tor,最好了解它的運作方式。作為下一步,我建議您下載 Tor 並試用看看。關於匿名的有趣之處之一在於它喜歡有伴,即使您不需要匿名,您也可以透過使用 Tor 來保護需要匿名的人。有一天您可能會繼續執行自己的 Tor 中繼,這會為所有人改善 Tor 網路。


重大修訂

2015 年 6 月 15 日:首次發布