一种区分加密和非加密压缩流量的方法和系统转让专利

申请号 : CN201910324684.3

文献号 : CN110012029B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾学文唐政治郭志川吴京洪

申请人 : 中国科学院声学研究所北京中科视云科技有限公司

摘要 :

本发明属于网络流量数据分类技术领域,具体涉及一种区分加密和非加密压缩流量的方法,该方法包括:采集并获取网络中的网络流量数据包;解析该数据包得到网络流量数据包的有效载荷,截取固定长度的有效载荷作为待识别分类的样本序列;基于熵的特征提取算法提取所述待识别分类的样本序列的特征向量;将所述特征向量输入至预先训练好的机器学习模型进行识别分类,获取该网络流量数据包的类型,该网络流量数据包的类型包括:加密流量、非加密流量和非加密压缩流量。

权利要求 :

1.一种区分加密和非加密压缩流量的方法,其特征在于,该方法包括:采集并获取网络中的网络流量数据包;

解析该数据包得到网络流量数据包的有效载荷,截取固定长度的有效载荷作为待识别分类的样本序列;基于熵的特征提取算法提取所述待识别分类的样本序列的特征向量;

将所述特征向量输入至预先训练好的机器学习模型进行识别分类,获取该网络流量数据包的类型,该网络流量数据包的类型包括:加密流量、非加密流量和非加密压缩流量;

所述预先训练好的机器学习模型具体包括:

采集加密、非加密和非加密压缩三种性质的流量的原始数据包,同时对这三种性质的流量做好标签,作为训练数据集;

对这三种性质的流量按照基于熵的特征提取算法提取具有区分性的特征,将这三种性质流量的特征集以及其对应的标签构成训练数据集,并进行训练,获得训练好的机器学习模型。

2.根据权利要求1所述的区分加密和非加密压缩流量的方法,其特征在于,所述截取固定长度的有效载荷作为待识别分类的样本序列;具体包括:根据计算量和识别精度,截取有效载荷的固定长度;并将该固定长度的有效载荷作为待识别分类的样本序列;其中,对当前获得的网络流量数据包的有效载荷不足以设定固定长度的情况,可由下一个网络流量数据包中的有效载荷填充或者填充零,来截取有效载荷的固定长度。

3.根据权利要求1所述的区分加密和非加密压缩流量的方法,其特征在于,所述基于熵的特征提取算法提取所述待识别分类的样本序列的特征向量;具体包括:采用连续子二进制串熵的特征提取算法,

其中,Hk表示在不同长度子二进制串的情况下的连续子二进制串熵;

Sk表示在不同长度子二进制串的情况下,原来的二进制样本序列被切分成的子二进制串的集合;

mik表示子二进制串集合Sk中第i个元素的频数;

mik满足

L为原二进制样本序列的长度;

k为连续的子二进制串的数目;

l为子二进制串的长度。

4.根据权利要求3所述的区分加密和非加密压缩流量的方法,其特征在于,所述提取所述待识别分类的样本序列的特征向量具体包括:采用基于连续子二进制串熵的特征提取算法,将所述待识别分类的样本序列转换为二进制待识别分类的样本序列,采用大小为8的滑动窗口,设置初始移动步长为1,从二进制待识别分类的样本序列的头到尾滑动采样,最后将采样得到的所有8比特子二进制串依序构成新的样本序列;然后,分别设置步长为2、3、4、5、6、7和8,得到8个二进制样本序列;

对得到的8个二进制样本序列,按照连续子二进制串熵的特征提取算法,分别计算每个二进制样本序列,得到各个二进制样本序列的连续子二进制串熵Hk;将得到的各个二进制样本序列的连续子二进制串熵值构成所述待识别分类的样本序列的特征向量。

5.根据权利要求1所述的区分加密和非加密压缩流量的方法,其特征在于,所述获取该网络流量数据包的类型具体包括:实时采集网络流量数据包,解析得到固定长度的有效载荷二进制序列,根据基于连续子二进制串熵的特征提取算法提取特征向量;

预先训练好的机器学习模型对输入的特征向量进行分层计算,然后,输出一个三元组的概率值(P1,P2,P3),该三元组概率值分别为对应加密、非加密、非加密压缩三种网络流量数据包类型的可能性概率;

最后,选取三元组概率值中最大的概率值所对应的类别标签即为输入特征向量所识别出来的类别标签。

6.一种区分加密和非加密压缩流量的系统,其特征在于,该系统包括:数据采集模块,用于采集并获取网络中的网络流量数据包,

特征提取模块,用于根据需求解析该网络流量数据包,获得网络流量数据包的有效载荷,截取固定长度的有效载荷作为待识别分类的样本序列;基于熵的特征提取算法,提取所述待识别分类的样本序列的特征向量;和识别分类模块,用于将所述特征向量输入至预先训练好的机器学习模型进行识别分类,获取该网络流量数据包的类型;该网络流量数据包的类型包括:加密流量、非加密流量和非加密压缩流量;

所述预先训练好的机器学习模型具体包括:

采集加密、非加密和非加密压缩三种性质的流量的原始数据包,同时对这三种性质的流量做好标签,作为训练数据集;

对这三种性质的流量按照基于熵的特征提取算法提取具有区分性的特征,将这三种性质流量的特征集以及其对应的标签构成训练数据集,并进行训练,获得训练好的机器学习模型。

7.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5中任一项所述的方法。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行权利要求1-5中任一项所述的方法。

说明书 :

一种区分加密和非加密压缩流量的方法和系统

技术领域

[0001] 本发明属于网络流量数据分类技术领域,具体涉及一种区分加密和非加密压缩流量的方法和系统。

背景技术

[0002] 网络流量分类是现代通信网络的一项重要任务。由于高吞吐量流量需求的快速增长,为了合理管理网络资源,能够正确识别利用网络资源的不同类型的应用至关重要。因此,能够准确地对流量进行分类、识别已成为高级网络管理任务的先决条件之一,例如,提供适当的服务质量(QoS),计费和异常检测等。
[0003] 早期的网络流量分类识别技术都是针对明文的网络数据,因为在互联网兴起之处,网络中的流量都是未加密的。现有的方法主要包括了基于端口、基于有效载荷检测(DPI)、基于主机行为特征和基于网络流统计特征的机器学习等常用方法。这些方法根据不同的应用场景都具有很好效果。基于这些方法也出现了一些商用产品,例如,Snort、nDPI和思科NBAR等等。但是,随着人们对隐私的关注和技术的发展成熟,网络中传输的明文正逐渐被加密所取代。面对网络中加密的流量,传统的分类识别技术有些逐渐失效。
[0004] 目前,对加密流量的识别技术主要包括基于有效载荷的随机特性(熵)、基于流量统计特征的机器学习和深度学习等方法。这些方法在不同的应用场景下能够区分加密流量和非加密流量。但是,由于加密流量的特殊性,目前仍存在包括加密恶意流量的检测识别及加密流量的精细化识别分类等技术问题。现有的方法无法区分非加密压缩流量和加密流量这两种难区分的流量,无法为精准的网络流量识别分类管理提供了技术支持。

发明内容

[0005] 本发明的目的在于,为解决现有技术中存在上述缺陷,本发明提出了一种区分加密和非加密压缩流量的方法和系统,采集截取固定长度的网络数据包中的有效载荷,用基于连续子二进制串熵的特征提取算法,提取转化成二进制序列的待分类识别样本的特征向量,输入预先训练好的机器学习模型,识别出特征向量中的加密流量、非加密流量和非加密压缩流量;传统基于信息熵的方法只能够做到低熵值的非加密流量与高熵值的加密流量区分,而无法区分同样为高熵值的非加密压缩和加密流量。本发明提供的方法可以很好地解决这个问题,不仅可以准确地区分加密和非加密流量,而且能够区分非加密压缩和加密这两种难区分的流量,为精准的网络流量识别分类管理提供了技术支持。
[0006] 为了实现上述目的,本发明提出了一种区分加密和非加密压缩流量的方法,该方法包括:
[0007] 采集并获取网络中的网络流量数据包;
[0008] 解析该数据包得到网络流量数据包的有效载荷,截取固定长度的有效载荷作为待识别分类的样本序列;基于熵的特征提取算法提取所述待识别分类的样本序列的特征向量;
[0009] 将所述特征向量输入至预先训练好的机器学习模型进行识别分类,获取该网络流量数据包的类型,该网络流量数据包的类型包括:加密流量、非加密流量和非加密压缩流量。
[0010] 作为上述技术方案的改进之一,所述截取固定长度的有效载荷作为待识别分类的样本序列;具体包括:
[0011] 根据计算量和识别精度,截取有效载荷的固定长度;并将该固定长度的有效载荷作为待识别分类的样本序列;其中,对当前获得的网络流量数据包的有效载荷不足以设定固定长度的情况,可由下一个网络流量数据包中的有效载荷填充或者填充零,来截取有效载荷的固定长度。
[0012] 作为上述技术方案的改进之一,所述基于熵的特征提取算法提取所述待识别分类的样本序列的特征向量;具体包括:
[0013] 采用连续子二进制串熵的特征提取算法,
[0014]
[0015] 其中,Hk表示在不同长度子二进制串的情况下的连续子二进制串熵;
[0016] Sk表示在不同长度子二进制串的情况下,原来的二进制样本序列被切分成的子二进制串的集合;
[0017] mik表示子二进制串集合Sk中第i个元素的频数;
[0018] mik满足
[0019] L为原二进制样本序列的长度;
[0020] k为连续的子二进制串的数目;
[0021] l为子二进制串的长度。
[0022] 作为上述技术方案的改进之一,所述提取所述待识别分类的样本序列的特征向量具体包括:
[0023] 采用基于连续子二进制串熵的特征提取算法,将所述待识别分类的样本序列转换为二进制待识别分类的样本序列,采用大小为8的滑动窗口,设置初始移动步长为1,从二进制待识别分类的样本序列的头到尾滑动采样,最后将采样得到的所有8比特子二进制串依序构成新的样本序列;然后,分别设置步长为2、3、4、5、6、7和8,得到8个二进制样本序列;
[0024] 对得到的8个二进制样本序列,按照连续子二进制串熵的特征提取算法,分别计算每个二进制样本序列,得到各个二进制样本序列的连续子二进制串熵Hk;将得到的各个二进制样本序列的连续子二进制串熵值构成所述待识别分类的样本序列的特征向量。
[0025] 作为上述技术方案的改进之一,所述预先训练好的机器学习模型具体包括:
[0026] 采集加密、非加密和非加密压缩三种性质的流量的原始数据包,同时对这三种性质的流量做好标签,作为训练数据集。
[0027] 对这三种性质的流量按照本发明提供的基于连续子二进制串熵的特征提取算法提取具有区分性的特征,将这三种性质流量的特征集以及其对应的标签构成训练数据集,并进行训练,获得训练好的机器学习模型,即支持向量机(SVM)或者随机森林(RF)等机器学习分类模型。
[0028] 作为上述技术方案的改进之一,所述获取该网络流量数据包的类型具体包括:
[0029] 实时采集网络流量数据包,解析得到固定长度的有效载荷二进制序列,根据基于连续子二进制串熵的特征提取算法提取特征向量;
[0030] 预先训练好的机器学习模型对输入的特征向量进行层层计算,然后输出一个三元组的概率值(P1,P2,P3),该三元组概率值分别为对应加密、非加密、非加密压缩三种网络流量数据包类型的可能性概率;
[0031] 最后,选取三元组概率值中最大的概率值所对应的类别标签即为输入特征向量所识别出来的类别标签。
[0032] 基于上述的一种区分加密和非加密压缩流量的方法,本发明该提供了一种区分加密和非加密压缩流量的方法的系统,该系统包括依次连接的数据采集模块、特征提取模块、识别分类模块;其中,
[0033] 所述数据采集模块,用于采集并获取网络中的网络流量数据包,
[0034] 所述特征提取模块,用于根据需求解析该网络流量数据包,获得网络流量数据包的有效载荷,截取固定长度的有效载荷作为待识别分类的样本序列;基于熵的特征提取算法,提取所述待识别分类的样本序列的特征向量;
[0035] 所述识别分类模块,用于将所述特征向量输入至预先训练好的机器学习模型进行识别分类,获取该网络流量数据包的类型,该网络流量数据包的类型包括:加密流量、非加密流量和非加密压缩流量。
[0036] 本发明还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的方法。
[0037] 本发明还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行所述的方法。
[0038] 本发明相比于现有技术的有益效果在于:
[0039] 本发明的方法能够准确地区分加密流量、非加密流量和非加密压缩流量,更重要的是能够做到区分加密和非加密压缩这两种难区分的流量,为精准的网络流量识别分类管理提供了技术支持。另外,本发明的方法在使用较短的有效载荷二进制序列时,仍可以取得更好的识别正确率。

附图说明

[0040] 图1是本发明的一种区分加密和非加密压缩流量的方法的流程图;
[0041] 图2是本发明的一种区分加密和非加密压缩流量的系统的结构示意图。

具体实施方式

[0042] 现结合附图对本发明作进一步的描述。
[0043] 实施例1.
[0044] 如图1所示,本发明提出了一种区分加密和非加密压缩流量的方法,该方法包括:
[0045] 采集并获取网络中的网络流量数据包;
[0046] 解析该数据包得到网络流量数据包的有效载荷,截取固定长度的有效载荷作为待识别分类的样本序列;基于熵的特征提取算法提取所述待识别分类的样本序列的特征向量;
[0047] 将所述特征向量输入至预先训练好的机器学习模型进行识别分类,获取该网络流量数据包的类型,该网络流量数据包的类型包括:加密流量、非加密流量和非加密压缩流量。
[0048] 所述截取固定长度的有效载荷作为待识别分类的样本序列;具体包括:
[0049] 根据计算量和识别精度,截取有效载荷的固定长度;并将该固定长度的有效载荷作为待识别分类的样本序列;其中,对当前获得的网络流量数据包的有效载荷不足以设定固定长度的情况,可由下一个网络流量数据包中的有效载荷填充或者填充零,来截取有效载荷的固定长度。
[0050] 所述基于熵的特征提取算法提取所述待识别分类的样本序列的特征向量;具体包括:
[0051] 采用连续子二进制串熵的特征提取算法,
[0052]
[0053] 其中,Hk表示在不同长度子二进制串的情况下的连续子二进制串熵;
[0054] Sk表示在不同长度子二进制串的情况下,原来的二进制样本序列被切分成的子二进制串的集合;
[0055] mik表示子二进制串集合Sk中第i个元素的频数;
[0056] mik满足
[0057] L为原二进制样本序列的长度;
[0058] k为连续的子二进制串的数目;
[0059] l为子二进制串的长度。
[0060] 所述提取所述待识别分类的样本序列的特征向量具体包括:
[0061] 采用基于连续子二进制串熵的特征提取算法,将所述待识别分类的样本序列转换为二进制待识别分类的样本序列,采用大小为8的滑动窗口,设置初始移动步长为1,从二进制待识别分类的样本序列的头到尾滑动采样,最后将采样得到的所有8比特子二进制串依序构成新的样本序列;然后,分别设置步长为2、3、4、5、6、7和8,得到8个二进制样本序列;
[0062] 对得到的8个二进制样本序列,按照连续子二进制串熵的特征提取算法,分别计算每个二进制样本序列,得到各个二进制样本序列的连续子二进制串熵Hk;将得到的各个二进制样本序列的连续子二进制串熵值构成所述待识别分类的样本序列的特征向量。
[0063] 所述预先训练好的机器学习模型具体包括:
[0064] 采集加密、非加密和非加密压缩三种性质的流量的原始数据包,同时对这三种性质的流量做好标签,作为训练数据集。
[0065] 对这三种性质的流量按照本发明提供的基于连续子二进制串熵的特征提取算法提取具有区分性的特征,将这三种性质流量的特征集以及其对应的标签构成训练数据集,并进行训练,获得训练好的机器学习模型,即支持向量机(SVM)或者随机森林(RF)等机器学习分类模型。
[0066] 所述获取该网络流量数据包的类型具体包括:
[0067] 实时采集网络流量数据包,解析得到固定长度的有效载荷二进制序列,根据基于连续子二进制串熵的特征提取算法提取特征向量;
[0068] 预先训练好的机器学习模型对输入的特征向量进行层层计算,然后输出一个三元组的概率值(P1,P2,P3),该三元组概率值分别为对应加密、非加密、非加密压缩三种网络流量数据包类型的可能性概率;
[0069] 最后,选取三元组概率值中最大的概率值所对应的类别标签即为输入特征向量所识别出来的类别标签。
[0070] 实施例2.
[0071] 本发明的实施例2提供了一种区分加密和非加密压缩流量的方法的系统,如图2所示,该系统包括依次连接的数据采集模块、特征提取模块、识别分类模块;其中,[0072] 所述数据采集模块,用于采集并获取网络中的网络流量数据包,
[0073] 所述特征提取模块,用于根据需求解析该网络流量数据包,获得网络流量数据包的有效载荷,截取固定长度的有效载荷作为待识别分类的样本序列;基于熵的特征提取算法,提取所述待识别分类的样本序列的特征向量;
[0074] 所述识别分类模块,用于将所述特征向量输入至预先训练好的机器学习模型进行识别分类,获取该网络流量数据包的类型,该网络流量数据包的类型包括:加密流量、非加密流量和非加密压缩流量。
[0075] 所述数据采集模块具体包括:
[0076] 采集单元,用于采集并获取网络中的网络流量数据包;
[0077] 解析单元,用于根据需求解析该网络流量数据包,获得数据包的有效载荷;
[0078] 截取单元,用于根据计算量和识别精度要求,截取有效载荷的固定长度;并将该固定长度的有效载荷作为待识别分类的样本序列;
[0079] 其中,对当前获得的网络流量数据包的有效载荷不足以设定固定长度的情况,可由下一个网络流量数据包中的有效载荷填充或者填充零,来截取有效载荷的固定长度。
[0080] 所述特征提取模块中,所述基于熵的特征提取算法提取所述待识别分类的样本序列的特征向量;具体包括:
[0081] 采用连续子二进制串熵的特征提取算法,
[0082]
[0083] 其中,Hk表示在不同长度子二进制串的情况下的连续子二进制串熵;
[0084] Sk表示在不同长度子二进制串的情况下,原来的二进制样本序列被切分成的子二进制串的集合;
[0085] mik表示子二进制串集合Sk中第i个元素的频数;
[0086] mik满足
[0087] L为原二进制样本序列的长度;
[0088] k为连续的子二进制串的数目;
[0089] l为子二进制串的长度。
[0090] 所述特征提取模块具体包括:
[0091] 转换单元,用于采用基于连续子二进制串熵的特征提取算法,将所述待识别分类的样本序列转换为二进制待识别分类的样本序列,采用大小为8的滑动窗口,设置初始移动步长为1,从二进制待识别分类的样本序列的头到尾滑动采样,最后将采样得到的所有8比特子二进制串依序构成新的样本序列;然后,分别设置步长为2、3、4、5、6、7和8,得到8个二进制样本序列;
[0092] 计算单元,用于对得到的8个二进制样本序列,按照连续子二进制串熵的特征提取算法,分别计算每个二进制样本序列,得到各个二进制样本序列的连续子二进制串熵;
[0093] 获取单元,用于将得到的各个二进制样本序列的连续子二进制串熵值构成所述待识别分类的样本序列的特征向量。
[0094] 所述识别分类模块中,预先训练好的机器学习模型具体包括:
[0095] 采集加密、非加密和非加密压缩三种性质的流量的原始数据包,同时对这三种性质的流量做好标签,作为训练数据集。
[0096] 对这三种性质的流量按照本发明提供的基于连续子二进制串熵的特征提取算法提取具有区分性的特征,将这三种性质流量的特征集以及其对应的标签构成训练数据集,并进行训练,获得训练好的机器学习模型,即支持向量机(SVM)或者随机森林(RF)等机器学习分类模型。
[0097] 所述识别分类模块具体包括:
[0098] 提取单元,用于实时采集网络流量数据包,解析得到固定长度的有效载荷二进制序列,根据基于连续子二进制串熵的特征提取算法提取特征向量;
[0099] 输出单元,用于预先训练好的机器学习模型对输入的特征向量进行层层计算,然后输出一个三元组的概率值(P1,P2,P3),该三元组概率值分别为对应加密、非加密、非加密压缩三种网络流量数据包类型的可能性概率;
[0100] 识别单元,用于选取三元组概率值中最大的概率值所对应的类别标签作为输入特征向量所识别出来的类别标签。
[0101] 实施例3.
[0102] 本发明的实施例3还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述实施例1的方法。
[0103] 实施例4.
[0104] 本发明的实施例4还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行所述实施例1的方法。
[0105] 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。