论文笔记

这是 2019 年 CCS 会议的一篇论文,主要由卢森堡大学(University of Luxembourg)亚琛工业大学(RWTH Archen University)等团队的研究者进行研究

总共 3 页的论文有 8 个作者……

论文 PDF

这篇论文主要介绍了使用流量分割(Traffic Splitting)技术来抵抗指纹分析(Website Fingerprinting, WFP)的手段,并使用目前最常用的几种指纹分析手段对提出的流量分割策略进行了测试。

本论文是相同团队 Multipathing Traffic to Reduce Entry Node Exposure in Onion Routing 的后续工作

指纹分析

指纹分析是一种使用机器学习(Maching Learning, ML)对流量进行分类的攻击方法

攻击者首先收集不同类型的页面流量数据,并使用这些流量训练分类器。当拥有足够的精度后,即可使用这些分类器去对流量进行分类,从而找出目标流量(如使用 Tor 通信的流量)

目前在针对 Tor 的流量分析攻击中,都是使用该方案
——根据匿名流量特有的指纹,对流量进行分类

目前指纹分析主要有 k-NN(wang k-NN)、CUMUL、k-FP、DF 等方案。

这里以原本的 k-NN 算法为例

k-NN

k-近邻算法

对于已经标记好的训练数据,当有一个新的数据需要加入时,首先从已有数据中找出与其最为相近的 kk 个数据,如果这 kk 个数据都属于同一分类,那么可以认为新的数据也属于这一分类。

不同 kk 的取值,会直接影响最终结果。如图,如果取 k=3k=3,那么距离绿色圆形最近的 3 个数据分别是红色三角红色三角蓝色正方形,其会被分类至红色三角
而如果取 k=5k=5,则会另外找到两个的 蓝色正方形,因而将会被分类至蓝色正方形

k-NN 案例k-NN 案例

因此,kk 的选取至关重要,需要通过复杂的玄学调参

而寻找最近的 kk 的数据,则需要对数据距离进行度量。对于xi,xjχ,xi=(xi(1),xi(2),,xi(n))τx_i,x_j \in \chi, x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^\tau, xj=(xj(1),xj(2),,xj(n))τx_j=(x_j^{(1)},x_j^{(2)},\cdots,x_j^{(n)})^\tauxix_ixjx_j 的距离 LpL_p 为:
Lp(xi,xj)=(l=1nxi(l)xj(l)p)1pL_p(x_i,x_j) = (\sum^{n}_{l=1}|x_i^{(l)}-x_j^{(l)}|^p)^{\frac{1}{p}}

  • p=1p=1 时,该公式等价于曼哈顿距离:L1(xi,xj)=l=1nxi(l)xj(l)L_1(x_i,x_j) = \sum^n_{l=1}{|x_i^{(l)}-x_j^{(l)}|}
  • p=2p=2 时,该公式等价于欧式距离:L2(xi,xj)=l=1n(xi(l)xj(l)2)12L_2(x_i,x_j) = \sum^n_{l=1}{(|x_i^{(l)}-x_j^{(l)}|^2)}^{\frac{1}{2}}

接下来则是各个维度数据的确定,对于不同维度的参数,如果没有一个统一标准,则可能会导致一些数据权重过大。如使用厘米计算身高,每个人都是一两百的数值,而如果同时用 0011 表示性别,那么性别和身高对最终结果的影响权重相差甚远。

要解决该问题,需要对数据进行归一化处理,取每个维度的最大值减去最小值,将数据化为 [0,1][0,1] 的数据。

流量分割

指纹分析本身依赖于流量本身拥有的指纹特征(如时延、包长、频率),而如果将 Tor 的流量按照某种特殊的策略进行分割,并使用不同的电路传输,则可以降低指纹分析的精度。

在该论文中,共提及了 4 种不同的分隔策略

Round Robin

针对已经划分好的流量单元(cell),将其循环分散到各个电路中。

如图,对于有序的 88 个流量单元,分散到 33 个不同的连接中传输,每个连接中传输的只有几乎不相关的数据切片。当传输结束后,在对端重新排序即可

Round Robin 流量分割策略Round Robin 流量分割策略

Random Splitting

完全随机化地进行分割,如对于 mm 个电路,共有 nn 个流量单元需要发送,那么第 ii 个单元通过 randint(0,m)randint(0, m) 发送

Traffic Splitting by direction

根据流量流向进行分类,类似 I2P 那样,对于流入流量使用一条单独的电路,流出流量使用另一条单独的电路

随机化加权分割

使用一个 mm 维的向量 w\vec{w} 通过狄利克雷分布(Dirichlet distribution)来计算其所使用的电路

论文实验

实验设计

在论文中,针对最流行的 100100 个页面分别使用 Tor 浏览器访问 100100 次所得到的数据集进行测试

需要注意的是,文章中的流量分割仅限于用户(OP)和入口节点之间

针对这些流量,分别使用上述的 4 种流量分割策略进行分割传输,并使用 4 种指纹分析攻击手段进行分析,统计精确度。

在实验中,为了尽可能保证模拟真实环境,建立了不同入口节点,相同中间节点、出口节点的电路,并且向localhost发送请求,从而测量终端用户到入口节点的往返时延

实验结果

实验结果如下表,其中 m 表示入口节点数目,Undefended 是不使用流量分割技术,⟦2, 5⟧ 是动态随机数目入口节点

实验结果实验结果

结果分析

从实验结果可以看出,对于大部分流量分割策略,在 m>4m>4 后,并没有特别大的性能提升。而根据 Tor 本身的设计可知:增加入口节点数目可以降低单个节点暴露的信息(信息论),但会增加选中恶意入口节点的概率(如果选中恶意入口节点,将导致匿名性遭受重创)。因此,选择 m=4m=4 可以很好地折衷各种情况(Tor 本身默认会建立 33 条电路,多一条对其安全性影响不太大)

单纯根据流量流向进行分类,用于对抗指纹分析拥有意想不到的效果,论文作者猜测是目前的分类器无法很好地处理流量之间的关系。同时,由于实际使用中,往往会交叉使用多种分析策略,因此 k-FP 5050% 的准确率仍然是一个很大的威胁。

从最终结果来看,k-NN 的分析能力最弱,其余三者则相差无几。而几种流量分割方案中,根据流量方向分割以及随机加权分割拥有绝对性的优势

未完成工作

  • 如果将流量填充加入至流量分割中,将会进一步提升其抗分析能力。
  • 对于控制有多个入口节点的攻击者,流量分割表现如何