999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

匿名通信與暗網研究綜述

2019-02-20 03:34:26羅軍舟吳文甲顧曉丹
計算機研究與發展 2019年1期
關鍵詞:用戶服務

羅軍舟 楊 明 凌 振 吳文甲 顧曉丹

(東南大學計算機科學與工程學院 南京 211189)

匿名通信是一種通過采用數據轉發、內容加密、流量混淆等措施來隱藏通信內容及關系的隱私保護技術.為了提高通信的匿名性,這些數據轉發鏈路通常由多跳加密代理服務節點構成,而所有這些節點即構成了匿名通信系統(或稱匿名通信網絡).匿名通信系統本質上是一種提供匿名通信服務的覆蓋網絡,可以向普通用戶提供Internet匿名訪問功能以掩蓋其網絡通信源和目標,向服務提供商提供隱藏服務機制以實現匿名化的網絡服務部署.作為匿名通信系統的核心功能,隱藏服務機制通常利用多跳反向代理或通過資源共享存儲來掩蓋服務提供商的真實地址,可以保證匿名服務不可追蹤和定位.

由于匿名通信系統具有節點發現難、服務定位難、用戶監控難、通信關系確認難等特點,利用匿名通信系統隱藏真實身份從事惡意甚至于網絡犯罪活動的匿名濫用現象層出不窮.由于用戶必須通過特殊軟件或進行特殊配置才能訪問服務,隱藏服務機制更是被用于部署“絲綢之路”(silk road)、AlphaBay等網絡黑市,形成了潛藏于Internet中充斥著毒品槍支交易、人口販賣、恐怖活動、反社會言論、謠言散布以及敲詐勒索等非法活動的暗網:臭名昭著的Tor黑市站點“絲綢之路”在其上線的2年半時間中總交易額高達12億美金,并擁有15萬匿名用戶和4 000余非法商戶;而勒索病毒WannaCry,Skynet等各類僵尸主機的命令控制(command-and-control, C&C)服務器直接部署于暗網中以防止被追蹤溯源.此外,國內在暗網黑市中的各類違法事件也是頻頻曝光:2018年6月AcFun視頻站點的近千萬條用戶信息數據在Tor暗網中進行兜售;同年9月華住集團旗下酒店約1.2億條客戶個人信息在暗網中出售.除了暗網安全事件的不斷攀升,暗網站點數量和用戶量也呈現出逐年增長的趨勢.根據Tor Metrics官方網站的統計信息[1],截至2018年10月Tor暗網中已有超過11萬個站點,而用戶數超過200萬.與Tor相比,其他暗網系統,如I2P,Freenet,ZeroNet等,由于其網絡拓撲特點,很難發現并統計其站點和用戶規模.

在學術界,研究人員針對匿名通信系統進行了多年的研究工作,而暗網在近年來也逐漸受到關注.這些工作大致可分為2類:1)專注于匿名通信系統本身,分析其安全性并提出相應的隱私增強技術,包括匿名接入、匿名路由、隱藏服務等機制的優化,以及流量混淆與協議偽裝等技術的設計和應用;2)側重于針對匿名通信系統與暗網的攻擊及監管,利用流量分析、系統/協議漏洞分析等手段,提出了一系列的去匿名化攻擊方法,可用于對其進行有效監管,具體包括暗網隱藏節點發現和隱藏服務定位、暗網用戶的網絡行為分析,以及暗網流量追蹤和通信關系確認等.

鑒于匿名通信與暗網對網絡空間安全及治理的重要性,以及在研究領域尚缺乏完整、全面評估的現狀,本文針對匿名通信與暗網的基本概念及相互關系、關鍵技術和攻防研究以及暗網治理方面的研究工作進行綜述.本文首先介紹了典型匿名通信系統的基本工作原理,涵蓋了Tor,I2P,Freenet和ZeroNet這4種主流暗網形態.其次,分別從匿名接入、匿名路由、暗網服務這3項關鍵技術的角度闡述了各系統的特點.在此基礎上,分析了針對匿名通信的各類攻擊與防御技術的研究現狀,并介紹了暗網治理方面的相關研究工作.本文最后對下一代匿名通信系統的發展趨勢進行了展望,并初步探討了我國在暗網治理中面臨的挑戰和可采取的治理措施.

1 匿名通信系統

近年來,匿名通信系統與暗網引起了人們的廣泛關注,但其概念及相互關系一直缺乏統一的定義.因此,本節給出匿名通信系統的基本分類,并闡明與暗網的關系.隨后,具體介紹Tor,I2P,Freenet,ZeroNet這4種典型的匿名通信系統.

1.1 基本分類

根據通信延遲性能,可將匿名通信系統分為低延遲系統和高延遲系統.在低延遲系統中,又可根據網絡結構進一步分成P2P匿名網絡和非P2P匿名網絡,而其中P2P匿名網絡進一步包含結構化與非結構化2種網絡模型.

高延遲匿名通信系統源于早期的Mixnet匿名通信網絡,最初由Chaum于1981年提出[2].它的核心思路是基于mix節點對輸入的消息進行加密和混淆,使得攻擊者無法追蹤消息的網絡傳播過程.因此,mix節點隱藏了各個消息之間的輸入和輸出關系,可以防止攻擊者對輸入和輸出消息進行關聯.Danezis[3]提出了結合mix級聯模型和自由路由的受限路由mix網絡,以保證消息的匿名性.Dingledine等人[4]提出基于信譽系統的mix節點選擇技術,從而為mix網絡提供更高的可靠性和效率.Dingledine等人[5]提出了一種具有分布式信任的mix級聯協議,基于信譽度量重新排列mix級聯,以提高可靠性.

Mixnet協議的典型應用場景是高延遲郵件轉發服務(Remailer),用于提供匿名電子郵件收發功能:Babel[6]引入mix路徑,旨在通過延遲一些批量消息來抵御流量分析攻擊.Mixmaster[7]通過在每個數據包的末尾添加隨機數據,將消息加密轉換為統一的大小.為保證所有發送者的路由信息相同,Mixminion[8]部署了一組冗余和同步的目錄服務器系統,旨在為電子郵件消息提供發件人和收件人匿名.

相對于高延遲匿名系統,低延遲系統因其應用領域寬泛,受到了研究人員更多的關注.結構化P2P匿名網絡主要包括Tor,I2P和Freedom[9],它們均采用洋蔥路由或類洋蔥路由協議進行通信.其中Freedom為網絡中每個用戶分配一個唯一身份標識以屏蔽IP地址信息,同時利用類似于洋蔥路由的加密通信方式為用戶提供匿名網頁瀏覽等服務.非結構化P2P匿名網絡有Torsk,Freenet,Crowds等,主要采用基于DHT(distributed Hash table)的路由協議和隨機游走協議.Torsk[10]通過使用DHT取代Tor的節點選擇和目錄服務,以獲得更好的擴展性.Crowds[11]是為匿名網頁瀏覽而設計的匿名通信系統之一,其主要特征為隨機節點選擇.Crowds中所有節點都被分群,群中每個節點可以連接任何其他節點作為通信中繼.

在綜合mix技術和洋蔥路由技術的基礎上,新型匿名通信技術相繼被提出,包括TARANET[12],Riffle[13]和Loopix[14]等,可進一步提高匿名通信系統的匿名性、擴展性及性能.

1.2 與暗網的關系

匿名通信技術的提出源于網絡用戶的隱私保護需求,但是隨之而來的是各種匿名濫用問題.尤為突出的是,一些不法用戶基于Tor,I2P,Freenet等匿名通信系統提供的隱藏服務機制,架設必須通過特殊軟件或進行特殊配置才能訪問的網絡服務,形成了無法被直接檢索的暗網.由于可以有效隱藏網絡服務提供者的IP地址等信息,暗網中充斥著毒品槍支交易、人口販賣等非法活動.

在學術界,暗網的概念并沒有一個明確的定義,術語“Dark Web”和“Darknet”經常被混用指代暗網.為了更好地厘清這2個術語之間的關系和差異,并界定本文所討論的暗網的內容,給出如下定義:

1) Dark Web.必須通過特殊的軟件、特殊的配置才能訪問的擁有特殊域名的Web站點,搜索引擎無法對其進行檢索.

2) Darknet.必須通過特殊的軟件、特殊的配置才能訪問,包含Web、IRC、文件共享等各類資源和服務的匿名網絡,搜索引擎無法對其進行檢索.

兩者的關系如圖1所示:其中Dark Web重點在于不可檢索、不可直接訪問,并不強調匿名,因此既包含匿名Web站點(如Tor隱藏服務站點),也包含非匿名Web站點(如ZeroNet提供的Web站點);而Darknet則強調匿名性,即所有的資源都需要基于相應的匿名通信系統才能進行訪問,其中的資源不限于Web服務.

Fig. 1 The differences between Darknet and Dark Web圖1 Darknet和Dark Web的區別

由于Tor,I2P,Freenet等匿名通信系統不僅允許發布隱藏Web服務,還能提供其他類型資源的匿名訪問,同時滿足了Dark Web和Darknet兩個定義,并且隱藏Web服務又是其中應用最為廣泛的服務.因此,很多時候Darknet被混淆為Dark Web.

本文所討論的暗網強調匿名性,并且不限于Web服務,因此采用Darknet術語.鑒于ZeroNet雖然本身并不提供匿名性保護,但它通常和Tor打包發布,并利用Tor提供服務部署和資源獲取的功能,因此也將其納入討論的范疇.1.3節將對Tor,I2P,Freenet,ZeroNet展開介紹.

1.3 典型匿名通信系統

1.3.1 Tor匿名通信系統

Tor(the second-generation onion router)[15]是目前使用范圍最廣的匿名通信系統之一,其核心技術“洋蔥路由”在20世紀90年代中期由美國海軍研究實驗室提出,并在1997年交由美國國防高級研究計劃局(DARPA)進一步開發.2003年Tor正式版發布,2004年Tor設計文檔在第13屆USENIX安全討論會上正式發表,并在同年由美國海軍研究實驗室公開其源碼.Tor使用多跳代理機制對用戶通信隱私進行保護:首先,客戶端使用基于加權隨機的路由選擇算法分別選擇3個中繼節點,并逐跳與這些中繼節點建立鏈路.在數據傳輸過程中,客戶端對數據進行3層加密,由各個中繼節點依次進行解密.由于中繼節點和目的服務器無法同時獲知客戶端IP地址、目的服務器IP地址以及數據內容,從而保障了用戶隱私.

Tor于2004年開始支持隱藏服務,為Tor暗網的出現提供了技術支撐.Tor暗網是目前規模最大的暗網之一,其中包含大量的敏感內容與惡意內容.Tor隱藏服務是僅能在Tor暗網中通過特定形式的域名(z.onion)訪問的網絡服務.Tor暗網的基本組件包括客戶端、目錄服務器(directory server)、隱藏服務目錄服務器(hidden service directory)、洋蔥路由器(onion router, OR)和隱藏服務器(hidden server),如圖2所示:

Fig. 2 Tor hidden service圖2 Tor隱藏服務

1) 客戶端.客戶端是運行在用戶操作系統上的本地程序,稱為洋蔥代理(onion proxy, OP).OP將用戶數據封裝成Tor信元并層層加密,為各類TCP應用程序提供匿名代理服務.

2) 洋蔥路由器.Tor暗網中的數據中繼節點.Tor默認匿名鏈路由3個OR組成,分別為入口節點(Entry)、中間節點(Middle)和出口節點(Exit),其中入口節點一般選擇可信度較高的守護節點(Guard).

3) 隱藏服務器.提供Web,IRC等TCP應用服務.隱藏服務器受到Tor匿名性的保護,必須使用Tor客戶端才能夠訪問其TCP應用服務.

4) 目錄服務器.目錄服務器保存了所有洋蔥路由器的IP地址、帶寬等信息.客戶端在首次啟動后向目錄服務器請求洋蔥路由器信息,以便完成節點選擇和鏈路建立.

5) 隱藏服務目錄服務器.隱藏服務目錄服務器存儲并為客戶端提供隱藏服務器的引入節點(introduction point, IPO)、公鑰等節點信息.

客戶端、洋蔥路由器、目錄服務器、隱藏服務目錄服務器和隱藏服務器的功能都集成在Tor軟件包中,用戶可以通過配置文件對具體功能進行配置.

Tor隱藏服務器在啟動時會選擇3個引入節點作為其前置代理,并將引入節點及其公鑰信息上傳至隱藏服務目錄服務器.客戶端訪問隱藏服務時,首先建立3跳鏈路訪問隱藏服務目錄服務器,獲取引入節點和公鑰信息.客戶端選擇一個匯聚節點(ren-dezvous point, RPO)作為客戶端和隱藏服務器通信鏈路的匯聚點,并將匯聚節點的信息通過引入節點告知隱藏服務器.客戶端和隱藏服務器各自建立到達匯聚節點的鏈路,完成6跳鏈路的搭建后即可開始通信.Tor用戶通過6跳鏈路訪問隱藏服務器,在此過程中任意節點無法同時獲知Tor客戶端IP地址、隱藏服務器IP地址以及數據內容,保障了Tor客戶端與隱藏服務器的匿名性.

1.3.2 I2P匿名網絡

I2P(invisible Internet project)[16]是一種使用單向加密隧道的P2P匿名通信系統,采用稱為大蒜路由的擴展洋蔥路由技術,使得隧道中每一跳節點只掌握相鄰節點的信息,無法獲知通信雙方的通信關系,從而保證通信的匿名性.該項目在2003年2月啟動[17],2004年7月發布首個PC端穩定版本0.3.2.1,2014年8月發布I2P Android客戶端.用戶可以配置I2P的隧道跳數、帶寬和延遲等參數,以滿足特定匿名性能需求.

Fig. 4 Tunnels in I2P圖4 I2P隧道機制

I2P中節點的類型分為Floodfill和Nonfloodfill兩類.節點默認初始身份為Nonfloodfill,其中滿足性能要求的節點會自適應地成為Floodfill節點,其數量約占所有I2P節點的6%[18].Floodfill節點保存RouterInfo和LeaseSet兩類數據信息:RouterInfo包括節點的ID、公鑰、簽名、通信協議及端口等內容;LeaseSet包括服務Hash值、隧道入口節點和起止有效時間等信息.I2P系統根據Kademlia算法[19]來組織所有的Floodfill節點,形成I2P的網絡數據庫(network database, netDb)以提供對所有RouterInfo和LeaseSet信息的保存、查詢等功能.

I2P拓撲結構如圖3所示,每個節點根據256 b路由值(router key)分布在邏輯環中,其中路由值是采用SHA256算法對節點ID和當前日期計算獲得.I2P通過異或2個節點的路由值來度量節點間的距離,每個節點會選擇異或距離最近的Floodfill節點上傳RouterInfo和LeaseSet信息.因此,節點每天會由于日期的改變而呈現不同的邏輯分布,并將信息上傳至不同的Floodfill節點,以此來抵御Sybil攻擊[20].

Fig. 3 The topology of I2P圖3 I2P拓撲結構圖

I2P的客戶端和服務器均利用多跳單向加密隧道進行通信,以保護雙方通信隱私,其過程如圖4所示.節點初次加入I2P網絡時,從官方補種網站(reseed website)進行補種,獲取部分RouterInfo信息,并根據路由選擇機制建立單向隧道.隧道根據用途可以分為探測隧道(exploratory tunnel)和客戶隧道(client tunnel),根據數據傳輸方向可以分為輸入隧道(inbound tunnel)和輸出隧道(outbound tunnel).其中,探測隧道用于輔助構建、測試客戶隧道和查詢netDb中信息等,客戶隧道用于應用服務如Web瀏覽、聊天室、郵件和文件共享等.客戶端和服務器在通信過程中分別建立各自的輸入和輸出客戶隧道,默認隧道長度為3跳,一次完整的通信過程需要4條隧道參與.客戶端發生的數據先采用端到端加密,然后在客戶端進行3次洋蔥式加密后發送到其輸出客戶隧道的Gateway節點,并在各個節點上分別進行解密轉發到服務器的輸入客戶隧道Gateway節點,然后依次在各個節點上加密轉發到服務器,最終由服務器通過4次解密得到明文數據,數據反向發送過程與此類似.多跳隧道中的節點只知道其前驅和后繼節點信息,從而隱藏通信雙方的通信關系,同時單向隧道通過增加參與通信的節點數量提升了通信的匿名性.

1.3.3 Freenet匿名網絡

Freenet是一個分布式的匿名信息存儲與檢索系統,在為用戶提供文件上傳、下載與檢索功能的同時能夠保障文件發布者與查閱者的匿名性[21-22].該系統源于愛丁堡大學的Ian Clarke在1999年的畢業設計,后由其發起了Freenet開源項目,并于2000年3月發布了首個版本.Freenet在設計上主要追求5個目標:保護文件的發布者和查閱者的匿名性;本地存儲的可否認性;能夠抵抗第三方對信息可訪問性的破壞;高效的分布式存儲與路由;完全的去中心化.

所有Freenet節點分布在周長為1個單位的邏輯環上,這些節點按功能可以分為種子節點和非種子節點,默認新加入的節點均為非種子節點,種子節點具有輔助發現節點的功能.Freenet中新節點隨機產生一個介于[0,1)的實數,用于標識其在環上的位置.每個節點會貢獻一定大小的本地硬盤空間共同構成Freenet的存儲空間.

Freenet節點有2種工作模式:Opennet模式和Darknet模式[23].Opennet模式下節點可以和任何其他節點建立連接.與自身節點一跳直接相連的節點稱為鄰居節點,鄰居節點的數量與該節點的帶寬成正相關,最多支持85個鄰居節點(版本號0.7.5,內部版本1483).節點間的距離是由節點間不大于0.5的弧長定義.在Opennet模式下,Freenet定義距離不超過0.01的鄰居節點為近鄰居,且每個節點的遠鄰居節點數量不超過鄰居節點數的30%,其余為近鄰居節點,如圖5所示.新節點在加入網絡時通過種子節點獲取其他節點的信息,然后選擇鄰居節點建立連接從而加入Freenet網絡.而在Darknet模式下,節點只能和用戶添加的信任節點建立連接,以此保證安全性.

Fig. 5 The topology of Freenet圖5 Freenet拓撲結構

Freenet節點通過FCP(Freenet client protocol)協議向上層應用提供匿名文件存儲與檢索服務,并集成基于FCP的Fproxy服務,從而提供HTTP代理、Freenet節點配置、文件上傳與檢索、Freesite瀏覽等功能.在文件上傳前,Freenet將文件按照32 KB大小切塊,分別計算每塊的唯一標識符.文件標識符主要分為內容Hash鍵值(content Hash keys, CHK)和簽名子空間鍵值(signed subspace keys, SSK),文件的索引值可根據該鍵值通過SHA256 Hash運算獲得,索引值可轉化為邏輯環上的對應位置.在文件存儲的過程中,節點根據文件的位置查找距離最近的鄰居節點,由其進一步迭代查找目標存儲節點,最終通過該多跳查找路徑將文件上傳.文件檢索的過程中,根據文件對應的位置利用深度優先的最近距離貪心算法查找目標存儲節點.除Fproxy外,還有一些基于FCP開發的第三方應用,如Frost,FMS(Freenet message system),Sone等.

Freenet在不同的工作模式下安全性和匿名性不同.在Opennet模式下,相對更容易面臨惡意節點的威脅.Freenet多跳的文件傳輸和檢索機制保障了文件發布者與查閱者的匿名性;文件分塊加密存儲保證了本地存儲的可否認性;文件的冗余存儲機制保證了部分節點離開網絡情況下文件依然具有較高可訪問性;利用DHT提供了高效存儲與路由;非結構化的P2P架構避免了系統對于中心節點的依賴.而在Darknet模式下,由于僅與可信的鄰居節點建立連接并通信,從而提供了更高的安全性.

1.3.4 ZeroNet網絡

ZeroNet[注]https://zeronet.readthedocs.io/en/latest/是一個基于BitTorrent技術的開源項目,由匈牙利開發者Tamas Kocsis創建.ZeroNet采用早期的BitTorrent架構,強依賴于BitTorrent Tracker服務器,如圖6所示.ZeroNet的用戶數據采用MessagePack協議封裝,并建立TCP長連接進行數據傳輸,每個用戶同時只能和1 000個其他用戶進行連接.

Fig. 6 The architecture of ZeroNet圖6 ZeroNet架構

ZeroNet使用與Bitcoin錢包相同的橢圓曲線加密技術生成網站地址并對站點內容進行簽名和驗證,并基于BIP32(bitcoin improvement proposals)方案為訪問站點的用戶生成標識.每個新網站都會生成對應的公私密鑰:私鑰僅被網站所有者掌握,用于對發布內容進行簽名;而公鑰作為網站的地址,任何人都可以用來對網站內容的完整性進行驗證,以防止惡意代碼插入或任何修改.

當用戶請求訪問ZeroNet上的網站資源時,客戶端軟件將基于BitTorrent技術從擁有該資源的站點上下載文件,并在本地瀏覽器進行解析.網站所有者將訪問用戶信息存儲在ZeroNet客戶端的內置SQL數據庫中,在站點更新后會及時推送至用戶端進行增量更新,以提高訪問者的訪問速度.ZeroNet默認不提供匿名通信功能,但用戶也可以通過內置的Tor功能實現通信匿名.

由于ZeroNet是一個由訪問者提供服務的P2P網絡,所以可以比集中式服務器更穩定地提供內容,甚至在互聯網不可用的情況下,用戶也可以離線訪問本地存儲的站點內容.

2 匿名通信關鍵技術

匿名通信系統的目標在于實現通信實體關系和內容的隱藏,具體涉及匿名接入、匿名路由、暗網服務等一系列關鍵技術.本節從匿名接入、匿名路由、暗網服務3個方面,介紹相關技術及其研究進展.

2.1 匿名接入技術

匿名接入技術是匿名通信網絡為了規避網絡監管而提供的客戶端隱蔽接入技術.網絡監管者出于安全審計的考慮,會檢測匿名網絡的中繼節點并阻止用戶接入.為了規避此類網絡審查,研究人員提出了各種匿名接入技術,包括bridge,obfs,meek,FTE,Flashproxy等.

2.1.1 bridge節點

Tor的設計者在2011年提出了bridge節點的概念[24]以突破網絡監管.由于此類節點的信息不公開,因此Tor客戶端可以將其作為入口節點從而接入匿名網絡.

bridge是匿名網絡為了提升自身隱蔽性和規避基于IP阻斷的網絡監管而開發的一種接入機制.bridge節點功能上與一般的Tor中繼節點相同,但其信息并未被目錄服務器公開,從而降低了被網絡監管者發現和阻斷的風險.為了方便用戶獲取此類節點信息,Tor項目提供了2種獲取方式:1)在BridgeDB數據庫中保存了bridge節點信息,用戶可通過直接訪問官網站點獲取3個bridge節點;2)用戶還可通過Google和Yahoo郵箱向指定郵箱發送請求,郵件服務器會自動回復3個bridge節點信息.由于Google和Yahoo申請虛假郵件地址比較困難,所以可有效防止無限制獲取bridge節點信息等惡意攻擊.

2.1.2 obfs混淆代理

雖然Tor可以使用bridge節點來規避基于IP阻斷的監管,但監管者仍能通過深度包檢測(deep packet inspection, DPI)技術來識別出Tor流量[25].鑒于此,Tor項目開發了第1個傳輸插件obfs混淆代理.Obfs后續又經歷了3次版本改進,分別為obfs2[26],obfs3[27],obfs4[28],當前最新版本的Tor使用的是obfs4.其中,obfs2設計于2012年,采用分組密碼(AES-CTR-128)對Tor的傳輸數據進行加密,擦除了Tor流量相關的標識信息,從而實現了有效混淆.但是obfs2在設計上存在2個問題:1)握手階段的連接容易被識別.通信雙方在傳輸數據之前需要交換秘密信息并協商出會話密鑰,而在這一階段的密鑰種子是通過明文傳輸且報文格式固定,導致這種obfs2流量容易被中間審查機制識別并計算出雙方的會話密鑰.2)可利用Tor客戶端探測bridge節點以檢查其是否可進行obfs2握手,從而實施主動的bridge探測攻擊.鑒于上述設計缺陷,Tor后續又推出了obfs3和obfs4方案.

作為obfs2的后續設計,obfs3使用Diffie-Hellman協議來計算通信雙方的共享秘密,并由此生成對稱密鑰.相較于obfs2,obfs3在握手階段有了很大的改進,但其在密鑰交換階段仍然缺乏對bridge身份的驗證,存在中間人攻擊和主動探測攻擊的風險.

為了抵御上述攻擊,需要能夠有效保證雙方通信真實性、完整性和機密性的優化方案.ScrambleSuit[29]提出利用帶外方式交換共享秘密實現通信雙方的互認證,能夠有效防御主動探測攻擊.在此基礎上,obfs4進一步利用BridgeDB實現了基于bridge身份驗證的密鑰交換.客戶端通過BridgeDB查詢bridge節點,獲得其IP地址、節點ID和公鑰信息.只有同時匹配這3個信息才能通過obfs4節點的身份驗證并建立連接.obfs4是對obfs3的重大升級,既有效地混淆了Tor流量,又實現了bridge身份驗證,達到能夠抵御主動探測攻擊和中間人攻擊的效果.

2.1.3 meek隱蔽通道構建技術

meek是一種基于前置域(domain fronting)[30]的隱蔽通道構建技術,其工作原理如圖7所示.首先,meek-client向前置域名服務器發送一個TLS Client Hello消息,并將該服務器域名填入SNI(server name indication)字段.在TLS握手成功后,meek-client把實際傳輸的Tor流量封裝在HTTP POST載荷中,并將目標bridge地址寫入HTTP HOST字段.由于監管者無法查看加密后的HTTP POST內容,因此無法識別真正的目標bridge地址.前置域服務器接收到meek-client數據后,根據HTTP HOST字段值將數據轉發到目標bridge節點.該節點上運行的meek-server對HTTP報頭處理后將封裝的Tor流量轉發給后續中繼節點.在當前Tor網絡中,meek的實現主要依賴于Google,Amazon和Azure等大型服務提供商提供的白名單前置域名服務器,造成Tor客戶端在訪問正常網站的假象,從而規避網絡流量監控.

Fig. 7 The architecture of meek圖7 meek體系結構

2.1.4 FTE加密流量轉換技術

FTE(format-transforming encryption)[31]由Dyer等人在2013年ACM計算機與通信安全會議(ACM Conference on Computer and Communications Security, CCS)上發表,其主要原理是通過擴展傳統對稱加密,將密文轉換為指定的傳輸格式.與obfs流量混淆方式不同,FTE沒有將原協議流量轉換為無序的未知流量,而是根據用戶輸入的正則表達式,輸出具有一定協議格式的流量.其中,用戶輸入的正則表達式可以從DPI系統源碼中直接提取或根據應用層流量自動學習得到.這使得基于正則表達式的DPI技術會將其誤識別為用戶選定的協議流量,從而實現規避審查的目的.由于大部分Tor流量為HTTP流量,默認情況下采用HTTP正則表達式將之轉化為HTTP協議,從而實現流量偽裝.

2.1.5 Flashproxy傳輸插件

Flashproxy[32]是運行在瀏覽器中的傳輸插件,其原理是利用不斷變化的代理主機接入到匿名網絡,且保證代理更新的速度比監管機構的檢測、跟蹤和阻斷速度快.在2013—2016年期間,Flashproxy項目一直被部署在Tor Browser中,直到2017年才棄用,被更有效的obfs4取代.

在使用Flashproxy轉發數據的過程中,需要3個組件協同工作,包括客戶端瀏覽器中的傳輸插件、代理主機Flash Proxy和第三方服務Facilitator.其中,Facilitator負責客戶端的注冊和Flash Proxy代理的分配,當客戶端需要使用Flashproxy代理服務時,首先通過安全集合點連接到Facilitator以告知客戶端需要代理服務,然后客戶端傳輸插件開始偵聽遠程連接.

每個空閑的Flash Proxy會主動輪詢Facilitator,以獲得正在請求代理服務的客戶端.當Flash Proxy獲得客戶端在Facilitator的注冊信息后,便主動發起和客戶端的連接,再發起對中繼節點的連接,最終客戶端和目標中繼節點通過Flash Proxy進行通信,其原理如圖8所示:

Fig. 8 The architecture of Flashproxy圖8 Flashproxy體系結構

通過對上述5種主要的匿名接入技術的調研,可以發現匿名接入技術重點針對暗網流量特征和接入節點IP進行混淆,從而抵御網絡監管.其中,對于暗網流量特征,主要通過加密傳輸消除原有流量特征或者將其偽裝成其他協議流量,例如obfs和FTE.至于對接入節點的阻斷,主要通過代理主機轉發流量進行規避,如meek依賴大型服務提供商提供的白名單轉發服務器.而Flashproxy則是通過提高轉發主機的更新頻率來保證監管者無法枚舉并阻斷所有連接.

2.2 匿名路由技術

匿名路由技術是匿名通信系統為用戶提供匿名服務時所使用的一種關鍵技術.該技術具體涉及路由節點選擇、鏈路建立、數據傳輸等多個階段.通過匿名路由技術,匿名通信系統的安全和性能都能夠得到保障.目前,低延遲匿名通信系統所使用的路由技術主要包括洋蔥路由、大蒜路由和基于DHT的路由.

2.2.1 洋蔥路由

洋蔥路由技術的核心思想是通過多跳代理與層層加密的方法為用戶的通信隱私提供保護.Tor是最典型的使用洋蔥路由技術的匿名通信系統,因此本節以Tor為例,對洋蔥路由技術進行介紹.

在Tor暗網中,客戶端與隱藏服務器之間需要各自選擇3個節點建立多跳鏈路才能進行通信.目前,Tor主要采用基于加權隨機的路由選擇算法選擇洋蔥路由器構建鏈路.該算法依據服務器描述符(server descriptor)與共識文檔(consensus document)中的帶寬信息與放縮因子計算各節點的加權值,并按照出口節點、入口節點和中間節點的順序選擇鏈路節點.值得注意的是,鏈路中任意2個洋蔥路由器應來自不同的C類網段.

在節點選擇完成之后,OP從入口節點開始逐跳建立匿名鏈路,節點之間均采用TLS/SSLv3對鏈路進行認證.為增強可讀性,下面將入口節點、中間節點、出口節點用OR1,OR2,OR3表示.首先,OP與OR1建立TLS鏈接,即OP發送CELL_CREATE信元,OR1進行響應以完成Diffie-Hellman握手并協商會話密鑰k1,從而建立第1跳鏈路.其中,CELL_CREATE信元是Tor中一種數據傳輸的基本單元,長度為512 B.然后,OP向OR1發出與OR2建立鏈路的Tor信元,OR1收到后與OR2建立TLS鏈路,并通過Diffie-Hellman協議協商OP與OR2之間的會話密鑰k2.OR1將會話密鑰通過加密報文告知OP,完成第2跳鏈路的建立.以此類推,Tor建立多跳鏈路實現與通信目標的安全連接.

在匿名鏈路建立后,用戶可以通過OP訪問公共網絡進行數據傳輸.當OP獲得目標服務的IP地址和端口后,使用k1,k2,k3對數據信元進行層層加密封裝,即{{{IP:port}這種加密方式稱為“洋蔥加密”.該信元經過每個OR節點時,都會被使用對應的密鑰對最外層進行解密并轉發.當到達OR3后進行最后一次解密,即可識別出目標服務器的IP地址和端口,從而建立TCP連接.在此過程中,用戶的上行數據經過OP層層加密,由各OR逐層解密并轉發至目標服務器;與此相反,目標服務器的下行數據經過各OR加密,由OP逐層解密并最終返回給應用程序.對于目標服務器來說,Tor用戶是透明的,其始終認為自己在和OR3通信,而各OR無法同時獲得Tor用戶IP、目的服務器IP和應用數據,從而保證了通信的匿名性.

近年來,對洋蔥路由技術的研究主要集中在負載均衡、擁塞控制、調度策略等方面:

1) 在負載均衡方面.通過正確評估洋蔥路由器的有效帶寬、綜合考慮當前負載等方式不僅可以提升Tor網絡性能,還可以提高安全性.例如Snader等人[33]認為僅根據洋蔥路由器提交的帶寬進行路由選擇易受到惡意節點謊報虛假帶寬的攻擊,因此提出了一種基于洋蔥路由器采樣帶寬中值的機會路由選擇算法.在此基礎上,Panchenko等人[34]提出了一種基于節點當前負載和帶寬的路由選擇算法,進一步提高了性能和安全性.而Rochet等人[35]提出Waterfiling算法,通過在用戶路徑節點上均衡網絡負載,從而降低被端到端流量關聯的風險.

2) 在擁塞控制方面.通過防止擁塞發生或避開擁塞的洋蔥路由器能夠提升暗網性能.例如,Wang等人[36]認為Tor在進行路由選擇時將帶寬作為中心特征,忽略了當前負載,導致部分節點未被充分利用或發生擁塞.針對該問題,他們提出了一種擁塞感知的路由選擇算法,即客戶端通過主動測量評估節點的擁塞狀態,避免使用出現擁塞的節點,并通過實驗驗證了其方法的有效性.針對Tor網絡中存在大量僵尸網絡流量的問題,Liu等人[37]提出了隱私保護訪問控制框架TorPolice,該框架允許服務提供商和Tor網絡實施預設的訪問策略,在向合法Tor用戶提供服務的同時拒絕僵尸網絡流量,緩解了網絡擁塞.

3) 在調度策略方面.主要通過分析流量所屬應用類型來進行鏈路調度,從而提升性能.例如,Tang等人[38]認為Tor用戶體驗差的主要原因之一是在鏈路調度算法中,允許具有連續流量的繁忙鏈路(如批量傳輸)搶占突發鏈路(如網頁瀏覽).針對此缺陷,該工作通過賦予突發鏈路更高優先級,使得Tor網絡中大多數突發鏈路性能得到改善,同時產生的開銷較小.Alsabah等人[39]則利用機器學習方法對Tor加密鏈路進行分類,識別出每個應用程序所屬的服務類型.通過為每個服務類型分配優先級,顯著改善了Tor用戶體驗.在后續工作[40]中,他們提出了一種名為Conflux的動態分流方法,根據測量延遲將流量分配到不同的路徑中以增強負載均衡特性,提升了連接到低帶寬bridge節點的用戶體驗.

此外,對各匿名路由替代算法的性能與安全性評估也是一個重要的研究分支.Wacek等人[41]探討了路由技術在性能和安全性之間的權衡,并通過高精度拓撲模型對Tor網絡的報文延遲、洋蔥路由器轉發性能等特征進行采集,進而對整個Tor網絡進行評估.Backes等人[42]提出了一種Tor網絡安全性評估框架MATor,能夠評估路由算法、Tor共識數據等對用戶匿名性的實際影響.在此基礎上,該文還提出了一種新的路由算法DistribuTor,能夠提供更強的匿名保障.在后續的研究中,該團隊[43]對MATor進行完善,增加了對路由技術抵御各類Structural攻擊能力的評估功能,并對DistribuTor,LASTor等路由替代算法進行了實驗.Matic等人[44]則對bridge節點的安全性進行了討論.更多的此類工作可以參考文獻[45].

2.2.2 大蒜路由

大蒜路由(garlic routing)具有分層加密、多消息綁定、端到端加密3個主要技術特點,典型代表為I2P,因此本節以I2P為例來介紹大蒜路由.

I2P制定了獨特的路由算法挑選節點建立隧道[46-47].在隧道建立前,每個I2P節點只知道局部的節點信息,具體的節點選擇過程可分為4個步驟:

1) I2P節點會測量已知節點的網絡性能,測量周期分為1 min,1 h和24 h等,測量項目包括帶寬、netDb查詢時延和隧道建立成功率等信息,并將產生的詳細描述文件保存于本地.

2) I2P節點根據速度和容量對測量到的目標節點進行分類.其中,速度為1 min內通過該目標節點的數據量.為了保證結果的穩定性,通常會取3條最快隧道的速度平均值.容量為一段時間內該節點建立隧道的數量,對其估計:

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內成功建立隧道的數目;capacity為容量估計.

根據速度和容量可將目標節點分為3類:高速節點、高容量節點和標準節點,3類節點的性能遞減.高容量節點為容量超過所有節點容量平均值的節點,而高速節點為速度超過所有節點速度平均值的高容量節點,剩余的節點均為標準節點.

3) 不同的隧道類型會選擇不同的節點,例如客戶隧道優先選擇高速節點,探測隧道優先選擇高容量節點或標準節點.當同一類型節點充足時,該類型每個節點被選擇的概率相同;當同一類型的節點數量不足時,會使用較低性能節點作為替代.其中探測隧道選擇高容量節點和標準節點的比例ratio可計算為

(2)

4) 隧道建立者隨機生成目標值,被選擇節點按照與目標值的異或距離進行排序來確定節點在隧道中的位置.

I2P使用VTB(variable tunnel build)消息建立通信隧道,該消息主要由建立請求記錄(build request record, BRR)組成,而BRR由tooPeer字段和req字段組成,其中tooPeer字段為節點標識,req字段包含分層密鑰key、回復密鑰replykey、下一跳節點ID等信息.利用VTB建立隧道的過程如圖9所示,可分為5個步驟:

① 客戶端由netDb獲知各節點公鑰,利用公鑰加密封裝包含3個BRR的1-VTB消息,轉發至節點A;

② 節點A根據明文toPeerA字段識別對應1-BRR,利用節點A私鑰解密reqA獲得分層密鑰keyA、回復加密密鑰replykeyA、下一跳節點B的ID等信息,通過replykeyA加密回復數據responseA并替換1-BRR內容,利用keyA解密2-BRR和3-BRR后封裝成2-VTB,轉發至節點B;

③ 節點B根據明文字段toPeerB識別對應2-BRR,利用節點B私鑰解密reqB獲得明文數據,通過replykeyB加密responseB數據替換2-BRR內容,利用keyB解密1-BRR和3-BRR后封裝成3-VTB,轉發至節點C;

④ 節點C重復②和③中類似操作得到4-VTB,并將4-VTB轉發至客戶端輸入隧道的Gateway節點D;

⑤ 客戶端分層解密獲得4-VTB中各節點響應明文數據,從而判斷隧道是否建立成功.

經過上述5個步驟之后,客戶端與節點A,B,C分別協商得到分層密鑰keyA,keyB,keyC用于隧道加密通信.

Fig. 9 Build I2P tunnel圖9 I2P隧道建立

大蒜路由中多消息綁定和端到端加密機制如圖10所示.當客戶端訪問隱藏服務端時,使用隱藏服務LeaseSet中公鑰信息實現端到端加密.客戶端每個單獨的消息稱為一個蒜瓣(clove),每個蒜瓣有對應的指示信息,用于指示該蒜瓣的類型和用途.客戶端將多個蒜瓣封裝成一個大蒜消息進行轉發,隱藏服務端分層解密并按照指示處理每個蒜瓣.

2.2.3 基于DHT的路由

基于DHT的路由技術的核心思想是利用DHT組織數據,進而使用對應的搜索策略提供高效路由,并通過多跳代理保障通信的匿名性[48].Freenet是使用基于DHT的路由技術的典型匿名通信系統.本節將以Freenet為例,對于基于DHT的路由技術進行介紹.

Fig. 10 I2P garlic message圖10 I2P大蒜消息

Freenet路由是一種面向請求消息的深度優先節點選擇機制,主要應用于文件上傳和文件檢索[49].請求消息中除了包含文件索引,還包含UID(unique identifier),HTL(hops to live)等信息.文件索引值對應一個節點位置值,表示該文件最可能的存儲位置,是請求消息路由的重要依據.UID唯一地標識一個請求,能夠有效避免消息路由過程中出現死循環.HTL用來限制消息所允許轉發的跳數,避免消息無限地被路由下去.目前HTL默認的最大值為18,通常情況下隨著消息的轉發HTL會逐跳減1,當HTL減至0時,該消息將被丟棄.此外,出于安全性考慮,Freenet中特別增加了一些針對HTL的混淆機制,對于HTL為18的請求,節點在轉發時只有50%的概率會使HTL減1;而對于HTL為1的請求,節點在轉發時只有25%的概率會使HTL減1.綜上,請求消息由發起者節點產生后,會按照深度優先原則被轉發到下一跳,然后由下一跳繼續迭代路由.上傳請求會在檢測出鍵值沖突或HTL下降至0時停止轉發,而檢索請求則會在檢索成功或HTL下降至0時停止轉發.

Freenet路由選擇機制還結合了貪心策略.每個節點維護自身的路由表,并根據該表對消息進行路由.為了便于區分,Freenet將與節點直接通信的鄰居節點稱為直接鄰居,距離兩跳的節點稱為間接鄰居.值得注意的是,Freenet中直接通信的節點之間會交換雙方直接鄰居的位置等信息,從而保證任意節點都擁有所有間接鄰居的位置等信息.圖11展示了節點A的直接鄰居、間接鄰居以及其路由表.其中,節點A的路由表中目的地節點包括所有直接鄰居和間接鄰居,而路由選擇的結果始終是直接鄰居.每次路由時,節點將根據消息中文件索引值確定對應的位置,并比較路由表中目的地節點的位置與該位置的距離,迭代地選擇距離最近的目的地節點對應的直接鄰居作為消息的下一跳節點.對于需要重復路由的消息,節點繼續按照貪心策略選擇不重復的下一跳節點.

Fig. 11 Routing table in Freenet圖11 Freenet路由表

2.3 暗網服務技術

暗網服務是指必須通過特殊的軟件、特殊的配置才能訪問,并且搜索引擎無法對其進行檢索的服務,包括了Web,IRC、文件共享等多種服務類型.由于匿名通信技術的引入,暗網服務器的位置信息通常都得到了有效的隱藏,使得大部分的暗網服務都具有較好的匿名性.下文分別對典型匿名系統提供的暗網服務技術進行介紹.

2.3.1 Tor隱藏服務

Tor隱藏服務[注]https://gitweb.torproject.org/torspec.git/tree/rend-spec-v2.txt是通過隱藏服務域名(即洋蔥域名)唯一標識和查找的.服務器首次運行后將生成一個隱藏服務域名,其域名形式為z.onion.其中z是長度為16 B的字符串,由RSA公鑰Hash值的前80 b進行base32編碼獲得.

Tor隱藏服務器在啟動過程中會將其信息上傳至隱藏服務目錄服務器,Tor客戶端能夠通過目錄服務器獲取足夠的信息與隱藏服務器建立雙向鏈路.圖2展示了客戶端訪問隱藏服務的具體過程:

① 隱藏服務器選擇3個洋蔥路由器作為其引入節點,并與引入節點建立3跳鏈路;

② 隱藏服務器將其隱藏服務描述符(hidden service descriptor)上傳至隱藏服務目錄服務器,描述符中包含引入節點的信息與自身RSA公鑰;

④ 客戶端選擇一個洋蔥路由器作為匯聚節點并與該節點建立3跳鏈路;

⑤ 客戶端建立到達引入節點的3跳鏈路,并通過引入節點將匯聚節點的信息發送到隱藏服務器;

⑥ 隱藏服務器建立到達匯聚節點的3跳鏈路,并對該鏈路進行認證;

⑦ 經過匯聚節點,客戶端與隱藏服務器通過6跳鏈路進行交互.

Tor隱藏服務器運行時,將自身的RSA公鑰及引入節點信息上傳至通過式(3)選定的6個隱藏服務目錄服務器上,其中H(x)是結果長度為160 b的Hash函數,‖為拼接函數.

Descriptor-id=H(Public-key-id‖
Secret-id-part),

(3)

其中,Public-key-id即為RSA公鑰的SHA1摘要的前80 b.Secret-id-part,可計算為

Secret-id-part=H(Time-period
‖Descriptor-cookie‖Replica-index),

(4)

其中,Descriptor-cookie為可選字段,該字段可以用來防止未授權客戶端訪問隱藏服務;Replica-index有2種取值,其作用為選擇不同的隱藏服務目錄服務器.Time-period字段用于分散隱藏服務重新選擇隱藏服務目錄服務器的時間,可計算為

(5)

其中,t為當前的UNIX時間.該字段將一天劃分為256個時段,并在其中某個時刻重新選擇隱藏服務目錄服務器上傳信息.

隱藏服務目錄服務器利用DHT進行組織,每個目錄服務器都是DHT中的一個節點,DHT結構如圖12所示:

Fig. 12 The topology of hidden service directories圖12 隱藏服務目錄服務器結構圖

對隱藏服務技術的研究主要集中在Tor暗網安全性分析及性能分析2個方面.?verlier等人[50]為增加隱藏服務器抵御DoS攻擊的能力,提出了代客節點(valet service node)的設計.客戶端欲訪問隱藏服務首先需要通過聯系信息憑證獲取代客節點信息,并且需要通過代客節點認證才能訪問引入節點,從而保證了引入節點的安全性,最終增強隱藏服務器防御DoS攻擊的能力.Loesing等人[51]評估了在客戶端訪問隱藏服務過程中獲取隱藏服務描述符、建立到達引入節點的鏈路等步驟的開銷,并提出了提前建立更多鏈路、同時連接2個引入節點等建議提高Tor暗網性能.Lenhard等人[52]評估了在使用蜂窩移動網絡等低帶寬接入啟動階段和隱藏服務訪問階段的性能,在此基礎上,提出了在低帶寬情況下設置較大網絡超時等建議以提升用戶體驗.

2.3.2 I2P隱藏服務

I2P提供的隱藏服務[注]http://www.i2pproject.net/zh/docs/how/tech-intro類型包括Web、郵件、聊天室和文件共享等,其中Web是主流的隱藏服務,稱為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中的隱藏服務通過Destination標識,如式(6)所示,Destination由256 B公鑰、128 B簽名公鑰和3 B的證書類型組成.對于非公開的隱藏服務,I2P根據式(7)由Destination計算LeaseSet的Hash值(簡稱為LSHash),再根據式(8)編碼獲得隱藏服務的Address信息.對于公開的隱藏服務,服務擁有者需將Destination以及便于記憶的站點別名Hostname提交到I2P隱藏服務管理站點,經過其審核后公布給I2P用戶,用戶可以通過別名Hostname訪問隱藏服務站點.

隱藏服務訪問者通過LSHash查詢Floodfill節點得到對應隱藏服務的LeaseSet信息,LeaseSet提供訪問隱藏服務的Gateway節點信息,以此構建隧道訪問隱藏服務.

如圖13所示,在考慮默認3跳隧道的情況下,I2P隱藏Web服務的通信過程包括7個步驟:

① 隱藏服務根據節點選擇機制,選擇合適的節點建立隱藏服務的輸入和輸出隧道,并根據輸入隧道入口節點信息生成隱藏服務的LeaseSet信息.

② 隱藏服務建立探測隧道,并通過探測隧道將①中生成的LeaseSet信息公布到netDb中.

③ 客戶端根據路由選擇機制,選擇合適的節點建立客戶端的輸入和輸出隧道,并根據輸入隧道入口節點信息生成客戶端的LeaseSet信息.

④ 客戶端建立探測隧道,并通過探測隧道向netDb查詢獲得隱藏服務的LeaseSet信息.

⑤ 請求Web隱藏服務的消息包含3個Clove,其中Clove1為HTTP請求;Clove2為數據存儲消息(database store message),即客戶端的LeaseSet信息,用于指示隱藏服務端到客戶端輸出隧道和輸入隧道的轉發;Clove3為傳輸狀態消息(deliver status message),用于隱藏服務端響應并確認客戶端消息.

⑥ 客戶端數據經過輸出隧道3次解密后得到端到端的加密數據,同時輸出隧道末端點得到步驟③中隱藏服務LeaseSet所指示的入口節點信息,完成通信雙方輸出隧道到輸入隧道的數據轉發.

⑦ 隱藏服務端對數據進行4次解密得到明文數據,同時利用明文數據中的Clove2信息實現隱藏服務輸出隧道至客戶端輸入隧道的轉發.

Fig. 13 Hidden Web service communication in I2P圖13 I2P隱藏Web服務的通信過程

經過以上7個步驟,完成了客戶端和隱藏Web服務端的通信,雙方可得知輸入隧道入口節點的信息.由于隧道中節點只知道前驅和后繼節點信息,從而保證了通信的匿名性.

2.3.3 Freenet暗網服務

Freenet基于其匿名文件存儲與檢索功能提供了暗網Freesite服務.Freesite是Freenet中的“網站”,本質上是存儲在Freenet中的靜態網頁文件.該隱藏服務基于Freenet文件存儲與檢索中的統一資源定位符(URL)以及路由機制進行部署和訪問.Freesite利用Freenet的文件鍵值作為其統一資源定位符,對于任意一個Freesite站點,只有獲取其鍵值才能夠訪問該網站查看相關信息.

鍵值是Freenet中文件的統一資源定位符,根據不同的文件分享需求,Freenet提供了不同種類的鍵值.鍵值類型包括CHK(content Hash keys)和SSK(signed subspace keys)兩大類,而USK(updatable subspace keys)和KSK(keyword signed keys)是2種特殊的SSK[53].Freesite利用SSK或USK作為其鍵值類型將靜態網頁文件上傳至Freenet中,這2種鍵值類型的文件很容易進行更新,便于所有者維護自己的Freesite.用戶獲取了文件的鍵值,即可在Freenet中利用Fproxy代理功能在瀏覽器中訪問該Freesite.

CHK是最基礎的一種鍵值,適合靜態文件資源使用.這種鍵值包括文件的Hash值、解密密鑰和加密設置等信息,其格式為“CHK@Hash值,解密密鑰,加密設置”.CHK通過對二進制文件內容進行SHA256 Hash運算生成一個由文件內容決定的Hash值,該Hash值也作為對應文件在Freenet中的索引,生成該索引的同時會生成一個隨機密鑰用來對文件內容進行對稱加密,文件被加密存儲在Freenet中.鍵值中的加密設置主要包括使用的加密算法等信息.

SSK適用于Freesite站點等需要文件頻繁更新操作的資源,可以保證只有文件所有者才能更新.這種鍵值由5部分組成:公鑰Hash、文件解密密鑰、加密設置、文件描述符以及版本號.其格式為“SSK@公鑰Hash,文件解密密鑰,加密設置/文件描述符-版本號”.文件所有者在上傳SSK類型的文件時,首先需要生成一對公私鑰,其中公鑰的Hash值將作為該文件在Freenet中的索引,而私鑰將用來對文件密文進行簽名從而提供完整性校驗.另外,文件所有者需要提供一個文件對稱加密密鑰,并將原始文件加密后的密文、利用私鑰對密文的簽名以及公鑰數據,共同存儲在節點中,以便用戶對其進行校驗.Freesite擁有者還可以為該文件指定一個簡短的文本字符串作為文件描述符,同時用版本號指明了當前文件的版本,用以區分文件的不同版本.

USK與KSK是2種特殊的SSK.USK主要用于鏈接到最新版本的SSK,這種鍵值本質上就是對SSK進行了一層封裝,向用戶隱藏了對于最新版本SSK的搜索過程.這種鍵值格式為“USK@公鑰Hash,文件解密密鑰,加密設置/文件描述符/版本號/”.KSK是簡化的SSK,僅僅由一個描述性的文本字符串構成,其格式為“KSK@文本字符串”.當選擇向Freenet中上傳這種鍵值類型的文件時,用戶只需要提供一個描述性的文本字符串.節點首先根據用戶提供的字符串生成一對公私鑰,然后同樣對公鑰進行Hash產生該文件的索引,私鑰則用來對文件進行簽名以提供一定的完整性校驗.文件最終利用該文本字符串作為對稱密鑰加密后與簽名一同存儲在Freenet中.KSK存在的主要問題是容易發生沖突,當2個用戶同時選擇了同一個文本描述符,兩者存儲的對應文件則具有相同的索引.

用戶利用鍵值檢索對應文件資源的過程是節點選擇過程.Freenet中一種典型的資源請求過程如圖14所示,節點A作為請求者在其本地存儲未檢索到對應文件后,向節點B發起請求.節點B收到該請求后,在本地未檢索到文件,于是向與文件索引值最近的節點C發起文件請求.節點C無法檢索到該文件返回了請求失敗消息.節點B收到該消息后繼續向次近的節點D發起請求,節點D先向節點F發起請求,節點F又向其鄰居節點B發起請求.此時在節點B處檢測到請求的循環,節點B返回請求失敗給節點F.節點F沒有其他鄰居節點,向節點D返回請求失敗消息.節點D此時向次近的鄰居節點E發起請求,當節點E檢索到該文件,將沿路徑E→D→B→A反饋結果給節點A.

Fig. 14 A typical request sequence in Freenet圖14 一種典型的Freenet資源請求過程

2.3.4 ZeroNet暗網服務

ZeroNet基于BitTorrent技術部署用戶站點,并通過Bitcoin加密技術保證站點文件的完整性.當用戶訪問一個ZeroNet的網站資源時,首先查找本地資源,若不存在則通過BitTorrent網絡查找該網站資源的擁有者,將擁有資源的部分訪問者的IP地址以及端口號返回給用戶.因為站點的每個訪問者均存儲了站點文件,使得用戶可以通過TCP連接從這些訪問者中下載網站內容.具體步驟如下:

① 用戶查找網站資源的擁有者.該操作是在BitTorrent Tracker和用戶之間進行的,如圖15所示.用戶向BitTorrent Tracker請求網站資源時,Tracker將用戶注冊成為訪問者,并將擁有該資源的部分可訪問網站的IP及端口號返回給用戶.

Fig. 15 Workflow of user looking up the owner of resource圖15 用戶查找網站資源的擁有者流程

② 用戶下載網站資源.該操作在用戶和其他訪問者之間進行,其他訪問者是擁有用戶請求資源的可訪問網站,如圖16所示.在步驟1之后,用戶獲得了可訪問網站的IP及端口號,首先會下載該網站的簽名信息集文件,該文件包含所有文件名、Hash值和網站所有者的加密簽名.之后用戶使用文件中網站地址和網站所有者的簽名來驗證下載的簽名信息集文件.驗證完畢后用戶可以使用簽名信息集文件中的SHA512 Hash值下載并檢驗網站中的其他文件,包括HTML,CSS,JS等.

Fig. 16 Workflow of user downloading site resources圖16 用戶下載網站資源流程

用戶在訪問網站后即可為其他訪問者提供該網站的下載服務,提升整個站點文件的下載速度.用戶可使用Tor網絡與BitTorrent Tracker服務器通信以隱藏其真實IP地址.

ZeroNet網站由其所有者更新,為該網站提供文件下載服務的所有用戶節點僅接收對網站內容所做的增量更新.該操作是在網站所有者和網站訪問者之間進行的,如圖17所示.如果網站所有者修改了站點內容,他將簽署一個新的簽名信息集文件,該文件會自動映射到內置的本地數據庫,同時將其發送給訪問者.訪問者使用簽名驗證文件的完整性,將修改后的文件內容保存在本地,以供其他訪問者訪問下載,瀏覽器也會實時更新修改后的網站內容.

Fig. 17 Workflow of ZeroNet site update圖17 ZeroNet網站更新流程

ZeroNet站點可同時由多個用戶進行維護,此類網站需要其他維護站點的用戶向網站所有者發送維護申請許可,如圖18所示.用戶需要發送其地址(即公鑰)給網站所有者,網站所有者在簽名信息集文件中加入該地址,并生成基于BIP32的Bitcoin地址給每個用戶,表明該用戶為有效簽名者,并向所有的訪問者發送新的簽名信息集文件,以更新網站的發布權限.

Fig. 18 Workflow of multi-user site registration圖18 多用戶網站注冊流程

綜上所述,ZeroNet是一個由訪問者提供服務的P2P暗網.雖然該系統沒有采用任何的匿名技術保護站點和用戶之間的通信隱私,但它利用BitTorrent網絡架構并結合Bitcoin加密技術將站點文件組織在一個封閉的P2P環境中,使得搜索引擎無法檢索到站點內容,形成了ZeroNet暗網.

3 匿名通信攻防研究

圍繞匿名通信系統的隱私保護效果,研究人員開展了相關的攻防研究.這些工作探討了匿名通信系統的設計缺陷,并尋求相應的防御方法.

3.1 匿名通信攻擊技術

匿名通信攻擊可以分為針對網絡流量的攻擊和針對節點的攻擊:針對流量的攻擊通常基于流量分析技術,即通過嗅探并分析網絡通信流量的各種模式,以獲取有價值信息;而針對節點的攻擊則主要是匿名通信節點系統和協議存在漏洞的利用.

本節首先針對現有的基于網絡流量分析的去匿名化攻擊技術,從2個維度[54]介紹網絡流量攻擊:

1) 被動和主動攻擊.根據攻擊者對通信行為的干涉程度進行劃分,攻擊者可以被動監聽或主動操縱目標流量.

2) 單端和端到端攻擊.根據威脅模型的不同進行劃分,攻擊者通過監控或控制發送方或/和接收方的相關設備.

被動攻擊是指攻擊者通過被動網絡竊聽分析抽取流量特征,在這個過程中并不會影響數據的正常傳輸,其優勢在于隱蔽性強.主動攻擊則是攻擊者對數據通信過程本身施加干擾,例如對數據包進行修改、重放、丟棄或延遲等操作,從而達到更高效地進行流量特征分析和抽取的目的.

單端攻擊是指僅占據發送端或接收端實施的攻擊技術.執行單端攻擊的攻擊者需要監控通過發送端或接收端設備的流量,從而破壞用戶的通信保密性和匿名性.單端被動攻擊提取流量模式作為指紋,并基于此推斷應用層的流量內容,例如用戶訪問的網站.單端主動攻擊則可以主動將內容注入到流量中,或控制客戶端的入口節點以迫使客戶端直接向攻擊者發送信號并暴露其真實IP地址.

端到端攻擊指同時占據通信入口和出口實施的攻擊,可以采用被動或主動攻擊方式來關聯客戶端和服務器之間的通信關系.為了實施攻擊,攻擊者通過在發送器和接收器兩側控制或監聽設備(例如兩端路由器,或Tor入口和出口節點),然后基于流量特征比對嫌疑發送端發出的流量和嫌疑接收端收到的流量,以確認通信關系.

本節將分別從端到端被動攻擊、端到端主動攻擊、單端被動攻擊和單端主動攻擊這4個方面闡述現有相關工作.此外,還將介紹針對節點系統和協議漏洞的相關攻擊技術.

3.1.1 被動端到端流量分析

端到端被動攻擊的目的是被動記錄流量,并用統計方法來評估發送者的出站流量和接收者的入站流量之間的相似性.圖19說明了端到端被動攻擊的基本工作流程.此類技術可以利用的流量特征包括數據包計數、流量模式相關性、時序相關性等.例如,攻擊者可以簡單地在發送器的輸出鏈路上對幾個時間間隔中輸出的數據包數目進行計數,然后在接收器的輸入鏈路上對相同時間間隔中到達的數據包數目進行計數,最后用距離函數來計算這2個鏈路在相關流量特征上的距離.

Fig. 19 Workflow of end-to-end passive attacks圖19 端到端被動攻擊的工作流程

由于端到端被動攻擊僅需要監聽流量,因此它的主要優點是具有較高的隱蔽性.然而,這種方案的準確率低而誤報率高.因此,攻擊者需要足夠的時間來觀察流量并發現發送方和接收方之間的流量模式相似性,以便降低誤報率.

根據攻擊者能力的不同,現有被動端到端攻擊可以分為2種:一種是攻擊者可實施全局監聽,例如可以監聽整個自治域系統(autonomous systems, AS)或互聯網交換中心(Internet exchange, IX)內的信道;另一種是攻擊者可實施局部監聽,例如向匿名通信網絡注入節點,通過一定策略增加自身被選中的概率,從而在某個節點上實施攻擊.

1) 全局監聽攻擊.全局監聽攻擊是指攻擊者可以在獨立的AS或IX甚至更大范圍地對匿名鏈路進行監控分析,從而實現通信關系的確認.由于Tor現有的路由選擇策略會盡可能使一條鏈路穿越不同的國家,這就意味著即使是AS/IX級別攻擊者也并不一定能同時監控出口和入口節點.而Edman等人[55]的研究證實了單個自治系統能夠通過流量觀測和關聯來威脅Tor暗網安全性,在此基礎上該工作評估了一些簡單的AS感知路徑選擇算法的有效性,并提出了一種路徑感知路由選擇算法,可以改善路由選擇中的位置多樣性.Akhoondi等人[56]設計了一種高效算法,用于判斷Tor鏈路是否能夠被AS進行流量關聯,并基于該算法設計了一種新的Tor客戶端LASTor.LASTor能夠避免建立可被AS流量關聯的Tor鏈路,從而提高了Tor暗網的安全性.IX具有比AS更大的監控范圍,Murdoch等人[57]驗證了IX級別攻擊,通過對真實的流量進行采樣,提取報文發送率、報文長度等統計特征,實現了實體通信關系的確認.Johnson等人[58]在仿真環境下進行實驗,在同時控制具有高帶寬的Tor節點以及IX的條件下,可以對80%的隨機鏈路實現通信關系的確認.在AS/IX級別攻擊中,攻擊者需要對相當大范圍的網絡流量進行監控和分析,這就對其所能掌控的資源有很高要求.Nasr等人[59]設計了一個流量關聯系統DeepCorr,利用深度學習架構學習適用于Tor復雜網絡的流量關聯函數,可將Tor連接關聯起來,準確度明顯強于現有算法.

2) 局部監聽攻擊.局部監聽攻擊是指通過向網絡中提供滿足帶寬、在線時間要求的惡意節點,使其成為匿名系統的一部分來實施攻擊.而隨著匿名網絡規模的不斷擴大,受限于攻擊成本,攻擊者無法提供足夠的高帶寬節點來獲得更多鏈路的控制權,因此需要采取一些措施提高注入節點被選中的概率.Bauer等人[60]提出了通過上傳虛假高帶寬信息提高惡意節點被選中概率的策略.Pappas等人[61]利用惡意用戶節點構建環形鏈路,惡意消耗鏈路中合法中繼節點的資源,最終使其資源耗盡并拒絕服務,從而間接提高惡意節點被選中的概率.隨著一些新提出的鏈路構建方法可自動選取相對可靠中繼節點,局部監聽攻擊的有效性面臨著更多的挑戰.

3.1.2 主動端到端流量分析

端到端主動攻擊的基本思想是攻擊者可以通過在發送端或接收端的目標流量中嵌入特殊信號,然后檢測接收端或發送端側的流量,以便識別信號并確認發送端和接收端之間的通信關系.這種類型的攻擊也被稱為基于流水印的攻擊,工作流程如圖20所示.

Fig. 20 Workflow of end-to-end active attacks[62]圖20 端到端主動攻擊的工作流程[62]

對于流水印嵌入,攻擊者可以利用不同網絡層次的多種特征.本節分別從網絡層、協議層和應用層3個層面闡述現有的基于流水印的攻擊方法.

1) 在網絡層.攻擊者可以利用諸如流量速率[63]、包延遲間隔[64]和包大小等特征來將信號嵌入到目標流量中.例如Yu等人[63]提出一種水印嵌入方法,將不可見的直序擴頻信號(direct sequence spread spectrum, DSSS)嵌入在流量中,以調制其流速率模式.然后,嵌入信號和數據內容通過匿名通信網絡一起傳輸到接收方.最后,攻擊者可以識別信號并破壞發送方和接收方之間的匿名性.為了減少時延抖動的影響,Wang等人[65]提出一種攻擊技術,可追蹤互聯網上的P2P匿名VoIP電話.該技術的思想是在選定流的n個獨立同分布的數據包中隨機選擇2r個數據包,分為r對數據包,通過調整r對數據包的IPD(inter-packet delay)差值的平均值來嵌入追蹤信息.實驗研究表明追蹤P2P匿名VoIP電話是可行的,該技術可有效地追蹤任何長于90 s的P2P匿名VoIP電話.Wang等人[64]研究了基于質心的包延遲間隔的水印技術,通過調整時間間隔質心,可以將一系列二進制信號位嵌入流量中.Houmansadr等人[66]利用非盲水印的思想調制報文間隔,并且使用擴頻技術降低了先前技術中所用的時延,用少量的數據包就能保證流水印的魯棒性和隱蔽性.為了抵御多流攻擊,Houmansadr等人[67]還設計了SWIRL流水印機制,該方案是第1個可用于大規模流量分析的盲水印,可抗多流攻擊和Tor網絡擁塞,并以不同模式標記每個流.SWIRL對于包丟失和網絡抖動具有魯棒性,且引入的延遲較小,因此隱蔽性較高.Rezaei等人[68]提出了一種盲流水印識別系統TagIt,將水印信號調制成網絡流的定時模式,即將數據包稍微延遲到只有水印識別方知道的隱蔽時間間隔,從而實現對第三方不可見.此外,可利用隨機化來抵抗各種檢測攻擊,如多流攻擊.攻擊者還可以改變包大小來將信號嵌入到目標流量中.例如,Ling等人[69]提出了一種攻擊方法,可以控制Web服務器并操縱響應HTTP數據包的大小,用特定的包長度表示單個十六進制位.通過改變幾個包的長度,可以將消息編碼到流量中.盡管包長度在單跳代理處被部分填充,但是攻擊者仍然可以推斷包長度,以便在接收端側恢復原始信號來確認發送端和接收端之間的通信關系.另外,為了保證這種攻擊的隱蔽性,攻擊者需要保持原始包大小的分布和自相似性.為此,攻擊者需要選擇適當的包并改變其大小.

2) 在協議層.水印攻擊可以采用匿名通信系統的不同協議特征.例如,Ling等人[70]在可控OR節點上控制Tor信元發送規律,在出口節點處連發3個Tor信元代表信號1,1個Tor信元代表信號0,并通過分析信元在網絡逐跳傳輸中可能出現的變化,設計信號恢復算法;在入口節點處對信號進行識別,可以在較短的時間內實現對Tor匿名流量通信關系的快速確認.Ling等人[71]深入探討了Tor的通信協議,發現Tor使用高級加密標準(AES-CTR)的計數器模式來加密和解密Tor信元.因此,每個Tor節點,包括鏈路中的Tor客戶端,維持本地計數器以使計數器值彼此同步,以便正確地加密或解密Tor信元.該攻擊利用多跳路徑中的計數器同步機制的特征,并且干擾沿著該路徑的某節點處的計數器值,會導致Tor信元的加密/解密失敗.通過這種方式,攻擊者可快速確認鏈路的源地址和目的地址之間的通信關系.

3) 在應用層.攻擊者可以在服務器端將特殊內容注入目標網絡響應流量中,以強制客戶端生成特殊流量模式作為信號.然后,攻擊者可以在客戶端觀察到該信號并確認發送方和接收方之間的通信關系.Ramsbrock等人[72]在應用層改變數據包長度,通過在數據包中填充字符來嵌入信號.Wang等人[73]提出一種攻擊方案,一旦攻擊者發現通過其出口節點的目標頁面響應流量,則可以注入空圖像的惡意網絡鏈接,使得客戶端側的瀏覽器下載這些鏈接產生特定的流量模式.若攻擊者在入口節點處檢測到期望的流量模式,便可確認發送者和接收者之間的通信關系.Chakravarty等人[74]在Web服務器端加入代碼讓用戶下載一個較大且不易被察覺的文件,然后根據統計相關性在收集到的眾多入口NetFlow流量記錄中找到符合此流量特征的入口節點,從而確認通信關系.此類攻擊還可在用戶的返回流量中注入JavaScript代碼,以觸發用戶端瀏覽器產生特定的信號流量.

3.1.3 被動單端流量分析

單端被動攻擊的思路是監控目標和匿名代理之間的流量,并通過將預期流量模式與預先收集的網站指紋進行比較來識別實際訪問的網站.這種類型的攻擊也被稱為網站指紋(website fingerprinting, WF)攻擊.

圖21說明了單端被動攻擊的基本工作流程,包含離線訓練和在線分類2個階段.在離線訓練階段,攻擊者首先需要選擇多個感興趣的網站,并設置被攻擊者的環境以模仿其瀏覽活動的過程.然后,攻擊者將逐一瀏覽網站并收集相應的流量.此外,需對收集的數據進行預處理以便去除噪聲.例如,因為網頁上的廣告鏈接是動態的,網站指紋攻擊的準確性將受到影響.因此,需要通過使用一些預處理策略,對此類噪聲進行過濾.此外,攻擊者從預處理的流量中提取合適的特征來表示通常隱藏在流量中真實有效的模式.目前已被驗證的有效特征包括包長度分布、流量、總時間、流量方向、包長度順序、上行/下行字節、突發流量字節長度[75]等.最后,攻擊者選擇合適的分類器,利用采集到的樣本數據來生成分類規則.該類攻擊中常用的分類器包括多項式樸素貝葉斯分類器、支持向量機、決策樹等.在第2階段,攻擊者利用監控工具捕獲目標用戶和匿名代理之間的流量,并利用相同的預處理方法去除噪聲,然后根據訓練好的分類模型對流量進行特征匹配和識別.

Fig. 21 Workflow of single-end passive attacks圖21 單端被動攻擊的工作流程

Hintz[76]最先提出了Web站點指紋攻擊的概念,并在理論上證明了指紋攻擊的可行性與有效性,但該攻擊方案僅適用于HTTP1.0協議,對之后的HTTP協議不再有效.Liberatore等人[77]在前人工作的基礎上,僅使用報文長度分布為特征,并首次將機器學習領域的樸素貝葉斯分類器應用于指紋識別,大大提高了單跳匿名代理上指紋攻擊的成功率.但該方案依賴于上下行流量中報文的長度,并不適用于對報文進行了定長封裝處理的多跳匿名通信系統(例如Tor),具有較大的局限性.Lu等人[78]指出數據包長度順序信息,可用于增強網站指紋識別.Panchenko等人[79]綜合多種流量特征,包括特定長度報文出現次數、總傳輸量、上下行報文數據量及所占比例等,并使用支持向量機對指紋進行分類,將多跳匿名代理上的識別率從3%提升至55%.Cai等人[80]使用最佳字符串編輯距離(optimal string alignment distance, OSAD)替換支持向量機的核函數衡量指紋相似性,在Tor上取得較好攻擊效果.在此基礎上,Wang等人[81]將特征集擴大,調整不同特征所占權重,使用K近鄰作為分類器,降低了計算成本,攻擊效果進一步提升.Hayes等人[82]提出了一種基于隨機決策森林的網站指紋識別技術,稱為k-指紋識別技術,該技術比以前的工作更大規模地評估了在標準網頁以及Tor隱藏服務上的攻擊性能,結果表明性能得到很大提升.Panchenko等人[83]提出了一種新穎的網站指紋攻擊,利用具有代表性的數據集探索了互聯網規模的網站指紋識別的實際限制,并研究了攻擊者可能遵循的不同策略的實際成功概率.Nasr等人[84]將壓縮感知技術應用于網站指紋識別,實驗結果表明該技術能夠保留最優的可壓縮網絡流量特征,在獲得較好識別結果的同時降低了攻擊開銷.Rimmer等人[85]提出了一種自動化的特征提取方法,并應用深度學習技術自動地對Tor流量進行去匿名化,達到較高的攻擊準確率.Zhuo等人[86]提出了一種基于隱馬爾可夫模型的網站建模方法,實驗結果表明該方法可以在closed-world環境下高效識別網頁和網站.然而,Web站點指紋攻擊的實施依賴于一系列假設,如用戶瀏覽器關閉了緩存功能、用戶瀏覽網頁過程中較少出現背景流量等,消除這些假設對于方法的實用性具有重要的意義.

除此之外,還有部分針對Freenet的攻擊技術,通過觀測鄰居節點流量特征判斷其是否為文件請求的發起者,從而實現去匿名化攻擊.例如,Levine等人[87]利用請求發起者的HTL默認初始值為18的特點以及相應的混淆機制,通過主動部署節點記錄從其鄰居節點接收到的HTL值等于18或17的請求,并利用樸素貝葉斯的方法判斷鄰居節點是否為該請求的發起者.實驗結果表明該方法的誤報率僅為2%.

3.1.4 主動單端流量分析

目前的單端主動攻擊主要在2處位置實施:1)在出口節點與應用服務器間的未加密鏈路上注入惡意代碼;2)控制用戶的入口節點或鏈路并執行主動Web站點指紋攻擊.

惡意代碼注入是指在服務器端主動地將惡意代碼插入用戶流量中,以便代碼到達被攻擊主機并執行.如果流量端到端進行加密,攻擊者可實施中間人攻擊[88-89],繞過匿名通信系統的客戶端并直接建立直達惡意服務器的連接.為此,攻擊者需控制代理和遠程服務器之間的未加密連接.例如在Tor網絡中,攻擊者可以控制Tor出口節點并任意地注入或修改非加密流量的內容.在控制了非加密連接之后,攻擊者可以將各種軟件實例注入到連接中,包括Flash,Javascript,ActiveX控件和Java.一旦這些軟件在瀏覽器中執行,它們將繞過瀏覽器中的本地代理,直接創建到特定遠程服務器的連接,這將會暴露客戶端的真實IP地址.為了防止遇到主動的單端攻擊,用戶應禁用插件,以避免惡意代碼在瀏覽器中的執行.或者用戶可以在客戶端部署透明代理,以確保所有流量都被引導到匿名通信系統中.

在被動的Web指紋攻擊中,攻擊者僅監聽鏈路,并不會對流量進行主動調制.由于Tor等匿名通信系統的定長封裝機制和HTTP持久連接、流水線等技術的影響,Web頁面不同對象的數據在返回流量中出現重疊難以區分,導致指紋攻擊的正確率無法進一步提升.如果可以采取某些方法使不同對象的返回流量區分開來,則可以更好地為不同Web站點建立指紋.He等人[90]首次提出并針對Tor系統進行了主動Web站點指紋攻擊,通過對Tor流量進行觀察確定用戶開始發送請求報文的位置,然后主動延遲用戶發出的請求報文,使前一個請求對象的響應數據有足夠時間完成傳輸,從而達到分離不同對象流量的目的.然而該攻擊會造成報文重傳,隱蔽性較差,并且延遲操作的粒度較粗,未對上行流量中存在的大量匿名協議控制報文進行識別.針對上述問題,Yang等人[91]進而設計了Tor流量控制報文和Web請求報文識別算法,通過主動延遲HTTP請求報文實現不同Web對象響應數據的分離,達到了較好的Web站點識別效果.

針對Freenet,Baumeister等人[92]利用Freenet中的鄰居節點更新機制實施了一種路由表插入(routing table insertion, RTI)攻擊,將惡意節點插入目標節點的路由表中,并通過模擬實驗驗證了該攻擊的有效性.Tian等人[93]基于RTI攻擊提出了一種追蹤文件下載節點的攻擊,根據多個監測節點接收到的請求信息推斷該請求的發起節點.

3.1.5 其他攻擊技術

節點攻擊是對匿名網絡中目標主機發起的針對性攻擊,通過利用協議設計缺陷,使目標節點系統服務失效或暴露目標主機的隱私信息.

在Tor網絡中,攻擊者可以利用Tor設計方面的不足來癱瘓任何一臺中繼節點,發現網絡中的隱藏服務以及對用戶進行去匿名化攻擊.當前對Tor網絡影響最大的節點攻擊方法是Sniper攻擊[94],該攻擊方法由Jansen等人在2014年提出.Sniper攻擊是一種針對Tor中繼節點的拒絕服務攻擊,可以用來癱瘓任意Tor中繼節點,攻擊成本非常低,但破壞性極強.Tor設計的擁塞控制算法并不能避免網絡擁塞,而是實現了端到端的流量控制.利用該缺陷,攻擊者可以殺死目標節點中的Tor進程,從而使其服務失效.

除此之外,I2P網絡中也存在類似的協議漏洞.Egger等人[95]提出一種I2P節點上傳并查詢自身節點信息的漏洞,可以對I2P用戶進行去匿名化攻擊.I2P節點使用DatabaseStore消息將自己的RouterInfo等直接上傳到與其邏輯距離接近的惡意Floodfill節點上,并通過其探測隧道發送DatabaseLookup消息查詢自身的RouterInfo等信息.因此,在隧道有效時間內,惡意的Floodfill節點可以關聯節點信息和探測隧道信息.當節點使用探測隧道向共謀的Floodfill節點查詢隱藏服務LeaseSet信息時,便可以關聯節點和其訪問的隱藏服務,從而完成對I2P節點的去匿名化攻擊.

3.2 匿名通信增強技術

為了緩解各種攻擊技術帶來的威脅,目前已存在一些用來防御各種攻擊的研究工作.廣義地講,可以從網絡層、協議層和應用層3個角度進行部署.

由于可以利用網絡流量特性來對用戶之間的通信進行去匿名化,所以阻止網絡層攻擊的基本思路是去除與用戶相關聯流量的特征,包括數據包大小分布、數據包順序、流速率、流量時間等.具體而言,包填充技術可以基于一定策略填充數據包大小,以便去除數據包長度相關特征[96].Wright等人[97]提出了流量整形技術,使數據包長度與目標頁面流量數據包長度分布相似,可以有效防御Liberatore等人[77]提出的攻擊方法.Chan-Tin等人[98]提出了一種基于聚類的流量整形技術,使簇中的不同網站流量特征看起來基本相同,從而使分類精度從70%下降到不足1%.

流量填充技術可以將偽數據包注入到用戶的原始流量中,以便模糊流量大小.例如,為了阻止網站指紋攻擊,網絡服務器可以首先選擇目標頁面,然后模仿該目標網頁的數據包大小分布.為了應對Panchenko等人[79]的網站指紋攻擊,Tor項目[99-100]提出通過隨機化HTTP流水線管道中的最大請求數來進行防御.除此之外,Nithyanand等人[101]指出,在Tor暗網中40%的鏈路易受AS級別的流量關聯攻擊,為此他們提出了一種新的Tor客戶端Astoria,通過網絡測量和路徑預測來進行智能路由選擇,降低來自AS級別的威脅.Juen等人[102]通過路徑預測技術來抵御來自AS和網絡交換機的流量分析攻擊,但該方法仍有提升空間.

在協議層,報文填充和流量填充技術可以隱藏與用戶相關聯的流量特征.secure shell(SSH),TLS和IPSec應用這樣的報文填充技術可以將明文與塊密碼邊界對齊,從而在一定程度上模糊了包大小.為了進一步提高安全性,可以選擇隨機數量的數據包進行填充[75].此外還可以使用協議級流量填充技術.例如,Tor通常不將填充數據單元的功能用于鏈路級填充,因為它會顯著降低鏈路的性能,因此可以設計協議級報文填充和流量填充技術,以在一定程度上減少開銷.

在應用層,可以利用HTTP特征和背景流量(即誘餌網頁)從用戶流中移除流量特征.例如,HTTP流水線技術和HTTP range字段可以用于調整傳入和傳出的數據包大小[103].此外,在客戶端改變HTTP請求的順序可以在一定程度上改變流量模式.為了在應用層使用背景流量技術,當用戶瀏覽目標網頁時,可以在背景流量中加載誘餌網頁.但這種類型的防御技術只能用于一些特定的協議(例如HTTP),不能廣泛應用于所有協議.Wang等人[104]提出了一種高效的網站指紋防御技術Walkie-Talkie,通過修改瀏覽器以半雙工模式進行通信,可以模擬突發序列,使敏感和非敏感頁面的流量模式類似.實驗結果表明Walkie-Talkie能夠以較低的帶寬和時間開銷防御網站指紋攻擊.

Table 1 Research Works on Anonymous Communication Attack and Defense表1 匿名通信攻擊和防御的研究

總體而言,匿名通信攻擊和匿名增強技術的研究是目前學術界關注的一個重要領域,表1總結了目前主要技術的分類、特征和相關文獻.這些工作或者從流量分析的角度,或者從匿名節點的角度指出相關系統存在的缺陷和面臨的問題,并進而從應用層、協議層和網絡層不同層次給出相應的解決方案,旨在提升這些系統的匿名性.但實際上,這些攻擊技術,尤其是去匿名化技術的提出,本質上也為暗網治理指明了可能的技術途徑.

4 暗網治理技術研究

圍繞暗網治理目標,目前已從網絡本身和網絡用戶2個方面開展了較多的研究工作.

針對暗網服務的濫用問題,提出了對暗網bridge節點的發現方法[105-107].通過分析典型匿名通信系統Tor的節點選擇算法,提出以節點注入方式枚舉在線bridge節點的方法,并利用協議特征以區分客戶端、正常匿名入口節點和bridge節點.通過理論分析推算枚舉所有節點的時間,并根據理論結果指導實際部署,以達到最優的資源配置和最快的bridge節點捕獲速率.此外,在獲取部分bridge節點的基礎上,通過對受控網絡的監控,分析出、入流量中存在的bridge節點的網絡連接特征,從而關聯分析獲取更多bridge節點.

針對匿名通信系統Tor的暗網隱藏服務節點,提出了隱藏服務定位技術[73,108],為暗網中的非法內容監管提供支持.在分析Tor隱藏服務節點與客戶端之間的匿名通信協議的基礎上,部署部分Tor入口節點,通過控制客戶端不斷向目標隱藏服務節點發起連接,以產生具有可檢測特征的隱蔽、快速流量,并在受控節點觀察流量特征以定位和確認隱藏服務節點.通過對暗網通信系統選路算法的理論分析,推算其隱藏服務節點選擇受控節點的概率,以此指導節點部署的規模,以最小資源代價實現暗網隱藏服務節點的捕獲.

針對濫用暗網的用戶,提出暗網用戶的上網行為分析技術,為暗網用戶的監管提供支撐.暗網用戶流量經過加密、混淆等操作后,其識別難度大大增加,為此提出了暗網通信流量識別技術[109].針對典型暗網系統,分別從協議設計和實現機制入手,研究匿名通信系統中通信數據的緩存、封裝和調度機制.通過對數據包分布、流統計屬性等不同層面特性的綜合分析,篩選匿名通信流量的可區分特征,并從理論上分析證明特征選擇的合理性.在此基礎上,研究并選取合適的機器識別方法,實現對匿名通信流量的快速、準確在線識別.

在識別暗網用戶的基礎上,為進一步推測暗網用戶加密流量中的應用類型,提出了暗網通信應用分類技術[25].在對各種交互式和非交互式暗網通信應用流量進行深入分析的基礎上,建立包括上下行流量比、并發連接數等指標的流統計模型,并將其作為先驗知識.針對采集的流量樣本使用特征選擇算法,獲取不同匿名協議相應的對噪聲不敏感、區分度高的特征.在此基礎上,選擇抗干擾分類性能穩定的分類模型,對匿名通信流量上層應用進行分類.建立分類評價模型,根據分類誤差率、計算時間復雜度等指標,對所選特征和分類模型進行評價.

針對暗網用戶的網站訪問流量,文獻[91,110]提出了暗網加密流量內容分析技術,以推測用戶訪問的站點.分別針對單跳和多跳匿名通信系統,研究其所采用的安全傳輸和匿名協議,并深入分析上層應用對暗網通信包長、時間間隔以及并發匿名鏈路數量等流量特征的影響.在此基礎上,重點針對HTTP等典型暗網通信流量,通過被動和主動方式采集并預處理流量數據,提取特征生成指紋,從而建立所關注目標站點的指紋庫.使用高效分類模型將未知暗網流量與指紋庫中的數據進行匹配,分析可能的暗網通信目的端.

對于訪問非法站點的用戶,提出了不同層次的通信追蹤技術[62,69-71,73,111-116],能夠快速、準確且隱蔽地確認匿名流量之間的通信關系.通過分析匿名通信機制以及各種網絡干擾對網絡流量時間特征的影響,利用隨機過程理論建立干擾環境下匿名通信流量時間特征變化的數學模型.在通用流水印追蹤架構的基礎上,根據水印追蹤的隱蔽性和健壯性要求,利用信息論方法分析評估基于現有水印機制構建的隱蔽信道的容量.在此基礎上,引入最優停止理論,研究并設計了自適應的水印嵌入與檢測機制.

上述工作從網絡本身和網絡用戶2個角度研究暗網治理相關技術,涵蓋了隱藏節點發現和隱藏服務定位、暗網用戶網絡行為分析,以及暗網流量追蹤和通信關系確認等各個方面,可為暗網的監管和治理提供有效的技術支撐.

5 總結與展望

作為網絡安全領域的一項關鍵技術,多年來匿名通信一直是學術界研究的熱點,而近幾年頻頻曝光的涉及暗網的一系列安全事件,更是使匿名通信與暗網受到了社會各個層面極大的關注.為了更好地剖析暗網及作為其核心支撐的匿名通信技術,本文首先給出了匿名通信系統的基本分類,闡明匿名通信系統與暗網的關系,并介紹了典型匿名通信系統的基本工作原理,涵蓋了Tor,I2P,Freenet和ZeroNet這4種主流暗網形態.其次,從匿名接入、匿名路由和暗網服務3個方面,闡述了匿名通信系統的關鍵技術及針對安全性和性能優化的相關研究工作.然后,從針對網絡流量和針對節點攻擊2個角度,總結了當前在匿名通信攻擊和防御2個方面研究工作的現狀,包括主動/被動-端到端/單端的流量分析、系統/協議漏洞利用等攻擊手段,以及相應的防御措施.最后,本文還介紹了暗網治理方面的現有研究成果,包括暗網隱藏節點發現和隱藏服務定位、暗網用戶的網絡行為分析,以及暗網流量追蹤和通信關系確認等.

隨著人們對隱私保護和系統性能等方面需求的不斷提高,需要對匿名通信技術進行進一步改進和優化,并研究綜合應用mix技術和洋蔥路由技術的新型匿名通信系統.在匿名接入方面,為規避流量監管,隱蔽、魯棒的流量偽裝技術仍然是當前研究的熱點.此外,由于機器學習、深度學習等人工智能技術在匿名通信系統攻擊中的廣泛應用和效果提升,各種適用于低延遲系統的智能流量混淆、填充等匿名增強技術將成為關注的焦點,這些研究均以對抗人工智能技術為目標.

在另一方面,匿名通信系統和技術的不斷完善,又給暗網治理帶來了更大的挑戰.本文認為暗網治理工作需要從暗網站點側和用戶側2個方面開展:

1) 在暗網站點側.首先針對不同暗網架構進行分析,研究暗網站點發現及內容獲取的相關技術.在此基礎上,通過分析暗網站點內容的分布規律,可從公網和暗網2個方面大規模、自動化地收集網絡內容,進而借助于大數據處理、知識圖譜、人工智能等技術分析暗網數據,挖掘數據中的新物品、新術語、新事件等,為整個暗網空間的安全態勢感知提供技術支撐.此外,針對不同匿名通信系統的暗網服務,需要深入分析其暗網服務技術的原理和匿名路由協議,設計有效的暗網服務定位方法,從而在發現非法暗網站點時,可有效、快速地開展對其服務站點的定位和治理工作.

2) 在暗網用戶側.亟需研發相應的流量識別、用戶節點發現、內容分析、追蹤定位等技術,為暗網用戶監管提供技術支持:①在流量識別方面,用戶側流量的監管與匿名接入技術的不斷發展形成了“軍備競賽”,各種高級、智能的流量偽裝等增強技術的應用,增加了對暗網側用戶流量的分析難度,亟待研發適用于大規模高速網絡環境中高效、準確、易部署的暗網流量監管方案.②在用戶節點發現方面,暗網通信節點發現技術可豐富暗網用戶側監管的手段,通過分析暗網中節點的種類和分布規律,設計有效、快速的暗網拓撲和節點發現方法,以快速發現訪問暗網節點的用戶.③在內容分析方面,加密暗網通信流量的內容分析仍然是熱點的研究問題,可引入機器學習技術并通過對模型參數的優化,不斷地提高對用戶側流量內容推測的準確率.在這過程中,實際網絡中存在的干擾和噪聲數據以及防御技術的不斷提升,對該技術的實際應用將帶來諸多挑戰.④在追蹤定位方面,現有技術雖可實現對暗網用戶與目標站點的通信關系關聯,但依賴關鍵網絡節點或暗網節點資源的部署.因此,如何降低對大規模節點資源的需求和依賴,研發易于大規模部署且適用于各類暗網應用的通信關系關聯技術仍需要進一步的探索.

除了加大暗網技術的研發實現源頭的治理,還需要借助于網絡安全法、社會教育、多種偵查手段并舉等措施.為此,可通過完善暗網行為在法律中具體規定、正確引導公眾對暗網的認識、加強傳統偵查方法和暗網分析技術的融合等方式,從多方面降低甚至消除暗網對社會和人們的負面影響.

致謝本文在撰寫過程中得到了丁翔、陳陽、許丹妮、徐永歡、黨一菲等碩士研究生和王春棉、王姍博士研究生的幫助.本人的工作獲得了江蘇省網絡與信息安全重點實驗室、計算機網絡和信息集成教育部重點實驗室的資助,在此特別表示感謝!

猜你喜歡
用戶服務
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
主站蜘蛛池模板: 国产清纯在线一区二区WWW| 无码一区18禁| 国产精品自在线拍国产电影| 成人夜夜嗨| 在线人成精品免费视频| 久久伊人久久亚洲综合| 欧美日本在线| 操国产美女| 日本人妻丰满熟妇区| 成年看免费观看视频拍拍| 无码电影在线观看| 成年人久久黄色网站| 亚洲男人天堂2018| 亚洲福利网址| 亚洲熟女中文字幕男人总站| 国产精品无码久久久久久| 亚洲精品视频免费| 亚洲综合九九| 亚洲天堂在线免费| 欧美激情视频一区二区三区免费| 国产亚洲精品va在线| 高清色本在线www| 99久久国产综合精品2023| 日本在线视频免费| 98精品全国免费观看视频| 伊人网址在线| 亚洲无码A视频在线| 国产91透明丝袜美腿在线| 亚洲无码日韩一区| 自慰高潮喷白浆在线观看| 国产无码精品在线| 亚洲无卡视频| 国产精品性| 亚洲欧美另类专区| 国产男女免费完整版视频| 亚洲国产精品日韩av专区| 精品久久久久久中文字幕女 | 第一区免费在线观看| 亚洲性影院| 亚洲一区国色天香| 一级全黄毛片| 丰满少妇αⅴ无码区| 操国产美女| 国产成人综合久久精品尤物| 日本成人一区| 18黑白丝水手服自慰喷水网站| 免费av一区二区三区在线| 欧美α片免费观看| 国产视频大全| 日本草草视频在线观看| 亚洲乱亚洲乱妇24p| 国产第二十一页| 久久亚洲黄色视频| 亚洲日产2021三区在线| 四虎综合网| 国产99欧美精品久久精品久久| 好吊妞欧美视频免费| 国产黄网站在线观看| 日韩123欧美字幕| 重口调教一区二区视频| 久久频这里精品99香蕉久网址| 2020国产精品视频| 免费99精品国产自在现线| 亚洲天堂日韩av电影| 国产精品开放后亚洲| 日韩精品毛片| 在线亚洲精品自拍| 波多野结衣视频网站| 欧美第二区| yjizz国产在线视频网| 欧美精品伊人久久| 狠狠色香婷婷久久亚洲精品| 狂欢视频在线观看不卡| 熟妇无码人妻| 99热国产在线精品99| 国产微拍精品| 少妇精品网站| 国产精品冒白浆免费视频| 日韩美女福利视频| 国产无码制服丝袜| 免费人成视网站在线不卡| 夜夜操天天摸|