本公开涉及一种基于发布订阅模式的安全通讯方法,通过设置多种安全措施复用的安全管理通道,通过发送固定格式的命令报文确保链路的安全以及数据的保密性和完整性。为实现以上目的,本公开通过以下技术方案予以实现:一种基于发布订阅模式的安全通讯方法,基于MQTT协议,包括MQTT服务器及分别与MQTT服务器通讯连接的主站、终端,通过自定义MQTT报文类型,解析报文数据生成加密芯片接口命令,把命令写入加密芯片实现安全管理。本公开通过这样的技术方案,通过安全管理通道确保终端和主站之间的通信链路安全,保障终端和主站之间传输数据的保密性和完整性,同时实现主站和终端之间的双向身份鉴别;防范对主站系统的恶意破坏和攻击以及其它非法操作。
A secure communication method based on publish subscribe mode
【技术实现步骤摘要】
一种基于发布订阅模式的安全通讯方法
本公开涉及一种远程控制方法,尤其是涉及一种基于发布订阅模式的安全通讯方法。
技术介绍
MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是由IBM公司开发的是ISO标准(ISO/IECPRF20922)下基于发布/订阅范式的即时通信协议。该协议工作在TCP/IP协议族上,最初是为硬件性能低下的远程设备以及恶劣的网络状况下设计的发布/订阅型消息协议。但是进入物联网时代后,技术人员发现它的精简性、支持连续的回话控制、提供传输的不同服务质量、可定制性强等特点非常符合物联网通讯协议的要求。只需对其安全性以及传输效率进行优化,就能满足很多场景的需求。对此,现有技术中公布号为CN109088723A的专利技术专利《一种基于MQTT协议的远程控制方法》中就公开了一种基于MQTT协议的远程控制方法,包括:控制设备端通过相应移动平台连接MQTT服务器,服务器和设备端进行双向认证、控制设备端编辑包含消息唯一ID的控制指令并选择消息的服务质量和主题,消息经过加密后发送到MQTT服务器、设备端连接上MQTT服务器订阅控制设备端发布消息的主题、服务器转发消息到订阅消息主题的设备端,设备端收到消息对数据解密获得原始数据、设备端执行控制指令后,将控制结果和收到的控制指令的消息唯一ID打包,经过数据加密后选择发布主题并发送到MQTT服务器、控制终收到来自设备端的控制响应消息。该专利技术的方法可实现安全的消息传输,其控制消息和控制响应的一一对应,具有用户认证和数据加密功能。这样的方案有效提高了整个系统的传输效率和安全性。但是它也有不足之处,即只有在设备端初次登陆MQTT服务器时进行了双向验证,而在后期的数据交换过程中仅仅进行了数据加密,整个数据交换的通信链路没有任何保护。这样一旦遭到重放攻击等攻击,整个系统很容易被侵入或破坏。且MQTT协议本来面向的就是硬件性能低下的远程设备,如果为了提高安全性能全面更换设备端则有悖于初衷。而较为复杂的加密会增加设备端的负担。
技术实现思路
针对现有技术的不足,本公开涉及一种基于发布订阅模式的安全通讯方法,通过设置多种安全措施复用的安全管理通道,并且在安全管理通道中执行相关的安全权利命令,通过发送固定格式的命令报文确保链路的安全以及数据的保密性和完整性。为实现以上目的,本公开通过以下技术方案予以实现:一种基于发布订阅模式的安全通讯方法,基于MQTT协议,包括MQTT服务器及分别与MQTT服务器通讯连接的主站、终端,通过自定义MQTT报文类型,解析报文数据生成加密芯片接口命令,把命令写入加密芯片实现安全管理。优选的,还包括基于发布订阅模式通信交换的安全管理通道,服务于所述安全管理通道的安全管理命令运行在安全管理通道中。优选的,通过向加密芯片发送固定格式的命令报文,实现的管理命令包括对称加密、非对称加密、双向身份认证、签名验证、时间验证、证书更新、密钥更新、证书查询、公钥查询、密钥版本查询。优选的,所述双向身份认证基于数字证书,由主站发起,终端被动响应,一方对另一方认证失败,返回认证失败信息,不响应对方数据;双向身份认证采用基于公开密钥的鉴别过程SM2算法,具体步骤如下:步骤1:由主站发起随机数作为签名原文,终端使用私钥对主站随机数R1和终端随机数R2签名,然后发给主站;步骤2:主站使用从终端证书中获取的终端公钥,验证终端签名;步骤3:主站使用对应证书索引的私钥对终端随机数R2签名后发送给终端;步骤4:终端使用从主站证书中获取的主站公钥,验证主站签名;步骤5:终端返回验证结果,认证过程结束。双向认证结果符合要求后才能进行其他的管理控制工作。优选的,主站证书在认证之前已下装到终端的安全芯片中,主站在认证签通过明文指令获取终端证书明文。优选的,所述密钥更新管理包括终端投运前将测试密钥修改为正式密钥以及终端返厂维修时将正式密钥恢复为测试密钥,具体更新流程如下:步骤1:主站向终端发送取密钥版本号指令;步骤2:终端读取对称密钥版本号,并取终端随机数,返回主站;步骤3:主站通过密钥版本号判断终端的密钥版本,确定修改还是恢复密钥,并确定密钥更新所需要的保护密钥;步骤4:主站如确定进行密钥更新,从配网加密认证装置中导出要更新的对称密钥,并用主站私钥对导出数据进行签名后,将导出密钥数据和签名结果发送给终端;步骤5:终端收到密钥更新报文,将密钥数据和签名发送到安全芯片,完成密钥更新;步骤6:终端返回更新成功或不成功错误信息。优选的,所述证书更新流程如下:主站用私钥对要下发的证书标识+CA证书/主站证书/网关证书+时间信息进行名获得签名结果,使用下行密钥对证书标识+证书+时间信息+签名结果+签名密钥标识进行加密后,生成证书更新密文包;将证书更新密文包分帧连续发送给终端;分帧数据连续下发,终端接收完所有数据后返回一个执行结果;终端对加密密文进行解密,获得明文数据,验证主站签名的正确性;验证主站签名正确后执行相关操作;验证主站签名不正确则返回主站错误信息。优选的,所述安全管理通道对报文格式定义,保障了传输数据的完整性,所述报文由起始、长度、报文类型、封装数据域、校验和、结束符几部分组成。优选的,所述报文类型用于定义与终端进行数据交互的对象,并定义封装数据域的保密措施;a)封装数据域为密文时,内容包括加密密文和MAC,加密内容为“应用类型+应用数据区+信息安全扩展区”;b)封装数据域为明文时,数据域内容依次为应用类型、应用数据区和信息安全扩展区。优选的,所述应用类型是指封装数据域的类型,当应用数据区不为空时应用类型为原有业务相关的应用类型,当应用数据区为空时应用类型为信息安全扩展区相关的应用类型。本公开通过这样的技术方案,通过安全管理通道确保终端和主站之间的通信链路安全,保障终端和主站之间传输数据的保密性和完整性,同时实现主站和终端之间的双向身份鉴别;防范伪造终端身份、重放攻击等攻击形式对主站系统的恶意破坏和攻击以及其它非法操作。此外过多的加密措施依然会影响终端的数据处理效率,为了平衡效率和安全性,在终端可以对安全管理通道的通信安全级别进行定义,减少复用的安全措施。附图说明为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本公开的安全管理通道数据通讯过程流程图。图2是本公开报文结构示意图。图3是本公开的证书更新流程报文结构变化示意图。具体实施方式为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述本文档来自技高网...
【技术保护点】
1.一种基于发布订阅模式的安全通讯方法,基于MQTT协议,包括MQTT服务器及分别与MQTT服务器通讯连接的主站、终端,其特征在于:通过自定义MQTT报文类型,解析报文数据生成加密芯片接口命令,把命令写入加密芯片实现安全管理。/n
【技术特征摘要】
1.一种基于发布订阅模式的安全通讯方法,基于MQTT协议,包括MQTT服务器及分别与MQTT服务器通讯连接的主站、终端,其特征在于:通过自定义MQTT报文类型,解析报文数据生成加密芯片接口命令,把命令写入加密芯片实现安全管理。
2.如权利要求1所述的一种基于发布订阅模式的安全通讯方法,其特征在于:还包括基于发布订阅模式通信交换的安全管理通道,服务于所述安全管理通道的安全管理命令运行在安全管理通道中。
3.如权利要求1或2所述的一种基于发布订阅模式的安全通讯方法,其特征在于:通过向加密芯片发送固定格式的命令报文,实现的管理命令包括对称加密、非对称加密、双向身份认证、签名验证、时间验证、证书更新、密钥更新、证书查询、公钥查询、密钥版本查询。
4.如权利要求3所述的一种基于发布订阅模式的安全通讯方法,其特征在于:所述双向身份认证基于数字证书,由主站发起,终端被动响应,一方对另一方认证失败,返回认证失败信息,不响应对方数据;双向身份认证采用基于公开密钥的鉴别过程SM2算法,具体步骤如下:
步骤1:由主站发起随机数作为签名原文,终端使用私钥对主站随机数R1和终端随机数R2签名,然后发给主站;
步骤2:主站使用从终端证书中获取的终端公钥,验证终端签名;
步骤3:主站使用对应证书索引的私钥对终端随机数R2签名后发送给终端;
步骤4:终端使用从主站证书中获取的主站公钥,验证主站签名;
步骤5:终端返回验证结果,认证过程结束。
5.如权利要求4所述的一种基于发布订阅模式的安全通讯方法,其特征在于:主站证书在认证之前已下装到终端的安全芯片中,主站在认证签通过明文指令获取终端证书明文。
6.如权利要求3所述的一种基于发布订阅模式的安全通讯方法,其特征在于:所述密钥更新管理包括终端投运前将测试密钥修改为正式密钥以及终端返厂维修时将正式密钥恢复为测试密钥,具体更新流程如下:
步骤1:主站向终端发送取密钥版本号指令;
步骤2:终端读...
【专利技术属性】
技术研发人员:张志亮,刘德波,郭攀,
申请(专利权)人:青岛联众智芯科技有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。