CN108134801B - 一种基于消息过滤算法的mqtt协议智能家居的识别方法 - Google Patents

一种基于消息过滤算法的mqtt协议智能家居的识别方法 Download PDF

Info

Publication number
CN108134801B
CN108134801B CN201810064038.3A CN201810064038A CN108134801B CN 108134801 B CN108134801 B CN 108134801B CN 201810064038 A CN201810064038 A CN 201810064038A CN 108134801 B CN108134801 B CN 108134801B
Authority
CN
China
Prior art keywords
matching
mqtt
algorithm
string
mqtt protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810064038.3A
Other languages
English (en)
Other versions
CN108134801A (zh
Inventor
彭大芹
邱雨
李司坤
谢金凤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN201810064038.3A priority Critical patent/CN108134801B/zh
Publication of CN108134801A publication Critical patent/CN108134801A/zh
Application granted granted Critical
Publication of CN108134801B publication Critical patent/CN108134801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及一种基于消息过滤算法的MQTT协议智能家居的识别方法,属于智能家居安防设备网络信息安全领域。该方法包括:在无线局域网的情况下,根据Wireshark在Linux系统中用airodump‑ng抓取智能家居与外界通信时802.11的PCAP包,并筛选出MQTT协议的数据包;针对MQTT这一层进行解读,由于识别智能家居的MQTT协议,一般只涉及PUBLISH消息,可变报头的Topic Name关键字,定义了有效载荷数据发送的信息频道,订阅者根据Topic Name来识别出他们想要接收的消息;对MQTT协议的Topic位先进行特殊字符查找;采用改进型的BF算法进行模式匹配;用Topic位相匹配,识别出智能家居安防设备厂商。本发明通过改进型的消息过滤算法将MQTT协议中订阅的主题与智能家居品牌联系了起来。

Description

一种基于消息过滤算法的MQTT协议智能家居的识别方法
技术领域
本发明属于智能家居安防设备网络信息安全领域,涉及一种基于消息过滤算法的MQTT协议智能家居的识别方法。
背景技术
智能家居系统是众多智能产品中规模较大,功能较全的一个家居服务系统,许多别墅和一些条件优越的家庭都已经配备了这套系统。早时的智能家居被称为家庭自动化、家庭网络、网络家电和信息家电,随着时代发展,逐渐被人们称为智能家居。
智能家居系统将嵌入式微控制器技术、无线连接、接入网络融合为一体。Apps软件能够使用户发现家里的设备,设置、或者创建一个动作加以控制。远程管控让居民不管走到哪儿,都不会与家里失联,随时随地“发现、管理、控制”。例如,居民旅游在外,你仍可监视住宅的安全环境和调节家舍的室内温度。
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议是用做制动器和传感器的通信协议。由于其适用于小型传输,所需的带宽小,并且可以较好的工作在不稳定的网络中,使得MQTT协议广泛应用在物联网和机器与机器(M2M)通信环境中。
目前基于MQTT协议的智能家居安防设备的识别系统中,在关键字过滤中,常用的算法有BF(Brute Force)、KMP(Knuth Morris Pratt)等;BF算法是一种字符串模式匹配算法,运算复杂度较高;由于此识别系统可能应用于嵌入式设备中,算法的运行效率要求较高,因此原始的PF算法无法满足要求,故需要一种识别方法,通过wireshark抓取MQTT协议的PCAP包,分析MQTT协议的PCAP包中Publish Message里各字段的作用,采用改进的消息过滤算法对MQTT协议数据流相关字节的关键字进行匹配,识别出智能家居生产商。
发明内容
有鉴于此,本发明的目的在于提供一种基于消息过滤算法的MQTT协议智能家居的识别方法,通过该方法可以判断家中的智能家居安防设备是否存在安全性保障。
为达到上述目的,本发明提供如下技术方案:
一种基于消息过滤算法的MQTT协议智能家居的识别方法,该方法具体包括以下步骤:
S1:在无线局域网的情况下,根据Wireshark在Linux系统中用airodump-ng抓取智能家居与外界通信时802.11的PCAP包,并筛选出MQTT协议的数据包;
S2:针对MQTT这一层进行解读,由于识别智能家居的MQTT协议,一般只涉及PUBLISH消息,可变报头的Topic Name关键字,定义了有效载荷数据发送的信息频道,订阅者根据Topic Name来识别出他们想要接收的消息;
S3:对MQTT协议的Topic位进行特殊字符查找;
S4:采用改进型的BF(Brute Force,暴风)算法进行模式匹配,设模式串特殊符号前有s位,如果目标串也含有特殊字符,则从特殊字符开始当作分界线,往前匹配s位同时往后匹配模式串其余位;
S5:用Topic位相匹配,识别出智能家居安防设备厂商。
进一步,所述步骤S3中,对MQTT协议的Topic位进行特殊字符查找包括:设目标串长度为n,模式串长度为m模式串特殊符号前有s位,如果目标串也含有特殊字符,则从特殊字符开始当作分界线,往前匹配s位,同时往后匹配模式串其余位;首先需要对目标串遍历,找出特殊字符位置,时间复杂度为O(n);接着匹配模式串其余位,若不匹配,则跳到下一个特殊字符处,重复上述的步骤,这样匹配只需n的常数倍,即时间复杂度为O(n);若遍历后没有特殊字符,则运用BF算法进行匹配,最坏的情况下所需的时间复杂度仍然是O(m*n)。
进一步,所述步骤S4中,采用改进型的BF算法进行模式匹配,具体包括以下步骤:
S41:假设目标串S:abc$cel/Gespdev/G86Pxmz,模式串T:dev/G86P;在识别系统的BF模式匹配算法模块中,首先遍历目标串S,找出特殊字符$与/;匹配过程中的i表示匹配的次数,j表示目标串的位置;如图2所示,第一次匹配:此时特殊字符处不相等,匹配失败;
S42:如图3所示,第二次匹配:特殊字符匹配成功,往前匹配时失败;
S43:如图4所示,第三次匹配:当特殊字符匹配成功后,一分为二,同时向前向后开始匹配,目标串与模式串相同,匹配成功。
本发明的有益效果在于:本发明通过wireshark抓取了MQTT协议的PCAP包,分析了MQTT协议的PCAP包中Publish Message里各字段的作用,采用改进的消息过滤算法对MQTT协议数据流相关字节的关键字进行匹配,识别出智能家居生产商,从而判断出家中的智能家居安防设备是否存在安全性保障。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为基于MQTT协议的通用智能家居安防系统总体框架设计图;
图2为特殊字符第一次匹配示意图;
图3为特殊字符第二次匹配示意图;
图4为特殊字符第三次匹配示意图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
图1为基于MQTT协议的通用智能家居安防系统总体框架设计图,参照图1,对于每一个MQTT协议命令消息的头部都包含了一个固定报头,有些消息还需要一个可变报头和一个有效载荷。固定报头、可变报头以及有效载荷的格式如下。
固定报头的第一个字节包含了类型和标签(DUP,QoS level,and RETAIN),第二个字节(至少含有一个字节)包含接下来的变长头部和消息体的总大小。固定报头如表1所示。
表1 MQTT消息固定头
Figure BDA0001556174120000031
其中,Message Type是4位无符号的数值,DUP flag设置为1表示客户端或者服务器重新发送了一个PUBLISH、PUBREL、SUBSCRIBE或者UNSUBSCRIBE消息。如果DUP设置为1,那么可变报头将包含Message ID字段。
QoS表示发送PUBLISH消息的级别。QoS为0时,PUBLISH消息至多发送一次。
第二个字节Remaining Length保存后面的可变头部和消息体的总大小。这个字节可以进行扩展,如果可变头部与消息体的总大小在0到127之间,那么直接保存,不需要扩展字节。但可变头部与消息体的总大小在128到16383,则需要扩展一个字节,使用第二个字节保存其长度。Remaining Length最多可以为4个字节。
表2是MQTT协议的可变报头。
表2 可变报头对应字节表
Figure BDA0001556174120000032
在可变头部中,第一部分是协议的名字,MSB与LSB表示在Protocol Name中后面的字节长度,这里是6个字节,即”MQIsdp”。Topic Name是订阅消息标识,可以用来区分消息的推送类别,订阅者使用这个关键字来识别想要接收的消息。
根据图1中的系统,本发明提供一种基于消息过滤算法的MQTT协议智能家居的识别方法,其步骤为:
步骤1:在无线局域网的情况下,根据wireshark在Linux系统中用airodump-ng抓取智能家居与外界通信时802.11的PCAP包,并筛选出MQTT协议的数据包。
步骤2:针对MQTT这一层进行解读,由于识别智能家居的MQTT协议一般只涉及PUBLISH消息,所以只需针对这个消息进行解读与存储。
步骤3:在Publish Message中,第一个字节是0x30,转化成二进制是00110000,代表这个消息是PUBLISH消息,QoS设置为00,即这个消息至多被发送一次。Msg Len代表可变头部与消息体的总大小,此处大小是302,因为介于128到16363之间,故需要扩展成两个字节来存放,即0x30后面的两个字节:0xae与0x02。计算方式为:302=46+2*128,46转为二进制数为00101110,将最高位置1,表示后面还有存放的字节,置1后成为10101110,即0xae,后一个字节存放0x02。
步骤4:可变报头的Topic Name关键字,定义了有效载荷数据发送的信息频道。订阅者根据Topic Name来识别出他们想要接收的消息。此处存放的Topic Name转化为ASCII码为dev2app/G86PxmzRfHq98dbJotEoms。后面存放的字节就是PUBLISH消息的数据段。
步骤5:对MQTT协议的Topic位先进行特殊字符查找。设模式串特殊符号前有s位,如果目标串也含有特殊字符,则从特殊字符开始当作分界线,往前匹配s位同时往后匹配模式串其余位。首先需要对目标串遍历,找出特殊字符位置,时间复杂度为O(n)。接着匹配模式串其余位,若不匹配,则跳到下一个特殊字符处,重复上面的工作,这样匹配只需n的常数倍,即时间复杂度为O(n)。若遍历后没有特殊字符,则进行原始的BF模式匹配算法,最坏的情况下所需的时间复杂度仍然是O(M*N)。
步骤5.1:采用改进型的BF模式匹配算法。假设目标串S:abc$cel/Gespdev/G86Pxmz,模式串T:dev/G86P。在识别系统的BF模式匹配算法模块中,首先遍历目标串S,找出特殊字符$与/。匹配过程中的i表示匹配的次数,j表示目标串的位置。如图2所示,第一次匹配:此时特殊字符处不相等,匹配失败。
步骤5.2:如图3所示,第二次匹配:特殊字符匹配成功,往前匹配时失败。
步骤5.3:如图4所示,第三次匹配:当特殊字符匹配成功后,一分为二,同时向前向后开始匹配,目标串与模式串相同,匹配成功。
最后将Topic位用BF算法相匹配,识别出智能家居安防设备厂商。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

Claims (2)

1.一种基于消息过滤算法的MQTT协议智能家居的识别方法,其特征在于,该方法具体包括以下步骤:
S1:在无线局域网的情况下,根据Wireshark在Linux系统中用airodump-ng抓取智能家居与外界通信时802.11的PCAP包,并筛选出MQTT协议的数据包;其中MQTT协议为MessageQueuing Telemetry Transport消息队列遥测传输;
S2:针对MQTT这一层进行解读,由于识别智能家居的MQTT协议,只涉及PUBLISH消息,可变报头的Topic Name关键字,定义了有效载荷数据发送的信息频道,订阅者根据TopicName来识别出他们想要接收的消息;
S3:对MQTT协议的Topic Name关键字进行特殊字符查找,并进行模式匹配,具体包括:设目标串长度为n,模式串长度为m,模式串特殊符号前有s位,如果目标串也含有特殊字符,则采用改进型的BF算法进行模式匹配,从特殊字符开始当作分界线,往前匹配s位同时往后匹配模式串其余位;首先需要对目标串遍历,找出特殊字符位置,时间复杂度为O(n);接着匹配模式串其余位,若不匹配,则跳到下一个特殊字符处,重复上述的步骤,这样匹配只需n的常数倍,即时间复杂度为O(n);若遍历后没有特殊字符,则运用原始的BF算法进行匹配,最坏的情况下所需的时间复杂度仍然是O(m*n);其中BF算法为Brute Force暴风算法;
S4:用Topic Name关键字相匹配,识别出智能家居安防设备厂商。
2.根据权利要求1所述的一种基于消息过滤算法的MQTT协议智能家居的识别方法,其特征在于,所述步骤S3中,采用改进型的BF算法进行模式匹配,具体包括以下步骤:
S31:假设目标串S:abc$cel/Gespdev/G86Pxmz,模式串T:dev/G86P;在识别系统的BF模式匹配算法模块中,首先遍历目标串S,找出特殊字符$与/;匹配过程中的i表示匹配的次数,j表示目标串的位置;第一次匹配:此时特殊字符处不相等,匹配失败;
S32:第二次匹配:特殊字符匹配成功,往前匹配时失败;
S33:第三次匹配:当特殊字符匹配成功后,一分为二,同时向前向后开始匹配,目标串与模式串相同,匹配成功。
CN201810064038.3A 2018-01-23 2018-01-23 一种基于消息过滤算法的mqtt协议智能家居的识别方法 Active CN108134801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810064038.3A CN108134801B (zh) 2018-01-23 2018-01-23 一种基于消息过滤算法的mqtt协议智能家居的识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810064038.3A CN108134801B (zh) 2018-01-23 2018-01-23 一种基于消息过滤算法的mqtt协议智能家居的识别方法

Publications (2)

Publication Number Publication Date
CN108134801A CN108134801A (zh) 2018-06-08
CN108134801B true CN108134801B (zh) 2020-09-01

Family

ID=62400767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810064038.3A Active CN108134801B (zh) 2018-01-23 2018-01-23 一种基于消息过滤算法的mqtt协议智能家居的识别方法

Country Status (1)

Country Link
CN (1) CN108134801B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111355756B (zh) * 2018-12-21 2022-08-05 航天科工惯性技术有限公司 一种基于mqtt协议的gnss接收机数据通讯方法
CN111786953B (zh) * 2020-06-01 2022-11-01 杭州迪普科技股份有限公司 一种安全防护方法、装置和安全管理设备
CN112272081B (zh) * 2020-12-08 2021-04-09 之江实验室 机器人与服务端之间通信的全双工有状态通讯协议方法
CN114070884A (zh) * 2021-11-10 2022-02-18 西安广和通无线软件有限公司 一种远程管理方法、远程管理设备、模块及可读存储介质
CN114301940B (zh) * 2021-12-27 2024-06-07 锐迪科创微电子(北京)有限公司 物联网设备控制方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595729A (zh) * 2013-11-25 2014-02-19 北京锐安科技有限公司 一种协议解析方法及装置
CN106250173A (zh) * 2016-07-15 2016-12-21 深圳市丰巨泰科电子有限公司 一种基于mqtt的消息远程安装和卸载广告的方法
CN106603352A (zh) * 2016-12-22 2017-04-26 深圳市艾森魏尔科技有限公司 一种智能家居用户、应用服务器管理负载均衡的系统及算法
KR20170125252A (ko) * 2016-05-04 2017-11-14 전자부품연구원 M2M/IoT 플랫폼에서 MQTT 프로토콜을 활용한 메시지 단편화 방법
CN107517154A (zh) * 2017-08-24 2017-12-26 李建国 一种前台应用无关的处理、传递用户输入信息的方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595729A (zh) * 2013-11-25 2014-02-19 北京锐安科技有限公司 一种协议解析方法及装置
KR20170125252A (ko) * 2016-05-04 2017-11-14 전자부품연구원 M2M/IoT 플랫폼에서 MQTT 프로토콜을 활용한 메시지 단편화 방법
CN106250173A (zh) * 2016-07-15 2016-12-21 深圳市丰巨泰科电子有限公司 一种基于mqtt的消息远程安装和卸载广告的方法
CN106603352A (zh) * 2016-12-22 2017-04-26 深圳市艾森魏尔科技有限公司 一种智能家居用户、应用服务器管理负载均衡的系统及算法
CN107517154A (zh) * 2017-08-24 2017-12-26 李建国 一种前台应用无关的处理、传递用户输入信息的方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BF与KMP模式匹配算法的实现与应用;明廷堂;《电脑编程技巧与维护》;20131224;全文 *
基于MQTT协议的通用智能家居系统设计与实现;顾亚文;《中国优秀硕士学位论文全文数据库 信息科技辑》;20141101;全文 *

Also Published As

Publication number Publication date
CN108134801A (zh) 2018-06-08

Similar Documents

Publication Publication Date Title
CN108134801B (zh) 一种基于消息过滤算法的mqtt协议智能家居的识别方法
JP3017925B2 (ja) 移動通信端末と移動通信方法
US9319241B2 (en) Flow-based packet transport device and packet management method thereof
CN103765847A (zh) 用于媒体访问控制头部压缩的装置和方法
US8532331B2 (en) Method for monitoring a picture or multimedia video pictures in a communication system
CN101772920A (zh) 用于使用资源信息发现通用即插即用设备的方法和装置
US7730208B2 (en) Method and system for centrally exchanging terminal information over a meshed network
CN112688827B (zh) 一种组播流检测方法、设备及系统
WO2017041534A1 (zh) 一种电力线网络通信的方法及装置、计算机存储介质
CN102439948A (zh) 为基于以太网的多播通信确定组地址
CN108684024A (zh) 蓝牙网络系统
CN104954462A (zh) 一种高并发可扩展的智能家居通信方法和系统
CN101449539A (zh) 利用散列值在无线电信系统中的连接配置
US20100049804A1 (en) Instant Messaging
CN116566897A (zh) 一种寻址路由方法、装置、设备及介质
US11612007B2 (en) Low power dissipation Bluetooth mesh network system and communication method
CN110474781B (zh) 一种组播数据转发的方法及装置
CN114567673A (zh) 一种区块链节点快速广播区块的方法
CN102624600A (zh) 一种以太网报文匹配方法、装置及终端
Vu et al. MQTT protocol for connected OCC small cells
CN114915920B (zh) 消息的传输方法、装置、机器人以及存储介质
CN112543142A (zh) 基于fpga实现rstp环网协议的方法和装置
CN105791081B (zh) 一种信息处理方法及第一电子设备
CN110943973B (zh) 数据流分类方法及装置、模型训练方法及装置和存储介质
US11855902B2 (en) Device and method for splitting data for transmission

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant