一种基于嵌入式信任根的智能设备安全代码更新方法

文档序号:153392 发布日期:2021-10-26 浏览:46次 >En<

阅读说明:本技术 一种基于嵌入式信任根的智能设备安全代码更新方法 (Intelligent equipment security code updating method based on embedded trust root ) 是由 王纪军 徐超 程伟华 承轶青 吉慎 于 2021-07-01 设计创作,主要内容包括:本发明公开了一种基于嵌入式信任根的智能设备安全代码更新方法,包括安全擦除:基于信任根密钥派生的伪随机数在更新前对智能设备可疑空间进行清理,确保更新前的安全;采用现代智能设备上普遍存在的硬件构建嵌入式信任根,为嵌入式系统维护一个小的可信执行环境和安全存储空间,确保更新时的安全;对更新代码安装后的嵌入式智能设备系统环境进行完整性证明,确保更新后的安全。本发明借鉴嵌入式信任根、安全擦除和远程证明技术,为嵌入式智能设备提供一个涵盖更新前、更新时和更新后全方位保护的安全代码更新方法。(The invention discloses an intelligent equipment security code updating method based on an embedded trust root, which comprises the following steps of: cleaning suspicious spaces of the intelligent equipment before updating based on pseudo-random numbers derived from the trust root key, and ensuring the safety before updating; an embedded trust root is constructed by adopting ubiquitous hardware on modern intelligent equipment, a small trusted execution environment and a safe storage space are maintained for an embedded system, and the safety during updating is ensured; and the integrity of the embedded intelligent equipment system environment after the update code is installed is proved, so that the updated safety is ensured. The invention provides a safe code updating method covering all-round protection before, during and after updating for embedded intelligent equipment by using embedded trust root, safe erasing and remote certification technologies.)

一种基于嵌入式信任根的智能设备安全代码更新方法

技术领域

本发明属于可信物联网和嵌入式系统安全领域,具体涉及一种基于嵌入式信任根的智能设备安全代码更新方法。

背景技术

随着物联网、工业4.0、工业互联网的不断发展,各种各样的嵌入式智能设备已经被广泛应用到现实世界的各种场景中,如工业控制系统、智能家居、无线传感网等。但是,由于这些嵌入式智能设备缺少传统桌面机器的安全机制,容易遭受攻击。在很多情况下,存在漏洞或者被攻击的设备通常需要被召回,给设备厂商带来巨大的经济损失。例如,Dyn DNSDDoS攻击感染了大量物联网设备僵尸节点,很多存在该问题的网络摄像头都被厂家收回;随着无人驾驶技术的发展,汽车上也会被配置各种嵌入式传感器和智能功能,这也导致汽车漏洞和安全风险的增加,被召回的几率也更高。由于嵌入式智能设备深入各行各业,而且在很多场景是大规模部署,出现安全问题被召回的成本是厂家难以承受的。

为此,代码更新技术被提出,其可以远程修复嵌入式智能设备存在的漏洞,还可以远程增加新的特征或者系统功能,开启某个安全功能,禁用某个设备产品的脆弱性功能等,提升智能设备在其生命周期使用中的安全性和灵活性,降低返厂或者召回的经济损失,通过远程方式解决大部分设备存在的功能或者安全问题。但是,如果代码更新技术本身存在安全问题,其会被攻击者利用来破坏嵌入式智能设备的安全性,违背其设计初衷。

因此,为了设计安全可用的代码更新方法,需要深入考虑代码更新技术本身的安全性。代码更新并不只是简单的将最新版本的固件或者软件代码下载到智能嵌入式设备上,还应该考虑代码更新的各种安全属性,如新鲜性、完整性、认证性、机密性、可验证性、可恢复性、持续性等。于是,一些研究学者开始考虑部分安全属性,设计安全代码更新机制。2010年Perito等学者提出了PoSE(Proofs of Secure Erasure)的安全代码更新方案,在将安全代码下载到嵌入式智能设备之前,先通过安全擦除的方式在设备上创造一个纯净的环境;2016年Kohnhauser等学者基于硬件安全免疫环境和公钥密码算法为低端嵌入式设备设计了一个安全代码更新机制。

虽然这些方案能满足大部分安全属性,但存在明显的缺点:首先,它们依赖的硬件安全免疫环境在嵌入式智能设备上不一定存在,不具有普适性;其次,嵌入式智能设备可以利用的软硬件资源受限,使用公钥密码算法带来的性能和存储开销对很多嵌入式设备无法接受;第三,PoSE需要通过网络发送大量伪随机值对嵌入式智能设备多余内存空间进行填充,以擦除潜在的恶意代码,其造成的网络流量开销几乎无法应用于实际场景;最后,它们提供的安全机制通常只考虑了安全代码更新的一个部分,缺乏对整体更新流程的系统性安全构建。因此,需要考虑嵌入式设备本身软硬件环境的特性,设计更加实际可用的安全代码更新方法,满足更新前、更新时和更新后的更加完整和系统的安全代码更新要求。

发明内容

本发明的目的在于提供一种基于嵌入式信任根的智能设备安全代码更新方法,涵盖更新前、更新时和更新后全方位保护。安全擦除基于信任根密钥派生的伪随机数在更新前对智能设备可疑空间进行清理,确保更新前的安全;本发明解决了嵌入式物联网设备的信任问题,创新性地提出了一种在嵌入式设备上的安全代码更新方法,能够阻止不受信任方在设备代码更新时对嵌入式设备进行破坏。

本发明的目的通过以下技术方案实现:

一种基于嵌入式信任根的智能设备安全代码更新方法,其特征在于包括以下步骤:

(1)安全擦除:基于信任根密钥派生的伪随机数在更新前对智能设备可疑空间进行清理,确保更新前的安全;

(2)采用现代智能设备上普遍存在的硬件构建嵌入式信任根,如SRAM PUF或者ARMTrustZone-M,能为嵌入式系统维护一个可信执行环境和安全存储空间,确保更新时的安全;

(3)对更新代码安装后的嵌入式智能设备系统环境进行完整性证明,确保更新后的安全。

具体步骤如下:

1)智能设备方准备更新包与验证方共享;

2)智能设备方初始化配置智能设备;

3)智能设备方和验证方进行临时会话密钥协商;

4)智能设备方发布新代码后通知验证方更新;

5)智能设备方初始化设备更新环境;

6)智能设备方向验证方发送挑战和密钥;

7)验证方验证挑战,成功后将更新包加密后发送给智能设备方;

8)智能设备方解密并验证更新包,成功后将部署更新;

9)智能设备方进行完整性度量,将结果发送给验证方;

10)验证方验证度量结果,并同步给智能设备方;

11)智能设备方通过安全启动保证可持续安全性;

12)智能设备方和验证方通过远程证明机制保证智能设备的持续可信性。

本发明构建原理和步骤如下:

1.安全代码更新前:

a.智能设备方和验证方:设备方准备好最新的安全更新包cupkg,其至少包含二进制更新代码cupkg.code,当前安全更新包的版本号cupkg.ver,成功更新后设备上内存内容期望值的哈希值cupkg.hash;设备方将准备好的最新安全更新包cupkg与验证方共享。

b.智能设备方:配置或者部署好嵌入式信任根(SRAM PUF或者ARM TrustZone-M)、固定的信任根代码RoT以及设备根密钥rk(可以是固化在安全存储空间的根密钥,也可以是基于SRAM PUF在设备启动时自动生成的根密钥),并将设备当前运行代码的完整性元数据(包含cupkg.ver和cupkg.hash)保存在嵌入式信任根维护的安全存储空间R中,该方法可以在没有专用安全芯片的的设备上进行,节省了成本和资源占用。

c.智能设备方和验证方:协商好密码学参数,选择合适的轻量级对称加密算法,通过密钥交换协议建立一个共享的临时会话密钥tsk,在更新协议交互过程中,智能设备方和验证方之间交互的信息都使用tsk进行加密,并可以根据实际需求自定义更新tsk的周期。

d.智能设备方和验证方:智能设备方发布最新版本的嵌入式智能设备代码后,通知验证方对所有智能设备进行更新,验证方向智能设备方发送一个更新请求R1。

e.智能设备方:智能设备上RoT代码收到R1后,基于设备根密钥rk派生出一个随机子密钥k1;基于k1和R1,RoT代码使用一个伪随机发生器生成伪随机数,对设备可疑内存和多余内存区域进行覆写操作,擦除潜在的恶意代码,为更新提供一个初始可信的环境,该方法只用进行一次通信,节省了网络带宽,并且能擦除内存中所有的不可信部分,方便进行证明并进一步提高安全性。

2.安全代码更新时:

a.智能设备方:智能设备上RoT代码基于设备根密钥rk再派生出第二个随机子密钥k2,并生成一个随机挑战值Np,将消息M1={R1,k1,k2,Np}使用tsk加密后发送给验证方。

b.验证方:使用tsk解密获得消息M1后,验证R1确保会话的新鲜性;然后使用k2对智能设备方发布的最新安全更新包cupkg进行加密得到密文消息epkg,即epkg=Enc(k2,cupkg),确保安全更新包的机密性;并使用k1对{Np,hash(epkg)}进行MAC操作,生成认证码mac1,确保安全更新包的完整性;生成一个随机挑战值Nv,将消息M2={Np,epkg,mac1,Nv}使用tsk加密后发送给智能设备方。

c.智能设备方:RoT代码使用tsk解密获得消息M2后,对epkg先进行哈希hash操作,并使用k1、Np来验证消息认证码mac1是否被篡改;如果被篡改,则退出更新;如果没有被篡改,则使用k2对epkg进行解密获得cupkg,即cupkg=Dec(k2,epkg);验证cupkg.ver是否大于之前存储的版本,防止安全更新代码的版本回滚攻击;验证通过后再继续操作,将解密的cupkg进行安装,将其对应的最新完整性元数据cupkg.ver和cupkg.hash存储到嵌入式信任根维护的安全存储空间R中(即覆盖1.b中旧值)。

3.安全代码更新后:

a.智能设备方:RoT代码使用哈希算法对设备的最新内存状态(可以选择安全更新所在的关键区域,也可以选择整个内存区域)进行度量后,获得完整性度量结果h;使用k1对{Nv,h}进行MAC操作,生成认证码mac2;将消息M3={Nv,h,mac2}使用tsk加密后发送给验证方。

b.验证方:验证方使用k1和cupkg对认证码mac2进行验证,以确定智能设备是否成功安装了最新的代码更新包cupkg,并将智能设备ID和验证结果同步给智能设备方。

c.智能设备方:安装完成最新代码更新包cupkg后,每次智能设备重启时,嵌入式系统通过安全引导先加载RoT代码;然后,RoT代码对内存关键区域的cupkg代码进行完整性哈希度量后与保存在R区域的cupkg.hash进行对比,只有对比通过了才加载cupkg代码,确保智能设备更新后的可持续安全性。

d.智能设备方和验证方:如果该智能设备想要与智能设备方、验证方或者其它可信第三方交互,为了先了解该智能设备的安全状态,可以先采取3.a和3.b中类似的远程证明机制对智能设备的完整性状态进行证明,确保智能设备在物联网网络环境的持续可信性。

本发明嵌入式信任根采用现代智能设备上普遍存在的硬件进行构建,如SRAM PUF或者ARM TrustZone-M,能为嵌入式系统维护一个小的可信执行环境和安全存储空间,确保更新时的安全;远程证明技术对更新代码安装后的嵌入式智能设备系统环境进行完整性证明,确保更新后的安全。

本发明的优点如下:

1.相比于现有的安全代码更新方法,本发明使用设备根密钥伪随机派生方法来进行更新前的安全擦除,节省了网络带宽;并采用轻量级对称密码算法代替公钥机制来设计安全更新协议,对资源受限的嵌入式智能设备更加友好。

2.本发明对更新前、更新时和更新后的设备安全进行了全面系统的设计,全方位的对更新的各个阶段进行保护,从而提升了智能设备整个生态环境的安全性。F的安全代码更新方案,对更新前、更新时、更新后进行了全方位的保护。更新前,通过基于设备根密钥的随机内存填充确保了更新代码安装前没有潜在的恶意代码;更新时,验证代码来源合法且是最新的,更新代码的机密性和完整性可靠,待更新的设备是经过安全认证的,防止重放、回滚等攻击;更新后,每次加载运行更新代码前都进行完整性验证,每次进行网络交互时都进行远程证明,确保设备关联网络环境的可持续安全。

附图说明

图1是本发明中安全代码更新的三个阶段示意图。

具体实施方式

下面以在一个普通PC设备作为验证方,一个配备SRAM和ARM TrustZone-M的嵌入式设备作为智能设备方为例,说明本发明的具体实现方式:

一种基于嵌入式信任根的智能设备安全代码更新方法,包括以下步骤:(1)安全擦除:基于信任根密钥派生的伪随机数在更新前对智能设备可疑空间进行清理,确保更新前的安全;(2)采用现代智能设备上普遍存在的硬件构建嵌入式信任根,如SRAM PUF或者ARMTrustZone-M,能为嵌入式系统维护一个可信执行环境和安全存储空间,确保更新时的安全;(3)对更新代码安装后的嵌入式智能设备系统环境进行完整性证明,确保更新后的安全。具体步骤如下:

1、智能设备方准备更新包与验证方共享;设备方准备好最新的安全更新包cupkg,其至少包含二进制更新代码cupkg.code,当前安全更新包的版本号cupkg.ver,成功更新后设备上内存内容期望值的哈希值cupkg.hash;设备方将准备好的最新安全更新包cupkg与验证方共享。

2、智能设备方初始化配置智能设备;智能设备方配置或者部署好嵌入式信任根、固定的信任根代码RoT以及设备根密钥rk(可以是固化在安全存储空间的根密钥,也可以是基于SRAM PUF在设备启动时自动生成的根密钥),并将设备当前运行代码的完整性元数据(包含cupkg.ver和cupkg.hash)保存在嵌入式信任根维护的安全存储空间R中;

所述嵌入式信任根为设备提供隔离可信执行环境和安全存储空间;所述嵌入式信任根通过SRAM PUF和ARM TrustZone-M提供;所述信任根代码RoT是指运行在隔离可信执行环境中的代码,包含执行安全代码更新所必须的哈希算法、伪随机数生成算法、对称加解密算法、消息认证码、对比检测代码;

3、智能设备方和验证方进行临时会话密钥协商;智能设备方和验证方:协商好密码学参数,选择合适的轻量级对称加密算法,通过密钥交换协议建立一个共享的临时会话密钥tsk,在更新协议交互过程中,智能设备方和验证方之间交互的信息都使用tsk进行加密,并可以根据实际需求自定义更新tsk的周期。

4、智能设备方发布新代码后通知验证方更新;智能设备方发布最新版本的嵌入式智能设备代码后,通知验证方对所有智能设备进行更新,验证方向智能设备方发送一个更新请求R1。

5、智能设备方初始化设备更新环境;智能设备上RoT代码收到R1后,基于设备根密钥rk派生出一个随机子密钥k1;基于k1和R1,RoT代码使用一个伪随机发生器生成伪随机数,对设备可疑内存和多余内存区域进行覆写操作,擦除潜在的恶意代码,为更新提供一个初始可信的环境。

6、智能设备方向验证方发送挑战和密钥;智能设备上RoT代码基于设备根密钥rk再派生出第二个随机子密钥k2,并生成一个随机挑战值Np,将消息M1={R1,k1,k2,Np}使用tsk加密后发送给验证方。

7、验证方验证挑战,成功后将更新包加密后发送给智能设备方;验证方使用tsk解密获得消息M1后,验证R1确保会话的新鲜性;然后使用k2对智能设备方发布的最新安全更新包cupkg进行加密得到密文消息epkg,即epkg=Enc(k2,cupkg),确保安全更新包的机密性;并使用k1对{Np,hash(epkg)}进行MAC操作,生成认证码mac1,确保安全更新包的完整性;生成一个随机挑战值Nv,将消息M2={Np,epkg,mac1,Nv}使用tsk加密后发送给智能设备方。

8、智能设备方解密并验证更新包,成功后将部署更新;智能设备方RoT代码使用tsk解密获得消息M2后,对epkg先进行哈希hash操作,并使用k1、Np来验证消息认证码mac1是否被篡改;如果被篡改,则退出更新;如果没有被篡改,则使用k2对epkg进行解密获得cupkg,即cupkg=Dec(k2,epkg);验证cupkg.ver是否大于之前存储的版本,防止安全更新代码的版本回滚攻击;验证通过后再继续操作,将解密的cupkg进行安装,将其对应的最新完整性元数据cupkg.ver和cupkg.hash存储到嵌入式信任根维护的安全存储空间R中(即覆盖1.b中旧值)。

9、智能设备方进行完整性度量,将结果发送给验证方;智能设备方RoT代码使用哈希算法对设备的最新内存状态(可以选择安全更新所在的关键区域,也可以选择整个内存区域)进行度量后,获得完整性度量结果h;使用k1对{Nv,h}进行MAC操作,生成认证码mac2;将消息M3={Nv,h,mac2}使用tsk加密后发送给验证方。

10、验证方验证度量结果,并同步给智能设备方;验证方使用k1和cupkg对认证码mac2进行验证,以确定智能设备是否成功安装了最新的代码更新包cupkg,并将智能设备ID和验证结果同步给智能设备方。

11、智能设备方通过安全启动保证可持续安全性;智能设备方安装完成最新代码更新包cupkg后,每次智能设备重启时,嵌入式系统通过安全引导先加载RoT代码;然后,RoT代码对内存关键区域的cupkg代码进行完整性哈希度量后与保存在R区域的cupkg.hash进行对比,只有对比通过了才加载cupkg代码,确保智能设备更新后的可持续安全性。所述设备启动时ROM先度量和加载信任根代码RoT,RoT代码再度量和加载cupkg;依赖ROM启动固件的校验功能,安全引导信任根代码RoT;所述cupkg是任何可更新的嵌入式代码。

12、智能设备方和验证方通过远程证明机制保证智能设备的持续可信性。如果该智能设备想要与智能设备方、验证方或者其它可信第三方交互,为了先了解该智能设备的安全状态,可以先采取远程证明机制对智能设备的完整性状态进行证明,确保智能设备在物联网网络环境的持续可信性。

对于本领域的技术人员而言,可以参考该方法设计、实现出对应的系统安全防护系统。

1.智能设备方、验证方:轻量级对称密码算法可以选择AES,也可以选择遵循我国商用密码算法标准的SM4;哈希算法可以选择SHA256,也可以选择遵循我国商用密码算法标准的SM3;共享的临时会话密钥tsk可以使用Diffie-Hellman或者ECDH密钥交换算法生成;网络连接可以是有线或者各种无线接口方式;cupkg安全更新代码包可以是嵌入式操作系统,或者任何可更新的嵌入式固件或嵌入式应用软件。

2.智能设备方:将RoT信任根代码放置到ARM TrustZone-M隔离的安全区域,并在设备启动时自动引导到安全区域的RoT信任根代码执行,ARM TrustZone-M确保RoT执行环境的可信,硬件隔离性确保其不受设备上其它代码的影响;在设备上电时,读取SRAM的初始值,并基于SRAM PUF自动生成设备唯一的根密钥rk;从根密钥rk派生k1可以采用KDF密钥派生算法;对设备内存进行擦除的伪随机数可以采用哈希算法来替代,将内存地址也包含在哈希计算的消息中。

3.智能设备方:RoT信任根代码在ARM TrustZone-M的安全区域运行;从根密钥rk派生k2可以采用KDF密钥派生算法;RoT信任根代码包含哈希算法和消息认证码,哈希算法可以采用SHA256或者SM3来实现,消息认证码可以采用HMAC或者SM4来实现;使用HMAC先认证安全代码更新包消息的完整性后,在使用SM4进行解密,在验证完安全代码更新包的版本后,将最新代码安装加载到相应内存区域。

4.验证方:先采用SM4算法对安全代码更新包进行加密,然后对加密后的密文包进行HMAC操作生成消息认证码,同时提供机密性和完整性。

5.智能设备方:哈希算法采用SHA256或者SM3来实现,消息认证码可以采用HMAC或者SM4来实现;选择整个内存度量时,则对设备的所有可写内存都进行哈希完整性计算;选择关键区域度量时,则提供关键区域的起始地址和长度两个参数即可,根据该参数对指定区域内存进行哈希完整性计算;远程证明原本是对哈希完整性计算结果进行签名,这里的消息认证码对哈希完整性结果的操作就相当于远程证明中的签名。

6.验证方:通过HMAC或者SM4算法验证消息认证码的结果,将设备是否成功安装最新代码更新的结果反馈给验证方。

7.智能设备方:设备ROM中可以通过哈希度量值和证书的方式验证RoT代码,构建可信引导过程;RoT代码在加载cupkg前,先使用SHA256或者SM3验证其完整性;如果验证不通过,可以执行安全擦除操作,将设备恢复到初始可信环境,然后可以主动请求新一轮的更新过程,将设备恢复到最新状态。

8.智能设备方和验证方:采用基于消息认证码的远程证明方式向智能设备方授权的任何可信第三方证明智能设备的完整性状态,使其将可信扩展到网络环境。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于语义分析的物联网固件内核漏洞挖掘方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类