CN114065218B - 一种SoC系统芯片安全启动方法 - Google Patents

一种SoC系统芯片安全启动方法 Download PDF

Info

Publication number
CN114065218B
CN114065218B CN202111408219.1A CN202111408219A CN114065218B CN 114065218 B CN114065218 B CN 114065218B CN 202111408219 A CN202111408219 A CN 202111408219A CN 114065218 B CN114065218 B CN 114065218B
Authority
CN
China
Prior art keywords
public key
hash value
firmware
bin
otp
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
Application number
CN202111408219.1A
Other languages
English (en)
Other versions
CN114065218A (zh
Inventor
刘树伟
李智全
薛倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Fangcun Microelectronic Technology Co ltd
Shandong Fangcun Microelectronics Technology Co ltd
Original Assignee
Qingdao Fangcun Microelectronic Technology Co ltd
Shandong Fangcun Microelectronics Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Fangcun Microelectronic Technology Co ltd, Shandong Fangcun Microelectronics Technology Co ltd filed Critical Qingdao Fangcun Microelectronic Technology Co ltd
Priority to CN202111408219.1A priority Critical patent/CN114065218B/zh
Publication of CN114065218A publication Critical patent/CN114065218A/zh
Application granted granted Critical
Publication of CN114065218B publication Critical patent/CN114065218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

一种SoC系统芯片安全启动方法,包括:读取im.bin及OTP中信息到SRAM中;根据OTP中已经撤销公钥编号,验证所述im.bin中所选公钥编号是否已经被撤销;计算im.bin中公钥表的杂凑值,并与OTP中公钥表杂凑值进行比对;计算im.bin中[对称算法类型,固件的杂凑值]范围的杂凑值,并与im.bin中上述数据的杂凑值进行对比;对im.bin中上述数据的杂凑值就行验签;对固件进行验证,通过OTP中的对称密钥对固件进行解密,然后计算固件的杂凑值,并与im.bin中固件的杂凑值进行对比。本发明具有高扩展性,OTP中存储的是公钥表的哈希值,而不是公钥表,解决了公钥固定且无法应对密钥泄露的问题。

Description

一种SoC系统芯片安全启动方法
技术领域
本发明公开一种SoC系统芯片安全启动方法,属于芯片安全启动的技术领域。
背景技术
SoC称为系统级芯片,其中包含完整系统并有嵌入软件的全部内容。在Soc的工作过程中,启动安全是后续所有安全机制的保障,若Soc的安全启动存在漏洞,则会产生严重的安全问题。
现有支持安全启动的SoC,一般采用OTP直接存储公钥,存在公钥固定、无法防止密钥泄露风险等缺陷。
现有Soc的安全启动方案都是基于密码算法,包括对称算法、杂凑算法、公钥算法,上位机工具在烧写固件前会对固件做以下处理:1)使用杂凑算法生成固件的杂凑值;2)使用对称算法对固件进行加密;3)使用公钥算法对固件进行签名。并将固件杂凑值、解密密钥及公钥烧写到OTP中。
启动时,Soc会验证固件的合法性,包括:1)从OTP读取公钥,对固件的杂凑值进行验签;2)从OTP读取解密密钥,对固件进行解密;3)使用杂凑算法计算明文固件的杂凑值,并与OTP中杂凑值进行对比。
上述安全启动机制存在以下缺陷:
1)公钥长度较长,比如SM2算法公钥为512bits,RSA2048算法公钥为2048bit,但OTP存储空间普遍无法存储多个公钥;
2)若在OTP只存储了一个公钥,无法应对所对应私钥泄露的风险。
除此之外,中国专利文献:CN110765438A一种高性能密码卡及其工作方法,公开了在固件完整性校验、密码卡数据完整性校验时,都是通过将结果和存储的杂凑值做对比,比对一致则校验成功。但是,文献所解决的技术问题是:针对缺乏毁钥机制,提高密钥存储的安全性等特点进行解决,与本发明所述的安全启动的问题不同。
中国专利文献CN 111814208 A,解决安全启动的方案为:本方法通过内置的硬件检测模块追踪安全启动时,软件的执行顺序;在检测到软件执行顺序不正确时,通过存储器权限控制模块禁止软件对存储器的读写或执行权限,令软件无法继续执行,安全启动流程终止。并未提及本发明所述的方法。
中国专利文献:CN 112784280 A公开一种SoC芯片安全设计方法及硬件平台,文中安全管控是通过加密和数字签名的方式实现对引导程序、操作系统及应用程序的验证进行实现的:若验证成功,镜像可信任,将镜像加载并执行启动;若验证失败,镜像已被篡改,启动过程终止。利用加密和数字签名的方式实现对引导程序、操作系统及应用程序的验证,保证了各固件、软件的安全可信并对密钥进行安全存储,提升了安全性。但是依然与本发明存在实质性的技术区别。
发明内容
针对现有技术的问题,本发明公开一种SoC系统芯片安全启动方法。本发明不再在OTP中直接存储公钥,而是存储多个公钥(公钥表)的杂凑值,将公钥表、此处所用公钥编号、已经撤销的公钥编号存储在其他大容量介质中,从而解决无法存储多个公钥及应对密钥泄露问题。
技术术语解释:
1、SoC:是System on Chip的简称,也即片上系统。
2、OTP:是One Time Programmable的简称,一次性可烧写存储器,该存储器只能烧写一次,即相关bit只能从1变为0,不能从0变为1。
3、bootrom(或Boot ROM):是嵌入处理器芯片内的一小块掩模ROM或写保护闪存,它包含处理器在上电或复位时执行的第一条指令。
4、im.bin:在本文中,生成公钥算法密钥对、生成公钥表及公钥表的密钥对、生成描述文件的简称。
5、SRAM:是Static Random-Access Memory的简称,静态随机存取存储器是随机存取存储器的一种。
本发明详细的技术方案如下:
一种SoC系统芯片安全启动方法,其特征在于,包括:
1)读取im.bin及OTP中信息到SRAM中;所述读取整个im.bin,包括附图1中的所有信息;所述OTP中信息包括:已撤销公钥编号、公钥表杂凑值和固件解密密钥;
2)根据OTP中已经撤销公钥编号,验证所述im.bin中所选公钥编号是否已经被撤销:
若公钥已经撤销,则终止启动流程;
若公钥未撤销,则进入步骤3);
3)计算im.bin中公钥表的杂凑值,并与OTP中公钥表杂凑值进行比对:
若一致,则说明im.bin中的公钥表是合法的,杂凑算法的选择依赖于im.bin中杂凑算法类型,直接进行步骤4);
若不一致,则im.bin验证失败,终止启动流程;
4)计算im.bin中[对称算法类型,固件的杂凑值]范围的杂凑值,即计算范围从对称算法类型开始,到固件的杂凑值结束,这一块数据会作为一个整体,计算出一个杂凑值;并与im.bin中上述数据的杂凑值进行对比:
若一致,则进行步骤5)验签,杂凑算法的选择依赖于im.bin中杂凑算法类型;
若不一致,则终止启动流程;
5)对im.bin中上述数据的杂凑值就行验签,使用非对称密码算法进行验签,属于标准的密码算法应用:
若通过验签,则说明im.bin合法,进行步骤6),验签算法及所用公钥的选择依赖于im.bin中公钥算法类型与所选的公钥编号;
若不通过验签,则终止启动流程;
6)对固件进行验证,通过OTP中的对称密钥对固件进行解密,然后计算固件的杂凑值,并与im.bin中固件的杂凑值进行对比:
若一致,则固件合法,Soc从bootrom跳转到固件执行,对称算法和杂凑算法的选择依赖于im.bin中的对称算法类型及杂凑算法类型;
若不一致,则终止启动流程。
上述启动方法应用于:上位机工具及Soc系统芯片的bootrom。
所述上位机工具用于:生成公钥算法密钥对、生成公钥表及公钥表的密钥对、生成描述文件。所述描述文件如图1所示,为了后续描述方便,将描述文件称为im.bin。
本发明的技术优势在于:
1、本发明具有高扩展性,OTP中存储的是公钥表的哈希值,而不是公钥表,解决了公钥固定且无法应对密钥泄露的问题。
2、本发明具有高自主性,可以根据场景的不同,自由选择使用国密算法套件/国际算法套件。
3、本发明高易用性,只要SoC系统芯片具备OTP及密码算法引擎,即可实现本发明所述方案。
附图说明
图1是im.bin的结构图;
图2是bootrom在引导固件时的流程图。
具体实施方式
下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
实施例1、
一种SoC系统芯片安全启动方法,包括:
1)读取im.bin及OTP中信息到SRAM中;所述读取整个im.bin,包括附图1中的所有信息;所述OTP中信息包括:已撤销公钥编号、公钥表杂凑值和固件解密密钥;
2)根据OTP中已经撤销公钥编号,验证所述im.bin中所选公钥编号是否已经被撤销:
若公钥已经撤销,则终止启动流程;
若公钥未撤销,则进入步骤3);
3)计算im.bin中公钥表的杂凑值,并与OTP中公钥表杂凑值进行比对:
若一致,则说明im.bin中的公钥表是合法的,杂凑算法的选择依赖于im.bin中杂凑算法类型,直接进行步骤4);
若不一致,则im.bin验证失败,终止启动流程;
4)计算im.bin中[对称算法类型,固件的杂凑值]范围的杂凑值,即计算范围从对称算法类型开始,到固件的杂凑值结束,这一块数据会作为一个整体,计算出一个杂凑值;并与im.bin中上述数据的杂凑值进行对比:
若一致,则进行步骤5)验签,杂凑算法的选择依赖于im.bin中杂凑算法类型;
若不一致,则终止启动流程;
5)对im.bin中上述数据的杂凑值就行验签,使用非对称密码算法进行验签,属于标准的密码算法应用:
若通过验签,则说明im.bin合法,进行步骤6),验签算法及所用公钥的选择依赖于im.bin中公钥算法类型与所选的公钥编号;
若不通过验签,则终止启动流程;
6)对固件进行验证,通过OTP中的对称密钥对固件进行解密,然后计算固件的杂凑值,并与im.bin中固件的杂凑值进行对比:
若一致,则固件合法,Soc从bootrom跳转到固件执行,对称算法和杂凑算法的选择依赖于im.bin中的对称算法类型及杂凑算法类型;
若不一致,则终止启动流程。
实施例2、
如实施例1所述启动方法应用于:上位机工具及Soc系统芯片的bootrom。
所述上位机工具用于:生成公钥算法密钥对、生成公钥表及公钥表的密钥对、生成描述文件。所述描述文件如图1所示,为了后续描述方便,将描述文件称为im.bin。

Claims (2)

1.一种SoC系统芯片安全启动方法,其特征在于,包括:
1)读取im.bin及OTP中信息到SRAM中;所述OTP中信息包括:已撤销公钥编号、公钥表杂凑值和固件解密密钥;
2)根据OTP中已经撤销公钥编号,验证所述im.bin中所选公钥编号是否已经被撤销:
若公钥已经撤销,则终止启动流程;
若公钥未撤销,则进入步骤3);
3)计算im.bin中公钥表的杂凑值,并与OTP中公钥表杂凑值进行比对:
若一致,则说明im.bin中的公钥表是合法的,直接进行步骤4);
若不一致,则im.bin验证失败,终止启动流程;
4)计算im.bin中[对称算法类型,固件的杂凑值]范围的杂凑值;并与im.bin中上述数据的杂凑值进行对比:
若一致,则进行步骤5)验签;
若不一致,则终止启动流程;
5)对im.bin中上述数据的杂凑值就行验签:
若通过验签,则说明im.bin合法,进行步骤6);
若不通过验签,则终止启动流程;
6)对固件进行验证,通过OTP中的对称密钥对固件进行解密,然后计算固件的杂凑值,并与im.bin中固件的杂凑值进行对比:
若一致,则固件合法,Soc从bootrom跳转到固件执行;
若不一致,则终止启动流程。
2.如权利要求1所述启动方法应用方法,其特征在于,包括应用在上位机工具及Soc系统芯片的bootrom。
CN202111408219.1A 2021-11-19 2021-11-19 一种SoC系统芯片安全启动方法 Active CN114065218B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111408219.1A CN114065218B (zh) 2021-11-19 2021-11-19 一种SoC系统芯片安全启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111408219.1A CN114065218B (zh) 2021-11-19 2021-11-19 一种SoC系统芯片安全启动方法

Publications (2)

Publication Number Publication Date
CN114065218A CN114065218A (zh) 2022-02-18
CN114065218B true CN114065218B (zh) 2024-04-12

Family

ID=80276052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111408219.1A Active CN114065218B (zh) 2021-11-19 2021-11-19 一种SoC系统芯片安全启动方法

Country Status (1)

Country Link
CN (1) CN114065218B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180059742A (ko) * 2018-05-28 2018-06-05 (주)이더블유비엠 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
CN108347332A (zh) * 2017-06-06 2018-07-31 清华大学 验证固件签名的方法及装置
KR20200020627A (ko) * 2018-08-16 2020-02-26 경희대학교 산학협력단 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 부트 방법
CN112035152A (zh) * 2020-08-24 2020-12-04 成都三零嘉微电子有限公司 一种SoC芯片固件升级的安全处理系统及方法
CN112346776A (zh) * 2020-11-04 2021-02-09 浙江大华技术股份有限公司 固件的打包、安全启动方法及装置、存储介质及电子设备
CN112784280A (zh) * 2021-01-12 2021-05-11 苏州浪潮智能科技有限公司 一种SoC芯片安全设计方法及硬件平台
CN112784278A (zh) * 2020-12-31 2021-05-11 科东(广州)软件科技有限公司 一种计算机系统的可信启动方法、装置及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812854B2 (en) * 2009-10-13 2014-08-19 Google Inc. Firmware verified boot
JP2015036847A (ja) * 2013-08-12 2015-02-23 株式会社東芝 半導体装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108347332A (zh) * 2017-06-06 2018-07-31 清华大学 验证固件签名的方法及装置
KR20180059742A (ko) * 2018-05-28 2018-06-05 (주)이더블유비엠 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
KR20200020627A (ko) * 2018-08-16 2020-02-26 경희대학교 산학협력단 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 부트 방법
CN112035152A (zh) * 2020-08-24 2020-12-04 成都三零嘉微电子有限公司 一种SoC芯片固件升级的安全处理系统及方法
CN112346776A (zh) * 2020-11-04 2021-02-09 浙江大华技术股份有限公司 固件的打包、安全启动方法及装置、存储介质及电子设备
CN112784278A (zh) * 2020-12-31 2021-05-11 科东(广州)软件科技有限公司 一种计算机系统的可信启动方法、装置及设备
CN112784280A (zh) * 2021-01-12 2021-05-11 苏州浪潮智能科技有限公司 一种SoC芯片安全设计方法及硬件平台

Also Published As

Publication number Publication date
CN114065218A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
CN109313690B (zh) 自包含的加密引导策略验证
US11562075B2 (en) Secure booting method, apparatus, device for embedded program, and storage medium
US8443203B2 (en) Secure boot method and semiconductor memory system using the method
CN111723383B (zh) 数据存储、验证方法及装置
US9443111B2 (en) Device security using an encrypted keystore data structure
EP3002698B1 (en) Semiconductor device
US11003781B2 (en) Root key processing method and associated device
US7461268B2 (en) E-fuses for storing security version data
US20050021968A1 (en) Method for performing a trusted firmware/bios update
US20090193211A1 (en) Software authentication for computer systems
BRPI0822431B1 (pt) Sistema de segurança de dados, método para segurança de dados e meio lido porcomputador
CN109445705B (zh) 固件认证方法及固态硬盘
US20210367781A1 (en) Method and system for accelerating verification procedure for image file
CN111008390A (zh) 根密钥生成保护方法、装置、固态硬盘及存储介质
KR101988404B1 (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
US8499357B1 (en) Signing a library file to verify a callback function
CN114065218B (zh) 一种SoC系统芯片安全启动方法
CN115062330B (zh) 基于tpm的智能密码钥匙密码应用接口的实现方法
KR20180007717A (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
CN114995918A (zh) 基板管理控制器的启动方法、配置方法、装置及电子设备
CN113486360B (zh) 基于risc-v的安全启动方法及系统
WO2016024967A1 (en) Secure non-volatile random access memory
CN114448794A (zh) 一种基于芯片可信根对固件进行安全升级的方法及装置
CN106611108B (zh) 一种光盘版权保护方法
CN113032739A (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