一种通用的智能硬件的安全密钥管理方法
【技术领域】
[0001]本发明涉及智能硬件的密钥管理领域,尤其是一种通用的智能硬件的安全密钥管理方法。
【背景技术】
[0002]目前,随着近几年移动互联网产业的蓬勃发展,越来越多的传统硬件设备厂家进入到移动互联网领域。这些厂家基于其传统的硬件设备制造优势,通过在其硬件产品上引入软件操作系统,并利用互联网通讯技术,实现设备间的互联互通。此外,他们还借助移动终端应用程序(后文简称移动APP)和云端服务器集群技术(后文简称云端),为最终用户提供了多种多样的智能服务。“智能硬件+移动APP+云端”的控制逻辑,已经成为了传统硬件进入移动互联网产业的基本模式:用户使用移动APP,通过互联网提供的传输通道,利用云端(比如移动APP与智能硬件在无法直接通信的网络中)或者不利用云端(比如移动APP与智能硬件在可以直接通信的网络中),对智能硬件进行控制操作。
[0003]然而,伴随着智能硬件进入移动互联网并给厂家带来新的利润的同时,也导致了自身产品的安全性受到了越来越多的挑战。对于那些没有防护措施的智能硬件设备,网络黑客通过网络技术手段,轻易就能在远程实现入侵,并对这些硬件设备进行控制和篡改,进而对客户造成不同程度的恶劣影响。为此,为智能硬件加上安全防护,就是一个迫切的需要了。
[0004]目前常见的智能硬件的安全防护措施,都是基于数据加密的方式。即:在控制指令发送之前,先使用加密密钥和加密算法,对指令数据进行加密;再利用网络将加密后的数据传递出去;到了接收方,先利用解密密钥和解密算法对指令进行解密,从而得到实际的指令内容。由于加解密密钥只有合法的通信双方才知晓,故很难被第三方实现破解。通过这种方式,就实现了智能硬件的安全要求。然而,传统的加解密密钥,一旦采用就终生不变;这就给了网络黑客一个可以窥探的机会。
【发明内容】
[0005]本发明的目的是针对传统的加解密密钥,一旦采用就终生不变安全性差的问题,提出一种通用的智能硬件的安全密钥管理方法。
[0006]本发明的技术方案是:
一种通用的智能硬件的安全密钥管理方法,它包括:智能硬件作为密钥的产生方,能够被动响应移动终端的密钥更新请求并完成密钥更新的步骤,以及智能硬件主动向云端发起密钥更新的请求并完成密钥更新的步骤。
[0007]本发明的智能硬件作为密钥的产生方,能够被动响应移动终端的密钥更新请求并完成密钥更新的步骤具体包括:
步骤1:移动终端判断出自身没有存储密钥或者所存储密钥已失效;
步骤2:移动终端向智能硬件发出密钥获取的请求指令,指令中附带明文随机字符串; 步骤3:智能硬件接收到此请求指令后,获取到其中的明文随机字符串;
步骤4:智能硬件使用密钥,对此明文随机字符串进行加密处理,并得到加密后的密文随机字符串;
步骤5:智能硬件向移动终端发出密钥获取的应答指令,指令中包括密钥和加密后的密文随机字符串;
步骤6:移动终端接收到此应答指令后,获取到其中的密钥和加密后的密文随机字符串;并使用所获得的密钥,对所获得的加密后的密文随机字符串进行解密,并得到解密后的明文随机字符串明文;
步骤7:移动终端将解密后得到的明文随机字符串,与自身保存的原始随机字符串进行内容对比,判定是否相等;
步骤8.1:若相等,则表示移动终端获取到正确密钥,从而将密钥保存到非易失性存储单元中,若有旧密钥,则进行替换;流程结束;
步骤8.2:若不等,则表示移动终端获取到错误密钥,从而返回步骤2。
[0008]本发明的步骤2中,移动终端向智能硬件发出密钥获取的请求指令中包括智能硬件用来计算初始加密密钥的参数,包括但不限于:移动终端的当前时间参数、MAC地址参数、身份信息参数和通信号码中的一个或多个。
[0009]本发明的步骤I中,移动终端判断出自身没有存储密钥或者所存储密钥已失效具体为:
首先,移动终端判断自身有没有密钥,
如果移动终端没有密钥,则移动终端向智能硬件发起密钥获取的请求指令;
如果移动终端有密钥,则移动终端默认采用此密钥,对与智能硬件的交互报文进行加密,则此加密后的交互报文到达智能硬件后,智能硬件会使用其存储的密钥进行解密,若解密失败,则智能硬件就会认为移动终端使用的密钥是错误的,则不会向移动终端发起任何应答报文,移动终端在发现自己发出的加密报文没有得到应得的应答后,能够在超时和重试机制失效后,判定出其自身使用的密钥已经失效,则移动终端向智能硬件发起密钥获取的请求指令。
[0010]本发明的智能硬件主动向云端发起密钥更新的请求并完成密钥更新智能硬件向云端发出密钥更新请求并确认云端存储密钥正确性的步骤具体包括:
步骤1:智能硬件向云端发出密钥更新的请求指令,该指令的内容,采用事先保存的云端公钥进行加密,该指令中含有云端公钥加密后的新密钥以及随机字符串二 ;
步骤2:云端使用所保存的云端私钥,对接收到的请求指令进行解密,得到新密钥和明文随机字符串二,云端将新密钥保存到非易失性存储单元中,若有旧密钥,则进行替换;步骤3:云端使用所获得的新密钥,对所获得的明文随机字符串进行加密处理,得到密文随机字符串二;
步骤4:云端向智能硬件发出密钥更新的应答指令,该指令中含有密文随机字符串二 ; 步骤5:智能硬件采用新密钥解密步骤4所获得的密文随机字符串二,得到明文随机字符串一;
步骤6:智能硬件将解密得到的明文随机字符串二,与自身记录的原始明文随机字符串二进行内容的比较,判定是否一致; 步骤7.1,若一致,则表示云端获得并使用了正确的新密钥,则此过程结束;
步骤7.2,若不一致,则表示云端获得新密钥失败或者使用了错误的密钥,则智能硬件返回步骤1.本发明的有益效果:
本发明的密钥交互过程中使用随机字符串来验证密钥正确性,可以实现云端,移动终端和智能硬件三者之间的可靠的密钥安全交换。
[0011]
【附图说明】
[0012]图1是本发明中,智能硬件被动响应移动终端的密钥更新请求并完成密钥更新的流程图。
[0013]图2是本发明的中,智能硬件主动向云端发起密钥更新的请求并完成密钥更新的流程图。
[0014]
【具体实施方式】
[0015]下面结合附图和实施例对本发明作进一步的说明。
[0016]智能硬件,移动终端和云端三者组成了一个相互可以通信的通信体系;智能硬件,移动终端和云端是此通信体系中的三类组成网元。这三类网元在整个通信体系中的数量不固定,可以是一个,也可以是多个;并且移动终端和云端这两类网元也可以不存在,但不能同时不存在,否则无法组成一个通信实体。
[0017]智能硬件负责产生,存储,管理和更新密钥。其中的密钥产生方法,包括但不限于:根据智能硬件内部的随机算法计算产生,根据智能硬件从移动终端或云端获取的参数计算产生。其中的密钥存储方法,包括但不限于:保存在智能硬件中的非易失性存储设备中,保存在智能硬件外的非易失性存储设备中。其中的密钥管理方法,包括但不限于:记录密钥产生时间和密钥有效期限;在密钥产生后替换当前的旧密钥或者以此记录所所有密钥并标记密钥的新旧属性;在密钥有效期到期后,进行密钥的更新;其中的密钥更新方法,与密钥产生方法相同。
[0018]云端一般位于公网中,而智能硬件和移动终端一般位于私网中。因此,智能硬件与云端之间的交互数据就会在公网上进行传输。为了保证公网传输数据的安全性,要求智能硬件在出厂前,要预置由云端发布且认可的云端公钥。而云端则保存云端私钥。这样,任何采用云端公钥加密的数据,只有采用云端私钥才可以被正确解密。从而保证了智能硬件与云端之间的交互数据的安全性。
[0019]本发明旨在智能硬件的常规使用期间,提供可定义的密钥更新策略配置方式,无论是否具有初始密钥,均可由用户定义密钥更新策略;利用请求-确认机制,实现“智能硬件,移动APP,云端”之间的可靠的密钥分发。具体包括如下过程:
(I)用户在使用智能硬件前,需要根据产品说明书下载并安装对应的移动APP程序。在用户首次使用智能硬件时,用户通过移动APP连接硬件设备(此时,移动APP和硬件设备在可以直接通信的网络中,无需云端参与),并完成必要的配置过程(一般为互联网接入参数的配置)。在此过程中,设备利用从移动终端指令中接收到的数据(由于此时没有加密密钥,且是在可以直接通信的网络中,故此数据是明文的;同时此类直接通信的网络通常私网范畴,其本身具有安全保护机制和私密性(如:家用的WI