CN111611588B - 安全启动rotpk写入OTP的方法 - Google Patents
安全启动rotpk写入OTP的方法 Download PDFInfo
- Publication number
- CN111611588B CN111611588B CN202010412790.XA CN202010412790A CN111611588B CN 111611588 B CN111611588 B CN 111611588B CN 202010412790 A CN202010412790 A CN 202010412790A CN 111611588 B CN111611588 B CN 111611588B
- Authority
- CN
- China
- Prior art keywords
- rotpk
- otp
- root certificate
- hash
- writing
- 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
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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Abstract
本发明公开了一种安全启动rotpk写入OTP的方法,包括:烧写固件阶段,通过flash烧写工具将安全固件写入flash中;写入OTP阶段,解析所述flash中所述安全固件的根证书的内容,提取rotpk,得出所述rotpk的hash值,将所述rotpk或者所述rotpk的所述hash值其中的一项写入OTP中。本发明的实施例至少具有如下有益效果:通过获取从flash中的根证书中获取rotpk,不需要特殊的硬件设计,降低芯片设计成本低;不需要额外的生产工位,提高生产效率,降低生产成本;不需要PC端OTP烧写工具,减少开发时间,降低开发成本。
Description
技术领域
本发明涉及安全启动技术领域,特别涉及一种安全启动rotpk写入OTP的方法。
背景技术
智能终端已经广泛使用在人们的日常生活中。为确保智能终端的安全运行,安全启动必不可少。安全启动中不可忽略的一点就是可信根的公钥(Root of Trust PublicKey,rotpk)可信性。业界广泛使用的措施就是将rotpk或rotpk hash写入OTP(One TimeProgram),OTP的硬件特性是一旦写入无法更改,保证了rotpk与rotpk hash的可信性。
目前业界烧录rotpk hash到OTP由芯片厂商烧写或在PC端通过OTP工具烧写。前者,烧写OTP的芯片只能提供给固定的设备厂商,市场风险很大;后者,开发PC端OTP烧写工具,新增生产工位,需要产线人工操作,生产成本高昂。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种安全启动rotpk写入OTP的方法,能够低成本、快捷的写入rotpk。
根据本发明的第一方面实施例的安全启动rotpk写入OTP的方法,包括:烧写固件阶段,通过flash烧写工具将安全固件写入flash中;写入OTP阶段,解析所述flash中所述安全固件的根证书中的内容,提取rotpk,得出所述rotpk的hash值,将所述rotpk或者所述rotpk的所述hash值其中的一项写入OTP中。
根据本发明实施例的安全启动rotpk写入OTP的方法,至少具有如下有益效果:通过获取从flash中的根证书中获取rotpk,不需要特殊的硬件设计,降低芯片设计成本低;不需要额外的生产工位,提高生产效率,降低生产成本;不需要PC端OTP烧写工具,减少开发时间,降低开发成本。
根据本发明的一些实施例,所述写入OTP阶段包括:解析所述flash上第一启动镜像的根证书,提取rotpk,对所述第一启动镜像的根证书进行验证;根据所述第一启动镜像的根证书的验证结果,对rotpk进行哈希计算,得到所述rotpk的hash值,将所述rotpk或者所述rotpk的所述hash值其中的一项写入到OTP中对应的区域。
根据本发明的一些实施例,所述写入OTP阶段还包括:若所述第一启动镜像的根证书的验证结果为不通过,终止所述写入OTP阶段,并给出相应的提示。
根据本发明的一些实施例,所述对所述第一启动镜像的根证书进行验证的方法包括:根据rotpk对所述第一启动镜像的根证书的数据签名进行解密,得到解密哈希文本;对所述第一启动镜像的根证书的内容进行哈希计算,得到计算哈希文本,其中所述哈希计算的方法为根证书的数字签名生成方法中对应的哈希计算的方法;比对所述解密哈希文本及所述计算哈希文本,得到验证结果。
根据本发明的一些实施例,所述根据rotpk对所述第一启动镜像的根证书的数据签名进行解密的非对称加解密包括:RSA,ECC及SM2。
根据本发明的一些实施例,所述哈希计算的方法包括:SHA256、SHA384及SHA512。
根据本发明的一些实施例,所述根证书中的内容中包括:版本、日期、发表者信息及公钥。
根据本发明的一些实施例,所述根证书中的内容中还包括:镜像hash值及用于验证下一阶段镜像的子公钥。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的方法步骤的示意图;
图2为本发明实施例中写入OTP阶段的步骤的示意图;
图3为本发明实施例中验证根证书的过程;
图4为本发明实施例的证书内容示意图;
图5为本发明实施例的第一启动镜像及其证书示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
参照图1,本发明的实施例中,生产阶段中,flash烧写工具将安全固件写入芯片的flash中。安全固件中包括rotpk数据,该数据以一定格式存在于flash的根证书中。在生产阶段安全固件写入后,解析flash上的安全固件中的根证书内容,提取rotpk数据,计算出rotpk对应的hash(哈希)值,将该rotpk或该rotpk中的hash值其中一项写入OTP中,完成rotpk的写入。本发明的一些实施例中,仅将rotpk写入OTP中,此时不用计算该rotpk对应的hash值;在本发明的另一些实施例中,则计算该rotpk对应的hash值,并将hash值写入OTP中。
参照图2,在本发明的一些实施例中,在写入OTP阶段还包括对根证书的数字签名的验证,包括以下步骤:首先,解析flash上安全固件中的根证书上内容,提取出rotpk;接着,根据rotpk对根证书中的数字签名进行验证,判断是否为合法的根证书,得到根证书的验证结果;然后根据根证书的验证结果,计算rotpk对应的hash值,并将hash值写入OTP中,并将该rotpk或该rotpk的hash值的其中一项写入OTP中。本实施例的哈希计算方法,可以是,但不仅限于SHA256,还包括其他如SHA384、SHA512等hash算法。
在本发明的一些实施例中,对根证书的验证过程参照图3,使用rotpk对根证书的数字签名进行解密计算,获得解密哈希文本HashTextA;使用与数字签名时同样的哈希算法,对根证书的内容进行哈希计算,获得计算哈希文本HashTextB;比对HashTextA及HashTextB,判断两者是否一致。若一致,则验证通过,进入下一步程序,即,计算rotpk的hash值,将该rotpk或其hash值写入到OTP中对应的区域。若不一致,则验证失败(即不通过),则停止写入OTP,并给出相应的提示。
本发明的实施例中,flash烧写工具烧写安全固件到flash中,安全固件会包含镜像Image与对应的证书certificate。证书格式参照图4,通常包括:版本、日期、发表者信息、公钥(Public Key)等相关信,其中根证书的公钥即为rotpk。将此证书信息进行哈希算法计算得到一个证书的哈希值hash text,然后将证书哈希值用私匙(Private Key)进行签名,得到数字签名。证书数字签名与证书信息一起组成完整的证书,通过此证书来验证镜像Image的完整性。在本发明的实施例中,对数字签名的非对称加解密算法,不仅限于RSA,还包括其他如ECC、SM2等。
通过flash烧写工具将安全固件烧入flash之后,flash上会包含启动过程中涉及的各个镜像及其证书。图5展示了多个启动镜像下,bootloader0(BL0)及其证书在Flash上的情况,其中BL0是设备上电后第一个启动的镜像,其证书由rotpk对应的私钥进行签名,在BL0的证书中包含了公钥rotpk。证书中还包括镜像Image的hash值(BL0对应的镜像Image的hash在图5中表示为BL0 Hash)、用于验证下一阶段镜像的子公钥(Sub Public key)等等。安全固件写入成功后,提取flash上第一启动镜像BL0的证书中的rotpk,基于此rotpk校验BL0证书。BL0证书内容,除数字签名以外部分进行哈希计算,得到计算的哈希值HashA,此时采用的哈希计算方法与生成数字签名时所使用的哈希计算方法相同,如生成数字签名时使用的是SHA256算法,则此时也使用SHA256算法。对BL0证书进行解密,得到解密的哈希值HashB。计算的哈希值HashA与解密的哈希值HashB进行比对,判断是否一致,一致则认为校验通过。如果校验通过,将对rotpk进行SHA256运算,得到rotpk的hash值,然后将此hash值写入到OTP中对应的区域;如校验不通过,表明BL0证书内容出错,终止写入OTP并向flash工具发出相应的提示。在本发明的另一些实施例中,校验通过直接则将rotpk的值写入OTP。显然,在本发明的实施例中,对rotpk的哈希计算方法,并不限于SHA256,也可以采用其它如SHA384、SHA512等hash算法。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所述技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (7)
1.一种安全启动rotpk写入OTP的方法,其特征在于,包括:
烧写固件阶段,通过flash烧写工具将安全固件写入flash中;
写入OTP阶段,解析所述flash中所述安全固件的根证书的内容,提取rotpk,得出所述rotpk的hash值,将所述rotpk或者所述rotpk的所述hash值其中的一项写入OTP中;
所述写入OTP阶段包括:
解析所述flash上第一启动镜像的根证书,提取rotpk,对所述第一启动镜像的根证书进行验证;
根据所述第一启动镜像的根证书的验证结果,对rotpk进行哈希计算,得到所述rotpk的hash值,将所述rotpk或者所述rotpk的所述hash值其中的一项写入到OTP中对应的区域。
2.根据权利要求1所述的安全启动rotpk写入OTP的方法,其特征在于,所述写入OTP阶段还包括:
若所述第一启动镜像的根证书的验证结果为不通过,终止所述写入OTP阶段,并给出相应的提示。
3.根据权利要求1所述的安全启动rotpk写入OTP的方法,其特征在于,所述对所述第一启动镜像的根证书进行验证的方法包括:
根据rotpk对所述第一启动镜像的根证书的数据签名进行解密,得到解密哈希文本;
对所述第一启动镜像的根证书的内容进行哈希计算,得到计算哈希文本,其中所述哈希计算的方法为根证书的数字签名生成方法中对应的哈希计算的方法;
比对所述解密哈希文本及所述计算哈希文本,得到验证结果。
4.根据权利要求3所述的安全启动rotpk写入OTP的方法,其特征在于,所述根据rotpk对所述第一启动镜像的根证书的数据签名进行解密的非对称加解密包括:RSA,ECC及SM2。
5.根据权利要求1至4中任一项所述的安全启动rotpk写入OTP的方法,其特征在于,所述哈希计算的方法包括:SHA256、SHA384及SHA512。
6.根据权利要求1所述的安全启动rotpk写入OTP的方法,其特征在于,所述根证书中的内容中包括:版本、日期、发表者信息及公钥。
7.根据权利要求6所述的安全启动rotpk写入OTP的方法,其特征在于,所述根证书中的内容中还包括:镜像hash值及用于验证下一阶段镜像的子公钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010412790.XA CN111611588B (zh) | 2020-05-15 | 2020-05-15 | 安全启动rotpk写入OTP的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010412790.XA CN111611588B (zh) | 2020-05-15 | 2020-05-15 | 安全启动rotpk写入OTP的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611588A CN111611588A (zh) | 2020-09-01 |
CN111611588B true CN111611588B (zh) | 2023-08-22 |
Family
ID=72204897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010412790.XA Active CN111611588B (zh) | 2020-05-15 | 2020-05-15 | 安全启动rotpk写入OTP的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111611588B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447012A (zh) * | 2008-12-22 | 2009-06-03 | 深圳华为通信技术有限公司 | 一种电子设备和电子设备中固件的验证方法 |
CN104394467A (zh) * | 2014-12-15 | 2015-03-04 | 珠海迈越信息技术有限公司 | 机顶盒应用程序的下载方法及机顶盒 |
CN107479931A (zh) * | 2017-08-18 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种linux系统应用层刷新BIOS的方法 |
-
2020
- 2020-05-15 CN CN202010412790.XA patent/CN111611588B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447012A (zh) * | 2008-12-22 | 2009-06-03 | 深圳华为通信技术有限公司 | 一种电子设备和电子设备中固件的验证方法 |
CN104394467A (zh) * | 2014-12-15 | 2015-03-04 | 珠海迈越信息技术有限公司 | 机顶盒应用程序的下载方法及机顶盒 |
CN107479931A (zh) * | 2017-08-18 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种linux系统应用层刷新BIOS的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111611588A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710315B (zh) | Bios刷写方法及bios镜像文件的处理方法 | |
US9276752B2 (en) | System and method for secure software update | |
CN104408370B (zh) | 安卓系统安全性验证方法及其验证装置 | |
CN109714303B (zh) | Bios启动方法及数据处理方法 | |
JP4501349B2 (ja) | システムモジュール実行装置 | |
CN106156635A (zh) | 终端启动方法和装置 | |
CN107220547B (zh) | 终端设备及其启动方法 | |
TW201516733A (zh) | 用以核對uefi認證變量變化之系統及方法 | |
WO2018076648A1 (zh) | 一种芯片的安全启动方法及装置、计算机存储介质 | |
CN111177693B (zh) | 一种验证终端根证书的方法、装置、设备和介质 | |
CN105930733A (zh) | 一种信任链构建方法和装置 | |
CN113946375A (zh) | 嵌入式系统快速安全启动方法、装置及电子设备 | |
KR20170089352A (ko) | 가상화 시스템에서 수행하는 무결성 검증 방법 | |
CN112148314A (zh) | 一种嵌入式系统的镜像验证方法、装置、设备及存储介质 | |
CN114417360A (zh) | 一种应用于嵌入式电力设备的系统安全启动方法 | |
CN115062292A (zh) | 一种基于分级加密的设备安全启动及认证方法和装置 | |
CN111611588B (zh) | 安全启动rotpk写入OTP的方法 | |
CN106372523B (zh) | 一种modem文件安全保护方法及系统 | |
CN116561734A (zh) | 一种验证方法、装置、计算机及计算机配置系统 | |
CN107704756B (zh) | 一种系统升级前的安全校验方法及系统 | |
CN109508201A (zh) | 一种基于硬件认证和安全审查的uefi更新方法及系统 | |
CN112825093B (zh) | 安全基线检查方法、主机、服务器、电子设备及存储介质 | |
CN113761538A (zh) | 安全启动文件配置方法、启动方法、装置、设备及介质 | |
CN114153672A (zh) | 一种芯片验证方法、系统、设备及存储介质 | |
JP2015049785A (ja) | プログラム処理装置 |
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 |