王 琦,曹卫权,梁 杰,李 赟,吴 杰
(盲信号处理国家级重点实验室,成都 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 用户安全性的破坏程度。