Tor網絡介紹
1、Tor的全稱是“The Onion Router”,“An anonymous Internet communicaton system;通過Tor訪問一個地址時,所經過的節點在Tor節點群中隨機挑選,動態變化,由於兼顧速度與安全性,節點數目通常為2-5個,由於追蹤困難,因此有效保證了安全性。
2、Tor的原理:
什么是匿名性?
掛着代理,隱藏了自己的真實IP是否是匿名?不是!絕大部分翻牆黨都是掛着一重代理來這的,有一些甚至只是改了hosts文件,完全沒有匿名性,一重代理只是一定程度上提升了匿名性而已。
TOR是一個三重代理;
代理的模型:PC、交換機、網關、N個路由器、防火牆、代理服務器、N個路由器、google服務器;如果是改hosts文件,就沒有代理服務器這一步。
在代理服務器之前設備是知道你真實IP的。
代理服務器負責處理數據包,對於用戶它是服務器,對於google服務器它是客戶端;代理服務器之后的路由器以及最終的google服務器看到的都是代理服務器的IP,用戶的IP被隱藏起來。但問題在於代理服務器知道你的真實IP和你干了些什么(HTTP)以及你去了哪里(HTTPS)。
流量分析只是隨着雲計算和大數據的發展,變得越來越有效的數據挖掘。
真正的匿名系統應該做到:1)各個環節除了必要的信息,其他什么都不知道。2)用戶通信是跨越適當數量的跳板(hop),最好是不同國家的hop,這樣流量分析和逆向分析的難度將大大增加;eg:三個hop p1、p2、p3; 用戶首先連到h1,然后h1連接到h2, h2連接到h3,h3最終連接到目標網站服務器上。在這一過程中,h1知道用戶的真實IP,h2知道它從h1接收用戶數據以及要把數據送到h3,h3知道用戶想干什么(HTTP)或者用戶要去哪里(HTTPS ),除此之外這些hop 不應該知道其他任何有關用戶的信息,這樣的話即使三個hop 中有一個是攻擊者的蜜罐,用戶身份也不會暴露(不過如果三個hop 都是蜜罐,用戶的身份還是會暴露的,但當三個hop分別位於三個不同的國家時,這種可能性很小)還有就是" 藏葉於林" 了,如果前面提到的三個hop 是某人專用的,那么一旦某個hop 被攻破(尤其是h1或h3),那么那人被逆向追蹤的可能性非常大;但如果有很多人同時使用那三個hop ,那么老大哥想要找出其中某個具體用戶就很困難了。同樣道理,每次連接建立時都應該隨機選擇hop ,這樣老大哥都不知道該如何進行有效的監視(TOR 的策略是每10分鍾就重新隨機選擇三個hop 「9 」,每次啟動TOR 時也是隨機選擇hop 的) 3)中間人攻擊:為了防止老大哥進行中間人攻擊破壞用戶匿名,TOR 有着自己的一套基於數字證書的身份認證機制「10」,每個hop 都有一個自簽發的數字證書,TOR 客戶端在連接建立時會進行嚴格的身份認證。
TOR的用戶越多,TOR的匿名程度就越高。
相對於TOR 之前的匿名系統,TOR 有三點最為特別:
1 ,一個TOR 環路可以被很多人同時使用,說的具體一點,hop 與hop 之間的每個TLS 連接都包括了很多不同用戶的TCP 數據流;
2 ,TOR 客戶端隨機選擇了入口節點,入口節點隨機選擇了中間節點,中間節點又隨機選擇了出口節點。對,是由精心設計過的算法保證隨機選擇的,沒有規律可循(不過后來發現這算法造成了很搞笑的情景:某一條環路上的三個hop 有很多用戶,都塞車了,但另一條環路上的三個hop 用戶數少得可憐,所以后來又基於hop 的用戶數對算法進行了改進「12」)
3 ,TOR 擁有獨立於操作系統和瀏覽器的嚴格的基於數字證書的身份認證機制。這一點很重要,如果TOR 的身份認證機制和特定的操作系統或瀏覽器有了關聯,那就意味着用戶將不得不為了使用TOR 而更換瀏覽器或操作系統。
TOR 官網「2 」上簡單介紹了TOR 的原理:TOR 是一個三重代理,TOR 客戶端先與目錄服務器通信獲得全球活動中繼節點信息,然后再隨機選擇三個節點組成circuit (電路),用戶流量跳躍這三個節點(hop)之后最終到達目標網站服務器,每隔10 分鍾左右就會再重新選擇三個節點以規避流量分析和蜜罐節點。
「哪個節點都不可信,像洋蔥一樣」這就是Tor 環路的核心思想所在:和普通的TCP 流不同(Tor 工作在TCP 流之上),Tor 協議把通信數據打包為了一個個特殊的cell:一開始建立Tor 電路時,本機上的onion proxy 向入口節點發送create cell 進行TLS handshake ,這一過程的身份認證過程是基於數字證書的:Tor 有着自己的一套數字證書系統。
Tor是這么做的:客戶端最先發過去的relay cell 1是入口節點與中間節點建立TLS 連接時所需要的參數,接着發過去的relaycell 2是中間節點與出口節點建立TLS 連接時所需要的參數,接下來是只有目標網站和對應端口信息的relay cell 3,在返回表明已成功建立環路的relay cell 4之后才會真正開始發送包含用戶信息的relay cell 5.這一過程中relay cell 1被一重加密,到了入口節點之后就被解密,再用來與中間節點完成握手;relay cell 2被兩重加密,到了入口節點時第一重加密解除,到了中間節點時第二重加密解除,中間節點可以看到明文,用來與出口節點完成握手; relay cell 3被三重加密,只有出口節點能看到明文,被用來與目標網站建立連接。同樣relay cell 5也是三重加密的,只有出口節點能看到明文(HTTP)
「就像洋蔥一樣」,對,用戶數據就像洋蔥一樣,被層層包裹着,只有到了終點包裹才會解開。在這一過程中,只有入口節點知道用戶的真實IP地址,出口節點知道用戶的目的地和傳輸內容(HTTP),Tor 電路的cell里沒有其他任何關於用戶真實身份的信息。
要知道NSA 和FBI 還有GCHQ們看Tor 不爽早就不是一天兩天了,下次一起看看英勇的Tor 團隊們是怎樣對付各種攻擊的吧!