本发明涉及软件工程,特别指一种用于物联网环境的轻量级mqtt消息传输方法。
背景技术:
1、随着数字化的建设和发展,出现了越来越多的物联网设备,这些物联网设备应用于娱乐、工业、交通、安全等各种领域之中。轻量级的传输协议对于资源紧张的物联网设备来说是必不可少的,其中mqtt协议因具有轻量、简单、易于实现应用层软件的特点被广泛使用,已逐渐成为物联网领域的标准协议。
2、mqtt协议的传输安全性依赖于底层(传输层)的tls协议,但tls协议因涉及复杂的密码计算,并不适合低性能的物联网设备,tls协议中涉及的对称或非对称算法对于性能极低的物联网设备而言是巨大负担,且其实现复杂,需要一定程度的代码量,会占用物联网设备所剩不多的存储空间。
3、因此,如何提供一种用于物联网环境的轻量级mqtt消息传输方法,实现在保证安全性的前提下,降低mqtt消息传输的资源消耗,成为一个亟待解决的技术问题。
技术实现思路
1、本发明要解决的技术问题,在于提供一种用于物联网环境的轻量级mqtt消息传输方法,实现在保证安全性的前提下,降低mqtt消息传输的资源消耗。
2、本发明是这样实现的:一种用于物联网环境的轻量级mqtt消息传输方法,包括如下步骤:
3、步骤s10、在发布终端、订阅终端、消息代理终端以及可信系统上均预置一个共享的密钥pss;
4、步骤s20、发布终端基于所述密钥pss向可信系统发送一开始消息,可信系统基于接收的所述开始消息为所有的发布终端和订阅终端分别创建一终端id以及一会话密钥;
5、步骤s30、各发布终端和订阅终端与消息代理终端建立连接;
6、步骤s40、订阅终端向消息代理终端订阅预设主题的mqtt消息;
7、步骤s50、发布终端基于所述会话密钥对携带主题的mqtt消息进行加密生成加密消息,将所述加密消息发送给消息代理终端;
8、步骤s60、消息代理终端基于主题将接收的所述加密消息转发给对应的订阅终端,订阅终端向可信系统获取对应的所述会话密钥解密加密消息,得到mqtt消息。
9、进一步地,所述步骤s10中,所述可信系统用于为发布终端和订阅终端创建终端id以及会话密钥,各所述发布终端、订阅终端和消息代理终端均信赖可信系统;所述发布终端和订阅终端均为物联网设备。
10、进一步地,所述步骤s20具体为:
11、步骤s21、发布终端生成一开始消息,利用所述密钥pss加密开始消息后发送给可信系统;
12、步骤s22、可信系统利用所述密钥pss解密接收的开始消息,并对所述开始消息进行校验;
13、步骤s23、可信系统为所有的发布终端和订阅终端分别创建一终端id以及一会话密钥,并将所述终端id和会话密钥发送给对应的发布终端或者订阅终端。
14、进一步地,所述会话密钥由pcg-rand算法生成;可信系统利用所述密钥pss加密终端id后发送给对应的发布终端或者订阅终端,可信系统利用所述终端id加密会话密钥后发送给对应的发布终端或者订阅终端。
15、进一步地,所述步骤s30具体为:
16、各发布终端和订阅终端向消息代理终端发送连接请求,进而与消息代理终端建立连接,创建发布终端和订阅终端的会话,将所述会话发送给可信系统;所述会话携带终端id。
17、进一步地,所述步骤s40具体为:
18、订阅终端基于所述终端id向消息代理终端订阅预设主题的mqtt消息。
19、进一步地,所述步骤s50中,对所述mqtt消息进行加密的会话密钥的加密算法为异或算法、present算法或者hight算法。
20、进一步地,所述步骤s60具体包括:
21、步骤s61、消息代理终端接收所述加密消息,基于所述加密消息携带的主题,将所述加密消息转发给对应终端id的订阅终端;
22、步骤s62、订阅终端接收到所述加密消息后,生成一携带终端id的密钥获取请求,将所述密钥获取请求用密钥pss加密后发送给可信系统;
23、步骤s63、可信系统利用所述密钥pss解密密钥获取请求得到终端id,基于所述终端id从会话中匹配对应发布终端的会话密钥,利用所述终端id对会话密钥进行加密后发送给订阅终端;
24、步骤s64、订阅终端利用所述终端id解密接收的会话密钥,并利用所述会话密钥解密加密消息,得到mqtt消息。
25、进一步地,还包括:
26、步骤s70、各发布终端和订阅终端与消息代理终端断开连接。
27、本发明的优点在于:
28、通过发布终端基于密钥pss向可信系统发送开始消息,可信系统基于开始消息为所有的发布终端和订阅终端分别创建终端id以及会话密钥,且会话密钥基于pcg-rand算法生成;订阅终端向连接的消息代理终端订阅预设主题的mqtt消息,发布终端基于会话密钥对mqtt消息进行加密生成加密消息,并通过消息代理终端转发给对应的订阅终端,订阅终端向可信系统获取对应的会话密钥解密加密消息以得到mqtt消息,发布终端、订阅终端、消息代理终端以及可信系统的交互数据通过密钥pss、终端id以及会话密钥进行多重加密以保证数据传输的安全性,而会话密钥由代码量极少的pcg-rand算法生成,会话密钥的加密算法为异或算法、present算法或者hight算法的轻量级加密算法,不涉及复杂的加密算法,对物联网设备的内存、cpu以及电能的消耗都极少,最终实现在保证安全性的前提下,极大的降低了mqtt消息传输的资源消耗。
1.一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:所述步骤s10中,所述可信系统用于为发布终端和订阅终端创建终端id以及会话密钥,各所述发布终端、订阅终端和消息代理终端均信赖可信系统;所述发布终端和订阅终端均为物联网设备。
3.如权利要求1所述的一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:所述步骤s20具体为:
4.如权利要求3所述的一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:所述会话密钥由pcg-rand算法生成;可信系统利用所述密钥pss加密终端id后发送给对应的发布终端或者订阅终端,可信系统利用所述终端id加密会话密钥后发送给对应的发布终端或者订阅终端。
5.如权利要求1所述的一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:所述步骤s30具体为:
6.如权利要求1所述的一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:所述步骤s40具体为:
7.如权利要求1所述的一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:所述步骤s50中,对所述mqtt消息进行加密的会话密钥的加密算法为异或算法、present算法或者hight算法。
8.如权利要求1所述的一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:所述步骤s60具体包括:
9.如权利要求1所述的一种用于物联网环境的轻量级mqtt消息传输方法,其特征在于:还包括: