本发明涉及物联网的,尤其是涉及一种基于mqtt的物联网设备的比特级深度包检测方法。
背景技术:
1、智能传感器的普遍使用及其服务的快速增长使物联网成为近年来的技术热点,数十亿个廉价的传感器结合在一起,形成了遍布家庭、企业和城市的物联网网络。这些物联网设备使用不同的应用层协议在网络上进行通信,如mqtt、coap、http、amqp等。由于其轻量级的发布-订阅通信方法,mqtt已成为这些协议中最受欢迎的协议之一。mqtt全名叫,消息队列遥测传输,message queuing telemetry transport,mqtt允许低带宽设备与代理共享信息,即使在不可恢复或间歇性的网络连接中也是如此。此外,mqtt是一种开源协议,因此它与云、移动应用程序、web应用程序等其他平台广泛集成。因此,基于mqtt的物联网设备的流行刺激供应商为智能环境生产具有多种功能的物联网设备。因此,识别和分类基于mqtt的物联网设备以进行安全监控和维护服务质量具有非常重要的意义。
2、当前已经存在各种物联网设备识别方法。在这些方法中,基于深度包检测(dpi)的方法是高度准确的,因为这些方法分析网络流量中分组的有效载荷。然而,这些方法中的大多数都是庞大的,因为它们使用字节级信息来分析完整的有效载荷,作为已识别物联网设备的分类,随着物联网设备数量的增加,这种分类逐渐减少。在动态智能环境中,看不见的物联网设备频繁进出网络,这种方法很可能无法有效工作。为了填补这一不足之处,本发明提出一种无监督、轻量级、基于基于mqtt的物联网设备的比特级dpi方法,可以在没有先验知识的情况下识别网络流量中基于mqtt的物联网设备,在设备标识之后生成它们的比特级签名以用于进一步分类。
技术实现思路
1、本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本发明的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
2、因此,本发明目的是提供一种识别基于mqtt的物联网设备的无监督和轻量级的比特级深度包检测方法,使用比特级有效载荷分析在没有先验知识的情况下准确识别网络流量中基于mqtt的物联网设备;仅利用基于mqtt的物联网网络流量的双向流有效载荷的前‘n’个比特位,使用有效载荷上的聚集聚类进行物联网设备识别;识别后,比特dpi生成用于分类的每个所识别的设备的n比特签名,使用这样一小部分有效载荷显著降低了计算成本并维护了用户隐私;本发明还提供了binstrc数据结构,存储所有物联网设备签名并同时、快速、准确地执行测试流与所有可用签名的签名匹配的“树状”数据结构。
3、为解决上述技术问题,本发明提供一种基于mqtt的物联网设备的比特级深度包检测方法,采用如下的技术方案:所述方法基于以下模块实现:数据包过滤模块、流量重建模块、流量聚类模块、签名生成模块、binstrc生成和加载签名模块和流量分类模块;
4、其中,所述数据包过滤模块输入是网络流量,输出是经过过滤的基于mqtt的网络流量;所述流量重建模块输入是经过过滤的基于mqtt的网络流量,输出是固定长度的双向二进制流有效荷载,长度为n;所述流量聚类模块输入是长度为“n”的二进制流,n∈n,输出是通过聚类生成的集群;所述签名生成模块输入是通过聚类生成的集群,输出是该集群的物联网设备的签名;所述binstrc生成和加载签名模块输入是已识别物联网设备的签名,输出是生成的binstrc数据结构;所述流量分类模块输入是网络流量以及经过binstrc数据结构训练的签名,输出是已分类、错误分类或未分类的流;所述流量分类模块输出的所有未分类的流将被传递到流量聚类模块以生成新的签名,更新binstrc生成和加载签名模块,然后再进行流量分类。
5、可选的,在所述数据包过滤模块中,输入是混合异构的网络流量,mqtt是基于发布-订阅的物联网通信协议,使用端口1883和tcp/udp作为通信的传输层,所述网络流量通过端口1883进行过滤。
6、可选的,所述网络流量是具有共同特征的物联网设备主机之间的数据包传输:源和目标ip地址、源和目标端口号以及tcp/ip的第四层协议;有两种协议模式:tcp和udp,所述网络流量有两种类型:tcp流和udp流,两个物联网设备主机之间的tcp流由tcp连接建立和tcp断开传输的序列中的所有数据包组成,两个物联网设备主机之间的udp流由在一个时间间隔内通过udp传输的序列中的所有数据包组成,该时间间隔由用户手动调整,并且在所有udp流重建过程中是固定的,一旦tcp或udp流被重建,则从有效载荷中提取第一个“n”比特。
7、可选的,在所述流量聚类模块中,输出的每个集群至少包含一个物联网设备的网络流的集群,每个网络流被视为一个聚类,每对聚类之间采用最小相异性来融合聚类。
8、可选的,在所述流量聚类模块中,使用欧氏距离和平均离差平方和法进行融合聚类的相异性计算:
9、两个物联网设备网络流a和b之间的欧氏距离如公式(1)所示:
10、
11、其中,ed(a,b)表示流a和流b之间的欧式距离,ai和bi分别表示流a和流b的第i个比特,n表示流中的比特数;
12、在流被合并成簇之后,使用公式(2)中所示的簇之间的平均离差平方和法来融合簇,
13、
14、其中w(i,j)表示合并集群时与‘i’和‘j’的离差平方和,ci和cj表示每个集群中的流数,最初为1,s是用于根据聚类‘i’和‘j’的聚类大小调整聚类内方差的缩放因子,ed(i,j)2对应于聚类‘i’和‘j’质心之间的欧几里得距离的平方,在找到所有聚类的数据点后,具有最小离差平方和距离的集群对开始合并,直到获得恒定的簇,如果过程不停止,合并将继续,直到所有流合并到一个集群中,一旦完成聚类,就使用轮廓系数来评估聚类的质量。
15、可选的,在所述签名生成模块中,物联网设备的签名与流的长度相同,即‘n’比特通过在所有流中的固定位置找到不变的比特值来生成签名,包括:
16、在所有集群流中,第i个比特位始终为“1”,则第i个比特位签名的位设置为“1”;
17、在所有群集流中,第i个比特位始终为“0”,则第i个比特位签名的位设置为“0”;
18、若第i个比特位比特值不同,则将第i个比特位签名的位被设置为“*”,这个比特位不参与签名匹配过程。
19、可选的,设置阈值t=0.9,当在第i个比特位在100个流中的90个流中保持固定,那么第i个比特位根据发生情况获取固定值“0”或“1”,否则此位置获取的值为“*”。
20、可选的,所述binstrc数据结构定义如下:
21、binstrc数据结构包括有向无环加权图gbm(v,e,w),其中,
22、v是一组长度为2n且具有两个子集顶点分别为x和y的集合,其中子集x的顶点为x={x1,x2,…,xn}和子集y的顶点为y={y1,y2,…,yn},且xi∈{0}和yi∈{1}表示在binstrc数据结构中高度为hi的顶点,其中,i∈n;
23、e=eij是从顶点开始的有向边或者从xi到xj或从yi到yj或从xi到yj或从yi到xj,其中j=i+1;
24、w=wij是有向边eij的权重且wij={id1,id2,…,idk},其中idk是第k个物联网设备的id;
25、初始时,一个空的binstrc数据结构由起始节点root、‘n’个值为“0”的节点和‘n’个值为“1”的节点生成,然后,逐一地用每个签名的签名id来更新binstrc数据结构。
26、可选的,对于签名id,包括:
27、①第i个比特位为“0”,则用签名id为s来更新在有向边eij上的权重,其中eij表示为从xi→xi+1或yi→xi+1或root→x1的边,这表示从当前位置转移到binstrc数据结构中高度为i+1的顶点值为“0”的位置;
28、②第i个比特位为“1”,则用签名id为s来更新在有向边eij上的权重其中eij表示为从yi→yi+1或xi→yi+1或root→y1的边,这表示从当前位置转移到binstrc数据结构中高度为i+1且顶点值为“1”的位置;
29、③第i个比特位为“*”,则①和②都需要同时进行,即,需要更新签名id从当前位置到在binstrc数据结构中高度为i+1的两个节点的有向边的权重。
30、可选的,在所述流量分类模块中,要分类的流首先在binstrc数据结构上遍历从root节点到叶节点的所有节点、网络流中的比特位以及对应比特位签名的位值;使用signmap(keyi,valuei)的key-value键值对实现签名匹配,其中,keyi是所有签名id的集合,valuei是一个初始设置为0的计数器,binstrc数据结构遍历期间,在有向边的权重上找到相同签名id,则将signmap的签名id增加1;
31、当网络流的所有比特位都被解析,并且binstrc数据结构被遍历到其叶节点,则产生两种结果:
32、网络流被视为已分类到签名id所属的聚类中,该签名id具有signmap中计数器的最高值;
33、获得两个相等且最高的计数器值,则认为流量分类错误;
34、当网络流的所有比特位都被解析,但binstrc数据结构未遍历到其叶节点,则该流被认为是未分类的。
35、综上所述,本发明包括以下至少一种有益效果:
36、本发明识别基于mqtt的物联网设备的比特级深度包检测方法无需物联网设备的先验知识,使用基于有效载荷相似性的网络流的分层聚类来识别物联网设备,在识别之后,比特深度包检测生成所识别的设备的比特级签名,比特级签名进一步用于分类,分类时利用binstrc数据结构,其加载所有物联网设备的签名并同时执行签名匹配以实现快速准确的分类,比特级深度包检测方法在整个过程中,仅从双向网络流的有效载荷中提取前n个比特。以这种方式,比特级深度包检测方法获得三重优势。首先,执行比特级有效载荷分析,速度很快;其次,只使用重构流中有效载荷的前‘n’比特位,最大限度的隐藏了最终用户的隐私。第三,该方法不需要物联网设备的先验知识;因此,动态物联网网络拓扑结构不会影响该方法。
1.一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:所述方法基于以下模块实现:数据包过滤模块、流量重建模块、流量聚类模块、签名生成模块、binstrc生成和加载签名模块和流量分类模块;
2.根据权利要求1所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:在所述数据包过滤模块中,输入是混合异构的网络流量,mqtt是基于发布-订阅的物联网通信协议,使用端口1883和tcp/udp作为通信的传输层,所述网络流量通过端口1883进行过滤。
3.根据权利要求1或2所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:所述网络流量是具有共同特征的物联网设备主机之间的数据包传输:源和目标ip地址、源和目标端口号以及tcp/ip的第四层协议;有两种协议模式:tcp和udp,所述网络流量有两种类型:tcp流和udp流,两个物联网设备主机之间的tcp流由tcp连接建立和tcp断开传输的序列中的所有数据包组成,两个物联网设备主机之间的udp流由在一个时间间隔内通过udp传输的序列中的所有数据包组成,该时间间隔由用户手动调整,并且在所有udp流重建过程中是固定的,一旦tcp或udp流被重建,则从有效载荷中提取第一个“n”比特。
4.根据权利要求3所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:在所述流量聚类模块中,输出的每个集群至少包含一个物联网设备的网络流的集群,每个网络流被视为一个聚类,每对聚类之间采用最小相异性来融合聚类。
5.根据权利要求4所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:在所述流量聚类模块中,使用欧氏距离和平均离差平方和法进行融合聚类的相异性计算:
6.根据权利要求4或5所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:在所述签名生成模块中,物联网设备的签名与流的长度相同,即‘n’比特通过在所有流中的固定位置找到不变的比特值来生成签名,包括:
7.根据权利要求6所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:设置阈值t=0.9,当在第i个比特位在100个流中的90个流中保持固定,那么第i个比特位根据发生情况获取固定值“0”或“1”,否则此位置获取的值为“*”。
8.根据权利要求1所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:所述binstrc数据结构定义如下:
9.根据权利要求8所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:对于签名id,包括:
10.根据权利要求9所述的一种基于mqtt的物联网设备的比特级深度包检测方法,其特征在于:在所述流量分类模块中,要分类的流首先在binstrc数据结构上遍历从root节点到叶节点的所有节点、网络流中的比特位以及对应比特位签名的位值;使用signmap(keyi,valuei)的key-value键值对实现签名匹配,其中,keyi是所有签名id的集合,valuei是一个初始设置为0的计数器,binstrc数据结构遍历期间,在有向边的权重上找到相同签名id,则将signmap的签名id增加1;