System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于TLS层及DTLS层的加密流量特征提取方法技术_技高网

一种基于TLS层及DTLS层的加密流量特征提取方法技术

技术编号:40507679 阅读:3 留言:0更新日期:2024-03-01 13:22
本发明专利技术公开了一种基于TLS层及DTLS层的加密流量特征提取方法,属于网络技术领域,包括:读取加密流量的原始PCAP格式文件;拆分原始PCAP格式文件得到TCP流和UDP流;从每个TCP流中获取TLS握手包集合以及TLS应用数据包集合;从每个UDP流中获取DTLS握手包集合以及DTLS应用数据包集合;对前述四种包集合过滤后分别提取特征。本发明专利技术更适合加密流量对象的特征提取,降低了传统的基于流统计特征提取方法的开销,提取出的特征可以提升训练的AI模型对用户访问业务应用的识别准确率。

【技术实现步骤摘要】

本专利技术涉及数据通信中的宽带网络,具体涉及一种基于tls层及dtls层的加密流量特征提取方法。


技术介绍

1、随着互联网业务应用识别领域在学术界和工程界的分析研究逐渐普及,准确识别互联网业务应用对行业研究者及相关企业有着越来越重要的意义,通过从海量且极易获取的网络原始流量字节流数据中识别出对应应用标签,可以帮助企业以较低成本且不触犯用户隐私的条件下获取用户访问应用情况,从而制定相应的市场营销和用户关怀策略。

2、由于互联网安全级别大幅度提高,网络流量大部分已采用加密流量,通过传统dpi方法无法跟踪获取http流的明文内容进行域名字段解析。当前传统的特征提取方式是面向传输层协议的,通常是tcp协议和udp协议,即对原始流量中提取tcp会话或者udp会话,按每个tcp会话或者udp会话的侧信道信息(如包长度)序列值进行统计计算提取特征。

3、然而业界对加密流量的关注主要聚焦于加密流量的应用数据,而面向传输层协议的特征提取方式无法聚焦于加密流量的应用数据(包含大量非加密的流量数据),加密流量的应用数据通常位于tls协议或者dtls协议中。

4、tls(transport layer security)层和dtls(datagram transport layersecurity)层均位于osi七层模型的会话层,在传输层之上应用层之下,其中tls协议在tcp协议上工作,而dtls协议在udp协议上工作。

5、tls协议是一种提供应用程序间安全传输和连接的传输层协议,在tcp三次握手的基础上提供安全连接,使用记录协议传输各种信息。tls协议在应用层协议(如web服务器与浏览器)之间工作,提供安全的传输和连接。dtls协议是一种数据传输控制层协议,提供了udp数据包的安全传输。

6、tls协议有3个版本:tls v1.1、tls v1.2、tls v1.3,目前主要使用tls v1.2和tlsv1.3两个版本;dtls协议目前只有1.0和1.2两个版本,分别对应于tls协议的1.1和1.2版本,目前主要使用dtls v1.2版本。

7、tls协议和dtls协议的通信过程均可分为两部分:握手(handshake)和加密应用数据传输两部分,其中握手过程包含连接建立(hello)、证书传输(certificate)、密钥交换(key exchange)、密钥变更说明(change cipher spec)等。

8、因此,亟待提供一种基于tls协议和dtls协议两种不同通信过程(握手连接和应用数据传输)的数据包划分方式,基于特征统计计算提取加密流量特征的方法,以提升ai模型对加密流量业务应用的识别准确率。


技术实现思路

1、本专利技术旨在解决传统的面向传输层协议的特征提取方式无法聚焦于加密流量的应用数据,导致特征提取结果在业务应用时的准确率不高的问题,提出一种基于tls层及dtls层的加密流量特征提取方法,本方法根据tls层和dtls层的不同通信过程对数据包集合划分进行特征统计,提升了ai模型对加密流量业务应用的识别准确率。

2、为了实现上述专利技术目的,本专利技术的技术方案如下:

3、一种基于tls层及dtls层的加密流量特征提取方法,其特征在于,包括如下步骤:

4、读取加密流量的原始pcap格式文件;

5、拆分所述原始pcap格式文件得到tcp流和udp流;

6、从已获取的每个tcp流中筛出tls握手包集合以及tls应用数据包集合;

7、从已获取的每个udp流中筛出dtls握手包集合以及dtls应用数据包集合;

8、对得到的tls握手包集合、tls应用数据包集合、dtls握手包集合和dtls应用数据包集合过滤后分别提取特征。

9、进一步的,所述的从每个tcp流中获取tls握手包集合以及tls应用数据包集合,包括:通过scapy工具的rdpcap方法读取纯净流pcap文件,输出python变量类型的包迭代器;根据函数haslayer()的输入参数判断包迭代器中每个包是否为tls握手包或者tls应用数据包,从而筛选出tls数据包。

10、进一步的,所述的从每个udp流中获取dtls握手包集合以及dtls应用数据包集合,包括:通过scapy工具的rdpcap方法读取纯净流pcap文件,输出python变量类型的包迭代器;根据函数haslayer()的输入参数判断包迭代器中每个包是否为dtls握手包或者dtls应用数据包,从而筛选出dtls数据包。

11、进一步的,tls握手包对应的函数haslayer()的输入参数为rdpcap.layertype.tls_handshake;tls应用数据包对应的函数haslayer()的输入参数为:rdpcap.layertype.tls_application_data。

12、进一步的,dtls握手包对应的函数haslayer()的输入参数为rdpcap.layertype.dtls_handshake;tls应用数据包对应的函数haslayer()的输入参数为:rdpcap.layertype. dtls_application_data。

13、进一步的,针对tls握手包集合或dtls握手包集合,每个握手包集合按包序号取前n个包;针对tls应用数据包集合或dtls应用数据包集合,每个应用数据包集合直接随机选取m个包。

14、进一步的,m值的确定方式与n值确定方式相同,都是根据对业务应用分类的模型实验确定:以n值为例,通过对n值在一定范围内的枚举搜索,基于分类准确率随n值大小单调递增但最后趋于稳定最大值的规律,找出测试集上分类准确率接近准确率最大值的最小的n值;m值同理。

15、进一步的,确定n值后,若握手包数量小于n值则取全部握手包;确定m值后,若应用数据包数量小于m值则取全部应用数据包。

16、进一步的,每种流对应的两类数据包集合分别提取74个特征,则共有74*2=148个特征,再加上传输层协议编码特征,共得到149个特征,即一个传输层流对应149个特征。

17、进一步的,所述74个特征的获取步骤如下:

18、由数据包集合提取包到达时间间隔获得8个统计特征,包括包到达时间间隔的最小值、最大值、平均值、中位绝对偏差、标准差、中位数、25%百分位数、75%百分位数;

19、由数据包集合提取到包长度获得8个统计特征,包括到包长度的最小值、最大值、平均值、中位绝对偏差、标准差、中位数、25%百分位数、75%百分位数;

20、将数据包集合按照上下行流量进行划分后,再分别按照包到达时间间隔和到包长度,提取共32个特征;额外增加上下行包数量特征,得到50个特征;

21、增加应用层协议数量特征,选取12个常用应用层协议端口,分上下行统计数量则有24个端口协议数量,最终得到74个特征。

...

【技术保护点】

1.一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,所述的从每个TCP流中获取TLS握手包集合以及TLS应用数据包集合,包括:通过scapy工具的rdpcap方法读取纯净流PCAP文件,输出python变量类型的包迭代器;根据函数haslayer()的输入参数判断包迭代器中每个包是否为TLS握手包或者TLS应用数据包,从而筛选出TLS数据包。

3.根据权利要求1所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,所述的从每个UDP流中获取DTLS握手包集合以及DTLS应用数据包集合,包括:通过scapy工具的rdpcap方法读取纯净流PCAP文件,输出python变量类型的包迭代器;根据函数haslayer()的输入参数判断包迭代器中每个包是否为DTLS握手包或者DTLS应用数据包,从而筛选出DTLS数据包。

4.根据权利要求2所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,TLS握手包对应的函数haslayer()的输入参数为rdpcap.LayerType.TLS_HANDSHAKE;TLS应用数据包对应的函数haslayer()的输入参数为:rdpcap.LayerType.TLS_APPLICATION_DATA。

5.根据权利要求3所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,DTLS握手包对应的函数haslayer()的输入参数为rdpcap.LayerType. DTLS_HANDSHAKE;TLS应用数据包对应的函数haslayer()的输入参数为:rdpcap.LayerType.DTLS_APPLICATION_DATA。

6.根据权利要求1所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,针对TLS握手包集合或DTLS握手包集合,每个握手包集合按包序号取前N个包;针对TLS应用数据包集合或DTLS应用数据包集合,每个应用数据包集合直接随机选取M个包。

7.根据权利要求6所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,M值的确定方式与N值确定方式相同,都是根据对业务应用分类的模型实验确定:以N值为例,通过对N值在一定范围内的枚举搜索,基于分类准确率随N值大小单调递增但最后趋于稳定最大值的规律,找出测试集上分类准确率接近准确率最大值的最小的N值;M值同理。

8.根据权利要求7所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,确定N值后,若握手包数量小于N值则取全部握手包;确定M值后,若应用数据包数量小于M值则取全部应用数据包。

9.根据权利要求6所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,所述的对得到的TLS握手包集合、TLS应用数据包集合、DTLS握手包集合和DTLS应用数据包集合分别提取特征,包括:每种流对应的两类数据包集合分别提取74个特征,则共有74*2=148个特征,再加上传输层协议编码特征,共得到149个特征,即一个传输层流对应149个特征。

10.根据权利要求9所述的一种基于TLS层及DTLS层的加密流量特征提取方法,其特征在于,所述74个特征的获取步骤如下:

...

【技术特征摘要】

1.一种基于tls层及dtls层的加密流量特征提取方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于tls层及dtls层的加密流量特征提取方法,其特征在于,所述的从每个tcp流中获取tls握手包集合以及tls应用数据包集合,包括:通过scapy工具的rdpcap方法读取纯净流pcap文件,输出python变量类型的包迭代器;根据函数haslayer()的输入参数判断包迭代器中每个包是否为tls握手包或者tls应用数据包,从而筛选出tls数据包。

3.根据权利要求1所述的一种基于tls层及dtls层的加密流量特征提取方法,其特征在于,所述的从每个udp流中获取dtls握手包集合以及dtls应用数据包集合,包括:通过scapy工具的rdpcap方法读取纯净流pcap文件,输出python变量类型的包迭代器;根据函数haslayer()的输入参数判断包迭代器中每个包是否为dtls握手包或者dtls应用数据包,从而筛选出dtls数据包。

4.根据权利要求2所述的一种基于tls层及dtls层的加密流量特征提取方法,其特征在于,tls握手包对应的函数haslayer()的输入参数为rdpcap.layertype.tls_handshake;tls应用数据包对应的函数haslayer()的输入参数为:rdpcap.layertype.tls_application_data。

5.根据权利要求3所述的一种基于tls层及dtls层的加密流量特征提取方法,其特征在于,dtls握手包对应的函数haslayer()的输入参数为rdpcap.layertype. dtls_handshake;...

【专利技术属性】
技术研发人员:张斌蒋伟朱启勋李玉伟汪文勇
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1