基于网络流量频域指纹的tor用户访问网站识别方法及系统
技术领域
1.本发明属于匿名通信系统tor技术领域,特别涉及一种基于网络流量频域指纹的tor用户访问网站识别方法及系统。
背景技术:2.有了利益的驱动,互联网中滋生了大量网络入侵行为。tor是目前最受欢迎的匿名通信系统,它每天为超过200million的用户提供隐私服务。tor通过建立一个三跳中继的加密链路来保护用户访问的匿名性。这些中继被随机选择,并且在客户端访问服务器的过程中要定期更换链路。虽然直接破解tor匿名通信系统十分困难,但是通过先前的研究证明,网络流量分析能够影响tor的安全性,特别是网站指纹攻击(website fingerprint,wf)。用户在访问每个网站时会产生不同的网络流量特征,例如不同的数据包数量,不同的流量突发模式等。在wf攻击中,执法者在受监控用户以及tor入口节点之间的加密连接中拦截流量并提取流量数据包的特征。通过分类器确定所拦截的流量与其感兴趣的网站是否有对应关系,如果流量与分类器匹配,即可说明受监控的用户正在访问其感兴趣的网站。wf攻击能够让执法者确定受监控用户是否在浏览违法网站,尤其是进行黑色交易的网站,这对于打击违法犯罪有重要意义。
3.为了让tor网络更加安全,研究人员提出了一些防御措施来抵御wf攻击,其基本原理是对数据包流量进行操作(添加、删除、延迟数据包等措施),以达到混淆流量特征的目的。
4.tor的初衷是为了在数据通信过程中给用户提供匿名性。tor要尽量避免 wf攻击的发生,以免对其安全性造成影响,因此提出了针对wf攻击的防御措施。但是对于执法人员来说,由于tor中出现了大量违法行为,监控非法人员以及网站是必要的,因此需要对使用防御措施的tor进行进一步wf攻击的研究。由于抵御措施的提出,基本都减少了原始tor流量中的流量突发,并对其进行了流量混淆,使wf攻击效率明显下降。对于未来可能被tor使用的措施来说,提升其识别准确率是很重要的。其次,洋葱服务是tor所提供的最安全的服务,其中包含了大量违法交易。对于使用洋葱服务的tor网络进行wf攻击也是值得关注的研究。用户在洋葱服务中访问网站需要建立更复杂的链路,并且有更完善的安全验证机制。这使访问流量中掺杂了大量出于身份验证目的而产生的流量噪声。现有方法对使用洋葱服务的tor流量进行指纹识别效果还不是很理想。这些方法虽然能够从流量的时序、方向等不同的特征中发现用户访问不同网站的行为模式,但是它们都没能减小流量噪声对指纹识别的影响。
技术实现要素:5.现有方法往往通过手动提取用户访问网站的流量特征,构造机器学习或深度学习模型来对流量特征进行分类,此类方法在tor网络存在防御措施或采用洋葱服务场景下的分类效果不佳,针对此问题,本发明提出一种基于网络流量频域指纹的tor用户访问网站识
别方法及系统,在一定程度上提升了网站指纹识别准确率。
6.为了实现上述目的,本发明采用以下的技术方案:
7.本发明提供了一种基于网络流量频域指纹的tor用户访问网站识别方法,包含以下步骤:
8.在用户访问网站的过程中捕获后台流量,生成原始流量数据包;
9.提取原始流量数据包中信元序列的方向和长度信息,将其组合形成信元特征序列;
10.将信元特征序列通过离散小波变换转化为信元频域特征序列,并保留离散小波变换后生成的低频序列;
11.将信元频域特征序列以及其对应的网站标签存储到数据库;
12.根据模型训练需求从数据库中提取信元频域特征序列以及其对应的网站标签,并生成训练序列矩阵和训练标签矩阵;
13.根据流量的数据类型及特征构建深度学习分类模型;
14.利用训练序列矩阵和训练标签矩阵对深度学习分类模型进行训练,通过训练选择出合适的超参数;
15.从数据库中提取待测信元频域特征序列,生成测试序列矩阵;
16.利用深度学习分类模型对测试序列矩阵进行预测,获取待测信元频域特征序列所对应的网站标签,完成对未知流量的识别,将流量与网站关联起来。
17.进一步地,所述提取原始流量数据包中信元序列的方向和长度信息,将其组合形成信元特征序列,包括:
18.将原始信元序列映射到[+1,-1]的值域中,规定数据流入执法者的方向为“+1”,数据流出执法者的方向为
“‑
1”,从而构建信元方向序列seq
dir
;
[0019]
客户端与服务器之间是通过tcp协议进行交互的,首先将不包含tcp协议的信元过滤出去,然后提取tcp协议层信元的长度,组成信元长度序列seq
len
;
[0020]
将信元方向序列和信元长度序列相结合,通过将这两个序列的各项相乘的方式构建信元特征序列seq
mix
,如公式(1)所示:
[0021]
seq
mix
=seq
len
×
seq
dir
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)。
[0022]
进一步地,所述离散小波变换使用带通滤波器对信元特征序列进行一层架构分解,并将降采样滤波器的倍数q设为2,序列分解方法如公式(2)和公式 (3)所示:
[0023][0024][0025]
式中,l(k)表示低通滤波器,h(k)表示高通滤波器,n表示时域中的信元特征,k表示频域中的信元特征,n和k是变量;信元特征序列经过公式(2)和公式(3)频域处理后得到一个低频序列x
1,l
(n)和一个高频序列x
1,h
(n),低频序列x
1,l
(n)包含了信元特征序列中变化缓慢的部分,是序列的基本框架,属于序列的近似信息,高频序列x
1,h
(n)包含了信元特征序列中变化迅速的部分,属于序列的细节信息,其中包含了噪声,因此将低频序列x
1,l
(n)保留下来,去除高频序列x
1,h
(n)。
[0026]
进一步地,所述深度学习分类模型包括基本模块层、全连接层和自注意力机制层;
所述基本模块层依次包括conv layer、pad、batch normalization、eluor relu、max pooling、pad和dropout;所述全连接层依次包括fc layer、batchnormalization、relu和dropout;所述自注意力机制层依次包括embedding、 self-attention layer、batch normalization、relu、dropout和label smoothing。
[0027]
进一步地,所述dropout、batch normalization和label smoothing属于正则化技术来防止模型训练过程中出现过拟合;所述dropout用于减少隐藏节点之间的相互作用,通过让某个神经元概率停止工作的方式,使模型的泛化性加强;所述batch normalization用于让输出结果归一化,使输出服从标准正态分布;所述label smoothing用于促使神经网络中进行softmax激活函数激活之后的分类概率结果向正确分类靠近。
[0028]
进一步地,对于一维信元频域特征序列,将不同长度的信元频域特征序列长度设定为固定阈值,长度小于阈值的序列填充0,长度大于阈值的序列做截断处理,将所有经过处理后的信元频域特征序列组合起来构成深度学习分类模型的输入矩阵。
[0029]
进一步地,所述超参数包括wavelet、base model、number of fc layers、 fc、self-attention、optimizer、batch size和dropout[base model,self-attention, fc]。
[0030]
进一步地,给所述超参数划定取值范围,对于取值范围较小的超参数,对其进行遍历取值,对于取值范围较大的超参数,使用二分法对超参数进行取值。
[0031]
本发明还提供了一种基于网络流量频域指纹的tor用户访问网站识别系统,包括:
[0032]
流量数据包捕获模块,用于在用户访问网站的过程中捕获后台流量,生成原始流量数据包;
[0033]
信元特征序列提取模块,用于提取原始流量数据包中信元序列的方向和长度信息,将其组合形成信元特征序列;
[0034]
信元频域特征序列生成模块,用于将信元特征序列通过离散小波变换转化为信元频域特征序列,并保留离散小波变换后生成的低频序列;
[0035]
数据库模块,用于将信元频域特征序列以及其对应的网站标签存储到数据库;
[0036]
训练集生成模块,用于根据模型训练需求从数据库中提取信元频域特征序列以及其对应的网站标签,并生成训练序列矩阵和训练标签矩阵;
[0037]
模型构建模块,用于根据流量的数据类型及特征构建深度学习分类模型;
[0038]
模型训练模块,用于利用训练序列矩阵和训练标签矩阵对深度学习分类模型进行训练,通过训练选择出合适的超参数;
[0039]
测试集生成模块,用于从数据库中提取待测信元频域特征序列,生成测试序列矩阵;
[0040]
模型分类模块,用于利用深度学习分类模型对测试序列矩阵进行预测,获取待测信元频域特征序列所对应的网站标签,完成对未知流量的识别,将流量与网站关联起来。
[0041]
与现有技术相比,本发明具有以下优点:
[0042]
本发明的基于网络流量频域指纹的tor用户访问网站识别方法(fdf)提取访问流量中时域信元序列的方向和长度特征,将其组合形成信元特征序列,将信元特征序列进行离散小波变换并获取信元频域特征序列的低频部分,去除掉包含噪声的高频部分,这种将离散小波变换作为频域处理方法可以有效减少用户在访问网站过程中出现的噪声对指纹识别产生的影响,提升了指纹识别准确率。通过使用卷积神经网络(cnn)、全连接层(fc)和
自注意力机制层 (self-attention)相结合的深度学习分类模型,能够发现频域特征序列之间的内在联系,高效完成对访问流量的识别分类,并且在模型中使用多种正则化技术来防止模型训练过程中出现过拟合问题,进一步提高模型分类准确率。尤其对于采用防御措施以及洋葱服务的场景下,由于安全机制的增加,噪声对指纹识别产生的影响会更大,本发明在这些环境中网站指纹识别准确率明显优于现有方法。
附图说明
[0043]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]
图1是现有网站指纹识别方法过程示意图;
[0045]
图2是本发明实施例的基于网络流量频域指纹的tor用户访问网站识别方法的流程示意图;
[0046]
图3是本发明实施例的离散小波变换分解过程架构图;
[0047]
图4是本发明实施例的信元特征序列分解过程图;
[0048]
图5是本发明实施例的深度学习分类模型架构图;
[0049]
图6是本发明实施例的不同模型训练过程的消耗时间图;
[0050]
图7是本发明实施例的开放世界中攻击的precision-recall曲线图。
具体实施方式
[0051]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]
tor由数千个中继组成了一个全球范围的志愿者覆盖网络来引导互联网流量。在用户访问网站的过程中,其访问流量会经过多层加密使攻击者无法了解用户正在访问哪些网站。在洋葱服务中出现了许多违法网站,用户可以登录网站完成交易而不被追踪。因此,在了解用户身份的前提下获取其正在访问的网站是一个值得研究的问题。虽然tor能有有效保护用户的安全隐私,但是还是可以通过流量分析的手段来降低用户的匿名性。用户访问网站时会产生一系列关联流量,这些流量在一定时间内模式相对固定。即在一定时间范围内同一地区的用户访问相同的网站可以获取相似的数据包。因此可以通过分析用户的访问流量来判别用户正在访问的网站。如图1所示,在本地部署一个执法者,收集客户端与服务器之间的网络流量,进而识别用户正在访问的网站。这个执法者可以是路由器、互联网服务提供商(isp)、自治服务等,能够任意收集客户端与入口节点之间的加密流量。执法者不能对数据包进行丢弃、修改、插入以及延迟等操作。如果在用户访问网站的过程中对流量进行篡改,可能会导致用户返回页面出现错误或异常。这不仅会影响用户的浏览,还会警示用户其隐私可能泄露。尤其是对于非法用户而言,会增加收集其罪证的难度。
[0053]
对于执法者感兴趣的网站,我们将它们称之为受监控网站。对于其他类型的网站,
我们称之为不受监控的网站。在网站指纹识别任务中,执法者的任务是对受监控网站进行识别。执法者需要设立一个分类器,除此之外他还要通过 tor网络循环访问受监控网站,收集访问过程中的流量。收集完成后要手动提取流量特征,并将所有处理过的流量数据构造成流量矩阵用于分类器的训练。当分类器训练完成后,执法者可以被动收集被监视用户访问服务器过程中的加密流量,将流量按照与训练集相同方式处理后,使用分类器对流量进行分类来确定受监视用户正在访问的网站是否为受监控网站。
[0054]
在现有网站指纹识别方法中,影响tor流量指纹分类的主要因素是流量中的噪声,这些噪声能有效混淆原始tor流量的特征,降低其分类准确率。针对此问题,我们通过频域变换就可以降低噪声对分类的影响,基于此,本实施例提出基于网络流量频域指纹的tor用户访问网站识别方法,如图2所示,包含以下步骤:
[0055]
步骤s1,在用户访问网站的过程中捕获后台流量,生成原始流量数据包。
[0056]
步骤s2,提取原始流量数据包中信元序列的方向和长度信息,将其组合形成信元特征序列。
[0057]
步骤s3,将信元特征序列通过离散小波变换转化为信元频域特征序列,并保留离散小波变换后生成的低频序列,通过频域转换的方法能够加大不同网站的流量模式差别,可以获得更好的分类结果。
[0058]
步骤s4,将信元频域特征序列以及其对应的网站标签存储到数据库。
[0059]
步骤s5,根据模型训练需求,从数据库中提取大量的信元频域特征序列以及其对应的网站标签,并生成训练序列矩阵和训练标签矩阵。
[0060]
步骤s6,根据流量的数据类型及特征构建深度学习分类模型,并使用一系列防止过拟合的方法来提升模型分类的准确率。
[0061]
步骤s7,利用训练序列矩阵和训练标签矩阵对深度学习分类模型进行训练,通过训练选择出合适的超参数。
[0062]
步骤s8,从数据库中提取待测信元频域特征序列,生成测试序列矩阵。
[0063]
步骤s9,利用深度学习分类模型对测试序列矩阵进行预测,获取待测信元频域特征序列所对应的网站标签,完成对未知流量的识别,将流量与网站关联起来。
[0064]
具体的,步骤s2提取信元特征序列包括:
[0065]
通过抓取用户访问网站过程中的数据包,能够获得该网站的数据包信元序列。通过分析该序列,能够提取信元序列的方向、长度、时序以及突发等多种特征。我们选择其中的信元序列的方向和长度作为关键特征进行提取。
[0066]
将原始信元序列映射到[+1,-1]的值域中,执法者通常会在入口中继之前进行监控,规定数据流入执法者的方向为“+1”,数据流出执法者的方向为
“‑
1”,通过此方法构建信元方向序列seq
dir
。
[0067]
信元序列中每个信元都会经过协议包装之后再进行传输,客户端与服务器之间是通过tcp协议进行交互的,因此首先要将不包含tcp协议的信元过滤出去,然后提取tcp协议层信元的长度,组成信元长度序列seq
len
。
[0068]
将信元方向序列和信元长度序列相结合,通过将这两个序列的各项相乘的方式构建信元特征序列seq
mix
,如公式(1)所示:
[0069]
seq
mix
=seq
len
×
seq
dir
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)。
[0070]
在先前的研究中,研究人员通过实验论证,验证了信元序列的长度并不能显著提高攻击的准确性。仅仅使用信元序列的方向就可以取得很好的攻击效果。但是在我们的方法中,信元序列的长度是必要的。任何时序序列,都可以看作不同频率的正弦波无限叠加形成的。幅值是正弦波的最基本特征,如果仅仅使用信元序列的方向,无法体现出正弦波的全部信息。因此我们考虑将信元序列的长度和方向结合,能够在频域变换中取得更好的效果。
[0071]
具体的,步骤s3生成信元频域特征序列包括:
[0072]
基于时序的数据包信元序列可以理解为信号随时间变化的结果。将数据包信元序列进行频域分析可以获取更多有用的信息,分析序列频率的构成,更确切地来说就是能够将序列分解成几种子序列,通过这种方式体现出信元序列中各个信元的内在联系,方便在后续神经网络训练过程中能够取得更好的效果。
[0073]
dwt(discrete wavelet transformation)能够对基本小波的尺度和平移进行离散化。它能够分析局部时域过程中的频域特征,且更适合对非平稳过程进行分析。离散小波变换使用带通滤波器将信元特征序列分解成多个频域分量,这样能够大大降低噪声的干扰,使表现形式更加直观。离散序列进行离散小波变换分解过程架构如图3所示。
[0074]
图3中,l(n)和h(n)分别代表低通滤波器和高通滤波器,
↓
q表示q倍降采样滤波器。架构中第α层分解出的序列可以按照关系式(2)和(3)表示。高频成分会在每一层中被提取出来,而低频成分则会被部署到下一层继续进行分解。由于每一层都会进行q倍降采样,因此若输入信元特征序列的长度是l,那么第α层中的x
α,l
(i)和x
α,h
(i)的长度均为l/q
α
。
[0075][0076][0077]
在本实例中,我们对数据包信元特征序列进行一层架构分解,并将降采样滤波器的倍数设为2,因此序列分解方法如公式(4)和公式(5)所示:
[0078][0079][0080]
式中,l(k)表示低通滤波器,h(k)表示高通滤波器,n表示时域中的信元特征,k表示频域中的信元特征,n和k是变量;如图4所示,信元特征序列经过公式(4)和公式(5)频域处理后得到一个低频序列x
1,l
(n)和一个高频序列x
1,h
(n),低频序列x
1,l
(n)包含了信元特征序列中变化缓慢的部分,是序列的基本框架,属于序列的近似信息,高频序列x
1,h
(n)包含了信元特征序列中变化迅速的部分,属于序列的细节信息,其中包含了噪声。因此将能够表示序列轮廓特征的低频序列x
1,l
(n)保留下来用于模型的训练,去除高频序列x
1,h
(n),可以减少序列中噪声对于指纹识别的干扰。
[0081]
特征频域处理只进行一层dwt分解的理由是:在dwt的其它应用中,往往需要进行多层小波分解才能达到更好的效果。dwt每次分解都会形成高频和低频两个成分,这两个成分长度相同。在我们的方法中,我们每次使用的都是分解过后的低频成分。也就是说,每进行一层dwt分解,信元特征序列长度都要减半。举例来说,在fdf模型中信元特征序列的输入长度为5000,如果进行二层dwt则需要原始信元特征序列长度为20000。我们通过统计分析发现,所有的原始信元特征序列长度都小于10000,因此需要对信元特征序列进行大量填
充。这会对原始序列产生很大的影响,导致了分类结果准确率降低。综上所述,我们选择对信元特征序列进行了一层dwt分解。
[0082]
具体的,步骤s6构建深度学习分类模型包括:
[0083]
在tor上进行网站指纹识别是一个监督分类问题。从深度指纹攻击(df) 开始,深度学习技术在网站指纹识别问题上取得了很好的效果。在df中,每个 max pooling之前使用了两层卷积层。研究人员认为在每个base model中添加更多的卷积层,可以获取更深层次的网络,更有效地提取特征。在我们的模型中,每个max pooling之前仅仅使用了一个卷积层,这样可以有效减少神经网络的复杂度。在base model之后,我们添加了一个self-attention层,这样做的原因在于cnn只考虑感受野中的信息,只作用在一个局部范围上。而self-attention 考虑的是整个信元频域特征序列上的信息,包含的范围更为广泛。因此我们考虑先通过cnn提取信元频域特征序列中的局部特征,再通过self-attention提取全局特征,从而形成完整的模型。这样做不仅降低了神经网络的复杂度,还不影响对特征的提取。深度学习分类模型的架构如图5所示,具体包括基本模块层、全连接层和自注意力机制层;所述基本模块层依次包括conv layer(卷积层)、pad(填充层)、batch normalization(正则化)、elu or relu(激活函数)、 max pooling(池化层)、pad(填充层)和dropout(正则化);所述全连接层依次包括fc layer(全连接层)、batch normalization(正则化)、relu(激活函数) 和dropout(正则化);所述自注意力机制层依次包括embedding(加密函数)、 self-attention layer(自注意力机制层)、batch normalization(正则化)、relu (激活函数)、dropout(正则化)和label smoothing(正则化)。
[0084]
由于神经网络对输入尺寸有固定的要求,对于一维信元频域特征序列,需要将不同长度的信元频域特征序列长度设定为固定阈值,长度小于阈值的序列填充0,长度大于阈值的序列做截断处理,将所有经过处理后的信元频域特征序列组合起来构成深度学习分类模型的输入矩阵。
[0085]
在tor中用户访问网站时由于网络堵塞、身份验证等原因会产生许多无用数据包,这可能会使同一用户在临近时间点对相同网站进行多次访问时产生差异较大的流量,这些噪声数据包会导致在神经网络训练过程中出现过拟合问题。对于过拟合问题,我们使用了dropout、batch normalization(bn)以及labelsmoothing方法等正则化技术。dropout可以减少隐藏节点之间的相互作用,通过让某个神经元概率停止工作的方式,使模型的泛化性加强。bn可以让输出结果归一化,使输出服从标准正态分布,减少了内部协变量偏移(ics),它不仅能帮助网络更快拟合,还能减少过拟合问题。由于卷积层参数较少,dropout很少放在卷积层后面使用,一般都是使用bn。因此在我们的模型中,每个cnn之后紧连接bn,并且在max pooling之后使用dropout来防止过拟合。而在fc 以及self-attention过程中的参数较多,因此可以将bn和dropout一起使用。
[0086]
为了在神经网络预测过程中预测的概率分布与真实分布接近,常用的做法是采用one-hot方法对真实标签进行编码,这种编码方式会使模型缺乏适应性,对它的预测过于自信,进而导致过拟合问题的发生。label smoothing通过增加一个平滑系数,使得最大预测与其它类别平均值之间差距的经验分布更加平滑,软化了one-hot编码,减小了过拟合问题。label smoothing的实质是促使神经网络中进行softmax激活函数激活之后的分类概率结果向正确分类靠近,因此将其放在模型的最后部分。
[0087]
针对不同模块中超参数的选择问题,我们根据经验给这些超参数划定了一个取值范围。对于取值范围较小的超参数,对其进行遍历取值。对于取值范围较大的超参数,使用二分法对超参数进行取值。在模型构建的过程中,我们逐块对超参数进行了筛选取值,最终获得了最佳超参数组合。表1中展示了模型中超参数的选择过程,包含了每个超参数的取值范围以及取得最佳的效果值。我们利用收集的未采取防御的封闭数据集进行了调参实验,并使用其他数据集进行验证,都取得了很好的效果。
[0088]
表1 fdf的超参数选择
[0089][0090]
与上述基于网络流量频域指纹的tor用户访问网站识别方法相应地,本实施例还提出一种基于网络流量频域指纹的tor用户访问网站识别系统,包括:
[0091]
流量数据包捕获模块,用于在用户访问网站的过程中捕获后台流量,生成原始流量数据包;
[0092]
信元特征序列提取模块,用于提取原始流量数据包中信元序列的方向和长度信息,将其组合形成信元特征序列;
[0093]
信元频域特征序列生成模块,用于将信元特征序列通过离散小波变换转化为信元频域特征序列,并保留离散小波变换后生成的低频序列;
[0094]
数据库模块,用于将信元频域特征序列以及其对应的网站标签存储到数据库;
[0095]
训练集生成模块,用于根据模型训练需求从数据库中提取信元频域特征序列以及其对应的网站标签,并生成训练序列矩阵和训练标签矩阵;
[0096]
模型构建模块,用于根据流量的数据类型及特征构建深度学习分类模型;
[0097]
模型训练模块,用于利用训练序列矩阵和训练标签矩阵对深度学习分类模型进行训练,通过训练选择出合适的超参数;
[0098]
测试集生成模块,用于从数据库中提取待测信元频域特征序列,生成测试序列矩阵;
[0099]
模型分类模块,用于利用深度学习分类模型对测试序列矩阵进行预测,获取待测信元频域特征序列所对应的网站标签,完成对未知流量的识别,将流量与网站关联起来。
[0100]
下面通过实验与分析更好地说明本发明。
[0101]
为验证提出的fdf方法性能,本实验基于undefended、wtf-pad以及onionsites数据集进行了一系列实验。
[0102]
(1)数据集
[0103]
封闭世界数据集:我们通过tor网络对alexa排名前100个网站的主页进行了循环爬取,每个网站共爬取了1000次。我们在十台不同国家vps服务器的 lxd容器上部署了该项
工作。
[0104]
开放世界数据集:由于对所有互联网网站进行访问是不现实的,因此我们选择部分网站用于模拟开放世界的实验。并且开放世界网站集要比封闭世界网站集大得多。我们按照顺序访问了alexa排名前40000个网站。这些网站为不受监控的网站,不能包含封闭世界实验中所收集的100个受监控的网站。我们在相同的十个vps服务器中部署了该项工作。
[0105]
onion服务数据集:overdorf等人对洋葱域名进行了收集,并对这些网站进行了指纹分析。他们将实验所用的数据集以tshark日志的形式发布到互联网上。由于收集大量洋葱域名是一项困难的工作,因此我们选择使用该数据集进行实验。
[0106]
防御数据集:我们对wtf-pad防御方法进行了评估测试。对于wtf-pad 防御,我们使用研究人员在github发布的脚本代码对我们收集的原始流量进行了改造,用于模拟真实环境下访问过程中根据防御协议填充产生的流量。
[0107]
在我们的实验中共使用了5个数据集。在封闭世界场景中,对undefended、 wtf-pad防御以及洋葱服务三种方法进行了数据收集,分别生成undefended (cw)、wtf-pad(cw)以及onion sites(cw)数据集。在开放世界场景中,对 undefended以及wtf-pad防御两种方法进行了数据收集,分别生成undefended (ow)、wtf-pad(ow)数据集。表2展示的是每个数据集中网站类别以及访问网站实例的数量。我们将每个数据集随机划分为训练集、验证集以及测试集三部分。由于数据集规模较大,我们按照8:1:1的比例划分。
[0108]
表2每个数据集中的类和实例的数量
[0109][0110]
(2)封闭世界数据集上的网站指纹识别实验
[0111]
fdf方法的核心在于在将信元序列进行深度学习指纹识别之前,对信元序列进行频域处理。除了dwt之外,离散傅里叶变换dft以及离散余弦变换dct 也是主流的频域处理方法,在图像处理方向上有很好的应用。我们对上述三种频域处理方法在封闭世界环境下进行了实验对比。fft是dft的一种高效快速算法,能够缩短运算时间,因此我们使用fft代替dft进行实验。
[0112]
表3为三种频域处理方法处理之后对不同数据集进行指纹识别的准确精度结果。可以发现,dct和fft两种方法的准确率相对接近。这是因为dct是 dft的一种特殊形式,是dft的一个子集,其傅里叶级数只包含余弦项。同时, dwt在三种不同数据集上都明显优于其它两种方法,这是因为信元序列属于非平稳信号,dwt对于非平稳信号有更好的效果,而fft更适合处理平稳信号。
[0113]
表3封闭世界中三种频域处理方法攻击精度的比较
[0114][0115]
为了显示出fdf良好的攻击效果,我们与k-nn、k-fp、comul、df以及tik-tok攻击进行了比较。
[0116]
表4封闭世界中fdf与其他方法攻击精度的比较
[0117][0118][0119]
表4展示的是封闭世界场景下不同攻击方法在三种环境下的精度结果。可以发现,fdf在undefended、wtf-pad以及onion数据集上均优于其它攻击。在onion数据集上各个攻击表现得都不是很好,我们认为这与数据集有关,onion 数据集有539个类别,每个类别只有77个流量数据,数据量远远小于其它数据集,因此降低了准确率。
[0120]
(3)训练时间消耗对比
[0121]
为了评估训练时间消耗,我们对是否使用gpu加速进行了测试。我们发现, fdf在完成30个epoch之后准确精度基本趋于稳定。因此,我们将完成30个 epoch作为fdf的训练时间消耗。我们在nvidia gtx 1080ti上部署了该实验,并且使用了pytorch作为fdf深度学习模型的基本框架。如图6所示,在使用 gpu加速时,fdf的训练时间消耗为22分钟。在相同环境以及相同数据集中, df需要5小时完成训练,tik-tok需要5.5小时训练。在不使用gpu加速时, fdf大约需要2小时,df大约需要28.5小时,tik-tok大约需要29小时。综上所述,fdf攻击的训练时间消耗要远远小于其它模型,尤其是在使用gpu加速时,能够最快完成训练,因而fdf在训练时间上具备显著优势。
[0122]
(4)开放世界数据集上的网站指纹识别实验
[0123]
为了模拟实际环境,我们在更为现实的开放世界场景中进行了实验。在开放世界中,执法者首先要判断流量数据属于受监控网站还是不受监控网站,其次要将所有属于受监控网站的流量按照受监控网站有限集进行分类。
[0124]
对于开放世界场景,precision和recall被建议用于分类器的评估。truepositive rate(tpr)和false positive rate(fpr)可能会因为受监控网站有限集以及不受监控网站有限集的大小差距过大而导致对模型攻击性能的解释出现错误。
[0125]
在性能评估过程中,我们采用了df攻击中提出的标准模型。在开放世界场景中,对于受监控网站的数据集,将其按照与封闭世界相同的方式进行训练。对于不受监控网站的数据集,把其作为额外的类进行训练。我们在开放世界场景下对undefended以及wtf-pad进行了评估,分别攻击tuned for precision和 recall。precision和recall如关系式(6)和(7)所示。攻击tuned for precision时,要增加在所有被识别为受监控网站流量中受监控网站流量所占的比例。攻击 tuned for recall时,要增加所有受监控网站流量中被正确识别为受监控网站流量所占的比例。
[0126][0127][0128]
表5和表6展示的是不同方法在开放世界场景下对两个数据集分别将攻击调整为precision和recall的结果。图7展示的是开放世界中攻击的precision-recall曲线。通过上述图表能够发现,对于undefended数据集,dwt 表现出很好的效果。在调整precision时,能够达到0.99的precision以及0.94 的recall。在调整recall时,能够达到0.93的precision以及0.99的recall。对于wtf-pad数据集,由于增加了防御措施,所有方法的precision以及recall 都有所下降。表现最好的还是dwt,在调整precision时,能够达到0.98的 precision以及0.76的recall。在调整recall时,能够达到0.75的precision以及 0.96的recall。
[0129]
表5开放世界中undefended(ow)数据集上的tuned for precision和tuned for recall
[0130][0131][0132]
表6开放世界中wtf-pad(ow)数据集上的tuned for precision和tuned for recall
[0133][0134]
本实施例提出的基于网络流量频域指纹的tor用户访问网站识别方法,通过对信元序列的长度以及方向特征进行dwt处理以构建流量分析的关键特征。并使用神经网络完成对流量频域特征的学习与分类。在封闭世界场景(假设受监控用户只访问我们感兴趣的网站,通过封闭世界可以更清晰地观察到分类器的性能)以及更为现实的开放世界场景(假设受监控用户可以随机访问不同的网站,这些网站可以是我们感兴趣的网站,也可以是我们不感兴趣的网站,通过开放世界可以模拟更为现实的环境)对fdf的效果进行了评估验证。在封闭世界中, fdf在undefended、wtf-pad以及开启onion服务的数据集下均优于其他wf 攻击。在开放世界中,fdf表现依旧良好,能够取得较为理想的precision以及 recall,说明模型在更为现实的环境中也是有效的。总的来说,我们的研究结果表明了将信元序列
变换到频域进行深度学习能够取得很好的效果。
[0135]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0136]
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
技术特征:1.一种基于网络流量频域指纹的tor用户访问网站识别方法,其特征在于,包含以下步骤:在用户访问网站的过程中捕获后台流量,生成原始流量数据包;提取原始流量数据包中信元序列的方向和长度信息,将其组合形成信元特征序列;将信元特征序列通过离散小波变换转化为信元频域特征序列,并保留离散小波变换后生成的低频序列;将信元频域特征序列以及其对应的网站标签存储到数据库;根据模型训练需求从数据库中提取信元频域特征序列以及其对应的网站标签,并生成训练序列矩阵和训练标签矩阵;根据流量的数据类型及特征构建深度学习分类模型;利用训练序列矩阵和训练标签矩阵对深度学习分类模型进行训练,通过训练选择出合适的超参数;从数据库中提取待测信元频域特征序列,生成测试序列矩阵;利用深度学习分类模型对测试序列矩阵进行预测,获取待测信元频域特征序列所对应的网站标签,完成对未知流量的识别,将流量与网站关联起来。2.根据权利要求1所述的基于网络流量频域指纹的tor用户访问网站识别方法,其特征在于,所述提取原始流量数据包中信元序列的方向和长度信息,将其组合形成信元特征序列,包括:将原始信元序列映射到[+1,-1]的值域中,规定数据流入执法者的方向为“+1”,数据流出执法者的方向为
“‑
1”,从而构建信元方向序列seq
dir
;客户端与服务器之间是通过tcp协议进行交互的,首先将不包含tcp协议的信元过滤出去,然后提取tcp协议层信元的长度,组成信元长度序列seq
len
;将信元方向序列和信元长度序列相结合,通过将这两个序列的各项相乘的方式构建信元特征序列seq
mix
,如公式(1)所示:seq
mix
=seq
len
×
seq
dir
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)。3.根据权利要求1所述的基于网络流量频域指纹的tor用户访问网站识别方法,其特征在于,所述离散小波变换使用带通滤波器对信元特征序列进行一层架构分解,并将降采样滤波器的倍数q设为2,序列分解方法如公式(2)和公式(3)所示:序列分解方法如公式(2)和公式(3)所示:式中,l(k)表示低通滤波器,h(k)表示高通滤波器,n表示时域中的信元特征,k表示频域中的信元特征,n和k是变量;信元特征序列经过公式(2)和公式(3)频域处理后得到一个低频序列x
1,l
(n)和一个高频序列x
1,h
(n),低频序列x
1,l
(n)包含了信元特征序列中变化缓慢的部分,是序列的基本框架,属于序列的近似信息,高频序列x
1,h
(n)包含了信元特征序列中变化迅速的部分,属于序列的细节信息,其中包含了噪声,因此将低频序列x
1,l
(n)保留下来,去除高频序列x
1,h
(n)。4.根据权利要求1所述的基于网络流量频域指纹的tor用户访问网站识别方法,其特征在于,所述深度学习分类模型包括基本模块层、全连接层和自注意力机制层;所述基本模块
层依次包括conv layer、pad、batch normalization、elu or relu、max pooling、pad和dropout;所述全连接层依次包括fc layer、batch normalization、relu和dropout;所述自注意力机制层依次包括embedding、self-attention layer、batch normalization、relu、dropout和label smoothing。5.根据权利要求4所述的基于网络流量频域指纹的tor用户访问网站识别方法,其特征在于,所述dropout、batch normalization和label smoothing属于正则化技术来防止模型训练过程中出现过拟合;所述dropout用于减少隐藏节点之间的相互作用,通过让某个神经元概率停止工作的方式,使模型的泛化性加强;所述batch normalization用于让输出结果归一化,使输出服从标准正态分布;所述label smoothing用于促使神经网络中进行softmax激活函数激活之后的分类概率结果向正确分类靠近。6.根据权利要求1所述的基于网络流量频域指纹的tor用户访问网站识别方法,其特征在于,对于一维信元频域特征序列,将不同长度的信元频域特征序列长度设定为固定阈值,长度小于阈值的序列填充0,长度大于阈值的序列做截断处理,将所有经过处理后的信元频域特征序列组合起来构成深度学习分类模型的输入矩阵。7.根据权利要求1所述的基于网络流量频域指纹的tor用户访问网站识别方法,其特征在于,所述超参数包括wavelet、base model、number of fc layers、fc、self-attention、optimizer、batch size和dropout[base model,self-attention,fc]。8.根据权利要求7所述的基于网络流量频域指纹的tor用户访问网站识别方法,其特征在于,给所述超参数划定取值范围,对于取值范围较小的超参数,对其进行遍历取值,对于取值范围较大的超参数,使用二分法对超参数进行取值。9.一种基于网络流量频域指纹的tor用户访问网站识别系统,其特征在于,包括:流量数据包捕获模块,用于在用户访问网站的过程中捕获后台流量,生成原始流量数据包;信元特征序列提取模块,用于提取原始流量数据包中信元序列的方向和长度信息,将其组合形成信元特征序列;信元频域特征序列生成模块,用于将信元特征序列通过离散小波变换转化为信元频域特征序列,并保留离散小波变换后生成的低频序列;数据库模块,用于将信元频域特征序列以及其对应的网站标签存储到数据库;训练集生成模块,用于根据模型训练需求从数据库中提取信元频域特征序列以及其对应的网站标签,并生成训练序列矩阵和训练标签矩阵;模型构建模块,用于根据流量的数据类型及特征构建深度学习分类模型;模型训练模块,用于利用训练序列矩阵和训练标签矩阵对深度学习分类模型进行训练,通过训练选择出合适的超参数;测试集生成模块,用于从数据库中提取待测信元频域特征序列,生成测试序列矩阵;模型分类模块,用于利用深度学习分类模型对测试序列矩阵进行预测,获取待测信元频域特征序列所对应的网站标签,完成对未知流量的识别,将流量与网站关联起来。
技术总结本发明属于匿名通信系统Tor技术领域,特别涉及一种基于网络流量频域指纹的Tor用户访问网站识别方法及系统,该方法提取访问流量中时域信元序列的方向和长度特征,将其组合形成信元特征序列,将信元特征序列进行离散小波变换并获取信元频域特征序列的低频部分,去除掉包含噪声的高频部分,这种将离散小波变换作为频域处理方法可以有效减少用户在访问网站过程中出现的噪声对指纹识别产生的影响;通过使用CNN、FC和Self-Attention相结合的深度学习分类模型,能够发现频域特征序列之间的内在联系,高效完成对访问流量的识别分类,并且在模型中使用多种正则化技术来防止模型训练过程中出现过拟合问题。本发明能够在一定程度上提升网站指纹识别准确率。升网站指纹识别准确率。升网站指纹识别准确率。
技术研发人员:罗向阳 孙玉宸 王菡 马照瑞 李玲玲 刘粉林
受保护的技术使用者:中国人民解放军战略支援部队信息工程大学
技术研发日:2022.01.18
技术公布日:2022/7/5