王 琦,曹衛權,梁 杰,李 赟,吳 杰
(盲信號處理國家級重點實驗室,成都 610041)
洋蔥路由器(The onion router,Tor)[1]以穩定的服務和較低的通信延時,深受匿名通信用戶歡迎。截止到2020 年7 月31 日,Tor 在全球范圍內的用戶人數常年保持在每月兩百萬以上,但Tor 并不是絕對安全的[2-3]。Tor 借助MIX[4]的重路由機制實現用戶通信鏈路的不可追蹤性與身份的匿名性,采用固定輸入輸出的消息轉發機制,使消息發送者與消息接收者之間具有一一對應關系,降低中繼節點負荷。同時,Tor 中繼節點進行數據轉發時,沒有采取消除數據包之間時間特征的策略[5-7],進一步提升了通信實時性。然而,現有研究表明:Tor 不能抵御端到端的溯源攻擊[8-9],即溯源攻擊者只要掌握同一條通信鏈路進入和退出Tor 網絡,使用簡單的流量分析攻擊,就可以對此次匿名通信過程實現成功溯源[10-11]。因此,在使用Tor 時,評估其面對端到端溯源攻擊對手時的安全性是十分必要的。
RYBCZYNSKA[12]從潛在用戶發送和接收消息的可能性出發,提出匿名通信系統的匿名性計算方法,并設計通過計算香農熵來量化匿名性的評估框架。DIAZ 等[13]采用信息論模型來量化一個匿名通信系統的匿名程度,提出一種基于用戶被觀察者觀察到通信過程的概率模型,用于評估匿名通信系統在各種攻擊模型下的匿名級別與某種特定攻擊在不同匿名通信系統中獲取的信息量大小。HAMEL等[14]從量化攻擊者的攻擊方法及能力的角度衡量Tor 用戶的安全性,并給出Tor 用戶通信路徑被不同攻擊者溯源的概率。ELAHI 等[15]開發COGS 框架,大規模仿真Tor 匿名通信入口節點的選擇情況,并發現Tor 用戶入口節點的更換是導致通信路徑匿名性被破壞的主要因素[16]。JOHNSON 等[17]使用Tor 網絡中的節點信息并利用TorPS[18]路徑模擬器,對Tor用戶與溯源攻擊對手的行為進行模擬,根據模擬結果給出多類用戶匿名性受損的概率。
使用熵的概念可以衡量Tor 整體的安全性,但是無法對溯源攻擊者的能力、具體用戶的通信行為等信息進行精確量化[14],因此無法計算單個對手對匿名用戶安全性的破壞程度。利用Tor 模擬器可以計算有限溯源攻擊對手對某些用戶的溯源成功率,但離散模擬實驗無法全面預測不同能力的對手對用戶匿名性的破壞程度以及總結用戶安全性隨著自身行為模式的變化規律[19]。
為較精確預測具有不同攻擊能力的端到端溯源攻擊對手對Tor 用戶安全性的破壞程度,并總結不同Tor 用戶的行為模式隨著自身安全性的變化規律,本文基于Tor 節點選擇算法,結合Tor 用戶與端到端溯源攻擊對手模型,建立面向端到端溯源攻擊對手的Tor 安全性模型。利用真實網絡環境中的Tor 節點信息及Tor 選路算法,并通過用戶通信鏈路節點選擇過程的多次蒙特卡洛模擬實驗以驗證該模型的有效性。
下文將面向端到端溯源攻擊對手的Tor 安全性模型簡稱為安全性模型,并給出安全性模型中的相關定義:
1)對手。在Tor 匿名網絡的Guard 節點總帶寬和Exit 節點總帶寬資源中,將均占有一定比例的節點控制者稱為端到端溯源攻擊對手,簡稱為對手。Tor 節點選擇算法中使用節點帶寬來計算節點被選中的概率。因此,對手控制的節點被用戶選中的概率,只與這些節點的總帶寬有關。為保證對手可以達到端到端溯源攻擊的條件,僅做出對手控制的Guard 節點及Exit 節點的個數均大于等于1 個的基本假設,而不明確規定對手控制的Guard 節點及Exit節點的具體個數。
2)捕獲。本文將一次匿名通信過程中Tor 用戶的Guard 節點與Exit 節點均為同一對手控制的節點的事件稱為用戶通信鏈路被對手捕獲,簡稱為捕獲。本文不考慮對手在某次溯源攻擊中僅掌握了Guard節點與Exit 節點中的一個時,如何采用其他技術手段去獲取另一個不受其控制的節點的流量。在真實的網絡環境中,如果對手在用戶通信鏈路建立時未能同時獲取到Guard 節點與Exit 節點處的流量,那么要在用戶通信時間內通過流量追蹤的技術手段去達到同時獲取端到端的匿名通信流量并實現追蹤溯源是很困難的。
3)指標1 與指標2。將用戶使用Tor 進行匿名通信的一段時間段內,對手至少捕獲用戶通信鏈路一次的概率及捕獲次數的期望值分別稱為模型的指標1 與指標2。
在安全性模型建立過程中,依據Tor 節點選擇算法、用戶模型及對手模型3 個要素進行安全性模型中2 個指標的數學建模。
1)Tor 節點選擇算法
在Tor 節點選擇算法中,優先選擇帶寬高、運行穩定的節點作為中繼節點,節點帶寬最終被轉化為該節點的權重。節點權重計算流程如圖1 所示。

圖1 節點權重計算流程Fig.1 Procedure of node weight calculation
在圖1中,共有n個備選Tor節點,Bi表示第i個節點的帶寬值,W表示節點的網絡帶寬權重值,Wi表示第i個節點的帶寬權重值,計算公式為
在進行節點選擇時,首先計算各個節點的累積權重值,第i個節點的累計權重值為前i個節點權重值求和的結果;然后從0 到1 之間進行抽樣,根據抽樣結果找到累積權重值對應的中繼節點。因此,帶寬越高的節點,被選中的概率越大[20]。
2)用戶模型
用戶模型主要參考現實Tor 用戶的3 個參數,具體為Guard 節點的更換周期L、用戶平均每天建立的通信鏈路數M、用戶使用Tor 的總天數N。S=M×L表示在一個用戶Guard 節點更換周期內用戶建立的鏈路總數。R=M×N表示用戶在N天內建立的鏈路總數。為N與L的商向下取整,表示用戶N天內更換Guard 節點的次數。
3)對手模型
對手模型參考了端到端溯源攻擊對手的兩個參數:(1)對手貢獻的端到端網絡帶寬占Tor 端到端網絡帶寬的比例α;(2)溯源攻擊對手在Exit 節點分配的帶寬占其總帶寬的比例β。由對手的定義可知,對手在Guard 節點分配帶寬比例為1-β。
在Tor 中,Guard 節點與Exit 節點的總帶寬值分別為BN1與BN2,BN表示Tor 網絡在Guard 節點與Exit節點處的總帶寬,BN=BN1+BN2。占Tor 總帶寬資源比例為α的對手,對Tor 貢獻的帶寬值為BM=α×BN。對手在Guard 節點與Exit 節點分配的帶寬值分別為BM1=(1-β)×BM與BM2等于β×BM。設Tor 用戶在 一次匿名通信過程中選中對手Guard 節點為事件A,選中對手Exit 節點為事件B。由此可得,事件A與事件B發生的概率分別為
4)指標1
假設用戶的某個通信鏈路被對手捕獲為事件G,因為用戶在建立通信鏈路的過程中,通常先選擇一個Guard 節點,再進行Exit 節點的選擇,所以事件G發生的概率為P(G)=P(B|A)×P(A)。由于對手進行帶寬資源分配后,事件A與事件B是相互獨立的,因此事件G發生的概率為P(G)=P(B)×P(A)。假設用戶在某Guard 節點更換周期開始時選中了對手控制的Guard 節點,在此周期內建立了S條通信鏈路,而用戶在此周期內至少選中一次對手Exit 節點的概率為P=1-(1-P(B))S。設在此周期內用戶通信鏈路被對手至少捕獲一次為事件E'。事件E'發生的概率為P(E')=[1-(1-P(B))S]×P(A)。用戶鏈路不被捕獲的事件P(A)。假設用戶在N天的K個Guard 節點更換周期內通信鏈路均不被捕獲為事件發生的概率為
基于以上分析可得N天內用戶的通信鏈路被對手至少捕獲一次的事件E發生的概率為P(E)=1-對公式省略中間變量,得到指標1 為關于α、β、N、M、L的函數,數學表達式為
5)指標2
對手在某次匿名通信過程中捕獲用戶通信鏈路的概率為P(G)=P(B)×P(A)。在整個用戶通信時間內,對手捕獲用戶通信鏈路次數的期望值為E=N×M×P(G),省去中間變量可得指標2 的數學表達式為
在指標1 與指標2 中,N=180、M=6、L=60,并且根據Tor Project[2]提供的2019 年9 月的共識文件,確定BN1=7.16 Gb/s、BN2=4.66 Gb/s、BN=11.82 Gb/s。
實驗以Tor Project 中2019 年9 月 至2020 年8 月的Tor 節點描述文件及共識文件為基礎,使用Tor 選路算法來模擬12 個月內用戶在Tor 網絡中通信鏈路中繼節點選擇過程。
為精確控制對手占Tor 端到端帶寬的比例,實驗中人為地在Tor 帶寬中加入對手貢獻的帶寬,雖然這會在一定程度上改變真實的Tor 網絡環境,但并不會影響用戶匿名通信鏈路節點選擇過程以及不同Tor帶寬占有比例的對手對用戶安全性破壞程度的度量。對手模型使用兩個參數進行量化,即對手貢獻的端到端帶寬占Tor 端到端帶寬的比例α以及對手在Exit 節點處分配的帶寬占其帶寬的比例β。在實驗過程中,α和β的取值分別為0.01、0.02、0.05、0.10、0.20、0.40、0.50 和0.01、0.02、0.05、0.10、0.20、0.46、0.48、0.50、0.80。用戶模型使用3 個參數度量,即在180 天內,平均每天建立6 條通信鏈路,且每60 天更換1 次Guard 節點。
實驗過程具體為:首先按照α與β的取值,在Tor共識文件中加入對手控制的節點,實驗中共有63 個參數不同的對手;然后使用Tor 節點選擇算法,對用戶面對的63 個對手分別進行5 000 次通信鏈路節點選擇的蒙特卡洛模擬;最后實驗輸出結果為用戶建立的通信鏈路IP 集合。
對每條鏈路的Guard 與Exit 節點的IP 進行統計,若其IP 均為對手控制的IP,則判定此鏈路被對手捕獲。假設5 000 次模擬中共有λ次模擬出現用戶通信鏈路被對手至少捕獲1 次的情況,共有σ條匿名通信鏈路被對手捕獲,則用戶的通信鏈路被對手至少捕獲1 次的概率以及被捕獲次數的期望值分別為P=λ/5 000、E=σ/5 000。本文將上述兩個統計結果分別稱為實驗結果1 與實驗結果2。
經模擬實驗統計得到,用戶U 的通信鏈路至少被對手捕獲1 次的概率P與捕獲次數的期望值E隨著α與β變化而變化的情況如圖2 所示。

圖2 實驗結果三維圖Fig.2 3D diagram of experimental results
為對比指標與相對應實驗結果的差異進行如下處理:
1)使用實驗中用戶模型與對手模型分別對指標1 與指標2 進行采樣,采樣結果如圖3 所示。

圖3 安全性模型的指標采樣三維圖Fig.3 3D diagram of index sampling for security model
2)使用采樣后的指標1、指標2 分別與實驗結果1、實驗結果2 計算結果的誤差D1及D2分別進行統計,如圖4 所示,彩色效果見《計算機工程》官網HTML 版,其中藍色柱狀圖部分表示指標計算結果小于相應實驗結果,其他顏色的柱狀圖部分表示指標計算結果大于相應實驗結果。

圖4 指標與相應實驗結果的誤差柱狀圖Fig.4 Error histogram between indexes and corresponding experimental results
指標與相應的實驗結果的誤差統計結果如表1 所示,其中,最大誤差為指標計算值與相應實驗統計值作差后的最大值,最小誤差為作差后絕對值的最小值,平均誤差為作差后對63 個差值先求和再求平均的結果。

表1 指標與相應實驗結果的誤差統計Table 1 Error statistics of indexes and corresponding experimental results
3)通過圖2 與圖3 可以看出,指標與相應實驗結果對至少捕獲一次的概率及捕獲次數的期望值隨著α與β的取值變化具有相同的變化趨勢。在指標1 與實驗結果1 均達到最大值時,β的取值隨α變化而變化的曲線進行擬合,結果如圖5 所示。在指標2 與實驗結果2 均達到最大值時,β取值隨α變化而變化的曲線進行擬合,結果如圖6 所示。

圖5 捕獲概率最大時β 隨α 的變化情況Fig.5 Change of β with α when the capture probability is maximum

圖6 期望值最大時β 隨α 變化情況Fig.6 Change of β with α when the expected value is maximum
通過對12 個月的共識文件進行統計,發現帶寬隨著時間不斷增大。2020 年8 月,Tor 在Exit 節點與Guard 節點處的總帶寬約為20.81 Gb/s,相比2019 年9 月共增加約8.99 Gb/s[2]。2019 年9 月 至2020 年8 月的帶寬統計如圖7 所示。

圖7 Tor 每月平均帶寬統計Fig.7 Tor monthly average bandwidth statistics
在實驗過程中,使用2019 年9 月的Tor 共識帶寬值來計算對手在保持Tor 帶寬占有比例為α時,對手對Tor 網絡所貢獻的帶寬值。隨著時間的推移,對手貢獻的帶寬值在Tor 總帶寬中占有的真實比例小于實驗前預設的比例α。這使得實驗中用戶選中對手Guard 節點與Exit 節點的概率小于模型中用戶選中對手Guard 節點與Exit 節點的概率,進而導致實驗計算出的捕獲概率值與捕獲期望值小于模型計算出的捕獲概率值與捕獲期望值。
對于誤差的修正,首先使用12 個月內每月的Tor 端到端網絡帶寬、Guard 以及Exit 節點的總帶寬來擬合實驗過程中BN、BN1、BN2這3 個參數,并重新進行Tor 用戶通信鏈路節點選擇模擬實驗;然后對指標及相應的實驗結果做誤差分析,并對帶寬擬合后的指標計算結果與相應實驗結果的誤差進行統計,如表2 所示。可以看出,進行帶寬修正的指標計算結果與相應實驗結果最大誤差、最小誤差及平均誤差均有了一定程度的減小,并且誤差的絕對值總體保持在一個很小的范圍內。

表2 帶寬擬合后的誤差統計Table 2 Error statistics after bandwidth fitting
因此,對于掌握Tor 帶寬占有比例為α且在Exit節點處帶寬分配比例為β的對手,安全性模型可以精確計算該對手對用戶通信鏈路至少捕獲一次的概率與捕獲次數的期望值。
帶寬擬合實驗后的預測結果與圖5、圖6 的結果一致,即模型中捕獲概率與捕獲期望分別達到最大值時,α對應的β值與實驗結果所得的值擬合度較高,約為85.7%,當捕獲概率或期望值達到最大值時,α對應的β值不同的點分別只有一個。因此,當捕獲概率或期望值達到最大時,安全性模型對于β的取值隨α變化的預測是較精確的。
本節將基于安全性模型分析不同Tor 帶寬占有比例的對手,在不同帶寬分配比例下對用戶安全性的影響。
借助安全性模型的指標1 與指標2,遍歷α、β的取值來計算不同對手對用戶的通信鏈路至少捕獲一次的概率以及捕獲次數的期望值,如圖8所示,其中α和β分別為連續的閉區間[0.01,0.50]和[0.01,0.99]。

圖8 安全性模型的指標三維圖Fig.8 3D diagram of indexes for security model
分析當對手對用戶通信鏈路至少捕獲一次的概率或捕獲次數的期望達到最大時,對手帶寬分配比例β隨對手帶寬占有比例α的變化情況,如圖9、圖10 所示,其中α和β的取值范圍均屬于連續閉區間[0.001,0.990]。

圖9 指標1 達到最大值時β 隨α 的變化情況Fig.9 Change of β with α when index 1 reaches the maximum

圖10 指標2 達到最大值時β 隨α 的變化情況Fig.10 Change of β with α when index 2 reaches the maximum
當指標計算結果分別達到最大值時,對β隨α的變化規律產生的原因進行分析。由圖9 可以看出,當指標1 達到最大值時,β總是隨著α增大而逐漸減小。由上文結論可知,用戶在一個Guard 節點更換周期內,選中對手的Guard 節點以及至少選中一次對手Exit 節點的概率分別為P1=P(A)和P2=1-(1-P(B))360。可以看出,即使用戶選中對手Exit 節點的概率P(B)的值較小,用戶也會在一個Guard 節點更換周期內,以較大的概率選中對手的Exit 節點,并且對手在此周期內只進行一次Guard 節點的選擇。因此,對手在Guard 節點處分配更高的帶寬值可以帶來更高的捕獲率,同時當對手占有帶寬的總比例α逐漸增大時,更高的帶寬分配比例將向Guard 節點處傾斜,而對手在Exit 節點處分配的帶寬比例β逐漸減小也是合理的。
由圖10 可以看出,當指標2 達到最大值時,隨著α的增大,β的取值從0.50 開始以很小的幅度減小。由上文結論可知,當P(B)=P(A)時,對手捕獲用戶通信鏈路概率最大,且對手捕獲用戶通信鏈路次數的期望值也最大,但P(B)與P(A)的取值受BN、BN1、BN2的影響,即使α接近于1,β的取值也不會小于0.45。因此,不能簡單地認為當β=0.5 時,對手捕獲鏈路次數的期望值最大。
通過改變Tor 用戶模型中的參數對不同類型用戶的安全性進行分析。由指標2 的建模方法可知,用戶模型中的兩個參數對指標2 的影響是線性的,因此本節僅研究用戶模型對指標1 的影響。由于用戶在一段時間內建立的通信鏈路數量及更換Guard節點的周期可以分別利用用戶每天平均建立的鏈路數M及更換Guard 節點的周期L進行度量,因此僅針對M及L這兩個參數,使用控制變量法對各類Tor 用戶的安全性進行研究。
本文根據用戶每天平均建立的通信鏈路數M來衡量用戶使用Tor 的頻率,并將Tor 用戶分為5 類,如表3 所示。

表3 根據通信鏈路數量的用戶分類Table 3 User classification according to the number of communication links
借助指標1,計算并分析5 類用戶面對不同Tor帶寬占有比例α的對手時,通信鏈路被對手至少捕獲一次的最大值Pmax及達到Pmax時β取值隨α的變化情況,如圖11 所示,其中R為根據M計算所得的用戶在180 天內建立的通信鏈路總數。由圖11 可以看出,對于使用Tor 的頻率大于每天一次的所有用戶,其Pmax的取值較為接近。例如,當對手在Tor 中占有帶寬比例為0.2 時,在180 天內,對手對用戶U3、U4、U5 的Pmax取值約為0.5。由圖12 可以看出,當不同的用戶取到Pmax時,對手在Exit 節點處的帶寬分配比例β具有較大差別。例如,當α=0.1 時,對手在用戶U1~用戶U5 分別達到Pmax時,β的取值分別約為0.440、0.360、0.100、0.017、0.006。

圖11 R 取不同值時Pmax隨α 的變化情況Fig.11 Change of Pmax with α when R takes different values

圖12 R 取不同值時β 隨α 的變化情況Fig.12 Change of β with α when R takes different values
根據不同的Guard 節點更換周期L對用戶進行分類,用戶分類情況如表4 所示。

表4 根據Guard 節點更換周期的用戶分類Table 4 User classification according to Guard node replacement cycle
根據表4 中的用戶類型,并借助指標1,計算并分析4 類用戶面對不同Tor 帶寬占有比例α的對手時,通信鏈路被對手至少捕獲一次概率的最大值Pmax1及達到Pmax1時β取值隨α變化的情況,如 圖13所示,其中K表示用戶180 天內更換Guard 節點的次數。由圖13 可以看出,對于帶寬占有比例為α的對手,Pmax1隨著用戶更換Guard 節點的周期增大而減小。對于用戶U6 與U7 而言,只要對手帶寬占有比例α分別約超過0.001 與0.040 時,其Pmax1值都接 近于1。對于用戶U9 而言,即使對手占有50%的Tor 總帶寬,其Pmax1也低于0.439。

圖13 K 取不同值時Pmax1隨α 的變化情況Fig.13 Change of Pmax1 with α when K takes different values
由圖14 可以看出,除了U6 與U7 這類頻繁更換Guard 節點的用戶,用戶U8 與U9 在達到Pmax1時,β隨α的變化規律與上文中的預測一致。因此,Guard節點更換周期對于達到Pmax1時β取值隨α變化的影響可以忽略不計。

圖14 K 取不同值時β 隨α 的變化情況Fig.14 Change of β with α when K takes different values
本文依據Tor 路徑選擇算法、各類用戶模型及對手模型,建立面向端到端溯源攻擊的Tor 安全性模型,并基于真實環境中Tor 節點信息進行用戶通信鏈路中繼節點選擇的蒙特卡洛模擬實驗。實驗結果驗證了該模型的合理性與正確性,并表明其可以較精確地預測不同能力對手對各類用戶安全性的破壞程度。下一步將研究可觀察到Tor 中繼節點通信流量但未在Tor 匿名系統中貢獻網絡帶寬的被動監聽型攻擊對手,并評估此類攻擊對手對Tor 用戶安全性的破壞程度。