CN110110526B - 一种基于安全芯片的安全启动装置及方法 - Google Patents
一种基于安全芯片的安全启动装置及方法 Download PDFInfo
- Publication number
- CN110110526B CN110110526B CN201910380189.4A CN201910380189A CN110110526B CN 110110526 B CN110110526 B CN 110110526B CN 201910380189 A CN201910380189 A CN 201910380189A CN 110110526 B CN110110526 B CN 110110526B
- Authority
- CN
- China
- Prior art keywords
- image file
- hash value
- chip
- memory
- hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012795 verification Methods 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000002093 peripheral effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
Abstract
本发明提供一种基于安全芯片的安全启动装置,包括MCU、存储器、安全芯片,所述MCU分别与所述存储器和所述安全芯片连接,所述MCU内存储有PB预启动程序、非对称密码算法和哈希算法,与所述安全芯片的SPI接口、I2C或UART接口连接,所述存储器用于存储完整镜像文件,所述安全芯片支持对称密码算法、非对称密码算法和哈希密码算法,并用于存储可信根。另外,本发明还提供一种基于安全芯片的安全启动方法。
Description
技术领域
本发明涉及可信计算技术领域,具体涉及一种基于安全芯片的安全启动装置及方法。
背景技术
在嵌入式系统中,启动过程是系统一切行为的基础,启动过程中的任何错误和疏漏都可能使操作系统进入不可预测的危险状态。如果系统上电到完全启动的这个过程是不可信不安全的,那么在此基础上谈论系统安全是毫无意义的。
现有的嵌入式系统安全问题,大多是通过将TPM作为可信根,在TPM中存储启动实体初始的预期度量值,启动时将实体加载到内存中,通过比较初始预期度量值和当前计算值的一致性,确定启动过程是否可以安全继续。但由于TPM芯片缺乏主动控制能力,而嵌入式系统中的处理器调度能力往往相对较弱,无法进行复杂的调度与分配,难以控制整个信任链的度量与扩展过程。此外,嵌入式设备对成本控制非常严格,大多没有可信平台模块。
发明内容
本发明针对上述问题,有必要提供一种基于安全芯片的安全启动装置及方法,通过安全芯片存储可信根,采用数字签名和完整性验证保证系统的可信启动。
一种基于安全芯片的安全启动装置,包括MCU、存储器、安全芯片,所述MCU分别与所述存储器和所述安全芯片连接,
所述MCU内存储有PB预启动程序、非对称密码算法和哈希算法,与所述安全芯片的SPI接口、I2C或UART接口连接;
所述存储器用于存储完整镜像文件;
所述安全芯片支持对称密码算法、非对称密码算法和哈希密码算法,并用于存储可信根。
进一步地,所述存储器为eMMC或Nand Flash。
一种基于安全芯片的安全启动方法,所述方法包括以下步骤:
S1,将系统启动过程中的引导程序BootLoader、Linux内核、操作系统或文件系统各自的镜像文件对应的可信根预置在安全芯片中;其中,所述各镜像文件可使用同一可信根或不同可信根,所述可信根包括公钥;
S2,对系统启动过程中的所述各个镜像文件采用哈希算法进行哈希计算得到镜像文件的哈希值,然后将所述哈希值用各自公钥对应的私钥进行签名得到数字签名,并将所述数字签名连接到各自镜像文件的头部成为完整镜像,最后将所述完整镜像烧写到存储器中;
S3,设备开机上电,首先由MCU片上固化的PB预启动程序执行系统上电后系统资源的初始化操作;
S4,加载所述存储器从Block0开始存储的引导程序BootLoader镜像文件到MCU的片内RAM,并通过第一可信根对所述BootLoader镜像文件进行完整性验证,如果验证通过,进入步骤S5,否则提示校验失败并退出安全启动;
S5,MCU执行所述BootLoader镜像,初始化所述安全芯片的I2C或UART接口,并将所述存储器中Linux内核镜像文件加载到片内RAM,并通过第二可信根对所述Linux内核镜像文件进行完整性验证,如果验证通过,进入步骤S6,否则提示校验失败并退出安全启动;
S6,MCU执行所述Linux内核镜像,所述Linux内核镜像将所述存储器中操作系统或文件系统的镜像文件加载到片内RAM,并通过第三可信根对所述操作系统或文件系统的镜像文件进行完整性验证,如果验证通过,进入步骤S7,否则提示校验失败并退出安全启动;
S7,MCU执行所述操作系统或文件系统的镜像文件,完成系统的安全启动。
进一步地,所述S4,S5,S6中,所述第一可信根、第二可信根、第三可信根均由MCU通过SPI接口从安全芯片的FLASH中读取。
进一步地,所述S4中,对BootLoader镜像文件进行完整性验证包括:
将存储器中BootLoader镜像通过预置的哈希算法进行哈希计算得到第一哈希值;
用第一可信根中的公钥通过预置的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
进一步地,所述S5中,对Linux内核镜像文件进行完整性验证包括:
将存储器中Linux内核镜像通过I2C或UART接口调用安全芯片的哈希算法进行哈希计算得到第一哈希值;
用Linux内核镜像文件对应的第二可信根中的公钥通过I2C或UART接口调用安全芯片的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
进一步地,所述S6中,对操作系统或文件系统的镜像文件进行完整性验证包括:
将存储器中操作系统或文件系统的镜像通过I2C或UART接口调用安全芯片的哈希算法进行哈希计算得到第一哈希值;
用操作系统或文件系统的镜像文件对应的第三可信根中的公钥通过I2C或UART接口调用安全芯片的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)本发明的可信根存储在安全芯片中,通过依次度量引导程序BootLoader、Linux内核、操作系统或文件系统,保证系统启动过程中加载的每一个镜像文件都是未被篡改过的可信的程序,完成可信启动;
(2)在kernel、操作系统度量过程中采用安全芯片进行解密和哈希操作,减少了ARM中TrustZone两种模式之间的切换;
(3)采用安全芯片存储可信根,具有硬件级别的安全,不可被外界物理探测,安全性高。同时,省去对公钥的校验流程,有效提高启动效率。
附图说明
图1为本发明提供的安全启动装置的系统框图;
图2为本发明的安全启动方法流程图;
图3为本发明的完整镜像结构示意图;
图4为本发明的BootLoader镜像文件完整性验证流程图;
图5为本发明的Linux内核镜像文件完整性验证流程图;
图6为本发明的操作系统或文件系统的镜像文件完整性验证流程图。
具体实施方式
为了使本发明能够更加清楚,下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
如图1所示,一种基于安全芯片的安全启动装置,包括MCU、存储器、安全芯片。所述MCU分别与所述存储器和所述安全芯片连接,所述MCU内存储有PB预启动程序、非对称密码算法和哈希算法,与所述安全芯片的SPI接口、I2C或UART接口连接;所述存储器用于存储完整镜像文件;所述存储器为eMMC或Nand Flash,所述安全芯片支持对称密码算法、非对称密码算法和哈希密码算法,并用于存储可信根。
如图2所示,一种基于安全芯片的安全启动方法,所述方法包括以下步骤:
S1,将系统启动过程中的引导程序BootLoader、Linux内核、操作系统或文件系统各自的镜像文件对应的可信根预置在安全芯片中;其中,所述各镜像文件可使用同一可信根或不同可信根,所述可信根包括公钥;
S2,对系统启动过程中的所述各个镜像文件采用哈希算法进行哈希计算得到镜像文件的哈希值,然后将所述哈希值用各自公钥对应的私钥进行签名得到数字签名,并将所述数字签名连接到各自镜像文件的头部成为完整镜像,所述完整镜像结构示意图如图3所示,最后将所述完整镜像烧写到存储器中;
S3,设备开机上电,首先由MCU片上固化的PB预启动程序执行系统上电后系统资源的初始化操作;
S4,加载所述存储器从Block0开始存储的引导程序BootLoader镜像文件到MCU的片内RAM,并通过第一可信根对所述BootLoader镜像文件进行完整性验证,如果验证通过,进入步骤S5,否则提示校验失败并退出安全启动;
S5,MCU执行所述BootLoader镜像,初始化所述安全芯片的I2C或UART接口,并将所述存储器中Linux内核镜像文件加载到片内RAM,并通过第二可信根对所述Linux内核镜像文件进行完整性验证,如果验证通过,进入步骤S6,否则提示校验失败并退出安全启动;
S6,MCU执行所述Linux内核镜像,所述Linux内核镜像将所述存储器中操作系统或文件系统的镜像文件加载到片内RAM,并通过第三可信根对所述操作系统或文件系统的镜像文件进行完整性验证,如果验证通过,进入步骤S7,否则提示校验失败并退出安全启动;
S7,MCU执行所述操作系统或文件系统的镜像文件,完成系统的安全启动。
所述S4,S5,S6中,所述第一可信根、第二可信根、第三可信根均由MCU通过SPI接口从安全芯片的FLASH中读取。
如图4所示,所述S4中,对BootLoader镜像文件进行完整性验证包括:
将存储器中BootLoader镜像通过预置的哈希算法进行哈希计算得到第一哈希值;
用第一可信根中的公钥通过预置的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
如图5所示,所述S5中,对Linux内核镜像文件进行完整性验证包括:
将存储器中Linux内核镜像通过I2C或UART接口调用安全芯片的哈希算法进行哈希计算得到第一哈希值;
用Linux内核镜像文件对应的第二可信根中的公钥通过I2C或UART接口调用安全芯片的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
如图6所示,所述S6中,对操作系统或文件系统的镜像文件进行完整性验证包括 :
将存储器中操作系统或文件系统的镜像通过I2C或UART接口调用安全芯片的哈希算法进行哈希计算得到第一哈希值;
用操作系统或文件系统的镜像文件对应的第三可信根中的公钥通过I2C或UART接口调用安全芯片的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
本发明的可信根存储在安全芯片中,通过依次度量引导程序BootLoader、Linux内核、操作系统或文件系统,保证系统启动过程中加载的每一个镜像文件都是未被篡改过的可信的程序,完成可信启动。在kernel、操作系统度量过程中采用安全芯片进行解密和哈希操作,减少了ARM中TrustZone两种模式之间的切换。同时采用安全芯片存储可信根,具有硬件级别的安全,不可被外界物理探测,安全性高。同时,省去对公钥的校验流程,有效提高启动效率。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员在不脱离本发明技术方案的精神下,对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (7)
1.一种基于安全芯片的安全启动方法,其特征在于:所述方法包括以下步骤
S1,将系统启动过程中的引导程序BootLoader、Linux内核、操作系统或文件系统各自的镜像文件对应的可信根预置在安全芯片中;其中,所述各镜像文件可使用同一可信根或不同可信根,所述可信根包括公钥;
S2,对系统启动过程中的所述各个镜像文件采用哈希算法进行哈希计算得到镜像文件的哈希值,然后将所述哈希值用各自公钥对应的私钥进行签名得到数字签名,并将所述数字签名连接到各自镜像文件的头部成为完整镜像,最后将所述完整镜像烧写到存储器中;
S3,设备开机上电,首先由MCU片上固化的PB预启动程序执行系统上电后系统资源的初始化操作;
S4,加载所述存储器从Block0开始存储的引导程序BootLoader镜像文件到MCU的片内RAM,并通过第一可信根对所述BootLoader镜像文件进行完整性验证,如果验证通过,进入步骤S5,否则提示校验失败并退出安全启动;
S5,MCU执行所述BootLoader镜像,初始化所述安全芯片的I2C或UART接口,并将所述存储器中Linux内核镜像文件加载到片内RAM,并通过第二可信根对所述Linux内核镜像文件进行完整性验证,如果验证通过,进入步骤S6,否则提示校验失败并退出安全启动;
S6,MCU执行所述Linux内核镜像,所述Linux内核镜像将所述存储器中操作系统或文件系统的镜像文件加载到片内RAM,并通过第三可信根对所述操作系统或文件系统的镜像文件进行完整性验证,如果验证通过,进入步骤S7,否则提示校验失败并退出安全启动;
S7,MCU执行所述操作系统或文件系统的镜像文件,完成系统的安全启动。
2.根据权利要求1所述的安全启动方法,其特征在于:所述S4,S5,S6中,所述第一可信根、第二可信根、第三可信根均由MCU通过SPI接口从安全芯片的FLASH中读取。
3.根据权利要求1所述的安全启动方法,其特征在于:所述S4中,对BootLoader镜像文件进行完整性验证包括
将存储器中BootLoader镜像通过预置的哈希算法进行哈希计算得到第一哈希值;
用第一可信根中的公钥通过预置的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
4.根据权利要求1所述的安全启动方法,其特征在于:所述S5中,对Linux内核镜像文件进行完整性验证包括
将存储器中Linux内核镜像通过I2C或UART接口调用安全芯片的哈希算法进行哈希计算得到第一哈希值;
用Linux内核镜像文件对应的第二可信根中的公钥通过I2C或UART接口调用安全芯片的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
5.根据权利要求1所述的安全启动方法,其特征在于:所述S6中,对操作系统或文件系统的镜像文件进行完整性验证包括
将存储器中操作系统或文件系统的镜像通过I2C或UART接口调用安全芯片的哈希算法进行哈希计算得到第一哈希值;
用操作系统或文件系统的镜像文件对应的第三可信根中的公钥通过I2C或UART接口调用安全芯片的解密算法解密完整镜像文件中的数字签名得到镜像文件的第二哈希值;
对比第一哈希值和第二哈希值,如果两者相同,完整性校验通过,否则完整性校验不通过。
6.一种基于安全芯片的安全启动装置,包括
MCU、存储器、安全芯片,所述MCU分别与所述存储器和所述安全芯片连接,其特征在于,
所述MCU内存储有PB预启动程序、非对称密码算法和哈希算法,与所述安全芯片的SPI接口、I2C或UART接口连接;
所述存储器用于存储完整镜像文件;
所述安全芯片支持对称密码算法、非对称密码算法和哈希密码算法,并用于存储可信根;
用于系统启动时,执行权利要求1-5任一项所述的基于安全芯片的安全启动方法。
7.根据权利要求6所述的安全启动装置,其特征在于:所述存储器为eMMC或NandFlash。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910380189.4A CN110110526B (zh) | 2019-05-08 | 2019-05-08 | 一种基于安全芯片的安全启动装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910380189.4A CN110110526B (zh) | 2019-05-08 | 2019-05-08 | 一种基于安全芯片的安全启动装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110110526A CN110110526A (zh) | 2019-08-09 |
CN110110526B true CN110110526B (zh) | 2020-11-06 |
Family
ID=67488829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910380189.4A Active CN110110526B (zh) | 2019-05-08 | 2019-05-08 | 一种基于安全芯片的安全启动装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110110526B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609536B (zh) * | 2019-08-29 | 2020-11-10 | 青岛海尔科技有限公司 | 用于控制家电设备中模块上电的方法及装置、家电设备 |
CN110555309A (zh) * | 2019-09-10 | 2019-12-10 | 深圳市英博超算科技有限公司 | 启动方法、装置、终端以及计算机可读存储介质 |
CN111177709A (zh) * | 2019-12-31 | 2020-05-19 | 全球能源互联网研究院有限公司 | 一种终端可信组件的执行方法、装置及计算机设备 |
CN111241548B (zh) * | 2020-01-07 | 2022-09-09 | 飞腾信息技术有限公司 | 计算机启动方法 |
CN113536387A (zh) * | 2020-04-15 | 2021-10-22 | 青岛海信移动通信技术股份有限公司 | 一种检测内核数据完整性的终端和方法 |
CN111695111A (zh) * | 2020-06-15 | 2020-09-22 | 浙江中控技术股份有限公司 | 固件程序的安全启动方法及装置 |
CN112260839B (zh) * | 2020-10-20 | 2022-11-22 | 河北素数信息安全有限公司 | 一种基于嵌入式技术的微型传输加密装置及其启动方法 |
CN113065140B (zh) * | 2021-06-02 | 2021-09-24 | 南方电网数字电网研究院有限公司 | 一种芯片化控制保护装置内嵌安全防护系统及方法 |
CN117633906A (zh) * | 2023-11-14 | 2024-03-01 | 国网上海能源互联网研究院有限公司 | 一种台区智能融合终端有效性的可信验证方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287999A (zh) * | 2017-01-10 | 2018-07-17 | 厦门雅迅网络股份有限公司 | 一种基于TrustZone的系统可信启动方法 |
CN108804927A (zh) * | 2018-06-15 | 2018-11-13 | 郑州信大壹密科技有限公司 | 基于国产自主双系统架构的可信计算机平台 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324912B (zh) * | 2008-07-30 | 2010-06-23 | 中国航天科工集团第二研究院七○六所 | 一种可信安全计算机 |
CN102136043B (zh) * | 2010-01-22 | 2013-01-23 | 中国长城计算机深圳股份有限公司 | 一种计算机系统及其度量方法 |
CN102063942B (zh) * | 2010-10-29 | 2013-12-04 | 北京工业大学 | 一种无线供电的可信无线存储设备及其应用方法 |
US20190073479A1 (en) * | 2016-03-10 | 2019-03-07 | Nokia Solutions And Networks Oy | Trust failure alert in communications |
US10395039B2 (en) * | 2016-09-12 | 2019-08-27 | Dell Products, L.P. | Customer-owned trust of device firmware |
CN108399339B (zh) * | 2018-02-12 | 2021-09-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
-
2019
- 2019-05-08 CN CN201910380189.4A patent/CN110110526B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287999A (zh) * | 2017-01-10 | 2018-07-17 | 厦门雅迅网络股份有限公司 | 一种基于TrustZone的系统可信启动方法 |
CN108804927A (zh) * | 2018-06-15 | 2018-11-13 | 郑州信大壹密科技有限公司 | 基于国产自主双系统架构的可信计算机平台 |
Also Published As
Publication number | Publication date |
---|---|
CN110110526A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110110526B (zh) | 一种基于安全芯片的安全启动装置及方法 | |
CN108399339B (zh) | 一种基于安全芯片的可信启动方法 | |
US10032030B2 (en) | Trusted kernel starting method and apparatus | |
US9755831B2 (en) | Key extraction during secure boot | |
EP2962241B1 (en) | Continuation of trust for platform boot firmware | |
CN109669734B (zh) | 用于启动设备的方法和装置 | |
US7921286B2 (en) | Computer initialization for secure kernel | |
US11379586B2 (en) | Measurement methods, devices and systems based on trusted high-speed encryption card | |
KR101867789B1 (ko) | 보안 배터리 인증 | |
CN104200165B (zh) | 一种基于国产cpu的主动可信度量方法 | |
US10678924B2 (en) | Hardware-based software-resilient user privacy exploiting ephemeral data retention of volatile memory | |
US11379588B2 (en) | System validation by hardware root of trust (HRoT) device and system management mode (SMM) | |
CN110875819B (zh) | 密码运算处理方法、装置及系统 | |
US11423150B2 (en) | System and method for booting processors with encrypted boot image | |
US11068599B2 (en) | Secure initialization using embedded controller (EC) root of trust | |
US10185633B2 (en) | Processor state integrity protection using hash verification | |
US20220067162A1 (en) | Update signals | |
CN107480535A (zh) | 一种两路服务器的可信硬件层设计方法及装置 | |
CN115470477A (zh) | 智能终端及其处理器系统、可信执行方法 | |
CN112149190A (zh) | 用于非易失性存储器模块的热启动攻击缓解 | |
Dave et al. | Care: Lightweight attack resilient secure boot architecture with onboard recovery for risc-v based soc | |
CN100375027C (zh) | 一种快速启动tcpa/tcg安全计算机的系统和方法 | |
CN110543769A (zh) | 一种基于加密tf卡的可信启动方法 | |
US10572668B2 (en) | Operational verification | |
CN112307481A (zh) | 一种系统可信启动方法、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A secure startup device and method based on a security chip Granted publication date: 20201106 Pledgee: Bank of Zhengzhou Co.,Ltd. Zhongyuan Science and Technology City Sub branch Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2024980007004 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |