针对Tor匿名通信网络的去匿名化技术研究
2023-04-27李兵
李兵
关键词:Tor匿名通信网络;去匿名化;深度学习
1 简介
洋葱路由(The Onion Router) 简称Tor,是一个用于实现匿名通信的免费开源系统[1],可以隐藏用户的位置和使用情况,避免被网络监视。研究人员一开始设计Tor的目的是用于保护美国军方的在线情报通信。后来随着Tor代码的公开,Tor现在已经成为最成功的公共匿名通信服务,每天有超过200万的用户使用Tor系统进行匿名通信。
Tor通过全球志愿者运行的中继网络对通信进行加密,然后随机反弹。这些路由器以多层方式使用加密,来确保中继节点之间的前向保密,从而为用户提供网络位置的匿名性。
Tor使其用戶能够匿名上网、聊天和发送即时消息,通过保持其互联网活动不受监控来进行保密通信,为持不同政见者、记者、告密者、企业、甚至普通用户都提供了良好的隐私保护功能,是一个面向普通用户的低延迟的匿名通信系统。
但是,由于Tor提供了匿名、防溯源的功能,是暗网(Dark Web) 的重要组成部分,通过使用Tor匿名通信技术,暗网用户的身份和位置保持匿名,无法追踪,以致犯罪分子从事非法活动可以规避司法审查。2016年Tor匿名通信服务各类别占比如图1所示。可以看出,Tor 上最常托管的内容类型是各种非法内容,包括非法药物、非法色情、黑市武器交易、黑客攻击等。
为了追踪那些利用Tor摆脱监控的犯罪分子,加强对网络空间的安全控制,亟须对Tor匿名通信进行深入分析和研究。近年来,对Tor匿名通信网络的研究成为众多学者关注的焦点。
虽然Tor能够避免流量传输过程的分析,但却不能阻止流量在输入输出时的确认。Tor为了保证日常的网络浏览具有低延迟的特性,没有使用混淆流量特征等可能导致连接变慢的技术,从而给了可乘之机,人们可以通过特定的方法观察用户的输入输出流量,对Tor匿名通信网络的流量进行分析,进一步识别用户浏览的网页,从而破坏Tor通信网络的匿名性。
现有针对Tor通信网络进行流量分析,破坏匿名性的技术可以分为主动流量分析和被动流量分析两种:1) 主动流量分析技术。根据特定模式改变流中数据包的时序,并在网络的另一端寻找该模式,从而可以将一侧的流链接到网络的另一侧并破坏它的匿名性,但是由于流量被改变,隐蔽性较差。2) 被动流量分析。从网络一侧的特定流的流量中提取特征,并在网络的另一侧寻找这些特征,虽然需要长期观察和记录大量的数据,但具有较好的隐蔽性。根据流量位置的不同,被动流量分析又可以分为两类:(1) 网站指纹分析。利用网站内容的差异,通过网络流量推断出用户访问的网站,从而实现去匿名化。(2) 流量关联分析。通过观察并关联进入和离开Tor匿名网络的流量,关联两端的流量,从而破坏Tor的匿名性。
近年来,研究人员利用传统机器学习或深度学习算法,提出了一系列的网站指纹分析方法和流量关联分析方法,并取得了较高的精度。
2 背景知识
2.1 Tor 匿名通信网络
Tor是最受欢迎的匿名通信网络,该网络由6000 多个中继节点组成。
2.1.1 匿名原则
Tor匿名通信网络包含三个代理服务器。需要匿名服务的用户首先在本地运行洋葱代理服务器。洋葱代理服务器负责通信链接建立和数据加密工作。它与目录服务器进行通信,获得全球活动的中继节点信息,然后随机选择三个节点(入口节点、中间节点和出口节点)组成回路。用户的流量经过这三个节点,最后到达目标网站服务器。系统每隔10分钟左右就会重新选择三个节点,每个节点只知道部分信息,这样就能达到匿名的目的。
2.1.2 洋葱服务
Tor 还可以为网站和其他服务器提供匿名性。配置为仅通过Tor 接收入站连接的服务器称为洋葱服务(Onion Services) 。洋葱服务通过Tor 浏览器访问,而不会透露服务器的IP 地址或网络位置。Tor 网络通过从网络内的分布式哈希表中查找它们对应的公钥和引入点来理解这些地址。由于洋葱服务的流量完全通过Tor 网络进行路由,因此与洋葱服务的连接是端到端加密的,很难成为窃听的目标。Tor为洋葱服务和Tor用户提供相互匿名,这意味着互相知道对方的IP地址。洋葱服务和客户端之间的默认路径有六个中继站,通过洋葱服务协议连接。
2.1.3 封闭世界/开放世界场景
Tor进行实验测试通常在两种场景下进行:封闭世界场景和开放世界场景。1) 在封闭世界场景,假设用户只能访问攻击者所监控的网站。例如,如果攻击者监控了100个网站并提取了它们的网站指纹特征,那么用户就只能访问这100个网站。这种场景不够现实,因为现实世界中存在大量的网站,而且用户的选择范围很广。2) 在开放世界场景,用户可以像在现实生活中一样自由访问任何网站,而不局限于被监控的那一组,更加具有现实意义。
2.2 机器学习
机器学习(Machine Learning, ML) 是人工智能研究过程中的一个产物,它是一种可以学习的算法。机器学习可以划分为几个阶段:1) 数据收集。数据能够反映事物的特点和属性;2) 模型训练。利用训练数据和对应的标签对模型进行训练,得到能够预测未知的模型;3) 模型预测。把新的数据输入到训练好的模型中,进行预测。
根据预测值,机器学习可以分为分类模型和回归模型。分类模型预测的结果是一个离散的值,如标记是“好”或“坏”。回归模型预测的结果是一个连续值,例如概率“99%”。本文研究的网站指纹攻击和流量关联分析利用的都是分类模型,只判断用户是否访问某一个网站。
2.2.1 传统机器学习
传统的机器学习算法包括支持向量机(SupportVector Machine, SVM) 、k 最近邻(k-Nearest Neighbor,k-NN) 和随机森林(Random Forest, RF) 算法等。传统的机器学习算法需要事先手动设置训练数据的特征。例如,为了识别猫的种类,需要手动设置猫的特征,包括眼睛、耳朵和头发等。然后通过分析训练数据来训练模型。随着数据数量的增加,模型的识别准确率也会增加,但最终会趋于平缓,达到收敛效果。传统的机器学习算法不适合大数据分析,因为它们不能自动提取特征。
2.2.2 深度学习
深度学习(Deep Learning, DL) 产生于20世纪,当时由于缺乏数据,效果并不理想。随着大数据时代的到来,深度学习的性能大幅度提升,在处理复杂对象如语音和图像方面具有强大的性能。深度学习是机器学习的一个子集,本质上是一个多层的神经网络。神经网络从大量数据中自动“学习”,试图模拟人脑的行为。
深度学习可以自动提取特征,不再需要手动设置特征。特征是在自己的神经网络中逐层分析中获得的。第一层的特征可能是模糊的,但经过逐层训练,区分样本类别的特征会越来越明显。例如,有一组不同宠物的照片,我们想按动物种类进行分类,深度学习可以自动确定哪些特征(例如耳朵)对于区分每种动物最重要。而在传统机器学习中,这种特征层次结构是由人类手动设置的。深度学习随着数据量的增加,性能也会增加。
3 针对Tor 匿名通信网络的去匿名化技术
Tor作为目前最流行的匿名通信网络,针对Tor去匿名化技术研究是学者们关注的焦点。针对Tor的去匿名化技术可以分为两类:网站指纹分析技术和流量关联分析技术。
3.1 威胁模型
3.1.1 网站指纹分析模型
网站指纹分析是利用网站内容的差异,通过进入Tor网络入口的流量推断出用户访问的网站。我们可以通过观察数据包的序列特征(如数据包时间、方向等)获得用户访问过哪个网站的信息。
具体来说,不同的网站有不同的流量模式,浏览某一组网站,从入口流量中提取网站的独特指纹特征。然后利用机器学习方法进行训练,训练得到一个分类器,它的输入是用户的入口流量,输出是访问对应的网站概率。
当用户通过Tor匿名通信网络浏览网站时,可以通过记录下用户和入口节点之间的流量,提取他们需要的网站指纹特征,然后与已知的网站指纹信息相匹配,获得网站信息。
通过这种方式,可以知道用户正在访问的是哪个网站,成功地实现对Tor的去匿名化。网站指纹分析对Tor的匿名性构成了巨大威胁。具体威胁模型如图2所示。
3.1.2 流量关联分析模型
流量关联分析也被广泛用于实现针对Tor匿名通信网络的去匿名化。同时观察记录进入和离开Tor匿名通信网络的流量,然后通过关联两端的流量对Tor 进行去匿名化。
图3显示了流量关联分析的威胁模型。为了实现去匿名化,需要控制大量的恶意中继节点,或窃听自治系统(Autonomous System, ASes) 和互联网服务提供商(Internet Service Provider, ISP) ,从而可以在Tor连接的入口中继和出口中继处截获流量。
由于Tor匿名通信网络加密,无法通过检查数据包的内容来确定入口和出口流量是否有關联,所以需要通过流量特征(如数据包的时间、大小、方向等),将属于同一用户的流量在两端关联起来,从而确定特定用户正在访问哪个网站,实现针对Tor的去匿名化。
3.2 网站指纹分析
由不同信息形成的网站的流量会有不同的表现,所以可以将网站流量信息作为网站的指纹。第一步是找出网站流量最容易区分的特征,例如,浏览网页时发送的数据包的数量、大小、方向等。每个特征数据对应一个网站标签,数据和标签作为训练数据集,训练网站指纹分类模型,使同一网站的数据属于同一类别。训练好的分类模型在输入待识别的网站特征数据时,能够输出每一个标签的概率,从而找到用户在访问哪一个网站。
现有网站指纹分析的工作主要分为两类:一类是基于传统机器学习的方案,一类是基于深度学习的方案。传统机器学习的方案,不能处理大规模的数据,性能有待提升。基于深度学习的方法可以充分利用数据的信息,最后的准确率往往优于基于传统机器学习的方案。
3.2.1 基于传统机器学习的网站指纹分析
现有基于机器学习的网站指纹分析工作广泛采用SVM、k-NN、RF等算法训练网站指纹分类器。当用户浏览网站时,对流量信息进行分析,判定在浏览哪一个网站。
针对Tor匿名通信网络的网站指纹分析研究工作可以追溯到2009年,并在近几年快速发展。但是,以往工作中使用的指纹特征往往是从网站的某个页面提取的,而不是整个网站中提取的,所以称之为“网页指纹”更为恰当。
文献[2]指出网页指纹识别是非常不可靠的,并首次将网页指纹特征进一步丰富为网站指纹特征。同时这项工作提出了一种新颖的网站指纹分析方法,具体来说,将网页的加载过程抽象为一个特征,从而可以分析网页痕迹的累积行为。
文献[2]通过截取一段用户流量,记录了数据包的大小。在求和的过程中插入100个数,从而得到一个固定长度的输入特征。这个特征在拥堵、带宽、页面加载时间等方面表现出较大的稳健性。文献[2]采用了LibSVM算法训练得到分类模型,达到了比当时最先进的方法更高的识别准确率。
由于网站指纹分析的性能往往与所使用的特征和分类器有关,所以相关研究特别注重改进所使用的数据特征和分类器。文献[3]提出了一种新颖的指纹特征提取方法,该方法利用RF分类器对多种网站跟踪特征进行提取,生成固定长度的特征向量,其包含175个特征。RF算法由多个决策树组成,每个决策树选择一个特征进行分类,因此RF算法在特征选择方面具有较大的优势。
然后文献[3]采用k-NN分类器对特征向量进行训练和分类,将特征数据与每个网页标签进行匹配,以找到最佳匹配标签。由于k-NN算法适合于分类任务,该方法的性能与文献[2]相似。文献[3]模型特征提取和分类器训练阶段利用了不同的机器学习算法,并发挥了每种算法的优势。文献[3]还分析了以前工作中使用的各种特征,发现一些简单的特征(如数据包的数量)比一些复杂的特征(如数据包到达时间)提供的信息更多。他们在正常页面、部署了网站指纹防御的页面以及洋葱服务页面上进行了大量实验测试,实验结果表明,文献[3]的准确性优于现有工作。
文献[2-3]的数据特征是从Tor匿名通信网络的入口和出口中继节点处提取的,其中入口和出口中继节点分别与客户端和目的地直接相连。而Tor网络通信过程除了经过入口和出口中继节点,还需要经过一个中间中继节点,而中继节点的数据却未被使用。
文献[4]考虑到经过中间中继节点的数据特征也可以被提取出来,提出了一种新的方法,即对来自内部-中间中继节点特征进行分析。文献[4]认为,中间中继可以在不知道用户和目的地IP地址的情况下提供大量有用的信息(如服务访问时间、入口和出口中继的位置等)。这种信息泄露给Tor匿名通信网络带来了巨大的潜在威胁。
文献[4]采用RF算法检测中继节点的位置,然后利用k-NN构造分类模型,可以有效地从中间中继节点识别Tor匿名通信服务的网站指纹。文献[4]虽然没有用这种方法来实现去匿名化,但对中间中继节点的网站指纹分析具有启发意义。
3.2.2 基于深度学习的网站指纹分析
传统的机器学习算法需要人为选择特征,特征选择的好坏与攻击的成功率有很大关系。深度学习算法不需要人工设置特征,可以自己完成对特征的选择。给定样本数据,深度学习算法先找到样本的边缘特征,然后往下逐层找到更深层次的特征。更深层次的特征分类效果更好,所以可以使用卷积神经网络(Convolutional Neural Network, CNN)、长短期记忆网络(Long Short-Term Memory, LSTM) 等深度学习模型作为分类器,然后用训练好的模型对网站指纹进行高准确率的识别[5],实现去匿名化。
文献[6]首次系统地探索了如何利用深度学习算法实现网站指纹分析,提出了堆叠的去噪自编码器(Stacked Denoising Autoencoder, SDAE) 方案。文章评估了使用SDAE、CNN和LSTM三种深度学习模型时网站指纹分类器的性能,并与使用k-NN的文献[2]进行了比较。结果发现使用CNN和SDAE模型分类器的方案的识别准确度明显超过使用k-NN分类器的方案。由于LSTM独特的递归结构,使用LSTM模型的方案受到其输入单元大小的限制,在精确度上略逊一筹,但也正因如此,其性能随时间下降是最慢的。此外,使用CNN的方案学习速度最快,在开放世界和较小的封闭世界中表现最好。文献[6]所提出的SDAE则整体表现良好。
随着网站指纹分析的发展,一些针对网站指纹分析的防御策略也被提出,使得现有基于网站指纹分析的去匿名化方案失效,研究人员提出了两种轻量级的防御措施,WTF-PAD[7]和Walkie-Talkie[8]。但是由于带宽等现实问题,这些防御措施无法真正应用部署到现实世界中。
为了抵抗这些防御措施,文獻[9]提出了一个基于卷积神经网络CNN的网站指纹分析模型。文献[9]的准确率优于文献[2-3, 6]所提出的网站指纹分析方法,在封闭世界的准确率超过98%。在部署了Walkie-Talkie防御系统的Tor匿名通信网络上,文献[9]的准确率达到49.7%,在部署了WTF-PAD防御系统的Tor 匿名通信网络上,文献[9]的准确率超过90%。实验结果表明,文献[9]提出的网站指纹分析方案能够抵抗现有的去匿名化防御策略。
3.3 流量关联分析
流量关联分析与网站指纹分析不同。流量关联分析是同时观察、截获并记录进入和离开Tor匿名通信网络,通过对流量特征进行分析,判定入口中继和出口中继的流量是否属于同一用户,从而确定特定用户正在访问哪个网站,通过关联两端的流量对Tor实现去匿名化。
传统的流量关联分析往往依赖于分析发送方和接收方TCP(Transmission Control Protocol) 的连接流量,而伴随TCP流量产生的DNS(Domain Name System) 请求则往往被忽略。其中DNS是一个将域名和IP地址相互映射的分数据库,它使人们更容易访问互联网。
文献[10]认为虽然可以利用TCP流量进行流量关联分析,但DNS流量为流量关联分析提供了更多的机会。文献[10]量化了DNS和TCP流量的公开程度,并证明了无法观察截获到TCP流量的时候,仍有很多机会可以观察并截获DNS流量,比如谷歌的DNS根服务器。
在能够观察到TCP流量的情况下,进一步使用这种额外的DNS流量可能对流量关联分析的准确性影响不大。但是在无法获取到TCP流量的情况下,使用DNS流量可以大大提高流量关联分析的效果。
文献[10]整合网站指纹分析和流量关联分析,提出了自己的攻击模型。首先对入口中继节点处截获的流量进行网站指纹分析,然后将匹配的网站与DNS 流量中的网站进行关联。值得一提的是,文献[10]所提方案对不太流行的网站有很高的识别准确率,因为这种网站关联的DNS集往往是这个网站独有的。
尽管流量关联分析在针对Tor匿名通信网络的去匿名化技术中占有很重要的地位,但在大规模应用时需要长时间地观察和捕获流量,往往是不切实际的。
文献[11]认为基于统计算法的流量关联分析技术无法捕捉到Tor匿名通信网络中复杂的动态噪声,所以往往识别的假阳率很高。文献[11]训练了一个由两层卷积和三层全连接层组成的神经网络模型,实现流量关联分析。该模型的输入是数据包之间的延迟和数据包的大小。在训练完成之后,模型的识别准确率优于当时最先进的流量关联分析方法。与之前的流量关联分析方法相比,文献[11]可以在短时间观察流量数据的情况下实现高精度的识别。在达到相同精度的情况下,比现有方法的识别速度更快。文献[11]也提出了可能的防御方向:一是想办法模糊流量特征;二是设计一个新的中继器选择机制来减少从中继器处截获流量的机会。
4 分析比较
本章系统比较了现有针对Tor匿名通信网络的去匿名化技术。
4.1 理论攻击技术
表1从不同角度比较了现有针对Tor匿名通信网络的去匿名化技术。第一列是方案,第二列是威胁模型,包括网站指纹分析和流量关联分析,第三列是攻击算法是基于机器学习还是深度学习,第四列是使用的去匿名化算法模型,第五列是去匿名化算法模型的输入特征,最后一列是方案是否能够抵抗当时的防御策略。
在针对Tor匿名通信网络的去匿名化技术相关研究中,很多工作采取了网站指纹分析的方法,而另一部分采用了流量关联分析的方法。网站指纹分析与流量关联分析有着不同的威胁模型在一定程度上是正交的。网站指纹分析主要是对网站进行分类,通常使用传统的机器学习算法,如k-NN 算法和SVM 算法。流量关联分析的重点是将进入与离开Tor网络的流量关联起来,以前通常使用基于统计学的算法,多利用深度学习算法。
网站指纹分析需要获取的信息比流量关联分析要少。网站指纹分析只需要从入口中继处提取流量信息就可以进行攻击。流量关联分析则必须同时从入口中继和出口中继提取流量信息才能够进行分析。
虽然流量关联分析的难度更大,但这并不意味着其准确性更高。在最先进的工作中,网站指纹分析比流量相关攻击更有效。但是,网站指纹分析只能分类出已经训练过的网站,它不能识别以前没有训练过的网站。而流量关联分析则没有这种困扰[11]。因为从Tor 网络离开的流量是不加密的,如果将相关的流量连接起来,就可以识别每一个网站。
4.2 封闭世界和开放世界性能
表2对比了不同方案在开放世界和封闭世界的一些结果,使用了三种评估指标:1) 准确率。即去匿名化地识别准确率;2) 真阳率TPR(true positive rate) ;真阳性样本数除以所有真实阳性样本数;3) 假阳率(false positive rate) 。假阳性样本数除以所有真实阴性样本数。
封闭世界分析:在同样的条件下,文献[6]的去匿名化准确性最低,文献[9]的准确率为98.3%,优于其他方案。文献[2-3, 12]在使用了较大规模数据集的情况下,准确率相比使用较小数据集的准确率提高了2%~4%。
开放世界分析:在开放世界中,不仅要根据被监控的网站对流量跟踪进行分类,还要区分被监控的网站和未监控的网站。开放世界的去匿名化性能可以用TPR和FPR来评估。文献[9]在TPR和FRR上始终表现最佳,TPR达到95.7%,FPR达到0.7%。文献[12] 的TPR最差,只有55%,文献[3]的FPR最差,为8%。
5 未来工作
5.1 提高去匿名化性能
网站指纹识别的准确性很大程度上依赖于所选择的特征和使用的分类算法。在未来的工作中,一方面,要不断改进提取指纹特征的方法,尽可能提取能够更加易于分辨网站的稳定的指纹特征,来应对真实世界中数量庞大的网站和不断变化的网站内容。另一方面,由于深度学习相对于传统的机器学习算法展现出了更好的性能,要不断优化现有的攻击算法并探索新的基于深度学习的去匿名化方法。
现有针对Tor匿名通信网络的去匿名化技术使用了不同的模型,可以考虑将这些模型结合在一起。例如,文献[3]使用RF输出作为网站的指纹,然后使用k-NN模型进行分类。之后的工作可以先利用深度学习的模型,例如SDAE模型去提取特征,再利用其他深度学习算法进行分类,这样就能提高攻击的准确率。除了网站指纹之外,还可以对协议进行分析,得到协议指纹,通过协议指纹去攻击Tor匿名通信网络。
5.2 有效防御机制
Tor匿名通信网络去匿名化的不断研究对Tor网络的匿名性构成了威胁,虽然有很多防御机制已经被提出,比如BuFLO[13],Tamaraw[14]等,但它们往往要求高带宽和高迟延,因此无法真正在现实中部署。WTFPAD和Wilkie-Talkie是轻量级的防御,但是文献[9]在攻击WTF-PAD 時已经获得了90% 的准确率,其对WAlik-Takie的攻击也表现出很高的准确率。
现有的防御手段大多使用模糊流量特征的方法来应对去匿名化分析,如何做好防御性能与带宽、延迟等开销之间的平衡是目前迫切需要解决的问题。因此可以设计一种新的中继器选择机制来减少去匿名化分析的机会,这种机制是未来工作中可以研究的方向。
6 结论
本文对Tor去匿名化技术从网站指纹分析和流量关联分析两个方面进行了系统的介绍,并进行了一系列的比较。基于深度学习的网站指纹分析的性能往往都优于基于传统机器学习的网站指纹分析。流量关联需要必须同时从入口中继和出口中继截取流量,比网站指纹分析所需要的信息更多。未来工作可以着重于提高去匿名化性能和开发出有效的防御机制。