当前位置:首页 期刊杂志

基于TOR 网站指纹的目标网站识别技术对比

时间:2024-09-03

◆储贝林 苏燕青 张汝娴 狄宏

(国际关系学院 北京 100091)

随着互联网的高速发展,人们对于如何在使用网络时保护个人隐私,隐匿身份有了更多的需求。许多匿名网络体系应运而生,例如TOR、JAP 等等。然而,高度的匿名化网络也为违法犯罪的活动提供了温床。因此,在防止犯罪与刑侦取证方面,如何在匿名网络中识别恶意用户所访问的网站就显得十分必要。“网站指纹”这个概念应运而生,成为当前匿名网络中进行目标网站识别技术的研究热点。

1 研究现状

网站指纹这个名称是由Hintz 首次提出[1]。但在这之前,类似的技术就有所应用。早在1996 年,Wagner 与Schneier 提出流量分析可以从被加密的SSL 数据包中得出某些结论[2]。1998 年,研究人员成功地在单个服务器访问不同的URL 时,使用流量分析识别出目标URL。

Liberatore 与Levine 在这一领域做出了进一步的研究[3]。他们OpenSSH 隧道通讯中网站集合的规模扩大到了2000 个。并且,在特征分类上,他们采用更为复杂的数据挖掘算法——Jaccard 相似系数和朴素贝尔斯分类器,取代了Bissias et al.仅使用的矩阵相关系数。实验结果中,两种分类算法的识别率都达到了令人满意的70%。

更近的突出研究则是由Herrmann 等人[4]所做的。他对使用不同匿名技术的775 个网站进行研究,诸如OpenSSL、OpenVPN、Stunnel、Cisco ⅠPsec-VPN 以及JAP、TOR。通过使用多项朴素贝叶斯分类器,实验对单调系统的识别率可达到90%,然而对JAP 仅20%,对TOR更只有2.95%。

本文主要参考的是由AndriyPanchenko、Lukas Niessen 和Andreas Zinnen 于2011 年对基于洋葱路由的网站指纹技术做出的研究[5]。他们提出了几种新的网站数据流特征作为网站指纹,并采用了SVM(支持向量机)分类器。通过参数的调整后,在4000 个封闭世界网站数据集合中,TOR 目标网站识别正确率可达到54%。

2 基于网站指纹的网站识别技术流程

基于TOR 网站指纹的目标网站识别技术分为两大部分:一是对客户端与网站服务器数据流的特征进行选取,作为用于识别目标网站的指纹特征。接着通过抓包工具获取大量的数据流,从中提取出网站指纹。二是使用机器学习分类算法,将提取到的指纹数据作为输入,经过训练后得到分类模型,继而对模型识别路等参数进行评估。若模型性能表现良好,那么未来抓取到的网站指纹就可以输入至此模型,得到网站识别的结果。

2.1 网站指纹概念

在AndriyPanchenko 等人的研究中,提出了以下的几种网站指纹特征,经试验证明,它们是可行且有效的:

(1)过滤大小小于52 的数据包

由于TOR 中链路动态变化,客户端与不同中继节点的通讯会产生数据流,从而影响有限数据的收集。因此采取过滤掉大小小于52的数据包。

(2)数据包方向与大小

数据包的大小与方向属于双方通讯中基本的流量特征。其中,客户端发送给服务器端的数据包标记为正(+),服务器端发送给客户端的数据包被标记为负(-)。

(3)总传输字节数

上述的数据包大小标记已经将双方通讯的数据流详细地记录下来。我们将其中的数据包总字节数进行求和,得到一个新的指纹特征。其中正向数据包总字节数记为TS+,负向数据包总字节数记为TS-。

(4)数据包总个数

总个数表征整个通讯过程中不同方向数据包的数量总和。同样将其作为数据包总体特征之一。其中,正向数据包总数记为NP+,负向数据包记为NP-。

(5)数据包种类数

在请求站点的过程中,因目的与操作不同,数据包间必然存在不同种类。由于数据包都采用加密,无法按内容形式对数据包进行分类,故直接使用数据包的大小不同作为区别不同数据包的依据。其中,正向数据包种类数记为OP+,负向数据包种类数记为OP-。

(6)进出数据包比例数

即为正向数据包总数(NP+)数据包总数除以负向数据包总数(NP-)。

以上即为进行网站指纹信息提取的参考参数,本文也将基于上述特征进行网站指纹的提取。

2.2 网站指纹提取

在进行指纹提取之前,关闭系统中一切无关应用与系统服务。打开TOR 浏览器,待连接至TOR 后,即可进行数据流提取工作。

TOR 成功连接后,便可打开抓包软件等待收集数据包信息。每当一个待采集网站完全加载后,应立即停止抓包,防止无关数据流的干扰。采集完成后,便可以将抓包信息导出至目标位置,等待指纹信息的提取。

2.3 网站指纹分析

对每个网站进行多次指纹采集后,就形成了各个网站的训练集。将网络指纹特征作为分类特征,具体的网站名作为分类项目,输入进机器学习算法的输入端中,就可以得到基于网站指纹信息的网站分类器。之后便可以使用交叉验证或真实采集的网站指纹进行验证,测试分类器性能。

3 仿真实验与分析

实验数据集采用Alexa’s TOP RANK 100 这一百个访问量最大的网站作为攻击者感兴趣的网站。将实验分为四组,从Alexa’s TOP RANK 100 中任意挑选40 个网站作为测试集。在三个不同的时间,对测试集网站进行数据抓取,并分别放入三个实验组中。每个网站访问100 次,从而获得100 条数据流信息,每组总计4000 条。第四组将前面三组的数据合并处理。接着再分别对每组进行指纹特征提取,并利用机器学习算法建立分类器,最后综合四组的识别率以评价算法的优劣。

由于数据量巨大且在国内访问TOR 速度极低,十分影响测量效率与效果。因此,本文直接使用T.Wang 与Ⅰ.Goldberg 于2013 年采集的TOR 网站数据流。其中,共有三个文件夹,分别是对Alexa’s TOP RANK 100 中任意挑选出的40 个网站采集的指纹信息,且每个网站都提取100 次。数据流都以带符号整数表征,采取以600 字节为增量进行聚类,存储在TXT 文档中。因此,每个文件夹中有4000 个TXT文件,且都已x_y 进行命名(x 代表网站编号,y 代表采集次序。1<=x<=40,1<=y<=100)。文件夹形式与单个文件内容如图1:

图1 指纹信息文件格式

在获取了各网站数据流信息后,便可以着手进行网站指纹的提取。编写Python 脚本data_process.py,以文件夹为单位,进行网站指纹提取。将指纹信息与对应的网站编号存入EXCEL 文档,四个文件夹共得到四个含有网站指纹信息的EXCEL 文档,分别命名为fingerprinting0.xls 、 fingerprinting1.xls 、 fingerprinting2.xls 、fingerprinting3.xls。data_process.py 与fingerprinting 文档如图2 所示:

图2 指纹信息提取与处理

本文数据分析采用WEKA 软件进行。WEKA(Waikato Environment for Knowledge Analysis)是由Java 语言开发的被广泛应用于数据挖掘和机器学习的开源软件。

WEKA 中数据文件的后缀为ARFF。ARFF 文件格式是WEKA专用的一种文件格式,此格式的文件是一种ASCⅠⅠ文本文件,描述共享一组属性结构的实例列表,由独立无序的实例组成,是WEKA表示数据集的标准方法,ARFF 不涉及实例之间的关系。如图3 所示。

将采集到的四个EXCEL 格式的指纹信息拷贝进TXT 文件中,将TS、OP、PP、NP 设置为属性,网站编号设为分类属性,数据部分按ARFF 规范进行处理。完成后将TXT 文件的后缀名改为ARFF,即完成了ARFF 文件的转换。

最后,以相同的算法对四组训练集分别进行模型训练,并采用十折交叉验证的方式(即前三组训练集3600,测试集400;最后一组训练集10800,测试集1200)检测模型识别率。接着,按以上方法,但使用不同的机器学习算法进行训练,从而比较不同算法的识别率。

在经过一系列的模型选择与参数调整后,实验结果如表1 所示。

图3 ARFF 文件格式

表1 各类算法识别率比较

正如表1 所示,SVM 在向量分类上具有很健壮的性能,其识别率在四个数据集中表现十分稳定,都达到了约54%左右的识别率。

相比而言,基于决策树的分类算法的稳定性较差,采用相同算法的情况下,数据集之间的性能差异最高可达12%。而基于决策树的分类算法,虽减少了因调参的复杂工作,且运行速度较快,但其不稳定识别率表现让它不能成为基于网站指纹的网站识别的可靠分类器。

3 结束语

本文基于当前互联网迅速发展,人们对通信隐私的需求日益增多的背景下对当前主流匿名通信系统Tor 展开研究。最后,得出以下结论:

使用SVM 进行网站指纹分类被证明切实有效的,TOR 网络并不能有效地抵抗流量分析。然而,真实的网络情况并不像实验环境那样理想。真实情况下,攻击者处于用户与入口节点之间,其中存在着许多不相关的冗余流量,影响数据包收集的效果。其次,真实环境下,用户访问目标网站的时间是随机的,攻击者很难保证避免数据切换的发生,这一过程中必然导致用户与守卫节点间通讯产生的数据包干扰。因此,攻击者要想保证自己指纹库的更新,必须以较高的频率对更新过的网站进行指纹提取与训练。这对于攻击者来说,是十分巨量的工作,这在现实生活中也是难以做到的。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!