一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于MQTT协议的安全防护方法、装置、设备和存储介质与流程

2022-07-23 02:15:52 来源:中国专利 TAG:

基于mqtt协议的安全防护方法、装置、设备和存储介质
技术领域
1.本技术涉及通信技术领域,并且更具体地,涉及一种基于mqtt协议的安全防护方法、装置、设备和存储介质。


背景技术:

2.mqtt(消息队列遥测传输)是一个基于客户端-服务器的消息发布/订阅传输协议。mqtt可以被解释为一种低开销、低带宽占用的即时通讯协议,可以用极少的代码和带宽为连接远程设备提供实时可靠的消息服务,它适用于硬件性能低下的远程设备以及网络状况糟糕的环境下,因此 mqtt 协议在 iot(internet of things,物联网)、小型设备间通讯以及移动通讯等方面有较广泛的应用。
3.但是常规的mqtt协议仍存在安全漏洞,例如,多个客户端可以通过向服务器发布/订阅消息来进行信息交互,在这一过程中,客户端只需向服务器订阅相应主题的消息,便可以接收到该主题的消息内容,存在信息被非法设备窃听的风险。


技术实现要素:

4.根据本技术的实施例,提供了一种基于mqtt协议的安全防护方法、装置、设备和存储介质。
5.在本技术的第一方面,提供了一种基于mqtt协议的安全防护方法,应用于安全防护模块,所述安全防护模块部署于客户端与服务器之间的链路上,所述方法包括:获取客户端与服务器之间传输的mqtt格式报文;确定所述mqtt格式报文的功能类型;根据所述mqtt格式报文的功能类型判断是否允许所述mqtt格式报文通过。
6.通过采用上述技术方案,本技术能够根据mqtt格式报文的功能类型和当前的链路信息判断是否允许该mqtt格式报文通过,以阻断不允许在当前链中通行的功能类型的mqtt格式报文,提高客户端与服务器之间信息交互的安全性。
7.可选的,所述确定所述mqtt格式报文的功能类型包括:解析所述mqtt格式报文的报头,根据所述报头和预设的报头类型对照表确定所述功能类型。
8.可选的,所述确定所述mqtt格式报文的功能类型还包括:判断所述mqtt格式报文是否完整;若否,则输出未知功能类型。
9.可选的,所述判断所述mqtt格式报文是否完整包括:验证所述mqtt格式报文的报头是否与所述报头类型对照表匹配;若否,则不完整;若是,则解析mqtt格式报文中的msg len数值和mqtt格式报文的剩余长度,判断所述msg len数值和所述剩余长度是否一致;
若否,则不完整。
10.可选的,所述根据所述mqtt格式报文的功能类型判断允许所述mqtt格式报文通过包括:获取所述mqtt格式报文的链路信息;根据所述mqtt格式报文的链路信息、功能类型和预设的第一白名单,确定不属于所述第一白名单的mqtt格式报文不允许通过。
11.可选的,还包括:若所述mqtt格式报文属于所述第一白名单,则判断所述功能类型是否为预设功能类型;若否,则允许所述mqtt格式报文通过;若是,则确定所述mqtt格式报文的请求主题,并根据所述预设功能类型、请求主题和预设的第二白名单判断是否允许所述mqtt报文通过。
12.可选的,所述确定所述mqtt格式报文的请求主题包括:解析所述mqtt格式报文预设位的主题长度值;根据所述预设位和所述主题长度值确定主题字段;根据所述主题字段和预设的转换规则,确定请求主题。
13.本技术提供的一种基于基于mqtt协议的安全防护方法,本技术能够根据mqtt格式报文的功能类型和当前的链路信息判断是否允许该mqtt格式报文通过,以根据功能类型阻断不允许在当前链路中通行的mqtt格式报文,提高客户端与服务器之间信息交互的安全性;进一步的,还能够在功能类型为预设控制类型时,依据mqtt格式报文的控制类型、请求主题和预设的第二白名单,阻断不具有通行权限的mqtt格式报文,进一步提高客户端与服务器之间信息交互的安全性。
14.在本技术的第二方面,提供了一种基于mqtt协议的安全防护装置。该装置包括:获取单元,用于获取客户端发送的mqtt格式报文;确定单元,用于确定所述mqtt格式报文的功能类型;判断单元,用于根据所述mqtt格式报文的功能类型判断是否允许所述mqtt格式报文通过。
15.在本技术的第三方面,提供了一种设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
16.在本技术的第四方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本技术的第一方面的方法。
17.应当理解,发明内容部分中所描述的内容并非旨在限定本技术的实施例的关键或重要特征,亦非用于限制本技术的范围。本技术的其它特征将通过以下的描述变得容易理解。
附图说明
18.结合附图并参考以下详细说明,本技术各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示出了能够在其中实现本技术的实施例的示例性运行环境的示意图;
图2示出了根据本技术的实施例的一种基于mqtt协议的安全防护方法的流程图;图3示出了根据本技术的实施例的一种基于mqtt协议的安全防护装置的方框图;图4示出了适于用来实现本技术实施例的终端设备或服务器的结构示意图。
具体实施方式
19.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本技术保护的范围。
20.mqtt(消息队列遥测传输)是iso标准(iso/iec prf 20922)下基于发布/订阅范式的消息协议。它工作在tcp/ip协议族上,是由ibm在1999年发布的,为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。
21.mqtt可以被解释为一种低开销,低带宽占用的即时通讯协议,可以用极少的代码和带宽的为连接远程设备提供实时可靠的消息服务,它适用于硬件性能低下的远程设备以及网络状况糟糕的环境下,因此 mqtt 协议在 iot(internet of things,物联网),小型设备应用,移动应用等方面有较广泛的应用。
22.iot 设备要运作,就必须连接到互联网,设备才能相互协作,以及与后端服务协同工作。而互联网的基础网络协议是 tcp/ip,mqtt 协议是基于 tcp/ip 协议栈而构建的,因此它已经慢慢的已经成为了 iot 通讯的标准。
23.mqtt协议应用于客户端与服务器之间的通讯,在通讯过程中,mqtt协议中有三种身份,发布者(publish)、代理(broker)和订阅者(subscribe),其中,消息的发布者和订阅者都是客户端,代理是服务器,同一客户端既可以是消息的发布者也可以是订阅者。
24.通过mqtt协议传递的消息包括主题(topic)和负载(payload)两部分,发布者可以向服务器发布带有主题的消息内容,订阅者在向服务器订阅该主题的消息后,就会收到该主题的消息,并且对于同一主题的消息,多个订阅该主题的订阅者均会收到该消息。在这一过程中,若有非法设备订阅该主题的消息,便存在信息泄露的风险。
25.本技术中,在网络安全域间部署安全防护模块102,安全防护模块102能够获取客户端发送的mqtt格式报文,并确定mqtt格式报文的功能类型,并且根据mqtt格式报文的功能类型判断是否允许该mqtt格式报文通过,以此方式,可以根据功能类型筛除不具备通行权限的mqtt格式报文,提高数据传输的安全性。
26.图1示出了能够在其中实现本技术的实施例的示例性运行环境100的示意图。在运行环境100中包括客户端101、安全防护模块102和服务器103。
27.图2示出了根据本技术实施例的一种应用于mqtt协议的安全防护方法300的流程图。方法200可以由图1中的安全防护模块102执行。方法200包括:步骤s210:获取客户端与服务器之间传输的mqtt格式报文。
28.在本技术实施例中,在客户端与服务器之间基于mqtt协议进行数据交互时,mqtt格式报文需经由安全防护模块102过滤阻断,以精确控制每一条客户端与服务器之间的通信链路。
29.步骤s220:确定所述mqtt格式报文的功能类型。
30.在本技术实施例中,安全防护模块102中预先存储有报头类型对照表,确定mqtt格式报文的功能类型的方式可以是在获取到mqtt格式报文后,解析mqtt格式报文的报头,并根据报头和预设的报头类型对照表,确定mqtt格式报文的功能类型。
31.mqtt格式报文包括报头和剩余长度,其中报头第一字节的高4位能够体现mqtt格式报文的类型值,报头类型对照表包括类型值和功能类型的对应关系,即在确定mqtt格式报文的类型值后,依据报头类型对照表即可确定mqtt格式报文的功能类型。
32.在一个具体的示例中,报头类型对照表如表1所示:表1 报头类型对照表类型名称类型值报文说明connect1发起连接connack2连接回执publish3发布消息puback4发布回执pubrec5qos2消息回执pubrel6qos2消息释放pubcomp7qos2消息完成subscribe8订阅主题suback9订阅回执unsubscribe10取消订阅unsuback11取消订阅回执pingreq12ping请求pingresp13ping响应disconnect14断开连接mqtt格式报文在传输过程中,由于网络不佳或遭受网络攻击,都可能出现mqtt帧结构不完整的情况,为了保障通信质量,在判断mqtt格式报文的功能类型时,还需判断mqtt格式报文是否完整,若不完整,则输出未知类型,若完整,则根据mqtt格式报文的报头确定功能类型。
33.具体的,在判断mqtt格式报文的完整性时,首先判断mqtt格式报文的报头是否与报头类型对照表匹配,若否,则不完整。
34.若是,则解析mqtt格式报文中的msg len数值和mqtt格式报文的剩余长度,判断所述msg len数值和所述剩余长度是否一致。若否,则不完整。
35.mqtt格式报文中会通过msg len数值来体现剩余长度的字节数,若mqtt格式报文在传输过程中出现损坏,则会出现msg len数值与剩余长度的字节数不一致的情况。
36.步骤s230:根据所述mqtt格式报文的功能类型判断是否允许所述mqtt格式报文通过。
37.在确定mqtt格式报文的功能类型后,可以获取mqtt格式报文的链路信息,在本技术实施例中,链路信息即客户端的ip信息。根据mqtt格式报文的链路信息、功能类型和预设的第一白名单,确定不属于第一白名单的mqtt格式报文不允许通过。
38.第一白名单包括链路信息,且每一链路信息对应有一个或多个功能类型,第一白
名单中的链路信息和链路信息对应的功能类型可以是技术人员通过信息录入设置的,也可以是通过其他手段设置的,例如客户端ip可以向服务器申请权限等,在此不作限定。
39.在一个具体的示例中,若接收到mqtt报文的功能类型为未知类型,则该mqtt格式报文一定不属于第一白名单,需阻断该mqtt格式报文。若能够确定mqtt格式报文的功能类型,则根据第一白名单判断该mqtt报文的链路信息是否在第一白名单上,若是,则进一步判断该链路信息是否具有该功能类型的通行权限,若否,则阻断该mqtt格式报文。
40.在一些实施例中,若是,则允许该mqtt格式报文通过。例如,第一白名单中包括链路信息为202.101.105.66,其对应的功能类型为发起连接、发布消息和qos2消息回执。在获取到链路信息为202.101.105.66的mqtt格式报文后,判断其功能类型,若其功能类型为发布消息,则允许该mqtt格式报文通过;若其功能类型为订阅主题,则阻断该mqtt格式报文。
41.以此方式,不仅能够根据ip信息对每一个与服务器交互的客户端进行筛选,使得不具有通讯权限的客户端无法与服务器建立信息交互,达到提高客户端与服务器间信息交互安全性的目的。还能够针对每一个客户端ip,依据功能类型对每一客户端ip的通行权限精确控制,进一步提高了客户端与服务器之间信息交互的安全性。
42.在一些实施例中,在判断mqtt格式报文的链路信息和功能类型在第一白名单后,还需进一步判断mqtt格式报文的功能类型是否为预设功能类型,若否,则允许该mqtt格式报文通过。若是,则获取该mqtt格式报文的请求主题,并根据该mqtt格式报文的功能类型、请求主题和预设的第二白名单判断是否允许该mqtt格式报文通过。
43.其中,预设功能类型包括订阅主题、取消订阅和发布消息,预设功能类型的mqtt格式报文必须有请求主题,第二白名单中包括链路信息、与链路信息对应的预设功能类型以及与预设功能类型对应的请求主题。即在mqtt格式报文的功能类型为预设功能类型时,则判断该mqtt格式报文的请求主题是否在第二白名单中,若否,则阻断,若是,则允许通过。
44.在一个具体的示例中,若第二白名单中包括链路信息202.101.105.66,该链路信息对应的预设功能类型为发布消息和订阅主题,发布消息对应的请求主题为主题a和主题b,订阅主题对应的请求主题为主题a、主题b和主题c。在解析mqtt格式报文后,若该mqtt格式报文的功能类型为发布消息、请求主题为主题a,则允许该mqtt格式报文通过。若该mqtt格式报文的功能类型为发布消息、请求主题为主题c,则阻断该mqtt格式报文。
45.在本技术实施例中,获取mqtt格式报文的请求主题的方式可以是解析mqtt格式报文中预设位的主题长度值,并根据预设位和主题长度值确定主题字段,再根据主题字段和预设的转换规则确定请求主题。
46.在一个具体的示例中,mqtt格式报文中的预设位处的主题长度值为8,则表示主题长度为8,在确定主题字段是,可以是从预设位起向后取8个字节,提取出的8个字节构成主题字段,并将主题字段的8个字节通过预设规则转换为请求主题。转换规则可以是将十六进制转换为ascii码,通过转换规则转换后,得到的数值便是请求主题。
47.在另一些实施例中,可以是安全防护模块102中存储有请求主题对照表,在解析mqtt格式报文时获取能够体现请求主题的预设字段,再依据请求主题对照表确定请求主题。
48.需要说明的是,mqtt格式报文的剩余长度包括有效负载,预设位、主题长度值、主题字段均位于mqtt格式报文的有效负载部分;在一些实施例中,第一白名单和第二白名单
也可以是合并设置的。
49.本技术公开的一种基于mqtt协议的安全防护方法,通过设置第一白名单和第二白名单,不经能够控制每一客户端ip的通行权限,还能够控制每一客户端ip允许通过的mqtt格式报文的功能类型,并且,在mqtt格式报文的功能类型为预设功能类型,即控制类型时,可以精确控制预设功能类型允许通过的请求主题,实现了对客户端与服务器之间的通信链路的精确控制,提高了基于mqtt协议通信的客户端与服务器之间信息交互的安全性。
50.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本技术所必须的。
51.以上是关于方法实施例的介绍,以下通过装置实施例,对本技术所述方案进行进一步说明。
52.图3示出了根据本技术的实施例的基于mqtt协议的安全防护装置300的方框图。装置300可以被包括在图1的安全防护模块102中或者被实现为安全防护模块102。如图3所示,装置300包括:获取单元301,用于获取客户端发送的mqtt格式报文;确定单元302,用于确定所述mqtt格式报文的功能类型;判断单元303,用于根据所述mqtt格式报文的功能类型判断是否允许所述mqtt格式报文通过。
53.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
54.图4示出了适于用来实现本技术实施例的设备的结构示意图。
55.如图4所示,电子设备包括中央处理单元(cpu)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储部分408加载到随机访问存储器(ram)404中的程序而执行各种适当的动作和处理。在ram 403中,还存储有系统400操作所需的各种程序和数据。cpu 401、rom 402以及ram 403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
56.以下部件连接至i/o接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至i/o接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
57.特别地,根据本技术的实施例,上文参考流程图图2描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(cpu)401执行时,执行本技术的系统中限定的
上述功能。
58.需要说明的是,本技术所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
59.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
60.描述于本技术实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、确定单元和判断单元。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,获取单元还可以被描述为“用于获取客户端发送的mqtt格式报文的单元”。
61.作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本技术的基于mqtt协议的安全防护方法。
62.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献