◆儲(chǔ)貝林 蘇燕青 張汝嫻 狄宏
(國際關(guān)系學(xué)院 北京 100091)
隨著互聯(lián)網(wǎng)的高速發(fā)展,人們對(duì)于如何在使用網(wǎng)絡(luò)時(shí)保護(hù)個(gè)人隱私,隱匿身份有了更多的需求。許多匿名網(wǎng)絡(luò)體系應(yīng)運(yùn)而生,例如TOR、JAP 等等。然而,高度的匿名化網(wǎng)絡(luò)也為違法犯罪的活動(dòng)提供了溫床。因此,在防止犯罪與刑偵取證方面,如何在匿名網(wǎng)絡(luò)中識(shí)別惡意用戶所訪問的網(wǎng)站就顯得十分必要?!熬W(wǎng)站指紋”這個(gè)概念應(yīng)運(yùn)而生,成為當(dāng)前匿名網(wǎng)絡(luò)中進(jìn)行目標(biāo)網(wǎng)站識(shí)別技術(shù)的研究熱點(diǎn)。
網(wǎng)站指紋這個(gè)名稱是由Hintz 首次提出[1]。但在這之前,類似的技術(shù)就有所應(yīng)用。早在1996 年,Wagner 與Schneier 提出流量分析可以從被加密的SSL 數(shù)據(jù)包中得出某些結(jié)論[2]。1998 年,研究人員成功地在單個(gè)服務(wù)器訪問不同的URL 時(shí),使用流量分析識(shí)別出目標(biāo)URL。
Liberatore 與Levine 在這一領(lǐng)域做出了進(jìn)一步的研究[3]。他們OpenSSH 隧道通訊中網(wǎng)站集合的規(guī)模擴(kuò)大到了2000 個(gè)。并且,在特征分類上,他們采用更為復(fù)雜的數(shù)據(jù)挖掘算法——Jaccard 相似系數(shù)和樸素貝爾斯分類器,取代了Bissias et al.僅使用的矩陣相關(guān)系數(shù)。實(shí)驗(yàn)結(jié)果中,兩種分類算法的識(shí)別率都達(dá)到了令人滿意的70%。
更近的突出研究則是由Herrmann 等人[4]所做的。他對(duì)使用不同匿名技術(shù)的775 個(gè)網(wǎng)站進(jìn)行研究,諸如OpenSSL、OpenVPN、Stunnel、Cisco ⅠPsec-VPN 以及JAP、TOR。通過使用多項(xiàng)樸素貝葉斯分類器,實(shí)驗(yàn)對(duì)單調(diào)系統(tǒng)的識(shí)別率可達(dá)到90%,然而對(duì)JAP 僅20%,對(duì)TOR更只有2.95%。
本文主要參考的是由AndriyPanchenko、Lukas Niessen 和Andreas Zinnen 于2011 年對(duì)基于洋蔥路由的網(wǎng)站指紋技術(shù)做出的研究[5]。他們提出了幾種新的網(wǎng)站數(shù)據(jù)流特征作為網(wǎng)站指紋,并采用了SVM(支持向量機(jī))分類器。通過參數(shù)的調(diào)整后,在4000 個(gè)封閉世界網(wǎng)站數(shù)據(jù)集合中,TOR 目標(biāo)網(wǎng)站識(shí)別正確率可達(dá)到54%。
基于TOR 網(wǎng)站指紋的目標(biāo)網(wǎng)站識(shí)別技術(shù)分為兩大部分:一是對(duì)客戶端與網(wǎng)站服務(wù)器數(shù)據(jù)流的特征進(jìn)行選取,作為用于識(shí)別目標(biāo)網(wǎng)站的指紋特征。接著通過抓包工具獲取大量的數(shù)據(jù)流,從中提取出網(wǎng)站指紋。二是使用機(jī)器學(xué)習(xí)分類算法,將提取到的指紋數(shù)據(jù)作為輸入,經(jīng)過訓(xùn)練后得到分類模型,繼而對(duì)模型識(shí)別路等參數(shù)進(jìn)行評(píng)估。若模型性能表現(xiàn)良好,那么未來抓取到的網(wǎng)站指紋就可以輸入至此模型,得到網(wǎng)站識(shí)別的結(jié)果。
在AndriyPanchenko 等人的研究中,提出了以下的幾種網(wǎng)站指紋特征,經(jīng)試驗(yàn)證明,它們是可行且有效的:
(1)過濾大小小于52 的數(shù)據(jù)包
由于TOR 中鏈路動(dòng)態(tài)變化,客戶端與不同中繼節(jié)點(diǎn)的通訊會(huì)產(chǎn)生數(shù)據(jù)流,從而影響有限數(shù)據(jù)的收集。因此采取過濾掉大小小于52的數(shù)據(jù)包。
(2)數(shù)據(jù)包方向與大小
數(shù)據(jù)包的大小與方向?qū)儆陔p方通訊中基本的流量特征。其中,客戶端發(fā)送給服務(wù)器端的數(shù)據(jù)包標(biāo)記為正(+),服務(wù)器端發(fā)送給客戶端的數(shù)據(jù)包被標(biāo)記為負(fù)(-)。
(3)總傳輸字節(jié)數(shù)
上述的數(shù)據(jù)包大小標(biāo)記已經(jīng)將雙方通訊的數(shù)據(jù)流詳細(xì)地記錄下來。我們將其中的數(shù)據(jù)包總字節(jié)數(shù)進(jìn)行求和,得到一個(gè)新的指紋特征。其中正向數(shù)據(jù)包總字節(jié)數(shù)記為TS+,負(fù)向數(shù)據(jù)包總字節(jié)數(shù)記為TS-。
(4)數(shù)據(jù)包總個(gè)數(shù)
總個(gè)數(shù)表征整個(gè)通訊過程中不同方向數(shù)據(jù)包的數(shù)量總和。同樣將其作為數(shù)據(jù)包總體特征之一。其中,正向數(shù)據(jù)包總數(shù)記為NP+,負(fù)向數(shù)據(jù)包記為NP-。
(5)數(shù)據(jù)包種類數(shù)
在請(qǐng)求站點(diǎn)的過程中,因目的與操作不同,數(shù)據(jù)包間必然存在不同種類。由于數(shù)據(jù)包都采用加密,無法按內(nèi)容形式對(duì)數(shù)據(jù)包進(jìn)行分類,故直接使用數(shù)據(jù)包的大小不同作為區(qū)別不同數(shù)據(jù)包的依據(jù)。其中,正向數(shù)據(jù)包種類數(shù)記為OP+,負(fù)向數(shù)據(jù)包種類數(shù)記為OP-。
(6)進(jìn)出數(shù)據(jù)包比例數(shù)
即為正向數(shù)據(jù)包總數(shù)(NP+)數(shù)據(jù)包總數(shù)除以負(fù)向數(shù)據(jù)包總數(shù)(NP-)。
以上即為進(jìn)行網(wǎng)站指紋信息提取的參考參數(shù),本文也將基于上述特征進(jìn)行網(wǎng)站指紋的提取。
在進(jìn)行指紋提取之前,關(guān)閉系統(tǒng)中一切無關(guān)應(yīng)用與系統(tǒng)服務(wù)。打開TOR 瀏覽器,待連接至TOR 后,即可進(jìn)行數(shù)據(jù)流提取工作。
TOR 成功連接后,便可打開抓包軟件等待收集數(shù)據(jù)包信息。每當(dāng)一個(gè)待采集網(wǎng)站完全加載后,應(yīng)立即停止抓包,防止無關(guān)數(shù)據(jù)流的干擾。采集完成后,便可以將抓包信息導(dǎo)出至目標(biāo)位置,等待指紋信息的提取。
對(duì)每個(gè)網(wǎng)站進(jìn)行多次指紋采集后,就形成了各個(gè)網(wǎng)站的訓(xùn)練集。將網(wǎng)絡(luò)指紋特征作為分類特征,具體的網(wǎng)站名作為分類項(xiàng)目,輸入進(jìn)機(jī)器學(xué)習(xí)算法的輸入端中,就可以得到基于網(wǎng)站指紋信息的網(wǎng)站分類器。之后便可以使用交叉驗(yàn)證或真實(shí)采集的網(wǎng)站指紋進(jìn)行驗(yàn)證,測試分類器性能。
實(shí)驗(yàn)數(shù)據(jù)集采用Alexa’s TOP RANK 100 這一百個(gè)訪問量最大的網(wǎng)站作為攻擊者感興趣的網(wǎng)站。將實(shí)驗(yàn)分為四組,從Alexa’s TOP RANK 100 中任意挑選40 個(gè)網(wǎng)站作為測試集。在三個(gè)不同的時(shí)間,對(duì)測試集網(wǎng)站進(jìn)行數(shù)據(jù)抓取,并分別放入三個(gè)實(shí)驗(yàn)組中。每個(gè)網(wǎng)站訪問100 次,從而獲得100 條數(shù)據(jù)流信息,每組總計(jì)4000 條。第四組將前面三組的數(shù)據(jù)合并處理。接著再分別對(duì)每組進(jìn)行指紋特征提取,并利用機(jī)器學(xué)習(xí)算法建立分類器,最后綜合四組的識(shí)別率以評(píng)價(jià)算法的優(yōu)劣。
由于數(shù)據(jù)量巨大且在國內(nèi)訪問TOR 速度極低,十分影響測量效率與效果。因此,本文直接使用T.Wang 與Ⅰ.Goldberg 于2013 年采集的TOR 網(wǎng)站數(shù)據(jù)流。其中,共有三個(gè)文件夾,分別是對(duì)Alexa’s TOP RANK 100 中任意挑選出的40 個(gè)網(wǎng)站采集的指紋信息,且每個(gè)網(wǎng)站都提取100 次。數(shù)據(jù)流都以帶符號(hào)整數(shù)表征,采取以600 字節(jié)為增量進(jìn)行聚類,存儲(chǔ)在TXT 文檔中。因此,每個(gè)文件夾中有4000 個(gè)TXT文件,且都已x_y 進(jìn)行命名(x 代表網(wǎng)站編號(hào),y 代表采集次序。1<=x<=40,1<=y<=100)。文件夾形式與單個(gè)文件內(nèi)容如圖1:
圖1 指紋信息文件格式
在獲取了各網(wǎng)站數(shù)據(jù)流信息后,便可以著手進(jìn)行網(wǎng)站指紋的提取。編寫Python 腳本data_process.py,以文件夾為單位,進(jìn)行網(wǎng)站指紋提取。將指紋信息與對(duì)應(yīng)的網(wǎng)站編號(hào)存入EXCEL 文檔,四個(gè)文件夾共得到四個(gè)含有網(wǎng)站指紋信息的EXCEL 文檔,分別命名為fingerprinting0.xls 、 fingerprinting1.xls 、 fingerprinting2.xls 、fingerprinting3.xls。data_process.py 與fingerprinting 文檔如圖2 所示:
圖2 指紋信息提取與處理
本文數(shù)據(jù)分析采用WEKA 軟件進(jìn)行。WEKA(Waikato Environment for Knowledge Analysis)是由Java 語言開發(fā)的被廣泛應(yīng)用于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的開源軟件。
WEKA 中數(shù)據(jù)文件的后綴為ARFF。ARFF 文件格式是WEKA專用的一種文件格式,此格式的文件是一種ASCⅠⅠ文本文件,描述共享一組屬性結(jié)構(gòu)的實(shí)例列表,由獨(dú)立無序的實(shí)例組成,是WEKA表示數(shù)據(jù)集的標(biāo)準(zhǔn)方法,ARFF 不涉及實(shí)例之間的關(guān)系。如圖3 所示。
將采集到的四個(gè)EXCEL 格式的指紋信息拷貝進(jìn)TXT 文件中,將TS、OP、PP、NP 設(shè)置為屬性,網(wǎng)站編號(hào)設(shè)為分類屬性,數(shù)據(jù)部分按ARFF 規(guī)范進(jìn)行處理。完成后將TXT 文件的后綴名改為ARFF,即完成了ARFF 文件的轉(zhuǎn)換。
最后,以相同的算法對(duì)四組訓(xùn)練集分別進(jìn)行模型訓(xùn)練,并采用十折交叉驗(yàn)證的方式(即前三組訓(xùn)練集3600,測試集400;最后一組訓(xùn)練集10800,測試集1200)檢測模型識(shí)別率。接著,按以上方法,但使用不同的機(jī)器學(xué)習(xí)算法進(jìn)行訓(xùn)練,從而比較不同算法的識(shí)別率。
在經(jīng)過一系列的模型選擇與參數(shù)調(diào)整后,實(shí)驗(yàn)結(jié)果如表1 所示。
圖3 ARFF 文件格式
表1 各類算法識(shí)別率比較
正如表1 所示,SVM 在向量分類上具有很健壯的性能,其識(shí)別率在四個(gè)數(shù)據(jù)集中表現(xiàn)十分穩(wěn)定,都達(dá)到了約54%左右的識(shí)別率。
相比而言,基于決策樹的分類算法的穩(wěn)定性較差,采用相同算法的情況下,數(shù)據(jù)集之間的性能差異最高可達(dá)12%。而基于決策樹的分類算法,雖減少了因調(diào)參的復(fù)雜工作,且運(yùn)行速度較快,但其不穩(wěn)定識(shí)別率表現(xiàn)讓它不能成為基于網(wǎng)站指紋的網(wǎng)站識(shí)別的可靠分類器。
本文基于當(dāng)前互聯(lián)網(wǎng)迅速發(fā)展,人們對(duì)通信隱私的需求日益增多的背景下對(duì)當(dāng)前主流匿名通信系統(tǒng)Tor 展開研究。最后,得出以下結(jié)論:
使用SVM 進(jìn)行網(wǎng)站指紋分類被證明切實(shí)有效的,TOR 網(wǎng)絡(luò)并不能有效地抵抗流量分析。然而,真實(shí)的網(wǎng)絡(luò)情況并不像實(shí)驗(yàn)環(huán)境那樣理想。真實(shí)情況下,攻擊者處于用戶與入口節(jié)點(diǎn)之間,其中存在著許多不相關(guān)的冗余流量,影響數(shù)據(jù)包收集的效果。其次,真實(shí)環(huán)境下,用戶訪問目標(biāo)網(wǎng)站的時(shí)間是隨機(jī)的,攻擊者很難保證避免數(shù)據(jù)切換的發(fā)生,這一過程中必然導(dǎo)致用戶與守衛(wèi)節(jié)點(diǎn)間通訊產(chǎn)生的數(shù)據(jù)包干擾。因此,攻擊者要想保證自己指紋庫的更新,必須以較高的頻率對(duì)更新過的網(wǎng)站進(jìn)行指紋提取與訓(xùn)練。這對(duì)于攻擊者來說,是十分巨量的工作,這在現(xiàn)實(shí)生活中也是難以做到的。
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2020年7期