CN108134801A - 一种基于消息过滤算法的mqtt协议智能家居的识别方法 - Google Patents
一种基于消息过滤算法的mqtt协议智能家居的识别方法 Download PDFInfo
- Publication number
- CN108134801A CN108134801A CN201810064038.3A CN201810064038A CN108134801A CN 108134801 A CN108134801 A CN 108134801A CN 201810064038 A CN201810064038 A CN 201810064038A CN 108134801 A CN108134801 A CN 108134801A
- Authority
- CN
- China
- Prior art keywords
- mqtt
- message
- spcial character
- match
- topic
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Automation & Control Theory (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协议智能家居的识别方法。
背景技术
智能家居系统是众多智能产品中规模较大,功能较全的一个家居服务系统,许多别墅和一些条件优越的家庭都已经配备了这套系统。早时的智能家居被称为家庭自动化、家庭网络、网络家电和信息家电,随着时代发展,逐渐被人们称为智能家居。
智能家居系统将嵌入式微控制器技术、无线连接、接入网络融合为一体。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消息固定头
其中,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 可变报头对应字节表
在可变头部中,第一部分是协议的名字,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 (3)
1.一种基于消息过滤算法的MQTT协议智能家居的识别方法,其特征在于,该方法具体包括以下步骤:
S1:在无线局域网的情况下,根据Wireshark在Linux系统中用airodump-ng抓取智能家居与外界通信时802.11的PCAP包,并筛选出MQTT(Message Queuing TelemetryTransport,消息队列遥测传输)协议的数据包;
S2:针对MQTT这一层进行解读,由于识别智能家居的MQTT协议,一般只涉及PUBLISH消息,可变报头的Topic Name关键字,定义了有效载荷数据发送的信息频道,订阅者根据Topic Name来识别出他们想要接收的消息;
S3:对MQTT协议的Topic位进行特殊字符查找;
S4:采用改进型的BF(Brute Force,暴风)算法进行模式匹配,设模式串特殊符号前有s位,如果目标串也含有特殊字符,则从特殊字符开始当作分界线,往前匹配s位同时往后匹配模式串其余位;
S5:用Topic位相匹配,识别出智能家居安防设备厂商。
2.根据权利要求1所述的一种基于消息过滤算法的MQTT协议智能家居的识别方法,其特征在于,所述步骤S3中,对MQTT协议的Topic位进行特殊字符查找,具体包括:设目标串长度为n,模式串长度为m模式串特殊符号前有s位,如果目标串也含有特殊字符,则从特殊字符开始当作分界线,往前匹配s位,同时往后匹配模式串其余位;首先需要对目标串遍历,找出特殊字符位置,时间复杂度为O(n);接着匹配模式串其余位,若不匹配,则跳到下一个特殊字符处,重复上述的步骤,这样匹配只需n的常数倍,即时间复杂度为O(n);若遍历后没有特殊字符,则运用BF算法进行匹配,最坏的情况下所需的时间复杂度仍然是O(m*n)。
3.根据权利要求1所述的一种基于消息过滤算法的MQTT协议智能家居的识别方法,其特征在于,所述步骤S4中,采用改进型的BF算法进行模式匹配,具体包括以下步骤:
S41:假设目标串S:abc$cel/Gespdev/G86Pxmz,模式串T:dev/G86P;在识别系统的BF模式匹配算法模块中,首先遍历目标串S,找出特殊字符$与/;匹配过程中的i表示匹配的次数,j表示目标串的位置;第一次匹配:此时特殊字符处不相等,匹配失败;
S42:第二次匹配:特殊字符匹配成功,往前匹配时失败;
S43:第三次匹配:当特殊字符匹配成功后,一分为二,同时向前向后开始匹配,目标串与模式串相同,匹配成功。
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 true CN108134801A (zh) | 2018-06-08 |
CN108134801B 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) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111355756A (zh) * | 2018-12-21 | 2020-06-30 | 航天科工惯性技术有限公司 | 一种基于mqtt协议的gnss接收机数据通讯方法 |
CN111786953A (zh) * | 2020-06-01 | 2020-10-16 | 杭州迪普科技股份有限公司 | 一种安全防护方法、装置和安全管理设备 |
CN112272081A (zh) * | 2020-12-08 | 2021-01-26 | 之江实验室 | 机器人与服务端之间通信的全双工有状态通讯协议方法 |
CN114301940A (zh) * | 2021-12-27 | 2022-04-08 | 锐迪科创微电子(北京)有限公司 | 物联网设备控制方法、装置及系统 |
WO2023082602A1 (zh) * | 2021-11-10 | 2023-05-19 | 西安广和通无线软件有限公司 | 一种远程管理方法、远程管理设备、模块及可读存储介质 |
Citations (5)
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 | 李建国 | 一种前台应用无关的处理、传递用户输入信息的方法和系统 |
-
2018
- 2018-01-23 CN CN201810064038.3A patent/CN108134801B/zh active Active
Patent Citations (5)
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)
Title |
---|
明廷堂: "BF与KMP模式匹配算法的实现与应用", 《电脑编程技巧与维护》 * |
顾亚文: "基于MQTT协议的通用智能家居系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111355756A (zh) * | 2018-12-21 | 2020-06-30 | 航天科工惯性技术有限公司 | 一种基于mqtt协议的gnss接收机数据通讯方法 |
CN111786953A (zh) * | 2020-06-01 | 2020-10-16 | 杭州迪普科技股份有限公司 | 一种安全防护方法、装置和安全管理设备 |
CN111786953B (zh) * | 2020-06-01 | 2022-11-01 | 杭州迪普科技股份有限公司 | 一种安全防护方法、装置和安全管理设备 |
CN112272081A (zh) * | 2020-12-08 | 2021-01-26 | 之江实验室 | 机器人与服务端之间通信的全双工有状态通讯协议方法 |
CN112272081B (zh) * | 2020-12-08 | 2021-04-09 | 之江实验室 | 机器人与服务端之间通信的全双工有状态通讯协议方法 |
WO2023082602A1 (zh) * | 2021-11-10 | 2023-05-19 | 西安广和通无线软件有限公司 | 一种远程管理方法、远程管理设备、模块及可读存储介质 |
CN114301940A (zh) * | 2021-12-27 | 2022-04-08 | 锐迪科创微电子(北京)有限公司 | 物联网设备控制方法、装置及系统 |
CN114301940B (zh) * | 2021-12-27 | 2024-06-07 | 锐迪科创微电子(北京)有限公司 | 物联网设备控制方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108134801B (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108134801A (zh) | 一种基于消息过滤算法的mqtt协议智能家居的识别方法 | |
RU2742327C1 (ru) | Инфраструктурная сеть | |
US6718379B1 (en) | System and method for network management of local area networks having non-blocking network switches configured for switching data packets between subnetworks based on management policies | |
KR100605209B1 (ko) | 네트워크용 변환장치 | |
JP5753840B2 (ja) | 無線ネットワークにおける通信を保護する方法及びそのためのリソースが制限された装置 | |
US20100070618A1 (en) | Ubiquitous sensor network system and method of configuring the same | |
WO2004107658A1 (en) | Home network system and its configuration system | |
EP1262043A1 (en) | Selective address table aging in a network switch | |
US20060152338A1 (en) | Remote control system and method for home items | |
US20200336397A1 (en) | Learning stable representations of devices for clustering-based device classification systems | |
AU2010222859A1 (en) | Use of SNMP for management of small footprint devices | |
CN114500139B (zh) | 指令组的发送方法和装置、存储介质及电子装置 | |
CN112422661A (zh) | 一种工业物联网数据采集集成的系统 | |
KR100445658B1 (ko) | 복수개의 통신규격이 사용되는 가전기기 네트워크 시스템및 그 동작방법 | |
JP2022549574A (ja) | 解決可能なプライベートアドレスを用いたネットワークフィルタリング | |
CN106502111A (zh) | 基于应用对象抽象化的智能引擎联动系统及方法 | |
CN109600365A (zh) | 基于电力网络iec规约的基因相似性入侵检测方法 | |
US20080016560A1 (en) | Access Control Method | |
US10999098B2 (en) | DC-powered device and electrical arrangement for monitoring unallowed operational data | |
CN105791021A (zh) | 一种硬件加速装置和方法 |
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 |