本发明涉及网络安全,具体涉及一种基于四元数卷积神经网络的加密流量识别方法及装置。
背景技术:
1、随着人们对隐私保护和数据安全的需求日益增长,越来越多的个人和企业选择使用加密机制对流量进行加密传输,以提高流量传输的安全性。网络通信加密化已成为不可阻挡的趋势,加密网络流量呈现爆炸增长。但也有越来越多的网络攻击开始采用加密恶意流量伪装成正常网络流量的手段进行通信。对加密网络流量进行有效地监测和识别,以提高网络的服务质量、加强网络的管理以及保障数据的安全性显得十分重要。
2、现有的传统网络流量分类方法可以分为以下四类:
3、基于端口号的方法:在早期发展中,每一个网络应用都会被指定固定的端口号。例如,ssl协议相关应用使用80端口,telnet远程终端协议相关应用使用23端口等。这种分类方法的原理非常简单,只需要读取网络数据流中的第一个数据包即可成功识别,识别效率非常高而具体实现又极为简单。但是,随着技术的不断发展,该方法不适用于非标准端口或新定义的端口,动态端口技术的出现导致基于端口的流量识别方法准确率开始下降。
4、基于有效载荷的深度包检测(deep packet inspection,dpi)方法:该方法是通过匹配数据分组的有效载荷的表达式来对流量进行识别,可以有效避免上述动态端口等带来的问题。但是近年来,越来越多的应用程序在传输数据时使用加密通信,给这种流量分类方法也带来了极大挑战。
5、基于统计特征的方法:该方法是通过将网络流量特征输入机器学习模型,由模型输出识别结果,虽然这种方法不依赖数据包有效载荷的解析,但是输入模型的网络流量特征需要人工提取,需要耗费大量的人力资源,导致识别效率低且准确度低。
6、基于深度学习的方法:该方法是将数据包字节转换成灰度图的形式作为输入,使用卷积神经网络对数据包负载内容进行分类。这种方法虽然取得了较好的分类效果并且被广泛应用,但是基于灰度图的流量分类方法可解释性较差,该方法是将字节之间的关系与图像像素之间类比并且现有深度学习方法需要采用固定长度序列作为模型输入进行检测,无法识别数据包较短的加密流量,导致识别结果不准确。
7、因此,需要一种新的加密流量识别技术。
技术实现思路
1、发明目的:本发明的目的是提供一种基于四元数卷积神经网络的加密流量识别方法及装置,以较低的运算成本解决加密网络流量难以准确识别的问题。
2、技术方案:第一方面,本发明提供一种基于四元数卷积神经网络的加密流量识别方法,包括以下步骤:
3、采集数据,得到流量数据集;
4、对数据进行预处理,包括对流量进行切分、去除不相关数据、数据包统一化处理;
5、提取每条流中指定数量数据包的负载长度、到达时间间隔、方向和传输协议四个特征并对特征进行归一化;
6、在四元数空间中嵌入归一化后的数据,将特征表示成四元数矩阵形式;
7、将所述四元数矩阵作为输入数据,送入四元数卷积神经网络模型,获得加密流量识别结果,所述四元数卷积神经网络模型中的卷积操作定义为:
8、,
9、其中w=r+xi+yj+zk为四元数权值滤波矩阵,xp=r+xi+yj+zk为四元数输入向量,r、x、y、z是输入的四个特征,即数据包负载长度、到达间隔时间、方向和传输协议特征,r、x、y、z为四个特征对应滤波器的卷积核大小,i,j,k是四元数的虚数单位基,表示卷积运算。
10、第二方面,本发明提供一种基于四元数卷积神经网络的加密流量识别装置,包括:
11、数据采集模块,用于采集数据,得到流量数据集;
12、数据预处理模块,用于对数据进行预处理,包括对流量进行切分、去除不相关数据、数据包统一化处理;
13、特征提取模块,用于提取每条流中指定数量数据包的负载长度、到达时间间隔、方向和传输协议四个特征并对特征进行归一化;
14、四元数表示模块,用于在四元数空间中嵌入归一化后的数据,将特征表示成四元数矩阵形式;
15、四元数卷积神经网络识别模块,用于将所述四元数矩阵作为输入数据,送入四元数卷积神经网络模型,获得加密流量识别结果,所述四元数卷积神经网络模型中的卷积操作定义为:
16、,
17、其中w=r+xi+yj+zk为四元数权值滤波矩阵,xp=r+xi+yj+zk为四元数输入向量,r、x、y、z是输入的四个特征,即数据包负载长度、到达间隔时间、方向和传输协议特征,r、x、y、z为四个特征对应滤波器的卷积核大小,i,j,k是四元数的虚数单位基,表示卷积运算。
18、第三方面,本发明还提供一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如本发明第一方面所述的基于四元数卷积神经网络的加密流量识别方法的步骤。
19、第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述的基于四元数卷积神经网络的加密流量识别方法的步骤。
20、与现有技术相比,本发明的有益效果为:
21、本发明的基于四元数卷积神经网络的加密流量识别方法,创新地将流量识别输入由以往灰度图的形式转换成四元数的形式。在四元数的数学框架下将传统标量卷积神经网络拓展为超复数卷积神经网络,通过结合各特征通道之间的相关性使得加密流量的特征描述更为精确,分类也更为准确。本发明的方法可以在复杂的网络环境下,仅使用每个流前16个数据包的四个特征就可以达到97%的准确性,无需针对不同分类任务设计不同特征,减少了模型参数量,降低了计算开销,适用于在线分类平台。
1.一种基于四元数卷积神经网络的加密流量识别方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述流量切分包括:利用流量切分工具,根据流量的五元组信息将原始流量切割为多个独立的单元,所述五元组包括数据包的源ip地址、源端口号、目的ip地址、目的端口号、传输层协议;
3.根据权利要求2所述的方法,其特征在于,根据流量的五元组信息将原始流量切割为多个独立的单元包括:按照五元组信息将从源ip到目的ip、从源端口到目的端口方向相同以及相反的数据包提取出来,按照时间顺序排列。
4.根据权利要求1所述的方法,其特征在于,提取每条流中指定数量数据包的负载长度、到达时间间隔、方向和传输协议四个特征包括:
5.根据权利要求1所述的方法,其特征在于,在四元数空间中嵌入归一化后的数据,将特征表示成四元数矩阵形式包括:根据标准四元数表示方式将每一个数据包对应的特征表示为,转换为向量的形式,将数据包的四元数表示排列成一个矩阵,构成一个四元数矩阵。
6.根据权利要求1所述的方法,其特征在于,所述四元数卷积神经网络模型包括三个四元数卷积层、三个relu层、三个批标准化层和和一个全连接层,四元数卷积层的卷积过程的矩阵形式为:
7.根据权利要求1所述的方法,其特征在于,所述四元数卷积神经网络模型是经过训练得到的,训练过程包括:将数据包的负载长度、到达间隔时间、方向和传输协议组成的四元数矩阵及对应的真实标签值划分为训练集、验证集和测试集,利用训练集训练所述四元数卷积神经网络模型,通过参数寻优,得到最优参数,确定模型参数;利用验证集验证四元数卷积神经网络模型的性能;利用测试集测试四元数卷积神经网络模型。
8.一种基于四元数卷积神经网络的加密流量识别装置,其特征在于,包括:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的基于四元数卷积神经网络的加密流量识别方法的步骤。