1.一种基于消息过滤算法的MQTT协议智能家居的识别方法,其特征在于,该方法具体包括以下步骤:S1:在无线局域网的情况下,根据Wireshark在Linux系统中用airodump-ng抓取智能家居与外界通信时802.11的PCAP包,并筛选出MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议的数据包;
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:第三次匹配:当特殊字符匹配成功后,一分为二,同时向前向后开始匹配,目标串与模式串相同,匹配成功。