首页 / 专利库 / 电脑零配件 / 接口 / 一种基于发布订阅模式的安全通讯方法

一种基于发布订阅模式的安全通讯方法

阅读:461发布:2020-05-08

专利汇可以提供一种基于发布订阅模式的安全通讯方法专利检索,专利查询,专利分析的服务。并且本公开涉及一种基于发布订阅模式的安全通讯方法,通过设置多种安全措施复用的安全管理通道,通过发送固定格式的命令报文确保链路的安全以及数据的 保密性 和完整性。为实现以上目的,本公开通过以下技术方案予以实现:一种基于发布订阅模式的安全通讯方法,基于MQTT协议,包括MQTT 服务器 及分别与MQTT服务器通讯连接的主站、终端,通过自定义MQTT报文类型,解析报文数据生成加密芯片 接口 命令,把命令写入加密芯片实现安全管理。本公开通过这样的技术方案,通过安全管理通道确保终端和主站之间的通信链路安全,保障终端和主站之间传输数据的保密性和完整性,同时实现主站和终端之间的双向身份 鉴别 ;防范对主站系统的恶意破坏和攻击以及其它非法操作。,下面是一种基于发布订阅模式的安全通讯方法专利的具体信息内容。

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:终端读取对称密钥版本号,并取终端随机数,返回主站;
步骤3:主站通过密钥版本号判断终端的密钥版本,确定修改还是恢复密钥,并确定密钥更新所需要的保护密钥;
步骤4:主站如确定进行密钥更新,从配网加密认证装置中导出要更新的对称密钥,并用主站私钥对导出数据进行签名后,将导出密钥数据和签名结果发送给终端;
步骤5:终端收到密钥更新报文,将密钥数据和签名发送到安全芯片,完成密钥更新;
步骤6:终端返回更新成功或不成功错误信息。
7.如权利要求3所述的一种基于发布订阅模式的安全通讯方法,其特征在于:所述证书更新流程如下:主站用私钥对要下发的证书标识+CA证书/主站证书/网关证书+时间信息进行名获得签名结果,使用下行密钥对证书标识+证书+时间信息+签名结果+签名密钥标识进行加密后,生成证书更新密文包;将证书更新密文包分连续发送给终端;分帧数据连续下发,终端接收完所有数据后返回一个执行结果;终端对加密密文进行解密,获得明文数据,验证主站签名的正确性;验证主站签名正确后执行相关操作;验证主站签名不正确则返回主站错误信息。
8.如权利要求1所述的一种基于发布订阅模式的安全通讯方法,其特征在于:所述安全管理通道对报文格式定义,保障了传输数据的完整性,所述报文由起始、长度、报文类型、封装数据域、校验和、结束符几部分组成。
9.如权利要求8所述的一种基于发布订阅模式的安全通讯方法,其特征在于:所述报文类型用于定义与终端进行数据交互的对象,并定义封装数据域的保密措施;
a)封装数据域为密文时,内容包括加密密文和MAC,加密内容为“应用类型+应用数据区+信息安全扩展区”;
b)封装数据域为明文时,数据域内容依次为应用类型、应用数据区和信息安全扩展区。
10.如权利要求8所述的一种基于发布订阅模式的安全通讯方法,其特征在于:所述应用类型是指封装数据域的类型,当应用数据区不为空时应用类型为原有业务相关的应用类型,当应用数据区为空时应用类型为信息安全扩展区相关的应用类型。

说明书全文

一种基于发布订阅模式的安全通讯方法

技术领域

[0001] 本公开涉及一种远程控制方法,尤其是涉及一种基于发布订阅模式的安全通讯方法。

背景技术

[0002] MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是由IBM公司开发的是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的即时通信协议。该协议工作在TCP/IP协议族上,最初是为硬件性能低下的远程设备以及恶劣的网络状况下设计的发布/订阅型消息协议。但是进入物联网时代后,技术人员发现它的精简性、支持连续的回话控制、提供传输的不同服务质量、可定制性强等特点非常符合物联网通讯协议的要求。只需对其安全性以及传输效率进行优化,就能满足很多场景的需求。
[0003] 对此,现有技术中公布号为CN109088723A的发明专利《一种基于MQTT协议的远程控制方法》中就公开了一种基于MQTT协议的远程控制方法,包括:控制设备端通过相应移动平台连接MQTT服务器,服务器和设备端进行双向认证、控制设备端编辑包含消息唯一ID的控制指令并选择消息的服务质量和主题,消息经过加密后发送到MQTT服务器、设备端连接上MQTT服务器订阅控制设备端发布消息的主题、服务器转发消息到订阅消息主题的设备端,设备端收到消息对数据解密获得原始数据、设备端执行控制指令后,将控制结果和收到的控制指令的消息唯一ID打包,经过数据加密后选择发布主题并发送到MQTT服务器、控制终收到来自设备端的控制响应消息。该发明的方法可实现安全的消息传输,其控制消息和控制响应的一一对应,具有用户认证和数据加密功能。
[0004] 这样的方案有效提高了整个系统的传输效率和安全性。但是它也有不足之处,即只有在设备端初次登陆MQTT服务器时进行了双向验证,而在后期的数据交换过程中仅仅进行了数据加密,整个数据交换的通信链路没有任何保护。这样一旦遭到重放攻击等攻击,整个系统很容易被侵入或破坏。且MQTT协议本来面向的就是硬件性能低下的远程设备,如果为了提高安全性能全面更换设备端则有悖于初衷。而较为复杂的加密会增加设备端的负担。

发明内容

[0005] 针对现有技术的不足,本公开涉及一种基于发布订阅模式的安全通讯方法,通过设置多种安全措施复用的安全管理通道,并且在安全管理通道中执行相关的安全权利命令,通过发送固定格式的命令报文确保链路的安全以及数据的保密性和完整性。
[0006] 为实现以上目的,本公开通过以下技术方案予以实现:
[0007] 一种基于发布订阅模式的安全通讯方法,基于MQTT协议,包括MQTT服务器及分别与MQTT服务器通讯连接的主站、终端,通过自定义MQTT报文类型,解析报文数据生成加密芯片接口命令,把命令写入加密芯片实现安全管理。
[0008] 优选的,还包括基于发布订阅模式通信交换的安全管理通道,服务于所述安全管理通道的安全管理命令运行在安全管理通道中。
[0009] 优选的,通过向加密芯片发送固定格式的命令报文,实现的管理命令包括对称加密、非对称加密、双向身份认证、签名验证、时间验证、证书更新、密钥更新、证书查询、公钥查询、密钥版本查询。
[0010] 优选的,所述双向身份认证基于数字证书,由主站发起,终端被动响应,一方对另一方认证失败,返回认证失败信息,不响应对方数据;双向身份认证采用基于公开密钥的鉴别过程SM2算法,具体步骤如下:
[0011] 步骤1:由主站发起随机数作为签名原文,终端使用私钥对主站随机数R1和终端随机数R2签名,然后发给主站;
[0012] 步骤2:主站使用从终端证书中获取的终端公钥,验证终端签名;
[0013] 步骤3:主站使用对应证书索引的私钥对终端随机数R2签名后发送给终端;
[0014] 步骤4:终端使用从主站证书中获取的主站公钥,验证主站签名;
[0015] 步骤5:终端返回验证结果,认证过程结束。
[0016] 双向认证结果符合要求后才能进行其他的管理控制工作。
[0017] 优选的,主站证书在认证之前已下装到终端的安全芯片中,主站在认证签通过明文指令获取终端证书明文。
[0018] 优选的,所述密钥更新管理包括终端投运前将测试密钥修改为正式密钥以及终端返厂维修时将正式密钥恢复为测试密钥,具体更新流程如下:
[0019] 步骤1:主站向终端发送取密钥版本号指令;
[0020] 步骤2:终端读取对称密钥版本号,并取终端随机数,返回主站;
[0021] 步骤3:主站通过密钥版本号判断终端的密钥版本,确定修改还是恢复密钥,并确定密钥更新所需要的保护密钥;
[0022] 步骤4:主站如确定进行密钥更新,从配网加密认证装置中导出要更新的对称密钥,并用主站私钥对导出数据进行签名后,将导出密钥数据和签名结果发送给终端;
[0023] 步骤5:终端收到密钥更新报文,将密钥数据和签名发送到安全芯片,完成密钥更新;
[0024] 步骤6:终端返回更新成功或不成功错误信息。
[0025] 优选的,所述证书更新流程如下:主站用私钥对要下发的证书标识+CA证书/主站证书/网关证书+时间信息进行名获得签名结果,使用下行密钥对证书标识+证书+时间信息+签名结果+签名密钥标识进行加密后,生成证书更新密文包;将证书更新密文包分连续发送给终端;分帧数据连续下发,终端接收完所有数据后返回一个执行结果;终端对加密密文进行解密,获得明文数据,验证主站签名的正确性;验证主站签名正确后执行相关操作;验证主站签名不正确则返回主站错误信息。
[0026] 优选的,所述安全管理通道对报文格式定义,保障了传输数据的完整性,所述报文由起始、长度、报文类型、封装数据域、校验和、结束符几部分组成。
[0027] 优选的,所述报文类型用于定义与终端进行数据交互的对象,并定义封装数据域的保密措施;
[0028] a)封装数据域为密文时,内容包括加密密文和MAC,加密内容为“应用类型+应用数据区+信息安全扩展区”;
[0029] b)封装数据域为明文时,数据域内容依次为应用类型、应用数据区和信息安全扩展区。
[0030] 优选的,所述应用类型是指封装数据域的类型,当应用数据区不为空时应用类型为原有业务相关的应用类型,当应用数据区为空时应用类型为信息安全扩展区相关的应用类型。
[0031] 本公开通过这样的技术方案,通过安全管理通道确保终端和主站之间的通信链路安全,保障终端和主站之间传输数据的保密性和完整性,同时实现主站和终端之间的双向身份鉴别;防范伪造终端身份、重放攻击等攻击形式对主站系统的恶意破坏和攻击以及其它非法操作。
[0032] 此外过多的加密措施依然会影响终端的数据处理效率,为了平衡效率和安全性,在终端可以对安全管理通道的通信安全级别进行定义,减少复用的安全措施。附图说明
[0033] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034] 图1是本公开的安全管理通道数据通讯过程流程图
[0035] 图2是本公开报文结构示意图。
[0036] 图3是本公开的证书更新流程报文结构变化示意图。

具体实施方式

[0037] 为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0038] MQTT遵循的规划准则中包括:精简,不增加可有可无的功用;把传输量降到最低以提高传输功率;把低带宽、高延迟、不稳定的网络等因素考虑在内等。这样就导致其通信安全性能无法保证。尤其在一些较大场景中设有若干关键性设备有较高的安全性需求,现有技术中的基于MQTT的通信方案往往难以满足。本公开通过对MQTT通信方法的改良,利用较低的改良成本显著提高其通信安全性。
[0039] 如图1所示,一种基于发布订阅模式的安全通讯方法,基于MQTT协议,包括MQTT服务器及分别与MQTT服务器通讯连接的主站、终端,通过自定义MQTT报文类型,解析报文数据生成加密芯片接口命令,把命令写入加密芯片实现安全管理。还包括基于发布订阅模式通信交换的安全管理通道,服务于所述安全管理通道的安全管理命令运行在安全管理通道中。通过向加密芯片发送固定格式的命令报文,实现的管理命令包括对称加密、非对称加密、双向身份认证、签名验证、时间验证、证书更新、密钥更新、证书查询、公钥查询、密钥版本查询。
[0040] 其中证书更新及证书查询均属于证书管理,证书管理服务于双向认证和签名验证,通过证书管理来更新或恢复终端设备上保存的证书,为身份认证提供信用凭证。所有管理通道的命令在未同过双向认证前,禁止执行。
[0041] 密钥更新及密钥版本查询属于密钥管理。密钥管理中的密钥是对称密钥,管理命令在管理通道中使用对称密钥加密后进行传输,以保障数据安全。密钥更新即对称密钥交换过程,在双向认证后执行,确保交换双方身份安全性;
[0042] 对于较大的管理命令,传输时加入了分包操作,并且每一包分组信息都携带了验证签名用的密钥索引asKID以方便鉴别数据来源。
[0043] 对于管理命令数据加入了时间验证、签名验证、随机数验证,以防范重放攻击,伪造信息攻击等行为。
[0044] 管理命令执行后,针对不同的命令定义了多种响应状态,以方便问题定位
[0045] 标准化的报文格式定义保障了传输数据的完整性,报文中包含了CRC校验和,对于密文数据还有MAC校验。
[0046] 如图2所示:为本公开的报文的具体结构,其中:
[0047] 1.报文长度为两字节,且高位在前。报文长度和校验和都是指从报文类型开始(包括报文类型)到校验和之前的数据;
[0048] 2.报文类型为两字节,且高位在前。报文类型用于定义与终端进行数据交互的对象,并定义封装数据域的保密措施;
[0049] a)封装数据域为密文时,内容包括加密密文和MAC,加密内容为“应用类型+应用数据区+信息安全扩展区”;
[0050] b)封装数据域为明文时,数据域内容依次为应用类型、应用数据区和信息安全扩展区。
[0051] 3.应用类型:是指封装数据域的类型,当应用数据区不为空时应用类型为原有业务相关的应用类型,当应用数据区为空时应用类型为信息安全扩展区相关的应用类型。
[0052] 4.应用数据区格式:1字节长度+报文数据;
[0053] 5.信息安全扩展区格式:2字节长度+信息安全扩展信息,如信息安全扩展区为空,仍增加2字节的长度,内容为00;
[0054] 6.如应用数据区为空,信息安全扩展区不为空时,应用数据区的长度为空。
[0055] 7.计算签名时的原始报文,不包含应用类型(1字节)、应用数据长度(1字节)和安全扩展区长度(2字节)。
[0056] 本公开通常采用ESAM(Embedded Secure Access Module嵌入式安全控制模)安全模块作为安全芯片使用。
[0057] 在现有技术中也提到了双向认证,但是双向加密需要终端提供一个由ca签署的证书。现有技术中存在的问题是:MQTT服务器端证书一份就够,而千千万万的终端如果也安装证书,那是非常麻烦的,需要专的管理机构生成证书,管理证书,还要颁发给终端,还要各种配置,还要对证书的生命周期进行管理,所以比较费事。如果只绑定一个ip,相当与每个设备都需要绑定在有独立ip的网关,比较麻烦。而本公开采用了安全管理通道作为证书颁发机构能有效解决这一问题。
[0058] 具体方案为:基于数字证书的双向身份认证:
[0059] 在终端和主站之间建立链路后,应用数据报文传输之前,需要进行双向身份认证。身份认证由主站发起,终端被动响应,一方对另一方认证失败,返回认证失败信息,不响应对方数据。双向身份认证采用基于公开密钥的鉴别过程SM2算法。具体步骤如下:
[0060] 1·由主站发起随机数作为签名原文,终端使用私钥对主站随机数R1和终端随机数R2签名,然后发给主站;
[0061] 2·主站使用从终端证书中获取的终端公钥,验证终端签名(身份);
[0062] 3·主站使用私钥(对应证书索引askid)对终端随机数R2签名后发送给终端;
[0063] 4·终端使用从主站证书中获取的主站公钥,验证主站签名(身份);
[0064] 5·终端返回验证结果,认证过程结束。
[0065] 通过完整的双向认证流程,管理通道使用了此流程做双向认证,作为通道安全的保障技术之一。
[0066] 其中主站证书在认证之前已下装到终端安全芯片中,主站在认证签通过明文指令获取终端证书明文。
[0067] 不仅如此,在前文也提到本公开尤其涉及到较大场景中对关键设备提高安全性的应用。那么安全管理通道设置在重要的关键设备中从而针对性提高其安全性能。
[0068] 本公开尤其适用于电等较大规模老旧设备升级接入物联网的场景。电力设备往往也分为常规耗品设备和关键性核心设备,针对性提高核心设备的安全性能,减少了更换设备的成本。
[0069] 如图3所示,本公开还包括证书更新流程:主站用私钥对要下发的证书标识+CA证书/主站证书/网关证书+时间信息进行名获得签名结果,使用下行密钥对证书标识+证书+时间信息+签名结果+签名密钥标识进行加密后,生成证书更新密文包;将证书更新密文包分帧连续发送给终端;分帧数据连续下发,终端接收完所有数据后返回一个执行结果;终端对加密密文进行解密,获得明文数据,验证主站签名的正确性;验证主站签名正确后执行相关操作;验证主站签名不正确则返回主站错误信息。
[0070] 本公开还包括证书更新流程:密钥更新管理包括终端投运前将测试密钥修改为正式密钥以及终端返厂维修时将正式密钥恢复为测试密钥,具体更新流程如下:
[0071] 步骤1:主站向终端发送取密钥版本号指令;
[0072] 步骤2:终端读取对称密钥版本号,并取终端随机数,返回主站;
[0073] 步骤3:主站通过密钥版本号判断终端的密钥版本,确定修改还是恢复密钥,并确定密钥更新所需要的保护密钥;
[0074] 步骤4:主站如确定进行密钥更新,从配网加密认证装置中导出要更新的对称密钥,并用主站私钥对导出数据进行签名后,将导出密钥数据和签名结果发送给终端;
[0075] 步骤5:终端收到密钥更新报文,将密钥数据和签名发送到安全芯片,完成密钥更新;
[0076] 步骤6:终端返回更新成功或不成功错误信息。
[0077] 所述的证书包括:CA根证书:用于证明证书管理机构的身份,一般情况下默认安装在系统内部。
[0078] 主站证书:由用户信息+用户公钥+CA认证签名组成;用于验证主站签名。
[0079] 网关证书:由用户信息+用户公钥+CA认证签名组成;用于验证网关签名。
[0080] 终端证书:由用户信息+用户公钥+CA认证签名组成;用于验证终端签名。
[0081] 在具体实施过程中,还添加了终端对于安全管理通道的管理命令设置。用于关闭安全管理通道的部分安全服务以提升通讯效率。该设置在完成执行密钥更新后进行。这样在数据传输压力较大时能找到效率和安全的一个平衡点。该实施方式通常用于紧急应急状态下。且修改后的安全策略有一个生命周期,该生命周期结束后,自动回复到由安全管理通道进行安全防范选择的状态。
[0082] 无论哪种实施方式,其模式都是基于现有的MQTT协议的常规传输,至少实现:使用对称加密技术确保终端和主站之间的通信链路安全。使用对称加密技术保障终端和主站之间传输数据的保密性。使用加密数据MAC校验、报文CRC校验保障终端和主站之间传输数据的完整性。使用双向认证技术实现主站和终端之间双向身份鉴别。使用签名验证、时间验证范伪造终端身份、重放攻击等攻击形式对主站系统的非法操作本公开在此基础上通过安全管理通道增强了通讯过程中的安全性能。且进行改良的终端硬件成本和改装成本不超过200元/件,性价比也非常高。
[0083] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0084] 以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈