張道維,段海新
(清華大學網(wǎng)絡(luò)與信息安全實驗室,北京 100084)
(?通信作者電子郵箱zhangdaowei2018@gmail.com)
Tor(The onion router)是當前規(guī)模最大、使用最廣泛的低延遲匿名通信網(wǎng)絡(luò)。數(shù)百萬的用戶每天通過Tor 來匿名訪問網(wǎng)站,從而來隱蔽自己的網(wǎng)絡(luò)活動。Tor一方面使用多層的傳輸層安全(Transport Layer Security,TLS)協(xié)議進行數(shù)據(jù)加密;另一方面使用重路由技術(shù)進行路由轉(zhuǎn)發(fā)策略來達到匿名的目的。由于Tor 匿名網(wǎng)絡(luò)中存在大量非法活動,因此對于Tor 的去匿名化研究一直是國內(nèi)外的研究熱點。早期的研究方向主要集中在針對Tor 匿名流量的識別上。何高峰等[1]在2013 年提出了基于TLS 報文長度分布的識別方法,并取得了90%以上的準確率。為了應(yīng)對此類網(wǎng)絡(luò)審查,各種隱蔽的接入技術(shù)相繼被提出,其中Meek通道技術(shù)因其具有較高的隱蔽性而被廣泛使用。何永忠等[2]在此基礎(chǔ)上提出了針對Meek 混淆技術(shù)的識別方法,同樣能夠取得90%的識別準確率。
近些年來的研究表明,還存在一系列側(cè)信道攻擊技術(shù)使得攻擊者能夠通過分析Tor 的匿名流量從而推斷出用戶具體的網(wǎng)絡(luò)行為,其中最具代表性的攻擊方式為網(wǎng)站指紋攻擊(Website Fingerprinting Attack),其核心思想在于:對于不同的網(wǎng)站,其網(wǎng)頁內(nèi)容都大不相同(如網(wǎng)頁代碼、圖片、腳本、樣式表等),因此盡管通信內(nèi)容加密,瀏覽器在加載網(wǎng)頁時產(chǎn)生的匿名流量元數(shù)據(jù)也不盡相同。攻擊者首先通過對每一個網(wǎng)站都建立獨特的指紋模型,并根據(jù)這些指紋特征訓練出合適的分類器;之后便可以采集用戶的訪問流量,并使用該分類器進行流量的分類,從而定位出用戶訪問的具體是哪些網(wǎng)站。
在網(wǎng)站指紋攻擊的場景下,攻擊者只能對網(wǎng)絡(luò)流量進行本地、被動的監(jiān)聽。這里“本地”表示的是攻擊者控制了用戶與Tor 入口節(jié)點之間鏈路上的任意節(jié)點,包括路由器、局域網(wǎng)管理權(quán)限、互聯(lián)網(wǎng)服務(wù)提供商(Internet Service Provider,ISP)、自治系統(tǒng)(Autonomous System,AS)甚至可以是惡意的入口節(jié)點;“被動”指的是攻擊者可以記錄用戶所有的通信流量,但是不能篡改、延遲或丟棄任何數(shù)據(jù)包。當然攻擊者也無法解密通信流量,否則就能通過數(shù)據(jù)包內(nèi)容輕易得知用戶訪問的目標站點了。

圖1 網(wǎng)站指紋攻擊威脅模型Fig.1 Threat model of website fingerprinting attack
網(wǎng)站指紋攻擊通常在兩種場景下進行評估,即封閉世界(closed-world)和開放世界(open-world)。在封閉世界場景下,用戶被限定只能訪問有限集合里的網(wǎng)站。通常網(wǎng)站集合規(guī)模較小,攻擊者有能力對每個網(wǎng)站都收集足夠的流量數(shù)據(jù)進行網(wǎng)站指紋分類器的訓練。然而一些研究[3-4]認為該場景是不符合實際情況的,因為攻擊者無法確認用戶可能訪問的網(wǎng)站集合,同時當網(wǎng)站集合規(guī)模較大時,為每一個網(wǎng)站都建立單獨的指紋特征模型是不現(xiàn)實的。因此后續(xù)的研究中又提出了更加貼近真實環(huán)境的開放世界。在開放世界場景下,用戶可以訪問任意網(wǎng)站,而攻擊者的目的是判斷用戶訪問的網(wǎng)站是否在自己的監(jiān)控列表范圍內(nèi)。
在2009 年,Herrmann 等[5]首次將網(wǎng)站指紋技術(shù)應(yīng)用在Tor匿名網(wǎng)絡(luò)中,將數(shù)據(jù)包長度的頻率分布作為網(wǎng)站指紋特征并使用樸素貝葉斯作為分類器,然而最終準確率只有3%。Panchenko 等[6]在相同數(shù)據(jù)集上,通過引入流量的獨特突發(fā)性(burstiness)這一新特征并結(jié)合支持向量機(Support Vector Machine,SVM)進行網(wǎng)站指紋分類,將準確率提升至55%。Wang 等[7]提取了超過3 000 維特征向量來進行網(wǎng)站指紋建模,并使用基于加權(quán)的距離度量指標和K最近鄰(K-Nearest Neighbor,KNN)分類器來衡量網(wǎng)站指紋的相似度,最終取得91%的準確率。
在此之后,各種網(wǎng)站指紋技術(shù)相繼被提出并保持較高的分類準確率。本文將著重介紹其中4 種效果最出色的先進方法,并在后續(xù)實驗中重新進行評估。
1)CUMUL(CUMULation)。Panchenko 等[8]基于累積包大小這一新特征提出了CUMUL 技術(shù)。該方法將通信流量視作時序序列,其中出口方向數(shù)據(jù)包大小為正數(shù),而入口方向數(shù)據(jù)包大小為負數(shù)。累積包特征的第1 個值是該時序序列第1 個數(shù)據(jù)包的大小,而第i個值是坐標i-1的值與第i個數(shù)據(jù)包大小的和,以此類推。由于CUMUL使用以高斯徑向基函數(shù)為核函數(shù)的SVM 分類器,需要輸入數(shù)據(jù)的特征維度保持相同,因此CUMUL通過對累積包特征插值100個點從而得到100個特征值。再加上入口/出口方向的數(shù)據(jù)包總數(shù)量和總字節(jié)大小,最終共有104 個維度的特征。在100 個網(wǎng)站構(gòu)成的封閉世界中,CUMUL達到91%的準確率;而在網(wǎng)站數(shù)量為9 000的開放世界中,CUMUL 方法的真陽性率(True Positive Rate,TPR)為96%,假陽性率(False Positive Rate,F(xiàn)PR)為1.98%。
2)k-FP(k-FingerPrinting)。Hayes 等[9]從高達4 000 維的特征中選取了其中最重要的150 個作為描述網(wǎng)站指紋的特征,并結(jié)合隨機森林分類器進行網(wǎng)站指紋攻擊。在55 個網(wǎng)站構(gòu)成的封閉世界中,k-FP 可以獲得91%的準確率;而對于開放世界問題,k-FP 將隨機森林的葉子節(jié)點構(gòu)造成新特征作為KNN分類器的輸入,最終得到88%的TPR和0.5%的FPR。
3)AWF(Automated Website Fingerprinting)。Rimmer等[10]首次將深度學習方法應(yīng)用在網(wǎng)站指紋攻擊中。AWF 將網(wǎng)站的每條訪問實例都表示成由±1組成的時序序列,其中的符號表示數(shù)據(jù)包的方向,即出口方向的數(shù)據(jù)包為+1,而入口方向的數(shù)據(jù)包為-1。同時使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)作為分類器進行網(wǎng)站指紋攻擊。AWF利用深度學習自主特征學習的優(yōu)勢,避免了如CUMUL和k-FP方法所需的特征工程步驟。在100 個網(wǎng)站構(gòu)成的封閉世界中,并且在每個網(wǎng)站都具有2 500 條訪問實例時,AWF 可以達到96.3%的分類準確率;而在開放世界場景下,AWF 可以獲得70.9%的TPR和3.8%的FPR。
4)DF(Deep Fingerprinting)。Sirinam 等[11]在AWF 的基礎(chǔ)上設(shè)計了更復雜的CNN 模型,該網(wǎng)絡(luò)具有更深的結(jié)構(gòu)同時引入了更多的卷積層以及批規(guī)范化(Batch Normalization,BN)。DF 使用與AWF 相同的±1 時序序列作為模型輸入,在由95 個網(wǎng)站構(gòu)成的封閉世界中,DF 能夠取得98.3%的分類準確率,高于CUMUL、k-FP 和AWF 這3 種方法;而在世界大小為20 000 的開放世界中,DF 能夠取得95.7%的TPR 和0.7%的FPR。
以上研究表明,深度學習在網(wǎng)站指紋領(lǐng)域中具有極大的潛力。深度學習算法無需對輸入數(shù)據(jù)進行繁雜的特征工程,而能夠自主地從大量原始數(shù)據(jù)中挖掘相關(guān)的抽象特征。相較于傳統(tǒng)機器學習算法,基于深度學習的網(wǎng)站指紋模型具有更高的分類準確率。然而文獻[10-11]僅使用“數(shù)據(jù)包方向”作為卷積神經(jīng)網(wǎng)絡(luò)模型的輸入,相較于原始的匿名流量數(shù)據(jù)無疑丟失了部分信息。
在此基礎(chǔ)上,本文提出了全新的基于圖像紋理和深度卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)站指紋技術(shù)Image-FP(Image FingerPrinting)。Image-FP 通過將匿名通信流量映射成RGB(Red-Green-Blue)彩色圖的形式,從而保留了最完整的原始信息。之后再利用殘差網(wǎng)絡(luò)(Residual Networks,ResNet)在圖像分類上的優(yōu)勢,構(gòu)造出能夠自主特征學習的網(wǎng)站指紋分類模型。相較于過往的網(wǎng)站指紋技術(shù),Image-FP 在封閉世界和開放世界場景下均取得了最優(yōu)的效果。
使用10 臺基于OpenStack 的虛擬云服務(wù)器作為匿名流量采集的設(shè)備,其中每臺服務(wù)器分別擁有1 個CPU 和2 GB 的內(nèi)存空間。使用tor-browser-crawler 開源程序來驅(qū)動Tor 瀏覽器(版本8.5.4)訪問網(wǎng)站。相較于wget 或curl 等工具,使用Tor瀏覽器能夠更加真實地模擬用戶的瀏覽行為。此外,Tor瀏覽器同時也是Tor 官方推薦的接入Tor 網(wǎng)絡(luò)的方法,在具備簡易的操作性的同時,也保證高度的匿名性。
使用輪替策略(round-robin)來進行數(shù)據(jù)的采集。假設(shè)封閉世界集合中包含50 個網(wǎng)站,則在每一批次的流程中,都會對每一個網(wǎng)站連續(xù)訪問25 次,之后再進行下一網(wǎng)站的訪問,總共進行5 個批次的采集。每個網(wǎng)站都有300 s 的時間去完全加載其頁面上的內(nèi)容,若加載完成后會在該頁面停留10 s。之后便會關(guān)閉Tor 瀏覽器進程并清除所有配置文件信息。使用tcpdump 程序去捕獲每個Tor 進程的流量數(shù)據(jù),同時過濾掉那些不屬于用戶與Tor 入口節(jié)點之間的通信流量。本文會保留每條訪問實例的完整數(shù)據(jù)包,也即是說,每條訪問實例都會以1 個pcap 包進行表示。整個數(shù)據(jù)集的采集流程持續(xù)2星期。
此外,對Tor 程序的配置文件進行了部分改動。將其中的MaxCircuitDirtiness 字段從原來的600 s 增加至600 000 s,使得通信鏈路不會每10 min 就進行重新構(gòu)建,從而保證了數(shù)據(jù)采集的穩(wěn)定性。在每一批次的流程結(jié)束后,會關(guān)閉舊的鏈路并重新建立新的鏈路,避免對該鏈路節(jié)點造成過大的負載壓力。另外,將UseEntryGuard 字段設(shè)置為0,從而避免在數(shù)據(jù)采集過程中只使用3 個固定的入口節(jié)點,同時也可以給數(shù)據(jù)集帶來更多樣的變化,增加分類器模型的泛化性。
由于沒有權(quán)威的數(shù)據(jù)顯示Tor 用戶訪問哪些網(wǎng)站的頻率更高,而且對于敏感網(wǎng)站的定義每個地區(qū)也都不同,同時本文的目的主要在于比較不同網(wǎng)站指紋攻擊方法的性能優(yōu)劣,因此對于具體網(wǎng)站的選擇并不會有太大影響。基于上述原因,選擇Alexa服務(wù)中的網(wǎng)站作為數(shù)據(jù)集中的網(wǎng)站列表。Alexa網(wǎng)站排名根據(jù)流量數(shù)據(jù)來評估網(wǎng)站的受歡迎度,在學術(shù)界中使用非常廣泛,同時也多次應(yīng)用在與Tor的相關(guān)研究中。
1.2.1 封閉世界
選擇Alexa 排名前50 的網(wǎng)站來組成封閉世界數(shù)據(jù)集。每臺設(shè)備都會訪問各網(wǎng)站125 次,因此每個網(wǎng)站都會有1 250 條訪問實例,即數(shù)據(jù)集中總共包含62 500 條流量數(shù)據(jù)。而在具體域名的選擇上,遵從以下3個要點:
1)對于域名相同而僅僅是頂級域不同的網(wǎng)站,只保留其中一個。例如Google搜索頁面根據(jù)地理位置(國家)的不同存在許多不同的站點:google.com(通用)、google.de(德國)、google.co.jp(日本)等。這些網(wǎng)站在內(nèi)容上相似,而且如果審查者的目的是封鎖Google 搜索引擎的流量,也無需具體區(qū)分這些網(wǎng)站。
2)對于上述二級域重復的網(wǎng)站,選擇保留使用國家頂級域的網(wǎng)站,即google.de 而不是google.com。由于Google 搜索網(wǎng)站會根據(jù)用戶地理位置的不同跳轉(zhuǎn)到相對應(yīng)的版本,也就是說,如果處在德國的用戶訪問google.com 就會被重新導向至google.de。而Tor 在建立匿名鏈路時的出口節(jié)點是隨機的,所以如果使用google.com 會導致實際上每次訪問的網(wǎng)站不同,導致網(wǎng)站內(nèi)容的不一致性。使用固定國家頂級域的網(wǎng)址則可以避免此現(xiàn)象。
3)對于域名不同但是網(wǎng)站內(nèi)容相同的網(wǎng)址,也只保留其中一個,如blogger.com和blogspot.com。
1.2.2 開放世界
開放世界的網(wǎng)站集合由監(jiān)控網(wǎng)站和非監(jiān)控網(wǎng)站兩部分組成。對于監(jiān)控網(wǎng)站的部分,使用封閉世界的數(shù)據(jù)集。
而在非監(jiān)控網(wǎng)站的部分,選擇Alexa 排名前60 000 的網(wǎng)站,并去掉封閉世界數(shù)據(jù)集中包含的網(wǎng)址。使用相同的10 臺設(shè)備進行流量數(shù)據(jù)的采集,但是與封閉世界方法不同的是:由于這些非監(jiān)控網(wǎng)站是作為背景流量,因此對于這些網(wǎng)站只進行1 次訪問。每臺設(shè)備都會按照順序依次訪問6 000 個網(wǎng)站,同時對每個網(wǎng)站頁面都進行快照。通過將那些頁面空白、訪問失敗或超時錯誤的訪問實例移除后,最終獲得50 000 條非監(jiān)控網(wǎng)站的流量數(shù)據(jù)集。因此,開放世界數(shù)據(jù)集中一共包含112 500條訪問實例。
將網(wǎng)站的每1 個訪問實例都保存為1 個pcap 包。由于這些pcap 包中的流量都是加密的,因此不再試圖從這些加密流量中提取指紋特征,而是進一步直接將pcap 包視作二進制文件。
對于二進制文件,其中的每個字節(jié)范圍都在00 和FF 之間,剛好對應(yīng)灰度圖的1 個像素點(灰度圖的像素取值范圍為0~255,其中0 為黑色,255 為白色)。因此二進制文件可以按此方法映射為1 張灰度圖。這種二進制文件圖像化的方法首次由Nataraj 等[12]提出,通過該技術(shù)將惡意代碼樣本以灰度圖的形式展現(xiàn)出來,并利用圖像中的紋理特征對惡意代碼家族進行聚類。
在此基礎(chǔ)上,Image-FP使用類似的圖像化技術(shù),進一步將pcap 包映射成RGB 彩色圖的形式。對于二進制文件,其中連續(xù)的3 個字節(jié)都可以分別對應(yīng)于RGB 圖像中的3 個通道,即第1 個字節(jié)對應(yīng)R 通道的值,第2 個字節(jié)對應(yīng)于G 通道的值,而第3個字節(jié)對應(yīng)于B通道的值。換句話說,每3個字節(jié)都對應(yīng)RGB圖像中的一個像素,若最末端數(shù)據(jù)不足3個像素,則不足的部分用FF 值進行填充。假設(shè)有1 個十六進制串為05 B1 29 43 CA 7E 9F FD,那么按照每3個字節(jié)為1組,可以得到(05,B1,29),(43,CA,7E),(9F,F(xiàn)D,F(xiàn)F),再使用如下公式將每一組值轉(zhuǎn)換為R、G、B的3個通道的值:

因此最終每個像素點為(5,177,29),(43,202,126),(159,253,255)。之后,將得到的像素點按照三維矩陣“長度×寬度×3”的方式進行排列,便可以得到1張RGB彩色圖。這里需要特別說明的是,由于數(shù)據(jù)集中pcap 包大小普遍大于1 000 KB,為了能夠最大限度地保留所有信息,因此選擇使用RGB圖像而不是灰度圖像,同時將長度和寬度都設(shè)定為1 024個像素。此外,會去除pcap包頭前434個字節(jié),因為這部分是所有pcap包含的相同頭部數(shù)據(jù)。
圖2 展示了Google 和Youtube 兩個不同網(wǎng)站的訪問實例圖像化后的RGB 彩色圖。由圖2 可以看出,兩者的圖像紋理有些許的不同,同時Google 樣本的圖像底部有3 條明顯的黑色條紋,表明兩者之間的圖像紋理確實存在差異性,因此可以將這種圖像紋理作為網(wǎng)站指紋特征進一步去進行分類判斷。

圖2 兩種不同網(wǎng)站訪問實例RGB圖像化紋理對比Fig.2 Comparison of RGB image textures from two different website visiting instances
由于網(wǎng)站指紋特征是以RGB 圖像進行表示的,而卷積神經(jīng)網(wǎng)絡(luò)在圖像分類問題上具有天然的優(yōu)勢,因此采用深層卷積神經(jīng)網(wǎng)絡(luò)作為Image-FP 的分類模型。通過初步實驗結(jié)果發(fā)現(xiàn),相較于VGG 網(wǎng)絡(luò)或Inception 網(wǎng)絡(luò),ResNet 更能夠從圖像紋理中學習到特征模式進行分類。
ResNet 由He 等[13]提出,并在2015 年的ImageNet 大規(guī)模視覺識別挑戰(zhàn)競賽(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)中獲得第一名,同時模型的整體參數(shù)量相較于VGG網(wǎng)絡(luò)更少,性能更加優(yōu)異。
根據(jù)以往的經(jīng)驗,神經(jīng)網(wǎng)絡(luò)模型的結(jié)構(gòu)越深,理論上模型的擬合性能會越好。然而在研究中發(fā)現(xiàn),網(wǎng)絡(luò)深度增加到某一程度后,其準確度會出現(xiàn)飽和的現(xiàn)象,甚至于開始下降,這就是退化問題(degradation problem)。
ResNet 通過引入跨層連接技術(shù),并加入了使用短路連接(shortcut connections)機制的殘差塊(residual block),很好地解決了退化問題。
圖3 展示了殘差塊的其中一種結(jié)構(gòu),可以看到殘差塊主要由兩個權(quán)重層(weight layer)和兩個激活層(relu)交替組成。假設(shè)殘差塊的輸入為x,而結(jié)構(gòu)中間的權(quán)重層待學習的部分為殘差F(x),則整個殘差塊的輸出就由原始輸入x及殘差F(x)相加而成,即F(x) +x。這種短路設(shè)計使得就算權(quán)重層并沒有學習到有用的相關(guān)特征(即F(x)=0),網(wǎng)絡(luò)也能保持原來的性能而不會進一步降低。而實際情況是殘差并不會真的為0,也就是說ResNet 能夠通過不斷堆疊殘差塊來增加網(wǎng)絡(luò)深度的同時,進而提升模型的擬合性能。

圖3 殘差塊結(jié)構(gòu)Fig.3 Structure of residual block
根據(jù)數(shù)據(jù)集規(guī)模選擇了50 層的ResNet 網(wǎng)絡(luò),圖4 展示了網(wǎng)絡(luò)的具體結(jié)構(gòu)。RenNet50 網(wǎng)絡(luò)主要由兩種結(jié)構(gòu)塊(conv_block 和identity_block)交替堆疊組成。兩種結(jié)構(gòu)塊左半部分相同,由三組的卷積層(Conv 3× 3)、批規(guī)范化層(Batch Normalization)和激活層(Activation)組成。唯一不同之處在于右半部分的短路連接,conv_block 在直接連接的基礎(chǔ)上加入了卷積層(Conv 1× 1)和批規(guī)范化層(Batch Normalization)。同時ResNet 使用了全局平均池化(Average Pool)代替了全連接層,降低模型參數(shù)量的同時還能進一步提升網(wǎng)絡(luò)的性能。

圖4 Image-FP采用的ResNet50結(jié)構(gòu)Fig.4 Structure of ResNet50 used in Image-FP
Image-FP 保持ResNet50 模型中默認的部分超參數(shù),但是其中的權(quán)重參數(shù)會進行重新訓練。選擇Adamax 作為模型的優(yōu)化算法,并將其學習率設(shè)置為2 × 10-3。Adamax 是一種適應(yīng)性矩估計的隨機目標函數(shù)梯度優(yōu)化算法,它通過對梯度的一階矩估計(first moment estimation)和二階矩估計(second moment estimation)進行綜合考慮,從而計算出更新步長。Adamax 具有計算高效和內(nèi)存需求少等特點而適用于大量參數(shù)的神經(jīng)網(wǎng)絡(luò)模型中,同時也能有效解決梯度稀疏或梯度存在高噪聲的問題。最終模型選擇如表1所示。
需要注意的是,ResNet 接收的輸入維度為224 × 224,因此會將原始1024 × 1024的RGB 圖像等比例縮放至該大小以滿足神經(jīng)網(wǎng)絡(luò)的輸入條件。

表1 Image-FP模型參數(shù)選擇Tab.1 Model parameter selection of Image-FP
此外,Image-FP 使用50 層的卷積神經(jīng)網(wǎng)絡(luò),遠遠大于其余兩種基于深度學習方法的DF 和AWF 網(wǎng)站指紋技術(shù),其卷積神經(jīng)網(wǎng)絡(luò)模型深度只有不到10 層。因此實驗結(jié)果也能表明神經(jīng)網(wǎng)絡(luò)模型的深度對于網(wǎng)站指紋攻擊的性能影響。
對于CUMUL、k-FP、AWF、DF 和Image-FP 這5 種網(wǎng)站指紋技術(shù),都使用Python(版本3.6)進行實現(xiàn)。其中:k-FP 基于Python 的機器學習庫scikit-learn;深度學習模型(AWF、DF 和Image-FP)基于Python 的深度學習庫來搭建,以Keras 為前端、Tensorflow作為后端;而CUMUL則是基于LibSVM開源工具。
所有網(wǎng)站指紋模型都是在8 核16 線程的CPU 上進行模型的訓練和測試。對于深度學習模型,由于神經(jīng)網(wǎng)絡(luò)具有天然的并行計算的優(yōu)勢,因此使用顯存8 GB 的NVIDIA RTX 2070顯卡進行GPU加速。
封閉世界和開放世界的數(shù)據(jù)集都會分成訓練集和測試集兩部分,其中:訓練集包含80%的數(shù)據(jù)用于網(wǎng)站指紋分類器的訓練,其余20%為測試集用來評估分類器的性能。同時對于每一種網(wǎng)站指紋技術(shù),都會用10 折交叉驗證來計算平均的結(jié)果。
此外,對于AWF 和DF 這兩種網(wǎng)站指紋技術(shù),相較于文獻[10-11]只使用±1的數(shù)據(jù)包方向作為神經(jīng)網(wǎng)絡(luò)模型的輸入,發(fā)現(xiàn)使用包含數(shù)據(jù)包大小的時序序列±PacketSize對于網(wǎng)站指紋攻擊的效果提升明顯,因此后續(xù)實驗將使用±PacketSize作為AWF和DF兩種模型的輸入。
封閉世界數(shù)據(jù)集由50 個網(wǎng)站構(gòu)成,其中每個網(wǎng)站有1 250 條訪問實例。按照訓練集∶測試集=8∶2 的原則,則對于每一個網(wǎng)站類別都有1 000 條的數(shù)據(jù)用于分類器訓練,其余250條數(shù)據(jù)作為測試集。
實驗結(jié)果如表2 所示,其中,Image-FP 的網(wǎng)站指紋準確率在所有前沿的攻擊方法中準確率是最高的,達到97.2%,相較于其余兩種基于深度學習的方法DF 和AWF,其準確率分別提高了0.4和1.3個百分點。實驗結(jié)果表明,本文提出的基于圖像紋理的網(wǎng)站指紋技術(shù)確實能夠從原始的流量數(shù)據(jù)中學習到更多相關(guān)的抽象特征。同時,也可以發(fā)現(xiàn),基于深度學習模型的網(wǎng)站指紋技術(shù)明顯優(yōu)于使用傳統(tǒng)機器學習的方法(CUMUL 和k-FP),在準確率上平均高出4 個百分點,一定程度上表明卷積神經(jīng)網(wǎng)絡(luò)的自適應(yīng)特征學習在網(wǎng)站指紋攻擊上具備一定優(yōu)勢。

表2 網(wǎng)站指紋技術(shù)在封閉世界場景下的準確率 單位:%Tab.2 Accuracies of website fingerprinting techniques in closed-world scenario unit:%
進一步對Image-FP 模型的收斂情況進行評估,也就是說:網(wǎng)絡(luò)模型需要訓練多久才能夠從數(shù)據(jù)中學習到相關(guān)的特征模式。通常神經(jīng)網(wǎng)絡(luò)隨著訓練輪次的增加,模型的性能也會越來越好,但是也有可能會使模型陷入過擬合的情況,因此訓練輪次對于模型的性能也有至關(guān)重要的影響。圖5 給出了Image-FP隨著訓練輪次增加在訓練集和測試集上的性能。

圖5 Image-FP在訓練集和測試集上的性能Fig.5 Performance of Image-FP on training set and testing set
由圖5可以看到,在訓練10輪左右,Image-FP已經(jīng)可以達到接近95%的準確率;隨著訓練輪次的不斷增加,Image-FP在40~50 輪可以在測試集上取得最好的效果;而當訓練輪次接近50輪時,Image-FP 在訓練集上的損失值已經(jīng)接近于0,不過在測試集上的準確率沒有進一步提升,表明模型已經(jīng)達到飽和的狀態(tài)。
圖6 給出了訓練集大小對于不同網(wǎng)站指紋技術(shù)性能的影響。將每個網(wǎng)站的訓練實例劃分為5 種情況,分別為200、400、600、800 和1 000。由圖6 可以發(fā)現(xiàn),當每個網(wǎng)站的訓練實例只有200 個時,Image-FP 和DF 已經(jīng)能夠取得90%以上的分類準確率,而AWF 的準確率只有最低的73%。對于CUMUL、AWF 和k-FP 這3 種網(wǎng)站指紋技術(shù),它們分別需要400、600和700條訓練數(shù)據(jù)才能達到相同的效果。

圖6 訓練集大小對網(wǎng)站指紋性能的影響(封閉世界)Fig.6 Impact of training dataset size on website fingerprinting performance(closed-world)
隨著網(wǎng)站訓練實例數(shù)量的增加,所有網(wǎng)站指紋技術(shù)的性能也會不斷提高,而Image-FP 是當中表現(xiàn)最為優(yōu)異的,并且其準確率也始終高于最先進的網(wǎng)站指紋技術(shù)DF。以上實驗結(jié)果表明,Image-FP 只需要少量的訓練實例即可達到相當不錯的效果,一定程度上降低了指紋攻擊對數(shù)據(jù)規(guī)模的要求。
攻擊者在實施網(wǎng)站指紋攻擊前需要收集大量的訓練數(shù)據(jù),因此所耗費的計算資源和時間成本都需要考慮在內(nèi)。文獻[4,10,14]研究均表明,在網(wǎng)站指紋分類模型訓練完成后的10~14 d,由于網(wǎng)站內(nèi)容的變化,其攻擊準確率會出現(xiàn)明顯的下降,因此攻擊者需要在數(shù)據(jù)訓練集的規(guī)模以及更新頻率上進行權(quán)衡。而只需少量的數(shù)據(jù)集就能表現(xiàn)出較好性能的Image-FP無疑是最好的選擇。
從模型的訓練時間上來說,DF、AWF 和k-FP 在較大規(guī)模的數(shù)據(jù)集上的訓練速度都相對較快,Image-FP 次之,而CUMUL 的訓練時間是所有網(wǎng)站指紋技術(shù)中最長的。進行50輪次訓練的DF 和AWF 的平均訓練時間在30~60 min,而Image-FP 由于使用更大規(guī)模的輸入數(shù)據(jù)和更深的神經(jīng)網(wǎng)絡(luò),因此訓練時間更長,需要大約5 h。另一方面,由于CUMUL 需要對SVM 分類器的超參數(shù)進行網(wǎng)格搜索來獲得最優(yōu)效果,因此往往需要花費數(shù)天的時間進行訓練。此外,基于深度學習算法的3種網(wǎng)站指紋技術(shù)Image-FP、DF和AWF還具有分類預測較快的優(yōu)點。
相較于封閉世界,開放世界更加貼近于真實場景。在開放世界中,用戶不再被限定只能訪問數(shù)量有限的網(wǎng)站集合,而攻擊者的目的在于從非監(jiān)控網(wǎng)站的背景噪聲流量中識別出用戶訪問的監(jiān)控網(wǎng)站。
開放世界數(shù)據(jù)集包含62 500條監(jiān)控網(wǎng)站實例和50 000條非監(jiān)控網(wǎng)站實例。同樣按照訓練集∶測試集=8∶2 的原則,因此訓練集包含50 000 條監(jiān)控實例和40 000 條非監(jiān)控實例,而測試集包含12 500 條監(jiān)控實例和10 000 條非監(jiān)控實例。此外,將開放世界數(shù)據(jù)集中的監(jiān)控和非監(jiān)控網(wǎng)站數(shù)量統(tǒng)稱為開放世界大小。
在開放世界中,網(wǎng)站指紋攻擊是一個二元分類問題。因此,使用真陽性率(TPR)和假陽性率(FPR)來評估網(wǎng)站指紋攻擊的效果。其中:TPR 表示在所有實際上為監(jiān)控網(wǎng)站實例的樣本中,被網(wǎng)站指紋分類模型劃分正確的比例;而FPR表示在所有實際上為非監(jiān)控網(wǎng)站實例的樣本中,被網(wǎng)站指紋分類模型錯誤劃分為監(jiān)控類別的比例。
此外,由于CUMUL網(wǎng)站指紋技術(shù)無法適用于大規(guī)模數(shù)據(jù)的場景,因此在開放世界的實驗中,本文只對其余4 種網(wǎng)站指紋技術(shù)進行測試和評估。
圖7 給出了網(wǎng)站指紋技術(shù)在不同開放世界大小下的性能評估情況,其中Image-FP 在所有網(wǎng)站指紋技術(shù)中表現(xiàn)最為出色。無論是在哪種世界大小下,Image-FP都能夠以100%的準確率識別出監(jiān)控網(wǎng)站的訪問實例,并始終保持TPR 為1 和FPR為0。換句話說,Image-FP可以識別出全部的監(jiān)控網(wǎng)站實例,同時也沒有任何誤判的情況。
相較于Image-FP,其余網(wǎng)站指紋技術(shù)的分類準確率都有不同程度的下降。隨著世界大小的增加,DF 的TPR 不斷提高,同時FPR也在同步下降,其性能相對接近于Image-FP。而AWF和k-FP兩種網(wǎng)站指紋技術(shù),盡管FPR 隨著非監(jiān)控網(wǎng)站數(shù)量的增加而有大幅下降,但是它們的TPR 卻也在不斷降低。k-FP 在世界大小為40 000 時甚至低于了0.9,表示該網(wǎng)站指紋技術(shù)并不適用于開放世界場景。

圖7 開放世界大小對網(wǎng)站指紋性能的影響(開放世界)Fig.7 Impact of open-world size on website fingerprinting performance(Open World)
開放世界的實驗結(jié)果表明,攻擊者可以通過Image-FP 網(wǎng)站指紋技術(shù)輕易地識別出目標用戶訪問的網(wǎng)站是否在自己的監(jiān)控范圍內(nèi),也一定程度上展示了Tor 網(wǎng)絡(luò)的匿名性在網(wǎng)站指紋攻擊下的脆弱性。
本文提出了一種全新的基于圖像紋理和深度卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)站指紋技術(shù)Image-FP。Image-FP 通過將Tor 匿名通信流量按照二進制文件形式映射成RGB彩色圖,再使用50層的深度卷積神經(jīng)網(wǎng)絡(luò)ResNet 進行網(wǎng)站指紋特征的提取和分類。在封閉世界的場景下,Image-FP 能夠在最先進的網(wǎng)站指紋技術(shù)中取得最高的97.2%攻擊準確率;而在更貼近真實環(huán)境的開放世界場景中,Image-FP能夠以100%準確率識別出監(jiān)控網(wǎng)站,是其他網(wǎng)站指紋技術(shù)所達不到的。實驗結(jié)果表明,匿名流量圖像化技術(shù)能夠更廣泛地保留網(wǎng)站指紋的相關(guān)特征,在網(wǎng)站指紋的刻畫上更具有區(qū)分性,同時對Tor 網(wǎng)絡(luò)的匿名性帶來了極大的挑戰(zhàn)。
盡管本文提出的網(wǎng)站指紋技術(shù)能夠在實驗環(huán)境下取得較高的準確率,然而如文獻[4,14]所述,實驗環(huán)境與真實環(huán)境仍然存在較大的差距,因此在后續(xù)的研究中,還需對以下內(nèi)容進行更深入的研究。
1)數(shù)據(jù)集的相似性。
在本文的實驗中,匿名流量是在同一時間進行采集的,同時采集過程中的環(huán)境變量(如Tor 瀏覽器版本、操作系統(tǒng)版本、網(wǎng)絡(luò)環(huán)境等)都相同或相似,因此訓練集和測試集之間存在著較大的相似性,在一定程度上增強了網(wǎng)站指紋分類模型的性能,給予攻擊者較大的優(yōu)勢條件。在更加真實的環(huán)境下,去掉上述前提條件對于Image-FP 指紋技術(shù)的影響值得進一步測試和評估。
2)匿名流量分割。
本文在匿名流量數(shù)據(jù)的采集中,為了保證數(shù)據(jù)的純凈性,對用戶加上了每次訪問只能打開一個網(wǎng)站頁面的前提條件。而在真實環(huán)境下,用戶可以同時打開多個網(wǎng)頁,而且網(wǎng)絡(luò)中也會存在更多的背景噪聲流量。因此在實際的攻擊場景中,攻擊者需要能夠快速準確地過濾掉噪聲流量,同時能夠分割鏈路中多條不同的數(shù)據(jù)流。因此,匿名流量的分割技術(shù)也是亟待研究的重要課題之一。
3)網(wǎng)站整體的指紋刻畫。
本文對于“網(wǎng)站”的定義與以往大多數(shù)的研究保持一致,即“網(wǎng)站”表示的是網(wǎng)站的主頁,而不包括網(wǎng)站的其余子頁面或是網(wǎng)站主頁上的超鏈接。目前對于使用網(wǎng)站上的整體內(nèi)容來對該網(wǎng)站進行完整的指紋刻畫這一方面的研究較少,因此如何使用Image-FP 的匿名流量圖像化技術(shù)來對網(wǎng)站整體的指紋進行描述是本文后續(xù)的研究方向。
4)網(wǎng)站指紋防御技術(shù)。
盡管目前還并沒有具體的攻擊實例表明網(wǎng)站指紋攻擊技術(shù)會對實際的Tor 網(wǎng)絡(luò)的匿名性造成破壞,研究者們也已經(jīng)提出了不少的網(wǎng)站指紋防御技術(shù)[15-18]。這些防御技術(shù)通常采用對抗機器學習的方式來進行網(wǎng)站指紋攻擊的緩解。在網(wǎng)絡(luò)層面,發(fā)送虛假的數(shù)據(jù)包或延遲發(fā)送數(shù)據(jù)包都能有效加入噪聲從而模糊流量當中的特征。發(fā)送虛假的數(shù)據(jù)包會增加Tor網(wǎng)絡(luò)的鏈路負載,而延遲發(fā)送數(shù)據(jù)包會增加用戶的等待時間從而影響用戶體驗。因此,如何設(shè)計網(wǎng)站指紋防御技術(shù)并能在安全和性能之間達到平衡,也是值得研究的方向。同時,Image-FP網(wǎng)站指紋技術(shù)在目前現(xiàn)有的防御策略上是否還能保持較高的分類準確率也需要進一步評估。