赞
踩
网站指纹(Website Fingerprinting, WFP),旨在通过观察数据包的大小和方向来推断加密和匿名连接的内容信息。通过收集Tor入口节点的流量,攻击者就利用元数据来判断Tor用户访问的网站。
为了限制 Tor 用户受到 WFP 的攻击,文章提出了一个 WFP 防御措施——TrafficSliver,它可以对抗当今的 WFP 分类器。它使用户控制在多个 Tor 入口节点上分割流量,从而限制单个入口节点可以观察到的数据。
文章提出了一种网络层防御方法,将多路径概念应用于 Tor 网络,可以将网络攻击准确率从 98% 降低到 16% 。进一步提出了一种客户端应用层防御方法,与底层匿名网络无关,通过在不同的 Tor 入口节点上为不同的网络对象发送单个 HTTP 请求,可将 WFP 分类器的检测率降低近 50 %。
为了改善隐私,匿名通信很常用,Tor是最流行的匿名网。因此,Tor成为了攻击目标,虽然Tor可以隐藏通信,但是无法隐藏传输数据包的数量、方向和时间。攻击者就可以利用这一漏洞进行网站指纹识别。WFP通过观察数据流模式,来识别匿名用户连接的内容。
WFP攻击近年来不断提高,并应用在现实世界,但是由于带宽和延迟开销太大,防御措施很难抵御WFP的攻击。文章提出了两种WFP防御措施,称为TrafficSliver,有着合理的带宽和延迟开销。TrafficSliver防御基于用户控制的多个入口上的流量分割,主要目标是限制单个节点所能观察到的数据,破坏WFP攻击的流量模式。
文章的贡献如下:
Tor不能隐藏传输数据包的数量、方向和时间,因此攻击者可以利用侧信道攻击网站指纹。WFP对应的是有监督的机器学习问题,攻击者1需要定义一组网站,2需要收集网站多个页面的加载痕迹,3分析收集到的痕迹,创建网站指纹,4使用ML来训练分类器,5使用模型来识别访问过的网站。
WFP攻击有两种威胁模式,封闭世界和开放世界。封闭世界不现实,但可以比较WFP分类器的性能,开放世界更现实。本文假设攻击者是被动观察者,不会对数据包进行解密、修改和终端,可以监控Tor用户的流量,知道用户的身份,但不知道用户正在访问哪个网站。
这一部分请各位读者自行阅读吧,主要介绍了WFP攻击、WFP防御和洋葱路由等知识。
OP:onion proxy,洋葱代理;ORs:onion relays,洋葱中继器,创建虚拟隧道通过三个节点到达目的地。
网络层防御TrafficSliver-Net的核心理念是将TCP流量分配到多个虚拟隧道上,这些隧道有独特的入口构建,共享中间和出口OR。
图 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 确认加入过程。至此,连接建立完成。
使用双向链路节点分裂来实现多路径用户连接。Tor通过子路拆分流量发送,在接受点合并为完整的数据流。
每个拆分的流量数据顺序可能不一致,Tor不包含排序信息,因此引入了一个控制单元 INFO,用户想OR发送传输顺序以保证合并的准确性。
除了实现正确的单元排序外,还引入了拆分指令的概念。根据所选的分路方案,用户向中间 OR 发送 Tor INSTRUCTION 单元,指示它如何将向后定向的用户流量分送到子电路。因此,中间 OR 的流量拆分由用户控制。
我们在 Tor 0.4.1.6 版本中实现了 TrafficSliver-Net。我们的修改主要集中在电路和 Tor 单元的处理上。此外,我们还引入了一个新的拆分模块,用于维护子线路,并提供生成和管理身份验证 cookie、拆分指令和拆分策略的功能。
应用层防御系统 TrafficSliver-App 完全独立于底层匿名网络运行。与TrafficSliver-Net相反,不需要对Tor进行任何修改。
TrafficSliverApp 是浏览器和用 OP 之间的本地代理。首先创建若干个独立的 Tor 线路,每个电路都包含一个唯一的入口 OR。通过每条线路使用多个持久连接来并行请求不同的对象(类似于普通浏览器)。然后,它接受来自用户浏览器的 HTTP 请求,根据需要对其进行修改,并通过已建路径发送请求。代理支持两种操作模式:
图 2 展示了 TrafficSliver-App 将部分请求分配到多个 Tor 路径的过程。
浏览器发送GET请求时,首先判断请求是否可以拆分。GET请求不包含包大小,也不包含范围信息。因此每个请求代理都会发送一个初始GET,要求获取该请求的一部分,确定支持范围和大小。如果服务器不支持范围选项,则直接返回。如果大小不在表头中,则获取请求的其余部分。
TrafficSliver-App 是作为 HTTP(S) 代理开发的,由 Node.js JavaScript 框架编写。在加密网络流量的情况下,我们的代理会执行中间人攻击,任意观察和修改 HTTP 流量。它拦截用户发起的 TLS 握手,并代表网络浏览器执行握手(使用其认证授权列表或销钉)。在拆分原始 HTTP GET 请求后,它会再次使用 TLS 加密指向网络服务器的流量。我们的代理可以轻松集成到 Tor 浏览器中,从而避免了用户的任何部署开销。
无论是网络层还是应用层,主要困难都是需要有一种流量分割策略来对抗WFP攻击。即,分割方案应该在同一页面的不同负载之间产生多样化,从而阻碍攻击者的识别模式。为了找到这样的策略,作者分析了通过Tor建立多条路径的不同入口OR数量,和每个入口OR观察到的流量百分比和多样性的影响。
大量的入口OR会减少每个入口OR的可用信息量,但也会增加为属于单个多径用户连接的电路选择恶意入口OR的可能性。因此,我们探讨了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。