(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210809089.0
(22)申请日 2022.07.11
(71)申请人 南京农业大 学
地址 210000 江苏省南京市玄武区卫岗1号
(72)发明人 李延斌 邵天岳 任守纲 顾兴健
(74)专利代理 机构 南京天华专利代理有限责任
公司 32218
专利代理师 刘畅 徐冬涛
(51)Int.Cl.
H04L 9/32(2006.01)
H04L 9/30(2006.01)
H04L 9/08(2006.01)
H04L 9/40(2022.01)
(54)发明名称
一种针对MQT T协议的细粒度安全通信方法
(57)摘要
本发明提出一种针对MQTT协议的细粒度安
全通信方法, 可应用在使用MQTT作为通信协议的
物联网系统中。 方案基于双线性映射和迪菲 ‑赫
尔曼密钥交换(Diffie –Hellman keyexchange)
完成双向身份认 证和密钥协商, 最终对发送的消
息加密以实现用户和设备间的安全通信。 本方法
首先利用MQTT主题(topic)的身份信息来参与完
成针对主题得细粒度身份认证, 接着在合法的用
户和设备间进行端到端的密钥协商, 最后利用生
成的对称密钥完成加密通信。 本发 明的方法能够
适用于MQTT中一个用户和单个或多个设备进行
安全通信的场景, 并且可应对设备数量动态变化
的情况。
权利要求书2页 说明书6页 附图2页
CN 115333743 A
2022.11.11
CN 115333743 A
1.一种针对MQT T协议的细粒度安全通信方法, 其特 征在于, 包 含以下步骤:
步骤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,…}是两组授权客户端, T ID={TID1, TID2,…}是在代理处
注册的一组有效的主题名称, 其中U代表用户, D代表设备, TID代表主题的ID信息; 在初始化
阶段, TA将根据MQTT预设的访问策略准备
接着TA向代理发送ACL, 代
理基于它执行细粒度访问控制; 具体来说, 令
和
是被授权合法访问
一个主题的发布者和订阅者, 其中TIDt表示第t个主题的唯一身份。
4.根据权利要求2所述的方法, 其特 征在于, 步骤1 ‑2具体为:
注册完成后, TA选择一个循环加法群G1和一个循环乘法群G2, 两者的阶数均为大素数q;
TA选择两个加密哈希函数: H( ·): G1→Zq*和h(·):{0,1}*→Zq*; 接着, TA选择一个随机数s
∈Zq*作为系统的主密钥, 计 算系统的公钥Ppub=sP, 其中P为生成元。 TA向系统内所有的用户
和设备公布这些初始化公共参数trans={G1,G2,q,P,Ppub,H(·),h(·)}; TA为设备Di选择
一个随机数ai, 计算
和
其中t为主题的编号, i表示设备的编
号; 最后, TA通过安全通道分别向U发送信息{VTIDti}和Di发送信息{ai,bi,TIDi}。
5.根据权利要求1所述的方法, 其特 征在于, 步骤2具体为:
身份认证部分适用单个设备场景和多个设备场景, 具体的:
(1)用户和单个设备间的身份认证:
首先, 用户U根据从TA处接收到的初始化信息计算双线性映射e(H(VTIDt)+H(VTIDt)·h
(TS),Ppub), 并将结果发布给当前主题, 其中TS是时间戳; 当设备D通过订阅相同主题的方式
收到用户U的信息后, 立即检查消息中时间戳的新鲜度, 若不是新鲜的时间戳则认证进程立
刻终止。 当时间戳验证合法之后, 设备D计算w=b+b ·h(TS)和e(w,P); 此时, 代理验证e(w,
P)=e(H(VTIDt)+H(VTIDt)·h(TS),Ppub)是否成立, 若等式成立, 双方身份认证 通过, 即均为
当前主题下的合法参与者; 若不成立则说明用户U和现场设备D中至少存在一个非法参与
者, 进程终止;
(2)用户和多个设备间的群组身份认证:
首先, 用户U根据从TA处接收到的初始化信息 计算双线性映射
并将结果发布给当前主题, 其中TS 是时间戳; 设备Di通过订阅 同一主题的方 式收到用户U的
信息后, 每个设备均立即检查各自消息中时间戳的新鲜度, 若不是新鲜的时间戳则认证进权 利 要 求 书 1/2 页
2
CN 115333743 A
2程终止; 当时间戳验证合法之后, Di计算wi=bi+bih(TS)和
此时, MQTT代理被授
权验证
是否成立, 若等式成立, 用户U和多个设备
之间的身份认证通过, 即均为当前主题下的合法参与者; 若不成立则说明用户U和现场设备
Di中至少存在一个非法参与者, 进程 立刻终止 。
6.根据权利要求1所述的方法, 其特 征在于, 步骤3具体为:
在身份认证后, 合法的用户和设备进行密钥协商, 以完成端到端的通信加密工作; 密钥
协商适用单个设备场景和多个设备场景, 具体的:
(1)用户和单个设备的密钥协商:
首先, 通过身份认证的合法设备D选择随机数r, 计算R=rP并将计算结果通过当前主题
发布给用户U; U收到R后选择随机数c∈Zq*, 计算C=cR并将其发送至主题; 此 时, 用户U计算
其会话密钥 KU=e(C,cP); D从 同一主题接收到消 息C后, 计算设备会话密钥 KD=e(C,r‑1C);
用户和设备生成的会话密钥为对称密钥:
(2)用户和多个设备的群组密钥协商:
首先, 通过身份认 证的设备Di选择随机数ri, 计算Ri=riP并将计算结果通过当前主题发
布给用户U; U收到所有设备发送的Ri后选择随机数c∈Zq*, 计算Ci=cRi并将其发送至主题;
此时, 用户U计算其会话密钥
全部Di从同一主题接收到消息Ci后, 计算设备
群组会话密钥
用户和多个设备生成的会话密钥为对称密钥。
7.根据权利要求1所述的方法, 其特 征在于, 步骤4具体为:
如果在整个过程中没有设备加入或离开当前主题 的群组, 系统不需要更新ACL并再次
生成系统初始参数, 即初始 化阶段只执行一次; 同时, 客户端也不必在它们自己之间执行身
份验证; 每个密钥只属于当前会话, 在发布新消息时, 将丢弃前一个密钥, 并在重新密钥协
议后建立 一个新的会话密钥;
每当主题成员关系发生动态变化时, ACL将被立即更新名单, 然后将其结果通知代理;
接着, TA必须生 成新的系统参数, 包括主密钥和系统公钥, 然后将它们分配给新的系统参与
者; 在初始化阶段之后, 相互认证和密钥协商将继续按照提出的方案内容继续执 行。权 利 要 求 书 2/2 页
3
CN 115333743 A
3
专利 一种针对MQTT协议的细粒度安全通信方法
文档预览
中文文档
11 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共11页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-03-03 12:16:38上传分享