李兵





關鍵詞:Tor匿名通信網絡;去匿名化;深度學習
1 簡介
洋蔥路由(The Onion Router) 簡稱Tor,是一個用于實現匿名通信的免費開源系統[1],可以隱藏用戶的位置和使用情況,避免被網絡監視。研究人員一開始設計Tor的目的是用于保護美國軍方的在線情報通信。后來隨著Tor代碼的公開,Tor現在已經成為最成功的公共匿名通信服務,每天有超過200萬的用戶使用Tor系統進行匿名通信。
Tor通過全球志愿者運行的中繼網絡對通信進行加密,然后隨機反彈。這些路由器以多層方式使用加密,來確保中繼節點之間的前向保密,從而為用戶提供網絡位置的匿名性。
Tor使其用戶能夠匿名上網、聊天和發送即時消息,通過保持其互聯網活動不受監控來進行保密通信,為持不同政見者、記者、告密者、企業、甚至普通用戶都提供了良好的隱私保護功能,是一個面向普通用戶的低延遲的匿名通信系統。
但是,由于Tor提供了匿名、防溯源的功能,是暗網(Dark Web) 的重要組成部分,通過使用Tor匿名通信技術,暗網用戶的身份和位置保持匿名,無法追蹤,以致犯罪分子從事非法活動可以規避司法審查。2016年Tor匿名通信服務各類別占比如圖1所示。可以看出,Tor 上最常托管的內容類型是各種非法內容,包括非法藥物、非法色情、黑市武器交易、黑客攻擊等。
為了追蹤那些利用Tor擺脫監控的犯罪分子,加強對網絡空間的安全控制,亟須對Tor匿名通信進行深入分析和研究。近年來,對Tor匿名通信網絡的研究成為眾多學者關注的焦點。
雖然Tor能夠避免流量傳輸過程的分析,但卻不能阻止流量在輸入輸出時的確認。Tor為了保證日常的網絡瀏覽具有低延遲的特性,沒有使用混淆流量特征等可能導致連接變慢的技術,從而給了可乘之機,人們可以通過特定的方法觀察用戶的輸入輸出流量,對Tor匿名通信網絡的流量進行分析,進一步識別用戶瀏覽的網頁,從而破壞Tor通信網絡的匿名性。
現有針對Tor通信網絡進行流量分析,破壞匿名性的技術可以分為主動流量分析和被動流量分析兩種:1) 主動流量分析技術。根據特定模式改變流中數據包的時序,并在網絡的另一端尋找該模式,從而可以將一側的流鏈接到網絡的另一側并破壞它的匿名性,但是由于流量被改變,隱蔽性較差。2) 被動流量分析。從網絡一側的特定流的流量中提取特征,并在網絡的另一側尋找這些特征,雖然需要長期觀察和記錄大量的數據,但具有較好的隱蔽性。根據流量位置的不同,被動流量分析又可以分為兩類:(1) 網站指紋分析。利用網站內容的差異,通過網絡流量推斷出用戶訪問的網站,從而實現去匿名化。(2) 流量關聯分析。通過觀察并關聯進入和離開Tor匿名網絡的流量,關聯兩端的流量,從而破壞Tor的匿名性。
近年來,研究人員利用傳統機器學習或深度學習算法,提出了一系列的網站指紋分析方法和流量關聯分析方法,并取得了較高的精度。
2 背景知識
2.1 Tor 匿名通信網絡
Tor是最受歡迎的匿名通信網絡,該網絡由6000 多個中繼節點組成。
2.1.1 匿名原則
Tor匿名通信網絡包含三個代理服務器。需要匿名服務的用戶首先在本地運行洋蔥代理服務器。洋蔥代理服務器負責通信鏈接建立和數據加密工作。它與目錄服務器進行通信,獲得全球活動的中繼節點信息,然后隨機選擇三個節點(入口節點、中間節點和出口節點)組成回路。用戶的流量經過這三個節點,最后到達目標網站服務器。系統每隔10分鐘左右就會重新選擇三個節點,每個節點只知道部分信息,這樣就能達到匿名的目的。
2.1.2 洋蔥服務
Tor 還可以為網站和其他服務器提供匿名性。配置為僅通過Tor 接收入站連接的服務器稱為洋蔥服務(Onion Services) 。洋蔥服務通過Tor 瀏覽器訪問,而不會透露服務器的IP 地址或網絡位置。Tor 網絡通過從網絡內的分布式哈希表中查找它們對應的公鑰和引入點來理解這些地址。由于洋蔥服務的流量完全通過Tor 網絡進行路由,因此與洋蔥服務的連接是端到端加密的,很難成為竊聽的目標。Tor為洋蔥服務和Tor用戶提供相互匿名,這意味著互相知道對方的IP地址。洋蔥服務和客戶端之間的默認路徑有六個中繼站,通過洋蔥服務協議連接。
2.1.3 封閉世界/開放世界場景
Tor進行實驗測試通常在兩種場景下進行:封閉世界場景和開放世界場景。1) 在封閉世界場景,假設用戶只能訪問攻擊者所監控的網站。例如,如果攻擊者監控了100個網站并提取了它們的網站指紋特征,那么用戶就只能訪問這100個網站。這種場景不夠現實,因為現實世界中存在大量的網站,而且用戶的選擇范圍很廣。2) 在開放世界場景,用戶可以像在現實生活中一樣自由訪問任何網站,而不局限于被監控的那一組,更加具有現實意義。
2.2 機器學習
機器學習(Machine Learning, ML) 是人工智能研究過程中的一個產物,它是一種可以學習的算法。機器學習可以劃分為幾個階段:1) 數據收集。數據能夠反映事物的特點和屬性;2) 模型訓練。利用訓練數據和對應的標簽對模型進行訓練,得到能夠預測未知的模型;3) 模型預測。把新的數據輸入到訓練好的模型中,進行預測。
根據預測值,機器學習可以分為分類模型和回歸模型。分類模型預測的結果是一個離散的值,如標記是“好”或“壞”。回歸模型預測的結果是一個連續值,例如概率“99%”。本文研究的網站指紋攻擊和流量關聯分析利用的都是分類模型,只判斷用戶是否訪問某一個網站。
2.2.1 傳統機器學習
傳統的機器學習算法包括支持向量機(SupportVector Machine, SVM) 、k 最近鄰(k-Nearest Neighbor,k-NN) 和隨機森林(Random Forest, RF) 算法等。傳統的機器學習算法需要事先手動設置訓練數據的特征。例如,為了識別貓的種類,需要手動設置貓的特征,包括眼睛、耳朵和頭發等。然后通過分析訓練數據來訓練模型。隨著數據數量的增加,模型的識別準確率也會增加,但最終會趨于平緩,達到收斂效果。傳統的機器學習算法不適合大數據分析,因為它們不能自動提取特征。
2.2.2 深度學習
深度學習(Deep Learning, DL) 產生于20世紀,當時由于缺乏數據,效果并不理想。隨著大數據時代的到來,深度學習的性能大幅度提升,在處理復雜對象如語音和圖像方面具有強大的性能。深度學習是機器學習的一個子集,本質上是一個多層的神經網絡。神經網絡從大量數據中自動“學習”,試圖模擬人腦的行為。
深度學習可以自動提取特征,不再需要手動設置特征。特征是在自己的神經網絡中逐層分析中獲得的。第一層的特征可能是模糊的,但經過逐層訓練,區分樣本類別的特征會越來越明顯。例如,有一組不同寵物的照片,我們想按動物種類進行分類,深度學習可以自動確定哪些特征(例如耳朵)對于區分每種動物最重要。而在傳統機器學習中,這種特征層次結構是由人類手動設置的。深度學習隨著數據量的增加,性能也會增加。
3 針對Tor 匿名通信網絡的去匿名化技術
Tor作為目前最流行的匿名通信網絡,針對Tor去匿名化技術研究是學者們關注的焦點。針對Tor的去匿名化技術可以分為兩類:網站指紋分析技術和流量關聯分析技術。
3.1 威脅模型
3.1.1 網站指紋分析模型
網站指紋分析是利用網站內容的差異,通過進入Tor網絡入口的流量推斷出用戶訪問的網站。我們可以通過觀察數據包的序列特征(如數據包時間、方向等)獲得用戶訪問過哪個網站的信息。
具體來說,不同的網站有不同的流量模式,瀏覽某一組網站,從入口流量中提取網站的獨特指紋特征。然后利用機器學習方法進行訓練,訓練得到一個分類器,它的輸入是用戶的入口流量,輸出是訪問對應的網站概率。
當用戶通過Tor匿名通信網絡瀏覽網站時,可以通過記錄下用戶和入口節點之間的流量,提取他們需要的網站指紋特征,然后與已知的網站指紋信息相匹配,獲得網站信息。
通過這種方式,可以知道用戶正在訪問的是哪個網站,成功地實現對Tor的去匿名化。網站指紋分析對Tor的匿名性構成了巨大威脅。具體威脅模型如圖2所示。
3.1.2 流量關聯分析模型
流量關聯分析也被廣泛用于實現針對Tor匿名通信網絡的去匿名化。同時觀察記錄進入和離開Tor匿名通信網絡的流量,然后通過關聯兩端的流量對Tor 進行去匿名化。
圖3顯示了流量關聯分析的威脅模型。為了實現去匿名化,需要控制大量的惡意中繼節點,或竊聽自治系統(Autonomous System, ASes) 和互聯網服務提供商(Internet Service Provider, ISP) ,從而可以在Tor連接的入口中繼和出口中繼處截獲流量。
由于Tor匿名通信網絡加密,無法通過檢查數據包的內容來確定入口和出口流量是否有關聯,所以需要通過流量特征(如數據包的時間、大小、方向等),將屬于同一用戶的流量在兩端關聯起來,從而確定特定用戶正在訪問哪個網站,實現針對Tor的去匿名化。
3.2 網站指紋分析
由不同信息形成的網站的流量會有不同的表現,所以可以將網站流量信息作為網站的指紋。第一步是找出網站流量最容易區分的特征,例如,瀏覽網頁時發送的數據包的數量、大小、方向等。每個特征數據對應一個網站標簽,數據和標簽作為訓練數據集,訓練網站指紋分類模型,使同一網站的數據屬于同一類別。訓練好的分類模型在輸入待識別的網站特征數據時,能夠輸出每一個標簽的概率,從而找到用戶在訪問哪一個網站。
現有網站指紋分析的工作主要分為兩類:一類是基于傳統機器學習的方案,一類是基于深度學習的方案。傳統機器學習的方案,不能處理大規模的數據,性能有待提升。基于深度學習的方法可以充分利用數據的信息,最后的準確率往往優于基于傳統機器學習的方案。
3.2.1 基于傳統機器學習的網站指紋分析
現有基于機器學習的網站指紋分析工作廣泛采用SVM、k-NN、RF等算法訓練網站指紋分類器。當用戶瀏覽網站時,對流量信息進行分析,判定在瀏覽哪一個網站。
針對Tor匿名通信網絡的網站指紋分析研究工作可以追溯到2009年,并在近幾年快速發展。但是,以往工作中使用的指紋特征往往是從網站的某個頁面提取的,而不是整個網站中提取的,所以稱之為“網頁指紋”更為恰當。
文獻[2]指出網頁指紋識別是非常不可靠的,并首次將網頁指紋特征進一步豐富為網站指紋特征。同時這項工作提出了一種新穎的網站指紋分析方法,具體來說,將網頁的加載過程抽象為一個特征,從而可以分析網頁痕跡的累積行為。
文獻[2]通過截取一段用戶流量,記錄了數據包的大小。在求和的過程中插入100個數,從而得到一個固定長度的輸入特征。這個特征在擁堵、帶寬、頁面加載時間等方面表現出較大的穩健性。文獻[2]采用了LibSVM算法訓練得到分類模型,達到了比當時最先進的方法更高的識別準確率。
由于網站指紋分析的性能往往與所使用的特征和分類器有關,所以相關研究特別注重改進所使用的數據特征和分類器。文獻[3]提出了一種新穎的指紋特征提取方法,該方法利用RF分類器對多種網站跟蹤特征進行提取,生成固定長度的特征向量,其包含175個特征。RF算法由多個決策樹組成,每個決策樹選擇一個特征進行分類,因此RF算法在特征選擇方面具有較大的優勢。
然后文獻[3]采用k-NN分類器對特征向量進行訓練和分類,將特征數據與每個網頁標簽進行匹配,以找到最佳匹配標簽。由于k-NN算法適合于分類任務,該方法的性能與文獻[2]相似。文獻[3]模型特征提取和分類器訓練階段利用了不同的機器學習算法,并發揮了每種算法的優勢。文獻[3]還分析了以前工作中使用的各種特征,發現一些簡單的特征(如數據包的數量)比一些復雜的特征(如數據包到達時間)提供的信息更多。他們在正常頁面、部署了網站指紋防御的頁面以及洋蔥服務頁面上進行了大量實驗測試,實驗結果表明,文獻[3]的準確性優于現有工作。
文獻[2-3]的數據特征是從Tor匿名通信網絡的入口和出口中繼節點處提取的,其中入口和出口中繼節點分別與客戶端和目的地直接相連。而Tor網絡通信過程除了經過入口和出口中繼節點,還需要經過一個中間中繼節點,而中繼節點的數據卻未被使用。
文獻[4]考慮到經過中間中繼節點的數據特征也可以被提取出來,提出了一種新的方法,即對來自內部-中間中繼節點特征進行分析。文獻[4]認為,中間中繼可以在不知道用戶和目的地IP地址的情況下提供大量有用的信息(如服務訪問時間、入口和出口中繼的位置等)。這種信息泄露給Tor匿名通信網絡帶來了巨大的潛在威脅。
文獻[4]采用RF算法檢測中繼節點的位置,然后利用k-NN構造分類模型,可以有效地從中間中繼節點識別Tor匿名通信服務的網站指紋。文獻[4]雖然沒有用這種方法來實現去匿名化,但對中間中繼節點的網站指紋分析具有啟發意義。
3.2.2 基于深度學習的網站指紋分析
傳統的機器學習算法需要人為選擇特征,特征選擇的好壞與攻擊的成功率有很大關系。深度學習算法不需要人工設置特征,可以自己完成對特征的選擇。給定樣本數據,深度學習算法先找到樣本的邊緣特征,然后往下逐層找到更深層次的特征。更深層次的特征分類效果更好,所以可以使用卷積神經網絡(Convolutional Neural Network, CNN)、長短期記憶網絡(Long Short-Term Memory, LSTM) 等深度學習模型作為分類器,然后用訓練好的模型對網站指紋進行高準確率的識別[5],實現去匿名化。
文獻[6]首次系統地探索了如何利用深度學習算法實現網站指紋分析,提出了堆疊的去噪自編碼器(Stacked Denoising Autoencoder, SDAE) 方案。文章評估了使用SDAE、CNN和LSTM三種深度學習模型時網站指紋分類器的性能,并與使用k-NN的文獻[2]進行了比較。結果發現使用CNN和SDAE模型分類器的方案的識別準確度明顯超過使用k-NN分類器的方案。由于LSTM獨特的遞歸結構,使用LSTM模型的方案受到其輸入單元大小的限制,在精確度上略遜一籌,但也正因如此,其性能隨時間下降是最慢的。此外,使用CNN的方案學習速度最快,在開放世界和較小的封閉世界中表現最好。文獻[6]所提出的SDAE則整體表現良好。
隨著網站指紋分析的發展,一些針對網站指紋分析的防御策略也被提出,使得現有基于網站指紋分析的去匿名化方案失效,研究人員提出了兩種輕量級的防御措施,WTF-PAD[7]和Walkie-Talkie[8]。但是由于帶寬等現實問題,這些防御措施無法真正應用部署到現實世界中。
為了抵抗這些防御措施,文獻[9]提出了一個基于卷積神經網絡CNN的網站指紋分析模型。文獻[9]的準確率優于文獻[2-3, 6]所提出的網站指紋分析方法,在封閉世界的準確率超過98%。在部署了Walkie-Talkie防御系統的Tor匿名通信網絡上,文獻[9]的準確率達到49.7%,在部署了WTF-PAD防御系統的Tor 匿名通信網絡上,文獻[9]的準確率超過90%。實驗結果表明,文獻[9]提出的網站指紋分析方案能夠抵抗現有的去匿名化防御策略。
3.3 流量關聯分析
流量關聯分析與網站指紋分析不同。流量關聯分析是同時觀察、截獲并記錄進入和離開Tor匿名通信網絡,通過對流量特征進行分析,判定入口中繼和出口中繼的流量是否屬于同一用戶,從而確定特定用戶正在訪問哪個網站,通過關聯兩端的流量對Tor實現去匿名化。
傳統的流量關聯分析往往依賴于分析發送方和接收方TCP(Transmission Control Protocol) 的連接流量,而伴隨TCP流量產生的DNS(Domain Name System) 請求則往往被忽略。其中DNS是一個將域名和IP地址相互映射的分數據庫,它使人們更容易訪問互聯網。
文獻[10]認為雖然可以利用TCP流量進行流量關聯分析,但DNS流量為流量關聯分析提供了更多的機會。文獻[10]量化了DNS和TCP流量的公開程度,并證明了無法觀察截獲到TCP流量的時候,仍有很多機會可以觀察并截獲DNS流量,比如谷歌的DNS根服務器。
在能夠觀察到TCP流量的情況下,進一步使用這種額外的DNS流量可能對流量關聯分析的準確性影響不大。但是在無法獲取到TCP流量的情況下,使用DNS流量可以大大提高流量關聯分析的效果。
文獻[10]整合網站指紋分析和流量關聯分析,提出了自己的攻擊模型。首先對入口中繼節點處截獲的流量進行網站指紋分析,然后將匹配的網站與DNS 流量中的網站進行關聯。值得一提的是,文獻[10]所提方案對不太流行的網站有很高的識別準確率,因為這種網站關聯的DNS集往往是這個網站獨有的。
盡管流量關聯分析在針對Tor匿名通信網絡的去匿名化技術中占有很重要的地位,但在大規模應用時需要長時間地觀察和捕獲流量,往往是不切實際的。
文獻[11]認為基于統計算法的流量關聯分析技術無法捕捉到Tor匿名通信網絡中復雜的動態噪聲,所以往往識別的假陽率很高。文獻[11]訓練了一個由兩層卷積和三層全連接層組成的神經網絡模型,實現流量關聯分析。該模型的輸入是數據包之間的延遲和數據包的大小。在訓練完成之后,模型的識別準確率優于當時最先進的流量關聯分析方法。與之前的流量關聯分析方法相比,文獻[11]可以在短時間觀察流量數據的情況下實現高精度的識別。在達到相同精度的情況下,比現有方法的識別速度更快。文獻[11]也提出了可能的防御方向:一是想辦法模糊流量特征;二是設計一個新的中繼器選擇機制來減少從中繼器處截獲流量的機會。
4 分析比較
本章系統比較了現有針對Tor匿名通信網絡的去匿名化技術。
4.1 理論攻擊技術
表1從不同角度比較了現有針對Tor匿名通信網絡的去匿名化技術。第一列是方案,第二列是威脅模型,包括網站指紋分析和流量關聯分析,第三列是攻擊算法是基于機器學習還是深度學習,第四列是使用的去匿名化算法模型,第五列是去匿名化算法模型的輸入特征,最后一列是方案是否能夠抵抗當時的防御策略。
在針對Tor匿名通信網絡的去匿名化技術相關研究中,很多工作采取了網站指紋分析的方法,而另一部分采用了流量關聯分析的方法。網站指紋分析與流量關聯分析有著不同的威脅模型在一定程度上是正交的。網站指紋分析主要是對網站進行分類,通常使用傳統的機器學習算法,如k-NN 算法和SVM 算法。流量關聯分析的重點是將進入與離開Tor網絡的流量關聯起來,以前通常使用基于統計學的算法,多利用深度學習算法。
網站指紋分析需要獲取的信息比流量關聯分析要少。網站指紋分析只需要從入口中繼處提取流量信息就可以進行攻擊。流量關聯分析則必須同時從入口中繼和出口中繼提取流量信息才能夠進行分析。
雖然流量關聯分析的難度更大,但這并不意味著其準確性更高。在最先進的工作中,網站指紋分析比流量相關攻擊更有效。但是,網站指紋分析只能分類出已經訓練過的網站,它不能識別以前沒有訓練過的網站。而流量關聯分析則沒有這種困擾[11]。因為從Tor 網絡離開的流量是不加密的,如果將相關的流量連接起來,就可以識別每一個網站。
4.2 封閉世界和開放世界性能
表2對比了不同方案在開放世界和封閉世界的一些結果,使用了三種評估指標:1) 準確率。即去匿名化地識別準確率;2) 真陽率TPR(true positive rate) ;真陽性樣本數除以所有真實陽性樣本數;3) 假陽率(false positive rate) 。假陽性樣本數除以所有真實陰性樣本數。
封閉世界分析:在同樣的條件下,文獻[6]的去匿名化準確性最低,文獻[9]的準確率為98.3%,優于其他方案。文獻[2-3, 12]在使用了較大規模數據集的情況下,準確率相比使用較小數據集的準確率提高了2%~4%。
開放世界分析:在開放世界中,不僅要根據被監控的網站對流量跟蹤進行分類,還要區分被監控的網站和未監控的網站。開放世界的去匿名化性能可以用TPR和FPR來評估。文獻[9]在TPR和FRR上始終表現最佳,TPR達到95.7%,FPR達到0.7%。文獻[12] 的TPR最差,只有55%,文獻[3]的FPR最差,為8%。
5 未來工作
5.1 提高去匿名化性能
網站指紋識別的準確性很大程度上依賴于所選擇的特征和使用的分類算法。在未來的工作中,一方面,要不斷改進提取指紋特征的方法,盡可能提取能夠更加易于分辨網站的穩定的指紋特征,來應對真實世界中數量龐大的網站和不斷變化的網站內容。另一方面,由于深度學習相對于傳統的機器學習算法展現出了更好的性能,要不斷優化現有的攻擊算法并探索新的基于深度學習的去匿名化方法。
現有針對Tor匿名通信網絡的去匿名化技術使用了不同的模型,可以考慮將這些模型結合在一起。例如,文獻[3]使用RF輸出作為網站的指紋,然后使用k-NN模型進行分類。之后的工作可以先利用深度學習的模型,例如SDAE模型去提取特征,再利用其他深度學習算法進行分類,這樣就能提高攻擊的準確率。除了網站指紋之外,還可以對協議進行分析,得到協議指紋,通過協議指紋去攻擊Tor匿名通信網絡。
5.2 有效防御機制
Tor匿名通信網絡去匿名化的不斷研究對Tor網絡的匿名性構成了威脅,雖然有很多防御機制已經被提出,比如BuFLO[13],Tamaraw[14]等,但它們往往要求高帶寬和高遲延,因此無法真正在現實中部署。WTFPAD和Wilkie-Talkie是輕量級的防御,但是文獻[9]在攻擊WTF-PAD 時已經獲得了90% 的準確率,其對WAlik-Takie的攻擊也表現出很高的準確率。
現有的防御手段大多使用模糊流量特征的方法來應對去匿名化分析,如何做好防御性能與帶寬、延遲等開銷之間的平衡是目前迫切需要解決的問題。因此可以設計一種新的中繼器選擇機制來減少去匿名化分析的機會,這種機制是未來工作中可以研究的方向。
6 結論
本文對Tor去匿名化技術從網站指紋分析和流量關聯分析兩個方面進行了系統的介紹,并進行了一系列的比較。基于深度學習的網站指紋分析的性能往往都優于基于傳統機器學習的網站指紋分析。流量關聯需要必須同時從入口中繼和出口中繼截取流量,比網站指紋分析所需要的信息更多。未來工作可以著重于提高去匿名化性能和開發出有效的防御機制。