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