安全存储及加载固件的方法及电子装置制造方法及图纸

技术编号:30819833 阅读:29 留言:0更新日期:2021-11-18 11:14
本公开的实施例涉及安全存储及加载固件的方法及电子装置。安全存储及加载固件的方法包括:将电子装置的操作系统环境分为安全区与非安全区;在电子装置的系统被供电之后,从只读存储器的重启程序开始执行,它负责加载启动程序;使用启动程序的代码,初始化解密引擎;从一次性可编程电路获取密钥,将密钥加载至经初始化的解密引擎;从闪速存储器读取出固件密文;通过解密引擎与密钥,来对固件密文进行解密以产生固件明文;以及根据固件密文以及固件明文,确定安全启动是否成功。确定安全启动是否成功。确定安全启动是否成功。

【技术实现步骤摘要】
安全存储及加载固件的方法及电子装置


[0001]本专利技术涉及一种固件安全存储及加载的机制,特别地涉及一种能够安全存储及加载固件的方法及电子装置。

技术介绍

[0002]目前物联网设备装置的应用非常普及。为了解决物联网设备可能出现的信息泄密、非法访问或恶意软件攻击等安全问题,传统技术解决方案是将系统运行环境划分为安全区与普通区。由于两者是独立的执行环境,普通区的程序在未被授权的情况下无法访问安全区的资源,因此能够保护芯片内部安全区的内容不受恶意软件的攻击。然而,物联网设备的固件程序一般均存储于属于普通区的非易失性存储器中,例如一个外部连接的闪速存储器,当物联网设备的系统启动之后会将该固件程序从该外部连接的闪速存储器复制加载至物联网设备内部的随机存取存储器中。由于外部连接的闪速存储器仍极易产生信息泄密、受到非法访问或恶意软件攻击,所以传统的技术解决方案并无法保证从普通区复制加载固件至安全区的整个启动程序是安全的。

技术实现思路

[0003]因此本专利技术的目的之一在于提供了一种安全的固件复制加载的方法机制,可以安全地从外部存储器解密和加载固件至电子装置内部的安全存储区,从而避免在系统上运行受到窜改的固件。
[0004]根据本专利技术的实施例,其公开了一种安全存储及加载固件的方法,该方法包括:将电子装置的操作系统环境分为安全区与非安全区,该安全区包含有只读存储器与一次性可编程电路(one-time programmable circuit),该只读存储器与该一次性可编程电路是设置在该电子装置内部,而该非安全区包含有闪速存储器,该闪速存储器外接于该电子装置;在该电子装置的系统被供电之后,预设从只读存储器中的重启程序(reset handler)开始执行,它负责加载启动程序(Boot Loader)使用该启动程序代码,初始化解密引擎;从该一次性可程序设计电路获取密钥,将该密钥加载至经初始化的该解密引擎;从该闪速存储器读取出固件密文;通过该解密引擎与该密钥,来对该固件密文进行解密以产生固件明文;以及根据该固件密文以及该固件明文,确定安全启动是否成功。
[0005]根据本专利技术的实施例,其还公开了一种能够安全存储及加载固件的电子装置,该电子装置外接于闪速存储器,该闪速存储器属于该电子装置的操作系统环境的非安全区,以及该电子装置包含只读存储器、一次性可编程电路、解密引擎电路以及处理器。只读存储器用以存储特定启动程序代码,该只读存储器属于该电子装置的该操作系统环境的安全区。一次性可编程电路用以存储密钥,该一次性可编程电路属于该电子装置的该操作系统环境的该安全区。解密引擎电路用以解密固件,该解密引擎电路属于该电子装置的该操作系统环境的该安全区。处理器耦接至该只读存储器、该一次性可编程电路以及该解密引擎电路,该处理器用以在该电子装置的系统被供电之后,预设从只读存储器中的重启程序开
始执行,它负责加载启动程序,使用该启动程序代码初始化该解密引擎电路。该解密引擎电路在被初始化之后,从该一次性可编程电路获取该密钥并且加载和设定该密钥至经初始化的该解密引擎电路、从该闪速存储器读取出固件密文、通过该密钥来对该固件密文进行解密以产生固件明文以及根据该固件密文以及该固件明文,确定安全启动是否成功。
[0006]根据本专利技术的实施例,其还公开了一种能够安全存储及加载固件的电子装置,该电子装置外接于闪速存储器,该闪速存储器属于该电子装置的操作系统环境的非安全区,以及该电子装置包含只读存储器、一次性可编程电路以及处理器。只读存储器用以存储特定启动程序代码,该只读存储器属于该电子装置的该操作系统环境的安全区。一次性可编程电路用以存储密钥,该一次性可编程电路属于该电子装置的该操作系统环境的该安全区。处理器耦接至该只读存储器以及该一次性可编程电路,该处理器用以在该电子装置的系统被供电之后,预设从只读存储器中的重启程序开始执行,它负责加载启动程序,以及使用该启动程序代码初始化该解密引擎电路;其中该处理器系从该一次性可编程电路获取该密钥、加载并设定该密钥至解密引擎软件程序、从该闪速存储器读取出固件密文、通过该密钥与该解密引擎软件程序来对该固件密文进行解密以产生固件明文,以及根据该固件密文以及该固件明文,确定安全启动是否成功。
附图说明
[0007]图1是本专利技术一实施例能够安全存储及加载固件的电子装置的示意图。
[0008]图2是本专利技术的实施例图1所示的电子装置进行安全启动的一示例流程示意图。
[0009]图3是本专利技术另一实施例能够安全存储及加载固件的电子装置的示意图。
具体实施方式
[0010]本专利技术旨在于提供了一种实用的安全固件存储和加载的方法及机制,能够从外部存储器中读取被加密过的固件(firmware),在可信执行环境(Trusted Execution Environment,TEE)中将被加密过的固件快速且安全地解密之后加载到该可信执行环境中运行,使得其他装置、黑客或开放执行环境(Rich Execution Environment,REE)中的程序均无法非法访问或窜改其内容,因而可保证固件的存储及加载的机密性和完整性。详细来说,本专利技术的方法机制先对将要运行在电子装置(例如电路芯片)上的固件进行加密,并且将加密过的固件存储在位于该电子装置外部的非易失性的存储器(例如闪速存储器,但不限定),之后当该电子装置被供电时,在可信执行环境下通过该电子装置的硬件解密引擎、软件解密引擎/程序或是软硬件兼具的解密引擎来对该加密过的固件进行解密并检查该固件的完整性及真实性,接着将解密后的固件数据内容通过安全的直接存储器存取通道及/或以存储器复制的方式传送至并存储在该可信执行环境中的安全存储区域。
[0011]此外,本专利技术中所涉及的解密操作的密钥(或称为秘钥)是存放在该电子装置内的该可信执行环境的一个一次性可编程电路(one-time programmable circuit)中,该密钥只能够被运行于该可信执行环境的受信任程序所见,任何通过该开放执行环境的程序或恶意软件均无法窃取或者窜改密钥。此外,本专利技术中所述的完整的固件加载过程,包括密钥的读取、解密运作及解密后的固件的数据传送等,其均在该可信执行环境中完成,因此可避免信息泄露。
[0012]实际操作中,请参照图1,图1是本专利技术实施例能够安全存储及加载固件的电子装置100的示意图。电子装置100例如是芯片电路,其操作系统环境可隔离分为并且包括安全区(secure world)以及非安全区(non-secure world)。本专利技术的该安全区是可信执行环境,例如是安谋控股公司(ARM Holdings)所提出的TrustZone解决方案中所制定的安全区(但不限定)。而本专利技术的该非安全区是开放执行环境,例如是安谋控股公司所提出的TrustZone解决方案中所制定的普通区(但不限定)。电子装置100内包括只读存储器(read-only memory,ROM)105、一次性可编程电路110、解密引擎电路115、随机存取存储器(random access memory,R本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种安全存储及加载固件的方法,包括:将电子装置的操作系统环境分为安全区和非安全区,所述安全区包含只读存储器和一次性可编程电路,所述只读存储器和所述一次性可编程电路系设置在所述电子装置内部,而所述非安全区包含闪速存储器,所述闪速存储器外接于所述电子装置;在所述电子装置的系统被供电之后,所述只读存储器的重启程序运行并且加载特定启动程序代码;使用所述特定启动程序代码,初始化解密引擎;从所述一次性可编程电路获取密钥,将所述密钥加载至经初始化的所述解密引擎;从所述闪速存储器读取出固件密文;通过所述解密引擎和所述密钥,来对所述固件密文进行解密以产生固件明文;以及根据所述固件密文以及所述固件明文,确定安全启动是否成功。2.根据权利要求1所述的方法,其中确定安全启动是否成功的步骤包括:根据所述固件明文来计算特定哈希值;将所述固件明文的信息内容传送到并且存储在位于所述安全区的安全存储区;以及判断所述特定哈希值是否与所述固件密文所记录的哈希值匹配,来确定所述安全启动是否成功。3.根据权利要求2所述的方法,其中当所述特定哈希值与所述固件密文所记录的所述哈希值匹配时,判断所述安全启动成功;以及,当所述特定哈希值与所述固件密文所记录的所述哈希值不匹配时,判断所述安全启动失败。4.根据权利要求2所述的方法,还包括:从所述闪速存储器读取出所述固件密文的一部分;通过所述解密引擎和所述密钥,对所述固件密文的所述部分进行解密以产生所述固件明文的一部分;根据目前已经读取出的所述固件明文的内容来计算所述特定哈希值;以及将所述固件明文的所述部分的信息内容传送到并且存储在位于所述安全区的所述安全存储区。5.根据权利要求4所述的方法,还包括:在将所述固件明文的所述部分的信息内容传送到并且存储在位于所述安全区的所述安全存储区之后,判断所述固件密文的所述部分是否为所述固件密文的最后一部分;当所述固件密文的所述部分是所述固件密文的所述最后一部分时,判断所述特定哈希值是否与所述固件密文所记录的所述哈希值匹配,来确定是否所述安全启动成功;以及当所述固件密文的所述部分不是所述固件密文的所述最后一部分时,继续读取所述固件密文的下一部分,并且通过所述解密引擎和所述密钥,来对所述固件密文的所述下一部分进行解密以根据目前已经读取出的所述固件明文的内容来计算所述特定哈希值。6.根据权利要求2所述的方法,其中所述固件明文的信息内容是通过安全的直接存储器存取通道或存储器复制操作而被传送到并存储在位于所述安全区的所述安全存储区。7.根据权利...

【专利技术属性】
技术研发人员:祝甜一李朝明彭作辉
申请(专利权)人:瑞昱半导体股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1