一种基于DPI的物联网加密流量监控方法与流程

文档序号:29957020发布日期:2022-05-11 08:13阅读:261来源:国知局
一种基于DPI的物联网加密流量监控方法与流程
一种基于dpi的物联网加密流量监控方法
技术领域
1.本发明涉及互联网监控技术领域,主要提供一种基于dpi的物联网加密流量监控方法。


背景技术:

2.近年来,网络流量在不同的网络协议和行为准则下发生了巨大变化,大多数网络流量以加密的方式进行传输,随着加密网络流量的逐步盛行,明文协议的使用频率较低,尽管它们在lan网络中仍然相对流行,在网络内容加密传输的应用场景中,网络的可见性就变得尤为重要了。这意味着需要用新的测量指标来补充现有技术,检测加密网络流量的同时对该流量进行特征化,用于识别网络行为以及防备安全威胁和变化。在一些家庭网络中,使用云服务运行的物联网和医疗设备的广泛使用带来了新的安全问题,因为用户不再直接与设备进行信息交换,而只能通过云服务进行信息交换。这种基于云的安全趋势也出现在领先的防火墙供应商生产的产品上,这些产品可以单独使用云控制台进行访问,并且不再连接到位于公司场所的防火墙。
3.假设网络的可见性是当代网络安全机制的基础,显然很有必要采取适当的措施及机制来保证零信任和现代家庭网络的正常运行,这也是本发明的目标所在,因为各种原因,加密流量的解密并不实用,包括但不限于道德和技术问题,这些问题阻止mitm(中间人)技术在非tls(传输层安全)协议(如ssh、bittorrent 和skype)上运行。


技术实现要素:

4.(一)发明目的
5.本发明的目的在于提供一种基于dpi的物联网加密流量监控方法,以解决上述背景技术中提出的问题。
6.(二)技术方案
7.为实现上述目的,本发明提供如下技术方案:一种基于dpi的物联网加密流量监控方法包括物联网iot加密流量,通过在所述物联网iot加密流量中,加入流量指纹,结合dpi信息用于流量模式的检测,用以判断流量模式是否正常,同时为了更深入地避免误检概率,利用tls协议扩展功能加入应用协议版本信息和客户端所能支撑的版本信息来具象化一个tls连接,在dpi信息的基础上,为了更深入地识别流量模式,利用分箱技术对加密流量进行指标度量以及分类,基于全面的度量值列表对最近的流量进行归类,并将其与一个给定设备的流量模型进行欧式距离比对,检测是否匹配,从而达到检测恶意流量的目的,其具体步骤流程如下:
8.步骤一,在加密流量协议tls中设置客户端和服务端的流量指纹,tls通信流经过加密的双向网络通道时使用共享秘钥进行加密,共享秘钥在tls会话双向握手时双向确认,tls握手时,通信双方在采用的算法,交换证书和密码选项达成一致后,对数据进行加密后再进行交换。tls客户端发送一条clienthello 消息,消息包含支持的密码,压缩方法和其
他的参数,包括tls密码系统采用椭圆曲线选项等信息,服务端接收消息后响应severhello消息,该消息包括选择tls协议版本,密码和压缩方法,压缩方法在客户端消息中包含的客户端支持的压缩方法中选择;然后服务端发送一条可选的认证消息,包含服务端使用的公钥。握手消息以明文进行传输,所以可以被客户端通过消息解析获得,通过解码第一次握手消息,应用程序可以检测客户端和服务端数据如何交换,如何解析服务端和客户端的配置信息、流量指纹以及客户端的应用程序等, clienthello消息中有服务端标识sni,含有客户端可以访问的服务端的名字,指纹方法优选采用ja3c和ja3s。
9.步骤二,基于dpi信息对物联网加密网络流量进行监测,多数家庭设备和智能设备都不是直接与家庭局域网通信而是与云端进行通信,当两个本地的设备需要通信时,并不是直接进行数据的交换,而是在使用时均连接了云端的服务,云端通信基本上都是加密的,监测工具应当监测iot的流量来确保设备是正常工作的,在本发明中,对iot设备加密流量进行监测时,优选地采用dpi 技术来标识流量并提取可用于对流量进一步进行分类的相关元数据,通过比较两端恶意流量的指纹和正常流量的指纹可以推测出通信的特征,从而达到检测宿主指纹是否发生了变化的目的。
10.步骤三,进一步地采用加密tls协议扩展功能来区分应用协议列表,在本发明中,优选的采用ja3来检测应用程序中的变化,因为在已知的列表中的ja3c 指纹必须保持稳定,任意一个新的ja3c签名表示,有一个新的或者未知的应用在运行,或者已存在的应用受到了更改,或者受到了侵害,对于给定的ja3c,服务端一般总是使用同样的ja3s,这样,指纹元组《ja3c,ja3s》对于相同的客户端和服务端是稳定的,如果ja3s变了,但ja3c没有变,一定是服务端的软件配置发生了变更。
11.进一步的为了从https通信协议中区分一个通用的tls连接,在 clienthello消息包中,有一个tls的扩展功能,客户端可以使用alpn,应用层协议协商,来告诉服务端其所使用的应用协议列表,比如:http/1.1和 http2.0,而非web类型的应用比如vpn就不能使用alpn来通知服务端其使用的http协议,另一个tls扩展的功能是支持的版本信息,版本信息可以有客户端指定所支持的tls版本,版本信息与alpn联合起来可以作为web客户端应用的指纹,从而可以在本质上特征化一个具体的tls连接。
12.步骤四,进一步地采用分箱技术对加密流量进行指标度量以及分类,基于全面的度量值列表对最近的流量进行归类,并将其与一个给定设备的建设的流量模型进行对比,检测是否匹配,这种策略的限制在于如果能找到匹配的模型,归类为正常的流量,网络中存在的一种新流量模型时,需要检测是否为恶意流量来判断该行为是否为一种异常流量。
13.优选的,在本发明中,优选采用分箱技术作为dpi流量模型的补充,可以连续监控流量行为,比如:iat,流量包长度,字节分布式特征,以及实际吞吐量和上传/下载的度量值等。这些信息可以用来发现网络行为的变化,同时也用于检测连接的核心特征,比如:交换会话,文件上传/下载,协议通道等。
14.优选的,使用dpi组件检测应用层协议可以标记网络流量:比如,使用 tls.instagram观测sni以cdninstagram.com结尾的tls流量;对于每一次连接直到连接结束,不管是客户端到服务端模式还是服务端到客户端模式,进行下面的度量指标的计算:将通过tcp三次握手协议后的流量包载荷,将其划分为6个分箱,分别为p1,p2,p3,p4,p5,p6,比如:p1:小于64字节,p2: 65~128,p3:129~256,p4:257~512,p5:513~1024,p6:1025以
上,计算流量包的 iat,将其划分为6个分箱,i1,i2,i3,i4,i5,i6;比如:i1:小于1ms,i2: 1~5ms,i3:5~10ms,i4:10~50ms,i5:50~100ms,i6:100ms以上。
15.优选的,计算负载字节信息熵h(x):为了节省周期计算的计算开销,基于连接的第一个长度为n的数据包,比如256,创建一个长度为n的整数向量
16.对于有效负载的每个字节,变换为该整数向量的元素,然后在此向量上计算字节熵,其计算公式如下:
[0017][0018]
其中,vn表示在向量中为取值为n的频次。
[0019]
优选的,在本发明中,使用非均匀分布数据分箱大小,数据分箱经过归一化输出相应的值,比如:分箱值归一化为占总数的百分比。这使能够保留时间/ 数据包长度的简单细节,同时也考虑流之间的差异。
[0020]
优选的,进一步的用一个64位的值来标识分箱,其中该数字的6字节对应的二进制的值分别对应为第i个数据分箱的值,并且上面的两个字节设置为0。请注意,64位值是表示分箱值的一种压缩方式,但两个不同的网络流不能用简单的64位值的差进行比较,而是要用其他方式进行比较,比如:每个值的欧几里德距离。
[0021]
优选的,步骤五:基于分箱技术度量指标构建加密流量的流量模型,根据计算的分箱值,按下述表格进行流量模型的构建:
[0022][0023]
其中pi’为64位二进制整数标识的载荷数据包分箱值,高16比特为0; ii’为64位二进制整数标识的数据包到达时间间隔分箱值,高16比特为0,
[0024]
选取一定的数据集,计算上述表格内的参数值,并对流量模型进行分类,每一个类的参数平均值构成模型i。
[0025]
优选的,步骤六:基于上述模型集合,计算新流量与各流量模型的欧几里得距离,计算方法如下:
[0026][0027]
其中,x
i,j
表示第i个模型的第j个度量指标,yj表示被检测流量的第j个度量指标,
n表示构建模型采用的度量指标总数量,di表示被检测流量与第个模型的欧式距离,如果di小于某个预设的门限值ti,则认为该流量合法,否则认为该流量为恶意流量。
[0028]
与现有技术相比,本发明的有益效果是:与传统的其他的方法不同,本发明另辟蹊径,不是去定义识别特定威胁的新方法,而是在不搜索特定流量或恶意软件指纹的情况下,以通用方式对网络流量进行分类。这种方法能够使用特定的协议度量对流量进行分类,并检测网络行为的变化,尤其适用于物联网和家庭网络,在这些网络中,设备网络行为一般不变,除非设备进行了重新配置或设备受损。由于在功耗和存储非常有限的设备中,不能采用计算量大的深度学习机器学习的方法;本发明的另一个动机是定义一种新的度量指标和技术,类似于用于明文的指标和技术,可以用于加密流量的处理。本质上,在加密流量分析中识别与明文流量中使用多年的属性相同的属性,以便在不解码加密流量有效负载的情况下具有相同级别的可见性。
附图说明
[0029]
图1为本发明的流程示意图。
具体实施方式
[0030]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]
请参阅图1,本发明提供一种技术方案:一种基于dpi的物联网加密流量监控方法包括物联网iot加密流量,通过在所述物联网iot加密流量中,加入流量指纹,结合dpi信息用于流量模式的检测,用以判断流量模式是否正常,同时为了更深入地避免误检概率,利用tls协议扩展功能加入应用协议版本信息和客户端所能支撑的版本信息来具象化一个tls连接,在dpi信息的基础上,为了更深入地识别流量模式,利用分箱技术对加密流量进行指标度量以及分类,基于全面的度量值列表对最近的流量进行归类,并将其与一个给定设备的流量模型进行欧式距离比对,检测是否匹配,从而达到检测恶意流量的目的,其具体步骤流程如下:
[0032]
步骤一,在加密协议tls中设置客户端和服务端的流量指纹,tls通信流经过加密的双向网络通道时使用共享秘钥进行加密,共享秘钥在tls会话双向握手时双向确认,tls握手时,通信双方在采用的算法,交换证书和密码选项达成一致后,对数据进行加密后再进行交换。tls客户端发送一条clienthello消息,消息包含支持的密码,压缩方法和其他的参数,包括tls密码系统采用椭圆曲线选项等信息,服务端接收消息后响应severhello消息,该消息包括选择tls 协议版本,密码和压缩方法,压缩方法在客户端消息中包含的客户端支持的压缩方法中选择;然后服务端发送一条可选的认证消息,包含服务端使用的公钥。握手消息以明文进行传输,所以可以被客户端通过消息解析获得,通过解码第一次握手消息,应用程序可以检测客户端和服务端数据如何交换,如何解析服务端和客户端的配置信息、流量指纹以及客户端的应用程序等,clienthello消息中有服务端标识sni,含有客户端可以访问的服务端的名字,指纹方法优选采用ja3c和ja3s。
[0033]
步骤二,基于dpi信息对物联网加密网络流量进行监测,多数家庭设备和智能设备都不是直接与家庭局域网通信而是与云端进行通信,当两个本地的设备需要通信时,并不是直接进行数据的交换,而是在使用时均连接了云端的服务,云端通信基本上都是加密的,监测工具应当监测iot的流量来确保设备是正常工作的,在本发明中,对iot设备加密流量进行监测时,优选地采用dpi 技术来标识流量并提取可用于对流量进一步进行分类的相关元数据,通过比较两端恶意流量的指纹和正常流量的指纹可以推测出通信的特征,从而达到检测宿主指纹是否发生了变化的目的。
[0034]
步骤三,进一步地采用加密tls协议扩展功能来区分应用协议列表,在本发明中,优选的采用ja3来检测应用程序中的变化,因为在已知的列表中的ja3c 指纹必须保持稳定,任意一个新的ja3c签名表示,有一个新的或者未知的应用在运行,或者已存在的应用受到了更改,或者受到了侵害,对于给定的ja3c,服务端一般总是使用同样的ja3s,这样,指纹元组《ja3c,ja3s》对于相同的客户端和服务端是稳定的,如果ja3s变了,但ja3c没有变,一定是服务端的软件配置发生了变更。
[0035]
进一步的为了从https通信协议中区分一个通用的tls连接,在 clienthello消息包中,有一个tls的扩展功能,客户端可以使用alpn,应用层协议协商,来告诉服务端其所使用的应用协议列表,比如:http/1.1和 http2.0,而非web类型的应用比如vpn就不能使用alpn来通知服务端其使用的http协议,另一个tls扩展的功能是支持的版本信息,版本信息可以有客户端指定所支持的tls版本,版本信息与alpn联合起来可以作为web客户端应用的指纹,从而可以在本质上特征化一个具体的tls连接。
[0036]
步骤四,进一步地采用分箱技术对加密流量进行指标度量以及分类,基于全面的度量值列表对最近的流量进行归类,并将其与一个给定设备的建设的流量模型进行对比,检测是否匹配,这种策略的限制在于如果能找到匹配的模型,归类为正常的流量,网络中存在的一种新流量模型时,需要检测是否为恶意流量来判断该行为是否为一种异常流量。
[0037]
进一步的,在本发明中,优选采用分箱技术作为dpi流量模型的补充,可以连续监控流量行为,比如:iat,流量包长度,字节分布式特征,以及实际吞吐量和上传/下载的度量值等。这些信息可以用来发现网络行为的变化,同时也用于检测连接的核心特征,比如:交换会话,文件上传/下载,协议通道等。
[0038]
进一步的,使用dpi组件检测应用层协议可以标记网络流量:比如,使用 tls.instagram观测sni以cdninstagram.com结尾的tls流量;对于每一次连接直到连接结束,不管是客户端到服务端模式还是服务端到客户端模式,进行下面的度量指标的计算:将通过tcp三次握手协议后的流量包载荷,将其划分为6个分箱,分别为p1,p2,p3,p4,p5,p6,比如:p1:小于64字节,p2: 65~128,p3:129~256,p4:257~512,p5:513~1024,p6:1025以上,计算流量包的 iat,将其划分为6个分箱,i1,i2,i3,i4,i5,i6;比如:i1:小于1ms,i2: 1~5ms,i3:5~10ms,i4:10~50ms,i5:50~100ms,i6:100ms以上。
[0039]
进一步的,计算负载字节信息熵h(x):为了节省周期计算的计算开销,基于连接的第一个长度为n的数据包,比如256,创建一个长度为n的整数向量对于有效负载的每个字节,变换为该整数向量的元素,然后在此向量上计算字节熵,其计算公式如下:
[0040][0041]
其中,vn表示在向量中为取值为n的频次。
[0042]
进一步的,在本发明中,使用非均匀分布数据分箱大小,数据分箱经过归一化输出相应的值,比如:分箱值归一化为占总数的百分比。这使能够保留时间/数据包长度的简单细节,同时也考虑流之间的差异。
[0043]
进一步的,进一步的用一个64位的值来标识分箱,其中该数字的6字节对应的二进制的值分别对应为第i个数据分箱的值,并且上面的两个字节设置为0。请注意,64位值是表示分箱值的一种压缩方式,但两个不同的网络流不能用简单的64位值的差进行比较,而是要用其他方式进行比较,比如:每个值的欧几里德距离。
[0044]
进一步的,步骤五:基于分箱技术度量指标构建加密流量的流量模型,根据计算的分箱值,按下述表格进行流量模型的构建:
[0045][0046]
其中pi’为64位二进制整数标识的载荷数据包分箱值,高16比特为0; ii’为64位二进制整数标识的数据包到达时间间隔分箱值,高16比特为0,
[0047]
选取一定的数据集,计算上述表格内的参数值,并对流量模型进行分类,每一个类的参数平均值构成模型i。
[0048]
进一步的,步骤六:基于上述模型集合,计算新流量与各流量模型的欧几里得距离,计算方法如下:
[0049][0050]
其中,x
i,j
表示第i个模型的第j个度量指标,yj表示被检测流量的第j个度量指标,n表示构建模型采用的度量指标总数量,di表示被检测流量与第个模型的欧式距离,如果di小于某个预设的门限值ti,则认为该流量合法,否则认为该流量为恶意流量。
[0051]
本发明的工作原理:与传统的其他的方法不同,本发明另辟蹊径,不是去定义识别特定威胁的新方法,而是在不搜索特定流量或恶意软件指纹的情况下,以通用方式对网络流量进行分类。这种方法能够使用特定的协议度量对流量进行分类,并检测网络行为的变化,尤其适用于物联网和家庭网络,在这些网络中,设备网络行为一般不变,除非设备进行了重新配置或设备受损。由于在功耗和存储非常有限的设备中,不能采用计算量大的深度
学习机器学习的方法;本发明的另一个动机是定义一种新的度量指标和技术,类似于用于明文的指标和技术,可以用于加密流量的处理。本质上,在加密流量分析中识别与明文流量中使用多年的属性相同的属性,以便在不解码加密流量有效负载的情况下具有相同级别的可见性。
[0052]
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为便于描述本发明的简化描述,而不是指示或暗指所指的装置或元件必须具有特定的方位、为特定的方位构造和操作,因而不能理解为对本发明保护内容的限制。
[0053]
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1