一种针对MQTT协议的细粒度安全通信方法技术

技术编号:35562438 阅读:14 留言:0更新日期:2022-11-12 15:45
本发明专利技术提出一种针对MQTT协议的细粒度安全通信方法,可应用在使用MQTT作为通信协议的物联网系统中。方案基于双线性映射和迪菲

【技术实现步骤摘要】
一种针对MQTT协议的细粒度安全通信方法


[0001]本专利技术属于计算机安全
,尤其是MQTT协议下的信息安全传输方法。

技术介绍

[0002]随着物联网技术的快速发展,越来越多的设备接入物联网以提供服务。考虑到大量资源有限的终端设备以及巨大的流量,物联网设备如何在彼此或服务器之间高效且安全地通信是一个重要问题。在众多的物联网通信协议中,MQTT(消息队列遥测传输)协议凭借轻量级且易于使用的特点,使其得到了广泛应用。不过,MQTT协议本身只有少数安全机制被明确规定,例如代理的身份验证是由一个预设共享的用户名和密码执行,而信息加密则是被推荐使用SSL/TLS协议。它缺乏足够的安全保护,如访问控制、身份认证和控制消息安全。现存方法存在几个问题:(1)无法提供双向的身份认证;(2)存在通过代理处身份验证的客户端,仍会尝试发布或订阅未经授权主题的问题;(3)TLS的计算负载较大导致通信效率不高,不适合在物联网实际应用场景下的信息安全传输;(4)当前加密方式下需要代理参与加密和解密,故存在代理被对手攻击导致其数据面临泄露的风险。
[0003]因此,针对现有安全功能不足的缺陷,针对主题的细粒度安全认证以及完成端到端的密钥协商,可以增加MQTT协议的安全性;同时采用轻量级的AES加密方法,可以提高安全通信的效率。

技术实现思路

[0004]本专利技术所解决的技术问题在于提供一种针对MQTT协议的细粒度安全通信方法,双线性映射和DH密钥交换方案为基础,进行双向身份认证和密钥协商。本方法适用于MQTT协议下一对一以及一对多的工作场景,同时可以应对参与成员动态变化的情况,最终实现信息的安全传输。
[0005]实现本专利技术目的的技术解决方案为:
[0006]一种针对MQTT协议的细粒度安全通信方法,包括以下步骤:
[0007]步骤1:初始化阶段为用户、设备、主题完成注册,TA生成系统参数并分发;
[0008]步骤2:身份认证阶段完成双向身份认证;
[0009]步骤3:密钥协商阶段在用户和设备间完成端到端密钥协商,生成会话密钥;
[0010]步骤4:设计系统参与成员发生动态变化时的应对方法。
[0011]进一步的,一种针对MQTT协议的细粒度安全通信方法,步骤1具体包括:
[0012]步骤1

1:为用户、设备、主题完成注册,生成ACL;
[0013]步骤1

2:受信任的TA生成系统参数并分发给系统参与者。
[0014]进一步的,一种针对MQTT协议的细粒度安全通信方法,步骤1

1具体为:作为初始化阶段的基础,系统中的用户、设备和代理中的主题,都必须与TA执行注册操作;令U={U1,U2,

}和D={D1,D2,

}是两组授权的客户端,TID={TID1,TID2,

}是在代理处注册的一组有效的主题名称;其中,U代表用户,D代表设备,TID代表主题的唯一ID信息;在初始化阶段,
TA将根据MQTT预设的访问策略准备接着TA向代理发送ACL,代理可以基于它执行细粒度访问控制;具体来说,令和是被授权合法访问某一个主题的发布者和订阅者,其中TID
t
表示代理中第t个主题的唯一身份。
[0015]进一步的,本专利技术的一种针对MQTT协议的细粒度安全通信方法,步骤1

2具体
[0016]为:
[0017]注册完成后,TA选择一个循环加法群G1和一个循环乘法群G2,两者的阶数均为大素数q;TA选择两个加密哈希函数:H(
·
):G1→
Z
q*
和h(
·
):{0,1}
*

Z
q*
;接着,TA选择一个随机数s∈Z
q*
作为系统的主密钥,计算系统的公钥P
pub
=sP,其中P为生成元。TA向系统内所有的用户和设备公布这些初始化公共参数trans={G1,G2,q,P,P
pub
,H(
·
),h(
·
)};TA为设备D
i
选择一个随机数a
i
,计算和其中t表示主题的编号,i表示设备的编号;最后,TA通过安全通道分别向U发送信息{VTID
t
i}和D
i
发送信息{a
i
、b
i
、TID
i
}。
[0018]进一步的,本专利技术的一种针对MQTT协议的细粒度安全通信方法,步骤2具体为:
[0019]身份认证部分适用单个设备场景和多个设备场景,具体的:
[0020](1)用户和单个设备间的身份认证:
[0021]首先,用户U根据从TA处接收到的初始化信息计算双线性映射e(H(VTID
t
)+H(VTID
t
)
·
h(TS),P
pub
),并将结果发布给当前主题,其中TS是时间戳;当设备D通过订阅相同主题的方式收到用户U的信息后,立即检查消息中时间戳的新鲜度,若不是新鲜的时间戳则认证进程立刻终止;当时间戳验证合法之后,设备D计算w=b+b
·
h(TS)和e(w,P);此时,代理验证e(w,P)=e(H(VTID
t
)+H(VTID
t
)
·
h(TS),P
pub
)是否成立,若等式成立,双方身份认证通过,即均为当前主题下的合法参与者;若不成立则说明用户U和现场设备D中至少存在一个非法参与者,进程终止。
[0022](2)用户和多个设备间的群组身份认证:
[0023]首先,用户U根据从TA处接收到的初始化信息计算双线性映射并将结果发布给当前主题,其中TS是时间戳;设备D
i
通过订阅同一主题的方式收到用户U的信息后,每个设备均立即检查各自消息中时间戳的新鲜度,若不是新鲜的时间戳则认证进程终止。当时间戳验证合法之后,D
i
计算w
i
=b
i
+b
i
h(TS)和此时,MQTT代理被授权验证是否成立,若等式成立,用户U和多个设备之间的身份认证通过,即均为当前主题下的合法参与者;若不成立则说明用户U和现场设备D
i
中至少存在一个非法参与者,进程立刻终止。
[0024]进一步的,本专利技术的一种针对MQTT协议的细粒度安全通信方法,步骤3具体为:在身份认证后,合法的用户和设备进行密钥协商,以完成端到端的通信加密工作。与身份认证相类似,本方案的密钥协商适用单个设备场景和多个设备场景,具体的:
[0025](1)用户和单个设备的密钥协商:
[0026]首先,通过身份认证的合法设备D选择随机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对MQTT协议的细粒度安全通信方法,其特征在于,包含以下步骤:步骤1:初始化阶段用户、设备、主题完成注册,可信任授权机构TA生成系统参数并分发;步骤2:身份认证阶段完成双向身份认证;步骤3:密钥协商阶段在用户和设备间完成端到端密钥协商,生成会话密钥;步骤4:设计设备成员动态变化时的应对方法。2.根据权利要求1所述的方法,其特征在于,步骤1初始化阶段具体包括:步骤1

1:为用户、设备、主题完成注册,生成ACL;步骤1

2:受信任的TA生成系统参数并分发给系统参与者。3.根据权利要求2所述的方法,其特征在于,步骤1

1具体为:作为初始化阶段的基础,系统中的用户、设备和代理中的主题,都必须与TA进行注册操作;令U={U1,U2,

}和D={D1,D2,

}是两组授权客户端,TID={TID1,TID2,

}是在代理处注册的一组有效的主题名称,其中U代表用户,D代表设备,TID代表主题的ID信息;在初始化阶段,TA将根据MQTT预设的访问策略准备接着TA向代理发送ACL,代理基于它执行细粒度访问控制;具体来说,令和是被授权合法访问一个主题的发布者和订阅者,其中TID
t
表示第t个主题的唯一身份。4.根据权利要求2所述的方法,其特征在于,步骤1

2具体为:注册完成后,TA选择一个循环加法群G1和一个循环乘法群G2,两者的阶数均为大素数q;TA选择两个加密哈希函数:H(
·
):G1→
Z
q*
和h(
·
):{0,1}
*

Z
q*
;接着,TA选择一个随机数s∈Z
q*
作为系统的主密钥,计算系统的公钥P
pub
=sP,其中P为生成元。TA向系统内所有的用户和设备公布这些初始化公共参数trans={G1,G2,q,P,P
pub
,H(
·
),h(
·
)};TA为设备D
i
选择一个随机数a
i
,计算和其中t为主题的编号,i表示设备的编号;最后,TA通过安全通道分别向U发送信息{VTID
ti
}和D
i
发送信息{a
i
,b
i
,TID
i
}。5.根据权利要求1所述的方法,其特征在于,步骤2具体为:身份认证部分适用单个设备场景和多个设备场景,具体的:(1)用户和单个设备间的身份认证:首先,用户U根据从TA处接收到的初始化信息计算双线性映射e(H(VTID
t
)+H(VTID
t
)
·
h(TS),P
pub
),并将结果发布给当前主题,其中TS是时间戳;当设备D通过订阅相同主题的方式收到用户U的信息后,立即检查消息中时间戳的新鲜度,若不是新鲜的时间戳则认证进程立刻终止。当时间戳验证合法之后,设...

【专利技术属性】
技术研发人员:李延斌邵天岳任守纲顾兴健
申请(专利权)人:南京农业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1