一种适用于物联网的密钥分配方法及系统与流程

文档序号:14253090阅读:321来源:国知局
一种适用于物联网的密钥分配方法及系统与流程

本发明涉及信息安全技术领域,适用于部署物联网设备,具体为适用于物联网的密钥分配方法及系统。



背景技术:

ecc:ellipticcurvescryptography,椭圆曲线密码编码学,公钥算法的一种,相对于rsa算法达到相同的安全强度所需要的密钥长度更短。

eeprom:electricallyerasableprogrammablereadonlymemory,电可擦可编程只读存储器,一种掉电后数据不丢失的存储芯片。

hmac:hash-basedmessageauthenticationcode,密钥相关的哈希运算消息认证码,hmac运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

pki:publickeyinfrastructure,公钥基础设施,是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。

rsa:目前最有影响力和最常用的公钥加密算法。

sha256:sha(securehashalgorithm,安全哈希算法)算法的一种,算法的哈希值长度为256位。

随着物联网的快速发展,其中存在的比较突出的问题之一是节点资源有限,主要指传感器节点的计算能力、存储容量、通信能力和能源供给能力有限。能源供给受限是妨碍物联网应用于各个领域的重要因素。

与有线网络相比,物联网存在更加严重的安全性问题,无线传输方式和终端的暴露性使得网络更加容易受到窃听、欺骗和拒绝服务等形式的攻击。因此,网络通讯安全是物联网面临的一个非常重要问题。而在物联网的安全问题中,首当其冲的又是终端与应用之间的双向身份认证以及会话中的数据加密问题。

目前解决网络安全问题的解决方案,大多是基于pki技术。pki技术以非对称加密算法为核心技术基础,该算法使用了一对密钥:公共密钥(简称为公钥)和私有密钥(简称为私钥),这两个密钥之间存在着相互依存的关系,即使用其中任何一个密钥加密的信息只能用另一个密钥进行解密。

常用的非对称加密算法有rsa和ecc。不管是rsa还是ecc,对执行加解密的处理器的处理能力均有较高要求。由于物联网终端往往处于能力受限的条件下,高强度的加密算法使得终端厂家不得不提高终端的硬件成本,采用更好的处理器和更多的内存,这对于对终端成本极其敏感的物联网应用来说往往难以接受。此外,由于物联网终端往往处于无人值守的状态,其密钥的防窃取也是比较难于解决的问题;而一旦密钥泄露,就有可能伪造合法的终端去和应用通讯。

综上,该技术有必要进行改进。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种适用于物联网的密钥分配方法及系统。

本发明所采用的技术方案是:

本发明提供一种适用于物联网的密钥分配方法,其包括以下步骤:

系统控制服务端设置终端密钥生成次数限制,并发送给密钥生

成器;

系统启动密钥生成,并控制密钥生成器发送请求读取终端设备的身份标识;

所述密钥生成器接收到终端设备身份标识后,将其输入至密钥

生成模块;

所述密钥生成模块读取根密钥,并生成第一终端密钥;

所述密钥生成器将所述第一终端密钥发送至终端设备;

所述终端设备向服务端发送激活请求数据包;

所述服务端根据根密钥和终端设备身份标识信息生成第二终端

密钥,并将生成的激活响应消息和校验信息发送至终端设备;

所述终端设备比较所述激活响应消息和校验信息;

若两者不一致,则向服务端重新发起激活请求;

若两者一致,则向服务端发送激活确认数据包;

所述服务端接收到激活确认数据包后,使计数值增1,并比较

计数值和所述终端设备密钥生成数量;

若计数值大于所述终端设备密钥生成数量,则服务器报错;反

之,所述终端设备的密钥分配完毕。

作为该技术方案的改进,所述密钥生成模块读取根密钥,并生成第一终端密钥时,同时控制计数模块将计数器值加1。

作为该技术方案的改进,所述步骤系统控制服务端设置终端密钥生成次数限制,并将终端密钥生成次数限制发送至密钥生成器,其还包括系统将终端设备的批次号和随机生成的根密钥存储至密钥生成器。

作为该技术方案的改进,所述服务端存储有与所述终端设备对应的根密钥,以及终端密钥生成次数。

作为该技术方案的改进,所述系统控制所述密钥生成器与终端设备连接,启动密钥生成。

另一方面,本发明还提供一种适用于物联网的密钥分配系统,其包括:服务端、终端设备和密钥生成器,所述服务端和密钥生成器分别与终端设备连接;其中,所述服务端包括第一微处理器、第一激活模块、第一计数模块、第一存储模块和第一通信模块;所述第一激活模块、第一计数模块、第一存储模块和第一通信模块均与第一微处理器连接;所述终端设备包括第二微处理器、第二通信模块、第二激活模块和第二存储模块;所述第二通信模块、第二激活模块和第二存储模块均与第二微处理器连接;所述密钥生成器包括第三微处理器、密钥生成模块、第二计数模块、第三通信模块、第三存储模块;所述密钥生成模块、第二计数模块、第三通信模块、第三存储模块均与第三微处理器连接。

进一步地,所述第一存储模块用于存储终端设备的批次号和根密钥,以及许可的终端密钥生成次数。

进一步地,所述第二存储模块用于存储终端设备的终端密钥以及终端设备的批次号。

进一步地,所述第三存储模块用于存储终端设备的批次号和根密钥。若计数模块无法存储终端密钥生成次数限制,存储模块需存储。

本发明的有益效果是:本发明提供的适用于物联网的密钥分配方法及系统,采用的密钥通过安全摘要或对称加密算法生成,所有的密码学操作均没有采用非对称密码算法,降低了物联网设备终端的计算成本,也降低了服务端的密钥管理成本;终端密钥无需在线传输,减少了泄露的渠道;服务端能设置终端密钥数量限制,且对终端密钥的生成过程和设备终端的激活过程计数并比较,进一步降低密钥系统在部署过程中出错的概率。

附图说明

下面结合附图对本发明的具体实施方式作进一步说明:

图1是本发明第一实施例的系统示意图;

图2是本发明第二实施例的系统示意图;

图3是本发明第三实施例的示意图;

图4是本发明第四实施例的控制流程图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明提供一种物联网中的密钥分配方案及系统及方法,用于解决在实现物联网中数据加密的前提下降低密钥管理成本的问题。同时,本发明没有使用非对称密码运算,极大地降低了相关的密码学操作对物联网终端资源的占用。

本发明提供一种适用于物联网的密钥分配方法,其包括以下步骤:

系统控制服务端设置终端密钥生成次数限制,并发送给密钥生成器;

系统启动密钥生成,并控制密钥生成器发送请求读取终端设备的身份标识;

所述密钥生成器接收到终端设备身份标识后,将其输入至密钥生成模块;

所述密钥生成模块读取根密钥,并生成第一终端密钥;

所述密钥生成器将所述第一终端密钥发送至终端设备;

所述终端设备向服务端发送激活请求数据包;

所述服务端根据根密钥和终端设备身份标识信息生成第二终端密钥,并将生成的激活响应消息和校验信息发送至终端设备;

所述终端设备比较所述激活响应消息和校验信息;

若两者不一致,则向服务端重新发起激活请求;

若两者一致,则向服务端发送激活确认数据包;

所述服务端接收到激活确认数据包后,使计数值增1,并比较计数值和所述终端设备密钥生成数量;

若计数值大于所述终端设备密钥生成数量,则服务器报错;反之,所述终端设备的密钥分配完毕。

作为该技术方案的改进,所述密钥生成模块读取根密钥,并生成第一终端密钥时,同时控制计数模块将计数器值加1。

作为该技术方案的改进,所述步骤系统控制服务端设置终端密钥生成次数限制,并将终端密钥生成次数限制发送至密钥生成器,其还包括系统将终端设备的批次号和随机生成的根密钥存储至密钥生成器。

作为该技术方案的改进,所述服务端存储有与所述终端设备对应的根密钥,以及终端密钥生成次数。

作为该技术方案的改进,所述系统控制所述密钥生成器与终端设备连接,启动密钥生成。

参照图1,是本发明第一实施例的系统示意图。本方案中物联网密钥分配系统包括服务端,终端设备和密钥生成器。

密钥生成器需要预先存储当前批次的终端设备的根密钥,根密钥和批次号由服务端生成,根密钥用于派生各个终端设备的终端密钥。在设备出厂时,由密钥生成器根据设备终端身份标识生成终端密钥并写入设备终端。同时,密钥生成器对生成的终端密钥计数。

密钥生成器可以设置许可的密钥生成次数限制,当密钥生成计数达到许可的密钥生成次数,密钥生成器将无法再生成密钥,需要服务端重新许可。

终端设备存有不可更改的终端身份唯一标识号并存储有密钥生成器写入的唯一终端密钥。终端设备在使用前,需使用终端密钥和设备身份唯一标识号向服务端请求激活。

服务端存储有相应批次的根密钥,以及许可的激活次数。服务端用存储的当前批次的根密钥和接收到的终端身份标识生成终端密钥,返回激活响应完成设备终端的激活。服务端对设备终端激活过程计数,当超过许可的激活次数,则终端将无法激活。

参照图2,服务端包含存储模块,激活模块,通信模块,计数模块。

(1)存储模块用于存储一个批次设备终端的批次号和根密钥,以及该批次终端密钥生成次数。可以以数据库的形式存储多个批次的根密钥和终端密钥生成次数,索引为批次号。

(2)激活模块用于做单向函数或对称加密运算,即输入一个批次的根密钥及设备终端身份标识生成终端密钥,或输入终端密钥和消息数据生成校验信息。

(3)通信模块负责与设备终端通信,包括发送、接收以及封装和解析数据包等。

(4)计数模块对设备终端激活过程计数,在服务端收到激活确认后加1,该计数过程要求不可逆。

设备终端包含通信模块,激活模块,存储模块。

(1)存储模块存储设备终端的终端密钥,该密钥在设备出厂时由密钥生成器生成并写入到设备终端。存储模块还需要存储产品批次号。

(2)激活模块输入终端密钥和消息数据做单向函数运算生成校验信息。

(3)通信模块主要负责与服务端通信,包括发送接收以及封装和解析数据包等。通信模块还需要与密钥生成器通信,主要用于传输终端身份标识信息、产品批次号和终端密钥等。

密钥生成器包含存储模块,密钥生成模块,通信模块,计数模块。

(1)存储模块存储一个批次设备终端的根密钥和批次号。

(2)密钥生成模块输入根密钥和接收到的设备终端身份标识信息做单向函数或对称加密运算生成终端密钥。

(3)通信模块负责与设备终端通信,接收终端身份标识信息和发送终端密钥等。

(4)计数模块负责对终端密钥生成过程计数,每次成功生成一个终端密钥,计数器增1,且该过程不可逆。

本发明的密钥分配系统工作流程如下:

(1)在线下将设备终端产品批次号和随机生成的根密钥存储到密钥生成器的存储模块,并设置终端密钥生成次数限制。

(2)将密钥生成器与设备终端连接,启动密钥生成过程。

(3)密钥生成器的通信模块向设备终端发送读取终端身份标识的请求。

(4)设备终端的通信模块接收到请求后发送终端身份标识给密钥生成器。

(5)密钥生成器的通信模块接收到终端身份标识后将其输入到密钥生成模块,密钥生成模块同时读取存储模块中终端设备根密钥,结合终端身份标识生成终端密钥,计数模块将计数器值增1。

(6)密钥生成器通过通信模块将密钥生成模块输出的终端密钥以及产品批次号发送给设备终端。

(7)设备终端的通信模块接收到终端密钥和批次号后将其存入存储模块。

(8)在线下将设备终端产品批次号和根密钥及终端密钥生成次数存储到服务端。

(9)设备终端通过通信模块向服务端发送激活请求数据包,其中包括终端身份标识信息和产品批次号等。

(10)服务端的通信模块接收到激活请求数据包后解析其中的终端身份标识信息并传递给激活模块。

(11)服务端通信模块根据产品批次号读取存储模块中的根密钥并传递给激活模块。

(12)服务端激活模块根据根密钥和终端身份标识信息生成终端密钥。

(13)服务端通信模块生成激活响应消息,并将消息本体传递给激活模块。

(14)服务端激活模块根据(12)中生成的终端密钥和激活响应消息本体生成校验信息,并传递到通信模块。

(15)服务端通信模块将激活响应消息本体和校验信息封装成激活响应数据包发送给设备终端。

(16)设备终端通信模块接收到激活响应数据包后将消息本体传递给激活模块。

(17)设备终端的激活模块读取存储模块中的终端密钥,结合激活响应消息本体生成校验信息,并将校验信息传递给通信模块。

(18)设备终端通信模块比较激活响应数据包中的校验信息和激活模块生成的校验信息,若二者一致,则向服务端发送激活确认数据包,转(19);否则,向服务端重新发起激活流程,转(9)。

(19)服务端通信模块收到激活确认数据包后,调用计数模块使计数值增1,并比较计数值和存储在存储模块中该批次设备终端密钥生成数量,若前者超过了后者,则服务器报错;否则,该终端设备的密钥分配完毕。

参照图3,本实施例为一个物联网设备平台的密钥分配系统,包括激活服务器,物联网设备,烧录器。其中物联网设备上装有安全芯片1,每个安全芯片1都有独一无二的设备id,且在装配到物联网设备之前需要使用烧录器对其进行配置,将批次号和终端密钥等数据写入到安全芯片1。物联网设备在使用前需要使用激活服务器激活。烧录器用于烧录安全芯片1,其上面有两个芯片槽,一个放置安全芯片1,另外一个放置安全芯片2(安全芯片2需要使用烧录器或其他工具提前配置好,用于存储根密钥及终端产品批次号等),安全芯片1和安全芯片2均有存储区,有hmac功能模块,且安全芯片2还需要有单调计数器(若没有则需要实现类似的功能),并可以设置单调计数器的计数限制。其中服务器由运营商开发和维护,烧录器交给烧录工厂使用,物联网设备由生产商生产。

参照图4,为一实施例中物联网密钥分配流程图。物联网设备平台的安全密钥分配流程大致如下:首先,运营商需要在线下准备好产品批次号和根密钥数据,以及终端密钥的生成数量,并将这些数据使用烧录器或额外的工具写入安全芯片2,然后将安全芯片2交给烧录工厂。烧录工厂将安全芯片2装配到烧录器,并使用烧录器烧录安全芯片1,该过程会读取安全芯片1的设备id,并使用安全芯片2中存储的根密钥做hmac运算生成终端密钥,再将终端密钥和产品批次号写入到安全芯片1中。每次使用一次根密钥生成终端密钥,烧录器中安全芯片2的单调计数器增1,最终可以成功烧录的安全芯片1的数量应不超过运营商在安全芯片2中写入的次数限制(考虑到有烧录失败的情况)。烧录工厂随后将烧录好的安全芯片1的数量通过线下发送给运营商,运营商在激活服务器中存储该数据,同时烧录工厂将烧录好的安全芯片1交给物联网设备生产商,生产商将安全芯片1装配到物联网设备中,而物联网设备在出厂前,需要进行激活。物联网设备通过2g等无线方式接入网络,并向运营商的激活服务器发送激活请求,同时发送自身设备id号及产品批次号等信息。激活服务器接收到激活请求后查询批次号对应的根密钥,并使用根密钥和接收到的终端设备id生成终端密钥。激活服务器生成激活响应消息,并使用终端密钥对响应消息做hmac运算生成校验信息发送给物联网设备。物联网设备使用安全芯片1中存储的终端密钥校验收到的激活响应消息,若通过校验,则向激活服务器发送激活确认消息,否则重新发起激活流程。激活服务器收到激活确认消息后,对记录该批次终端产品激活数量的计数器增1,并比较计数器的值和存储的该批次安全芯片1的数量,若前者超过后者,则激活失败,并报错。

具体的,本发明中的密钥分配系统在物联网设备平台的实施中激活服务器、物联网设备和烧录器之间的交互过程如下:

(1)运营商使用烧录器或其他工具将物联网设备批次号及该批次产品的根密钥写入安全芯片2,同时设置安全芯片2中单调计数器的计数限制,实际上设置了可以烧录的安全芯片1的数量上限。

(2)运营商将安全芯片2交给烧录工厂,烧录工厂将安全芯片2装配到烧录器。

(3)烧录工厂将安全芯片1放置到烧录器的芯片槽中,并开始烧写安全芯片1。

(4)烧录器读取安全芯片2中存储的产品批次号,并写入安全芯片1。

(5)烧录器读取安全芯片1的设备id,并输入到安全芯片2;

(6)安全芯片2使用已存储的根密钥对安全芯片1的设备id做hmac运算生成终端密钥,单调计数器的值增1。

(7)烧录器将终端密钥写入到安全芯片1中。

(8)重复步骤3-7,直到计数器的值达到上限,统计成功烧录的安全芯片1的数量。

(9)烧录工厂将烧录好的安全芯片1交给物联网设备生产商,生产商将其装配到物联网设备中。

(10)烧录工厂将烧录的该批次安全芯片1的数目通过线下发送给运营商,运营商存储产品批次号、产品根密钥和安全芯片1的数目到激活服务器。

(11)物联网设备通过2g等无线方式接入网络,并向运营商的激活服务器发送激活请求,同时发送安全芯片1的设备id和产品批次号。

(12)激活服务器收到激活请求后解析请求数据,并通过产品批次号查询相应的根密钥。

(13)激活服务器使用根密钥对收到的安全芯片1的设备id做hmac运算生成终端密钥。

(14)激活服务器生成激活响应消息,并使用终端密钥对该消息体做hmac运算生成校验数据。

(15)激活服务器将激活响应消息体和校验数据封装成激活响应数据包发送给物联网设备。

(16)物联网设备解析收到的激活响应数据包,并将消息体数据传递给安全芯片1。

(17)安全芯片1使用已存储的终端密钥对激活响应消息体做hmac运算,生成校验数据。

(18)物联网设备比较接收到的激活响应消息校验数据和使用安全芯片1生成的校验数据,若二者一致,则激活成功,转(19);否则,激活失败,转(11)。

(19)物联网设备发送激活确认消息给激活服务器。

(20)激活服务器接收到激活确认消息后对统计该批次终端产品激活数量的计数器值增1。

(21)激活服务器比较该批次终端产品激活数量和已存储的安全芯片1的数量,若前者大于后者,则报错;否则,该物联网设备的密钥分配完成。

另一方面,本发明还提供一种适用于物联网的密钥分配系统,其包括:

服务端、终端设备和密钥生成器,所述服务端和密钥生成器分别与终端设备连接;

其中,所述服务端包括第一微处理器、第一激活模块、第一计数模块、第一存储模块和第一通信模块;所述第一激活模块、第一计数模块、第一存储模块和第一通信模块均与第一微处理器连接;

所述终端设备包括第二微处理器、第二通信模块、第二激活模块和第二存储模块;所述第二通信模块、第二激活模块和第二存储模块均与第二微处理器连接;

所述密钥生成器包括第三微处理器、密钥生成模块、第二计数模块、第三通信模块、第三存储模块;所述密钥生成模块、第二计数模块、第三通信模块、第三存储模块均与第三微处理器连接。

作为该技术方案的改进,所述第一存储模块用于存储终端设备的批次号和根密钥,以及所述批次终端设备的密钥生成次数。

作为该技术方案的改进,所述第二存储模块用于存储终端设备的终端密钥以及终端设备的批次号。

作为该技术方案的改进,所述第三存储模块用于存储终端设备的批次号和根密钥。

采用本发明中的密钥分配方案可以有效地降低密钥管理成本,使得服务端无需建立数据库来存储和管理设备密钥。同时,本发明中采用的密钥通过安全摘要或对称加密算法生成,所有的密码学操作均没有采用非对称密码算法,也降低了服务端和设备终端的计算成本。即使设备终端调用安全芯片来完成密码运算操作,采用本发明的密钥分配方案会降低设备终端的成本,因为含有非对称密码运算模块的安全芯片价格比只含有对称运算模块的芯片价格贵得多。

本发明的密钥分配方案可以设置许可的终端密钥数量,并同时对终端密钥的生成数量和设备终端的激活数量计数,有助于更好地控制终端密钥的生成过程和设备终端的激活过程,校验二者能进一步保障本发明的密钥分配方案被正确地执行。

本方案使用根密钥对设备终端身份标识做单向函数或对称加密运算生成终端密钥,避免了终端密钥在线传输,因而减少了终端密钥泄露的渠道;避免了服务端存储终端密钥,降低了服务端的密钥管理成本;避免了使用非对称密码运算,降低了物联网终端的计算成本;服务端能设置许可的终端密钥数量,并对终端密钥的生成过程和设备终端的激活过程同时计数并校验,有助于更好地控制这两个过程,并降低密钥分配方案执行中出错的概率;且本方案不使用单向函数或对称加密运算生成终端密钥,使用其他类似的算法生成终端密钥也能完成发明目的。

本发明的实施实例物联网设备中所用的安全芯片1原型是microchip/atmel的atsha204a芯片,而烧录器中所使用的安全芯片2的原型是microchip/atmel的atecc508a芯片。atsha204a包含基于sha256安全哈希算法的hmac功能模块,而atecc508a还包含ecc功能模块以及两个单调计数器。这两颗芯片都有eeprom存储区。

在本发明中,每个物联网终端在出厂时被写入各自的终端密钥,该密钥是使用一个根密钥对终端身份标识做单向函数或对称加密运算(如hmac或aes等)得到的,且同一批次终端共用一个根密钥。服务端可以限定根密钥的使用次数,当用根密钥生成终端密钥的次数超过使用限制时,需要重新向服务端申请许可。物联网终端在使用前必须激活,在该过程中终端将身份标识发送给服务端,服务端使用已存储的根密钥和接收到的终端身份标识生成对应的终端密钥,并发送激活响应消息给终端,该激活响应消息包括消息本体和使用终端密钥对消息本体做单向函数运算生成的校验信息。终端收到后使用终端密钥校验收到的激活响应消息,若校验通过,则激活成功。随后客户端发送激活确认给服务端,服务端将激活计数器加1;否则,激活失败,客户端重新发起激活流程。对于同一批次的终端,服务端激活计数的最大值不能超过存储的终端密钥生成数量。

采用本发明方案部署物联网设备相比以往的方案具有以下优点:1)在本密钥分配方案中,服务端只需要存储根密钥,在与客户端通信时就能根据客户端发送的终端身份标识使用单向函数或对称加密运算生成终端密钥,通信完成后销毁,无需存储该密钥,免去了为终端密钥建立和维护数据库的成本,且在通信建立的过程中只传输终端身份标识信息,即使信息泄露也无法得到终端密钥;2)本方案没有非对称密码学运算,因而本方案的运算相比pki方案具有更低的计算复杂度,占用更少的物联网设备资源;3)在本密钥分配方案中,服务端能设置终端密钥生成数量,同时在服务端对终端激活过程计数,通过对比两个数量可以更好地保障和控制终端密钥生成与设备激活过程,如校验设备激活数量不超过终端密钥生成数量,限定终端密钥生成次数,或限定终端激活数量等。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1