摘要
网站指纹(Website Fingerprinting, WFP),旨在通过观察数据包的大小和方向来推断加密和匿名连接的内容信息。通过收集Tor入口节点的流量,攻击者就利用元数据来判断Tor用户访问的网站。
为了限制 Tor 用户受到 WFP 的攻击,文章提出了一个 WFP 防御措施——TrafficSliver,它可以对抗当今的 WFP 分类器。它使用户控制在多个 Tor 入口节点上分割流量,从而限制单个入口节点可以观察到的数据。
文章提出了一种网络层防御方法,将多路径概念应用于 Tor 网络,可以将网络攻击准确率从 98% 降低到 16% 。进一步提出了一种客户端应用层防御方法,与底层匿名网络无关,通过在不同的 Tor 入口节点上为不同的网络对象发送单个 HTTP 请求,可将 WFP 分类器的检测率降低近 50 %。
1. 介绍
为了改善隐私,匿名通信很常用,Tor是最流行的匿名网。因此,Tor成为了攻击目标,虽然Tor可以隐藏通信,但是无法隐藏传输数据包的数量、方向和时间。攻击者就可以利用这一漏洞进行网站指纹识别。WFP通过观察数据流模式,来识别匿名用户连接的内容。
WFP攻击近年来不断提高,并应用在现实世界,但是由于带宽和延迟开销太大,防御措施很难抵御WFP的攻击。文章提出了两种WFP防御措施,称为TrafficSliver,有着合理的带宽和延迟开销。TrafficSliver防御基于用户控制的多个入口上的流量分割,主要目标是限制单个节点所能观察到的数据,破坏WFP攻击的流量模式。
文章的贡献如下:
- 设计了TrafficSliver,基于多个入口分割流量,网络层防御在Tor内部实现了多路径概念;应用层防御将单个HTTP请求分配到多个Tor路径上。没有延迟,也没有虚假流量,很有效果。
- 探索了几种流量分流策略。
- 对TrafficSliver防御系统的有效性进行了广泛分析。
2. 威胁模型
Tor不能隐藏传输数据包的数量、方向和时间,因此攻击者可以利用侧信道攻击网站指纹。WFP对应的是有监督的机器学习问题,攻击者1需要定义一组网站,2需要收集网站多个页面的加载痕迹,3分析收集到的痕迹,创建网站指纹,4使用ML来训练分类器,5使用模型来识别访问过的网站。
WFP攻击有两种威胁模式,封闭世界和开放世界。封闭世界不现实,但可以比较WFP分类器的性能,开放世界更现实。本文假设攻击者是被动观察者,不会对数据包进行解密、修改和终端,可以监控Tor用户的流量,知道用户的身份,但不知道用户正在访问哪个网站。
3. 最近工作
这一部分请各位读者自行阅读吧,主要介绍了WFP攻击、WFP防御和洋葱路由等知识。
OP:onion proxy,洋葱代理;ORs:onion relays,洋葱中继器,创建虚拟隧道通过三个节点到达目的地。
4. 网络层的TrafficSliver
网络层防御TrafficSliver-Net的核心理念是将TCP流量分配到多个虚拟隧道上,这些隧道有独特的入口构建,共享中间和出口OR。
4.1 创建多路径隧道
图 1 展示了防御系统。用户的OP沿着m个入口 OR 创建多个单独的路径,并将其连接到一个共同的中间 OR。建立1条三条路径和m-1条两条路径,连接到同一个重点OR,采用了基于 cookie 的验证机制保证正确性。
为了验证各个子环路之间的关系,用户首先将生成的 cookie 沿着三跳子环路发送到中间 OR。然后引入了两个新的 Tor 单元:SET_COOKIE 和 COOKIE_SET。利用 SET_COOKIE 将 cookie 发送到中间 OR,而中间 OR 则通过 COOKIE_SET 来确认(成功)收到 cookie。
然后,用户加入剩余的两跳子电路,在另一个新引入的 Tor 单元 JOIN 中传输相同的 cookie,并通过这些子电路将其发送到中间 OR。当接收到的 cookie 与已存在的三跳子电路中存储的 cookie 成功匹配后,中间 OR 会用一个新的 Tor 单元 JOINED 确认加入过程。至此,连接建立完成。
4.2 分割和合并流量
使用双向链路节点分裂来实现多路径用户连接。Tor通过子路拆分流量发送,在接受点合并为完整的数据流。
每个拆分的流量数据顺序可能不一致,Tor不包含排序信息,因此引入了一个控制单元 INFO,用户想OR发送传输顺序以保证合并的准确性。
除了实现正确的单元排序外,还引入了拆分指令的概念。根据所选的分路方案,用户向中间 OR 发送 Tor INSTRUCTION 单元,指示它如何将向后定向的用户流量分送到子电路。因此,中间 OR 的流量拆分由用户控制。
4.3 实施
我们在 Tor 0.4.1.6 版本中实现了 TrafficSliver-Net。我们的修改主要集中在电路和 Tor 单元的处理上。此外,我们还引入了一个新的拆分模块,用于维护子线路,并提供生成和管理身份验证 cookie、拆分指令和拆分策略的功能。
5. 应用层的TrafficSliver
应用层防御系统 TrafficSliver-App 完全独立于底层匿名网络运行。与TrafficSliver-Net相反,不需要对Tor进行任何修改。
TrafficSliverApp 是浏览器和用 OP 之间的本地代理。首先创建若干个独立的 Tor 线路,每个电路都包含一个唯一的入口 OR。通过每条线路使用多个持久连接来并行请求不同的对象(类似于普通浏览器)。然后,它接受来自用户浏览器的 HTTP 请求,根据需要对其进行修改,并通过已建路径发送请求。代理支持两种操作模式:
- 通过不同的入口 OR 向属于同一网站的不同网络对象分别发送完整的 HTTP 请求。
- 通过不同的电路请求单个网络对象的不同部分。
5.1 分割和合并 HTTP 流量
图 2 展示了 TrafficSliver-App 将部分请求分配到多个 Tor 路径的过程。
浏览器发送GET请求时,首先判断请求是否可以拆分。GET请求不包含包大小,也不包含范围信息。因此每个请求代理都会发送一个初始GET,要求获取该请求的一部分,确定支持范围和大小。如果服务器不支持范围选项,则直接返回。如果大小不在表头中,则获取请求的其余部分。
5.2 实施
TrafficSliver-App 是作为 HTTP(S) 代理开发的,由 Node.js JavaScript 框架编写。在加密网络流量的情况下,我们的代理会执行中间人攻击,任意观察和修改 HTTP 流量。它拦截用户发起的 TLS 握手,并代表网络浏览器执行握手(使用其认证授权列表或销钉)。在拆分原始 HTTP GET 请求后,它会再次使用 TLS 加密指向网络服务器的流量。我们的代理可以轻松集成到 Tor 浏览器中,从而避免了用户的任何部署开销。
6. 分流策略
无论是网络层还是应用层,主要困难都是需要有一种流量分割策略来对抗WFP攻击。即,分割方案应该在同一页面的不同负载之间产生多样化,从而阻碍攻击者的识别模式。为了找到这样的策略,作者分析了通过Tor建立多条路径的不同入口OR数量,和每个入口OR观察到的流量百分比和多样性的影响。
6.1 用于流量分配的入口 OR 数量
大量的入口OR会减少每个入口OR的可用信息量,但也会增加为属于单个多径用户连接的电路选择恶意入口OR的可能性。因此,我们探讨了 𝑚 如何影响用户对 WFP 攻击的保护,并提出了在隐私保护和性能开销之间进行权衡的方案。
6.2 在多条线路上分配流量
确定了OR的数量后,就要确定如何分配流量。
网络层流量分配。分流策略是循环分流。应用于 TrafficSliver-Net 时,为每个Tor切换到下一个路径,目标是分析安全级别,评估多路径还是复杂的分流策略对WFP防御更重要。还分析了随机拆分,然后将这些策略进行比较。还评估了加权随机方案、分批加权随机(BWR)拆分策略。
应用层流量分配。TrafficSliver-App 有两种运行模式。在第一种运行模式中,我们通过不同的入口 OR 发送针对不同网络对象的完整 GET 请求。在这种情况下,我们的代理会为来自用户浏览器的每个请求随机选择一条路径,而不会将其拆分成多个部分请求。我们的目标是探索仅通过使用多路径引入的流量随机性水平在多大程度上足以防范 WFP。对于第二种操作模式,即流量分流应用通过不同的 Tor 路径请求单个网络对象的不同部分,我们最基本的分流方案是循环,即通过每个 Tor 电路请求单个网络对象的相等部分。我们还考虑了一种加权随机策略。此外,我们还会丢弃包含低于给定阈值的分数的生成向量。最后,为了增加同一网站重复加载时流量分布的多样性,我们采用了不同 exp 的加权随机方案。
7. 实验设置
7.1 模拟数据集
为了初步评估集成在 TrafficSliver-Net 中的流量分割方案的效率,我们开发了一个模拟器,根据所选方案人为分割真实世界的流量轨迹。我们将拆分后分配到同一子电路的所有单元的顺序称为子轨迹。我们的模拟器总共为单个页面负载创建了 𝑚 个子跟踪。在采用多路径传输方案时,模拟器还考虑了用户和中间 OR 之间不同电路的延迟。为此,我们测量了多个电路的往返时间(RTT),这些电路由真实 Tor 网络中相同的中间 OR 和出口 OR 以及不同的入口 OR 组成。与之前的工作[36]一样,我们通过向本地主机发送中继连接单元并触发回复时间来测量往返时间。我们收集了 4073 个成功构建的电路的 RTT,并将其集成到我们的模拟器中。
7.2 真实世界数据集
为了对我们的 TrafficSliver 防御系统进行封闭世界分析,我们使用了由 100 个最受欢迎的网站组成的数据集[3]。首先,我们为每个网站收集了 100 个未应用我们的防御措施的跟踪数据集,并将此非防御数据集称为 ALEXA-NODEF。接下来,我们收集受每种防御措施保护的痕迹。对于 TrafficSliver-Net,我们选择了最佳流量分流策略(基于多路径模拟的评估结果),为每个网站收集 100 个跟踪数据。我们将此数据集称为 ALEXA-NET-DEF。对于 TrafficSliver-App 中的每种分流方案,我们都在真实的 Tor 网络中为每个网站收集了 100 条跟踪记录。最后,我们访问了 11,307 个 Alexa 最受欢迎的网站(不包括用于构建封闭世界数据集 ALEXA-NODEF-BG 的前 100 个网站)中的每个网站一次,但未使用我们的防御措施,并将它们作为开放世界评估的背景。
7.3 分类器和评估设置
在评估中,我们考虑了四种最先进的 WFP 攻击:k-NN 、CUMUL 、k-FP 和 DF 。
8. 评估和讨论
本届评估对WFP攻击的防御。本文假设攻击者控制了恶意入口OR,知道防御及分割方案,攻击者由足够的数据来训练。
8.1介绍网络层防御。TrafficSliver-Net 可以在不添加任何人工延迟或虚假流量的情况下,将最先进的 WFP 攻击的准确率从 98% 降低到 16% 。
在第 8.2 节中,分析应用层防御。通过在不同的入口 OR 上为不同的网络对象发送单个完整 HTTP 请求,TrafficSliver-App 可将 WFP 攻击的检测率降低近 50%。它以极低的实施开销为代价提高了安全性,而且不需要对底层匿名网络进行任何更改。
8.1 网络层防御分析
8.1.1 确定最佳分割方案
为确定适用于 TrafficSliver-Net 的最佳流量拆分方案,我们使用第 7 节中介绍的模拟器对 ALEXA-NODEF 中的非防御流量轨迹进行人为拆分。对于每种流量分割方案,我们都会生成一个单独的数据集,其中包含人为创建的防御痕迹。表 1 详细列出了每个 WFP 分类器在无防御的封闭世界场景中的准确率,以及在攻击者控制一个入口 OR 的情况下,针对不同数量 𝑚 的入口 OR 所评估的拆分策略的准确率。
使用的输入 OR 数量。分析了m数量对准确性的影响。当m较大时,WFP攻击有效性会降低。最有效的方案BWR在m=5时最有效,因此m=5是个不错的选择。
不同分割方案效率。研究了每种策略的效率。轮转和随机对于准确性下降的效果不够,只有10%左右。By Direction可以降低准确性,这种策略有着较好的效果。WR和BWR效果足够好。
因此在表1中,BWR和5个入口的效果最好。
8.1.2 开放世界评估
在开放世界中使用5个入口和BWR来评估Trafficsilver-net的效率。使用Alexa-NoDef为数据集。ROC曲线如图3所示。
8.1.3 TrafficSliver-Net在真实Tor网络中的有效性
数据集为Alexa-Net-Def,表4总结了每个WFP分类器在封闭世界常营的准确性。
8.1.4 针对高级对手的安全性
图4结果。
8.1.5 防止多个恶意入口OR的安全
8.2 分析应用层防御
9. 结论
我们分别在网络层和应用层提出了新颖的轻量级流量分流(TrafficSliver)防御措施,以抵御恶意入口 OR 执行的 WFP。TrafficSliver基于用户通过多个Tor路径控制的流量分流。我们还分析了可集成到我们的防御系统中的不同分流方案的有效性。我们的研究表明,对于所有最先进的 WFP 攻击,我们的网络层防御都能将准确率从 98% 以上降低到 16% 以下,而无需添加任何人工延迟或虚假流量。TrafficSliver-Net大幅降低了所有最先进攻击的准确率,而TrafficSliver-App只需在客户端进行轻微修改即可降低准确率,因此无需对底层匿名网络进行任何修改。通过广泛的评估,我们确定了能有效阻止 WFP 攻击的系统参数和流量分流策略。除了与当前的 Tor 网络兼容外,我们的防御系统不会带来明显的带宽开销,只会产生极小的延迟开销。因此,它们适合部署在 Tor 中。
这篇文章思路不是很复杂,但是写得语言写得太冗余晦涩了,好几次都读不下去。