張瑾
(北京交通大學計算機與信息技術學院,北京100044)
互聯(lián)網(wǎng)在方便人們之間的信息交換的同時,也能被用于跟蹤和監(jiān)視用戶,個人隱私泄露等安全問題日益嚴重。TOR(The Onion Router)[2]通過多臺服務器路由流量并在每個路由過程中進行加密,以達到在互聯(lián)網(wǎng)中隱匿通信雙方身份、避免與監(jiān)視網(wǎng)絡的人進行通信的目的。
TOR網(wǎng)絡結構如圖1所示,整個系統(tǒng)由用戶、洋蔥代理(客戶端)、中繼節(jié)點、目錄服務器、權威目錄服務器組成,擁有7千左右的志愿者中繼節(jié)點和數(shù)百萬用戶[6]。客戶端從中選擇入口節(jié)點、中間節(jié)點和出口節(jié)點來形成一個電路,通過該電路創(chuàng)建與目的地通信的傳輸控制協(xié)議流。TOR測量每個節(jié)點向網(wǎng)絡提供的實際帶寬,并根據(jù)其所提供的帶寬為每個節(jié)點分配一個權重值,權重值用于偏置電路的選擇,以便將負載分配給具有更多可用網(wǎng)絡資源的節(jié)點。
圖1 TOR網(wǎng)絡結構
TOR匿名通信系統(tǒng)的路由節(jié)點選擇技術已經(jīng)得到了廣泛的研究。Elahiet等人[14]構建了一個基于路由選擇模擬的框架,用于測量TOR的防護機制在抵御特征攻擊方面的表現(xiàn),主要研究入口節(jié)點的選擇策略與中繼級敵手對系統(tǒng)的影響。與前者的技術類似,Johnson等人[1]假設存在一個固定的敵手,并控制一些節(jié)點或監(jiān)視互聯(lián)網(wǎng)的一部分,使用從TOR網(wǎng)絡收集的數(shù)據(jù)在模擬器中重復地對用戶行為進行模擬,從敵手模型、安全度量和拓撲模型等方面來探究TOR在流量相關攻擊下的脆弱性。Li等人[15]提出了通過阻塞用戶防護集中其他的入口節(jié)點,僅使其一個入口節(jié)點可訪問,在不干擾用戶的正常使用TOR的情況下增加入口節(jié)點選擇輪數(shù)。但由于頻繁阻塞Guard節(jié)點連接,大量的故障會引起TOR和用戶的懷疑并進行異常檢測,此類攻擊并不能持久地進行。
本文主要關注TOR在路由選擇入口節(jié)點方面的脆弱性,主要研究在客戶端選路中如何提高植入入口節(jié)點被選率問題。如果攻擊者能夠控制電路中的入口和出口節(jié)點,就可對用戶進行流量相關攻擊,取消通信雙方的匿名性[5]。入口節(jié)點可以知道客戶端和下一跳中繼,而TOR為了防御攻擊者控制入口節(jié)點,制定了保護策略,入口節(jié)點比出口節(jié)點更難被攻擊者控制,研究提高入口節(jié)點被選率的問題難度較大且更有意義。針對以上問題,本文研究了在攻擊者總帶寬一定的情況下,對受控惡意入口節(jié)點進行有效的分配部署,使客戶端在重新選擇Guard節(jié)點時,受控節(jié)點才有機會被選為Guard節(jié)點,從而提高入口節(jié)點的被選擇率,為取消用戶通信的匿名性提供了基礎條件。
為提高用戶長期安全性,TOR設計了入口節(jié)點防護機制有效抵御了部分攻擊,通過減小客戶端選擇敵手部署的入口節(jié)點的概率,來減輕前驅攻擊、選擇性拒絕服務攻擊及統(tǒng)計分析等攻擊。TOR目錄授權機構會給每個節(jié)點在其滿足不同條件要求的情況下分配所對應的狀態(tài)標志,Guard標志被分配給正常運行時間至少是熟悉的節(jié)點的中間值、貢獻的帶寬至少是250 KB/s的最小值和所有節(jié)點帶寬的中間值的節(jié)點[11],這也增加了敵手部署惡意入口節(jié)點的攻擊成本。入口節(jié)點會在具有Guard標志的節(jié)點中選擇,所以入口節(jié)點也被稱為Guard節(jié)點。
客戶端會隨機選擇一組Guard節(jié)點作為它的防護集,電路中的第一跳就會從防護集中選擇。一旦選擇其中一個節(jié)點作為入口節(jié)點,除非節(jié)點失效或防護期限到期,否則客戶端建立鏈路時首選主防護節(jié)點作為入口節(jié)點[13]。TOR入口節(jié)點防護機制具有雙面性,防護集默認選三個節(jié)點,節(jié)點輪換期為3-4個月[12]。一方面節(jié)點的防護周期長可以抵御多種流量分析攻擊,降低敵手部署節(jié)點的被選擇率,增加敵手的攻擊成本;另一方面如果客戶端不幸地選擇到了惡意節(jié)點,那么在長時間的防護期內(nèi),客戶端的匿名性則會受到破壞。若客戶端的防護節(jié)點從不輪換,那么防護節(jié)點參與網(wǎng)絡的時間越長,就會積累更多的用戶,從而導致負載不平衡。以前的研究工作也表明,防護機制的參數(shù)——防護集的大小、選擇防護節(jié)點的標準以及輪換周期的時長,這些都是影響用戶的隱私安全的因素[7]。
TOR為了進一步平衡網(wǎng)絡負載,緩解高帶寬的Guard節(jié)點與Exit節(jié)點被頻繁選中的壓力,根據(jù)所選節(jié)點在鏈路中的位置及網(wǎng)絡狀況采用了可調(diào)式帶寬加權隨機選擇算法選擇節(jié)點[8]。表1路由節(jié)點選擇參數(shù)表對TOR路由選擇算法及入口節(jié)點選擇概率分析所用到的相關參數(shù)進行了定義。根據(jù)文獻[3,11],將所有節(jié)點加權后得到節(jié)點總加權帶寬Bw和加權節(jié)點列表bw_list,隨機選擇一個帶寬BR(1
表1 路由節(jié)點選擇參數(shù)表
在選擇入口節(jié)點時使用TOR可調(diào)式帶寬加權隨機選擇算法如下:
Algorithm 1:
Input:N,the list of usable router node.Bentry,Bexit,BT.
Output:i,the node was selected from N.
1:Wentry←1,Wexit←1-BT/(3×Bexit),b_w_list←?,
R←0,t←0.
2:ifWexit<0,then
3:Wexit←0
4:end if
5:fori∈Ndo
6:if i have Exit and Guard flag then
7:bw←b[i]×Wentry×Wexit
8:else ifihave Exit flag then
9:bw←b[i]×Wexit
10:else ifihave Guard flag then
11:bw←b[i]×Wentry
12:else
13:bw←b[i]
14:end if
15:Bw←Bw+bw
16:bw_list←bw_list∪bw
17:end for
18:R∈random(1,Bw)
19:for eachi∈Ndo
第四,信息協(xié)調(diào)聯(lián)動機制的構建要以信息網(wǎng)絡系統(tǒng)為支撐,組織之間通過該網(wǎng)絡系統(tǒng)分享信息資源和服務,通過交互規(guī)則提高彼此間的有效交互數(shù),網(wǎng)絡指揮中心將收集到的信息同步傳遞給其他相關網(wǎng)絡節(jié)點企業(yè),以促使合作伙伴能夠迅速獲得同一信息采取相應的決策行為,最大程度地實現(xiàn)多元主體在時間和空間上的靈活配合互動。
20:t←t+bw_list[i]
21:ift>Rthen
22:returni
23:end if
24:end for
根據(jù)上述可調(diào)式帶寬加權路由選擇算法,客戶端從可用的入口節(jié)點列表中選擇合適的Guard節(jié)點。入口節(jié)點列表由兩種類型的節(jié)點構成:帶有Guard標志的純?nèi)肟诠?jié)點和既有Guard又有Exit標志的節(jié)點,那么Bentry=BG+BD。由于成為入口節(jié)點和出口節(jié)點限制較多,導致節(jié)點數(shù)量較少,其帶寬資源較為匱乏。為了網(wǎng)絡負載平衡,保證擁有足夠的入口帶寬資源,當說明入口節(jié)點帶寬稀缺,入口節(jié)點不會被用作非入口位置使用,出口節(jié)點帶寬稀缺時亦是如此。入口節(jié)點權重Wentry與出口節(jié)點權重Wexit的計算公式分別為式(1)、式(2)。
上節(jié)分析了基于可調(diào)式帶寬加權節(jié)點選擇隨機算法的入口節(jié)點被客戶端選擇的概率,若想攻擊TOR客戶端Guard節(jié)點,使受控入口節(jié)點的被選率更高,首先要部署高帶寬且穩(wěn)定的入口Guard節(jié)點。本節(jié)研究了在總資源有限的情況下,對節(jié)點帶寬和個數(shù)如何進行合理的分配以最大化資源利用率,使得受控節(jié)點被選中的概率更高。
由上節(jié)式(3)可得,敵手所部署的入口節(jié)點被客戶端選擇的概率為:
若p(BK)是一個關于敵手控制總資源單調(diào)遞增的函數(shù),則說明敵手向TOR網(wǎng)絡部署的資源越多,其植入的受控節(jié)點被客戶端選中的概率越大。設BK(BK>0)是一個連續(xù)變量,對函數(shù)p(BK)關于BK求導可得:
采用TORPS[9]在更為真實的TOR網(wǎng)絡模擬環(huán)境中對以上理論分析進行模擬實驗。TORPS可以將TOR網(wǎng)絡提供的共識文件和服務器描述符文件轉換為網(wǎng)絡狀態(tài)文件作為模擬的輸入[10],根據(jù)預定義的用戶行為來模擬鏈路構建中的節(jié)點選擇過程。本文使用2019年12至2020年5月共6個月的TOR網(wǎng)絡共識文件和服務器描述符文件作為輸入,圖2展示了TORPS的工作原理。
圖2 TORPS工作原理
本文受控入口節(jié)點被客戶端選擇的概率由客戶端入口節(jié)點的被成功攻擊的概率進行評估,也就是客戶端首次選擇到惡意受控節(jié)點的概率。
(1)向TOR網(wǎng)絡中投入總帶寬資源不同、受控節(jié)點數(shù)量相同的路由選擇模擬實驗。根據(jù)文獻[4]的線性回歸方程y=0.7638x+2908.2712(以KB/s表示節(jié)點帶寬)可將TOR共識權重與節(jié)點帶寬進行轉換,向TOR中分別部署總帶寬資源為25000、50000、75000、100000的共識權重,受控節(jié)點數(shù)量都為10。實驗結果由圖3所示,共識權重100000時,客戶端入口節(jié)點在6個月中被成功攻擊的概率最高,達到0.055;共識權重25000時,入口節(jié)點被成功攻擊的概率最低,為0.029。共識權重越高,客戶端入口節(jié)點在6個月中被成功攻擊的概率越高,與上節(jié)中的證明相符。
(2)假設敵手擁有總帶寬為BK的入口節(jié)點資源,并部署至TOR網(wǎng)絡中,那么如何部署能夠在總資源一定的情況下,植入節(jié)點被客戶端的選擇率更高?根據(jù)共識權重與帶寬的轉換公式,轉換結果如表2所示。設定受控節(jié)點總帶寬資源的共識權重為200000,將總帶寬資源分別平均分配給5、10、20、40、80個受控guard節(jié)點,大約占總網(wǎng)絡帶寬資源的1.08%。
模擬結果如圖4(a)所示,在模擬初期客戶端在4種情況下的節(jié)點選擇被成功攻擊的概率相近,當客戶端入口節(jié)點防護期120天左右,重新輪換選擇新的入口節(jié)點,共識權重都為5000的40個節(jié)點,客戶端入口節(jié)點在6個月中各個時期被成功攻擊的概率最高,達到0.14;權重為40000的10個節(jié)點與權重為2500的80個節(jié)點,入口節(jié)點被成功攻擊的概率相近,在0.13左右;權重為20000的10個節(jié)點和權重為10000的20個節(jié)點被成功攻擊的概率在0.12左右。當受控節(jié)點總帶寬資源的共識權重為400000,將總帶寬資源分別平均分配給10、20、40、80、160個受控guard節(jié)點時,如圖4(b)所示,共識權重都為5000的80個節(jié)點,客戶端入口節(jié)點在6個月中各個時期被成功攻擊的概率最高,達到0.25左右。由此可見,當攻擊總資源一定,受控節(jié)點帶寬設置在53.8 Mbit/s左右更易被客戶端選擇。
圖4
本文針對TOR路由選擇技術中入口節(jié)點進行了研究,分析了入口節(jié)點的安全性。在敵手攻擊資源一定的情況下,對受控惡意入口節(jié)點帶寬及數(shù)量進行有效分配部署,使得客戶端重新選擇其他入口節(jié)點,部署受控入口節(jié)點被選擇的概率更高,有效地降低TOR用戶的匿名性。未來的工作是結合有效的節(jié)點部署方案,針對入口Guard節(jié)點進行主動攻擊,以發(fā)現(xiàn)威脅TOR用戶安全及TOR網(wǎng)絡可靠性的安全漏洞。