李 玎 林 偉 蘆 斌 祝躍飛
(戰略支援部隊信息工程大學 鄭州 450001)
(數學工程與先進計算國家重點實驗室 鄭州 450001)
網絡加密流量側信道分析借鑒了傳統側信道分析的思想,繞過破解數據加密算法本身,利用網絡應用客戶端與服務器之間交互產生的數據包長度、時間、方向所組成的序列和統計特征,試圖推斷出用戶敏感信息,如使用的設備類型[1]、瀏覽的網站[2]或視頻[3]、語音通話內容[4]、視頻直播動作[5]、鍵盤輸入口令[6]等。網絡側信道分析在用戶無感的情況下被動監聽網絡流量,相比域名劫持、證書劫持等主動攻擊方法,其代價較低,成為近年來網絡監管和打擊犯罪的重要手段。
以搜索引擎為代表的網絡應用通常提供增量式搜索的服務,即在用戶輸入的過程中根據部分查詢內容提供實時更新的建議列表。為提高響應速度,瀏覽器會在用戶每次擊鍵時立即向服務器發送查詢請求。盡管搜索和應答內容會被加密,但加密數據包序列仍然會泄露用戶擊鍵時間、查詢和建議長度等信息。2010年,Chen等人[7]提出模糊集縮減的搜索查詢分析方法。攻擊者通過匹配建議列表長度對應的數據包長度序列,可以一次推斷用戶的一個按鍵。然而在2012年,以谷歌為代表的搜索引擎率先改進了查詢推薦策略,服務器會根據時事熱點、地理位置等因素生成不同長度的建議列表。為此,Schaub等人[8]在2014年提出隨機化匹配的分析方法。對于同一搜索查詢,假設建議列表長度符合高斯分布,并將數據包長度屬于某個已知前綴字符串的概率乘積作為查詢的預測值。該方法雖然可以應對變化的建議列表,但因狀態爆炸存在實踐上的困難。2017年,Oh等人[9]借鑒網站指紋攻擊的思想,通過構造以下行流量為主的247個統計和序列特征作為關鍵字指紋,實現對用戶輸入關鍵字的識別。該方法同樣依賴于穩定的服務器應答,因此容易受到概念漂移的影響,當搜索建議或結果發生改變時分類器的預測精度將降低。2019年,Monaco[10]首次提出只利用搜索請求數據包特征的分析方法。該方法基于數據包長度增量實現了擊鍵探測,但寬松的狀態轉移條件會導致錯誤地接收無關背景流量。此外,采用語言生成模型從固定的詞典中推斷查詢,搜索空間會隨詞典規模呈指數級增長,使攻擊者的相對信息增益過低。
現有工作已經證明了網絡搜索側信道分析的可行性,但在如何利用更加穩定且區分度高的流量特征以提高識別準確率等方面依然有待進一步研究。此外,這些研究工作只涉及英文輸入的搜索查詢,缺少針對中文搜索的分析方法,存在一定的局限性。針對上述問題,本文提出了一種面向中文搜索的網絡側信道分析方法。該方法通過監聽增量式搜索產生的網絡加密流量獲得擊鍵數據包的長度和時間,然后綜合利用側信道泄露的拼音音節和擊鍵時間信息推斷用戶可能輸入的中文查詢。本文的主要貢獻為:(1)分析了中文搜索信息泄露的根本原因,即請求數據包長度增量和時間間隔的可區分性,基于信息論對信息泄露進行理論量化;(2)構建了3階段的側信道分析模型,利用數據包長度增量可區分性實現擊鍵探測,降低了背景流量對探測準確率的影響,通過基于狀態的多層匹配和基于時間的查詢推斷,大幅提高了查詢識別準確率;(3)針對中文搜索常用的百度、搜狗、360和必應搜索引擎,在實際環境中收集了模擬用戶搜索的流量數據集,對理論量化值進行了實驗驗證,并針對性地提出了可能的緩解機制。
本節介紹了中文搜索側信道信息泄露的原因。其中,單行模式拼音輸入法的內在屬性造成了增量式搜索網絡流量的信息泄露,而HTTP/2頭部壓縮算法進一步增加了其泄露的信息量。
拼音是漢語的拉丁化方案,通過26個字母組成的約400個音節拼寫出所有漢字。由于拼音使用的廣泛性,拼音輸入法成為鍵盤輸入漢字的首選。使用拼音輸入法時,用戶不需要指明音節的邊界,輸入法會自動在音節之間插入撇號或空格分隔符。當用戶輸入新音節的第1個字母時,拼音字符串的長度會增加超過1個字符。通過拼音字符串的長度變化,可以推測用戶輸入拼音的長度和數量。
傳統輸入法將音節緩存在浮動面板中,只有當用戶完成候選字選擇時目標應用才能獲取輸入。為了使目標應用能夠對輸入音節做出響應,新型輸入法采用所謂單行模式,即在浮動面板中僅保留1行候選漢字,將輸入音節直接緩存在目標應用中。常用的單行模式輸入法如表1所示。采用單行模式的拼音輸入法雖然提升了用戶體驗,但是會將輸入的音節暴露給目標應用,間接導致了本文利用的中文搜索信息泄露。

表1 常見單行模式拼音輸入法
AJAX(Asynchronous JavaScript And XML)是一種動態網頁開發技術,支持網頁在后臺與服務器進行交互,能夠在不刷新頁面的情況下更新網頁內容。AJAX技術使增量式搜索成為可能。當探測到用戶輸入時,網頁會將當前搜索框中的內容作為URL查詢部分的參數,通過HTTP請求發往服務器,服務器根據算法生成建議列表并應答。用戶在必應搜索中輸入“毒品”的過程如圖1所示。相比服務器應答,搜索請求的內容與時事熱點等因素無關,且發送時間不受網絡延遲的影響,因此具有更穩定的特征。

圖1 AJAX增量式搜索實例
為保護用戶輸入的查詢,搜索引擎普遍采用TLS協議加密應用層數據。然而,現有TLS版本中的數據加密算法均保留了原始明文長度。例如,在TLS 1.3版本的加密套件中,數據加密雖然基于塊加密算法AES,但是在GCM或CCM鏈接模式下會自然轉化為流加密算法。根據RFC 3986,撇號和空格在URI規范中屬于特殊字符,因而URL中的拼音分隔符會被百分號編碼,在查詢字符串中占據3個字符。在一次搜索中,由于HTTP頭部和URL中的其余部分通常保持不變,查詢字符串的長度變化會完整保留在加密數據包序列中。除了長度特征,搜索產生的請求數據包序列還會暴露擊鍵時間特征。由于AJAX增量式搜索會在用戶每次擊鍵時立即向服務器發送查詢請求,擊鍵時間被完整保留在請求數據包中。根據人體運動Fitts定律[11],擊鍵所需的手部運動距離越遠,擊鍵所用的時間越長,因此數據包時間會泄露一定的原始輸入信息。
HTTP/2協議旨在通過管線化請求和頭部壓縮算法來提高HTTP/1.1協議的請求效率。根據RFC 7541,HTTP/2頭部壓縮算法一方面使用索引值代表固定的頭部字段,如Host等,另一方面通過靜態哈夫曼編碼來壓縮變化的字符串,如請求URL。在編碼字符串中,每個ASCII字符使用固定比特長度的哈夫曼編碼代替,編碼后的總長度用最后一個比特的反碼填充到整字節。由于小寫字母的哈夫曼編碼長度為5~7 bit,短字母更可能導致字節的零增長,因此,編碼URL的長度增量序列會泄露有關拼音的少量信息。


圖2 HTTP/2頭部哈夫曼編碼字符串
本節對中文搜索網絡流量泄露的信息進行量化,針對用戶輸入過程中查詢長度和擊鍵時間的變化分別定義了數據包長度增量和時間間隔可區分性,并考慮搜索應用的參數和模型對信息泄露帶來的影響。
定義數據包長度增量可區分性為不同擊鍵導致的數據包長度增量差異。假設{s1,s2,...,sn}表示擊鍵序列X={x1,x2,...,xn}產 生的數據包長度序列,n為擊鍵次數,xi取 值為26個字母,D={d1,d2,...,dn?1}表示數據包長度增量序列,即di=si+1?si。根據不同擊鍵導致的查詢字符串長度變化,將xi分為兩種類型:集合A表示增長1字符的非音節首字母,集合B表示增長4字符的音節首字母。對于HTTP/2網站,當x∈A時導致0或1字節增量,x∈B時導致2或3字節增量,即哈夫曼編碼不影響數據包長度增量可區分性。
上述對于長度增量可區分性的分析是基于HTTP請求中非查詢部分保持不變的假設,該假設并非對所有搜索引擎都成立。百度和必應搜索的請求URL中包含指示指針位置即當前字符數的“cp”參數,當該參數值產生進位或哈夫曼編碼比特數發生變化時,可能會影響總長度的變化。此外,百度搜索還在URL中包含上一次查詢字符串的“pwd”參數,以及在第3次擊鍵請求中添加若干固定長度的Cookie。從表2可知,可變URL參數的存在仍然可以保證數據包長度增量可區分性。

表2 URL參數對數據包長度增量可區分性的影響
基于數據包長度增量可區分性,進一步量化信息增益。對于攻擊者來說,用戶擊鍵的初始不確定性為X的信息熵H(X) , 觀察到序列D后的剩余不確定性為條件熵H(X|D), 獲得關于X的信息增益為

對于給定的序列D,通過貝葉斯公式可以得到用戶擊鍵序列的條件概率

其中,P(D|X)的取值與是否采用哈夫曼編碼有關:對于HTTP/1.1網站,有P(D|X)∈{0,1},攻擊者只能推斷拼音音節數量及長度;對于HTTP/2網站,有P(D|X)∈{r/8,0≤r ≤8},攻擊者能夠獲取關于拼音字母的額外信息。
采用包含140469個詞條的清華大學開放中文詞庫(THUOCL)作為搜索查詢集對信息增益進行量化。假設攻擊者通過數據包序列能夠確定擊鍵次數n,圖3(a)顯示了I(X;D)隨查詢拼音字母長度的變化。隨著查詢長度增加,序列D的獨特性使信息增益不斷增加,HTTP/2哈夫曼編碼泄露的額外信息使增益更快地接近最大熵。此時,X的不確定性變得很小,攻擊者有極大概率一次性猜對目標。通過推導可得,當每個查詢具有相等的先驗概率時,攻擊識別準確率為

其中, M NI(X;D)=I(X;D)/H(X)為相對信息增益,| X|為X取值集合的基數。圖3(b)顯示了識別準確率與拼音字母長度的關系,理論上攻擊者利用數據包長度信息泄露可以準確識別長度大于25個字符的查詢。

圖3 數據包長度增量泄露信息量化
定義數據包時間間隔可區分性為不同擊鍵雙字母對(bigram)導致的數據包時間間隔差異。假設{t1,t2,...,tn}表 示擊鍵序列X產生的數據包時間序列,τ={τ1,τ2,...,τn?1}表示數據包時間間隔序列,其中τi=ti+1?ti。文獻[6]驗證了用戶輸入SSH口令時的數據包時間間隔可區分性。雖然HTTP搜索請求與SSH請求高度相似,但是部分搜索引擎采用節流計時器來限制請求數量,計時器到期之前的多次擊鍵會被合并到一個請求中,因此可能影響搜索請求數據包的數量和時間。
除了節流計時器的影響之外,攻擊者觀察到的數據包時間間隔還會受到網絡延遲抖動的影響。統計數據顯示[13],亞太地區的IP數據包平均延遲約為75 ms,平均延遲抖動不超過0.01 ms。由于用戶平均擊鍵時間間隔遠大于普通的網絡延遲抖動,正常情況下網絡狀態的變化所帶來的影響基本可以忽略。第6節將進一步評估人工增加的大量延遲抖動對數據包時間間隔可區分性的影響。
對數據包時間間隔可區分性帶來的信息增益做進一步量化。與包含大量單詞的字母文字相比,中文輸入的字母組合相對固定,例如,英文單詞中不同bigram的數量接近最大值262,而拼音中只包含112個,即中文輸入的最大熵比英文低2.6 bit。假設隨機變量β表示bigram,則攻擊者觀察到τ時的信息增益為

根據文獻[6],特定bigram的擊鍵時間間隔近似符合高斯分布,即P(τ|β)~N(μβ,σβ) ,其中μβ和σβ分別表示均值和方差。采用包含20個用戶擊鍵數據的CMU數據集[14]對每個拼音bigram的分布參數進行最大似然估計(β樣本數大于10),得到τ的概率分布如圖4(a)所示,可以看到,不同手部運動行為的β之間存在一定的可區分性。圖4(b)顯示了3個不同用戶對于給定τ的信息增益I(β;τ),雖然輸入每個bigram只有0.4~0.5 bit的信息增益,但由于較長查詢的積累效應,攻擊者可以進一步確定用戶輸入的搜索查詢。

圖4 數據包時間間隔泄露信息量化
本節描述了中文搜索側信道分析方法,實現對網絡流量泄露信息的利用。該分析方法分為3個階段,其中,擊鍵探測和歧義縮減階段利用了數據包長度信息,查詢推斷階段利用了數據包時間信息。
擊鍵探測利用數據包長度增量可區分性建立確定有窮狀態機(Deterministic Finite Automaton,DFA),通過接收最長數據包序列的動態規劃算法從背景流量中檢測出擊鍵數據包序列。
擊鍵探測前,首先對網絡流量進行預處理。在數據傳輸過程中,網絡狀況的變化會增加網絡延遲抖動,可能造成數據包亂序。當網絡出現嚴重擁塞時,TCP協議會根據滑動窗口來重傳未收到應答的數據包。因此,利用遞增的TCP序號調整亂序的數據包,并根據重復的序號去除重傳數據包。此外,為了消除其他網絡應用以及無關TLS連接產生的背景流量的影響,利用TLS協議握手數據包中的SNI(Server Name Indication)字段過濾出包含擊鍵數據包的TLS連接。數據預處理不僅降低了網絡狀態變化和無關網絡流量對數據包長度增量帶來的影響,并且能夠最大限度地提高擊鍵探測的效率。
根據查詢字符串長度增量建立DFA模型M=(Q,Σ,δ,q0,F) ,其中,狀態集Q包含不同的擊鍵類型,輸入集Σ表示可接收的長度增量,轉換函數δ表示Q×Σ →Q上的映射,即δ(q,d)表示從狀態q沿著邊d到達的狀態,q0表示起始狀態,F表示結束狀態集。為了簡化模型,假設用戶僅使用26個字母輸入正確的拼音音節,不使用退格鍵(Backspace)、刪除鍵(Delete)或方向鍵修正已輸入的內容,并且查詢字符串中不包含英文、數字或特殊字符。圖5顯示了不同HTTP版本下的DFA模型,對于HTTP/2網站,利用狀態A0和B0記錄編碼URL長度的零字節增長(不計分隔符)。
總之,作為我們現一代交通工程技術人員有責任也有義務通過艱苦努力積極探索改善鉆孔灌注樁質量缺陷處理的新技術,新方法,在以后的交通工程建設中得到有效的發揮,為以后的橋梁工程建設作一份貢獻。

圖5 查詢字符串長度增量DFA模型
為了從大量的網站背景流量中檢測出擊鍵數據包序列,構建基于DFA模型的動態規劃算法,如表3所示。在DFA模型接收的過程中,由于部分搜索引擎的請求URL中包含可變參數,數據包長度增量會呈現表2中變化的特征。為此,在檢測數據包序列的過程中,根據已接收數據包的狀態序列和URL可變參數特征,將查詢字符串長度增量動態轉化為數據包長度增量。

表3 擊鍵探測算法
歧義縮減通過匹配符合擊鍵數據包狀態序列Q的候選查詢,有效縮減搜索查詢集的規模,降低用戶輸入的不確定性。通過歧義縮減,理論上可以獲得圖3(a)的信息增益,并達到圖3(b)的識別準確率。
為提高候選查詢的匹配效率,設計了如表4所示的多層匹配算法。其中,第1層為長度匹配,根據狀態序列Q的長度即擊鍵次數匹配查詢的拼音字母長度;第2層為音節匹配,將狀態序列Q約簡為指示音節分隔符的狀態序列Qˉ={qˉ1,qˉ2,...,qˉn},qˉi ∈{A,B},匹配查詢的拼音音節排列;第3層為增量匹配,針對HTTP/2網站,將狀態序列Q與查詢在不同初始比特余數r0下的哈夫曼編碼長度增量序列進行匹配,進一步減小相同長度查詢之間的歧義。算法層數越高,匹配過程的計算復雜度越大,隨之帶來的信息增益也越大。對于規模龐大的搜索查詢集,該結構可以有效減少復雜的高層匹配次數,通過預先計算每個查詢的狀態序列Qˉ′和Q′r,可以提高算法整體的性能。

表4 多層匹配算法
查詢推斷利用數據包時間間隔可區分性建立循環神經網絡(Recurrent Neural Network,RNN),學習用戶擊鍵的時間序列特征,從候選查詢中預測概率最大的輸入序列。相比Song等人[6]采用的隱馬爾可夫模型,RNN具有更強的非線性表示能力,能夠刻畫擊鍵序列的長時依賴關系??紤]到擊鍵時間間隔不僅與當前bigram有關,還與前后bigram改變的手部位置相關,因此采用如圖6所示的雙向RNN(BRNN)網絡[15],利用雙向隱層節點的連接關系,學習擊鍵時間間隔前后的依賴關系。

圖6 擊鍵時間間隔預測雙字母對的BRNN模型
中文輸入以拼音音節為單位進行記憶,且通過狀態序列Q可以良好地劃分音節,因此只針對音節內部的bigram序列建立預測模型。對于長度為n的拼音音節p,BRNN模型以n?1個擊鍵時間間隔τ={τ1,τ2,...,τn?1}作為輸入,通過雙向tanh激活函數和softmax層輸出n?1個bigram的概率,即

其中,U, W, V分別表示輸入層、隱藏層和輸出層參數,b,c分別表示各層的偏置值。
訓練模型時,采用包含16.8萬用戶鍵盤記錄的136 M擊鍵數據集[12],從中篩選臺式機或筆記本電腦QWERTY鍵盤記錄作為訓練數據?;谀P皖A測結果,通過bigram序列的聯合概率確定音節p的概率,進而根據音節序列確定擊鍵序列X的概率,即

本節對所提出的側信道分析方法進行實驗評估。首先介紹流量數據的收集方法以及實驗數據集的構造,然后通過一系列針對性的實驗對側信道分析方法性能進行全面評估。
為收集真實的網絡加密流量,構建了模擬用戶在搜索引擎中輸入中文查詢并捕獲網絡流量的數據收集工具。該工具利用Selenium實現瀏覽器網頁自動加載與搜索框定位,通過PyAutoGUI模擬用戶點擊搜索框并輸入搜索查詢,使用Scapy在后臺捕獲網絡流量并保存為pcap文件。為模擬用戶輸入中文搜索查詢的擊鍵時間間隔,從136 M擊鍵數據集中進一步篩選出1850個漢語母語用戶的擊鍵記錄,通過最大似然估計得到P(τ|β)分布參數,并隨機采樣得到模擬的擊鍵時間間隔。
為驗證2.4節量化的理論識別性能,同樣以THUOCL作為搜索查詢集,從中隨機選取拼音長度從10到40字符的查詢各60個,組成包含1800個查詢的樣本空間。選取的查詢中不包含字母、數字或特殊字符。使用數據收集工具分別在百度、搜狗、360和必應搜索中捕獲查詢樣本的加密流量,組成包含7200個樣本的流量數據集。數據收集環境基于Windows 10系統上運行的Chrome瀏覽器(v87版本),模擬用戶輸入時使用標準QWERTY鍵盤以及系統內置的微軟拼音輸入法。
實驗評估基于構造的中文查詢流量數據集,其中每個樣本代表攻擊者通過網絡監聽捕獲的搜索流量,并且用戶輸入的搜索查詢屬于攻擊者已知的集合THUOCL。針對分析方法的各個階段,采用不同的評估指標進行評價。擊鍵探測屬于二分類問題,即未知網絡流量中的擊鍵數據包能否被DFA模型正確地接收,因此使用F1分數作為評估指標,其中假陽類表示被標記的非擊鍵數據包,假陰類表示未被標記的擊鍵數據包。整體性能使用查詢識別準確率作為評估指標,即攻擊者一次猜對用戶輸入查詢的數量與查詢樣本總數的比例。在整體評估的基礎上,設計了多個攻擊場景來評估不同信息來源對查詢識別準確率的貢獻度。此外,通過對推斷查詢階段的消融實驗,進一步驗證推斷模型的有效性。
5.3.1 擊鍵探測性能
表5顯示了擊鍵探測在不同搜索引擎中的F1分數及完整擊鍵探測(F1=100%)比例。利用DFA模型嚴格的接收條件,攻擊者可以準確地識別各個搜索引擎的擊鍵數據包。在擊鍵探測失敗的樣本中,百度搜索第3次擊鍵請求的“H_PS_PSSID”和“BDSVRTM”Cookie的長度同時發生變化,導致DFA模型接收失敗;360搜索的頁面被重定向到so.com/haosou.html,該域名的搜索功能不是AJAX增量式搜索,因此沒有擊鍵數據包產生;搜狗搜索由于采用周期為100 ms的等待計時器模型,部分擊鍵時間間隔較小的請求被合并;相比之下,必應搜索由于采用遞歸模型,發生請求合并的概率大幅降低,符合2.4節的理論分析。

表5 擊鍵探測性能結果(%)及對比
對比文獻[10]中基于無狀態DFA模型的兩階段探測方法,本文方法能夠對HTTP請求中特殊的可變參數進行識別,同時利用DFA模型嚴格的接收條件避免錯誤地接收背景流量。從實驗結果來看,本文方法對百度搜索的完整擊鍵探測性能提升11.52%。
5.3.2 查詢識別準確率
表6顯示了不同搜索引擎中的查詢識別準確率。對于非HTTP/2網站查詢,分析方法的平均識別準確率為61.32%~65.94%;而對于必應搜索,由于哈夫曼編碼URL泄露了音節內部的信息,平均識別準確率達到76.06%。圖7(a)顯示了各個搜索引擎中的查詢識別準確率與拼音字母長度的關系,并與2.4節的量化值進行對比。可以看出,分析方法的實際性能與理論量化值基本吻合,對于長度在25個字符以上的查詢能夠準確地識別。搜狗搜索由于節流計時器合并了較多請求,部分結果未達到量化值。此外,請求URL中的“cp”,“pwd”等可變參數未對數據包長度增量可區分性造成影響。

圖7 整體性能評估

表6 查詢識別準確率結果(%)及對比
將本文提出的分析方法與Schaub等人[8]的方法、Oh等人[9]的方法和Monaco[10]的方法結果進行對比,識別性能比現有方法均有大幅提高。其中,與Oh等人采用的指紋攻擊方法相比,本文方法在更大規模的監控集上實現了更準確的識別,對于必應搜索查詢的識別準確率提升31.77%。
5.3.3 信息泄露來源
為探究側信道分析方法實際利用的信息泄露來源,分別評估4個場景下的識別性能:只采用音節匹配,只采用增量匹配,采用音節匹配和擊鍵時間信息,以及采用增量匹配和擊鍵時間信息。圖7(b)顯示了不同場景下針對必應搜索的查詢識別準確率。對于長度為20個字符的查詢,采用完整信息來源的識別準確率從只采用音節信息的36.67%提升到80%;不采用時間信息的識別準確率與理論量化值基本吻合,說明較好利用了數據包長度信息;時間信息帶來的性能提升相對較小,原因一方面是BRNN模型訓練沒有采用特定用戶擊鍵數據集,導致樣本偏差較大,另一方面是必應搜索的遞歸計時器模型損失了少量原始擊鍵時間信息。
5.3.4 查詢推斷消融實驗
為進一步分析本文方法對擊鍵時間信息的依賴程度,以及驗證查詢推斷階段BRNN模型的有效性,分別使用單向RNN模型、隱馬爾可夫模型(Hidden Markov Model, HMM)[6]、單隱層多層感知器(MultiLayer Perceptron, MLP)和基準的等概率模型(Equal)進行對比分析,結果如表7所示。其中,RNN接近BRNN的識別準確率,差別在于RNN只學習了之前的bigram對當前擊鍵時間間隔的影響,忽略了后續bigram造成的影響;HMM和MLP相比RNN的總體效果更差,因為HMM基于齊次馬爾可夫假設,即當前時間間隔只與前一個bigram相關,無法刻畫用戶擊鍵的長時依賴關系,而MLP無法捕獲時間順序信息,忽略了bigram改變的手部位置對擊鍵時間間隔的影響。

表7 查詢推斷消融實驗(%)
由于側信道分析方法利用了搜索請求泄露的長度和時間信息,理論上通過混淆數據包長度和時間特征可以降低識別準確率。以具有完整信息來源的必應搜索作為對象,評估以下4種針對性的緩解機制。
(1)填充數據包:將數據包填充到固定長度或固定字節的整數倍可以消除長度帶來的信息增益,但是會產生較多額外的帶寬消耗。另一種隨機填充可在帶寬消耗較小的前提下,破壞數據包長度增量可區分性。隨機填充1 Byte時,攻擊者通過放寬DFA接收條件能夠以一定的概率區分音節信息。圖8(a)顯示了填充概率對查詢識別準確率的影響,以50%的概率填充數據包可以降低30.5%的識別準確率。
(2)偽造數據包:借鑒KeyDrown[16]偽造鍵盤事件和OB-PWS[17]偽造搜索請求的思想,由于哈夫曼編碼URL長度會產生零字節增量,偽造相同長度的數據包會被DFA錯誤地接收。圖8(a)顯示了偽造數據包概率對查詢識別準確率的影響,以較小帶寬消耗的30%概率偽造數據包可以使識別準確率降低到7.8%。
(3)延遲數據包:網絡延遲影響數據包的到達時間,過大的延遲抖動會使數據包亂序。攻擊者利用TCP序號可以調整數據包邏輯亂序,但延遲抖動會消除擊鍵時間泄露的信息。圖8(b)顯示了采用Laplace分布[18]增加的網絡延遲抖動對查詢識別準確率的影響,40 ms的延遲抖動可以使識別準確率降低15.7%。

圖8 緩解機制評估
(4)合并數據包:由于節流計時器會將周期內的用戶輸入合并到同一個請求,增加節流周期可以增加合并數據包的概率,從而使擊鍵探測過程失敗。圖8(b)顯示了增加節流周期對查詢識別準確率的影響,雖然降低了增量式搜索的實時響應速度,但是增加50 ms節流周期可以使識別準確率降低到17.6%。
本文提出了一種面向中文搜索的網絡加密流量側信道分析方法,通過被動監聽網絡流量,攻擊者可以在用戶無感的情況下推斷其輸入的搜索查詢。本文以理論分析和實驗評估相結合的方式證明了信息泄露普遍存在于具有增量式搜索的網絡應用中,并針對性地提出了可能的緩解機制。在下一步工作中,將考慮非中文字符以及輸入誤差帶來的影響,并針對特定用戶建立擊鍵時間模型以提高時間信息帶來的增益。