一种基于多维度特征深度学习的Tor匿名网络流量识别方法
- 国知局
- 2024-08-02 12:37:08
本发明涉及网络安全技术,具体涉及一种基于多维度特征深度学习的tor匿名网络流量识别方法。
背景技术:
1、随着互联网技术的快速发展,网络安全问题日益凸显。tor(the onion router)网络作为一种匿名通信系统,被广泛应用于保护用户隐私和信息安全。然而,由于tor网络能够隐藏用户的真实ip地址和通信内容,它也被一些不法分子用来进行非法活动,如传播违法信息、交易非法物品等。因此,识别和监测tor网络流量成为网络安全领域的重要研究课题。
2、tor网络通过多层加密和多次路由的方式实现通信的匿名性。用户的流量在进入tor网络后,被多次加密并通过多个中继节点进行转发,使得外界难以追踪通信的源头和目的地。这种高强度的匿名性给流量识别带来了巨大的挑战。
3、鉴于现有技术的不足,本发明提出了一种基于多维度特征深度学习的tor暗网流量识别方法,旨在提高识别的准确性和效率。本发明利用深度学习模型,从网络流量数据中自动提取时域、空域和频域的有效特征,结合tor流量的特有模式,建立准确的识别模型,从而实现对tor流量的高效识别和监测。
技术实现思路
1、有鉴于此,本发明提供了一种针对tor匿名通信网络流量的识别方法,旨在准确且高效地从互联网流量中识别出tor匿名通信网络流量,为执法部门、安全研究者和用户提供了tor匿名通信网络流量的高效识别和监测,平衡了隐私保护和安全监管之间的矛盾。
2、一种基于多维度特征深度学习的tor匿名网络流量识别方法,所述方法包括:
3、s100.数据包的抓取和初步筛选;
4、s200.将数据包归类为一系列网络流,并将每个网络流表示为,其中为该网络流中的第个流量包,为该网络流中的流量包数量;对每条网络流,提取其ja3流量指纹,并且与tor-ja3流量指纹库匹配,若流量指纹存在于tor-ja3流量指纹库,则该网络流为tor网络流;
5、s300.对于未匹配tor流量指纹库的网络流,使用统计方法提取其统计特征,并提取这些网络流中数据包的上下行方向;
6、s400.在s300的基础上,按照时间戳排序数据包,获得数据包的时序顺序,并对这些网络流提取时域特征;
7、s500.在s400的基础上,使用fft算法进一步对网络流提取频域特征;
8、s600.在s500的基础上,使用cnn深度学习模型对网络流中的每一个数据包提取其内容特征,并以构成网络流的数据包作为节点,以数据包的内容特征作为节点嵌入向量,依据s400中数据包的时序顺序和s300中数据包的上下行方向作为关系构成每个网络流的流量数据图;并使用异构图神经网络模型提取流量数据图的图特征;
9、s700.在步骤s600的基础上,训练并使用全连接神经网络融合s300中归一化后的统计特征、s400中归一化后的时域特征、s500中的频域特征和s600中的图特征,并得到每条网络流的分类结果。对于识别出的tor网络流,将其于s200中提取出的ja3流量指纹存入tor-ja3流量指纹库。
10、进一步的,在步骤s100中,步骤s100具体为:
11、s110.使用wireshark或tcpdump软件进行数据包的抓取,后文简称“抓包”;
12、s120.当抓取到所需识别的所有数据包后,通过以下2种规则筛除相关种类的数据包:(1)非tcp流量;(2)非ssl/tls流量;
13、s130.将筛选后的数据包储存为pcap数据格式原始文件。
14、进一步的,在步骤s200中,步骤s200具体为:
15、s210.通过数据包的流量五元组信息将数据包分类为条网络流,后文简称“聚流”;流量五元组信息包括:(1)源ip地址;(2)目的ip地址;(3)源端口号;(4)目的端口号;(5)协议;
16、s220.提取每条网络流中tls握手过程中发送的五种参数,进而提取每条网络流的ja3流量指纹,下文简称“提取指纹操作”;tls握手过程中发送的五种参数具体包括:(1)ssl/tls版本号;(2)支持的加密套件;(3)支持的扩展;(4)支持的椭圆曲线;(5)支持的椭圆曲线点格式;
17、s230.在tor-ja3流量指纹库中搜索每条网络流的ja3流量指纹。若该ja3流量指纹存在于tor-ja3流量指纹库,则该网络流为tor网络流。
18、可选的,初始的tor-ja3流量指纹库可以选择通过在本地局域网中搭建tor环境并模拟使用环境,与此同时使用wireshark或tcpdump进行抓包和聚流;对所得到的tor网络流进行提取指纹操作,所得到的ja3流量指纹即为初始tor-ja3流量指纹库。
19、进一步的,在步骤s300中,步骤s300具体为:
20、s310.通过统计方式提取每条网络流的10种统计特征,其中为网络流中数据包的个数。包括以下10种特征:(1)网络流中的数据包数量;(2)网络流中的数据包平均长度;(3)网络流中的数据包长度的中位数;(4)网络流中的数据包的最大值;(5)网络流中的数据包的最小值;(6)网络流中的数据包长度的标准差;(7)网络流中的数据包的上下行比例;(8)数据包传输层的tcp标志位;(9)网络流中数据包的上行包头平均长度;(10)网络流中数据包的下行包头平均长度;
21、s320.对s310中的每条网络流统计特征中的统计特征使用min-max标准化;其中,该网络流统计特征为pcap中的全部条网络流中的第个流,该流的统计特征记为;其具体公式为:
22、
23、其中,为特征经过min-max标准化后得到的归一化特征,即可得到经过归一化后的网络流统计特征便于之后过程使用;
24、s330.提取每条网络流中的每个数据包的上下行方向,并将其储存为上行序列和。
25、进一步的,在步骤s400中,步骤s400具体为:
26、s410.按照时序顺序排序数据包。具体而言,使用数据包中的时间戳决定数据包的先后顺序;
27、s420.将按照时序顺序排列好的数据包储存为时序序列;
28、s430.通过数据包时间戳、时序和上下行方向属性提取每条网络流的时域特征;包括以下5种特征:(1)网络流的持续时间;(2)网络流中数据包的平均间隔时间;(3)网络流中数据包的上行包平均间隔时间;(4)网络流中数据包的下行包平均间隔时间;(5)建立连接所用时间;
29、s440.对s430中的每条网络流时域特征中的时域特征使用min-max标准化;其中,该网络流统计特征为pcap中的全部条网络流中的第个流,该流的统计特征记为;其具体公式为:
30、
31、其中,为特征经过min-max标准化后得到的归一化特征,即可得到经过归一化后的网络流统计特征便于之后过程使用。
32、进一步的,在步骤s500中,步骤s500具体为:
33、s510.对每一条网络流,按照步骤s410中数据包中的时间戳,确定数据包的到达时间,设置一个固定时间窗口长度,将总的网络流的持续时间按照切分成固定长度的时间窗口;
34、优选的,时间窗口长度可为0.01s。
35、s520.对每一条网络流所确定的时间窗口序列,统计落在每个时间窗口的数据包数量,并按照时间窗口顺序排序,从而获取包到达数序列;
36、s530.对每一条网络流,按照步骤s420所提取的时序序列的顺序排序步骤s310中所提取的该条网络流中数据包的长度,形成数据包长度序列,其中为网络流中数据包的个数;
37、s540.对每一条网络流的运用fft算法,并将每个获取的向量元素进行实部和虚部的分离,并将所获得的实部和虚部特征直接拼接,实现每一条网络流时间层面的频域特征的提取;对每一条网络流的运用fft算法,并将每个获取的向量元素进行实部和虚部的分离,并将所获得的实部和虚部特征直接拼接,实现每一条网络流长度层面上的频域特征;
38、s550.拼接时间层面的频域特征和长度层面上的频域特征,获取每一条网络流的频域特征。
39、进一步的,在步骤s600中,步骤s600具体为:
40、s610.对每一条网络流,提取构成的每一个数据包的载荷部分;
41、s620.对每一个,定义灰度图长度,将的二进制数据转为的灰度图;具体而言,对于的二进制比特数据,将每一个比特转化为一个像素点,其比特信息作为像素点的灰度值,并依序排列为的灰度图;如果数据包长度超过字节,则仅取前长度的数据;如果数据包长度不足字节,则不足字节补0作为填充;
42、优选的,可以选取为32。
43、s630.使用cnn深度学习模型将编码为每个数据包的内容特征。
44、优选的,cnn深度学习模型的结构可以为如下三层:(1)二维图卷积层;(2)最大池化层;(3)全连接层;
45、s640.对每条网络流,构成一张网络流图。其中,的节点为构成该网络流的数据包;的边共有三种:(1)s420步骤中所提取的时序序列;(2)s330步骤中所提取的数据包的上行序列;(3)s330步骤中所提取的数据包的下行序列;
46、s650.将s630中所提取的每个数据包的内容特征作为中所对应的数据包节点的嵌入向量;
47、s660.定义图嵌入长度;对s650中每条网络流的网络流图,并送入异构图神经网络模型进行图特征的提取;的长度为;
48、优选的,图嵌入长度可以为128维,异构图神经网络模型的结构可以为如下六层:(1)一层图卷积层;(2)一层多头注意力机制层;(3)一层单头注意力机制层;(4)一层图卷积层;(5)一层全局池化层;(6)一层全连接层。
49、进一步的,在步骤s700中,步骤s700具体为:
50、s710.对每条网络流,将其所对应的s320中归一化后的统计特征、s440中归一化后的时域特征、s550中的频域特征和s600中的图特征拼接为网络流的最终特征;
51、s720.训练全连接神经网络模型;
52、进一步的,在步骤s720中,步骤s720包括以下步骤:
53、s721.选取互联网开源有标注tor流量数据集或通过自建数据集来获取原始数据集;自建数据集的过程为以下三步:
54、(1)通过在本地局域网中搭建tor环境并模拟使用环境,与此同时使用wireshark或tcpdump进行抓包和聚流获取tor流量原始数据并进行标注;
55、(2)通过在本地局域网中搭建明网使用环境,与此同时使用wireshark或tcpdump进行抓包和聚流获取正常流量原始数据并进行标注;
56、(3)综合标注后的tor流量原始数据和标注后的正常流量原始数据,合并并清洗后作为原始数据集;
57、s722.将s721中所获取的数据集进行如s120-s600的数据预处理过程;
58、s723.对s722中预处理结束的数据集做训练集-测试集的划分,
59、优选的,训练集-测试集的划分比例可以为8:2;
60、s724.以s723中划分好的训练集作为训练集,s723中划分好的测试集作为测试集,对全连接神经网络进行有监督的迭代训练;
61、可选的,可以使用早停法以保证模型获得较优的参数,当模型在数据集上的损失值连续上升五次时提前停止训练;并在每10轮训练结束后保存模型。
62、s730.对s720中训练完成的全连接分类器,输入网络流的最终特征,即可获取最终的分类结果;
63、s740.对分类结果中判断为tor网络流的部分,将其于步骤s220中所提取的ja3流量指纹存入tor-ja3流量指纹库,以便之后对新的网络流判断。
本文地址:https://www.jishuxx.com/zhuanli/20240802/237006.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表