孫學良 黃安欣 羅夏樸 謝 怡
1(廈門大學信息學院 福建廈門 361005) 2(福建省智慧城市感知與計算重點實驗室(廈門大學) 福建廈門 361005) 3(香港理工大學計算機系 香港 999077)
Web服務(wù)給人們的生活工作帶來極大方便,但也使得私人信息大量地暴露于網(wǎng)絡(luò).例如,為提升體驗,電子購物、銀行服務(wù)和遠程醫(yī)療網(wǎng)站跟蹤和分析用戶的消費習慣、經(jīng)濟和健康狀況,可能會帶來服務(wù)商信息泄露和不法分子竊取侵害的風險.因此互聯(lián)網(wǎng)隱私保護越來越受到重視,主要措施包括加密通信和匿名訪問.
加密通信協(xié)議從最初的SSL1.0(secure socket layer),發(fā)展到TLS1.3(transport layer security)[1],并成功應(yīng)用于HTTPS(hyper text transfer protocol over secure socket layer)[2-3].2018年全站HTTPS化后,網(wǎng)頁訪問的明文傳輸數(shù)據(jù)越來越少,但訪問過程產(chǎn)生的網(wǎng)絡(luò)流量仍會暴露使用者的意圖[4].例如分析未加密的DNS(domain name system)請求能獲知用戶要訪問的網(wǎng)站;從數(shù)據(jù)包的目標IP地址能反向解析出域名;從TLS連接建立過程中的Client Hello和Server Certificate能獲知明文域名信息.目前,DoT[5-6](DNS over TLS)和DoH[7](DNS over HTTPS)協(xié)議正致力于解決DNS加密問題;ESNI[8]和TLS1.3也將加密相關(guān)域名信息.相較于協(xié)議標準的緩慢升級,自由開源的隱私保護技術(shù)更受關(guān)注,Tor[9-10],AN.ON[11],F(xiàn)reeNet[12],I2P[13]等匿名訪問網(wǎng)絡(luò)應(yīng)運而生.用戶可以通過匿名網(wǎng)絡(luò)在互聯(lián)網(wǎng)上進行私密瀏覽、匿名訪問和發(fā)布信息,不但保護隱私,還能防止追蹤甚至避開網(wǎng)絡(luò)審查.
盡管匿名網(wǎng)絡(luò)加密了所有敏感信息,通過監(jiān)聽和分析網(wǎng)絡(luò)流量仍能判斷用戶是否訪問某個網(wǎng)頁.因為構(gòu)成每個網(wǎng)頁的CSS(cascading style sheets)和JavaScript代碼、圖片、視頻、廣告等元素不完全相同,訪問過程中產(chǎn)生的網(wǎng)絡(luò)流量就有區(qū)別,例如數(shù)據(jù)包的大小、順序和時間等非敏感信息可以形成網(wǎng)頁指紋(Webpage fingerprinting, WF).將搜集到的網(wǎng)絡(luò)流量與已知網(wǎng)頁訪問流量的指紋進行對比,就能獲知用戶訪問的隱私信息.匿名網(wǎng)絡(luò)技術(shù)給網(wǎng)頁指紋識別帶來許多新的挑戰(zhàn),已成為網(wǎng)絡(luò)安全研究的熱點.
但Tor等匿名網(wǎng)絡(luò)也常常被不法分子濫用以遮蓋其網(wǎng)絡(luò)犯罪行為[14-16],嚴重違背了保護用戶隱私和匿名性的設(shè)計初衷.若缺乏有效的監(jiān)管技術(shù),政府難以識別追蹤隱藏在匿名網(wǎng)絡(luò)中的非法地下網(wǎng)站,無法準確打擊相關(guān)犯罪行動.因此,提高匿名網(wǎng)絡(luò)的監(jiān)管水平勢在必行,而網(wǎng)頁指紋識別的方法恰好能對匿名網(wǎng)絡(luò)實施監(jiān)管和審查.可見無論從隱私保護還是網(wǎng)絡(luò)監(jiān)管的角度來說,網(wǎng)頁指紋識別都是需要重點關(guān)注的技術(shù)手段.為方便闡述,本綜述將網(wǎng)頁指紋的使用者(1)網(wǎng)頁指紋的實際使用者可能是審查網(wǎng)絡(luò)環(huán)境的管理/執(zhí)法人員,也可能是侵害用戶隱私的不法分子.統(tǒng)稱為攻擊者.
在網(wǎng)頁指紋識別中,用戶的身份可由IP或MAC(media access control address)地址、NAT(network address translation)記錄等信息來確定;而攻擊者通過監(jiān)聽用戶訪問頁面的流量并分析其模式與特征,來判斷用戶當前訪問的頁面.該攻擊者可以處于多個網(wǎng)絡(luò)位置,例如與互聯(lián)網(wǎng)服務(wù)提供商、Tor入口的控制者以及與用戶處于同一AP接入點的惡意攻擊者.早期研究將網(wǎng)頁指紋識別視為匹配問題[17-19],對捕獲的用戶流量構(gòu)造特征生成網(wǎng)頁指紋,與已知網(wǎng)頁指紋進行匹配從而判斷其歸屬.如今,網(wǎng)頁指紋識別以機器學習的視角轉(zhuǎn)換為分類問題[20-21].攻擊者首先使用提前收集的若干目標網(wǎng)頁(也稱受監(jiān)視頁面)的訪問流量訓練分類器,然后輸入被捕獲的用戶訪問流量,可輸出分類結(jié)果,即判斷用戶訪問了某個受監(jiān)視頁面.根據(jù)不同劃分標準,如目標網(wǎng)絡(luò)協(xié)議、特征提取、分類器選擇、協(xié)議數(shù)據(jù)單元和瀏覽器模式,網(wǎng)頁指紋識別可分為不同類型,如圖1所示.
Fig. 1 The classification of Webpage fingerprinting identification圖1 網(wǎng)頁指紋識別的分類
由于加密程度較低,早期針對HTTP的識別[17]比較容易從流量中提取有用信息,來確定用戶訪問的網(wǎng)頁.隨著SSH(secure shell)和TLS加密網(wǎng)頁的流行,研究者也有針對性地提出許多準確率高的網(wǎng)頁指紋識別方法[21-25].由于SSH和TLS加密通信僅加密明文內(nèi)容(例如通信內(nèi)容),而不對流量本身的一些統(tǒng)計學特征進行加密(如數(shù)據(jù)包的大小和到達順序等),因此攻擊者可以將流量中獨特的數(shù)據(jù)包大小與網(wǎng)頁建立匹配關(guān)系[26],從而獲知用戶訪問的頁面.近年涌現(xiàn)了加密程度更高的網(wǎng)絡(luò),特別是以Tor為代表的匿名網(wǎng)絡(luò)興起給網(wǎng)頁指紋識別帶來新的挑戰(zhàn).Tor不僅通過多個中間節(jié)點的跳轉(zhuǎn)隱藏了通信雙方的真實身份,還通過分割流量數(shù)據(jù)為固定長度512 B的cell,并采用周期性切換circuit等匿名手段[9,27],消除了許多常用的流量特征,使早期的網(wǎng)頁指紋識別失效[21].因此針對Tor加密流量的監(jiān)管和識別成為亟待解決的重要問題.本綜述將重點關(guān)注適用于Tor加密的匿名網(wǎng)頁訪問的網(wǎng)頁指紋識別方法.
網(wǎng)頁指紋識別需要從網(wǎng)絡(luò)流量中提取特征,例如每個數(shù)據(jù)包的大小、傳輸時間、傳輸方向及到達順序,以及一次完整的傳輸中所傳輸?shù)淖止?jié)數(shù)和數(shù)據(jù)包總數(shù)等.Panchenko等人[28]針對Tor通信,分別在Tor cell,TLS record,TCP packet這3種協(xié)議數(shù)據(jù)單元中提取特征并比較識別性能.實驗表明,針對Tor加密流量,從Tor cell中提取特征能達到最好的識別效果,這與文獻[29]提出的數(shù)據(jù)處理優(yōu)化方法結(jié)論吻合.3.4節(jié)將對各種識別算法的特征提取和分類算法進行分析總結(jié),然而如何提取流量特征實現(xiàn)準確的網(wǎng)頁指紋識別,仍是一個開放問題.
單標簽(single-tab)和多標簽(multi-tab)瀏覽模式是以用戶行為分類的基本應(yīng)用場景.在單標簽場景中,用戶每次訪問且僅訪問一個頁面;在多標簽場景中,用戶可以一次打開瀏覽器的多個標簽,并同時訪問多個頁面.但單標簽場景常被認為脫離實際[30],大多用戶習慣一次性打開多個標簽或者打開多個瀏覽器界面,而且在不關(guān)閉前一個頁面時訪問新頁面[31-33].雖然現(xiàn)有的單標簽網(wǎng)頁指紋識別[34]已獲得相當高的準確率,但往往無法直接用于多標簽場景[30].因此,近期研究考慮更具實用性和挑戰(zhàn)性的多標簽情景.
現(xiàn)有解決思路是把多標簽場景轉(zhuǎn)換為多個單標簽問題[35-38],然而轉(zhuǎn)換過程并非簡單的拆分.因為不同于單標簽場景下追求高準確率,多標簽網(wǎng)頁指紋識別方法需要具備較強魯棒性以抵抗標簽間的復雜干擾.在用戶使用瀏覽器時,多個標簽頁面并非同時打開(即存在時間間隔),找到這個時間間隔并對流量進行分割,就能獲得多個單標簽訪問的流量記錄,然后可以對分割好的網(wǎng)頁訪問流量實施網(wǎng)頁指紋識別.解決多標簽問題時,多標簽判定、流量分割和流量分類的3個步驟是作為一個系統(tǒng)性問題來考慮,每一個前置步驟中的誤差都會對后續(xù)步驟的準確率產(chǎn)生影響.因此多標簽網(wǎng)頁指紋的研究極具挑戰(zhàn),已成為相關(guān)研究的發(fā)展方向,具有重要的意義.
用戶通過Tor網(wǎng)絡(luò)匿名瀏覽網(wǎng)頁時,攻擊者能夠監(jiān)聽、標記且分離用戶網(wǎng)頁訪問流量,也可以在多個網(wǎng)絡(luò)位置進行網(wǎng)頁指紋的識別.例如使攻擊者和用戶接入同一個AP或位于同一段通信鏈路,也可以由路由器管理者或互聯(lián)網(wǎng)服務(wù)提供商(ISP)進行部署,其工作原理如圖2所示.攻擊者不會做出丟棄、修改或插入數(shù)據(jù)包等主動行為,只是被動地監(jiān)聽由用戶發(fā)出的網(wǎng)絡(luò)流.由于采用了Tor匿名技術(shù),攻擊者無法獲取接收者的信息和通信內(nèi)容,因為這些敏感信息已經(jīng)被加密并且無法解密獲得明文.于是攻擊者分析網(wǎng)絡(luò)流量中那些不受保護且可以輕松捕獲的非敏感信息,例如一系列數(shù)據(jù)包的大小、順序和數(shù)據(jù)包之間的時間差等.
網(wǎng)頁指紋識別假設(shè)攻擊者對于用戶的訪問環(huán)境已經(jīng)具備一定了解.因此在準備階段,攻擊者能盡可能模仿與用戶一致的訪問環(huán)境,例如使用相同的終端設(shè)備、操作系統(tǒng)、桌面環(huán)境、網(wǎng)絡(luò)環(huán)境和TBB(Tor browser bundle)版本配置.然后,用模仿的終端設(shè)備發(fā)起對一系列受監(jiān)視頁面的訪問,分別記錄訪問流量,并從流量的非敏感信息中提取特征,訓練分類器或指定匹配規(guī)則.在識別階段,攻擊者從監(jiān)聽到的用戶網(wǎng)絡(luò)流量中分割出網(wǎng)頁訪問流量,分析其中非敏感信息所形成的特征,并通過分類或匹配方法判斷出用戶所訪問的網(wǎng)頁是否屬于受監(jiān)視頁面,以及屬于哪一個受監(jiān)視頁面.
在Tor匿名網(wǎng)絡(luò)中實現(xiàn)網(wǎng)頁指紋識別是一項有挑戰(zhàn)性的工作.首要任務(wù)是要從用戶設(shè)備不斷發(fā)出的網(wǎng)絡(luò)流量中分割出網(wǎng)頁訪問流量,即流量分類.由于采用固定長度cell封裝數(shù)據(jù),Tor產(chǎn)生的流量中數(shù)據(jù)包大小分布與眾不同.針對加密流量涌現(xiàn)了大量優(yōu)秀的流量分類算法[39],網(wǎng)頁訪問流量的分割也愈加精確,還可以判斷用戶是否使用了Tor,為網(wǎng)頁指紋識別打好了基礎(chǔ).接著從非敏感信息中提取有效特征,制定匹配規(guī)則或訓練高效的分類器,開展網(wǎng)頁指紋識別.本綜述將分類介紹利用匹配方法、樸素貝葉斯(naive Bayes, NB)、支持向量機(support vector machine, SVM)、隨機森林(random frost, RF)、最鄰近算法(k-nearest neighbor,kNN),以及深度學習(deep learning, DL)方法對加密網(wǎng)頁進行網(wǎng)頁指紋識別的工作.
網(wǎng)頁指紋識別的研究必須考慮2種公認的威脅場景:closed-world和open-world.在不同的場景,用戶訪問的網(wǎng)站列表具有不同的構(gòu)成方式.
在closed-world場景,用戶訪問有限的N個受監(jiān)視網(wǎng)頁,而攻擊者事先獲知這些網(wǎng)站的集合.在準備階段,攻擊者對N個網(wǎng)頁分別進行X次訪問,搜集、分析并標注這些網(wǎng)頁訪問流量,用于設(shè)計匹配原則和訓練分類器,一個受監(jiān)視網(wǎng)頁被視為一個類別.然后,攻擊者將捕獲的用戶網(wǎng)絡(luò)流量輸入分類器,若能成功識別出用戶訪問的受監(jiān)視頁面(真實所屬的類別),即可判定識別成功.此場景下的網(wǎng)頁指紋識別,實際是一個經(jīng)典的多分類問題,隨機猜測也有1/N的成功率.但僅考慮closed-world場景的工作[17-18,21-22,40]往往被認為脫離實際[30,41],因為一般用戶訪問的頁面數(shù)量大也難以預測,無法提前簡化為固定集合.
在open-world場景[23-29,42-45],攻擊者首先選取N個受監(jiān)視頁面,并對每個網(wǎng)頁分別進行X次訪問;同時選取M個普通網(wǎng)頁,并對每個網(wǎng)頁進行1次訪問(通常N 由于網(wǎng)頁指紋識別可以視作一個分類問題,因此機器學習的通用性能指標也適用,例如準確率(accuracy, Acc)、召回率(recall)、真陽率(true positive rate, TPR)、假陽率(false positive rate, FPR)和混淆矩陣(confusion matrix).針對closed-world和open-world威脅場景,還定義了更細致的評估方案.在closed-world,攻擊者假設(shè)用戶僅會訪問N個受監(jiān)視頁面,屬于多分類問題.因此使用Acc,TPR/FPR和混淆矩陣均能有效描述識別性能.而在open-world中,網(wǎng)頁指紋識別分為2個階段.第1階段被視作2分類問題,即判斷一段網(wǎng)頁訪問流量是否屬于普通頁面類別.如果是,則判斷結(jié)束;否則進入第2階段,對N個受監(jiān)視頁面進行多分類處理(相當于closed-world問題),如圖3所示: Fig. 3 The workflow of open-world problem圖3 open-world場景識別的流程圖 因此,open-world可以選擇2種評價體系:Two-*[17-21,37,42,44-45]和Multi-*[28,43],*代表著某種具體評價指標,例如準確率.在Two-*指標中,如果一個受監(jiān)視頁面被正確分類為受監(jiān)視頁面,則認為是TP(true positives),被錯誤分類為普通頁面則認為是FN(false negatives).如果一個普通頁面被正確分類為普通頁面,則認為是TN(true negatives),否則被認為是FP(false positives).Multi-*指標則嚴格評估網(wǎng)頁訪問流量是否準確地被分成N+1個類別.當且僅當一組訪問流量被正確地判斷為其真實所屬的受監(jiān)視頁面類別時,才會被認為是分類準確,識別成功.其后出現(xiàn)的實驗數(shù)據(jù),默認采用Two-*指標;若以Multi-*指標做參考,將特別注明. 有些學者還指出open-world的網(wǎng)頁指紋識別不能簡單地視為二分類問題,而是一個介于二分類和多分類之間的問題,需要定義新的性能指標.例如,Wang[46]在Two-*的基礎(chǔ)上引入了WP(wrong positive)概念,代表一段網(wǎng)絡(luò)流量被分類器成功判斷為受監(jiān)視頁面,但是并不能正確找到其真實屬于哪個受監(jiān)視頁面的情況,相關(guān)混淆矩陣定義如表1所示.同時提出應(yīng)提高網(wǎng)頁指紋識別的精確度來避免基率謬誤(base-rate fallacy).基率謬誤是指當受監(jiān)視頁面數(shù)量遠少于普通頁面時,即使分類器具有很好的性能表現(xiàn),也有很大概率得到錯誤結(jié)論.假設(shè)受監(jiān)視頁面數(shù)為全部頁面數(shù)的1/1 000,分類器擁有99%的TPR,1%的FPR,1%的FNR和99%的TNR.若一段網(wǎng)絡(luò)流量被該分類器識別為受監(jiān)視網(wǎng)頁,那么根據(jù)貝葉斯定理,該判斷的正確概率僅為9%.因此本綜述在評價識別效果時(見第3節(jié)和第4節(jié)),必須考慮數(shù)據(jù)集的組成. Table 1 The Confusion Matrix Using WP[46]表1 引入WP的混淆矩陣 面向單標簽的網(wǎng)頁指紋識別,認為用戶使用瀏覽器每次僅會訪問一個頁面,即只打開單個標簽頁.這類識別方法很多,本節(jié)根據(jù)所選取的匹配或分類算法進行分類介紹.由于沒有公認的公開數(shù)據(jù)集,每個算法研究工作使用的數(shù)據(jù)集組成都有區(qū)別,然而無論是頁面數(shù)量、流量樣本數(shù)量,還是采集降噪方式都會對識別結(jié)果產(chǎn)生較大影響.為了保證算法分析的客觀性,討論識別效果時會說明所用數(shù)據(jù)集的參數(shù),例如受監(jiān)視頁面數(shù)量N和普通頁面數(shù)量M、對每個頁面采集流量樣本的次數(shù)X等.例如在識別準備過程,搜集N=5個真實受監(jiān)視網(wǎng)頁的訪問流量,每個網(wǎng)頁采集X=35次;收集M=4 000個普通網(wǎng)頁的訪問流量,每個網(wǎng)頁采集1次,則數(shù)據(jù)集的規(guī)模(scale)記為5×35+4 000×1,即N×X+M×1. Su-Sim[24]是一種針對SSL/TLS加密網(wǎng)頁的基于統(tǒng)計的識別方法.它從瀏覽器與代理的連接中分離出網(wǎng)絡(luò)對象(Web objects),并使用網(wǎng)絡(luò)對象的大小和數(shù)量計算Jaccard系數(shù)[47],以此衡量2段網(wǎng)絡(luò)流量的相關(guān)性.通過相關(guān)性匹配,能在open-world場景(2 191個受監(jiān)視頁面和98 496個普通頁面),獲得75%的TPR.其局限性在于,當使用WEP(wired equivalent privacy)/WPA(Wi-Fi protected access)、SSH、通道(tunnel)和VPN(virtual private network)等方式訪問網(wǎng)頁時,網(wǎng)絡(luò)對象無法從網(wǎng)絡(luò)流量中分離出來. Bi-XCor[17]則根據(jù)訪問流量之間的互相關(guān)系數(shù)(cross correlation)進行匹配,對每個受監(jiān)視頁面進行一次流量采集即可完成識別準備.在N=100的closed-world中,對經(jīng)過加密或通過代理的流量,僅得到23%的準確率.由于沒有考慮匿名通信網(wǎng)絡(luò)填充數(shù)據(jù)包的情況,它將數(shù)據(jù)包大小作為特征之一,而Tor瀏覽器已經(jīng)將cell的大小固定為512 B.可見,基于統(tǒng)計的方法大多無法適用于匿名網(wǎng)絡(luò). 3.2.1 基于樸素貝葉斯 不同于Bi-XCor[17],Liberatore等人[18]不再使用基于時間信息的特征,而是使用數(shù)據(jù)包的大小和方向設(shè)計了基于Jaccard系數(shù)和樸素貝葉斯分類器的網(wǎng)頁指紋識別方法.在包括1 000個受監(jiān)視頁面的closed-world中,一次識別可獲得73%的準確率;若允許多次識別,其準確率能提升到90%.同時提出識別準確率與受監(jiān)視網(wǎng)站總數(shù)對數(shù)值(lbN)呈線性關(guān)系,并討論了4種匿名化的流量填充對識別性能的影響.例如,將數(shù)據(jù)包全部填充至最大傳輸單元(maximum transmission unit, MTU)時,數(shù)據(jù)包大小的特征完全消失,識別準確率驟降至7.7%,而且開銷極大. He-MNB[21]改進了Liberatore等人[18]的工作.雖然同樣使用數(shù)據(jù)包的大小和方向信息作為特征,但它采用多項式樸素貝葉斯算法(multinomial naive Bayes, MNB)做分類.與樸素貝葉斯算法不同,MNB不直接計算一個特征向量歸屬每個類別的概率,而是使用在所有訓練集上的聚合特征.在775個受監(jiān)視頁面的closed-world中,He-MNB針對Stunnel,OpenSSH,CiscoVPN,OpenVPN的網(wǎng)頁訪問,均達到了95%以上的識別準確率;但對匿名網(wǎng)絡(luò)Tor和AN.ON 不適用,準確率僅為2.96%和19.97%. 3.2.2 基于支持向量機 Pa-SVM[42]在He-MNB[21]的基礎(chǔ)上增加了衡量流量突發(fā)性的多個特征(如流量方向反轉(zhuǎn)次數(shù)、HTML文檔大小、總傳送字節(jié)數(shù)、流量方向反轉(zhuǎn)期間的數(shù)據(jù)包數(shù)量、不同大小數(shù)據(jù)包出現(xiàn)的次數(shù)、流入的數(shù)據(jù)包比例、數(shù)據(jù)包總數(shù)和TLS/SSL記錄的大小等),并使用SVM做分類器.在775×20的closed-world中,Pa-SVM對匿名網(wǎng)絡(luò)的性能大大提高,針對Tor和AN.ON流量,識別準確率分別提升到55%和80%.在3個模擬審查類別中(sexually explicit, Alexa top, ranked Alexa random),它最高取得了73%的TPR和0.05%的FPR,也是在open-world中第一個成功實施網(wǎng)頁指紋識別的方法. 基于Pa-SVM[42]的手工構(gòu)造的特征,Ca-OSAD[22]利用Damerau-Levenshtein距離[48]構(gòu)建內(nèi)核,建立了SVM分類器,進一步提升了針對Tor加密流量的識別效果.在100×40的closed-world下,針對Tor流量的識別準確率達到了87.3%.Wang等人[29]從數(shù)據(jù)搜集、數(shù)據(jù)處理和網(wǎng)頁指紋分離3個方面對Ca-OSAD[22]進行改進.首先提取Tor cells而不是TCP/IP packets的特征信息,然后同時使用Damerau-Levenshtein和Optimal-String-Alignment這2種距離表征流量之間的差異.在100×40的closed-world中,針對Tor流量的識別可以達到91%的準確率;在4×40+860×1的open-world中,可獲得96.9%的TPR,而相同數(shù)據(jù)集下Ca-OSAD的TPR為86.9%. Pa-CUMUL[28]更細致地分析Tor網(wǎng)頁訪問流量,通過統(tǒng)計Tor cells的長度和數(shù)量提取了104個有效特征,并使用RBF(radial basis function)內(nèi)核構(gòu)建了SVM分類器.針對Tor流量,Pa-CUMUL在100×90的closed-world中,最高取得了92.22%的準確率.在100×90+9 000×1的open-world中,達到了96.92%的TPR及1.98%的FPR. 3.2.3 基于隨機森林 Hayes等人分析比較已有的特征選取方案,提出Ha-kFP[23]識別方法.它使用隨機森林算法從流量記錄的特征中生成具有強魯棒性的葉子向量,最有效的特征包括:收到的TCP/IP數(shù)據(jù)包總數(shù)、收到和發(fā)出的數(shù)據(jù)包比例、數(shù)據(jù)包順序統(tǒng)計等.這些向量被視為經(jīng)過編碼的網(wǎng)頁指紋信息,然后使用kNN分類器計算網(wǎng)頁指紋信息之間的距離并據(jù)此分類.針對Tor流量,在100×90的closed-world中,Ha-kFP可獲得了91%的識別準確率;在30×80+16 000×1的open-world中,最高可取得了81%的TPR和0.02%的FPR. 3.2.4 基于最鄰近算法 Wa-kNN[26]使用最鄰近算法作為分類器,提取了大量的特征,例如數(shù)據(jù)包的順序、收到和發(fā)出的數(shù)據(jù)包數(shù)量及流量突發(fā)的次數(shù)等,其特征總數(shù)量接近4 000.其中3 000多個特征是某個頁面訪問過程中傳輸?shù)莫毺財?shù)據(jù)包大小,最終通過計算權(quán)重的方法進行了精簡,因此未導致過長的處理時延.它判斷一段流量樣本所需的時間僅為Ca-OSAD[22]的1/4 500.在提取特征時,若拋棄獨特數(shù)據(jù)包大小的特征,耗時還能縮短至1/4.Wa-kNN[26]在100×90的closed-world中,達到了91%的準確率,在100×90+5 000×1的open-world下,取得了85%的TPR和0.6%的FPR. Ri-DF[34]使用深度學習領(lǐng)域中的3個經(jīng)典模型:堆疊降噪自動編碼器(stacked denoising autoencoder, SDAE)、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)及長短期記憶網(wǎng)絡(luò)(long short term memory, LSTM)完成了對網(wǎng)頁指紋識別的測試,其使用特征提取網(wǎng)絡(luò)自動地提取特征,而不再通過特征工程手動構(gòu)建特征.其模型輸入是表示Tor cells方向的序列.在100×2 500的closed-world中,由CNN構(gòu)建的模型達到了最高的識別準確率96.26%.在200×2 000+400 000×1的open-world中,CNN仍取得了最好的效果:80.11%的TPR和10.53%的FPR. Si-DF[44]使用CNN進行特征提取并使用全連接層作為分類網(wǎng)絡(luò)構(gòu)建了分類器.與Ri-DF[34]相同,Si-DF僅使用Tor cells的方向作為特征.在95×800的closed-world中,Si-DF達到98.3%的識別準確率;在95×900+20 000×1的open-world中,通過調(diào)整置信度可獲得最高精確度96%(TPR為68%),或最高TPR為96%(準確率為67%).這也驗證了CNN模型的性能優(yōu)勢.Abe等人[49]也使用SDAE設(shè)計網(wǎng)頁指紋識別方法,并在Wa-kNN[26]相同的數(shù)據(jù)集上測試.然而由于數(shù)據(jù)量不足,識別準確率為88%,弱于Wa-kNN.由此可見,利用深度學習進行網(wǎng)頁指紋識別,需要依賴大量樣本數(shù)據(jù). 深度學習可以提高網(wǎng)頁指紋識別效果,但巨大的數(shù)據(jù)量也增加了識別成本.例如Ri-DF和Si-DF識別的準備就需要花費數(shù)天來收集和訓練數(shù)據(jù)[45].為此,Si-Triplet[45]使用(n-shot learning, NSL)來減少網(wǎng)頁指紋識別對大數(shù)據(jù)樣本的依賴性.Si-Triplet首先使用CNN構(gòu)建特征提取網(wǎng)絡(luò)提取特征,對流量樣本記錄編碼,再使用kNN算法計算編碼之間的距離,并據(jù)此分類結(jié)果完成網(wǎng)頁指紋識別.在closed-world中,Si-Triplet使用100×25的數(shù)據(jù)集來訓練特征提取網(wǎng)絡(luò),并對100個受監(jiān)視頁面進行CNN特征提取和kNN分類測試,可達到79.4%的識別準確率.而在同樣條件下,基于傳統(tǒng)機器學習的Pa-CUMUL[28]和Ha-kFP[23]識別準確率分別為42.1%和36.3%.在100×5+9 000×1的open-world中,使用同樣的數(shù)據(jù)集進行特征提取網(wǎng)絡(luò)的訓練,再使用不同的數(shù)據(jù)集進行測試,Si-Triplet最大精確度為87.1%(TPR為80.8%). Bh-VarCNN[43]引入空洞卷積及殘差網(wǎng)絡(luò)構(gòu)建了神經(jīng)網(wǎng)絡(luò)分類器.與Ri-DF[34],Si-DF[44],Si-Triplet[45]不同,Bh-VarCNN不僅通過特征提取網(wǎng)絡(luò)從Tor cells的時間和方向序列中自動提取特征,還使用一些手工構(gòu)建的特征(例如,數(shù)據(jù)包總數(shù)、接收和發(fā)出的數(shù)據(jù)包總數(shù)、結(jié)束和發(fā)出的數(shù)據(jù)包比例、總傳輸時間、數(shù)據(jù)包的平均傳輸時間).同時證明在較少樣本量的情況下,Bh-VarCNN仍然能保持較高的準確率.例如,在100×100的closed-world中,Bh-VarCNN可以達到97.8%的識別準確率,而Si-DF[44]的準確率為93.6%.當樣本充足時,在900×2 500的closed-world中,Bh-VarCNN達到了98.8%的識別準確率,而Si-DF為96.5%.在100×100+90 000×1的open-world中,Bh-VarCNN達到89.2%的Multi-TPR和1.1%的FPR.實驗還指出,受監(jiān)視頁面和普通頁面比例懸殊會導致大量誤報,這與Wang[46]對基率謬誤的討論一致. Tik-Tok[50]還手動構(gòu)建了8個基于Burst的時間特征,通過增強網(wǎng)頁指紋識別方法對時間信息的利用能力,提升了現(xiàn)有網(wǎng)頁指紋識別算法的可解釋性以及抵抗干擾的能力.Burst是指流量中的小段同方向序列,如圖4所示,每一段同方向的數(shù)據(jù)包被視為是一個Burst.受此啟發(fā),Ma等人[51]提出了Ma-Burst-DF,通過設(shè)計多尺度的Burst特征提取網(wǎng)絡(luò)改進了Si-DF[44]的網(wǎng)絡(luò)結(jié)構(gòu),并且創(chuàng)造性地提出了要將神經(jīng)網(wǎng)絡(luò)的輸出作為指紋向量,接著使用隨機森林算法對指紋向量進行分析最終輸出分類結(jié)果,其模型性能和抵抗干擾的能力較Si-DF[44]有所提升.這種基于Burst的特征提取結(jié)構(gòu)在Dy-VNG++[40]和Wa-kNN[26]中也有應(yīng)用. Fig. 4 Structure of Burst圖4 Burst結(jié)構(gòu) 早期的網(wǎng)頁指紋識別利用數(shù)據(jù)包的大小、時間等信息手動構(gòu)建特征,并計算流量之間的相關(guān)度做匹配依據(jù),例如Bi-XCor[17]和Su-Sim[24].接著,機器學習的經(jīng)典算法被引入,在手動構(gòu)造流量特征的情況下提升網(wǎng)頁指紋識別的效果.首先被引入的是樸素貝葉斯,例如Li-NB[18],He-MNB[21],Dy-VNG++[40].由于在解決小樣本的非線性問題中的獨特優(yōu)勢,SVM算法也被廣泛用于網(wǎng)頁指紋識別.例如Pa-SVM[42],Ca-OSAD[22],Wa-cOSAD[29],Pa-CUMUL[28]通過自定義內(nèi)核,有效提升了流量分類的能力.基于kNN算法的Wa-kNN[26]識別也達到了不錯的效果.機器學習算法還可以用來提取特征,例如Ha-kFP[23]識別使用隨機森林作為特征提取的工具,把最后一層葉子節(jié)點的輸出作為流量的指紋編碼,然后計算指紋編碼之間的距離進行分類.進入深度學習時代后,網(wǎng)頁指紋識別也逐漸地脫離了對手動構(gòu)建特征的依賴,轉(zhuǎn)而使用特征提取網(wǎng)絡(luò).例如,Ri-DF[34],Si-DF[44],Si-Triplet[45]均是由特征提取網(wǎng)絡(luò)從[1,-1]的方向序列中自動生成的特征,并取得很好的識別效果;而Bh-VarCNN[43]則表明結(jié)合手動構(gòu)建特征可以進一步提高識別性能. 根據(jù)表2的統(tǒng)計,數(shù)據(jù)包的時間和方向序列是2個最重要特征;數(shù)據(jù)包的數(shù)量、發(fā)出和收到數(shù)據(jù)包的比例、總傳送時間、特定文件的大小和特殊數(shù)據(jù)包的大小等特征也常被網(wǎng)頁指紋識別方法所選用.并且Li等人[52]分析了網(wǎng)頁指紋的信息泄露(informa-tion leakage)情況,計算了網(wǎng)頁指紋識別方法中常用特征所泄露的信息量,為手動構(gòu)建特征的可解釋性提供了理論支持.在基于深度學習的識別方法中,總字節(jié)數(shù)、流量反轉(zhuǎn)次數(shù)等手動構(gòu)建的特征往往能夠在特征自動提取的基礎(chǔ)上增強識別效果.但匿名網(wǎng)絡(luò)中的識別一般不選取數(shù)據(jù)包大小,因為Tor的強制填充規(guī)則使其失去了特征表征能力.相比于TCP/IP層的數(shù)據(jù)包信息,從Tor cells層解析數(shù)據(jù)包的信息特征,能使分類器達到更好的效果[28].大量針對Tor流量的識別方法如Wa-cOSAD[29],Wa-kNN[26],Ri-DF[34],Si-DF[44],Si-Triplet[45],Bh-VarCNN[43],都選擇Tor cells作為特征提取的對象. Table 2 The TypicalFeatures Used in WF Identification表2 網(wǎng)頁指紋識別所使用的典型特征 表3對比了典型網(wǎng)頁指紋識別方法的識別效果(為便于橫向比較,僅列出實施一次識別的準確率).如果一項算法研究討論了針對多種加密方式(如SSH,VPN,Tor)的網(wǎng)頁指紋識別,主要比較針對Tor流量的識別準確率.在open-world下,默認使用Two-*指標;否則指定Multi-*指標(相關(guān)定義見2.3節(jié)).本節(jié)還描述了每種方法評估所依托的數(shù)據(jù)集N×X+M×1,并按照受監(jiān)視頁面數(shù)量N、普通頁面數(shù)量M和訓練樣本采集數(shù)目X來討論網(wǎng)頁指紋識別的效果. Table 3 Performance of Single-tag WF Identification表3 單標簽網(wǎng)頁指紋識別的比較 在N×X的closed-world中,考慮的受監(jiān)視頁面越多則分類難度越大,對每個頁面采集的訓練樣本越多則完成識別的開銷越大.非深度學習算法的識別方法,對訓練樣本要求不高,X通常設(shè)為20和40.而基于深度學習的識別方法雖然能獲得很高的識別準確率,但所需訓練樣本數(shù)目巨大.例如在95×800的closed-world中,Si-DF可以獲得98.3%的準確率;在900×2 500的closed-world中,Bh-VarCNN的準確率高達98.8%,但它們的識別準備都非常耗時. 在N×X+M×1的open-world中,對網(wǎng)頁指紋識別的評估往往受到普通頁面與受監(jiān)視頁面比例的影響.普通頁面越多,準確識別受監(jiān)視頁面的難度也就越大.表3中,Ri-DF的比例最高M/N=2 000/1,可獲得80.11%的TPR.比例次高的是Bh-VarCNN(M/N=900/1),在嚴格的多分類指標下,準確率達到了89.2%的Multi-TPR.若結(jié)合closed-world中的表現(xiàn),Bh-VarCNN方法的識別效果最佳. 基于深度學習的網(wǎng)頁指紋識別方法需要依賴大量訓練數(shù)據(jù)的支撐.在現(xiàn)實場景中,如果采集一個受監(jiān)視頁面流量需要花費20 s(考慮Tor緩慢的響應(yīng)速度,實際上還會更多),一臺設(shè)備24 h僅采集4 320個樣本.若受監(jiān)視頁面增加,收集和訓練數(shù)據(jù)的識別準備過程將更長.而網(wǎng)頁指紋識別的效果往往會隨著搜集數(shù)據(jù)和發(fā)起識別的時間間隔加大而衰減.因此少樣本學習(few shot learning, FSL)的表現(xiàn)和實踐性更值得關(guān)注.例如,Si-Triplet在M/N=90/1的open-world中取得89.3%的TPR,僅使用少量訓練數(shù)據(jù)獲得較好識別效果. 單標簽頁的網(wǎng)頁指紋識別能達到很高的準確率,即使在open-world中的用戶訪問上萬個網(wǎng)頁,并且采用SSH及SSL等流量加密方法,攻擊者也能通過訓練網(wǎng)頁指紋的識別算法準確地判斷是否訪問了某個受監(jiān)視的頁面.盡管用戶使用Tor服務(wù)消除了數(shù)據(jù)包大小等信息以抵抗流量分析,但是隨著相關(guān)研究的不斷推進,針對Tor的網(wǎng)頁指紋識別方法的效果也越來越好,多數(shù)防御手段被逐一打破.因此,基于網(wǎng)頁指紋識別的攻擊行為對用戶隱私產(chǎn)生巨大威脅.早期的研究雖被詬病于脫離實際,但是隨著識別算法從統(tǒng)計方法、傳統(tǒng)機器學習,發(fā)展到最新的深度學習方法,針對Tor網(wǎng)頁指紋識別在接近真實識別場景的實驗環(huán)境中取得越來越好的效果. 多標簽的網(wǎng)頁指紋識別,認為用戶在進行網(wǎng)頁瀏覽時,會打開多個標簽頁同步訪問多個網(wǎng)頁.因為多個網(wǎng)頁訪問流量的相互疊加,面向單標簽的網(wǎng)頁指紋識別方法經(jīng)常失效.解決這個問題的關(guān)鍵是準確判斷一段網(wǎng)絡(luò)流量是否包含多個頁面的信息,如何準確分割各個網(wǎng)頁流量,并設(shè)計分類算法對分割后的流量進行準確分類.本節(jié)將介紹多標簽網(wǎng)頁指紋識別的難點挑戰(zhàn)與相關(guān)工作,然后比較這些研究的識別效果. 在多標簽場景下,攻擊者可以通過多標簽流量判定以及流量分割2個步驟將問題轉(zhuǎn)換為單標簽網(wǎng)頁指紋識別.如圖5所示,如果一段流量記錄被判定僅含有一個頁面,則直接使用單標簽識別方法進行特征提取和網(wǎng)頁分類識別;如果判定含有多個頁面,則進行流量分割后再分別轉(zhuǎn)換為單標簽識別問題.目前的多標簽識別的研究[35-38]常采用這種思路. Fig. 5 The workflow of multi-tag WF attack圖5 多標簽頁場景的識別流程 但是多標簽場景并不是單標簽網(wǎng)頁指紋識別的一種簡單擴展.首先單標簽網(wǎng)頁指紋識別方法無法直接運用于多標簽場景的流量分類任務(wù).Juarez等人[30]測試了5種單標簽網(wǎng)頁指紋識別方法在多標簽場景下的表現(xiàn):He-MNB[21]、Wa-cOSAD[29]、Dy-VNG++[40]、Pa-SVM[42]、決策樹算法.實驗表明這些方法在多標簽場景的網(wǎng)頁識別準確率不足20%,即識別無效.多標簽下的網(wǎng)頁指紋識別方法必須強調(diào)魯棒性,有效抵抗多標簽瀏覽行為帶來的諸多干擾,例如多個頁面訪問的流量互相重疊、多標簽判定算法的誤差以及流量分割算法的誤差.只有把多標簽判定、流量分割及流量分類3個步驟進行整體化設(shè)計才能達到好的網(wǎng)頁指紋識別效果. 基于數(shù)據(jù)包時間差的最鄰近算法Wa-TkNN[35],可以準確判斷一段Tor流量是否屬于多標簽瀏覽,準確率高達97%.它使用的特征包括cell間的最小和最大時間差,以及時間差的均值和方差等.如果一段流量被判定為多標簽瀏覽,則使用kNN分類器來尋找不同標簽頁之間的流量分割點,所使用的特征包括分割點周圍5個cell之間的時間差,以及分割點周圍50個cell的時間差中的最大值、最小值和方差等.實驗證明在3種多標簽瀏覽情況下,網(wǎng)頁流量的分割準確率分別為88%,63%,32%.這3種典型情況是:在第1個頁面完全加載后有一段間隔再訪問第2個頁面(class1);在第1個頁面完全加載后立刻訪問第2個頁面(class2);在第1個頁面未完全加載完時就訪問第2個頁面(class3).可惜的是,Wa-TkNN[35]工作僅提出了判定和分割多標簽流量的方法,并沒有進一步設(shè)計基于此的網(wǎng)頁指紋識別. Xu等人選取與Wa-TkNN[35]相同的流量特征,融合BalanceCascade[53]和XGBoost[54]分類器構(gòu)建了一個二分類的分類器Xu-Boost[37].它通過獨立地計算用戶每一個發(fā)出的數(shù)據(jù)包是真實分割點的概率來尋找分割點,并且構(gòu)建了隨機森林分類器對分割后的流量進行分類.隨機森林分類器使用數(shù)據(jù)流量總大小、cells數(shù)量等手動構(gòu)建的特征,對第1個頁面的分類達到了86.56%的Multi-TPR,及0.52%的FPR.可惜的是,Xu-Boost拋棄了分割點后的所有流量,僅對第1個頁面進行分類. Gu-NB[38]假設(shè)第2個頁面在固定時間差后打開(例如2s),因此省略網(wǎng)頁間的流量分割過程,直接討論如何分類2段相互干擾的流量.通過提取一段流量的TCP連接數(shù)量、流出/流入總帶寬和數(shù)據(jù)包間時間差等特征,利用隨機森林算法對2個頁面進行了分類.第1個頁面的分類識別達到了75.9%的準確率和22%的FPR;第2個頁面則是40.5%的準確率及17.4%的FPR.然而Gu-NB[38]假設(shè)過于理想化,不能解決多標簽網(wǎng)頁指紋識別的實際問題;并且實驗僅針對SSH流量,未證明其在Tor匿名網(wǎng)絡(luò)中的作用. Cui等人[36]指出多標簽場景下的網(wǎng)頁指紋識別主要面對2種干擾:流量的缺失(missing)和重疊(overlapping).當用戶進行多標簽瀏覽時,攻擊者將整段流量記錄進行分割后,第1個頁面容易缺失尾部的信息,而第2個頁面的頭部會受到第1個頁面的尾部信息干擾.基于Wa-TkNN[35]判斷多標簽瀏覽的流量的能力,他們提出了相當完整的多標簽網(wǎng)頁指紋識別方法Cu-HMM[36].它首先使用隱馬爾可夫模型對流量進行分割,再使用Sectioning算法對2段流量進行分類.Sectioning算法將每個頁面的流量拆分為一些固定長度的小段,分別對每一小段進行分類,統(tǒng)計小段的分類結(jié)果即得到了整段流量的分類結(jié)果,其中使用的特征來源于Pa-CUMUL[28].closed-world實驗表明,Cu-HMM識別對第1個頁面和第2個頁面分別達到了70.2%和69.2%的Top3準確率(分類器輸出的概率最大3個類別中若包括正確類別,則認為分類正確).可惜它沒有測試open-world的場景下網(wǎng)頁指紋識別的效果,所以仍然存在一定改進的空間. 表4與表5對比了多標簽網(wǎng)頁指紋識別方法的分割與識別效果,時間間隔指的是開始訪問2個網(wǎng)頁之間的時間差,Esplit表示流量分割誤差,Acc和TPR表示流量分割效果,規(guī)模記錄了數(shù)據(jù)集組成方式.由于不同研究中采用的性能評價指標不同,并沒有提供所使用的數(shù)據(jù)集以及實現(xiàn)代碼.難以使用統(tǒng)一的單位來對比其性能和表現(xiàn),因此表4與表5中僅采用文獻中提供的評價指標與數(shù)值以供參考.另外由于由Gu-NB[38]假設(shè)固定的時間差,并跳過了流量分割過程,所以在表4中Gu-NB[38]分割指標的3項為空.而Wa-TkNN[35]僅考慮了多標簽頁場景下的流量分割問題,因此在表5中,Wa-TkNN[35]分類指標皆為空. Table 4 Performance of Multi-tab WF Split表4 多標簽網(wǎng)頁指紋分割的比較 % Table 5 Performance of Multi-tab WF Identification表5 多標簽網(wǎng)頁指紋識別的比較 顯然,流量分割算法是多標簽網(wǎng)頁指紋識別成功的關(guān)鍵,精準的流量分割才能保證后續(xù)的分類算法的準確性.為了達到最好的識別效果,研究者需要提前分析流量分割算法的性能.然而不同分割算法猜測網(wǎng)頁流量分割點的方法也不同,主要有2種:第1種,盡量讓猜測的流量分割點與真實的距離不超過規(guī)定的數(shù)據(jù)包數(shù)目Y,例如Xu-Boost[37]和Wa-TkNN[35];第2種是把長為Ls的流量紀錄為許多長度為Lsub的小段,如果猜測的流量分割點與真實的位于同一Lsub,則認為分割正確,例如Cu-HMM[36]. 為了方便描述和對比,需要定義一個指標用于衡量分割誤差Esplit,即使一個分割點被判定為正確,仍然可能存在的誤差.2種情況的誤差計算公式分別為式(1)和式(2). Esplit=(Y/Ls)×100%, (1) Esplit=(Lsub/Ls)×100%. (2) Xu-Boost[37]和Cu-HMM[36]均達到80%以上的流量分割準確率,是目前效果最好的分割算法.而Wa-TkNN[35]由于過度依賴流量中的時間特征,雖然對2個網(wǎng)頁流量間有間隔的情況可以達到較高的分割準確率,但是對2個網(wǎng)頁流量有部分重疊的情況不能做出很好的分割,因此最終的分割性能不佳. 多標簽網(wǎng)頁指紋識別的第2個關(guān)鍵技術(shù)是流量分類算法.由于分割后的流量往往會存在缺失和重疊2種干擾[36],多標簽網(wǎng)頁指紋識別場景下的分類算法往往要具備更強的抗干擾能力. 在N×X+M×1的open-world中,Gu-NB[38]選取SSH而不是Tor流量,并省略流量分割的過程,因此2個頁面75.9%和40.5%的分類準確率也難以證明其可用于真實的多標簽情景.在受監(jiān)視頁面數(shù)量N=50時,Xu-Boost[37]的普通頁面數(shù)量M是Gu-NB[38]的5倍.面對更困難的分類任務(wù),Xu-Boost[37]把第1個頁面的分類準確率提高到86.56%的Multi-TPR.但由于忽略了第2個頁面的流量,并采用不同的數(shù)據(jù)集分別驗證流量分割和分類性能,Xu-Boost的實驗結(jié)果無法全面反映其真實性能. 在N×X的closed-world中,僅有Cu-HMM[36],得益于準確率80%的分割算法,并提出Sectioning算法有效抵抗了第2個頁面流量頭部所受到的干擾.Cu-HMM[36]對第2個頁面的分類準確率達到了69.2%的Top3準確率,也是對第2個頁面的分類準確率最高的識別算法. 多標簽場景是網(wǎng)頁指紋識別相關(guān)研究的未來發(fā)展方向,因為它更加貼近實際應(yīng)用場景,對用戶隱私的威脅也更大.攻擊者可以用高準確率的分割算法削弱多標簽瀏覽的影響,完成多標簽場景的判定,并且進行流量分割,最后使用流量分類的方法識別網(wǎng)頁,完成網(wǎng)頁指紋識別.綜合來看,Cu-HMM[36]的設(shè)計和實驗最為合理,使用Wa-TkNN準確判定多標簽網(wǎng)頁流量,然后流量分割和流量分類的完整過程.其中除了Gu-NB[38]是針對SSH加密流量進行的分析外,Xu-Boost[37],Cu-HMM[36],Wa-TkNN[35]均針對的是Tor加密的流量.在多標簽場景中,即使用戶在短時間內(nèi)打開多個頁面,Tor也可能在此期間重新建立Circuit進行通信,而Circuit的切換會導致數(shù)據(jù)包數(shù)量及時間戳等信息發(fā)生變化,這些潛在的干擾都極大地增加了網(wǎng)頁指紋識別的難度.對流量分割和分類算法的性能及抵抗干擾的能力的要求也就更加嚴格. 網(wǎng)頁指紋識別的場景和假設(shè)越來越接近實際情況,從closed-world到open-world的進步顯而易見.本節(jié)從實踐角度出發(fā),討論威脅場景、條件假設(shè)、Tor版本、背景流量、采集數(shù)據(jù)和發(fā)起識別的時間差等因素對網(wǎng)頁指紋識別效果的影響,如表6所示.在設(shè)計識別方法時,必須重視這些因素的影響. Table 6 The Influencing Factors Considered in Typical WF Identification表6 典型WF識別方法考慮的影響因素列表 絕大部分識別方法假設(shè)已知Tor瀏覽器版本及操作系統(tǒng)等用戶信息,因此攻擊者可以模仿用戶的網(wǎng)絡(luò)環(huán)境來進行數(shù)據(jù)的收集并做好識別準備工作.然而當用戶的真實網(wǎng)絡(luò)環(huán)境與攻擊者模擬環(huán)境不完全相同時,網(wǎng)頁指紋識別效果會大打折扣[28].目前僅有Si-Triplet[45]考慮了Tor版本的影響. 網(wǎng)頁指紋識別應(yīng)當充分考慮背景流量對識別效果的影響以提高其可實踐性.大部分識別方法假設(shè)攻擊者在捕獲用戶的網(wǎng)絡(luò)流量后,能夠完整且無重疊地切分出網(wǎng)頁瀏覽的流量.例如,Wa-kNN[26]把Tor瀏覽器的自帶流量(circuit建立和控制流量的SEND ME數(shù)據(jù)包等)都視為噪音進行過濾,以提高識別準確率.但這在現(xiàn)實網(wǎng)絡(luò)環(huán)境中無法真正實現(xiàn).正常的聯(lián)網(wǎng)設(shè)備往往會持續(xù)不斷地產(chǎn)生網(wǎng)絡(luò)流量,即使攻擊者僅采集用戶的TLS流量也會被其他應(yīng)用或者程序所產(chǎn)生的TLS流量干擾.只有Pa-SVM[42],Pa-CUMUL[28],Wa-Boost[37],Cu-HMM[36],Gu-NB[38],Wa-TkNN[35]方法通過手動添加噪聲的方式測試了自身算法抵抗背景流量噪聲干擾的能力.文獻[55]提出可以通過在訓練分類器期間加入目標頁面內(nèi)超鏈接的統(tǒng)計來提升訓練器抵抗噪聲的能力. 由于大部分網(wǎng)頁是非靜態(tài)的,網(wǎng)頁指紋識別的效果往往會隨著搜集數(shù)據(jù)和發(fā)起識別的時間間隔增加而衰減.網(wǎng)頁指紋識別的數(shù)據(jù)搜集和分類器訓練需要花費大量的準備時間[45].當用戶進行網(wǎng)頁訪問時,當前網(wǎng)站很可能已經(jīng)發(fā)生變化,例如視頻網(wǎng)站首頁往往會根據(jù)熱度變化來排列節(jié)目的鏈接,頁面之間插入的廣告也在更新.因此,從識別準備到真正發(fā)起識別的時間越短越好,網(wǎng)頁指紋識別的準確率會隨著時間間隔增大而下降[18,24,34,44].網(wǎng)頁指紋識別的時效性也是一個現(xiàn)實的挑戰(zhàn). 本綜述從網(wǎng)頁指紋識別的概念、原理和威脅場景出發(fā),分類討論面向單標簽和多標簽的典型識別方法.特別研究他們針對Tor等匿名網(wǎng)絡(luò)的識別效果,并從不同角度討論其性能優(yōu)點、局限性及可實踐性.5個問題值得進一步研究和討論. 1) 設(shè)計更具實踐性的網(wǎng)頁指紋識別.現(xiàn)有的網(wǎng)頁指紋識別方法研究普遍采用了較多的實驗假設(shè),例如closed-world、單標簽瀏覽、無背景噪聲及訓練數(shù)據(jù)采集源與用戶設(shè)備操作環(huán)境完全一致等,每一個假設(shè)因素都會對網(wǎng)頁指紋識別效果產(chǎn)生較大影響.這些假設(shè)使現(xiàn)有識別方法缺乏實踐性,雖然有研究者提出了一些針對多標簽場景的網(wǎng)頁指紋識別方法[35,38],也有研究者針對網(wǎng)頁指紋的可實踐性進行了討論[30,35],但是網(wǎng)頁指紋識別距離真正實用仍有不小差距.Tor project早于2013年已經(jīng)將網(wǎng)頁指紋識別視為某種潛在威脅[41],然而至今未推送任何主動防御措施.可見,設(shè)計更具實踐性的網(wǎng)頁指紋識別,比挫敗某種主動防御更緊迫. 2) 針對Tor協(xié)議的特性設(shè)計網(wǎng)頁指紋識別方法.網(wǎng)頁指紋相關(guān)研究的熱點雖然已面向Tor加密的網(wǎng)頁訪問,但研究者往往是通過提升分類器的性能及魯棒性的方法來攻克Tor對流量分析技術(shù)的干擾.這類方法一般具有通用性,可以同時應(yīng)對多種加密和防御手段.但對于使用最廣泛的匿名訪問網(wǎng)絡(luò)Tor,研究者應(yīng)該針對Tor協(xié)議本身的特性(例如未施加干擾的數(shù)據(jù)包間時間差、路由選擇策略等)來開發(fā)更高效率的網(wǎng)頁指紋識別方法,預期能達到更好的效果[50]. 3) 使用數(shù)據(jù)增強改進網(wǎng)頁指紋識別.數(shù)據(jù)增強方法被廣泛應(yīng)用于圖像處理領(lǐng)域,通過對圖像進行遮擋、旋轉(zhuǎn)、融合和尺度變換來擴展數(shù)據(jù)集,模糊分類器的決策邊界.這些經(jīng)過簡單變換的樣本與真實樣本很接近,有利于提升分類模型的表現(xiàn).網(wǎng)頁指紋識別的研究,也可以通過數(shù)據(jù)增強的方法增加訓練數(shù)據(jù),提升模型的準確率.這種改進方案,不但降低了網(wǎng)頁指紋識別對于大量真實數(shù)據(jù)的依賴,也大大減少了搜集數(shù)據(jù)訓練分類器的準備時間. 4) 研究針對網(wǎng)頁指紋識別的防御.隨著網(wǎng)頁指紋識別方法的發(fā)展,涌現(xiàn)了對應(yīng)的防御措施[56-65].最基本的是通過填充垃圾包和主動延遲某些數(shù)據(jù)包(或組合),對網(wǎng)頁訪問流量進行保護,提高網(wǎng)頁指紋識別的假陽率或降低其準確率.但這2種措施都會影響網(wǎng)頁訪問體驗,過量添加垃圾包會對用戶帶寬帶來額外負擔,過長的數(shù)據(jù)包延遲會加大用戶訪問的時延開銷.由于網(wǎng)頁指紋識別的現(xiàn)有防御措施開銷都比較大,難以實際部署到Tor等匿名網(wǎng)絡(luò)中.平衡防御效果與開銷成為一大難題,而在圖像領(lǐng)域興起的對抗網(wǎng)絡(luò)技術(shù)為此打開了新思路,已有研究使用對抗樣本解決網(wǎng)頁指紋識別的威脅并且取得了不錯的效果[63,65].防御者通過制造對抗樣本產(chǎn)生足夠針對網(wǎng)頁指紋識別算法的網(wǎng)絡(luò)干擾,同時保證這些干擾不會影響網(wǎng)絡(luò)的正常通信. 5)增強網(wǎng)頁指紋識別的網(wǎng)絡(luò)監(jiān)管能力.匿名網(wǎng)絡(luò)能夠提供用戶匿名訪問互聯(lián)網(wǎng)的能力,有效地保護用戶隱私.但若被不法分子濫用來進行非法活動,則增加了監(jiān)管部門對網(wǎng)絡(luò)犯罪的審查難度.網(wǎng)頁指紋識別的研究能夠被應(yīng)用于合法的網(wǎng)絡(luò)監(jiān)管之中,防范不法分子對匿名網(wǎng)絡(luò)的濫用.研究網(wǎng)頁指紋識別方法的最終目的并不是破壞隱私保護體系,而是通過尋找可能的網(wǎng)頁指紋識別方法來測試現(xiàn)有隱私保護體系的性能和潛在威脅,并且在法律準許的范圍內(nèi)進行有效的網(wǎng)絡(luò)監(jiān)管.通過不斷對網(wǎng)頁指紋識別方法的推進與研究,才能提出更好的隱私保護方案,增強對合法用戶的隱私保護能力,增強對非法用戶的網(wǎng)絡(luò)監(jiān)管能力.2.3 性能評估
3 面向單標簽的網(wǎng)頁指紋識別
3.1 基于統(tǒng)計的方法
3.2 基于傳統(tǒng)機器學習的方法
3.3 基于深度學習的方法
3.4 算法和特征的選擇
3.5 識別效果比較
3.6 本節(jié)小結(jié)
4 面向多標簽的網(wǎng)頁指紋識別
4.1 多標簽網(wǎng)頁指紋識別的特點
4.2 多標簽網(wǎng)頁指紋識別的相關(guān)方法
4.3 識別效果比較
4.4 本節(jié)小結(jié)
5 網(wǎng)頁指紋識別的局限性
6 研究總結(jié)與展望