没有合适的资源?快使用搜索试试~ 我知道了~
面向中文搜索的网络加密流量侧信道分析方法.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 15 浏览量
2023-02-23
20:01:35
上传
评论
收藏 765KB DOCX 举报
温馨提示
试读
17页
面向中文搜索的网络加密流量侧信道分析方法.docx
资源推荐
资源详情
资源评论
1. 引言
网络加密流量侧信道分析借鉴了传统侧信道分析的思想,绕过破解数据加密算法本
身,利用网络应用客户端与服务器之间交互产生的数据包长度、时间、方向所组成的序列
和统计特征,试图推断出用户敏感信息,如使用的设备类型
[1]
、浏览的网站
[2]
或视频
[3]
、语
音通话内容
[4]
、视频直播动作
[5]
、键盘输入口令
[6]
等。网络侧信道分析在用户无感的情况下
被动监听网络流量,相比域名劫持、证书劫持等主动攻击方法,其代价较低,成为近年来
网络监管和打击犯罪的重要手段。
以搜索引擎为代表的网络应用通常提供增量式搜索的服务,即在用户输入的过程中根
据部分查询内容提供实时更新的建议列表。为提高响应速度,浏览器会在用户每次击键时
立即向服务器发送查询请求。尽管搜索和应答内容会被加密,但加密数据包序列仍然会泄
露用户击键时间、查询和建议长度等信息。2010 年,Chen 等人
[7]
提出模糊集缩减的搜索查
询分析方法。攻击者通过匹配建议列表长度对应的数据包长度序列,可以一次推断用户的
一个按键。然而在 2012 年,以谷歌为代表的搜索引擎率先改进了查询推荐策略,服务器会
根据时事热点、地理位置等因素生成不同长度的建议列表。为此,Schaub 等人
[8]
在 2014 年
提出随机化匹配的分析方法。对于同一搜索查询,假设建议列表长度符合高斯分布,并将
数据包长度属于某个已知前缀字符串的概率乘积作为查询的预测值。该方法虽然可以应对
变化的建议列表,但因状态爆炸存在实践上的困难。2017 年,Oh 等人
[9]
借鉴网站指纹攻击
的思想,通过构造以下行流量为主的 247 个统计和序列特征作为关键字指纹,实现对用户
输入关键字的识别。该方法同样依赖于稳定的服务器应答,因此容易受到概念漂移的影
响,当搜索建议或结果发生改变时分类器的预测精度将降低。2019 年,Monaco
[10]
首次提
出只利用搜索请求数据包特征的分析方法。该方法基于数据包长度增量实现了击键探测,
但宽松的状态转移条件会导致错误地接收无关背景流量。此外,采用语言生成模型从固定
的词典中推断查询,搜索空间会随词典规模呈指数级增长,使攻击者的相对信息增益过
低。
现有工作已经证明了网络搜索侧信道分析的可行性,但在如何利用更加稳定且区分度
高的流量特征以提高识别准确率等方面依然有待进一步研究。此外,这些研究工作只涉及
英文输入的搜索查询,缺少针对中文搜索的分析方法,存在一定的局限性。针对上述问
题,本文提出了一种面向中文搜索的网络侧信道分析方法。该方法通过监听增量式搜索产
生的网络加密流量获得击键数据包的长度和时间,然后综合利用侧信道泄露的拼音音节和
击键时间信息推断用户可能输入的中文查询。本文的主要贡献为:(1)分析了中文搜索信息
泄露的根本原因,即请求数据包长度增量和时间间隔的可区分性,基于信息论对信息泄露
进行理论量化;(2)构建了 3 阶段的侧信道分析模型,利用数据包长度增量可区分性实现击
键探测,降低了背景流量对探测准确率的影响,通过基于状态的多层匹配和基于时间的查
询推断,大幅提高了查询识别准确率;(3)针对中文搜索常用的百度、搜狗、360 和必应搜
索引擎,在实际环境中收集了模拟用户搜索的流量数据集,对理论量化值进行了实验验
证,并针对性地提出了可能的缓解机制。
2. 背景知识
本节介绍了中文搜索侧信道信息泄露的原因。其中,单行模式拼音输入法的内在属性
造成了增量式搜索网络流量的信息泄露,而 HTTP/2 头部压缩算法进一步增加了其泄露的
信息量。
2.1 单行模式拼音输入法
拼音是汉语的拉丁化方案,通过 26 个字母组成的约 400 个音节拼写出所有汉字。由
于拼音使用的广泛性,拼音输入法成为键盘输入汉字的首选。使用拼音输入法时,用户不
需要指明音节的边界,输入法会自动在音节之间插入撇号或空格分隔符。当用户输入新音
节的第 1 个字母时,拼音字符串的长度会增加超过 1 个字符。通过拼音字符串的长度变
化,可以推测用户输入拼音的长度和数量。
传统输入法将音节缓存在浮动面板中,只有当用户完成候选字选择时目标应用才能获
取输入。为了使目标应用能够对输入音节做出响应,新型输入法采用所谓单行模式,即在
浮动面板中仅保留 1 行候选汉字,将输入音节直接缓存在目标应用中。常用的单行模式输
入法如表 1 所示。采用单行模式的拼音输入法虽然提升了用户体验,但是会将输入的音节
暴露给目标应用,间接导致了本文利用的中文搜索信息泄露。
表 1 常见单行模式拼音输入法
操作系统
输入法
应用类型
分隔符
Windows
微软拼音
内置
撇号
Windows
QQ 拼音
安装
撇号
macOS
简体拼音
内置
空格
macOS
搜狗拼音
安装
撇号
macOS
百度拼音
安装
撇号
iOS
简体拼音
内置
空格
下载: 导出 CSV
| 显示表格
2.2 AJAX 增量式搜索
AJAX(Asynchronous JavaScript And XML)是一种动态网页开发技术,支持网页在后台
与服务器进行交互,能够在不刷新页面的情况下更新网页内容。AJAX 技术使增量式搜索
成为可能。当探测到用户输入时,网页会将当前搜索框中的内容作为 URL 查询部分的参
数,通过 HTTP 请求发往服务器,服务器根据算法生成建议列表并应答。用户在必应搜索
中输入“毒品”的过程如图 1 所示。相比服务器应答,搜索请求的内容与时事热点等因素无
关,且发送时间不受网络延迟的影响,因此具有更稳定的特征。
图 1 AJAX 增量式搜索实例
下载: 全尺寸图片 幻灯片
为保护用户输入的查询,搜索引擎普遍采用 TLS 协议加密应用层数据。然而,现有
TLS 版本中的数据加密算法均保留了原始明文长度。例如,在 TLS 1.3 版本的加密套件
中,数据加密虽然基于块加密算法 AES,但是在 GCM 或 CCM 链接模式下会自然转化为
流加密算法。根据 RFC 3986,撇号和空格在 URI 规范中属于特殊字符,因而 URL 中的拼
音分隔符会被百分号编码,在查询字符串中占据 3 个字符。在一次搜索中,由于 HTTP 头
部和 URL 中的其余部分通常保持不变,查询字符串的长度变化会完整保留在加密数据包序
列中。除了长度特征,搜索产生的请求数据包序列还会暴露击键时间特征。由于 AJAX 增
量式搜索会在用户每次击键时立即向服务器发送查询请求,击键时间被完整保留在请求数
据包中。根据人体运动 Fitts 定律
[11]
,击键所需的手部运动距离越远,击键所用的时间越
长,因此数据包时间会泄露一定的原始输入信息。
2.3 HTTP/2 头部压缩算法
HTTP/2 协议旨在通过管线化请求和头部压缩算法来提高 HTTP/1.1 协议的请求效率。
根据 RFC 7541,HTTP/2 头部压缩算法一方面使用索引值代表固定的头部字段,如 Host
等,另一方面通过静态哈夫曼编码来压缩变化的字符串,如请求 URL。在编码字符串中,
每个 ASCII 字符使用固定比特长度的哈夫曼编码代替,编码后的总长度用最后一个比特的
反码填充到整字节。由于小写字母的哈夫曼编码长度为 5~7 bit,短字母更可能导致字节
的零增长,因此,编码 URL 的长度增量序列会泄露有关拼音的少量信息。
对于编码 URL,不妨将其分为查询字符串和其余的非查询部分。假设$ {c}_{i} $表示
当前查询字符串中第$ i $个字符的比特长度,$ l=\Sigma {c}_{i} $表示总比特长度,$ {l_0}
= 8{m_0} + {r_0} $表示非查询部分的比特长度,其中,$ {m_0} \in \mathbb{N} $为字节
数,${r_0} \in \mathbb{N},0 \le {r_0} < 8$为剩余比特数,则编码 URL 的字节长度$L =
\left\lceil {(l + {l_0})/8} \right\rceil = $$ {m_0} + \left\lceil {(\Sigma {c_i} + {r_0})/8}
\right\rceil$。用户下次击键后,假设$ {c_j} $表示查询字符串增加的第$ j $个字符的比特长
度,则编码 URL 的字节长度增量$\Delta L = \left\lceil {(\Sigma {c_i} + \Sigma {c_j} +
{r_0})/8} \right\rceil - $$ \left\lceil {(\Sigma {c_i} + {r_0})/8} \right\rceil$。显然,当$ \Sigma
{c_j} = 8m $时,$ \Delta L = m $,与$ {r_0} $取值无关;当$ \Sigma {c_j} = 8m + r $时,
$\Delta L \in \{ m - 1, $$ m,m + 1\}$,与$ {r_0} $取值有关。拼音输入的字符编码通常不满
足$ \Sigma {c_j} = 8m $,因此编码 URL 的长度增量序列与初始的$ {r_0} $取值相关。图 2
显示了当$ {r_0} = 4 $时图 1 搜索实例的编码字符串。攻击者通过匹配不同$ {r_0} $取值下
的$ \Delta L $序列,可以排除不可能的搜索查询,从而缩小攻击的范围。
图 2 HTTP/2 头部哈夫曼编码字符串
下载: 全尺寸图片 幻灯片
3. 泄露信息量化
本节对中文搜索网络流量泄露的信息进行量化,针对用户输入过程中查询长度和击键
时间的变化分别定义了数据包长度增量和时间间隔可区分性,并考虑搜索应用的参数和模
型对信息泄露带来的影响。
3.1 数据包长度信息
定义数据包长度增量可区分性为不同击键导致的数据包长度增量差异。假设
$ \{ {s_1},{s_2}, \cdots ,{s_n}\} $表示击键序列$ {\boldsymbol{X}} = \{ {x_1},{x_2},
\cdots ,{x_n}\} $产生的数据包长度序列,$ n $为击键次数,$ {x_i} $取值为 26 个字母,
$ {\boldsymbol{D}} = \{ {d_1},{d_2}, \cdots ,{d_{n - 1}}\} $表示数据包长度增量序列,即
$ {d_i} = {s_{i + 1}} - {s_i} $。根据不同击键导致的查询字符串长度变化,将$ {x_i} $分为
两种类型:集合$ {\boldsymbol{A}} $表示增长 1 字符的非音节首字母,集合
$ {\boldsymbol{B}} $表示增长 4 字符的音节首字母。对于 HTTP/2 网站,当$ x \in
剩余16页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3675
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功