summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeZhengjie <[email protected]>2021-04-19 03:19:07 +0000
committerHeZhengjie <[email protected]>2021-04-19 03:19:07 +0000
commitead54df64a1869e6c8664219688d73c7778ceaa8 (patch)
tree9105492f9a6cc0b947ce4f5fb70ab1cf9d335b9a
parentdc009f84f5ec6ea901d7177f99390f5d1d242c17 (diff)
网页指纹的发展与可行性理解
-rw-r--r--网页指纹的发展与可行性.md173
1 files changed, 173 insertions, 0 deletions
diff --git a/网页指纹的发展与可行性.md b/网页指纹的发展与可行性.md
new file mode 100644
index 0000000..d92d2c9
--- /dev/null
+++ b/网页指纹的发展与可行性.md
@@ -0,0 +1,173 @@
+## 网页指纹的发展,挑战,最新研究
+
+> 主要参考 *针对 Tor 的网页指纹识别研究综述*
+
+### 定义
+
+定义:网页指纹攻击——指从==加密==被动流量中识别出正在访问的网页,不需要识别出流量负载的内容,比如识别出这是一条访问youtube的流量即可。
+
+网页指纹攻击在实际部署中很难应用,因为其本质上就是加密流量识别,并且由于网页的子页面多种多样,更加大了识别的难度。
+
+在学术研究中,==大部分工作只关心能否识别出网页的主页面==,也有部分工作声称自己可以识别访问子页面的流量,但是往往都是在封闭数据集。
+
+攻击者的角度:互联网服务提供商、Tor 入口的控制者以及与用户处于同一AP接入点的恶意攻击者。
+
+具体场景:Tor,**DOH,TLS1.3+ESNI**,Shadowsocks
+
+相似问题:恶意流量识别,APP指纹识别,IoT用户行为
+
+#### 网页指纹直觉的可行性
+
+直觉而言:尽管匿名网络加密了所有敏感信息,通过监听和
+分析网络流量仍能判断用户是否访问某个网页.因为构成每个网页的 CSS(cascading style sheets)和 JavaScript 代码、图片、视频、广告等元素不完全相 同,访问过程中产生的网络流量就有区别,例如数据 包的大小、顺序和时间等非敏感信息可以形成网页指纹。
+
+直觉限制:并非所有网站都可识别,比如两个盗版网站都用一键建站工具,那么从网页构成上来并无差别。流量是纷繁复杂的,除了访问网页的流量,还有很多别的类型流量,比如后台流量,下载流量等等,难以保证其中不会出现特征类似的流量,尤其是特征提取不完整的情况下。
+
+是攻击而非工具:网页指纹倾向于对特定用户特定网页进行识别,比如攻击者和受害者在同一AP接入点,针对受害者可能常访问的数个常用网站进行识别。(场景:在同一Wi-Fi下,识别用户是否访问了YouTube)
+
+为什么要加这么多限制?这样才可行呀~
+
+### 发展
+
+#### 从匹配到分类
+
+02~06:匹配问题,对捕获的 用户流量构造特征生成网页指纹,与已知网页指纹进 行匹配从而判断其归属。
+
+> TLS1.1 06年
+>
+> TLS1.2 08年
+>
+> TLS1.3 18年
+
+09~现在:分类问题,攻击者首先使用提 前收集的若干目标网页(也称受监视页面)的访问流 量训练分类器,然后输入被捕获的用户访问流量,可 输出分类结果,即判断用户访问了某个受监视页面。
+
+#### 从机器学习到深度学习
+
+> 典型的公开数据集KDD-Cup99(这个是攻击流量的数据集)
+
+09-14年:数据包的统计信息(如数据包的大小和到达顺序等)
+
+发展并非是直线的,1x年仍有从流量中提取特定字段的方式。
+
+> 即便近两年也有一些工作是用深度学习提取特征+统计特征来进行识别
+
+#### 从单标签页到多标签页面
+
+单标签事脱离实际的,16年开始的工作开始解决多标签的问题,现有解决思路是把多标签场景转换为多个单标签问题。
+
+假设:在用户使用浏览器时,多个标签页面并非同时打开(即存在时间间隔),找到这个时间间隔并对流量进行分割,就能获得多个单标签访问的流量记录,然后可以对分割好的网页访问流量实施网页指纹识别。解决多标签问题时,多标签判定、流量分割和流量分类的 3 个步骤是作为一个系统性问题来考虑,每一个前置步骤中的误差都会对后续步骤的准确率产生影响。
+
+#### 从网站主页多网站所有页面
+
+很多研究并未提及识别网站主页和子页面的问题,或是默认方法通用,或是默认仅能识别主站。
+
+大部分工作从其数据收集方式可以看出并未针对子页面。
+
+20年用DOH来识别网页的工作有特意提到其可以针对网站的子页面。
+
+#### 从封闭到open1再到open2
+
+封闭:测试集中只包含训练集的流量数据。
+
+open1:测试集中还包含访问训练集中不包含的网站流量。
+
+在 open-world 中,网页指纹识别分为 2 个阶段.第 1 阶段被视作 2 分类问题,即判断一段网页访问流量是否属于普通页面类别.如果是,则判断结束;否则进入第 2 阶段, 对 N 个受监视页面进行多分类处理(相当于 closed-world 问题)
+
+> 上述过程就是再将问题转换为封闭场景问题。
+
+从16年开始,陆续有很多工作手动在测试集中**添加噪声**来进行测试,但噪声流量与目标流量的占比也是一个值得关注的问题。
+
+> open2是我加的,我认为很多声称自己是open-world的工作仅仅是在实验室模拟的环境,而非真正的开放世界,流量并非只有访问网页的流量。我猜想之所以只用访问其他网页的流量作为干扰,是为了便于描述,使结果可复现,因为干扰流量比如音乐,应用等的流量难以找到一个合适的添加方案。但是这样的开放,是否有考虑访问网页的流量在真实流量中的占比呢?
+
+### 当下挑战
+
+#### 如何更接近真实世界
+
+1. **多标签问题**
+2. **噪音流量问题**
+3. **进一步open world的样本比例问题**
+
+#### **可行性**
+
+1. **深度学习的大数据量和网页频繁变动的矛盾**
+2. **浏览器版本,操作系统不一样的效果大打折扣**
+3. **攻击者距离不同带来的差异**
+
+### 为什么我们常常说网页指纹是实验室的游戏(网页指纹在真实世界的挑战)
+
+1. 没有厘清网页指纹的边界,它不是一个通用的工具,而是针对隐私的攻击,不能针对所有类型的网站。
+2. 攻击者与受害者的距离问题:同一AP下和骨干网出入口
+3. 网站的流量变化:多久更新一次,需要多少人力物力重建?
+4. 受害者的行为:并非像实验室机器一样只会同时访问一个网站,多网页标签问题,甚至后台流量问题
+5. 如果仅仅识别主站,是否符合攻击者的需求?
+6. 如果仅仅可以用SNI识别(虽然TLS1.3+ESNI可能会解决这一点),那就不需要网页指纹了呀,所以流量识别很多时候应用场景在于Tor,或者恶意流量识别。
+
+总结:网页指纹是一个限制级大,需要大量资源(人力物力时间成本),且收获较小的事(针对隐私而言,还有其他方法)。
+
+可不可行?我觉得,条件限制的情况下,可行。
+
+### 最新研究
+
+Mockingbird2021:Tor,对抗训练
+
+FlowPrint2020:应用识别,半监督
+
+DFD2020:Tor,攻击防御
+
+TrafficSliver2020:Tor,攻击防御
+
+Shen2021:应用识别,GNN
+
+Sirinam2018:Tor,CNN
+
+Cui2019:Tor,多标签,深度学习
+
+li2018:Tor,测量,攻击防御
+
+Sirinam2019:Tor,深度学习,few-shot
+
+Zhuo2018:Shadowsocks,隐马尔可夫
+
+Chen2021:数据增强,few-shot
+
+Poster2019:Tor,攻击防御
+
+Shen2020:多标签页
+
+Shusterman2018:JS恶意代码,缓存
+
+Bhat2018:Tor,CNN
+
+Dahanayaka2020:CNN,RNN
+
+MIMIQ2020:QUIC,攻击防御,系统
+
+zhang2019:HTTP/2,深度森林,子网页
+
+Shan2021:Tor,实时,防御
+
+Cui2020:CNN,多标签,防御
+
+Tik-Tok2019:Tor,时序特征
+
+Jahani2020:Tor,防御模型
+
+Dong2020:IoT设备识别,LSTM
+
+Xu2018:多标签页,XGBoost
+
+Wang2020:优化器,新评价指标
+
+Siby2019:DOH,“关系”
+
+Bushart2020:DOH,时序特征,子页面
+
+#### 总结
+
+1. 新协议
+2. 新方法
+3. 防御
+4. 更开放
+5. 子网页
+
+ \ No newline at end of file