關於TOR洋蔥網路的問與答 - 深網中文

728x90 AdSpace

Trending

關於TOR洋蔥網路的問與答


TOR是一個很老牌的翻牆工具,也是俺在博客中推薦的第一款翻牆工具——當時正趕上朝廷的60大壽,GFW加強封鎖,俺就寫了一篇《 “如何翻牆”系列:戴“套”翻墻的方法 》,算是TOR的入門教程。
4年過去了,雖然新的翻牆工具不斷湧現,但TOR的影響力和用戶數仍然持續增加—— 很多人不僅僅是用TOR來翻牆,更是用TOR來隱匿自己的上網行踪 。 在這期間,俺也收到很多讀者來信/博客留言,詢問關於TOR 的各種問題。 甚至有熱心讀者建議俺專門寫一篇博文,聊聊TOR 的高級話題。
為了幫大夥兒更好地使用TOR,今天再發一篇教程,解答TOR 的各種常見問題。 

不見圖 請翻牆


★TOR 是什麼?


TOR 是洋文(The Onion Router)的縮寫,中文又稱“洋蔥網絡/洋蔥路由”。 簡單而言,這是一款專門設計用於隱匿上網身份的工具。
TOR的官網在“ 這裡 ”。 關於TOR的更詳細介紹,請看維基百科的“ 這裡 ”。


★哪些網友需要使用TOR?


前面說了,設計TOR 的主要目的是為了上網隱匿身份。 所以,跟其它的翻牆工具不同——它的重點功能是"隱匿性","翻牆"只是順帶的功能。
具有如下特點的用戶,可以考慮使用TOR。

◇為了隱匿自己所在的國家


比如有些視頻網站為了版權的原因,會限制某些國家的IP,那麼你可以利用TOR 來偽裝成別國的網民,就可以繞過視頻網站的版權限制。

◇為了隱匿自己的公網IP


比如你想在網上發布敏感的政治言論,那隱匿公網IP是避免被跨省追捕的必要條件 。
(提醒一下:隱匿公網IP只是必要條件,不是充分條件,要避免被跨省,需要考慮多個層面的防範,具體請看《 如何隱藏你的踪跡,避免跨省追捕 》系列博文)。
像俺這種長期抹黑朝廷的博主,TOR 是上網的必備工具。 俺即使訪問國內網站,也要走“基於TOR 的多重代理”。 (關於“多重代理”,後面還會提到)

◇為了保護隱私


剛才已經說了TOR 的特點,在隱私保護方面,TOR 優於其它的翻牆工具。 為了說明TOR 在隱私方面的優點,拿TOR 跟VPN 做一個對比。
很多網友使用VPN 翻牆,而且長期使用固定的VPN 提供商。 萬一VPN提供商在VPN服務器上記錄你的上網行為,那你的所有上網行踪就暴露無遺。
而如果使用TOR,就可以大大降低這種風險——具體原因,下面會聊。


★軟件安裝方面的問題


◇Vidalia 跟TOR 是啥關係?


TOR 本身只提供命令行,沒有圖形界面。 Vidalia 是專門為TOR 量身打造的圖形界面。
在Vidalia 的圖形化界面上,你不但可以配置各項參數,還可以監控TOR 的流量和TOR 的線路(後面會提到)。

◇如何獲取TOR 的軟件包?


關於這個問題,在2009年的入門教程《 “如何翻牆”系列:戴“套”翻墻的方法 》中已經介紹過,此處不再羅嗦。

◇應該選擇哪個安裝包?


先說明一下,TOR 是跨平台的。 同時支持主流的:Windows、Linux、Mac OS X。
在TOR 官網有兩個下載頁面,分別如下:

https://www.torproject.org/download/download-easy.html.en
(這個是面向菜鳥用戶的,每個操作系統只提供一個下載鏈接)

https://www.torproject.org/download/download.html.en
(這個是面向高級用戶的,每個操作系提供多種軟件包供你選擇)

後一個鏈接提供的多種選擇,俺稍微解釋一下。

Tor Browser Bundle
這個軟件包捆綁了Firefox瀏覽器( 對於2.3.25之後的版本,監聽端口改為9150 )。
Vidalia Bridge Bundle
這個軟件包沒有捆綁Firefox,是用來搭建一個網橋( 監聽端口是9050 )。
Vidalia Relay Bundle
這個軟件包沒有捆綁Firefox,是用來搭建一個中繼節點/中轉節點(Relay 和Bridge 的區別,下面會說)。
Vidalia Exit Bundle
這個軟件包沒有捆綁Firefox,是用來搭建一個出口節點(啥是“出口節點”,下面會介紹)。
Expert Bundle
這個軟件包是面向高級用戶,只有赤裸裸的TOR,沒有其它額外的東西(沒有圖形界面)。

估計很多人都不習​​慣使用TOR 內置的Firefox 瀏覽器。 這種情況下,你可以考慮使用Vidalia Bridge Bundle這個軟件包。 它比較小(不到10兆),而且你可以在自己的瀏覽器上設置代理,不需要使用Tor Browser Bundle 內置的Firefox。

◇Bridge 和Relay 有啥區別?


Bridge 中文就是“網橋”。 tor 的網橋是一種特殊的中轉節點。 它跟其它中轉節點的差異在於:普通的中轉節點,其信息會被加入到TOR 在全球的目錄服務器,所以普通的中轉節點會被所有的人看到,並用來進行流量中轉。
而你自己搭建的網橋,其信息不會被加入到全球的目錄服務器——只會被你自己所用。

◇Linux 用戶如何獲取軟件包?


因為TOR 的名氣大,那些主流的發行版基本上都提供TOR/Vidalia 的軟件包。 如果你用的是主流的發行版,直接用系統的軟件包管理工具,就可以自動安裝/自動升級TOR 和Vidalia。

◇Mac OS X 用戶如何獲取軟件包?


使用蘋果系統的用戶,可以看官網的” 這個文檔 “。 裡面有介紹如何通過“Homebrew 包管理器”安裝TOR。


★瀏覽器方面的問題


◇如何配置瀏覽器的代理?


(如果你使用的是Tor Browser Bundle 內置的Firefox,就無需再額外配置瀏覽器代理了)
早先的TOR 客戶端同時提供HTTP 代理和SOCKS,大概從2013年開始,新版本的客戶端不再提供HTTP 代理了。 所以原先的8118 代理端口也就廢棄了。
今後大夥兒需要用TOR 提供的SOCKS 代理來上網,端口號如下:
9150(2.3.25版本之後的Tor Browser Bundle 軟件包)
9050(其它的軟件包)

Firefox的代理設置如下圖(至於Chrome、IE、或其它瀏覽器,列位看官請依樣畫葫蘆):



(順便說一下:SOCKS 代理其實比HTTP 代理更好,關於兩者的差別,俺抽空寫一篇掃盲)

◇如何判斷自己的瀏覽器是否在走TOR 的線路?


TOR官網提供了一個測試界面,網址是https://check.torproject.org/猛擊該超鏈接,會打開一個界面。
如果你的瀏覽器已經在使用TOR 的線路,會出現一個綠色洋蔥頭,以及一行綠色的洋文提示。
如果你的瀏覽器沒有走TOR 的線路,會出現一個帶紅色打叉的洋蔥頭,同時還有一行紅色的洋文警告。

◇Tor Browser Bundle 內置的Firefox,有啥特殊之處?


這個內置的Firefox 跟普通的Firefox 有如下幾個差異:

1.版本差異 <br />這個內置的Firefox採用Mozilla官方提供的長期支持版本(洋文叫ESR),而不是最新版本。
因為最新版本總是會增加很多新功能,可能會引入潛在的安全漏洞;而ESR版本相對而言比較穩健。
2.配置差異 <br />這個內置的Firefox專門進行了一些安全方面的定制(比如禁用JavaScript)

◇為啥Tor Browser Bundle 內置的瀏覽器無法看視頻?


因為這個內置的瀏覽器沒有裝Flash 播放插件。 而大多數視頻網站需要Flash 插件來播放視頻。


★隱私方面的問題


這一節是本文的重點,看仔細嘍。

◇TOR 客戶端如何建立聯網的線路?


如果你比較好奇,為啥TOR 的隱匿保護好於其它翻牆工具? 那麼有必要了解一下TOR 客戶端的聯網機制。 下面這三張圖來自TOR 的官網。 因為圖片中是洋文說明,俺稍微修改了一下,注上中文。


第1圖:當TOR 客戶端啟動之後,會首先連接TOR 的目錄服務器。 從目錄服務器中獲取全球的TOR 節點信息。


第2圖:假設你要訪問網站1,那麼TOR 客戶端會隨機挑選三個節點用於中轉。
為了打字方便,俺把這三個節點分別稱為:
入口節點 :
如果你僅僅使用TOR 聯網,該節點直接跟你的電腦相連;如果你使用雙重代理,入口節點跟你的前置代理相連。
中間節點 :
介於入口節點和出口節點之間(這個節點的威脅最小)。
出口節點 :
該節點直接跟你訪問的目標網站相連( 這個節點的威脅最大 )。

這三個節點中,只有“出口節點”會看到你的“上網行為”(圖中標紅色的虛線,表示TOR節點會看到 “原始流量”)。
所謂的“上網行為”包括:你訪問了哪個網站,你​​從網站傳輸的流量。
如果這個網站使用加密的HTTPS 協議,“出口節點”看到的“原始流量”是HTTPS 的密文,沒啥關係;反之,如果這個網站使用明文的HTTP 協議,那麼"出口節點"會看到你從該網站發送/接受的內容( 這是主要風險點 )。
除了 ​​“出口節點”,其它節點完全無法知道你的上網行為(圖中標綠色的線,表示TOR節點看不到 “原始流量”)。


第3圖:TOR 為了加強隱匿性,會動態變化中轉線路。 也就是說,每隔一段時間(約10分鐘),就會隨機挑選三個節點,重新構造一條傳輸線路。
因為線路動態變化,“​​出口節點”自然也動態變化。 所以,即使“出口節點”偷窺你的上網行為,也只能看到一個短暫的片段。

◇TOR 節點是否會偷窺到自己的隱私/上網行為?


如果你弄懂了前一個問題的三張原理圖,那你自然就知道, 只有“出口節點”會看到你的上網行為 。

◇如何避免TOR 節點看到你的上網行為?


前面說了,“上網行為”包括兩部分:
1. 你訪問了哪個網站
2. 你從網站傳輸(發送、接受)的流量

對於第1點,是無解的!
不管採用哪種工具來隱匿行踪,最終,你都需要有某個"主機"幫你把數據送到你要訪問的網站。 所以,這個"主機"必然就知道你訪問了啥網站。
對於第2點,是有解的。
主要方法就是:盡量採用HTTPS 協議。 比如像維基百科,同時支持HTTP 和HTTPS。 那麼你就應該採用HTTPS 方式訪問。 這種情況下,TOR 的“出口節點”只知道你訪問了維基百科,但是無法知道你訪問了哪個頁面。
為了養成經常使用HTTPS的習慣,建議大夥兒安裝EFF官方提供的HTTPS everywhere

◇如何知道正在使用哪些中轉節點?


關鍵是看Vidalia 的“網絡地圖”。 在Vidalia 的主界面(控制面板)上,直接就有“網絡地圖”的按鈕。 你點了這個按鈕之後,會出現如下界面。
相關的說明,俺已經標註在圖中。
在右下方的那個框中,會列出線路中的三個節點,依次是:入口節點、中間節點、出口節點。

◇什麼是“陷阱節點”/“蜜罐節點”?


某些國家(比如咱們天朝)的政府會設置“蜜罐節點”。 所謂的“蜜罐節點”,通俗的說,就是陷阱。
如果你使用的線路中,“出口節點”正好是蜜罐,那麼該蜜罐就會窺探到你的上網行為——前面已經說了,出口節點肯定會知道你的訪問了哪個網站。 並且,假如你訪問的目標網站沒有HTTPS 加密,蜜罐就會知道你瀏覽的頁面內容。

◇如何避免“陷阱節點”/“蜜罐節點”?


比較簡單的做法,就是通過修改TOR 的配置文件,規避這些不安全國家的節點。
對於天朝的網友,你至少需要屏蔽“大陸、香港、澳門”這三個節點。 因為這三個地區都可能被六扇門設置蜜罐。
TOR 的配置文件名叫torrc,這是一個文本文件,用記事本就可以打開。 (如果你找不到該文件,在系統盤中搜索一下torrc 這個文件名)
在該文件末尾,加入下面這行(ExcludeNodes 表示排除這些國家/地區的節點,strictnode 表示強制執行)。
  ExcludeNodes {cn},{hk},{mo}     strictnodes 1    
關於strictnode,俺補充說明一下:
如果不設置strictnode 1,TOR 客戶端首先也會規避ExcludeNodes 列出的這些國家。 但如果TOR 客戶端找不到可用的線路,就會去嘗試位於排除列表中的節點。
如果設置了strictnode 1,即使TOR 客戶端找不到可用的線路,也不會去嘗試這些國家的節點。

除了上述三個地區,還有幾個國家跟天朝串通一氣。 如果你對安全性的要求比較高,可以把這些國家也列入TOR 的排除節點列表。
下面給出這些流氓國家的代碼,你依樣畫葫蘆加入到ExcludeNodes 那一行,國家代碼之間用逗號分隔。
北朝鮮{kp}
伊朗{ir}
敘利亞{sy}
巴基斯坦{pk}
古巴{cu}
越南{vn} 

◇TOR 的加密流量能否被破解?


根據斯諾登曝光的材料,NSA 目前具備的運算能力,可以解密很大一部分TOR 流量。
因為目前的TOR 中繼服務器,大部分還在使用1024 位的DHE 密鑰,這類密鑰雖然普通人難以破解,但是NSA 掌握的運算能力可以在幾小時內暴力破解。 目前只有10% 左右的中繼服務器採用ECDHE 密鑰(基於橢圓曲線)。 這類ECDHE密鑰NSA比較難破解(更多介紹請看“ 這篇報導 ”)。
至於天朝方面,肯定沒有NSA 這麼牛的破解能力。 所以天朝的同學們,咱們暫時還不用擔心這個問題:)
另外,等到大部分中繼服務器升級到2.4 版本,ECDHE密鑰的使用就會普及,到時候這個風險會減低。

◇啥是流量關聯分析?


先聲明:流量關聯分析有很多種。 這裡說的是“ 針對TOR的流量關聯分析”。
“關聯分析”是數據挖掘的一種手段——先積累足夠多的數據,然後通過某種算法找出數據之間的某些相關性特徵。 考慮到數​​據挖掘不是本文的主題,就不深入介紹了。
簡單而言,如果某個攻擊者能夠監控你接入TOR 網絡的流量(入口節點之前的流量)以及你離開TOR 網絡的流量(出口節點之後的流量)。 那麼經過足夠長時間的數據積累,攻擊者就可以利用數據挖據猜測出:某些網絡行為其實是來自某個公網IP的用戶。

舉例:
如果你僅僅使用TOR(沒用雙重代理)聯網,然後經常到A網站發敏感言論。
假設1:
如果GFW 對所有的TOR 流量都做了記錄(這只是假設,到底有沒有,俺不曉得)
假設2:
A網站對所有的用戶留言做了記錄(很多的國內網站都會記錄)
假設3:
朝廷可以獲取A網站的用戶訪問記錄(只要是國內網站,朝廷肯定能拿到;至於國外網站,要看情況)
假設4:
朝廷針對TOR 部署了關聯分析的系統(這只是假設,到底有沒有,俺不曉得)

如果上述這N個假設同時成立 ,那麼,經過足夠長時間的積累(具體需要多長時間,取決於你發帖的頻繁度),關聯分析系統可以猜測出你是誰。

◇如何規避(針對TOR的)流量關聯分析?


要規避“針對TOR 的流量關聯分析”,目前最直接有效的方法是:多重代理。 因為一旦用了多重代理,TOR 的流量類型就被掩蓋掉了。
比方說:如果你使用VPN+TOR,那麼你的ISP 監控你的流量,看到的是VPN 流量——(因為VPN 加密)ISP 看不到你的TOR 流量。 在這種情況下,流量關聯分析的難度大大提高了。

除了“針對TOR 的流量關聯分析”,還有其它的流量分析技術。 考慮到篇幅,就不深入介紹了。 等俺有空,單獨寫一篇博文,專門聊這個話題。


★雙重代理方面的問題


如果你對“雙重代理”還不太了解,請先看俺之前的博文《 如何隱藏你的踪跡,避免跨省追捕[5]:用多重代理隱匿公網IP 》。

◇為啥要使用雙重代理?


俺總結瞭如下幾個原因:

原因1
因為TOR 的影響力很大,GFW 對TOR 進行重點封殺。 全球大多數的TOR 中繼節點都被GFW 列入IP黑名單。 所以天朝的網友,如果單獨使用TOR,很難聯網成功。 這種情況下,就需要使用雙重代理。

原因2
所有的軟件都可能有缺陷(TOR 也不例外)。 如果你僅僅使用TOR,萬一TOR 出現安全漏洞並且被攻擊者利用,那麼攻擊者就有可能對你進行逆向追溯(說不定能追溯出你的真實公網IP)。
而如果使用多重代理,即使出現上述風險,攻擊者也只能追踪到TOR 的前置代理,而不會直接追踪到你本人。 這樣一來,風險大大降低。

原因3
前面提到,全球的TOR 網絡中可能會有陷阱節點。 雖然你可以利用俺剛才介紹的方法,排除危險國家/地區的節點,但並不能確保萬無一失。
比如說你碰到某個小概率事件——你使用的線路上,碰巧三個節點都是陷阱——這種情況下,你的真實公網IP會暴露。
但如果你用了雙重代理,即使碰到這種小概率事件,只會暴露你使用的前置代理服務器的IP,而不會暴露你的本人的公網IP。

舉例:
一個月前(2013年10月),美國地下網絡“絲綢之路”的站長被FBI 逮捕。 他一直使用TOR,為啥會暴露?
其中一種說法是:他沒有使用雙重代理。 而FBI 利用NSA 的技術(據傳聞是流量關聯分析技術),再加上FBI 本身也設置了蜜罐節點,最終定位了“絲綢之路”站長。

原因4
剛才介紹了針對TOR 的“流量關聯分析”。 如果你使用雙重代理,會降低被關聯分析的風險。

◇哪些工具可以跟TOR 組合雙重代理?


大部分翻牆工具都可以跟TOR 組合。 比如:所有的VPN,無界、自由門、賽風、世界通、等等。
另外,你也可以使用公網上的一些代理服務器(公共代理),用來跟TOR 組合成雙重代理。 前提是:這些“公共代理” 必須支持 HTTPS代理或SOCKS代理。
如何用TOR組合“公共代理”,請看《 2012年9月翻牆快報(兼談復活TOR的方法) 》。

◇為啥GAE 翻牆工具無法跟TOR 組合成雙重代理?


貌似GAE的翻牆工具,都只提供HTTP代理,沒有提供原生的 HTTPS代理。 而TOR 客戶端需要使用HTTPS 跟中轉節點進行數據傳輸。

◇為啥GoAgent 無法跟TOR 組合成雙重代理?


GoAgent 也是GAE 翻牆工具的一種,請參見前一個問題的解答。


★其它方面的問題


◇為啥要使用虛擬機?


虛擬機是為了進行網絡隔離,確保你本機的軟件總是經過代理聯網,而不會直接聯網——直接聯網可能會導致你的公網IP暴露。
具體的原理圖,請看《 如何隱藏你的踪跡,避免跨省追捕[6]:用虛擬機隱匿公網IP(原理介紹) 》

舉例:
前幾個月,美國FBI 為了打擊兒童色情,逮捕了TOR 匿名託管服務Freedom Hosting 的負責人。 然後FBI 在該服務器上設置了木馬。
該木馬會利用TOR 內置的Firefox 瀏覽器的一個安全漏洞,來收集TOR 用戶的真實公網IP。
(木馬會向FBI的服務器發送一個信息,FBI的服務器就會記錄下發送端的IP。如果沒有虛擬機,這個直接聯網的企圖就得逞了)。

如果你之前沒用過操作系統虛擬機,可以先看俺寫的系列教程《 掃盲操作系統虛擬機 》。

◇如何【跨機器】共享TOR Browser 的翻牆通道?


用記事本(notepad)打開TOR 的配置文件(如何找到配置文件,本文前面提到過)。 在該文件末尾新增一行。
如果是TOR Browser 軟件包,加入如下這行
SocksListenAddress 0.0.0.0:9150
如果是TOR 的其它軟件包,加入如下這行
SocksListenAddress 0.0.0.0:9050
修改完記得保存,然後記得重啟TOR。 之後,TOR 的監聽端口就會綁定到0.0.0.0 這個地址——意思就是說,任何地址(任何機器)都可以連接到TOR 的監聽端口。
(嘮叨一下:如果要跨機器共享TOR 的SOCKS 端口,別忘了修改防火牆的配置,允許TOR 監聽端口的TCP 連入)

◇啥是obfs / obfsproxy?


這玩意兒也是TOR 官方提供的工具,主要是用來混淆TOR 的流量。
因為TOR 的名氣太大了,很多網絡監控系統(比如天朝大名鼎鼎的GFW)可以根據網絡傳輸內容,判斷該流量是否為TOR 的流量。 如果是TOR 流量就進行阻斷。
(請注意:“判斷流量類型”不等於“解密內容”)。
為了應對這類威脅,TOR 官方提供了一個額外的工具,用來混淆流量,讓監控系統識別不出。 原理圖如下:


雖然有obfsproxy 這個工具,但是對於那些非常重視安全性的網友,俺依然提倡用“雙重代理”——雙重代理的優點剛才分析過,此處不再羅嗦。


★結尾


本文寫得有點倉促,涉及的問題未必覆蓋到方方面面。 如果你覺得本文還有哪些問題沒有覆蓋到,歡迎到俺博客留言。 
關於TOR洋蔥網路的問與答 Reviewed by 深網中文 on 上午12:50 Rating: 5 文章目錄 ★TOR 是什么? ★TOR 是什麼?  ★哪些网友需要使用TOR? ★哪些網友需要使用TOR?  ★软件安装方面的问题 ★軟件安裝方面的問題  ★浏览器方面的问题 ★瀏覽器方面的問題  ★隐私方面的问题 ★隱私方面的問題  ★双重代理方面...

沒有留言: