2016
野外攻击与实验条件下攻击之间的显著差异
之前关于 WF 攻击的研究做了五个限制性假设:
- 封闭世界:在封闭世界模型下,WF 攻击永远不会使用一组固定的受监控页面之外的网页进行测试。 在开放世界模型下运行的 WF 攻击必须能够确定网页是否在受监控页面集中。
- 可复制性:攻击者的分类训练集是在与客户端相同的条件下收集的。 具体来说,陈旧的训练集可能会导致 WF 准确性下降。
- 浏览行为:用户按顺序浏览网页,一页一页地浏览。
- 页面加载解析:对手知道页面何时开始和结束。 例如(与上述相关),大多数用户在页面加载之间可能有很大的时间间隔。
- 无后台流量:对手可以过滤掉所有后台流量。
假设1已有往年解决,本文主要解决2-5。
- 新鲜度(假设 2)。 我们凭经验判断,攻击者只需要少量的数据就可以有效地执行WF,因此很容易保持新鲜度。可复制性确实是可能的。 此外,我们提出并测试了几种更新训练集的方案。
- 拆分(假设 3 和 4)。 我们表明,即使用户同时访问多个页面,攻击者确实有可能从完整的实际数据包序列中知道页面何时开始和结束。 我们通过拆分将现实的数据包序列转化为实验室数据包序列:区分可能顺序甚至并行发生的不同网页。 我们证明了基于时间的分割和基于分类的分割的有效性。
- 背景噪声(假设 5)。 我们展示了几种处理背景噪声的新算法,并且证明调整训练集的攻击者仍然可以对具有两种高带宽噪声的流量准确地执行网站指纹识别:音频流噪声和文件下载噪声。
第二节描述了导致WF接近实用性的相关工作,第三节给出了本文背景和术语,第四节证明了攻击者实际上可以保持一个新的训练集,第五节描述了如何解决拆分问题,第六节展示结果,第七节解决噪声去除问题,第八节讨论了工作可重复性,第九节得出结论。
训练集更新
- 攻击者从最旧的 n 个元素开始作为他的训练集。
- 其余元素中的每个其他元素都按年代顺序(最老的在前)呈现给攻击者。 对于每个元素,攻击者通过将元素包含在他的训练集中来决定是否更新。
- 如果攻击者决定更新,则攻击者获取该元素,读取它,然后从训练集中丢弃一个元素,保持其大小。
但在上面的步骤 2 中,攻击者在决定是否获取元素之前不允许查看该元素,因为查看该元素意味着加载页面。 因此,攻击者更新训练集的选择是有限的。 本文考虑三种简单的训练集更新方案:
- 不更新:攻击者从不更新他的训练集,保留最旧的。
- 更新最旧的:对于每个元素,攻击者以概率p取出该元素,然后丢弃训练集中最旧的元素。对于 p = 1,这相当于选择训练集中的最新元素。
- 更新最不一致性:对于每个元素,攻击者以概率p取出该元素,然后丢弃他的训练集中最不一致性的元素。元素的一致性是其 100 个最近邻居中属于同一类的邻居的数量。数字越高,该元素越一致。
先抛出最古老的元素效果要最好,过时的客户端更难用网站指纹进行攻击。
拆分算法
目的 -> 让每个单元片段包含单一序列(对应一个网页)
Tor在应用层上以固定大小的Tor单元传递数据,然后才被TCP封装,因此拆分算法使用Tor单元序列而非原始的TCP/IP数据包。为此,我们从 TCP 段重建 TLS 记录,并从每个 TLS 记录的记录长度推断 Tor 单元的数量。当用户访问网页时,由于页面访问而产生的传入和传出 Tor 单元的序列称为单元序列。单个单元序列对应于单个网页。用户可能在很长一段时间内(例如一个小时)访问许多网页,攻击者收集传入和传出单元的序列作为完整序列。
拆分过程
- 基于时间:全序列首先分割规则,如果两个相邻的序列之间有时间间隔并超过 tsp (会出现使用tsp拆分单页段、未能拆分多页段两种错误)
- 基于分类:基于机器学习进一步分割为单页片段(两页面中间、一个页面的链接到另一个页面、多标签中两页面)
- 页面识别:识别与单元片段对应的页面
去除噪音
- 去除噪音
- 添加噪音