CN112733208B - 一种芯片的安全boot方法、装置、安全芯片和计算机设备 - Google Patents
一种芯片的安全boot方法、装置、安全芯片和计算机设备 Download PDFInfo
- Publication number
- CN112733208B CN112733208B CN202011630367.3A CN202011630367A CN112733208B CN 112733208 B CN112733208 B CN 112733208B CN 202011630367 A CN202011630367 A CN 202011630367A CN 112733208 B CN112733208 B CN 112733208B
- Authority
- CN
- China
- Prior art keywords
- firmware
- secure
- chip
- encrypted
- processor
- 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
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种芯片的安全boot方法、装置、安全芯片和计算机设备。该方法包括:在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中;在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密;将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行。本发明的技术方案,可以实现芯片的安全boot,提高芯片的安全性。
Description
技术领域
本发明实施例涉及芯片开发技术,尤其涉及一种芯片的安全boot方法、装置、安全芯片和计算机设备。
背景技术
安全芯片是一个可独立进行密钥生成、加解密的装置,可以为计算机设备提供加密和安全认证服务。
在现有的芯片设计中,安全保密以及信息处理功能主要体现在芯片的鉴权和加解密功能,芯片上电之后的boot过程中,先进行程序代码的鉴权和解密之后再进行应用程序的运行。但是在这种芯片的安全保密设计下,如果安全芯片没有boot CPU(CentralProcessing Unit,中央处理单元),安全数据需要通过芯片内部的数据总线进行传输,存在安全数据的泄露风险。
发明内容
本发明实施例提供一种芯片的安全boot方法、装置、安全芯片和计算机设备,以实现芯片的安全boot,提高芯片的安全性。
第一方面,本发明实施例提供了一种芯片的安全boot方法,该方法包括:
在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中;
在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密;
将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行。
第二方面,本发明实施例还提供了一种芯片的安全boot装置,该装置包括:
安全固件解密模块,用于在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中;
处理器固件解密模块,用于在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密;
处理器固件存储模块,用于将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行。
第三方面,本发明实施例还提供了一种安全芯片,包括安全保密模块、通信处理器以及应用处理器,安全保密模块中包括boot处理器和安全RAM,所述boot处理器实现如本实施例任一所述的芯片的安全boot方法。
第四方面,本发明实施例还提供了一种计算机设备,包括安全芯片,所述安全芯片实现如本实施例中任一所述的芯片的安全boot方法。
本发明实施例通过在安全芯片中设置boot处理器,boot处理器在安全芯片上电之后,进行安全固件的验签和解密,将安全固件存储到安全芯片的安全RAM中进行执行,对通信处理器固件和应用处理器固件进行验签和解密,并将通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中进行执行。解决了现有技术中没有专用的boot处理器,安全数据需在安全芯片中的总线上直接进行传输,以造成数据泄露风险的问题,实现了芯片的安全boot,提高了芯片的安全性。
附图说明
图1是本发明实施例一中的一种芯片的安全boot方法的流程图;
图2a是本发明实施例二中的又一种芯片的安全boot方法的流程图;
图2b是本发明实施例二中的一种固件签名、验签以及加解密的过程示意图;
图3是本发明实施例三中的一种芯片的安全boot装置的结构示意图;
图4是本发明实施例四中的一种安全芯片的结构示意图;
图5是本发明实施例五中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种芯片的安全boot方法的流程图,本实施例可适用于由boot处理器控制安全芯片进行安全boot的情况,该方法可以由芯片的安全boot装置来执行,该装置一般集成在安全芯片的boot处理器中。
如图1所示,本发明实施例的技术方案,具体包括如下步骤:
S110、在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中。
其中,安全芯片上电之后,自动触发boot过程,基于boot处理器也即boot CPU进行芯片的安全boot过程,可以减少数据泄露的风险,提高芯片的安全性。boot CPU设置在安全芯片的安全保密模块内,安全保密模块用于进行通信处理器(Communication processor,CP)和应用处理器(Application Processor,AP)之间的数据交互。
固件是指设备内部保存的设备“驱动程序”,控制硬件底层和与其他设备通信,安全固件是指安全保密模块运行所需固件,同理,CP固件或者AP固件分别是CP和AP运行所需的固件,安全固件可以管理CP固件和AP固件的验签和解密。在本发明实施例中,安全固件、CP固件和AP固件签名和加密后,保存到外部Flash中。验签是签名的逆过程,用于验证固件的合法性,解密是加密的逆过程,用于获取加密前的固件。安全RAM(Random AccessMemory,随机存取存储器)是设置在安全保密模块内部的存储器,同理,通信处理器RAM和应用处理器RAM,也即CP RAM和AP RAM是设置在CP和AP内部的存储器。
在本发明实施例中,安全芯片上电后,自动触发boot过程,对安全固件进行验签和解密后,将安全固件存储到安全RAM中,并在安全RAM中运行安全固件。
S120、在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密。
在安全RAM中运行解密后的安全固件,由于安全固件中包含用于指示从外部Flash中获取CP固件和AP固件的程序代码,因此,运行解密后安全固件之后,boot CPU即获取加密后的CP固件和AP固件。分别对CP固件和AP固件进行验签和解密后,分别将解密后的CP固件和AP固件存储到CP RAM和AP RAM,CP RAM和AP RAM是设置在CP和AP内部的随机存取存储器。
S130、将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行
在本发明实施例中,boot CPU将CP固件和AP固件进行验签和解密之后,CP固件和AP固件中包含有指示CP、AP模块配置的程序代码,以及指示应用程序对应的地址空间的程序代码。因此,boot CPU在安全RAM中运行解密后的CP固件和AP固件之后,将解密后的CP固件和AP固件存储到CP RAM和AP RAM,并释放CP和AP的复位。
在本发明实施例中,CP侧的CPU和AP侧的CPU分别在CP RAM和AP RAM中运行解密后的CP固件和AP固件之后,在外部Flash里获得加密后的应用程序代码,并调用芯片的安全保密模块,对应用程序代码进行解密。这里的应用程序代码是指AP或CP启动后要执行的应用相关的程序代码,例如可以是AP要执行的某个外设接口相关的程序代码。安全保密模块对应用程序代码进行解密之后,将解密后的应用程序代码存储到DDR(Double Data Rate,双倍数据速率)存储器中与CP模块和AP模块匹配的存储空间中,CP CPU和AP CPU即可在DDR的对应存储空间中获取解密后的应用程序代码,并对应用程序代码进行执行。
在本发明实施例中,在安全芯片内boot CPU具有最高的访问权限,boot CPU不仅可以访问安全保密模块的各个模块,也可以控制CP侧的CPU和AP侧的CPU。
本实施例的技术方案,通过在安全芯片中设置boot处理器,boot处理器在安全芯片上电之后,进行安全固件的验签和解密,将安全固件存储到安全芯片的安全RAM中进行执行,对通信处理器固件和应用处理器固件进行验签和解密,并将通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中进行执行。解决了现有技术中没有专用的boot处理器,安全数据需在安全芯片中的总线上直接进行传输,已造成数据泄露风险的问题,实现了芯片的安全boot,提高了芯片的安全性。
实施例二
图2a是本发明实施例二提供的一种芯片的安全boot方法的流程图,本发明实施例在上述实施例的基础上,对加密后的固件进行验签和解密的过程进行了进一步的具体化,并加入了获取加密后固件的过程、对固件进行签名和加密的过程以及上电后对芯片状态进行测试的过程。
相应的,如图2a所示,本发明实施例的技术方案,具体包括如下步骤:
S210、对固件进行签名和加密后,保存到外部闪存中。
其中,所述固件包括安全固件、通信处理器固件和应用处理器固件。
在本发明实施例中,安全固件和CP、AP固件在进行签名和加密之后,保存到外部Flash中。
相应的,图2b提供了一种固件签名、验签以及加解密的过程示意图,如图2b所示,S210又可以包括:
S211、根据制造者私钥对用户公钥进行签名,获得用户证书。
在本发明实施例中,芯片制造者产生公私钥对,以及一个固件根钥,芯片制造者产生的制造者公钥和固件根钥保存在安全保密模块内部的密钥存储模块内。安全保密模块内部的硬件安全模块实现加解密功能,硬件安全模块进行加解密时,从密钥存储模块中获取密钥,硬件安全模块和密钥存储模块之间通过硬件直连的方式直接进行连接,其他模块无法访问密钥存储模块,从而可以保证boot过程中密钥的安全性。
芯片用户也产生一个公私钥对,以及通过随机数发生器等装置产生随机密钥。
图2b提供了一种固件签名、验签以及加解密的过程示意图,如图2b所示,使用制造者私钥对用户公钥进行签名,生成用户证书,用户证书保存到外部Flash中。图2b中的制造者和用户产生公私钥对的算法采用的是ECDSA(Elliptic Curve Digital SignatureAlgorithm,椭圆曲线数字签名算法),但本实施例对产生公私钥对采用的算法的类型不进行限制。
S212、根据用户私钥对固件进行签名,获得固件签名。
使用用户私钥对固件进行签名,获得固件签名,图2b中的firmware即为固件,这里的固件可以是安全固件,或者CP、AP固件,也即,根据用户私钥分别对安全固件和CP、AP固件进行签名,获得其分别对应的固件签名,将固件签名保存到外部Flash中。
S213、根据固件根钥获得推导密钥,根据推导密钥对随机密钥和固件进行加密,获得加密随机密钥和加密固件,根据用户证书、固件签名、加密随机密钥和加密固件生成固件证书,作为加密后的固件保存在外部闪存中。
如图2b所示,固件根钥也即Firmware Root Key(FRK),经过KDF(Key DerivationFunction,密钥派生功能)算法对固件根钥进行推导,获得推导密钥,也即图2b中的KEK(KeyEncryption Key,密钥加密密钥)。根据推导密钥对随机密钥和固件分别进行加密,获得加密随机密钥和加密固件。加密后的随机密钥和固件保存到外部Flash中。
S220、在安全芯片上电之后,判断安全芯片是否为可用状态,如果是,则执行S230,否则执行S2140。
在安全芯片上电之后,boot CPU首先进行自测试,测试安全芯片是否处于可用状态。示例性的,可以对随机数发生器、硬件安全模块等的状态进行判断,只有当安全芯片为可用状态时,才能正常的进行安全boot。
S230、在外部闪存中获取加密后的安全固件。
boot CPU首先对安全固件进行验签和解密,在外部Flash中获取用户证书、安全固件的固件签名、加密随机密钥和安全固件的加密固件。
S240、根据制造者公钥对安全固件证书中的用户证书进行验签,获得用户公钥,根据用户公钥验证用户合法性。
如图2b所示,第一次验签是通过制造者公钥对用户证书进行验签,获得用户公钥,以验证用户的身份合法性,在用户身份合法时,进行第二次验签。
S250、根据用户公钥对安全固件签名进行验签,验证安全固件合法性。
如图2b所示,第二次验签为使用第一次验签获得的用户公钥,对安全固件签名进行验签,以验证安全固件的合法性,在安全固件合法时,进行安全固件的解密。
S260、根据推导密钥对加密随机密钥进行解密,获得随机密钥,根据随机密钥对加密安全固件进行解密,获得解密后的安全固件。
如图2b所示,根据推导密钥KEK对加密后的随机密钥进行解密,获得随机密钥,根据随机密钥对加密后的安全固件进行解密,获得解密后的安全固件,安全固件被解密之后,才能被boot CPU执行。
S270、将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中,在安全RAM中运行解密后的安全固件。
在本发明实施例中,将解密后的安全固件存储到安全RAM中进行执行,可以提高安全固件运行时的安全性。
S280、在外部闪存中获取加密后的通信处理器固件和应用处理器固件。
由于安全固件中包含用于指示在外部Flash中获取CP固件和AP固件的程序代码,因此,boot CPU在安全RAM中执行解密后的安全固件之后,在外部Flash中获取加密后的CP固件和AP固件。
S290、根据制造者公钥对通信处理器固件证书和应用处理器固件证书中的用户证书进行验签,获得用户公钥,根据用户公钥验证用户合法性。
S2100、根据用户公钥对通信处理器固件签名和应用处理器固件签名进行验签,验证通信处理器固件和应用处理器固件的合法性。
S2110、根据推导密钥对加密随机密钥进行解密,获得随机密钥,根据随机密钥对加密通信处理器固件和加密应用处理器固件进行解密,获得解密后的通信处理器固件和应用处理器固件。
S290-S2110中的对加密后的CP固件和AP固件进行验签和解密的过程,与S240-S260中对加密后的安全固件进行验签和解密的过程原理相同,本实施例在此不再赘述。
S2120、将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行。
对加密后的CP固件和AP固件进行验签和解密之后,将CP固件和AP固件存储到CPRAM和AP RAM中,由CP CPU和AP CPU分别在CP RAM和AP RAM中执行CP固件和AP固件。
所述应用程序代码加密后,存储到外部Flash中,由于CP固件和AP固件中包含指示进行CP、AP模块配置以及指示应用程序代码存储空间的程序代码,因此,CP CPU和AP CPU在CP RAM和AP RAM中执行CP固件和AP固件之后,获取外部Flash中的加密后的应用程序代码。CP CPU和AP CPU可以分别调用安全保密模块中的硬件安全模块,对加密后的应用程序代码进行解密,硬件安全模块对应用程序代码进行解密后,可以获得CP指令和AP指令,并分别保存到DDR存储器中与CP和AP匹配的存储空间中。CP CPU和AP CPU可以分别从DDR存储器的对应存储空间中获取CP指令和AP指令进行执行
在本发明实施例中,设置boot CPU执行安全boot过程,对固件进行两次验签和解密,并将解密后的固件存储到RAM中执行,保证了芯片boot过程的安全性。
S2130、结束。
实施例三
图3是本发明实施例三中的一种芯片的安全boot装置的结构示意图,该装置部署于安全芯片中,该装置包括:安全固件解密模块310、处理器固件解密模块320以及应用程序代码解密模块330。
安全固件解密模块310,用于在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中;
处理器固件解密模块320,用于在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密;
处理器固件存储模块330,用于将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行在上述实施例的基础上,所述装置,还包括:
加密安全固件获取模块,用于在外部闪存中获取加密后的安全固件;
加密处理器固件获取模块,用于在外部闪存中获取加密后的通信处理器固件和应用处理器固件;
所述应用程序代码为通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件之后,在外部闪存中获取得到。
在上述实施例的基础上,所述装置,还包括:
固件加密模块,用于对固件进行签名和加密后,保存到外部闪存中;
其中,所述固件包括安全固件、通信处理器固件和应用处理器固件。
在上述实施例的基础上,所述固件加密模块,包括:
用户证书获取单元,用于根据制造者私钥对用户公钥进行签名,获得用户证书;
固件签名获取单元,用于根据用户私钥对固件进行签名,获得固件签名;
固件证书获取单元,用于根据固件根钥获得推导密钥,根据推导密钥对随机密钥和固件进行加密,获得加密随机密钥和加密固件,根据用户证书、固件签名、加密随机密钥和加密固件生成固件证书,作为加密后的固件保存在外部闪存中。
在上述实施例的基础上,所述安全固件解密模块310,包括:
第一安全固件验签单元,用于根据制造者公钥对安全固件证书中的用户证书进行验签,获得用户公钥,根据用户公钥验证用户合法性;
第二安全固件验签单元,用于根据用户公钥对安全固件签名进行验签,验证安全固件合法性;
安全固件解密单元,用于根据推导密钥对加密随机密钥进行解密,获得随机密钥,根据随机密钥对加密安全固件进行解密,获得解密后的安全固件。
在上述实施例的基础上,所述处理器固件解密模块320,包括:
第一处理器固件验签单元,用于根据制造者公钥对通信处理器固件证书和应用处理器固件证书中的用户证书进行验签,获得用户公钥,根据用户公钥验证用户合法性;
第二处理器固件验签单元,用于根据用户公钥对通信处理器固件签名和应用处理器固件签名进行验签,验证通信处理器固件和应用处理器固件的合法性;
处理器固件解密单元,用于根据推导密钥对加密随机密钥进行解密,获得随机密钥,根据随机密钥对加密通信处理器固件和加密应用处理器固件进行解密,获得解密后的通信处理器固件和应用处理器固件。
在上述实施例的基础上,所述安全固件解密模块310,包括:
安全芯片状态确认单元,用于在安全芯片上电之后,如果确定安全芯片为可用状态,则对加密后的安全固件进行验签和解密。
在上述实施例的基础上,所述应用程序代码为通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件之后,获取加密后的应用程序代码,并调用安全芯片的安全保密模块对加密后的应用程序代码进行解密后获得的。
本发明实施例所提供的芯片的安全boot装置可执行本发明任意实施例所提供的芯片的安全boot方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四中的一种安全芯片的结构示意图,如图4所示,包括安全保密模块410、通信处理器420以及应用处理器430,安全保密模块410中包括boot处理器411和安全RAM412,boot处理器411和安全RAM412之间通过总线连接。所述boot处理器411可以实现上述的芯片的安全boot方法,也即实现一种芯片的安全boot方法,包括:
在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中;
在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密;
将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行。
实施例五
图5是本发明实施例五中的一种计算机设备的结构示意图,如图5所示,该计算机设备除包括处理器70、存储器71、输入装置72和输出装置73之外,还包括安全芯片74。计算机设备中处理器70的数量可以是一个或多个,图5中以一个处理器70为例;计算机设备中的处理器70、存储器71、输入装置72和输出装置73,以及安全芯片74可以通过总线或其他方式连接,图5中以通过总线连接为例。
安全芯片74中包括芯片的安全boot装置,该装置可以实现上述的芯片的安全boot方法,也即实现一种芯片的安全boot方法,包括:
在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中;
在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密;
将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行。
存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置72可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种芯片的安全boot方法,其特征在于,由boot处理器执行,所述方法,包括:
在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中,所述boot处理器设置于所述安全芯片内,用于对所述安全芯片进行安全boot;
所述安全芯片内设置安全保密模块,所述安全保密模块用于进行通信处理器和应用处理器之间的数据交互;
在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密;
将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行。
2.根据权利要求1所述的方法,其特征在于,在对加密后的安全固件进行验签和解密之前,还包括:
在外部闪存中获取加密后的安全固件;
在安全RAM中运行解密后的安全固件之后,还包括:
在外部闪存中获取加密后的通信处理器固件和应用处理器固件;
所述应用程序代码为通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件之后,在外部闪存中获取得到。
3.根据权利要求2所述的方法,其特征在于,在安全芯片上电之前,还包括:
对固件进行签名和加密后,保存到外部闪存中;
其中,所述固件包括安全固件、通信处理器固件和应用处理器固件。
4.根据权利要求3所述的方法,其特征在于,对固件进行签名和加密后,保存到外部闪存中,包括:
根据制造者私钥对用户公钥进行签名,获得用户证书;
根据用户私钥对固件进行签名,获得固件签名;
根据固件根钥获得推导密钥,根据推导密钥对随机密钥和固件进行加密,获得加密随机密钥和加密固件,根据用户证书、固件签名、加密随机密钥和加密固件生成固件证书,作为加密后的固件保存在外部闪存中。
5.根据权利要求4所述的方法,其特征在于,对加密后的安全固件进行验签和解密,包括:
根据制造者公钥对安全固件证书中的用户证书进行验签,获得用户公钥,根据用户公钥验证用户合法性;
根据用户公钥对安全固件签名进行验签,验证安全固件合法性;
根据推导密钥对加密随机密钥进行解密,获得随机密钥,根据随机密钥对加密安全固件进行解密,获得解密后的安全固件。
6.根据权利要求4所述的方法,其特征在于,对加密后的通信处理器固件和应用处理器固件进行验签和解密,包括:
根据制造者公钥对通信处理器固件证书和应用处理器固件证书中的用户证书进行验签,获得用户公钥,根据用户公钥验证用户合法性;
根据用户公钥对通信处理器固件签名和应用处理器固件签名进行验签,验证通信处理器固件和应用处理器固件的合法性;
根据推导密钥对加密随机密钥进行解密,获得随机密钥,根据随机密钥对加密通信处理器固件和加密应用处理器固件进行解密,获得解密后的通信处理器固件和应用处理器固件。
7.根据权利要求1所述的方法,其特征在于,在安全芯片上电之后,对加密后的安全固件进行验签和解密,包括:
在安全芯片上电之后,如果确定安全芯片为可用状态,则对加密后的安全固件进行验签和解密。
8.根据权利要求1所述的方法,其特征在于,所述应用程序代码为通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件之后,获取加密后的应用程序代码,并调用安全芯片的安全保密模块对加密后的应用程序代码进行解密后获得的。
9.一种芯片的安全boot装置,其特征在于,部署于安全芯片中,所述装置,包括:
安全固件解密模块,用于在安全芯片上电之后,对加密后的安全固件进行验签和解密,并将解密后的安全固件存储到所述安全芯片中的安全随机存取存储器RAM中,所述boot处理器设置于所述安全芯片内,用于对所述安全芯片进行安全boot;
所述安全芯片内设置安全保密模块,所述安全保密模块用于进行通信处理器和应用处理器之间的数据交互;
处理器固件解密模块,用于在安全RAM中运行解密后的安全固件,对加密后的通信处理器固件和应用处理器固件进行验签和解密;
处理器固件存储模块,用于将解密后的通信处理器固件和应用处理器固件存储到通信处理器RAM和应用处理器RAM中,以使通信处理器和应用处理器分别在通信处理器RAM和应用处理器RAM中执行解密后的通信处理器固件和应用处理器固件,并获取应用程序代码进行执行。
10.一种安全芯片,包括安全保密模块、通信处理器以及应用处理器,安全保密模块中包括boot处理器和安全RAM,所述boot处理器实现如权利要求1-8中任一所述的芯片的安全boot方法。
11.一种计算机设备,包括安全芯片,所述安全芯片实现如权利要求1-8中任一所述的芯片的安全boot方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011630367.3A CN112733208B (zh) | 2020-12-31 | 2020-12-31 | 一种芯片的安全boot方法、装置、安全芯片和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011630367.3A CN112733208B (zh) | 2020-12-31 | 2020-12-31 | 一种芯片的安全boot方法、装置、安全芯片和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112733208A CN112733208A (zh) | 2021-04-30 |
CN112733208B true CN112733208B (zh) | 2021-10-19 |
Family
ID=75608442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011630367.3A Active CN112733208B (zh) | 2020-12-31 | 2020-12-31 | 一种芯片的安全boot方法、装置、安全芯片和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733208B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114640461A (zh) * | 2022-02-16 | 2022-06-17 | 深圳市优博讯科技股份有限公司 | 基于安全芯片的固件防篡改方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553349A (zh) * | 2003-05-29 | 2004-12-08 | 联想(北京)有限公司 | 一种安全芯片及基于该芯片的信息安全处理设备和方法 |
CN102740279A (zh) * | 2011-04-15 | 2012-10-17 | 中兴通讯股份有限公司 | 一种无线网络接入终端及其运行方法 |
CN108762782A (zh) * | 2018-05-16 | 2018-11-06 | 山东华芯半导体有限公司 | 一种基于安全加密固态硬盘和bios芯片的安全访问控制方法 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
CN110555309A (zh) * | 2019-09-10 | 2019-12-10 | 深圳市英博超算科技有限公司 | 启动方法、装置、终端以及计算机可读存储介质 |
CN112035152A (zh) * | 2020-08-24 | 2020-12-04 | 成都三零嘉微电子有限公司 | 一种SoC芯片固件升级的安全处理系统及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040034785A1 (en) * | 2002-08-15 | 2004-02-19 | Horng-Ming Tai | Hardware and firmware encryption mechanism using unique chip die identification |
US9652637B2 (en) * | 2005-05-23 | 2017-05-16 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for allowing no code download in a code download scheme |
CN103279705A (zh) * | 2013-05-14 | 2013-09-04 | 上海华为技术有限公司 | 具有安全启动功能的芯片的校验方法及校验装置 |
KR102385552B1 (ko) * | 2015-12-29 | 2022-04-12 | 삼성전자주식회사 | 시스템-온-칩 및 이를 포함하는 전자 장치 |
CN106250760A (zh) * | 2016-07-26 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种基于TPM2.0芯片的U‑Boot可信启动方法 |
CN110119623A (zh) * | 2018-02-06 | 2019-08-13 | 北京可信华泰信息技术有限公司 | 一种利用tpcm实现固件主动度量的可信主板实现方法 |
-
2020
- 2020-12-31 CN CN202011630367.3A patent/CN112733208B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553349A (zh) * | 2003-05-29 | 2004-12-08 | 联想(北京)有限公司 | 一种安全芯片及基于该芯片的信息安全处理设备和方法 |
CN102740279A (zh) * | 2011-04-15 | 2012-10-17 | 中兴通讯股份有限公司 | 一种无线网络接入终端及其运行方法 |
CN108762782A (zh) * | 2018-05-16 | 2018-11-06 | 山东华芯半导体有限公司 | 一种基于安全加密固态硬盘和bios芯片的安全访问控制方法 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
CN110555309A (zh) * | 2019-09-10 | 2019-12-10 | 深圳市英博超算科技有限公司 | 启动方法、装置、终端以及计算机可读存储介质 |
CN112035152A (zh) * | 2020-08-24 | 2020-12-04 | 成都三零嘉微电子有限公司 | 一种SoC芯片固件升级的安全处理系统及方法 |
Non-Patent Citations (1)
Title |
---|
Verification-Based Multi-backup Firmware Architecture, an Assurance of Trusted Boot Process for the Embedded Systems;Hongfei Yin etc;《IEEE》;20120103;第1188-1194页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112733208A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3458999B1 (en) | Self-contained cryptographic boot policy validation | |
CN108345806B (zh) | 一种硬件加密卡和加密方法 | |
US10091183B2 (en) | Method and decision gateway for authorizing a function of an embedded control unit | |
CN107464109B (zh) | 可信移动支付装置、系统和方法 | |
US10680816B2 (en) | Method and system for improving the data security during a communication process | |
CN110621014B (zh) | 一种车载设备及其程序升级方法、服务器 | |
US11281781B2 (en) | Key processing methods and apparatuses, storage media, and processors | |
CN108200078B (zh) | 签名认证工具的下载安装方法及终端设备 | |
CN110971398A (zh) | 数据处理方法、装置及系统 | |
TW201324225A (zh) | 用於電子裝置之暫時安全開機流程之系統與方法 | |
WO2006137947A1 (en) | Programmable processor supporting secure mode | |
CN111401901B (zh) | 生物支付设备的认证方法、装置、计算机设备和存储介质 | |
CN110580420A (zh) | 基于集成芯片的数据处理方法、计算机设备、存储介质 | |
CN112765637A (zh) | 数据处理方法、密码服务装置和电子设备 | |
CN109150811B (zh) | 一种实现可信会话的方法及装置、计算设备 | |
JP2018117185A (ja) | 情報処理装置、情報処理方法 | |
KR20210132721A (ko) | 네트워크에 액세스 시의 보안 통신 | |
CN112733208B (zh) | 一种芯片的安全boot方法、装置、安全芯片和计算机设备 | |
JP2023542099A (ja) | 無線端末、及び無線端末のUbootモードにおけるインタフェースアクセス認証方法 | |
US20240113898A1 (en) | Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity | |
JP5806187B2 (ja) | 秘密情報の交換方法およびコンピュータ | |
US20190044710A1 (en) | Technologies for establishing device locality | |
CN110858246B (zh) | 安全代码空间的认证方法和系统、及其注册方法 | |
CN114124440A (zh) | 安全传输方法、装置、计算机设备和存储介质 | |
CN112363800A (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 102, Building 16, No. 1699, the Pearl River Road, Huangdao District, Qingdao, Shandong 266499 Patentee after: Chenxin Technology Co.,Ltd. Address before: No.687 fusion Road, gugukou military civilian integration innovation demonstration area, Binhai street, Huangdao District, Qingdao City, Shandong Province 266500 Patentee before: Chenxin Technology Co.,Ltd. |