羅軍舟 楊 明 凌 振 吳文甲 顧曉丹
(東南大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 南京 211189)
匿名通信是一種通過采用數(shù)據(jù)轉(zhuǎn)發(fā)、內(nèi)容加密、流量混淆等措施來隱藏通信內(nèi)容及關(guān)系的隱私保護(hù)技術(shù).為了提高通信的匿名性,這些數(shù)據(jù)轉(zhuǎn)發(fā)鏈路通常由多跳加密代理服務(wù)節(jié)點(diǎn)構(gòu)成,而所有這些節(jié)點(diǎn)即構(gòu)成了匿名通信系統(tǒng)(或稱匿名通信網(wǎng)絡(luò)).匿名通信系統(tǒng)本質(zhì)上是一種提供匿名通信服務(wù)的覆蓋網(wǎng)絡(luò),可以向普通用戶提供Internet匿名訪問功能以掩蓋其網(wǎng)絡(luò)通信源和目標(biāo),向服務(wù)提供商提供隱藏服務(wù)機(jī)制以實(shí)現(xiàn)匿名化的網(wǎng)絡(luò)服務(wù)部署.作為匿名通信系統(tǒng)的核心功能,隱藏服務(wù)機(jī)制通常利用多跳反向代理或通過資源共享存儲來掩蓋服務(wù)提供商的真實(shí)地址,可以保證匿名服務(wù)不可追蹤和定位.
由于匿名通信系統(tǒng)具有節(jié)點(diǎn)發(fā)現(xiàn)難、服務(wù)定位難、用戶監(jiān)控難、通信關(guān)系確認(rèn)難等特點(diǎn),利用匿名通信系統(tǒng)隱藏真實(shí)身份從事惡意甚至于網(wǎng)絡(luò)犯罪活動的匿名濫用現(xiàn)象層出不窮.由于用戶必須通過特殊軟件或進(jìn)行特殊配置才能訪問服務(wù),隱藏服務(wù)機(jī)制更是被用于部署“絲綢之路”(silk road)、AlphaBay等網(wǎng)絡(luò)黑市,形成了潛藏于Internet中充斥著毒品槍支交易、人口販賣、恐怖活動、反社會言論、謠言散布以及敲詐勒索等非法活動的暗網(wǎng):臭名昭著的Tor黑市站點(diǎn)“絲綢之路”在其上線的2年半時間中總交易額高達(dá)12億美金,并擁有15萬匿名用戶和4 000余非法商戶;而勒索病毒W(wǎng)annaCry,Skynet等各類僵尸主機(jī)的命令控制(command-and-control, C&C)服務(wù)器直接部署于暗網(wǎng)中以防止被追蹤溯源.此外,國內(nèi)在暗網(wǎng)黑市中的各類違法事件也是頻頻曝光:2018年6月AcFun視頻站點(diǎn)的近千萬條用戶信息數(shù)據(jù)在Tor暗網(wǎng)中進(jìn)行兜售;同年9月華住集團(tuán)旗下酒店約1.2億條客戶個人信息在暗網(wǎng)中出售.除了暗網(wǎng)安全事件的不斷攀升,暗網(wǎng)站點(diǎn)數(shù)量和用戶量也呈現(xiàn)出逐年增長的趨勢.根據(jù)Tor Metrics官方網(wǎng)站的統(tǒng)計(jì)信息[1],截至2018年10月Tor暗網(wǎng)中已有超過11萬個站點(diǎn),而用戶數(shù)超過200萬.與Tor相比,其他暗網(wǎng)系統(tǒng),如I2P,Freenet,ZeroNet等,由于其網(wǎng)絡(luò)拓?fù)涮攸c(diǎn),很難發(fā)現(xiàn)并統(tǒng)計(jì)其站點(diǎn)和用戶規(guī)模.
在學(xué)術(shù)界,研究人員針對匿名通信系統(tǒng)進(jìn)行了多年的研究工作,而暗網(wǎng)在近年來也逐漸受到關(guān)注.這些工作大致可分為2類:1)專注于匿名通信系統(tǒng)本身,分析其安全性并提出相應(yīng)的隱私增強(qiáng)技術(shù),包括匿名接入、匿名路由、隱藏服務(wù)等機(jī)制的優(yōu)化,以及流量混淆與協(xié)議偽裝等技術(shù)的設(shè)計(jì)和應(yīng)用;2)側(cè)重于針對匿名通信系統(tǒng)與暗網(wǎng)的攻擊及監(jiān)管,利用流量分析、系統(tǒng)/協(xié)議漏洞分析等手段,提出了一系列的去匿名化攻擊方法,可用于對其進(jìn)行有效監(jiān)管,具體包括暗網(wǎng)隱藏節(jié)點(diǎn)發(fā)現(xiàn)和隱藏服務(wù)定位、暗網(wǎng)用戶的網(wǎng)絡(luò)行為分析,以及暗網(wǎng)流量追蹤和通信關(guān)系確認(rèn)等.
鑒于匿名通信與暗網(wǎng)對網(wǎng)絡(luò)空間安全及治理的重要性,以及在研究領(lǐng)域尚缺乏完整、全面評估的現(xiàn)狀,本文針對匿名通信與暗網(wǎng)的基本概念及相互關(guān)系、關(guān)鍵技術(shù)和攻防研究以及暗網(wǎng)治理方面的研究工作進(jìn)行綜述.本文首先介紹了典型匿名通信系統(tǒng)的基本工作原理,涵蓋了Tor,I2P,Freenet和ZeroNet這4種主流暗網(wǎng)形態(tài).其次,分別從匿名接入、匿名路由、暗網(wǎng)服務(wù)這3項(xiàng)關(guān)鍵技術(shù)的角度闡述了各系統(tǒng)的特點(diǎn).在此基礎(chǔ)上,分析了針對匿名通信的各類攻擊與防御技術(shù)的研究現(xiàn)狀,并介紹了暗網(wǎng)治理方面的相關(guān)研究工作.本文最后對下一代匿名通信系統(tǒng)的發(fā)展趨勢進(jìn)行了展望,并初步探討了我國在暗網(wǎng)治理中面臨的挑戰(zhàn)和可采取的治理措施.
近年來,匿名通信系統(tǒng)與暗網(wǎng)引起了人們的廣泛關(guān)注,但其概念及相互關(guān)系一直缺乏統(tǒng)一的定義.因此,本節(jié)給出匿名通信系統(tǒng)的基本分類,并闡明與暗網(wǎng)的關(guān)系.隨后,具體介紹Tor,I2P,F(xiàn)reenet,ZeroNet這4種典型的匿名通信系統(tǒng).
根據(jù)通信延遲性能,可將匿名通信系統(tǒng)分為低延遲系統(tǒng)和高延遲系統(tǒng).在低延遲系統(tǒng)中,又可根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)一步分成P2P匿名網(wǎng)絡(luò)和非P2P匿名網(wǎng)絡(luò),而其中P2P匿名網(wǎng)絡(luò)進(jìn)一步包含結(jié)構(gòu)化與非結(jié)構(gòu)化2種網(wǎng)絡(luò)模型.
高延遲匿名通信系統(tǒng)源于早期的Mixnet匿名通信網(wǎng)絡(luò),最初由Chaum于1981年提出[2].它的核心思路是基于mix節(jié)點(diǎn)對輸入的消息進(jìn)行加密和混淆,使得攻擊者無法追蹤消息的網(wǎng)絡(luò)傳播過程.因此,mix節(jié)點(diǎn)隱藏了各個消息之間的輸入和輸出關(guān)系,可以防止攻擊者對輸入和輸出消息進(jìn)行關(guān)聯(lián).Danezis[3]提出了結(jié)合mix級聯(lián)模型和自由路由的受限路由mix網(wǎng)絡(luò),以保證消息的匿名性.Dingledine等人[4]提出基于信譽(yù)系統(tǒng)的mix節(jié)點(diǎn)選擇技術(shù),從而為mix網(wǎng)絡(luò)提供更高的可靠性和效率.Dingledine等人[5]提出了一種具有分布式信任的mix級聯(lián)協(xié)議,基于信譽(yù)度量重新排列mix級聯(lián),以提高可靠性.
Mixnet協(xié)議的典型應(yīng)用場景是高延遲郵件轉(zhuǎn)發(fā)服務(wù)(Remailer),用于提供匿名電子郵件收發(fā)功能:Babel[6]引入mix路徑,旨在通過延遲一些批量消息來抵御流量分析攻擊.Mixmaster[7]通過在每個數(shù)據(jù)包的末尾添加隨機(jī)數(shù)據(jù),將消息加密轉(zhuǎn)換為統(tǒng)一的大小.為保證所有發(fā)送者的路由信息相同,Mixminion[8]部署了一組冗余和同步的目錄服務(wù)器系統(tǒng),旨在為電子郵件消息提供發(fā)件人和收件人匿名.
相對于高延遲匿名系統(tǒng),低延遲系統(tǒng)因其應(yīng)用領(lǐng)域?qū)挿?,受到了研究人員更多的關(guān)注.結(jié)構(gòu)化P2P匿名網(wǎng)絡(luò)主要包括Tor,I2P和Freedom[9],它們均采用洋蔥路由或類洋蔥路由協(xié)議進(jìn)行通信.其中Freedom為網(wǎng)絡(luò)中每個用戶分配一個唯一身份標(biāo)識以屏蔽IP地址信息,同時利用類似于洋蔥路由的加密通信方式為用戶提供匿名網(wǎng)頁瀏覽等服務(wù).非結(jié)構(gòu)化P2P匿名網(wǎng)絡(luò)有Torsk,F(xiàn)reenet,Crowds等,主要采用基于DHT(distributed Hash table)的路由協(xié)議和隨機(jī)游走協(xié)議.Torsk[10]通過使用DHT取代Tor的節(jié)點(diǎn)選擇和目錄服務(wù),以獲得更好的擴(kuò)展性.Crowds[11]是為匿名網(wǎng)頁瀏覽而設(shè)計(jì)的匿名通信系統(tǒng)之一,其主要特征為隨機(jī)節(jié)點(diǎn)選擇.Crowds中所有節(jié)點(diǎn)都被分群,群中每個節(jié)點(diǎn)可以連接任何其他節(jié)點(diǎn)作為通信中繼.
在綜合mix技術(shù)和洋蔥路由技術(shù)的基礎(chǔ)上,新型匿名通信技術(shù)相繼被提出,包括TARANET[12],Riffle[13]和Loopix[14]等,可進(jìn)一步提高匿名通信系統(tǒng)的匿名性、擴(kuò)展性及性能.
匿名通信技術(shù)的提出源于網(wǎng)絡(luò)用戶的隱私保護(hù)需求,但是隨之而來的是各種匿名濫用問題.尤為突出的是,一些不法用戶基于Tor,I2P,Freenet等匿名通信系統(tǒng)提供的隱藏服務(wù)機(jī)制,架設(shè)必須通過特殊軟件或進(jìn)行特殊配置才能訪問的網(wǎng)絡(luò)服務(wù),形成了無法被直接檢索的暗網(wǎng).由于可以有效隱藏網(wǎng)絡(luò)服務(wù)提供者的IP地址等信息,暗網(wǎng)中充斥著毒品槍支交易、人口販賣等非法活動.
在學(xué)術(shù)界,暗網(wǎng)的概念并沒有一個明確的定義,術(shù)語“Dark Web”和“Darknet”經(jīng)常被混用指代暗網(wǎng).為了更好地厘清這2個術(shù)語之間的關(guān)系和差異,并界定本文所討論的暗網(wǎng)的內(nèi)容,給出如下定義:
1) Dark Web.必須通過特殊的軟件、特殊的配置才能訪問的擁有特殊域名的Web站點(diǎn),搜索引擎無法對其進(jìn)行檢索.
2) Darknet.必須通過特殊的軟件、特殊的配置才能訪問,包含Web、IRC、文件共享等各類資源和服務(wù)的匿名網(wǎng)絡(luò),搜索引擎無法對其進(jìn)行檢索.
兩者的關(guān)系如圖1所示:其中Dark Web重點(diǎn)在于不可檢索、不可直接訪問,并不強(qiáng)調(diào)匿名,因此既包含匿名Web站點(diǎn)(如Tor隱藏服務(wù)站點(diǎn)),也包含非匿名Web站點(diǎn)(如ZeroNet提供的Web站點(diǎn));而Darknet則強(qiáng)調(diào)匿名性,即所有的資源都需要基于相應(yīng)的匿名通信系統(tǒng)才能進(jìn)行訪問,其中的資源不限于Web服務(wù).
Fig. 1 The differences between Darknet and Dark Web圖1 Darknet和Dark Web的區(qū)別
由于Tor,I2P,Freenet等匿名通信系統(tǒng)不僅允許發(fā)布隱藏Web服務(wù),還能提供其他類型資源的匿名訪問,同時滿足了Dark Web和Darknet兩個定義,并且隱藏Web服務(wù)又是其中應(yīng)用最為廣泛的服務(wù).因此,很多時候Darknet被混淆為Dark Web.
本文所討論的暗網(wǎng)強(qiáng)調(diào)匿名性,并且不限于Web服務(wù),因此采用Darknet術(shù)語.鑒于ZeroNet雖然本身并不提供匿名性保護(hù),但它通常和Tor打包發(fā)布,并利用Tor提供服務(wù)部署和資源獲取的功能,因此也將其納入討論的范疇.1.3節(jié)將對Tor,I2P,Freenet,ZeroNet展開介紹.
1.3.1 Tor匿名通信系統(tǒng)
Tor(the second-generation onion router)[15]是目前使用范圍最廣的匿名通信系統(tǒng)之一,其核心技術(shù)“洋蔥路由”在20世紀(jì)90年代中期由美國海軍研究實(shí)驗(yàn)室提出,并在1997年交由美國國防高級研究計(jì)劃局(DARPA)進(jìn)一步開發(fā).2003年Tor正式版發(fā)布,2004年Tor設(shè)計(jì)文檔在第13屆USENIX安全討論會上正式發(fā)表,并在同年由美國海軍研究實(shí)驗(yàn)室公開其源碼.Tor使用多跳代理機(jī)制對用戶通信隱私進(jìn)行保護(hù):首先,客戶端使用基于加權(quán)隨機(jī)的路由選擇算法分別選擇3個中繼節(jié)點(diǎn),并逐跳與這些中繼節(jié)點(diǎn)建立鏈路.在數(shù)據(jù)傳輸過程中,客戶端對數(shù)據(jù)進(jìn)行3層加密,由各個中繼節(jié)點(diǎn)依次進(jìn)行解密.由于中繼節(jié)點(diǎn)和目的服務(wù)器無法同時獲知客戶端IP地址、目的服務(wù)器IP地址以及數(shù)據(jù)內(nèi)容,從而保障了用戶隱私.
Tor于2004年開始支持隱藏服務(wù),為Tor暗網(wǎng)的出現(xiàn)提供了技術(shù)支撐.Tor暗網(wǎng)是目前規(guī)模最大的暗網(wǎng)之一,其中包含大量的敏感內(nèi)容與惡意內(nèi)容.Tor隱藏服務(wù)是僅能在Tor暗網(wǎng)中通過特定形式的域名(z.onion)訪問的網(wǎng)絡(luò)服務(wù).Tor暗網(wǎng)的基本組件包括客戶端、目錄服務(wù)器(directory server)、隱藏服務(wù)目錄服務(wù)器(hidden service directory)、洋蔥路由器(onion router, OR)和隱藏服務(wù)器(hidden server),如圖2所示:
Fig. 2 Tor hidden service圖2 Tor隱藏服務(wù)
1) 客戶端.客戶端是運(yùn)行在用戶操作系統(tǒng)上的本地程序,稱為洋蔥代理(onion proxy, OP).OP將用戶數(shù)據(jù)封裝成Tor信元并層層加密,為各類TCP應(yīng)用程序提供匿名代理服務(wù).
2) 洋蔥路由器.Tor暗網(wǎng)中的數(shù)據(jù)中繼節(jié)點(diǎn).Tor默認(rèn)匿名鏈路由3個OR組成,分別為入口節(jié)點(diǎn)(Entry)、中間節(jié)點(diǎn)(Middle)和出口節(jié)點(diǎn)(Exit),其中入口節(jié)點(diǎn)一般選擇可信度較高的守護(hù)節(jié)點(diǎn)(Guard).
3) 隱藏服務(wù)器.提供Web,IRC等TCP應(yīng)用服務(wù).隱藏服務(wù)器受到Tor匿名性的保護(hù),必須使用Tor客戶端才能夠訪問其TCP應(yīng)用服務(wù).
4) 目錄服務(wù)器.目錄服務(wù)器保存了所有洋蔥路由器的IP地址、帶寬等信息.客戶端在首次啟動后向目錄服務(wù)器請求洋蔥路由器信息,以便完成節(jié)點(diǎn)選擇和鏈路建立.
5) 隱藏服務(wù)目錄服務(wù)器.隱藏服務(wù)目錄服務(wù)器存儲并為客戶端提供隱藏服務(wù)器的引入節(jié)點(diǎn)(introduction point, IPO)、公鑰等節(jié)點(diǎn)信息.
客戶端、洋蔥路由器、目錄服務(wù)器、隱藏服務(wù)目錄服務(wù)器和隱藏服務(wù)器的功能都集成在Tor軟件包中,用戶可以通過配置文件對具體功能進(jìn)行配置.
Tor隱藏服務(wù)器在啟動時會選擇3個引入節(jié)點(diǎn)作為其前置代理,并將引入節(jié)點(diǎn)及其公鑰信息上傳至隱藏服務(wù)目錄服務(wù)器.客戶端訪問隱藏服務(wù)時,首先建立3跳鏈路訪問隱藏服務(wù)目錄服務(wù)器,獲取引入節(jié)點(diǎn)和公鑰信息.客戶端選擇一個匯聚節(jié)點(diǎn)(ren-dezvous point, RPO)作為客戶端和隱藏服務(wù)器通信鏈路的匯聚點(diǎn),并將匯聚節(jié)點(diǎn)的信息通過引入節(jié)點(diǎn)告知隱藏服務(wù)器.客戶端和隱藏服務(wù)器各自建立到達(dá)匯聚節(jié)點(diǎn)的鏈路,完成6跳鏈路的搭建后即可開始通信.Tor用戶通過6跳鏈路訪問隱藏服務(wù)器,在此過程中任意節(jié)點(diǎn)無法同時獲知Tor客戶端IP地址、隱藏服務(wù)器IP地址以及數(shù)據(jù)內(nèi)容,保障了Tor客戶端與隱藏服務(wù)器的匿名性.
1.3.2 I2P匿名網(wǎng)絡(luò)
I2P(invisible Internet project)[16]是一種使用單向加密隧道的P2P匿名通信系統(tǒng),采用稱為大蒜路由的擴(kuò)展洋蔥路由技術(shù),使得隧道中每一跳節(jié)點(diǎn)只掌握相鄰節(jié)點(diǎn)的信息,無法獲知通信雙方的通信關(guān)系,從而保證通信的匿名性.該項(xiàng)目在2003年2月啟動[17],2004年7月發(fā)布首個PC端穩(wěn)定版本0.3.2.1,2014年8月發(fā)布I2P Android客戶端.用戶可以配置I2P的隧道跳數(shù)、帶寬和延遲等參數(shù),以滿足特定匿名性能需求.
Fig. 4 Tunnels in I2P圖4 I2P隧道機(jī)制
I2P中節(jié)點(diǎn)的類型分為Floodfill和Nonfloodfill兩類.節(jié)點(diǎn)默認(rèn)初始身份為Nonfloodfill,其中滿足性能要求的節(jié)點(diǎn)會自適應(yīng)地成為Floodfill節(jié)點(diǎn),其數(shù)量約占所有I2P節(jié)點(diǎn)的6%[18].Floodfill節(jié)點(diǎn)保存RouterInfo和LeaseSet兩類數(shù)據(jù)信息:RouterInfo包括節(jié)點(diǎn)的ID、公鑰、簽名、通信協(xié)議及端口等內(nèi)容;LeaseSet包括服務(wù)Hash值、隧道入口節(jié)點(diǎn)和起止有效時間等信息.I2P系統(tǒng)根據(jù)Kademlia算法[19]來組織所有的Floodfill節(jié)點(diǎn),形成I2P的網(wǎng)絡(luò)數(shù)據(jù)庫(network database, netDb)以提供對所有RouterInfo和LeaseSet信息的保存、查詢等功能.
I2P拓?fù)浣Y(jié)構(gòu)如圖3所示,每個節(jié)點(diǎn)根據(jù)256 b路由值(router key)分布在邏輯環(huán)中,其中路由值是采用SHA256算法對節(jié)點(diǎn)ID和當(dāng)前日期計(jì)算獲得.I2P通過異或2個節(jié)點(diǎn)的路由值來度量節(jié)點(diǎn)間的距離,每個節(jié)點(diǎn)會選擇異或距離最近的Floodfill節(jié)點(diǎn)上傳RouterInfo和LeaseSet信息.因此,節(jié)點(diǎn)每天會由于日期的改變而呈現(xiàn)不同的邏輯分布,并將信息上傳至不同的Floodfill節(jié)點(diǎn),以此來抵御Sybil攻擊[20].
Fig. 3 The topology of I2P圖3 I2P拓?fù)浣Y(jié)構(gòu)圖
I2P的客戶端和服務(wù)器均利用多跳單向加密隧道進(jìn)行通信,以保護(hù)雙方通信隱私,其過程如圖4所示.節(jié)點(diǎn)初次加入I2P網(wǎng)絡(luò)時,從官方補(bǔ)種網(wǎng)站(reseed website)進(jìn)行補(bǔ)種,獲取部分RouterInfo信息,并根據(jù)路由選擇機(jī)制建立單向隧道.隧道根據(jù)用途可以分為探測隧道(exploratory tunnel)和客戶隧道(client tunnel),根據(jù)數(shù)據(jù)傳輸方向可以分為輸入隧道(inbound tunnel)和輸出隧道(outbound tunnel).其中,探測隧道用于輔助構(gòu)建、測試客戶隧道和查詢netDb中信息等,客戶隧道用于應(yīng)用服務(wù)如Web瀏覽、聊天室、郵件和文件共享等.客戶端和服務(wù)器在通信過程中分別建立各自的輸入和輸出客戶隧道,默認(rèn)隧道長度為3跳,一次完整的通信過程需要4條隧道參與.客戶端發(fā)生的數(shù)據(jù)先采用端到端加密,然后在客戶端進(jìn)行3次洋蔥式加密后發(fā)送到其輸出客戶隧道的Gateway節(jié)點(diǎn),并在各個節(jié)點(diǎn)上分別進(jìn)行解密轉(zhuǎn)發(fā)到服務(wù)器的輸入客戶隧道Gateway節(jié)點(diǎn),然后依次在各個節(jié)點(diǎn)上加密轉(zhuǎn)發(fā)到服務(wù)器,最終由服務(wù)器通過4次解密得到明文數(shù)據(jù),數(shù)據(jù)反向發(fā)送過程與此類似.多跳隧道中的節(jié)點(diǎn)只知道其前驅(qū)和后繼節(jié)點(diǎn)信息,從而隱藏通信雙方的通信關(guān)系,同時單向隧道通過增加參與通信的節(jié)點(diǎn)數(shù)量提升了通信的匿名性.
1.3.3 Freenet匿名網(wǎng)絡(luò)
Freenet是一個分布式的匿名信息存儲與檢索系統(tǒng),在為用戶提供文件上傳、下載與檢索功能的同時能夠保障文件發(fā)布者與查閱者的匿名性[21-22].該系統(tǒng)源于愛丁堡大學(xué)的Ian Clarke在1999年的畢業(yè)設(shè)計(jì),后由其發(fā)起了Freenet開源項(xiàng)目,并于2000年3月發(fā)布了首個版本.Freenet在設(shè)計(jì)上主要追求5個目標(biāo):保護(hù)文件的發(fā)布者和查閱者的匿名性;本地存儲的可否認(rèn)性;能夠抵抗第三方對信息可訪問性的破壞;高效的分布式存儲與路由;完全的去中心化.
所有Freenet節(jié)點(diǎn)分布在周長為1個單位的邏輯環(huán)上,這些節(jié)點(diǎn)按功能可以分為種子節(jié)點(diǎn)和非種子節(jié)點(diǎn),默認(rèn)新加入的節(jié)點(diǎn)均為非種子節(jié)點(diǎn),種子節(jié)點(diǎn)具有輔助發(fā)現(xiàn)節(jié)點(diǎn)的功能.Freenet中新節(jié)點(diǎn)隨機(jī)產(chǎn)生一個介于[0,1)的實(shí)數(shù),用于標(biāo)識其在環(huán)上的位置.每個節(jié)點(diǎn)會貢獻(xiàn)一定大小的本地硬盤空間共同構(gòu)成Freenet的存儲空間.
Freenet節(jié)點(diǎn)有2種工作模式:Opennet模式和Darknet模式[23].Opennet模式下節(jié)點(diǎn)可以和任何其他節(jié)點(diǎn)建立連接.與自身節(jié)點(diǎn)一跳直接相連的節(jié)點(diǎn)稱為鄰居節(jié)點(diǎn),鄰居節(jié)點(diǎn)的數(shù)量與該節(jié)點(diǎn)的帶寬成正相關(guān),最多支持85個鄰居節(jié)點(diǎn)(版本號0.7.5,內(nèi)部版本1483).節(jié)點(diǎn)間的距離是由節(jié)點(diǎn)間不大于0.5的弧長定義.在Opennet模式下,F(xiàn)reenet定義距離不超過0.01的鄰居節(jié)點(diǎn)為近鄰居,且每個節(jié)點(diǎn)的遠(yuǎn)鄰居節(jié)點(diǎn)數(shù)量不超過鄰居節(jié)點(diǎn)數(shù)的30%,其余為近鄰居節(jié)點(diǎn),如圖5所示.新節(jié)點(diǎn)在加入網(wǎng)絡(luò)時通過種子節(jié)點(diǎn)獲取其他節(jié)點(diǎn)的信息,然后選擇鄰居節(jié)點(diǎn)建立連接從而加入Freenet網(wǎng)絡(luò).而在Darknet模式下,節(jié)點(diǎn)只能和用戶添加的信任節(jié)點(diǎn)建立連接,以此保證安全性.
Fig. 5 The topology of Freenet圖5 Freenet拓?fù)浣Y(jié)構(gòu)
Freenet節(jié)點(diǎn)通過FCP(Freenet client protocol)協(xié)議向上層應(yīng)用提供匿名文件存儲與檢索服務(wù),并集成基于FCP的Fproxy服務(wù),從而提供HTTP代理、Freenet節(jié)點(diǎn)配置、文件上傳與檢索、Freesite瀏覽等功能.在文件上傳前,F(xiàn)reenet將文件按照32 KB大小切塊,分別計(jì)算每塊的唯一標(biāo)識符.文件標(biāo)識符主要分為內(nèi)容Hash鍵值(content Hash keys, CHK)和簽名子空間鍵值(signed subspace keys, SSK),文件的索引值可根據(jù)該鍵值通過SHA256 Hash運(yùn)算獲得,索引值可轉(zhuǎn)化為邏輯環(huán)上的對應(yīng)位置.在文件存儲的過程中,節(jié)點(diǎn)根據(jù)文件的位置查找距離最近的鄰居節(jié)點(diǎn),由其進(jìn)一步迭代查找目標(biāo)存儲節(jié)點(diǎn),最終通過該多跳查找路徑將文件上傳.文件檢索的過程中,根據(jù)文件對應(yīng)的位置利用深度優(yōu)先的最近距離貪心算法查找目標(biāo)存儲節(jié)點(diǎn).除Fproxy外,還有一些基于FCP開發(fā)的第三方應(yīng)用,如Frost,FMS(Freenet message system),Sone等.
Freenet在不同的工作模式下安全性和匿名性不同.在Opennet模式下,相對更容易面臨惡意節(jié)點(diǎn)的威脅.Freenet多跳的文件傳輸和檢索機(jī)制保障了文件發(fā)布者與查閱者的匿名性;文件分塊加密存儲保證了本地存儲的可否認(rèn)性;文件的冗余存儲機(jī)制保證了部分節(jié)點(diǎn)離開網(wǎng)絡(luò)情況下文件依然具有較高可訪問性;利用DHT提供了高效存儲與路由;非結(jié)構(gòu)化的P2P架構(gòu)避免了系統(tǒng)對于中心節(jié)點(diǎn)的依賴.而在Darknet模式下,由于僅與可信的鄰居節(jié)點(diǎn)建立連接并通信,從而提供了更高的安全性.
1.3.4 ZeroNet網(wǎng)絡(luò)
ZeroNet[注]https://zeronet.readthedocs.io/en/latest/是一個基于BitTorrent技術(shù)的開源項(xiàng)目,由匈牙利開發(fā)者Tamas Kocsis創(chuàng)建.ZeroNet采用早期的BitTorrent架構(gòu),強(qiáng)依賴于BitTorrent Tracker服務(wù)器,如圖6所示.ZeroNet的用戶數(shù)據(jù)采用MessagePack協(xié)議封裝,并建立TCP長連接進(jìn)行數(shù)據(jù)傳輸,每個用戶同時只能和1 000個其他用戶進(jìn)行連接.
Fig. 6 The architecture of ZeroNet圖6 ZeroNet架構(gòu)
ZeroNet使用與Bitcoin錢包相同的橢圓曲線加密技術(shù)生成網(wǎng)站地址并對站點(diǎn)內(nèi)容進(jìn)行簽名和驗(yàn)證,并基于BIP32(bitcoin improvement proposals)方案為訪問站點(diǎn)的用戶生成標(biāo)識.每個新網(wǎng)站都會生成對應(yīng)的公私密鑰:私鑰僅被網(wǎng)站所有者掌握,用于對發(fā)布內(nèi)容進(jìn)行簽名;而公鑰作為網(wǎng)站的地址,任何人都可以用來對網(wǎng)站內(nèi)容的完整性進(jìn)行驗(yàn)證,以防止惡意代碼插入或任何修改.
當(dāng)用戶請求訪問ZeroNet上的網(wǎng)站資源時,客戶端軟件將基于BitTorrent技術(shù)從擁有該資源的站點(diǎn)上下載文件,并在本地瀏覽器進(jìn)行解析.網(wǎng)站所有者將訪問用戶信息存儲在ZeroNet客戶端的內(nèi)置SQL數(shù)據(jù)庫中,在站點(diǎn)更新后會及時推送至用戶端進(jìn)行增量更新,以提高訪問者的訪問速度.ZeroNet默認(rèn)不提供匿名通信功能,但用戶也可以通過內(nèi)置的Tor功能實(shí)現(xiàn)通信匿名.
由于ZeroNet是一個由訪問者提供服務(wù)的P2P網(wǎng)絡(luò),所以可以比集中式服務(wù)器更穩(wěn)定地提供內(nèi)容,甚至在互聯(lián)網(wǎng)不可用的情況下,用戶也可以離線訪問本地存儲的站點(diǎn)內(nèi)容.
匿名通信系統(tǒng)的目標(biāo)在于實(shí)現(xiàn)通信實(shí)體關(guān)系和內(nèi)容的隱藏,具體涉及匿名接入、匿名路由、暗網(wǎng)服務(wù)等一系列關(guān)鍵技術(shù).本節(jié)從匿名接入、匿名路由、暗網(wǎng)服務(wù)3個方面,介紹相關(guān)技術(shù)及其研究進(jìn)展.
匿名接入技術(shù)是匿名通信網(wǎng)絡(luò)為了規(guī)避網(wǎng)絡(luò)監(jiān)管而提供的客戶端隱蔽接入技術(shù).網(wǎng)絡(luò)監(jiān)管者出于安全審計(jì)的考慮,會檢測匿名網(wǎng)絡(luò)的中繼節(jié)點(diǎn)并阻止用戶接入.為了規(guī)避此類網(wǎng)絡(luò)審查,研究人員提出了各種匿名接入技術(shù),包括bridge,obfs,meek,FTE,Flashproxy等.
2.1.1 bridge節(jié)點(diǎn)
Tor的設(shè)計(jì)者在2011年提出了bridge節(jié)點(diǎn)的概念[24]以突破網(wǎng)絡(luò)監(jiān)管.由于此類節(jié)點(diǎn)的信息不公開,因此Tor客戶端可以將其作為入口節(jié)點(diǎn)從而接入匿名網(wǎng)絡(luò).
bridge是匿名網(wǎng)絡(luò)為了提升自身隱蔽性和規(guī)避基于IP阻斷的網(wǎng)絡(luò)監(jiān)管而開發(fā)的一種接入機(jī)制.bridge節(jié)點(diǎn)功能上與一般的Tor中繼節(jié)點(diǎn)相同,但其信息并未被目錄服務(wù)器公開,從而降低了被網(wǎng)絡(luò)監(jiān)管者發(fā)現(xiàn)和阻斷的風(fēng)險.為了方便用戶獲取此類節(jié)點(diǎn)信息,Tor項(xiàng)目提供了2種獲取方式:1)在BridgeDB數(shù)據(jù)庫中保存了bridge節(jié)點(diǎn)信息,用戶可通過直接訪問官網(wǎng)站點(diǎn)獲取3個bridge節(jié)點(diǎn);2)用戶還可通過Google和Yahoo郵箱向指定郵箱發(fā)送請求,郵件服務(wù)器會自動回復(fù)3個bridge節(jié)點(diǎn)信息.由于Google和Yahoo申請?zhí)摷汆]件地址比較困難,所以可有效防止無限制獲取bridge節(jié)點(diǎn)信息等惡意攻擊.
2.1.2 obfs混淆代理
雖然Tor可以使用bridge節(jié)點(diǎn)來規(guī)避基于IP阻斷的監(jiān)管,但監(jiān)管者仍能通過深度包檢測(deep packet inspection, DPI)技術(shù)來識別出Tor流量[25].鑒于此,Tor項(xiàng)目開發(fā)了第1個傳輸插件obfs混淆代理.Obfs后續(xù)又經(jīng)歷了3次版本改進(jìn),分別為obfs2[26],obfs3[27],obfs4[28],當(dāng)前最新版本的Tor使用的是obfs4.其中,obfs2設(shè)計(jì)于2012年,采用分組密碼(AES-CTR-128)對Tor的傳輸數(shù)據(jù)進(jìn)行加密,擦除了Tor流量相關(guān)的標(biāo)識信息,從而實(shí)現(xiàn)了有效混淆.但是obfs2在設(shè)計(jì)上存在2個問題:1)握手階段的連接容易被識別.通信雙方在傳輸數(shù)據(jù)之前需要交換秘密信息并協(xié)商出會話密鑰,而在這一階段的密鑰種子是通過明文傳輸且報(bào)文格式固定,導(dǎo)致這種obfs2流量容易被中間審查機(jī)制識別并計(jì)算出雙方的會話密鑰.2)可利用Tor客戶端探測bridge節(jié)點(diǎn)以檢查其是否可進(jìn)行obfs2握手,從而實(shí)施主動的bridge探測攻擊.鑒于上述設(shè)計(jì)缺陷,Tor后續(xù)又推出了obfs3和obfs4方案.
作為obfs2的后續(xù)設(shè)計(jì),obfs3使用Diffie-Hellman協(xié)議來計(jì)算通信雙方的共享秘密,并由此生成對稱密鑰.相較于obfs2,obfs3在握手階段有了很大的改進(jìn),但其在密鑰交換階段仍然缺乏對bridge身份的驗(yàn)證,存在中間人攻擊和主動探測攻擊的風(fēng)險.
為了抵御上述攻擊,需要能夠有效保證雙方通信真實(shí)性、完整性和機(jī)密性的優(yōu)化方案.ScrambleSuit[29]提出利用帶外方式交換共享秘密實(shí)現(xiàn)通信雙方的互認(rèn)證,能夠有效防御主動探測攻擊.在此基礎(chǔ)上,obfs4進(jìn)一步利用BridgeDB實(shí)現(xiàn)了基于bridge身份驗(yàn)證的密鑰交換.客戶端通過BridgeDB查詢bridge節(jié)點(diǎn),獲得其IP地址、節(jié)點(diǎn)ID和公鑰信息.只有同時匹配這3個信息才能通過obfs4節(jié)點(diǎn)的身份驗(yàn)證并建立連接.obfs4是對obfs3的重大升級,既有效地混淆了Tor流量,又實(shí)現(xiàn)了bridge身份驗(yàn)證,達(dá)到能夠抵御主動探測攻擊和中間人攻擊的效果.
2.1.3 meek隱蔽通道構(gòu)建技術(shù)
meek是一種基于前置域(domain fronting)[30]的隱蔽通道構(gòu)建技術(shù),其工作原理如圖7所示.首先,meek-client向前置域名服務(wù)器發(fā)送一個TLS Client Hello消息,并將該服務(wù)器域名填入SNI(server name indication)字段.在TLS握手成功后,meek-client把實(shí)際傳輸?shù)腡or流量封裝在HTTP POST載荷中,并將目標(biāo)bridge地址寫入HTTP HOST字段.由于監(jiān)管者無法查看加密后的HTTP POST內(nèi)容,因此無法識別真正的目標(biāo)bridge地址.前置域服務(wù)器接收到meek-client數(shù)據(jù)后,根據(jù)HTTP HOST字段值將數(shù)據(jù)轉(zhuǎn)發(fā)到目標(biāo)bridge節(jié)點(diǎn).該節(jié)點(diǎn)上運(yùn)行的meek-server對HTTP報(bào)頭處理后將封裝的Tor流量轉(zhuǎn)發(fā)給后續(xù)中繼節(jié)點(diǎn).在當(dāng)前Tor網(wǎng)絡(luò)中,meek的實(shí)現(xiàn)主要依賴于Google,Amazon和Azure等大型服務(wù)提供商提供的白名單前置域名服務(wù)器,造成Tor客戶端在訪問正常網(wǎng)站的假象,從而規(guī)避網(wǎng)絡(luò)流量監(jiān)控.
Fig. 7 The architecture of meek圖7 meek體系結(jié)構(gòu)
2.1.4 FTE加密流量轉(zhuǎn)換技術(shù)
FTE(format-transforming encryption)[31]由Dyer等人在2013年ACM計(jì)算機(jī)與通信安全會議(ACM Conference on Computer and Communications Security, CCS)上發(fā)表,其主要原理是通過擴(kuò)展傳統(tǒng)對稱加密,將密文轉(zhuǎn)換為指定的傳輸格式.與obfs流量混淆方式不同,F(xiàn)TE沒有將原協(xié)議流量轉(zhuǎn)換為無序的未知流量,而是根據(jù)用戶輸入的正則表達(dá)式,輸出具有一定協(xié)議格式的流量.其中,用戶輸入的正則表達(dá)式可以從DPI系統(tǒng)源碼中直接提取或根據(jù)應(yīng)用層流量自動學(xué)習(xí)得到.這使得基于正則表達(dá)式的DPI技術(shù)會將其誤識別為用戶選定的協(xié)議流量,從而實(shí)現(xiàn)規(guī)避審查的目的.由于大部分Tor流量為HTTP流量,默認(rèn)情況下采用HTTP正則表達(dá)式將之轉(zhuǎn)化為HTTP協(xié)議,從而實(shí)現(xiàn)流量偽裝.
2.1.5 Flashproxy傳輸插件
Flashproxy[32]是運(yùn)行在瀏覽器中的傳輸插件,其原理是利用不斷變化的代理主機(jī)接入到匿名網(wǎng)絡(luò),且保證代理更新的速度比監(jiān)管機(jī)構(gòu)的檢測、跟蹤和阻斷速度快.在2013—2016年期間,F(xiàn)lashproxy項(xiàng)目一直被部署在Tor Browser中,直到2017年才棄用,被更有效的obfs4取代.
在使用Flashproxy轉(zhuǎn)發(fā)數(shù)據(jù)的過程中,需要3個組件協(xié)同工作,包括客戶端瀏覽器中的傳輸插件、代理主機(jī)Flash Proxy和第三方服務(wù)Facilitator.其中,F(xiàn)acilitator負(fù)責(zé)客戶端的注冊和Flash Proxy代理的分配,當(dāng)客戶端需要使用Flashproxy代理服務(wù)時,首先通過安全集合點(diǎn)連接到Facilitator以告知客戶端需要代理服務(wù),然后客戶端傳輸插件開始偵聽遠(yuǎn)程連接.
每個空閑的Flash Proxy會主動輪詢Facilitator,以獲得正在請求代理服務(wù)的客戶端.當(dāng)Flash Proxy獲得客戶端在Facilitator的注冊信息后,便主動發(fā)起和客戶端的連接,再發(fā)起對中繼節(jié)點(diǎn)的連接,最終客戶端和目標(biāo)中繼節(jié)點(diǎn)通過Flash Proxy進(jìn)行通信,其原理如圖8所示:
Fig. 8 The architecture of Flashproxy圖8 Flashproxy體系結(jié)構(gòu)
通過對上述5種主要的匿名接入技術(shù)的調(diào)研,可以發(fā)現(xiàn)匿名接入技術(shù)重點(diǎn)針對暗網(wǎng)流量特征和接入節(jié)點(diǎn)IP進(jìn)行混淆,從而抵御網(wǎng)絡(luò)監(jiān)管.其中,對于暗網(wǎng)流量特征,主要通過加密傳輸消除原有流量特征或者將其偽裝成其他協(xié)議流量,例如obfs和FTE.至于對接入節(jié)點(diǎn)的阻斷,主要通過代理主機(jī)轉(zhuǎn)發(fā)流量進(jìn)行規(guī)避,如meek依賴大型服務(wù)提供商提供的白名單轉(zhuǎn)發(fā)服務(wù)器.而Flashproxy則是通過提高轉(zhuǎn)發(fā)主機(jī)的更新頻率來保證監(jiān)管者無法枚舉并阻斷所有連接.
匿名路由技術(shù)是匿名通信系統(tǒng)為用戶提供匿名服務(wù)時所使用的一種關(guān)鍵技術(shù).該技術(shù)具體涉及路由節(jié)點(diǎn)選擇、鏈路建立、數(shù)據(jù)傳輸?shù)榷鄠€階段.通過匿名路由技術(shù),匿名通信系統(tǒng)的安全和性能都能夠得到保障.目前,低延遲匿名通信系統(tǒng)所使用的路由技術(shù)主要包括洋蔥路由、大蒜路由和基于DHT的路由.
2.2.1 洋蔥路由
洋蔥路由技術(shù)的核心思想是通過多跳代理與層層加密的方法為用戶的通信隱私提供保護(hù).Tor是最典型的使用洋蔥路由技術(shù)的匿名通信系統(tǒng),因此本節(jié)以Tor為例,對洋蔥路由技術(shù)進(jìn)行介紹.
在Tor暗網(wǎng)中,客戶端與隱藏服務(wù)器之間需要各自選擇3個節(jié)點(diǎn)建立多跳鏈路才能進(jìn)行通信.目前,Tor主要采用基于加權(quán)隨機(jī)的路由選擇算法選擇洋蔥路由器構(gòu)建鏈路.該算法依據(jù)服務(wù)器描述符(server descriptor)與共識文檔(consensus document)中的帶寬信息與放縮因子計(jì)算各節(jié)點(diǎn)的加權(quán)值,并按照出口節(jié)點(diǎn)、入口節(jié)點(diǎn)和中間節(jié)點(diǎn)的順序選擇鏈路節(jié)點(diǎn).值得注意的是,鏈路中任意2個洋蔥路由器應(yīng)來自不同的C類網(wǎng)段.
在節(jié)點(diǎn)選擇完成之后,OP從入口節(jié)點(diǎn)開始逐跳建立匿名鏈路,節(jié)點(diǎn)之間均采用TLS/SSLv3對鏈路進(jìn)行認(rèn)證.為增強(qiáng)可讀性,下面將入口節(jié)點(diǎn)、中間節(jié)點(diǎn)、出口節(jié)點(diǎn)用OR1,OR2,OR3表示.首先,OP與OR1建立TLS鏈接,即OP發(fā)送CELL_CREATE信元,OR1進(jìn)行響應(yīng)以完成Diffie-Hellman握手并協(xié)商會話密鑰k1,從而建立第1跳鏈路.其中,CELL_CREATE信元是Tor中一種數(shù)據(jù)傳輸?shù)幕締卧?,長度為512 B.然后,OP向OR1發(fā)出與OR2建立鏈路的Tor信元,OR1收到后與OR2建立TLS鏈路,并通過Diffie-Hellman協(xié)議協(xié)商OP與OR2之間的會話密鑰k2.OR1將會話密鑰通過加密報(bào)文告知OP,完成第2跳鏈路的建立.以此類推,Tor建立多跳鏈路實(shí)現(xiàn)與通信目標(biāo)的安全連接.
在匿名鏈路建立后,用戶可以通過OP訪問公共網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸.當(dāng)OP獲得目標(biāo)服務(wù)的IP地址和端口后,使用k1,k2,k3對數(shù)據(jù)信元進(jìn)行層層加密封裝,即{{{IP:port}這種加密方式稱為“洋蔥加密”.該信元經(jīng)過每個OR節(jié)點(diǎn)時,都會被使用對應(yīng)的密鑰對最外層進(jìn)行解密并轉(zhuǎn)發(fā).當(dāng)?shù)竭_(dá)OR3后進(jìn)行最后一次解密,即可識別出目標(biāo)服務(wù)器的IP地址和端口,從而建立TCP連接.在此過程中,用戶的上行數(shù)據(jù)經(jīng)過OP層層加密,由各OR逐層解密并轉(zhuǎn)發(fā)至目標(biāo)服務(wù)器;與此相反,目標(biāo)服務(wù)器的下行數(shù)據(jù)經(jīng)過各OR加密,由OP逐層解密并最終返回給應(yīng)用程序.對于目標(biāo)服務(wù)器來說,Tor用戶是透明的,其始終認(rèn)為自己在和OR3通信,而各OR無法同時獲得Tor用戶IP、目的服務(wù)器IP和應(yīng)用數(shù)據(jù),從而保證了通信的匿名性.
近年來,對洋蔥路由技術(shù)的研究主要集中在負(fù)載均衡、擁塞控制、調(diào)度策略等方面:
1) 在負(fù)載均衡方面.通過正確評估洋蔥路由器的有效帶寬、綜合考慮當(dāng)前負(fù)載等方式不僅可以提升Tor網(wǎng)絡(luò)性能,還可以提高安全性.例如Snader等人[33]認(rèn)為僅根據(jù)洋蔥路由器提交的帶寬進(jìn)行路由選擇易受到惡意節(jié)點(diǎn)謊報(bào)虛假帶寬的攻擊,因此提出了一種基于洋蔥路由器采樣帶寬中值的機(jī)會路由選擇算法.在此基礎(chǔ)上,Panchenko等人[34]提出了一種基于節(jié)點(diǎn)當(dāng)前負(fù)載和帶寬的路由選擇算法,進(jìn)一步提高了性能和安全性.而Rochet等人[35]提出Waterfiling算法,通過在用戶路徑節(jié)點(diǎn)上均衡網(wǎng)絡(luò)負(fù)載,從而降低被端到端流量關(guān)聯(lián)的風(fēng)險.
2) 在擁塞控制方面.通過防止擁塞發(fā)生或避開擁塞的洋蔥路由器能夠提升暗網(wǎng)性能.例如,Wang等人[36]認(rèn)為Tor在進(jìn)行路由選擇時將帶寬作為中心特征,忽略了當(dāng)前負(fù)載,導(dǎo)致部分節(jié)點(diǎn)未被充分利用或發(fā)生擁塞.針對該問題,他們提出了一種擁塞感知的路由選擇算法,即客戶端通過主動測量評估節(jié)點(diǎn)的擁塞狀態(tài),避免使用出現(xiàn)擁塞的節(jié)點(diǎn),并通過實(shí)驗(yàn)驗(yàn)證了其方法的有效性.針對Tor網(wǎng)絡(luò)中存在大量僵尸網(wǎng)絡(luò)流量的問題,Liu等人[37]提出了隱私保護(hù)訪問控制框架TorPolice,該框架允許服務(wù)提供商和Tor網(wǎng)絡(luò)實(shí)施預(yù)設(shè)的訪問策略,在向合法Tor用戶提供服務(wù)的同時拒絕僵尸網(wǎng)絡(luò)流量,緩解了網(wǎng)絡(luò)擁塞.
3) 在調(diào)度策略方面.主要通過分析流量所屬應(yīng)用類型來進(jìn)行鏈路調(diào)度,從而提升性能.例如,Tang等人[38]認(rèn)為Tor用戶體驗(yàn)差的主要原因之一是在鏈路調(diào)度算法中,允許具有連續(xù)流量的繁忙鏈路(如批量傳輸)搶占突發(fā)鏈路(如網(wǎng)頁瀏覽).針對此缺陷,該工作通過賦予突發(fā)鏈路更高優(yōu)先級,使得Tor網(wǎng)絡(luò)中大多數(shù)突發(fā)鏈路性能得到改善,同時產(chǎn)生的開銷較小.Alsabah等人[39]則利用機(jī)器學(xué)習(xí)方法對Tor加密鏈路進(jìn)行分類,識別出每個應(yīng)用程序所屬的服務(wù)類型.通過為每個服務(wù)類型分配優(yōu)先級,顯著改善了Tor用戶體驗(yàn).在后續(xù)工作[40]中,他們提出了一種名為Conflux的動態(tài)分流方法,根據(jù)測量延遲將流量分配到不同的路徑中以增強(qiáng)負(fù)載均衡特性,提升了連接到低帶寬bridge節(jié)點(diǎn)的用戶體驗(yàn).
此外,對各匿名路由替代算法的性能與安全性評估也是一個重要的研究分支.Wacek等人[41]探討了路由技術(shù)在性能和安全性之間的權(quán)衡,并通過高精度拓?fù)淠P蛯or網(wǎng)絡(luò)的報(bào)文延遲、洋蔥路由器轉(zhuǎn)發(fā)性能等特征進(jìn)行采集,進(jìn)而對整個Tor網(wǎng)絡(luò)進(jìn)行評估.Backes等人[42]提出了一種Tor網(wǎng)絡(luò)安全性評估框架MATor,能夠評估路由算法、Tor共識數(shù)據(jù)等對用戶匿名性的實(shí)際影響.在此基礎(chǔ)上,該文還提出了一種新的路由算法DistribuTor,能夠提供更強(qiáng)的匿名保障.在后續(xù)的研究中,該團(tuán)隊(duì)[43]對MATor進(jìn)行完善,增加了對路由技術(shù)抵御各類Structural攻擊能力的評估功能,并對DistribuTor,LASTor等路由替代算法進(jìn)行了實(shí)驗(yàn).Matic等人[44]則對bridge節(jié)點(diǎn)的安全性進(jìn)行了討論.更多的此類工作可以參考文獻(xiàn)[45].
2.2.2 大蒜路由
大蒜路由(garlic routing)具有分層加密、多消息綁定、端到端加密3個主要技術(shù)特點(diǎn),典型代表為I2P,因此本節(jié)以I2P為例來介紹大蒜路由.
I2P制定了獨(dú)特的路由算法挑選節(jié)點(diǎn)建立隧道[46-47].在隧道建立前,每個I2P節(jié)點(diǎn)只知道局部的節(jié)點(diǎn)信息,具體的節(jié)點(diǎn)選擇過程可分為4個步驟:
1) I2P節(jié)點(diǎn)會測量已知節(jié)點(diǎn)的網(wǎng)絡(luò)性能,測量周期分為1 min,1 h和24 h等,測量項(xiàng)目包括帶寬、netDb查詢時延和隧道建立成功率等信息,并將產(chǎn)生的詳細(xì)描述文件保存于本地.
2) I2P節(jié)點(diǎn)根據(jù)速度和容量對測量到的目標(biāo)節(jié)點(diǎn)進(jìn)行分類.其中,速度為1 min內(nèi)通過該目標(biāo)節(jié)點(diǎn)的數(shù)據(jù)量.為了保證結(jié)果的穩(wěn)定性,通常會取3條最快隧道的速度平均值.容量為一段時間內(nèi)該節(jié)點(diǎn)建立隧道的數(shù)量,對其估計(jì):
capacity=0.4×r(10 min)+0.3×r(30 min)+
0.2×r(1 h)+0.1×r(24 h),
(1)
其中,r(t)代表最近時間t內(nèi)成功建立隧道的數(shù)目;capacity為容量估計(jì).
根據(jù)速度和容量可將目標(biāo)節(jié)點(diǎn)分為3類:高速節(jié)點(diǎn)、高容量節(jié)點(diǎn)和標(biāo)準(zhǔn)節(jié)點(diǎn),3類節(jié)點(diǎn)的性能遞減.高容量節(jié)點(diǎn)為容量超過所有節(jié)點(diǎn)容量平均值的節(jié)點(diǎn),而高速節(jié)點(diǎn)為速度超過所有節(jié)點(diǎn)速度平均值的高容量節(jié)點(diǎn),剩余的節(jié)點(diǎn)均為標(biāo)準(zhǔn)節(jié)點(diǎn).
3) 不同的隧道類型會選擇不同的節(jié)點(diǎn),例如客戶隧道優(yōu)先選擇高速節(jié)點(diǎn),探測隧道優(yōu)先選擇高容量節(jié)點(diǎn)或標(biāo)準(zhǔn)節(jié)點(diǎn).當(dāng)同一類型節(jié)點(diǎn)充足時,該類型每個節(jié)點(diǎn)被選擇的概率相同;當(dāng)同一類型的節(jié)點(diǎn)數(shù)量不足時,會使用較低性能節(jié)點(diǎn)作為替代.其中探測隧道選擇高容量節(jié)點(diǎn)和標(biāo)準(zhǔn)節(jié)點(diǎn)的比例ratio可計(jì)算為
(2)
4) 隧道建立者隨機(jī)生成目標(biāo)值,被選擇節(jié)點(diǎn)按照與目標(biāo)值的異或距離進(jìn)行排序來確定節(jié)點(diǎn)在隧道中的位置.
I2P使用VTB(variable tunnel build)消息建立通信隧道,該消息主要由建立請求記錄(build request record, BRR)組成,而BRR由tooPeer字段和req字段組成,其中tooPeer字段為節(jié)點(diǎn)標(biāo)識,req字段包含分層密鑰key、回復(fù)密鑰replykey、下一跳節(jié)點(diǎn)ID等信息.利用VTB建立隧道的過程如圖9所示,可分為5個步驟:
① 客戶端由netDb獲知各節(jié)點(diǎn)公鑰,利用公鑰加密封裝包含3個BRR的1-VTB消息,轉(zhuǎn)發(fā)至節(jié)點(diǎn)A;
② 節(jié)點(diǎn)A根據(jù)明文toPeerA字段識別對應(yīng)1-BRR,利用節(jié)點(diǎn)A私鑰解密reqA獲得分層密鑰keyA、回復(fù)加密密鑰replykeyA、下一跳節(jié)點(diǎn)B的ID等信息,通過replykeyA加密回復(fù)數(shù)據(jù)responseA并替換1-BRR內(nèi)容,利用keyA解密2-BRR和3-BRR后封裝成2-VTB,轉(zhuǎn)發(fā)至節(jié)點(diǎn)B;
③ 節(jié)點(diǎn)B根據(jù)明文字段toPeerB識別對應(yīng)2-BRR,利用節(jié)點(diǎn)B私鑰解密reqB獲得明文數(shù)據(jù),通過replykeyB加密responseB數(shù)據(jù)替換2-BRR內(nèi)容,利用keyB解密1-BRR和3-BRR后封裝成3-VTB,轉(zhuǎn)發(fā)至節(jié)點(diǎn)C;
④ 節(jié)點(diǎn)C重復(fù)②和③中類似操作得到4-VTB,并將4-VTB轉(zhuǎn)發(fā)至客戶端輸入隧道的Gateway節(jié)點(diǎn)D;
⑤ 客戶端分層解密獲得4-VTB中各節(jié)點(diǎn)響應(yīng)明文數(shù)據(jù),從而判斷隧道是否建立成功.
經(jīng)過上述5個步驟之后,客戶端與節(jié)點(diǎn)A,B,C分別協(xié)商得到分層密鑰keyA,keyB,keyC用于隧道加密通信.
Fig. 9 Build I2P tunnel圖9 I2P隧道建立
大蒜路由中多消息綁定和端到端加密機(jī)制如圖10所示.當(dāng)客戶端訪問隱藏服務(wù)端時,使用隱藏服務(wù)LeaseSet中公鑰信息實(shí)現(xiàn)端到端加密.客戶端每個單獨(dú)的消息稱為一個蒜瓣(clove),每個蒜瓣有對應(yīng)的指示信息,用于指示該蒜瓣的類型和用途.客戶端將多個蒜瓣封裝成一個大蒜消息進(jìn)行轉(zhuǎn)發(fā),隱藏服務(wù)端分層解密并按照指示處理每個蒜瓣.
2.2.3 基于DHT的路由
基于DHT的路由技術(shù)的核心思想是利用DHT組織數(shù)據(jù),進(jìn)而使用對應(yīng)的搜索策略提供高效路由,并通過多跳代理保障通信的匿名性[48].Freenet是使用基于DHT的路由技術(shù)的典型匿名通信系統(tǒng).本節(jié)將以Freenet為例,對于基于DHT的路由技術(shù)進(jìn)行介紹.
Fig. 10 I2P garlic message圖10 I2P大蒜消息
Freenet路由是一種面向請求消息的深度優(yōu)先節(jié)點(diǎn)選擇機(jī)制,主要應(yīng)用于文件上傳和文件檢索[49].請求消息中除了包含文件索引,還包含UID(unique identifier),HTL(hops to live)等信息.文件索引值對應(yīng)一個節(jié)點(diǎn)位置值,表示該文件最可能的存儲位置,是請求消息路由的重要依據(jù).UID唯一地標(biāo)識一個請求,能夠有效避免消息路由過程中出現(xiàn)死循環(huán).HTL用來限制消息所允許轉(zhuǎn)發(fā)的跳數(shù),避免消息無限地被路由下去.目前HTL默認(rèn)的最大值為18,通常情況下隨著消息的轉(zhuǎn)發(fā)HTL會逐跳減1,當(dāng)HTL減至0時,該消息將被丟棄.此外,出于安全性考慮,F(xiàn)reenet中特別增加了一些針對HTL的混淆機(jī)制,對于HTL為18的請求,節(jié)點(diǎn)在轉(zhuǎn)發(fā)時只有50%的概率會使HTL減1;而對于HTL為1的請求,節(jié)點(diǎn)在轉(zhuǎn)發(fā)時只有25%的概率會使HTL減1.綜上,請求消息由發(fā)起者節(jié)點(diǎn)產(chǎn)生后,會按照深度優(yōu)先原則被轉(zhuǎn)發(fā)到下一跳,然后由下一跳繼續(xù)迭代路由.上傳請求會在檢測出鍵值沖突或HTL下降至0時停止轉(zhuǎn)發(fā),而檢索請求則會在檢索成功或HTL下降至0時停止轉(zhuǎn)發(fā).
Freenet路由選擇機(jī)制還結(jié)合了貪心策略.每個節(jié)點(diǎn)維護(hù)自身的路由表,并根據(jù)該表對消息進(jìn)行路由.為了便于區(qū)分,F(xiàn)reenet將與節(jié)點(diǎn)直接通信的鄰居節(jié)點(diǎn)稱為直接鄰居,距離兩跳的節(jié)點(diǎn)稱為間接鄰居.值得注意的是,F(xiàn)reenet中直接通信的節(jié)點(diǎn)之間會交換雙方直接鄰居的位置等信息,從而保證任意節(jié)點(diǎn)都擁有所有間接鄰居的位置等信息.圖11展示了節(jié)點(diǎn)A的直接鄰居、間接鄰居以及其路由表.其中,節(jié)點(diǎn)A的路由表中目的地節(jié)點(diǎn)包括所有直接鄰居和間接鄰居,而路由選擇的結(jié)果始終是直接鄰居.每次路由時,節(jié)點(diǎn)將根據(jù)消息中文件索引值確定對應(yīng)的位置,并比較路由表中目的地節(jié)點(diǎn)的位置與該位置的距離,迭代地選擇距離最近的目的地節(jié)點(diǎn)對應(yīng)的直接鄰居作為消息的下一跳節(jié)點(diǎn).對于需要重復(fù)路由的消息,節(jié)點(diǎn)繼續(xù)按照貪心策略選擇不重復(fù)的下一跳節(jié)點(diǎn).
Fig. 11 Routing table in Freenet圖11 Freenet路由表
暗網(wǎng)服務(wù)是指必須通過特殊的軟件、特殊的配置才能訪問,并且搜索引擎無法對其進(jìn)行檢索的服務(wù),包括了Web,IRC、文件共享等多種服務(wù)類型.由于匿名通信技術(shù)的引入,暗網(wǎng)服務(wù)器的位置信息通常都得到了有效的隱藏,使得大部分的暗網(wǎng)服務(wù)都具有較好的匿名性.下文分別對典型匿名系統(tǒng)提供的暗網(wǎng)服務(wù)技術(shù)進(jìn)行介紹.
2.3.1 Tor隱藏服務(wù)
Tor隱藏服務(wù)[注]https://gitweb.torproject.org/torspec.git/tree/rend-spec-v2.txt是通過隱藏服務(wù)域名(即洋蔥域名)唯一標(biāo)識和查找的.服務(wù)器首次運(yùn)行后將生成一個隱藏服務(wù)域名,其域名形式為z.onion.其中z是長度為16 B的字符串,由RSA公鑰Hash值的前80 b進(jìn)行base32編碼獲得.
Tor隱藏服務(wù)器在啟動過程中會將其信息上傳至隱藏服務(wù)目錄服務(wù)器,Tor客戶端能夠通過目錄服務(wù)器獲取足夠的信息與隱藏服務(wù)器建立雙向鏈路.圖2展示了客戶端訪問隱藏服務(wù)的具體過程:
① 隱藏服務(wù)器選擇3個洋蔥路由器作為其引入節(jié)點(diǎn),并與引入節(jié)點(diǎn)建立3跳鏈路;
② 隱藏服務(wù)器將其隱藏服務(wù)描述符(hidden service descriptor)上傳至隱藏服務(wù)目錄服務(wù)器,描述符中包含引入節(jié)點(diǎn)的信息與自身RSA公鑰;
④ 客戶端選擇一個洋蔥路由器作為匯聚節(jié)點(diǎn)并與該節(jié)點(diǎn)建立3跳鏈路;
⑤ 客戶端建立到達(dá)引入節(jié)點(diǎn)的3跳鏈路,并通過引入節(jié)點(diǎn)將匯聚節(jié)點(diǎn)的信息發(fā)送到隱藏服務(wù)器;
⑥ 隱藏服務(wù)器建立到達(dá)匯聚節(jié)點(diǎn)的3跳鏈路,并對該鏈路進(jìn)行認(rèn)證;
⑦ 經(jīng)過匯聚節(jié)點(diǎn),客戶端與隱藏服務(wù)器通過6跳鏈路進(jìn)行交互.
Tor隱藏服務(wù)器運(yùn)行時,將自身的RSA公鑰及引入節(jié)點(diǎn)信息上傳至通過式(3)選定的6個隱藏服務(wù)目錄服務(wù)器上,其中H(x)是結(jié)果長度為160 b的Hash函數(shù),‖為拼接函數(shù).
Descriptor-id=H(Public-key-id‖
Secret-id-part),
(3)
其中,Public-key-id即為RSA公鑰的SHA1摘要的前80 b.Secret-id-part,可計(jì)算為
Secret-id-part=H(Time-period
‖Descriptor-cookie‖Replica-index),
(4)
其中,Descriptor-cookie為可選字段,該字段可以用來防止未授權(quán)客戶端訪問隱藏服務(wù);Replica-index有2種取值,其作用為選擇不同的隱藏服務(wù)目錄服務(wù)器.Time-period字段用于分散隱藏服務(wù)重新選擇隱藏服務(wù)目錄服務(wù)器的時間,可計(jì)算為
(5)
其中,t為當(dāng)前的UNIX時間.該字段將一天劃分為256個時段,并在其中某個時刻重新選擇隱藏服務(wù)目錄服務(wù)器上傳信息.
隱藏服務(wù)目錄服務(wù)器利用DHT進(jìn)行組織,每個目錄服務(wù)器都是DHT中的一個節(jié)點(diǎn),DHT結(jié)構(gòu)如圖12所示:
Fig. 12 The topology of hidden service directories圖12 隱藏服務(wù)目錄服務(wù)器結(jié)構(gòu)圖
對隱藏服務(wù)技術(shù)的研究主要集中在Tor暗網(wǎng)安全性分析及性能分析2個方面.?verlier等人[50]為增加隱藏服務(wù)器抵御DoS攻擊的能力,提出了代客節(jié)點(diǎn)(valet service node)的設(shè)計(jì).客戶端欲訪問隱藏服務(wù)首先需要通過聯(lián)系信息憑證獲取代客節(jié)點(diǎn)信息,并且需要通過代客節(jié)點(diǎn)認(rèn)證才能訪問引入節(jié)點(diǎn),從而保證了引入節(jié)點(diǎn)的安全性,最終增強(qiáng)隱藏服務(wù)器防御DoS攻擊的能力.Loesing等人[51]評估了在客戶端訪問隱藏服務(wù)過程中獲取隱藏服務(wù)描述符、建立到達(dá)引入節(jié)點(diǎn)的鏈路等步驟的開銷,并提出了提前建立更多鏈路、同時連接2個引入節(jié)點(diǎn)等建議提高Tor暗網(wǎng)性能.Lenhard等人[52]評估了在使用蜂窩移動網(wǎng)絡(luò)等低帶寬接入啟動階段和隱藏服務(wù)訪問階段的性能,在此基礎(chǔ)上,提出了在低帶寬情況下設(shè)置較大網(wǎng)絡(luò)超時等建議以提升用戶體驗(yàn).
2.3.2 I2P隱藏服務(wù)
I2P提供的隱藏服務(wù)[注]http://www.i2pproject.net/zh/docs/how/tech-intro類型包括Web、郵件、聊天室和文件共享等,其中Web是主流的隱藏服務(wù),稱為eepSite,支持公開和非公開2種訪問方式.公開的eepSite的訪問鏈接是Hostname,非公開的eepSite可以通過Address訪問:
Destination=256 Bpublickey+
128 Bsigningkey+3 Bcertificate.
(6)
LSHash=SHA256(Destination).
(7)
Address=Base32(LSHash)+‘.b32.i2p’.
(8)
I2P中的隱藏服務(wù)通過Destination標(biāo)識,如式(6)所示,Destination由256 B公鑰、128 B簽名公鑰和3 B的證書類型組成.對于非公開的隱藏服務(wù),I2P根據(jù)式(7)由Destination計(jì)算LeaseSet的Hash值(簡稱為LSHash),再根據(jù)式(8)編碼獲得隱藏服務(wù)的Address信息.對于公開的隱藏服務(wù),服務(wù)擁有者需將Destination以及便于記憶的站點(diǎn)別名Hostname提交到I2P隱藏服務(wù)管理站點(diǎn),經(jīng)過其審核后公布給I2P用戶,用戶可以通過別名Hostname訪問隱藏服務(wù)站點(diǎn).
隱藏服務(wù)訪問者通過LSHash查詢Floodfill節(jié)點(diǎn)得到對應(yīng)隱藏服務(wù)的LeaseSet信息,LeaseSet提供訪問隱藏服務(wù)的Gateway節(jié)點(diǎn)信息,以此構(gòu)建隧道訪問隱藏服務(wù).
如圖13所示,在考慮默認(rèn)3跳隧道的情況下,I2P隱藏Web服務(wù)的通信過程包括7個步驟:
① 隱藏服務(wù)根據(jù)節(jié)點(diǎn)選擇機(jī)制,選擇合適的節(jié)點(diǎn)建立隱藏服務(wù)的輸入和輸出隧道,并根據(jù)輸入隧道入口節(jié)點(diǎn)信息生成隱藏服務(wù)的LeaseSet信息.
② 隱藏服務(wù)建立探測隧道,并通過探測隧道將①中生成的LeaseSet信息公布到netDb中.
③ 客戶端根據(jù)路由選擇機(jī)制,選擇合適的節(jié)點(diǎn)建立客戶端的輸入和輸出隧道,并根據(jù)輸入隧道入口節(jié)點(diǎn)信息生成客戶端的LeaseSet信息.
④ 客戶端建立探測隧道,并通過探測隧道向netDb查詢獲得隱藏服務(wù)的LeaseSet信息.
⑤ 請求Web隱藏服務(wù)的消息包含3個Clove,其中Clove1為HTTP請求;Clove2為數(shù)據(jù)存儲消息(database store message),即客戶端的LeaseSet信息,用于指示隱藏服務(wù)端到客戶端輸出隧道和輸入隧道的轉(zhuǎn)發(fā);Clove3為傳輸狀態(tài)消息(deliver status message),用于隱藏服務(wù)端響應(yīng)并確認(rèn)客戶端消息.
⑥ 客戶端數(shù)據(jù)經(jīng)過輸出隧道3次解密后得到端到端的加密數(shù)據(jù),同時輸出隧道末端點(diǎn)得到步驟③中隱藏服務(wù)LeaseSet所指示的入口節(jié)點(diǎn)信息,完成通信雙方輸出隧道到輸入隧道的數(shù)據(jù)轉(zhuǎn)發(fā).
⑦ 隱藏服務(wù)端對數(shù)據(jù)進(jìn)行4次解密得到明文數(shù)據(jù),同時利用明文數(shù)據(jù)中的Clove2信息實(shí)現(xiàn)隱藏服務(wù)輸出隧道至客戶端輸入隧道的轉(zhuǎn)發(fā).
Fig. 13 Hidden Web service communication in I2P圖13 I2P隱藏Web服務(wù)的通信過程
經(jīng)過以上7個步驟,完成了客戶端和隱藏Web服務(wù)端的通信,雙方可得知輸入隧道入口節(jié)點(diǎn)的信息.由于隧道中節(jié)點(diǎn)只知道前驅(qū)和后繼節(jié)點(diǎn)信息,從而保證了通信的匿名性.
2.3.3 Freenet暗網(wǎng)服務(wù)
Freenet基于其匿名文件存儲與檢索功能提供了暗網(wǎng)Freesite服務(wù).Freesite是Freenet中的“網(wǎng)站”,本質(zhì)上是存儲在Freenet中的靜態(tài)網(wǎng)頁文件.該隱藏服務(wù)基于Freenet文件存儲與檢索中的統(tǒng)一資源定位符(URL)以及路由機(jī)制進(jìn)行部署和訪問.Freesite利用Freenet的文件鍵值作為其統(tǒng)一資源定位符,對于任意一個Freesite站點(diǎn),只有獲取其鍵值才能夠訪問該網(wǎng)站查看相關(guān)信息.
鍵值是Freenet中文件的統(tǒng)一資源定位符,根據(jù)不同的文件分享需求,F(xiàn)reenet提供了不同種類的鍵值.鍵值類型包括CHK(content Hash keys)和SSK(signed subspace keys)兩大類,而USK(updatable subspace keys)和KSK(keyword signed keys)是2種特殊的SSK[53].Freesite利用SSK或USK作為其鍵值類型將靜態(tài)網(wǎng)頁文件上傳至Freenet中,這2種鍵值類型的文件很容易進(jìn)行更新,便于所有者維護(hù)自己的Freesite.用戶獲取了文件的鍵值,即可在Freenet中利用Fproxy代理功能在瀏覽器中訪問該Freesite.
CHK是最基礎(chǔ)的一種鍵值,適合靜態(tài)文件資源使用.這種鍵值包括文件的Hash值、解密密鑰和加密設(shè)置等信息,其格式為“CHK@Hash值,解密密鑰,加密設(shè)置”.CHK通過對二進(jìn)制文件內(nèi)容進(jìn)行SHA256 Hash運(yùn)算生成一個由文件內(nèi)容決定的Hash值,該Hash值也作為對應(yīng)文件在Freenet中的索引,生成該索引的同時會生成一個隨機(jī)密鑰用來對文件內(nèi)容進(jìn)行對稱加密,文件被加密存儲在Freenet中.鍵值中的加密設(shè)置主要包括使用的加密算法等信息.
SSK適用于Freesite站點(diǎn)等需要文件頻繁更新操作的資源,可以保證只有文件所有者才能更新.這種鍵值由5部分組成:公鑰Hash、文件解密密鑰、加密設(shè)置、文件描述符以及版本號.其格式為“SSK@公鑰Hash,文件解密密鑰,加密設(shè)置/文件描述符-版本號”.文件所有者在上傳SSK類型的文件時,首先需要生成一對公私鑰,其中公鑰的Hash值將作為該文件在Freenet中的索引,而私鑰將用來對文件密文進(jìn)行簽名從而提供完整性校驗(yàn).另外,文件所有者需要提供一個文件對稱加密密鑰,并將原始文件加密后的密文、利用私鑰對密文的簽名以及公鑰數(shù)據(jù),共同存儲在節(jié)點(diǎn)中,以便用戶對其進(jìn)行校驗(yàn).Freesite擁有者還可以為該文件指定一個簡短的文本字符串作為文件描述符,同時用版本號指明了當(dāng)前文件的版本,用以區(qū)分文件的不同版本.
USK與KSK是2種特殊的SSK.USK主要用于鏈接到最新版本的SSK,這種鍵值本質(zhì)上就是對SSK進(jìn)行了一層封裝,向用戶隱藏了對于最新版本SSK的搜索過程.這種鍵值格式為“USK@公鑰Hash,文件解密密鑰,加密設(shè)置/文件描述符/版本號/”.KSK是簡化的SSK,僅僅由一個描述性的文本字符串構(gòu)成,其格式為“KSK@文本字符串”.當(dāng)選擇向Freenet中上傳這種鍵值類型的文件時,用戶只需要提供一個描述性的文本字符串.節(jié)點(diǎn)首先根據(jù)用戶提供的字符串生成一對公私鑰,然后同樣對公鑰進(jìn)行Hash產(chǎn)生該文件的索引,私鑰則用來對文件進(jìn)行簽名以提供一定的完整性校驗(yàn).文件最終利用該文本字符串作為對稱密鑰加密后與簽名一同存儲在Freenet中.KSK存在的主要問題是容易發(fā)生沖突,當(dāng)2個用戶同時選擇了同一個文本描述符,兩者存儲的對應(yīng)文件則具有相同的索引.
用戶利用鍵值檢索對應(yīng)文件資源的過程是節(jié)點(diǎn)選擇過程.Freenet中一種典型的資源請求過程如圖14所示,節(jié)點(diǎn)A作為請求者在其本地存儲未檢索到對應(yīng)文件后,向節(jié)點(diǎn)B發(fā)起請求.節(jié)點(diǎn)B收到該請求后,在本地未檢索到文件,于是向與文件索引值最近的節(jié)點(diǎn)C發(fā)起文件請求.節(jié)點(diǎn)C無法檢索到該文件返回了請求失敗消息.節(jié)點(diǎn)B收到該消息后繼續(xù)向次近的節(jié)點(diǎn)D發(fā)起請求,節(jié)點(diǎn)D先向節(jié)點(diǎn)F發(fā)起請求,節(jié)點(diǎn)F又向其鄰居節(jié)點(diǎn)B發(fā)起請求.此時在節(jié)點(diǎn)B處檢測到請求的循環(huán),節(jié)點(diǎn)B返回請求失敗給節(jié)點(diǎn)F.節(jié)點(diǎn)F沒有其他鄰居節(jié)點(diǎn),向節(jié)點(diǎn)D返回請求失敗消息.節(jié)點(diǎn)D此時向次近的鄰居節(jié)點(diǎn)E發(fā)起請求,當(dāng)節(jié)點(diǎn)E檢索到該文件,將沿路徑E→D→B→A反饋結(jié)果給節(jié)點(diǎn)A.
Fig. 14 A typical request sequence in Freenet圖14 一種典型的Freenet資源請求過程
2.3.4 ZeroNet暗網(wǎng)服務(wù)
ZeroNet基于BitTorrent技術(shù)部署用戶站點(diǎn),并通過Bitcoin加密技術(shù)保證站點(diǎn)文件的完整性.當(dāng)用戶訪問一個ZeroNet的網(wǎng)站資源時,首先查找本地資源,若不存在則通過BitTorrent網(wǎng)絡(luò)查找該網(wǎng)站資源的擁有者,將擁有資源的部分訪問者的IP地址以及端口號返回給用戶.因?yàn)檎军c(diǎn)的每個訪問者均存儲了站點(diǎn)文件,使得用戶可以通過TCP連接從這些訪問者中下載網(wǎng)站內(nèi)容.具體步驟如下:
① 用戶查找網(wǎng)站資源的擁有者.該操作是在BitTorrent Tracker和用戶之間進(jìn)行的,如圖15所示.用戶向BitTorrent Tracker請求網(wǎng)站資源時,Tracker將用戶注冊成為訪問者,并將擁有該資源的部分可訪問網(wǎng)站的IP及端口號返回給用戶.
Fig. 15 Workflow of user looking up the owner of resource圖15 用戶查找網(wǎng)站資源的擁有者流程
② 用戶下載網(wǎng)站資源.該操作在用戶和其他訪問者之間進(jìn)行,其他訪問者是擁有用戶請求資源的可訪問網(wǎng)站,如圖16所示.在步驟1之后,用戶獲得了可訪問網(wǎng)站的IP及端口號,首先會下載該網(wǎng)站的簽名信息集文件,該文件包含所有文件名、Hash值和網(wǎng)站所有者的加密簽名.之后用戶使用文件中網(wǎng)站地址和網(wǎng)站所有者的簽名來驗(yàn)證下載的簽名信息集文件.驗(yàn)證完畢后用戶可以使用簽名信息集文件中的SHA512 Hash值下載并檢驗(yàn)網(wǎng)站中的其他文件,包括HTML,CSS,JS等.
Fig. 16 Workflow of user downloading site resources圖16 用戶下載網(wǎng)站資源流程
用戶在訪問網(wǎng)站后即可為其他訪問者提供該網(wǎng)站的下載服務(wù),提升整個站點(diǎn)文件的下載速度.用戶可使用Tor網(wǎng)絡(luò)與BitTorrent Tracker服務(wù)器通信以隱藏其真實(shí)IP地址.
ZeroNet網(wǎng)站由其所有者更新,為該網(wǎng)站提供文件下載服務(wù)的所有用戶節(jié)點(diǎn)僅接收對網(wǎng)站內(nèi)容所做的增量更新.該操作是在網(wǎng)站所有者和網(wǎng)站訪問者之間進(jìn)行的,如圖17所示.如果網(wǎng)站所有者修改了站點(diǎn)內(nèi)容,他將簽署一個新的簽名信息集文件,該文件會自動映射到內(nèi)置的本地?cái)?shù)據(jù)庫,同時將其發(fā)送給訪問者.訪問者使用簽名驗(yàn)證文件的完整性,將修改后的文件內(nèi)容保存在本地,以供其他訪問者訪問下載,瀏覽器也會實(shí)時更新修改后的網(wǎng)站內(nèi)容.
Fig. 17 Workflow of ZeroNet site update圖17 ZeroNet網(wǎng)站更新流程
ZeroNet站點(diǎn)可同時由多個用戶進(jìn)行維護(hù),此類網(wǎng)站需要其他維護(hù)站點(diǎn)的用戶向網(wǎng)站所有者發(fā)送維護(hù)申請?jiān)S可,如圖18所示.用戶需要發(fā)送其地址(即公鑰)給網(wǎng)站所有者,網(wǎng)站所有者在簽名信息集文件中加入該地址,并生成基于BIP32的Bitcoin地址給每個用戶,表明該用戶為有效簽名者,并向所有的訪問者發(fā)送新的簽名信息集文件,以更新網(wǎng)站的發(fā)布權(quán)限.
Fig. 18 Workflow of multi-user site registration圖18 多用戶網(wǎng)站注冊流程
綜上所述,ZeroNet是一個由訪問者提供服務(wù)的P2P暗網(wǎng).雖然該系統(tǒng)沒有采用任何的匿名技術(shù)保護(hù)站點(diǎn)和用戶之間的通信隱私,但它利用BitTorrent網(wǎng)絡(luò)架構(gòu)并結(jié)合Bitcoin加密技術(shù)將站點(diǎn)文件組織在一個封閉的P2P環(huán)境中,使得搜索引擎無法檢索到站點(diǎn)內(nèi)容,形成了ZeroNet暗網(wǎng).
圍繞匿名通信系統(tǒng)的隱私保護(hù)效果,研究人員開展了相關(guān)的攻防研究.這些工作探討了匿名通信系統(tǒng)的設(shè)計(jì)缺陷,并尋求相應(yīng)的防御方法.
匿名通信攻擊可以分為針對網(wǎng)絡(luò)流量的攻擊和針對節(jié)點(diǎn)的攻擊:針對流量的攻擊通?;诹髁糠治黾夹g(shù),即通過嗅探并分析網(wǎng)絡(luò)通信流量的各種模式,以獲取有價值信息;而針對節(jié)點(diǎn)的攻擊則主要是匿名通信節(jié)點(diǎn)系統(tǒng)和協(xié)議存在漏洞的利用.
本節(jié)首先針對現(xiàn)有的基于網(wǎng)絡(luò)流量分析的去匿名化攻擊技術(shù),從2個維度[54]介紹網(wǎng)絡(luò)流量攻擊:
1) 被動和主動攻擊.根據(jù)攻擊者對通信行為的干涉程度進(jìn)行劃分,攻擊者可以被動監(jiān)聽或主動操縱目標(biāo)流量.
2) 單端和端到端攻擊.根據(jù)威脅模型的不同進(jìn)行劃分,攻擊者通過監(jiān)控或控制發(fā)送方或/和接收方的相關(guān)設(shè)備.
被動攻擊是指攻擊者通過被動網(wǎng)絡(luò)竊聽分析抽取流量特征,在這個過程中并不會影響數(shù)據(jù)的正常傳輸,其優(yōu)勢在于隱蔽性強(qiáng).主動攻擊則是攻擊者對數(shù)據(jù)通信過程本身施加干擾,例如對數(shù)據(jù)包進(jìn)行修改、重放、丟棄或延遲等操作,從而達(dá)到更高效地進(jìn)行流量特征分析和抽取的目的.
單端攻擊是指僅占據(jù)發(fā)送端或接收端實(shí)施的攻擊技術(shù).執(zhí)行單端攻擊的攻擊者需要監(jiān)控通過發(fā)送端或接收端設(shè)備的流量,從而破壞用戶的通信保密性和匿名性.單端被動攻擊提取流量模式作為指紋,并基于此推斷應(yīng)用層的流量內(nèi)容,例如用戶訪問的網(wǎng)站.單端主動攻擊則可以主動將內(nèi)容注入到流量中,或控制客戶端的入口節(jié)點(diǎn)以迫使客戶端直接向攻擊者發(fā)送信號并暴露其真實(shí)IP地址.
端到端攻擊指同時占據(jù)通信入口和出口實(shí)施的攻擊,可以采用被動或主動攻擊方式來關(guān)聯(lián)客戶端和服務(wù)器之間的通信關(guān)系.為了實(shí)施攻擊,攻擊者通過在發(fā)送器和接收器兩側(cè)控制或監(jiān)聽設(shè)備(例如兩端路由器,或Tor入口和出口節(jié)點(diǎn)),然后基于流量特征比對嫌疑發(fā)送端發(fā)出的流量和嫌疑接收端收到的流量,以確認(rèn)通信關(guān)系.
本節(jié)將分別從端到端被動攻擊、端到端主動攻擊、單端被動攻擊和單端主動攻擊這4個方面闡述現(xiàn)有相關(guān)工作.此外,還將介紹針對節(jié)點(diǎn)系統(tǒng)和協(xié)議漏洞的相關(guān)攻擊技術(shù).
3.1.1 被動端到端流量分析
端到端被動攻擊的目的是被動記錄流量,并用統(tǒng)計(jì)方法來評估發(fā)送者的出站流量和接收者的入站流量之間的相似性.圖19說明了端到端被動攻擊的基本工作流程.此類技術(shù)可以利用的流量特征包括數(shù)據(jù)包計(jì)數(shù)、流量模式相關(guān)性、時序相關(guān)性等.例如,攻擊者可以簡單地在發(fā)送器的輸出鏈路上對幾個時間間隔中輸出的數(shù)據(jù)包數(shù)目進(jìn)行計(jì)數(shù),然后在接收器的輸入鏈路上對相同時間間隔中到達(dá)的數(shù)據(jù)包數(shù)目進(jìn)行計(jì)數(shù),最后用距離函數(shù)來計(jì)算這2個鏈路在相關(guān)流量特征上的距離.
Fig. 19 Workflow of end-to-end passive attacks圖19 端到端被動攻擊的工作流程
由于端到端被動攻擊僅需要監(jiān)聽流量,因此它的主要優(yōu)點(diǎn)是具有較高的隱蔽性.然而,這種方案的準(zhǔn)確率低而誤報(bào)率高.因此,攻擊者需要足夠的時間來觀察流量并發(fā)現(xiàn)發(fā)送方和接收方之間的流量模式相似性,以便降低誤報(bào)率.
根據(jù)攻擊者能力的不同,現(xiàn)有被動端到端攻擊可以分為2種:一種是攻擊者可實(shí)施全局監(jiān)聽,例如可以監(jiān)聽整個自治域系統(tǒng)(autonomous systems, AS)或互聯(lián)網(wǎng)交換中心(Internet exchange, IX)內(nèi)的信道;另一種是攻擊者可實(shí)施局部監(jiān)聽,例如向匿名通信網(wǎng)絡(luò)注入節(jié)點(diǎn),通過一定策略增加自身被選中的概率,從而在某個節(jié)點(diǎn)上實(shí)施攻擊.
1) 全局監(jiān)聽攻擊.全局監(jiān)聽攻擊是指攻擊者可以在獨(dú)立的AS或IX甚至更大范圍地對匿名鏈路進(jìn)行監(jiān)控分析,從而實(shí)現(xiàn)通信關(guān)系的確認(rèn).由于Tor現(xiàn)有的路由選擇策略會盡可能使一條鏈路穿越不同的國家,這就意味著即使是AS/IX級別攻擊者也并不一定能同時監(jiān)控出口和入口節(jié)點(diǎn).而Edman等人[55]的研究證實(shí)了單個自治系統(tǒng)能夠通過流量觀測和關(guān)聯(lián)來威脅Tor暗網(wǎng)安全性,在此基礎(chǔ)上該工作評估了一些簡單的AS感知路徑選擇算法的有效性,并提出了一種路徑感知路由選擇算法,可以改善路由選擇中的位置多樣性.Akhoondi等人[56]設(shè)計(jì)了一種高效算法,用于判斷Tor鏈路是否能夠被AS進(jìn)行流量關(guān)聯(lián),并基于該算法設(shè)計(jì)了一種新的Tor客戶端LASTor.LASTor能夠避免建立可被AS流量關(guān)聯(lián)的Tor鏈路,從而提高了Tor暗網(wǎng)的安全性.IX具有比AS更大的監(jiān)控范圍,Murdoch等人[57]驗(yàn)證了IX級別攻擊,通過對真實(shí)的流量進(jìn)行采樣,提取報(bào)文發(fā)送率、報(bào)文長度等統(tǒng)計(jì)特征,實(shí)現(xiàn)了實(shí)體通信關(guān)系的確認(rèn).Johnson等人[58]在仿真環(huán)境下進(jìn)行實(shí)驗(yàn),在同時控制具有高帶寬的Tor節(jié)點(diǎn)以及IX的條件下,可以對80%的隨機(jī)鏈路實(shí)現(xiàn)通信關(guān)系的確認(rèn).在AS/IX級別攻擊中,攻擊者需要對相當(dāng)大范圍的網(wǎng)絡(luò)流量進(jìn)行監(jiān)控和分析,這就對其所能掌控的資源有很高要求.Nasr等人[59]設(shè)計(jì)了一個流量關(guān)聯(lián)系統(tǒng)DeepCorr,利用深度學(xué)習(xí)架構(gòu)學(xué)習(xí)適用于Tor復(fù)雜網(wǎng)絡(luò)的流量關(guān)聯(lián)函數(shù),可將Tor連接關(guān)聯(lián)起來,準(zhǔn)確度明顯強(qiáng)于現(xiàn)有算法.
2) 局部監(jiān)聽攻擊.局部監(jiān)聽攻擊是指通過向網(wǎng)絡(luò)中提供滿足帶寬、在線時間要求的惡意節(jié)點(diǎn),使其成為匿名系統(tǒng)的一部分來實(shí)施攻擊.而隨著匿名網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,受限于攻擊成本,攻擊者無法提供足夠的高帶寬節(jié)點(diǎn)來獲得更多鏈路的控制權(quán),因此需要采取一些措施提高注入節(jié)點(diǎn)被選中的概率.Bauer等人[60]提出了通過上傳虛假高帶寬信息提高惡意節(jié)點(diǎn)被選中概率的策略.Pappas等人[61]利用惡意用戶節(jié)點(diǎn)構(gòu)建環(huán)形鏈路,惡意消耗鏈路中合法中繼節(jié)點(diǎn)的資源,最終使其資源耗盡并拒絕服務(wù),從而間接提高惡意節(jié)點(diǎn)被選中的概率.隨著一些新提出的鏈路構(gòu)建方法可自動選取相對可靠中繼節(jié)點(diǎn),局部監(jiān)聽攻擊的有效性面臨著更多的挑戰(zhàn).
3.1.2 主動端到端流量分析
端到端主動攻擊的基本思想是攻擊者可以通過在發(fā)送端或接收端的目標(biāo)流量中嵌入特殊信號,然后檢測接收端或發(fā)送端側(cè)的流量,以便識別信號并確認(rèn)發(fā)送端和接收端之間的通信關(guān)系.這種類型的攻擊也被稱為基于流水印的攻擊,工作流程如圖20所示.
Fig. 20 Workflow of end-to-end active attacks[62]圖20 端到端主動攻擊的工作流程[62]
對于流水印嵌入,攻擊者可以利用不同網(wǎng)絡(luò)層次的多種特征.本節(jié)分別從網(wǎng)絡(luò)層、協(xié)議層和應(yīng)用層3個層面闡述現(xiàn)有的基于流水印的攻擊方法.
1) 在網(wǎng)絡(luò)層.攻擊者可以利用諸如流量速率[63]、包延遲間隔[64]和包大小等特征來將信號嵌入到目標(biāo)流量中.例如Yu等人[63]提出一種水印嵌入方法,將不可見的直序擴(kuò)頻信號(direct sequence spread spectrum, DSSS)嵌入在流量中,以調(diào)制其流速率模式.然后,嵌入信號和數(shù)據(jù)內(nèi)容通過匿名通信網(wǎng)絡(luò)一起傳輸?shù)浇邮辗?最后,攻擊者可以識別信號并破壞發(fā)送方和接收方之間的匿名性.為了減少時延抖動的影響,Wang等人[65]提出一種攻擊技術(shù),可追蹤互聯(lián)網(wǎng)上的P2P匿名VoIP電話.該技術(shù)的思想是在選定流的n個獨(dú)立同分布的數(shù)據(jù)包中隨機(jī)選擇2r個數(shù)據(jù)包,分為r對數(shù)據(jù)包,通過調(diào)整r對數(shù)據(jù)包的IPD(inter-packet delay)差值的平均值來嵌入追蹤信息.實(shí)驗(yàn)研究表明追蹤P2P匿名VoIP電話是可行的,該技術(shù)可有效地追蹤任何長于90 s的P2P匿名VoIP電話.Wang等人[64]研究了基于質(zhì)心的包延遲間隔的水印技術(shù),通過調(diào)整時間間隔質(zhì)心,可以將一系列二進(jìn)制信號位嵌入流量中.Houmansadr等人[66]利用非盲水印的思想調(diào)制報(bào)文間隔,并且使用擴(kuò)頻技術(shù)降低了先前技術(shù)中所用的時延,用少量的數(shù)據(jù)包就能保證流水印的魯棒性和隱蔽性.為了抵御多流攻擊,Houmansadr等人[67]還設(shè)計(jì)了SWIRL流水印機(jī)制,該方案是第1個可用于大規(guī)模流量分析的盲水印,可抗多流攻擊和Tor網(wǎng)絡(luò)擁塞,并以不同模式標(biāo)記每個流.SWIRL對于包丟失和網(wǎng)絡(luò)抖動具有魯棒性,且引入的延遲較小,因此隱蔽性較高.Rezaei等人[68]提出了一種盲流水印識別系統(tǒng)TagIt,將水印信號調(diào)制成網(wǎng)絡(luò)流的定時模式,即將數(shù)據(jù)包稍微延遲到只有水印識別方知道的隱蔽時間間隔,從而實(shí)現(xiàn)對第三方不可見.此外,可利用隨機(jī)化來抵抗各種檢測攻擊,如多流攻擊.攻擊者還可以改變包大小來將信號嵌入到目標(biāo)流量中.例如,Ling等人[69]提出了一種攻擊方法,可以控制Web服務(wù)器并操縱響應(yīng)HTTP數(shù)據(jù)包的大小,用特定的包長度表示單個十六進(jìn)制位.通過改變幾個包的長度,可以將消息編碼到流量中.盡管包長度在單跳代理處被部分填充,但是攻擊者仍然可以推斷包長度,以便在接收端側(cè)恢復(fù)原始信號來確認(rèn)發(fā)送端和接收端之間的通信關(guān)系.另外,為了保證這種攻擊的隱蔽性,攻擊者需要保持原始包大小的分布和自相似性.為此,攻擊者需要選擇適當(dāng)?shù)陌⒏淖兤浯笮?
2) 在協(xié)議層.水印攻擊可以采用匿名通信系統(tǒng)的不同協(xié)議特征.例如,Ling等人[70]在可控OR節(jié)點(diǎn)上控制Tor信元發(fā)送規(guī)律,在出口節(jié)點(diǎn)處連發(fā)3個Tor信元代表信號1,1個Tor信元代表信號0,并通過分析信元在網(wǎng)絡(luò)逐跳傳輸中可能出現(xiàn)的變化,設(shè)計(jì)信號恢復(fù)算法;在入口節(jié)點(diǎn)處對信號進(jìn)行識別,可以在較短的時間內(nèi)實(shí)現(xiàn)對Tor匿名流量通信關(guān)系的快速確認(rèn).Ling等人[71]深入探討了Tor的通信協(xié)議,發(fā)現(xiàn)Tor使用高級加密標(biāo)準(zhǔn)(AES-CTR)的計(jì)數(shù)器模式來加密和解密Tor信元.因此,每個Tor節(jié)點(diǎn),包括鏈路中的Tor客戶端,維持本地計(jì)數(shù)器以使計(jì)數(shù)器值彼此同步,以便正確地加密或解密Tor信元.該攻擊利用多跳路徑中的計(jì)數(shù)器同步機(jī)制的特征,并且干擾沿著該路徑的某節(jié)點(diǎn)處的計(jì)數(shù)器值,會導(dǎo)致Tor信元的加密/解密失敗.通過這種方式,攻擊者可快速確認(rèn)鏈路的源地址和目的地址之間的通信關(guān)系.
3) 在應(yīng)用層.攻擊者可以在服務(wù)器端將特殊內(nèi)容注入目標(biāo)網(wǎng)絡(luò)響應(yīng)流量中,以強(qiáng)制客戶端生成特殊流量模式作為信號.然后,攻擊者可以在客戶端觀察到該信號并確認(rèn)發(fā)送方和接收方之間的通信關(guān)系.Ramsbrock等人[72]在應(yīng)用層改變數(shù)據(jù)包長度,通過在數(shù)據(jù)包中填充字符來嵌入信號.Wang等人[73]提出一種攻擊方案,一旦攻擊者發(fā)現(xiàn)通過其出口節(jié)點(diǎn)的目標(biāo)頁面響應(yīng)流量,則可以注入空圖像的惡意網(wǎng)絡(luò)鏈接,使得客戶端側(cè)的瀏覽器下載這些鏈接產(chǎn)生特定的流量模式.若攻擊者在入口節(jié)點(diǎn)處檢測到期望的流量模式,便可確認(rèn)發(fā)送者和接收者之間的通信關(guān)系.Chakravarty等人[74]在Web服務(wù)器端加入代碼讓用戶下載一個較大且不易被察覺的文件,然后根據(jù)統(tǒng)計(jì)相關(guān)性在收集到的眾多入口NetFlow流量記錄中找到符合此流量特征的入口節(jié)點(diǎn),從而確認(rèn)通信關(guān)系.此類攻擊還可在用戶的返回流量中注入JavaScript代碼,以觸發(fā)用戶端瀏覽器產(chǎn)生特定的信號流量.
3.1.3 被動單端流量分析
單端被動攻擊的思路是監(jiān)控目標(biāo)和匿名代理之間的流量,并通過將預(yù)期流量模式與預(yù)先收集的網(wǎng)站指紋進(jìn)行比較來識別實(shí)際訪問的網(wǎng)站.這種類型的攻擊也被稱為網(wǎng)站指紋(website fingerprinting, WF)攻擊.
圖21說明了單端被動攻擊的基本工作流程,包含離線訓(xùn)練和在線分類2個階段.在離線訓(xùn)練階段,攻擊者首先需要選擇多個感興趣的網(wǎng)站,并設(shè)置被攻擊者的環(huán)境以模仿其瀏覽活動的過程.然后,攻擊者將逐一瀏覽網(wǎng)站并收集相應(yīng)的流量.此外,需對收集的數(shù)據(jù)進(jìn)行預(yù)處理以便去除噪聲.例如,因?yàn)榫W(wǎng)頁上的廣告鏈接是動態(tài)的,網(wǎng)站指紋攻擊的準(zhǔn)確性將受到影響.因此,需要通過使用一些預(yù)處理策略,對此類噪聲進(jìn)行過濾.此外,攻擊者從預(yù)處理的流量中提取合適的特征來表示通常隱藏在流量中真實(shí)有效的模式.目前已被驗(yàn)證的有效特征包括包長度分布、流量、總時間、流量方向、包長度順序、上行/下行字節(jié)、突發(fā)流量字節(jié)長度[75]等.最后,攻擊者選擇合適的分類器,利用采集到的樣本數(shù)據(jù)來生成分類規(guī)則.該類攻擊中常用的分類器包括多項(xiàng)式樸素貝葉斯分類器、支持向量機(jī)、決策樹等.在第2階段,攻擊者利用監(jiān)控工具捕獲目標(biāo)用戶和匿名代理之間的流量,并利用相同的預(yù)處理方法去除噪聲,然后根據(jù)訓(xùn)練好的分類模型對流量進(jìn)行特征匹配和識別.
Fig. 21 Workflow of single-end passive attacks圖21 單端被動攻擊的工作流程
Hintz[76]最先提出了Web站點(diǎn)指紋攻擊的概念,并在理論上證明了指紋攻擊的可行性與有效性,但該攻擊方案僅適用于HTTP1.0協(xié)議,對之后的HTTP協(xié)議不再有效.Liberatore等人[77]在前人工作的基礎(chǔ)上,僅使用報(bào)文長度分布為特征,并首次將機(jī)器學(xué)習(xí)領(lǐng)域的樸素貝葉斯分類器應(yīng)用于指紋識別,大大提高了單跳匿名代理上指紋攻擊的成功率.但該方案依賴于上下行流量中報(bào)文的長度,并不適用于對報(bào)文進(jìn)行了定長封裝處理的多跳匿名通信系統(tǒng)(例如Tor),具有較大的局限性.Lu等人[78]指出數(shù)據(jù)包長度順序信息,可用于增強(qiáng)網(wǎng)站指紋識別.Panchenko等人[79]綜合多種流量特征,包括特定長度報(bào)文出現(xiàn)次數(shù)、總傳輸量、上下行報(bào)文數(shù)據(jù)量及所占比例等,并使用支持向量機(jī)對指紋進(jìn)行分類,將多跳匿名代理上的識別率從3%提升至55%.Cai等人[80]使用最佳字符串編輯距離(optimal string alignment distance, OSAD)替換支持向量機(jī)的核函數(shù)衡量指紋相似性,在Tor上取得較好攻擊效果.在此基礎(chǔ)上,Wang等人[81]將特征集擴(kuò)大,調(diào)整不同特征所占權(quán)重,使用K近鄰作為分類器,降低了計(jì)算成本,攻擊效果進(jìn)一步提升.Hayes等人[82]提出了一種基于隨機(jī)決策森林的網(wǎng)站指紋識別技術(shù),稱為k-指紋識別技術(shù),該技術(shù)比以前的工作更大規(guī)模地評估了在標(biāo)準(zhǔn)網(wǎng)頁以及Tor隱藏服務(wù)上的攻擊性能,結(jié)果表明性能得到很大提升.Panchenko等人[83]提出了一種新穎的網(wǎng)站指紋攻擊,利用具有代表性的數(shù)據(jù)集探索了互聯(lián)網(wǎng)規(guī)模的網(wǎng)站指紋識別的實(shí)際限制,并研究了攻擊者可能遵循的不同策略的實(shí)際成功概率.Nasr等人[84]將壓縮感知技術(shù)應(yīng)用于網(wǎng)站指紋識別,實(shí)驗(yàn)結(jié)果表明該技術(shù)能夠保留最優(yōu)的可壓縮網(wǎng)絡(luò)流量特征,在獲得較好識別結(jié)果的同時降低了攻擊開銷.Rimmer等人[85]提出了一種自動化的特征提取方法,并應(yīng)用深度學(xué)習(xí)技術(shù)自動地對Tor流量進(jìn)行去匿名化,達(dá)到較高的攻擊準(zhǔn)確率.Zhuo等人[86]提出了一種基于隱馬爾可夫模型的網(wǎng)站建模方法,實(shí)驗(yàn)結(jié)果表明該方法可以在closed-world環(huán)境下高效識別網(wǎng)頁和網(wǎng)站.然而,Web站點(diǎn)指紋攻擊的實(shí)施依賴于一系列假設(shè),如用戶瀏覽器關(guān)閉了緩存功能、用戶瀏覽網(wǎng)頁過程中較少出現(xiàn)背景流量等,消除這些假設(shè)對于方法的實(shí)用性具有重要的意義.
除此之外,還有部分針對Freenet的攻擊技術(shù),通過觀測鄰居節(jié)點(diǎn)流量特征判斷其是否為文件請求的發(fā)起者,從而實(shí)現(xiàn)去匿名化攻擊.例如,Levine等人[87]利用請求發(fā)起者的HTL默認(rèn)初始值為18的特點(diǎn)以及相應(yīng)的混淆機(jī)制,通過主動部署節(jié)點(diǎn)記錄從其鄰居節(jié)點(diǎn)接收到的HTL值等于18或17的請求,并利用樸素貝葉斯的方法判斷鄰居節(jié)點(diǎn)是否為該請求的發(fā)起者.實(shí)驗(yàn)結(jié)果表明該方法的誤報(bào)率僅為2%.
3.1.4 主動單端流量分析
目前的單端主動攻擊主要在2處位置實(shí)施:1)在出口節(jié)點(diǎn)與應(yīng)用服務(wù)器間的未加密鏈路上注入惡意代碼;2)控制用戶的入口節(jié)點(diǎn)或鏈路并執(zhí)行主動Web站點(diǎn)指紋攻擊.
惡意代碼注入是指在服務(wù)器端主動地將惡意代碼插入用戶流量中,以便代碼到達(dá)被攻擊主機(jī)并執(zhí)行.如果流量端到端進(jìn)行加密,攻擊者可實(shí)施中間人攻擊[88-89],繞過匿名通信系統(tǒng)的客戶端并直接建立直達(dá)惡意服務(wù)器的連接.為此,攻擊者需控制代理和遠(yuǎn)程服務(wù)器之間的未加密連接.例如在Tor網(wǎng)絡(luò)中,攻擊者可以控制Tor出口節(jié)點(diǎn)并任意地注入或修改非加密流量的內(nèi)容.在控制了非加密連接之后,攻擊者可以將各種軟件實(shí)例注入到連接中,包括Flash,Javascript,ActiveX控件和Java.一旦這些軟件在瀏覽器中執(zhí)行,它們將繞過瀏覽器中的本地代理,直接創(chuàng)建到特定遠(yuǎn)程服務(wù)器的連接,這將會暴露客戶端的真實(shí)IP地址.為了防止遇到主動的單端攻擊,用戶應(yīng)禁用插件,以避免惡意代碼在瀏覽器中的執(zhí)行.或者用戶可以在客戶端部署透明代理,以確保所有流量都被引導(dǎo)到匿名通信系統(tǒng)中.
在被動的Web指紋攻擊中,攻擊者僅監(jiān)聽鏈路,并不會對流量進(jìn)行主動調(diào)制.由于Tor等匿名通信系統(tǒng)的定長封裝機(jī)制和HTTP持久連接、流水線等技術(shù)的影響,Web頁面不同對象的數(shù)據(jù)在返回流量中出現(xiàn)重疊難以區(qū)分,導(dǎo)致指紋攻擊的正確率無法進(jìn)一步提升.如果可以采取某些方法使不同對象的返回流量區(qū)分開來,則可以更好地為不同Web站點(diǎn)建立指紋.He等人[90]首次提出并針對Tor系統(tǒng)進(jìn)行了主動Web站點(diǎn)指紋攻擊,通過對Tor流量進(jìn)行觀察確定用戶開始發(fā)送請求報(bào)文的位置,然后主動延遲用戶發(fā)出的請求報(bào)文,使前一個請求對象的響應(yīng)數(shù)據(jù)有足夠時間完成傳輸,從而達(dá)到分離不同對象流量的目的.然而該攻擊會造成報(bào)文重傳,隱蔽性較差,并且延遲操作的粒度較粗,未對上行流量中存在的大量匿名協(xié)議控制報(bào)文進(jìn)行識別.針對上述問題,Yang等人[91]進(jìn)而設(shè)計(jì)了Tor流量控制報(bào)文和Web請求報(bào)文識別算法,通過主動延遲HTTP請求報(bào)文實(shí)現(xiàn)不同Web對象響應(yīng)數(shù)據(jù)的分離,達(dá)到了較好的Web站點(diǎn)識別效果.
針對Freenet,Baumeister等人[92]利用Freenet中的鄰居節(jié)點(diǎn)更新機(jī)制實(shí)施了一種路由表插入(routing table insertion, RTI)攻擊,將惡意節(jié)點(diǎn)插入目標(biāo)節(jié)點(diǎn)的路由表中,并通過模擬實(shí)驗(yàn)驗(yàn)證了該攻擊的有效性.Tian等人[93]基于RTI攻擊提出了一種追蹤文件下載節(jié)點(diǎn)的攻擊,根據(jù)多個監(jiān)測節(jié)點(diǎn)接收到的請求信息推斷該請求的發(fā)起節(jié)點(diǎn).
3.1.5 其他攻擊技術(shù)
節(jié)點(diǎn)攻擊是對匿名網(wǎng)絡(luò)中目標(biāo)主機(jī)發(fā)起的針對性攻擊,通過利用協(xié)議設(shè)計(jì)缺陷,使目標(biāo)節(jié)點(diǎn)系統(tǒng)服務(wù)失效或暴露目標(biāo)主機(jī)的隱私信息.
在Tor網(wǎng)絡(luò)中,攻擊者可以利用Tor設(shè)計(jì)方面的不足來癱瘓任何一臺中繼節(jié)點(diǎn),發(fā)現(xiàn)網(wǎng)絡(luò)中的隱藏服務(wù)以及對用戶進(jìn)行去匿名化攻擊.當(dāng)前對Tor網(wǎng)絡(luò)影響最大的節(jié)點(diǎn)攻擊方法是Sniper攻擊[94],該攻擊方法由Jansen等人在2014年提出.Sniper攻擊是一種針對Tor中繼節(jié)點(diǎn)的拒絕服務(wù)攻擊,可以用來癱瘓任意Tor中繼節(jié)點(diǎn),攻擊成本非常低,但破壞性極強(qiáng).Tor設(shè)計(jì)的擁塞控制算法并不能避免網(wǎng)絡(luò)擁塞,而是實(shí)現(xiàn)了端到端的流量控制.利用該缺陷,攻擊者可以殺死目標(biāo)節(jié)點(diǎn)中的Tor進(jìn)程,從而使其服務(wù)失效.
除此之外,I2P網(wǎng)絡(luò)中也存在類似的協(xié)議漏洞.Egger等人[95]提出一種I2P節(jié)點(diǎn)上傳并查詢自身節(jié)點(diǎn)信息的漏洞,可以對I2P用戶進(jìn)行去匿名化攻擊.I2P節(jié)點(diǎn)使用DatabaseStore消息將自己的RouterInfo等直接上傳到與其邏輯距離接近的惡意Floodfill節(jié)點(diǎn)上,并通過其探測隧道發(fā)送DatabaseLookup消息查詢自身的RouterInfo等信息.因此,在隧道有效時間內(nèi),惡意的Floodfill節(jié)點(diǎn)可以關(guān)聯(lián)節(jié)點(diǎn)信息和探測隧道信息.當(dāng)節(jié)點(diǎn)使用探測隧道向共謀的Floodfill節(jié)點(diǎn)查詢隱藏服務(wù)LeaseSet信息時,便可以關(guān)聯(lián)節(jié)點(diǎn)和其訪問的隱藏服務(wù),從而完成對I2P節(jié)點(diǎn)的去匿名化攻擊.
為了緩解各種攻擊技術(shù)帶來的威脅,目前已存在一些用來防御各種攻擊的研究工作.廣義地講,可以從網(wǎng)絡(luò)層、協(xié)議層和應(yīng)用層3個角度進(jìn)行部署.
由于可以利用網(wǎng)絡(luò)流量特性來對用戶之間的通信進(jìn)行去匿名化,所以阻止網(wǎng)絡(luò)層攻擊的基本思路是去除與用戶相關(guān)聯(lián)流量的特征,包括數(shù)據(jù)包大小分布、數(shù)據(jù)包順序、流速率、流量時間等.具體而言,包填充技術(shù)可以基于一定策略填充數(shù)據(jù)包大小,以便去除數(shù)據(jù)包長度相關(guān)特征[96].Wright等人[97]提出了流量整形技術(shù),使數(shù)據(jù)包長度與目標(biāo)頁面流量數(shù)據(jù)包長度分布相似,可以有效防御Liberatore等人[77]提出的攻擊方法.Chan-Tin等人[98]提出了一種基于聚類的流量整形技術(shù),使簇中的不同網(wǎng)站流量特征看起來基本相同,從而使分類精度從70%下降到不足1%.
流量填充技術(shù)可以將偽數(shù)據(jù)包注入到用戶的原始流量中,以便模糊流量大小.例如,為了阻止網(wǎng)站指紋攻擊,網(wǎng)絡(luò)服務(wù)器可以首先選擇目標(biāo)頁面,然后模仿該目標(biāo)網(wǎng)頁的數(shù)據(jù)包大小分布.為了應(yīng)對Panchenko等人[79]的網(wǎng)站指紋攻擊,Tor項(xiàng)目[99-100]提出通過隨機(jī)化HTTP流水線管道中的最大請求數(shù)來進(jìn)行防御.除此之外,Nithyanand等人[101]指出,在Tor暗網(wǎng)中40%的鏈路易受AS級別的流量關(guān)聯(lián)攻擊,為此他們提出了一種新的Tor客戶端Astoria,通過網(wǎng)絡(luò)測量和路徑預(yù)測來進(jìn)行智能路由選擇,降低來自AS級別的威脅.Juen等人[102]通過路徑預(yù)測技術(shù)來抵御來自AS和網(wǎng)絡(luò)交換機(jī)的流量分析攻擊,但該方法仍有提升空間.
在協(xié)議層,報(bào)文填充和流量填充技術(shù)可以隱藏與用戶相關(guān)聯(lián)的流量特征.secure shell(SSH),TLS和IPSec應(yīng)用這樣的報(bào)文填充技術(shù)可以將明文與塊密碼邊界對齊,從而在一定程度上模糊了包大小.為了進(jìn)一步提高安全性,可以選擇隨機(jī)數(shù)量的數(shù)據(jù)包進(jìn)行填充[75].此外還可以使用協(xié)議級流量填充技術(shù).例如,Tor通常不將填充數(shù)據(jù)單元的功能用于鏈路級填充,因?yàn)樗鼤@著降低鏈路的性能,因此可以設(shè)計(jì)協(xié)議級報(bào)文填充和流量填充技術(shù),以在一定程度上減少開銷.
在應(yīng)用層,可以利用HTTP特征和背景流量(即誘餌網(wǎng)頁)從用戶流中移除流量特征.例如,HTTP流水線技術(shù)和HTTP range字段可以用于調(diào)整傳入和傳出的數(shù)據(jù)包大小[103].此外,在客戶端改變HTTP請求的順序可以在一定程度上改變流量模式.為了在應(yīng)用層使用背景流量技術(shù),當(dāng)用戶瀏覽目標(biāo)網(wǎng)頁時,可以在背景流量中加載誘餌網(wǎng)頁.但這種類型的防御技術(shù)只能用于一些特定的協(xié)議(例如HTTP),不能廣泛應(yīng)用于所有協(xié)議.Wang等人[104]提出了一種高效的網(wǎng)站指紋防御技術(shù)Walkie-Talkie,通過修改瀏覽器以半雙工模式進(jìn)行通信,可以模擬突發(fā)序列,使敏感和非敏感頁面的流量模式類似.實(shí)驗(yàn)結(jié)果表明Walkie-Talkie能夠以較低的帶寬和時間開銷防御網(wǎng)站指紋攻擊.
Table 1 Research Works on Anonymous Communication Attack and Defense表1 匿名通信攻擊和防御的研究
總體而言,匿名通信攻擊和匿名增強(qiáng)技術(shù)的研究是目前學(xué)術(shù)界關(guān)注的一個重要領(lǐng)域,表1總結(jié)了目前主要技術(shù)的分類、特征和相關(guān)文獻(xiàn).這些工作或者從流量分析的角度,或者從匿名節(jié)點(diǎn)的角度指出相關(guān)系統(tǒng)存在的缺陷和面臨的問題,并進(jìn)而從應(yīng)用層、協(xié)議層和網(wǎng)絡(luò)層不同層次給出相應(yīng)的解決方案,旨在提升這些系統(tǒng)的匿名性.但實(shí)際上,這些攻擊技術(shù),尤其是去匿名化技術(shù)的提出,本質(zhì)上也為暗網(wǎng)治理指明了可能的技術(shù)途徑.
圍繞暗網(wǎng)治理目標(biāo),目前已從網(wǎng)絡(luò)本身和網(wǎng)絡(luò)用戶2個方面開展了較多的研究工作.
針對暗網(wǎng)服務(wù)的濫用問題,提出了對暗網(wǎng)bridge節(jié)點(diǎn)的發(fā)現(xiàn)方法[105-107].通過分析典型匿名通信系統(tǒng)Tor的節(jié)點(diǎn)選擇算法,提出以節(jié)點(diǎn)注入方式枚舉在線bridge節(jié)點(diǎn)的方法,并利用協(xié)議特征以區(qū)分客戶端、正常匿名入口節(jié)點(diǎn)和bridge節(jié)點(diǎn).通過理論分析推算枚舉所有節(jié)點(diǎn)的時間,并根據(jù)理論結(jié)果指導(dǎo)實(shí)際部署,以達(dá)到最優(yōu)的資源配置和最快的bridge節(jié)點(diǎn)捕獲速率.此外,在獲取部分bridge節(jié)點(diǎn)的基礎(chǔ)上,通過對受控網(wǎng)絡(luò)的監(jiān)控,分析出、入流量中存在的bridge節(jié)點(diǎn)的網(wǎng)絡(luò)連接特征,從而關(guān)聯(lián)分析獲取更多bridge節(jié)點(diǎn).
針對匿名通信系統(tǒng)Tor的暗網(wǎng)隱藏服務(wù)節(jié)點(diǎn),提出了隱藏服務(wù)定位技術(shù)[73,108],為暗網(wǎng)中的非法內(nèi)容監(jiān)管提供支持.在分析Tor隱藏服務(wù)節(jié)點(diǎn)與客戶端之間的匿名通信協(xié)議的基礎(chǔ)上,部署部分Tor入口節(jié)點(diǎn),通過控制客戶端不斷向目標(biāo)隱藏服務(wù)節(jié)點(diǎn)發(fā)起連接,以產(chǎn)生具有可檢測特征的隱蔽、快速流量,并在受控節(jié)點(diǎn)觀察流量特征以定位和確認(rèn)隱藏服務(wù)節(jié)點(diǎn).通過對暗網(wǎng)通信系統(tǒng)選路算法的理論分析,推算其隱藏服務(wù)節(jié)點(diǎn)選擇受控節(jié)點(diǎn)的概率,以此指導(dǎo)節(jié)點(diǎn)部署的規(guī)模,以最小資源代價實(shí)現(xiàn)暗網(wǎng)隱藏服務(wù)節(jié)點(diǎn)的捕獲.
針對濫用暗網(wǎng)的用戶,提出暗網(wǎng)用戶的上網(wǎng)行為分析技術(shù),為暗網(wǎng)用戶的監(jiān)管提供支撐.暗網(wǎng)用戶流量經(jīng)過加密、混淆等操作后,其識別難度大大增加,為此提出了暗網(wǎng)通信流量識別技術(shù)[109].針對典型暗網(wǎng)系統(tǒng),分別從協(xié)議設(shè)計(jì)和實(shí)現(xiàn)機(jī)制入手,研究匿名通信系統(tǒng)中通信數(shù)據(jù)的緩存、封裝和調(diào)度機(jī)制.通過對數(shù)據(jù)包分布、流統(tǒng)計(jì)屬性等不同層面特性的綜合分析,篩選匿名通信流量的可區(qū)分特征,并從理論上分析證明特征選擇的合理性.在此基礎(chǔ)上,研究并選取合適的機(jī)器識別方法,實(shí)現(xiàn)對匿名通信流量的快速、準(zhǔn)確在線識別.
在識別暗網(wǎng)用戶的基礎(chǔ)上,為進(jìn)一步推測暗網(wǎng)用戶加密流量中的應(yīng)用類型,提出了暗網(wǎng)通信應(yīng)用分類技術(shù)[25].在對各種交互式和非交互式暗網(wǎng)通信應(yīng)用流量進(jìn)行深入分析的基礎(chǔ)上,建立包括上下行流量比、并發(fā)連接數(shù)等指標(biāo)的流統(tǒng)計(jì)模型,并將其作為先驗(yàn)知識.針對采集的流量樣本使用特征選擇算法,獲取不同匿名協(xié)議相應(yīng)的對噪聲不敏感、區(qū)分度高的特征.在此基礎(chǔ)上,選擇抗干擾分類性能穩(wěn)定的分類模型,對匿名通信流量上層應(yīng)用進(jìn)行分類.建立分類評價模型,根據(jù)分類誤差率、計(jì)算時間復(fù)雜度等指標(biāo),對所選特征和分類模型進(jìn)行評價.
針對暗網(wǎng)用戶的網(wǎng)站訪問流量,文獻(xiàn)[91,110]提出了暗網(wǎng)加密流量內(nèi)容分析技術(shù),以推測用戶訪問的站點(diǎn).分別針對單跳和多跳匿名通信系統(tǒng),研究其所采用的安全傳輸和匿名協(xié)議,并深入分析上層應(yīng)用對暗網(wǎng)通信包長、時間間隔以及并發(fā)匿名鏈路數(shù)量等流量特征的影響.在此基礎(chǔ)上,重點(diǎn)針對HTTP等典型暗網(wǎng)通信流量,通過被動和主動方式采集并預(yù)處理流量數(shù)據(jù),提取特征生成指紋,從而建立所關(guān)注目標(biāo)站點(diǎn)的指紋庫.使用高效分類模型將未知暗網(wǎng)流量與指紋庫中的數(shù)據(jù)進(jìn)行匹配,分析可能的暗網(wǎng)通信目的端.
對于訪問非法站點(diǎn)的用戶,提出了不同層次的通信追蹤技術(shù)[62,69-71,73,111-116],能夠快速、準(zhǔn)確且隱蔽地確認(rèn)匿名流量之間的通信關(guān)系.通過分析匿名通信機(jī)制以及各種網(wǎng)絡(luò)干擾對網(wǎng)絡(luò)流量時間特征的影響,利用隨機(jī)過程理論建立干擾環(huán)境下匿名通信流量時間特征變化的數(shù)學(xué)模型.在通用流水印追蹤架構(gòu)的基礎(chǔ)上,根據(jù)水印追蹤的隱蔽性和健壯性要求,利用信息論方法分析評估基于現(xiàn)有水印機(jī)制構(gòu)建的隱蔽信道的容量.在此基礎(chǔ)上,引入最優(yōu)停止理論,研究并設(shè)計(jì)了自適應(yīng)的水印嵌入與檢測機(jī)制.
上述工作從網(wǎng)絡(luò)本身和網(wǎng)絡(luò)用戶2個角度研究暗網(wǎng)治理相關(guān)技術(shù),涵蓋了隱藏節(jié)點(diǎn)發(fā)現(xiàn)和隱藏服務(wù)定位、暗網(wǎng)用戶網(wǎng)絡(luò)行為分析,以及暗網(wǎng)流量追蹤和通信關(guān)系確認(rèn)等各個方面,可為暗網(wǎng)的監(jiān)管和治理提供有效的技術(shù)支撐.
作為網(wǎng)絡(luò)安全領(lǐng)域的一項(xiàng)關(guān)鍵技術(shù),多年來匿名通信一直是學(xué)術(shù)界研究的熱點(diǎn),而近幾年頻頻曝光的涉及暗網(wǎng)的一系列安全事件,更是使匿名通信與暗網(wǎng)受到了社會各個層面極大的關(guān)注.為了更好地剖析暗網(wǎng)及作為其核心支撐的匿名通信技術(shù),本文首先給出了匿名通信系統(tǒng)的基本分類,闡明匿名通信系統(tǒng)與暗網(wǎng)的關(guān)系,并介紹了典型匿名通信系統(tǒng)的基本工作原理,涵蓋了Tor,I2P,F(xiàn)reenet和ZeroNet這4種主流暗網(wǎng)形態(tài).其次,從匿名接入、匿名路由和暗網(wǎng)服務(wù)3個方面,闡述了匿名通信系統(tǒng)的關(guān)鍵技術(shù)及針對安全性和性能優(yōu)化的相關(guān)研究工作.然后,從針對網(wǎng)絡(luò)流量和針對節(jié)點(diǎn)攻擊2個角度,總結(jié)了當(dāng)前在匿名通信攻擊和防御2個方面研究工作的現(xiàn)狀,包括主動/被動-端到端/單端的流量分析、系統(tǒng)/協(xié)議漏洞利用等攻擊手段,以及相應(yīng)的防御措施.最后,本文還介紹了暗網(wǎng)治理方面的現(xiàn)有研究成果,包括暗網(wǎng)隱藏節(jié)點(diǎn)發(fā)現(xiàn)和隱藏服務(wù)定位、暗網(wǎng)用戶的網(wǎng)絡(luò)行為分析,以及暗網(wǎng)流量追蹤和通信關(guān)系確認(rèn)等.
隨著人們對隱私保護(hù)和系統(tǒng)性能等方面需求的不斷提高,需要對匿名通信技術(shù)進(jìn)行進(jìn)一步改進(jìn)和優(yōu)化,并研究綜合應(yīng)用mix技術(shù)和洋蔥路由技術(shù)的新型匿名通信系統(tǒng).在匿名接入方面,為規(guī)避流量監(jiān)管,隱蔽、魯棒的流量偽裝技術(shù)仍然是當(dāng)前研究的熱點(diǎn).此外,由于機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等人工智能技術(shù)在匿名通信系統(tǒng)攻擊中的廣泛應(yīng)用和效果提升,各種適用于低延遲系統(tǒng)的智能流量混淆、填充等匿名增強(qiáng)技術(shù)將成為關(guān)注的焦點(diǎn),這些研究均以對抗人工智能技術(shù)為目標(biāo).
在另一方面,匿名通信系統(tǒng)和技術(shù)的不斷完善,又給暗網(wǎng)治理帶來了更大的挑戰(zhàn).本文認(rèn)為暗網(wǎng)治理工作需要從暗網(wǎng)站點(diǎn)側(cè)和用戶側(cè)2個方面開展:
1) 在暗網(wǎng)站點(diǎn)側(cè).首先針對不同暗網(wǎng)架構(gòu)進(jìn)行分析,研究暗網(wǎng)站點(diǎn)發(fā)現(xiàn)及內(nèi)容獲取的相關(guān)技術(shù).在此基礎(chǔ)上,通過分析暗網(wǎng)站點(diǎn)內(nèi)容的分布規(guī)律,可從公網(wǎng)和暗網(wǎng)2個方面大規(guī)模、自動化地收集網(wǎng)絡(luò)內(nèi)容,進(jìn)而借助于大數(shù)據(jù)處理、知識圖譜、人工智能等技術(shù)分析暗網(wǎng)數(shù)據(jù),挖掘數(shù)據(jù)中的新物品、新術(shù)語、新事件等,為整個暗網(wǎng)空間的安全態(tài)勢感知提供技術(shù)支撐.此外,針對不同匿名通信系統(tǒng)的暗網(wǎng)服務(wù),需要深入分析其暗網(wǎng)服務(wù)技術(shù)的原理和匿名路由協(xié)議,設(shè)計(jì)有效的暗網(wǎng)服務(wù)定位方法,從而在發(fā)現(xiàn)非法暗網(wǎng)站點(diǎn)時,可有效、快速地開展對其服務(wù)站點(diǎn)的定位和治理工作.
2) 在暗網(wǎng)用戶側(cè).亟需研發(fā)相應(yīng)的流量識別、用戶節(jié)點(diǎn)發(fā)現(xiàn)、內(nèi)容分析、追蹤定位等技術(shù),為暗網(wǎng)用戶監(jiān)管提供技術(shù)支持:①在流量識別方面,用戶側(cè)流量的監(jiān)管與匿名接入技術(shù)的不斷發(fā)展形成了“軍備競賽”,各種高級、智能的流量偽裝等增強(qiáng)技術(shù)的應(yīng)用,增加了對暗網(wǎng)側(cè)用戶流量的分析難度,亟待研發(fā)適用于大規(guī)模高速網(wǎng)絡(luò)環(huán)境中高效、準(zhǔn)確、易部署的暗網(wǎng)流量監(jiān)管方案.②在用戶節(jié)點(diǎn)發(fā)現(xiàn)方面,暗網(wǎng)通信節(jié)點(diǎn)發(fā)現(xiàn)技術(shù)可豐富暗網(wǎng)用戶側(cè)監(jiān)管的手段,通過分析暗網(wǎng)中節(jié)點(diǎn)的種類和分布規(guī)律,設(shè)計(jì)有效、快速的暗網(wǎng)拓?fù)浜凸?jié)點(diǎn)發(fā)現(xiàn)方法,以快速發(fā)現(xiàn)訪問暗網(wǎng)節(jié)點(diǎn)的用戶.③在內(nèi)容分析方面,加密暗網(wǎng)通信流量的內(nèi)容分析仍然是熱點(diǎn)的研究問題,可引入機(jī)器學(xué)習(xí)技術(shù)并通過對模型參數(shù)的優(yōu)化,不斷地提高對用戶側(cè)流量內(nèi)容推測的準(zhǔn)確率.在這過程中,實(shí)際網(wǎng)絡(luò)中存在的干擾和噪聲數(shù)據(jù)以及防御技術(shù)的不斷提升,對該技術(shù)的實(shí)際應(yīng)用將帶來諸多挑戰(zhàn).④在追蹤定位方面,現(xiàn)有技術(shù)雖可實(shí)現(xiàn)對暗網(wǎng)用戶與目標(biāo)站點(diǎn)的通信關(guān)系關(guān)聯(lián),但依賴關(guān)鍵網(wǎng)絡(luò)節(jié)點(diǎn)或暗網(wǎng)節(jié)點(diǎn)資源的部署.因此,如何降低對大規(guī)模節(jié)點(diǎn)資源的需求和依賴,研發(fā)易于大規(guī)模部署且適用于各類暗網(wǎng)應(yīng)用的通信關(guān)系關(guān)聯(lián)技術(shù)仍需要進(jìn)一步的探索.
除了加大暗網(wǎng)技術(shù)的研發(fā)實(shí)現(xiàn)源頭的治理,還需要借助于網(wǎng)絡(luò)安全法、社會教育、多種偵查手段并舉等措施.為此,可通過完善暗網(wǎng)行為在法律中具體規(guī)定、正確引導(dǎo)公眾對暗網(wǎng)的認(rèn)識、加強(qiáng)傳統(tǒng)偵查方法和暗網(wǎng)分析技術(shù)的融合等方式,從多方面降低甚至消除暗網(wǎng)對社會和人們的負(fù)面影響.
致謝本文在撰寫過程中得到了丁翔、陳陽、許丹妮、徐永歡、黨一菲等碩士研究生和王春棉、王姍博士研究生的幫助.本人的工作獲得了江蘇省網(wǎng)絡(luò)與信息安全重點(diǎn)實(shí)驗(yàn)室、計(jì)算機(jī)網(wǎng)絡(luò)和信息集成教育部重點(diǎn)實(shí)驗(yàn)室的資助,在此特別表示感謝!