【技术实现步骤摘要】
一种基于国密的MQTT协议身份认证与数据加密方法
[0001]本专利技术属于MQTT协议
,具体涉及一种基于国密的MQTT协议身份认证与数据加密方法。
技术介绍
[0002]随着物联网技术的飞速发展,物联网安全问题也面临严峻的挑战。MQTT是ISO标准下基于发布/订阅方式的物联网传输协议,因其轻量、简单、开放和易于实现的特点适用于低功耗和网络带宽有限的IoT场景。鉴于传统MQTT协议缺乏足够的安全防护机制,因此提出一种有效的MQTT协议保护措施具有重要意义。
[0003]国密算法是由我国密码管理局认定和公布的密码算法标准及其应用规范,是我国在密码核心领域自主研发的一套数据加密处理系列算法。已经颁布的国密算法有:对称加密算法(SM1、SM4)、非对称加密算法(SM2、SM9)、散列密码算法(SM3)等。国家目前正大力推广自主可控的国密算法,国密算法的普及对提升我国网络信息安全与自主可控水平具有重要的意义。
[0004]MQTT(消息队列遥测传输)协议是一种基于代理的发布/订阅模式的消息传输协议,属于TCP ...
【技术保护点】
【技术特征摘要】
1.一种基于国密的MQTT协议身份认证与数据加密方法,其特征在于:在身份认证阶段,在CONNECT数据包发送之前,客户端先与MQTT Broker进行连接;客户端在其私钥SK
c
中随机选出16个字节组成一组数K1,通过MQTT Broker的证书公钥PK
s
对K1进行加密,生成C1;将客户端证书和C1发送给MQTT Broker;MQTT Broker通过自身私钥SK
s
对C1进行解密获得客户端信息,用SK
s
对C1进行签名,生成σ1;令C1'=C1,将C1'和σ1发送给客户端;客户端将接收到的C1'与本地C1进行比照,如果完全相同,则用PK
s
对签名σ1进行验证;在签名验证通过后,客户端用SK
c
对C1'进行签名,生成σ2,并将C1'和σ2发送给MQTT Broker;MQTT Broker将接收到的C1'和本地C1进行比照,如果完全相同,则通过客户端证书公钥PK
c
对签名σ2进行验证;在签名验证通过后返回验证结果,K1为客户端与MQTT Broker之间的SM4对称密钥;客户端首先对username和password进行加密,生成C
up
;再通过自身私钥SK
c
对C
up
进行签名,生成σ
up
,并将C
up
和σ
up
放入CONNECT数据包中发送至MQTT Broker;MQTT Broker收到CONNECT数据包后首先通过客户端证书公钥PK
c
验证签名σ
up
;签名验证通过后解密密文C
up
,得到username和password,在身份验证通过后返回CONNACK给客户端。2.根据权利要求1所述的一种基于国密的MQTT协议身份认证与数据加密方法,其特征在于:所述客户端通过SM2算法生成C1、σ1、σ2和σ
up
,通过SM4算法生成C
up
。3.根据权利要求1所述的一种基于国密的MQTT协议身份认证与数据加密方法,其特征在于:在关键密钥组件获取阶段,客户端发送Client
ID
和订阅主题Topic给MQTT Broker;MQTT Broker查看本地是否有相同的Topic;如果本地没有相同的Topic,则生成Key
Topic
,然后通过K1加密Key
Topic
,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。