CN115795472A - 芯片的安全启动控制方法、装置、电子设备和存储介质 - Google Patents
芯片的安全启动控制方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115795472A CN115795472A CN202211394929.8A CN202211394929A CN115795472A CN 115795472 A CN115795472 A CN 115795472A CN 202211394929 A CN202211394929 A CN 202211394929A CN 115795472 A CN115795472 A CN 115795472A
- Authority
- CN
- China
- Prior art keywords
- check code
- image data
- mirror image
- module
- chip
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000012795 verification Methods 0.000 claims description 69
- 238000012545 processing Methods 0.000 claims description 59
- 230000001133 acceleration Effects 0.000 claims description 46
- 238000004422 calculation algorithm Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 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
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本公开实施例公开了一种芯片的安全启动控制方法、装置、电子设备和存储介质,其中,方法包括:在芯片启动过程的预设阶段,从硬件安全模块获得的解密结果中确定所述预设阶段待校验的第一镜像数据以及所述第一镜像数据对应的第一校验码;基于所述第一镜像数据确定第二校验码;将所述第二校验码与所述第一校验码进行比较,获得比较结果;基于所述比较结果,确定所述第一镜像数据的完整性校验结果;基于所述完整性校验结果,在所述预设阶段执行与所述第一镜像数据对应的安全启动程序。本公开实施例可以保证硬件安全模块的解密功能安全性,有效提高芯片启动的安全性。
Description
技术领域
本公开涉及功能安全技术,尤其是一种芯片的安全启动控制方法、装置、电子设备和存储介质。
背景技术
智能驾驶芯片的安全启动主要基于传统车载MCU(Microcontroller Unit,微控制单元)实现,具体来说,通过HSM(Hardware Security Module,硬件安全模块)实现securityBoot(信息安全启动)。因为传统车载MCU使用内部嵌入式Flash(闪存),对于内部Flash存储的数据只需要在boot(启动)的过程中执行存储的数据的验签操作(比如基于私钥加签则通过公钥验签)就可以,不涉及对存储的数据加解密的操作,所以在传统MCU中,不需要考虑Safety Boot(功能安全启动)的问题,对于HSM没有额外的功能安全要求。但是随着智能驾驶技术的发展,智能驾驶芯片开始广泛使用先进制程,无法实现内置Flash,所以当前的主流智能驾驶芯片通过使用外部Flash来实现非易失性的存储,根据安全的需求,外部Flash中存储的数据需要加密存储,在智能驾驶芯片的安全启动过程中,除了需要对存储的数据进行验签操作,还需要对存储的数据进行加解密的操作,而HSM在进行解密的工作过程可能会造成解密后的数据出现功能安全相关的失效,容易导致智能驾驶芯片的启动安全性较差。
为了解决上述安全启动流程导致智能驾驶芯片的启动安全性较差等技术问题,提出了本公开。本公开的实施例提供了一种芯片的安全启动控制方法、装置、电子设备和存储介质。
根据本公开实施例的一个方面,提供一种芯片的安全启动控制方法,包括:在芯片启动过程的预设阶段,从硬件安全模块获得的解密结果中确定所述预设阶段待校验的第一镜像数据以及所述第一镜像数据对应的第一校验码;基于所述第一镜像数据确定第二校验码;将所述第二校验码与所述第一校验码进行比较,获得比较结果;基于所述比较结果,确定所述第一镜像数据的完整性校验结果;基于所述完整性校验结果,在所述预设阶段执行与所述第一镜像数据对应的安全启动程序。
根据本公开实施例的另一个方面,提供了一种芯片的安全启动控制装置,包括:硬件加速模块,与硬件安全模块连接,用于在芯片启动过程的预设阶段,从所述硬件安全模块获得的解密结果中确定所述预设阶段待校验的第一镜像数据以及所述第一镜像数据对应的第一校验码,基于所述第一镜像数据确定第二校验码;第一处理模块,与所述硬件加速模块连接,用于将所述第二校验码与所述第一校验码进行比较,获得比较结果;第二处理模块,用于基于所述比较结果,确定所述第一镜像数据的完整性校验结果;第三处理模块,用于基于所述完整性校验结果,在所述预设阶段执行与所述第一镜像数据对应的安全启动程序。
根据本公开实施例的另一方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如上任一实施例所述的芯片的安全启动控制方法。
根据本公开实施例的再一方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一实施例所述的芯片的安全启动控制方法;或者,所述电子设备包括:如上任一实施例所述的芯片的安全启动控制装置。
基于本公开上述实施例提供的芯片的安全启动控制方法、装置、电子设备和存储介质,通过在芯片启动过程的预设阶段,对硬件安全模块获得的解密结果中的第一镜像数据进行完整性校验,可以确保硬件安全模块的解密操作未损坏第一镜像数据,从而可以保证硬件安全模块的功能安全性,有效提高芯片启动的安全性。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开提供的芯片的安全启动控制方法的一个示例性的应用场景;
图2是本公开一示例性实施例提供的芯片的安全启动控制方法的流程示意图;
图3是本公开另一示例性实施例提供的芯片的安全启动控制方法的流程示意图;
图4是本公开一示例性实施例提供的芯片的安全启动控制装置的结构示意图;
图5是本公开另一示例性实施例提供的芯片的安全启动控制装置的结构示意图;
图6是本公开一示例性实施例提供的硬件加速模块61的结构示意图;
图7是本公开再一示例性实施例提供的芯片的安全启动控制装置的结构示意图;
图8是本公开又一示例性实施例提供的芯片的安全启动控制装置的结构示意图;
图9是本公开电子设备一个应用实施例的结构示意图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机***、服务器等电子设备,其可与众多其它通用或专用计算***环境或配置一起操作。适于与终端设备、计算机***、服务器等电子设备一起使用的众所周知的终端设备、计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***、大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
终端设备、计算机***、服务器等电子设备可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
本公开概述
在实现本公开的过程中,发明人发现,智能驾驶芯片的安全启动主要基于传统车载MCU(Microcontroller Unit,微控制单元)实现,具体来说,通过HSM(Hardware SecurityModule,硬件安全模块)实现security Boot(安全启动)。因为传统车载MCU使用内部嵌入式Flash(闪存),对于内部Flash存储的数据只需要在boot(启动)的过程中执行存储的数据的验签操作(比如基于私钥加签则通过公钥验签)就可以,不涉及对存储的数据加解密的操作,所以在传统MCU中,不需要考虑Safety Boot(安全启动)的问题,对于HSM没有额外的功能安全要求。但是随着智能驾驶技术的发展,智能驾驶芯片开始广泛使用先进制程,无法实现内置Flash,所以当前的主流智能驾驶芯片通过使用外部Flash来实现非易失性的存储,根据安全的需求,外部Flash中存储的数据需要加密存储,在智能驾驶芯片的安全启动过程中,除了需要对存储的数据进行验签操作,还需要对存储的数据进行加解密的操作,而HSM在进行解密的工作过程可能会造成解密后的数据出现功能安全相关的失效,容易导致智能驾驶的安全性较差。
示例性概述
图1是本公开提供的芯片的安全启动控制方法的一个示例性的应用场景。
在智能驾驶场景,智能驾驶芯片启动时,首先获取内部只读存储器预先存储的初始启动程序,并执行该初始启动程序进入后续启动阶段,比如执行初始启动程序的阶段可以称为BL0阶段,后续启动阶段包括BL1阶段和BL2阶段,具体可以根据实际需求设置。可以将需要从外部设备加载加密镜像数据的各阶段作为预设阶段,加密镜像数据是对启动阶段执行的镜像数据(可以称为第一镜像数据)进行加密获得的加密结果,用于保证镜像数据的安全性,为了后续对该镜像数据进行完整性校验,本公开可以将镜像数据与其第一校验码一起加密获得对应的加密镜像数据。第一镜像数据是指包括相应阶段的安全启动程序的文件。利用本公开的芯片的安全启动控制方法(通过芯片的安全启动控制装置执行该方法),在任一预设阶段,将从外部存储设备加载的加密镜像数据传输给硬件安全模块(简称HSM),HSM对加密镜像数据进行解密,获得解密结果,该解密结果则包括该阶段待校验的第一镜像数据及其对应的第一校验码,为了对该第一镜像数据进行完整性校验,可以基于该第一镜像数据确定第二校验码,将第二校验码与第一校验码进行比较,获得比较结果。由于第一校验码是HSM解密前第一镜像数据的校验码,第二校验码是HSM解密后第一镜像数据的校验码,通过两者比较,若HSM解密操作未损坏第一镜像数据,则第二校验码与第一校验码应该一致,若两者不一致,则表示HSM解密操作可能损坏了第一镜像数据,基于此可以完成第一镜像数据的完整性校验,对于校验结果通过的第一镜像数据才会执行其对应的安全启动程序,保证HSM解密操作功能的安全性,实现芯片的安全启动,进而提高智能驾驶的安全性。
示例性方法
图2是本公开一示例性实施例提供的芯片的安全启动控制方法的流程示意图。本实施例可应用在电子设备上,比如车载计算平台上,比如车载计算平台上的智能驾驶芯片等芯片上。如图2所示,包括如下步骤:
步骤201,在芯片启动过程的预设阶段,从硬件安全模块获得的解密结果中确定预设阶段待校验的第一镜像数据以及第一镜像数据对应的第一校验码。
其中,芯片启动过程可以根据实际需求设置为多个阶段,不同阶段可以完成其对应的启动功能,具体可以根据实际需求设置。比如芯片上电后,可以将芯片启动流程分为三个阶段,在第一阶段,首先执行内部只读存储器固化的初始启动程序,该初始启动程序可以称为BL0,第一阶段实现的功能比如可以包括初始化***时钟、初始化相关启动外设(比如硬件加速模块)、判断硬件的启动方式等,还可以加载BL1(用于初始化RAM(Random AccessMemory,随机存取存储器)、串口、分配堆栈空间、清空BSS段、加载BL2(BL2是用于初始化本阶段要使用的硬件、加载内核等的启动程序)等的启动程序)的加密镜像数据,并传输至硬件安全模块(HSM),硬件安全模块对该加密镜像数据进行解密,获得解密结果。其中解密的具体操作可以根据实际需求设置,比如基于对称加密算法或非对称加密算法实现加解密,具体不再赘述。在获得该解密结果后,从该解密结果中确定该预设阶段待校验的第一镜像数据及该第一镜像数据对应的第一校验码,该第一校验码是在加密之前基于第一镜像数据及预设校验算法确定的校验码,用于后续对第一镜像数据进行完整性校验。其中预设校验算法可以包括算法模式、初始值、计算长度等生成校验码所需要的信息,具体可以根据实际需求设置。BL0-BL2具体可以根据实际需求设置,本公开不做限定。
同理,在第一阶段执行BL1的启动程序,进入第二阶段,则第二阶段作为预设阶段,在第二阶段会对加载BL2的加密镜像数据,经HSM解密获得解密结果,进而从解密结果中确定该预设阶段待校验的第一镜像数据及该第一镜像数据对应的第一校验码,以此类推,在每个预设阶段都可以执行本公开的方法,在此不再一一赘述,以下仅以一个预设阶段为例对后续处理流程进行说明。
在实际应用中,芯片启动流程阶段的具体划分可以根据实际需求设置,本公开不做限定。
步骤202,基于第一镜像数据确定第二校验码。
其中,第二校验码是在经硬件安全模块解密获得第一镜像数据后,再基于第一镜像数据及与生成第一校验码一致的预设校验算法生成的校验码,用于对第一镜像数据进行完整性校验。
步骤203,将第二校验码与第一校验码进行比较,获得比较结果。
其中,比较结果可以包括第二校验码与第一校验码相同或不相同的结果。
步骤204,基于比较结果,确定第一镜像数据的完整性校验结果。
其中,完整性校验结果可以包括通过和不通过两种结果。由于第一校验码是HSM解密前第一镜像数据的校验码,第二校验码是HSM解密后第一镜像数据的校验码,通过两者比较,若HSM解密操作未损坏第一镜像数据或者未发生错误,则第二校验码与第一校验码应该相同,若两者相同,则表示完整性校验结果为通过。若两者不相同,则表示HSM解密操作可能损坏了第一镜像数据,完整性校验结果为不通过。基于此可以完成第一镜像数据的完整性校验。
步骤205,基于完整性校验结果,在预设阶段执行与第一镜像数据对应的安全启动程序。
其中,对于完整性校验结果为通过的第一镜像数据才会执行其对应的安全启动程序,以保证HSM解密操作功能的安全性,实现芯片的安全启动,进而提高智能驾驶的安全性。若完整性校验结果为不通过,则结束启动流程。
在实际应用中,步骤201-202与步骤203-205可以是由同一处理模块实现,也可以是由不同处理模块实现,比如步骤201-202由硬件处理模块实现,步骤203-205由芯片中的安全核实现,硬件处理模块为独立于安全核的硬件电路,具体可以根据实际需求设置。
本实施例提供的芯片的安全启动控制方法,通过在芯片启动过程的预设阶段,对硬件安全模块获得的解密结果中的第一镜像数据进行完整性校验,可以确保硬件安全模块的解密操作未损坏第一镜像数据,从而可以保证硬件安全模块的功能安全性,有效提高芯片启动的安全性。
图3是本公开另一示例性实施例提供的芯片的安全启动控制方法的流程示意图。
在一个可选示例中,在步骤201之前,本公开的方法还可以包括以下步骤:
步骤301,检测硬件安全模块与第一存储器之间的通信握手信号。
其中,第一存储器可以是芯片内部的存储器,具体比如RAM或SRAM(StaticRandom-Access Memory,静态随机存取存储器),硬件安全模块解密获得的解密结果需要存储到第一存储器,供芯片的相应处理器(比如安全核)读取并执行。本公开通过检测硬件安全模块与第一存储器之间的通信握手信号来确定硬件安全模块什么时候向第一存储器传输解密结果。通信握手信号可以根据实际的握手协议确定,比如通信握手信号可以包括有效信号(VALID)和准备就绪信号(READY),具体不做限定。
步骤302,基于通信握手信号,确定有效控制信号。
其中,通过检测通信握手信号,可以确定出硬件安全模块何时开始传输解密结果,基于此可以确定有效控制信号,有效控制信号用于表示可以开始采集或获取硬件安全模块传输的解密结果。比如当检测到VALID和READY后,表示硬件安全模块与第一存储器握手成功,准备传输数据,则确定有效控制信号。
步骤303,响应于有效控制信号,从硬件安全模块所连接的总线获取硬件安全模块传输的解密结果。
其中,当确定出有效控制信号,表示可以开始获取解密结果,则可以从硬件安全模块所连接的总线获取硬件安全模块传输的解密结果。
在一个可选示例中,可以通过总线旁路检测硬件安全模块与第一存储器的通信握手信号。总线旁路可以将硬件安全模块与第一存储器通过总线的通信内容,同时从该旁路传输,该旁路上设置有相应的检测部件,该检测部件可以接收硬件安全模块与第一存储器的通信握手信号和传输的数据,有效控制信号即用于确定是否对数据总线传输的数据进行接收采集,没有有效控制信号时,对数据总线发送的数据不予接收,在确定出有效控制信号后表示数据总线开始传输有效的解密结果,再对数据总线传输的数据进行接收,则可以获得其传输的解密结果。
本公开通过检测硬件安全模块与第一存储器之间的通信握手信息,在确定出有效控制信号后,从硬件安全模块所连接的总线获取解密结果,不会影响硬件安全模块向第一存储器的数据传输,使得完整性验证与解密结果的存储并行处理,有效提高验证效率,进而降低芯片启动流程的时间。
在一个可选示例中,还可以是通过总线旁路将硬件安全模块与第一存储器之间的通信旁路到一硬件处理模块(可以称为硬件加速模块),通过硬件实现完整性校验,或者实现第二校验码的生成,进一步提升校验效率,进而提高芯片启动效率。
在一个可选示例中,在步骤201的从硬件安全模块获得的解密结果中确定预设阶段待校验的第一镜像数据以及第一镜像数据对应的第一校验码之前,还包括:
步骤401,从外部存储设备加载预设阶段对应的加密镜像数据。
其中,外部存储设备是芯片外部的用于存储加密镜像数据的存储设备。在芯片启动过程中,只有初始启动程序是固化在芯片内部的ROM(Read-Only Memory,只读存储器)中,后续启动需要的启动程序均需要从外部加载至内部RAM中,为了保证启动程序的安全性,通常是以加密镜像数据存储在外部存储设备中,因此在启动过程中,每个阶段需要从外部存储设备加载对应的加密镜像数据,想要获得真正的镜像数据,则需要硬件安全模块进行解密处理。
步骤402,将加密镜像数据传输到硬件安全模块,以使硬件安全模块对加密镜像数据进行解密,获得解密结果。
其中,由于需要硬件安全模块对加密镜像数据进行解密处理,因此要将加密镜像数据传输到硬件安全模块,硬件安全模块获取到加密镜像数据,基于硬件安全模块的相关硬件实现对加密镜像数据的解密,获得解密结果。
在一个可选示例中,硬件安全模块可以在获得加密镜像数据之后对加密镜像数据进行验签,验签是指验证数据的合法性,比如在加载及传输加密镜像数据时携带加密镜像数据的证书、数字签名等用于标识合法性的信息;或者可以在解密获得解密结果后,对第一镜像数据进行验签,比如解密结果中还可以包括第一镜像数据的证书、数字签名等用于标识第一镜像数据合法性的信息,基于这些信息对第一镜像数据进行验签,具体验签原理不再赘述。
本公开基于硬件安全模块的硬件对从外部存储设备加载的加密镜像数据进行解密,有效保证解密速度及实时性,从而保证芯片启动的速度,降低芯片启动流程的时间,且外部存储设备存储的是镜像数据的加密数据,进一步保证芯片启动的安全性。
在一个可选示例中,本公开的方法还包括:
步骤403,将解密结果存储到第一存储器。
其中,第一存储器可以为芯片内部的RAM或SRAM,硬件安全模块在完成对加密镜像数据的解密处理后,获得的解密结果可以存储到第一存储器,以供芯片启动流程使用。
步骤203的将第二校验码与第一校验码进行比较,获得比较结果,包括:
步骤2031,向第一寄存器写入完成中断信号。
其中,完成中断信号用于通知相关处理模块(或子模块)当前已完成了第二校验码的生成,则在步骤202确定了第一镜像数据的第二校验码之后,还可以向第一寄存器写入完成中断信号,本公开的装置中具有用于响应中断的相关处理模块或子模块,实时或定时检测第一寄存器的状态。
步骤2032,响应于检测到第一寄存器中的完成中断信号,从第一存储器获取第一校验码。
其中,当检测到第一寄存器中的完成中断信号,表示第二校验码已生成,则可以从第一存储器中获取第一校验码,用于与第二校验码比较。
步骤2033,将第二校验码与第一校验码进行比较,获得比较结果。
示例性的,完整性校验采用的校验算法可以为CRC(循环冗余校验)算法、HASH(哈希)算法等,比如对于HASH算法,第一校验码和第二校验码分别为加密前的第一镜像数据的哈希值及解密后的第一镜像数据的哈希值。第二校验码与第一校验码比较,则为比较两者的值是否相同,获得比较结果。具体比较原理不再赘述。
在一个可选示例中,步骤2033可以通过硬件比较电路实现,以进一步提高校验实时性。
在一个可选示例中,在确定第一校验码之后,还可以将第一校验码写入第三寄存器中,在获得第二校验码之后,还可以将第二校验码写入第四寄存器中,第三寄存器和第四寄存器分别与比较器的输入端连接,作为比较器的两个输入,基于比较器实现第二校验码与第一校验码的比较。
本公开在生成第一镜像数据的第二校验码后,可以通过中断信号以中断响应进行第二校验码与第一校验码的比较,完成完整性校验,从而使得第二校验码的生成可以不占用处理器(比如安全核)的时间,而是以独立于处理器的模块或子模块实现,进一步降低芯片启动的时间延迟,提高实时性。还可以基于硬件实现第二校验码与第一校验码的比较,进一步提升实时性。
在一个可选示例中,步骤202的基于第一镜像数据确定第二校验码,包括:
步骤2021,获取预配置的校验配置信息,校验配置信息包括预设阶段对应的校验算法信息。
其中,校验配置信息可以是预先配置到一定的存储区域中的,比如预先配置到寄存器中,校验算法信息可以包括用于校验的算法模式、计算长度及其他相关信息,具体内容可以根据实际的校验算法确定,本公开不做限定。其中,算法模式可以为具体的校验算法,比如CRC算法、哈希算法,等等。其中,CRC算法是利用除法及余数的原理,实现错误侦测的功能,具体原理不再赘述。哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值,该较短的二进制值称为哈希值,作为校验码。计算长度可以指校验码长度,比如哈希算法,计算获得的哈希值的长度。不同阶段的启动流程可以对应相同或不同的校验配置信息,具体可以根据实际需求设置。
步骤2022,基于校验配置信息及第一镜像数据,生成第一镜像数据的第二校验码。
具体的,基于校验配置信息中的校验算法信息对第一镜像数据进行相应算法的计算,获得第二校验码。
示例性的,基于预设的哈希算法,对第一镜像数据进行哈希计算,计算长度为8位,则获得8位二进制的哈希值作为第二校验码。
本公开通过预配置校验配置信息,用于生成第一镜像数据的第二校验码,可以根据实际需求支持多种校验算法,从而提高通用性。
在一个可选示例中,在步骤201的从硬件安全模块获得的解密结果中确定预设阶段待校验的第一镜像数据以及第一镜像数据对应的第一校验码之前,还包括:
步骤501,从只读存储器获取初始启动程序。
其中,只读存储器为芯片内部ROM,初始启动程序是预先固化在只读存储器中的启动程序,在芯片上电后,芯片启动相关的处理器或处理器核(比如安全核)首先执行ROM中的该初始启动程序,开始芯片的启动流程。
步骤502,执行初始启动程序,获取初始校验配置信息。
其中,初始启动程序功能是进行一些相关的初始化及配置,初始校验配置信息可以是与初始启动程序一起固化在ROM中的信息。可以包括执行初始启动程序所加载的加密镜像数据对应的校验配置信息。
步骤503,基于初始校验配置信息,对芯片的安全启动进行初始配置。
其中,初始配置可以包括基于初始校验配置信息对用于生成第二校验码的模块或子模块进行相应的配置,比如配置相应的校验算法、计算长度等。比如当用于生成第二校验码的模块为独立于安全核的硬件模块时,基于初始校验配置信息对该硬件模块进行配置,使得该硬件模块能够正常完成校验码生成工作。具体配置可以根据实际需求设置。
在一个可选示例中,执行初始启动程序完成的初始化配置还可以包括其他相关的初始化和配置,比如前述的相关启动外设的初始化,具体可以根据实际需求设置。
步骤504,响应于初始配置完成,进入芯片启动过程的预设阶段。
其中,初始化配置完成,需要加载后续需要执行的启动程序的加密镜像数据,比如前述的执行初始启动程序BL0,会完成加载BL1的加密镜像数据,进而通过本公开的方法完成该阶段对BL1的完整性校验,校验通过并执行BL1的安全启动程序,在执行BL1过程中,又会加载BL2的加密镜像数据,再通过本公开的方法完成对BL2的完整性校验,以此类推,直至完成启动流程的所有阶段,即完成芯片的安全启动。
本公开通过初始启动程序实现对芯片的安全启动的初始校验配置信息的配置,使芯片启动能够对硬件安全模块的解密结果进行完整性校验,以保证硬件安全模块解密功能的安全性,提高芯片启动的安全性。
本公开实施例提供的任一种芯片的安全启动控制方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种芯片的安全启动控制方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种芯片的安全启动控制方法。下文不再赘述。
示例性装置
图4是本公开一示例性实施例提供的芯片的安全启动控制装置的结构示意图。该实施例的装置可用于实现本公开相应的方法实施例,如图4所示的装置包括:硬件加速模块61、第一处理模块62、第二处理模块63和第三处理模块64。
硬件加速模块61,与硬件安全模块连接,用于在芯片启动过程的预设阶段,从硬件安全模块获得的解密结果中确定预设阶段待校验的第一镜像数据以及第一镜像数据对应的第一校验码,基于第一镜像数据确定第二校验码;第一处理模块62,与硬件加速模块连接,用于将第二校验码与第一校验码进行比较,获得比较结果;第二处理模块63,用于基于比较结果,确定第一镜像数据的完整性校验结果;第三处理模块64,用于基于完整性校验结果,在预设阶段执行与第一镜像数据对应的安全启动程序。
在一个可选示例中,第一处理模块62、第二处理模块63和第三处理模块64可以是芯片中用于启动的处理器核,比如安全核,安全核的性能具体可以根据实际需求设置,比如可以基于低延迟的处理器核构建成高安全、高可靠、低延迟的满足一定安全等级(比如ASILD(Automotive Safety Integrity Level D,汽车安全完整性等级D))的安全核。
在一个可选示例中,硬件加速模块61和/或第一处理模块62可以是软件模块,也可以是硬件电路模块,具体可以根据实际需求设置。
在一个可选示例中,硬件加速模块61可以是通过总线与第一处理模块62、第二处理模块63及第三处理模块64连接。
本公开通过在芯片启动过程的预设阶段,对硬件安全模块获得的解密结果中的第一镜像数据进行完整性校验,可以确保硬件安全模块的解密操作未损坏第一镜像数据,从而可以保证硬件安全模块的功能安全性,有效提高芯片启动的安全性。
图5是本公开另一示例性实施例提供的芯片的安全启动控制装置的结构示意图。
在一个可选示例中,硬件加速模块61,包括:总线监视器611和校验码生成器612;总线监视器611,通过总线旁路与硬件安全模块连接,用于检测硬件安全模块与第一存储器之间的通信握手信号,基于通信握手信号向校验码生成器发送有效控制信号,有效控制信号用于通知校验码生成器开始采集硬件安全模块传输的解密结果;校验码生成器612,与总线监视器611连接,还通过总线旁路与硬件安全模块连接,用于响应于总线监视器的有效控制信号,从硬件安全模块所连接的总线采集硬件安全模块传输的解密结果,并基于解密结果中的第一镜像数据确定第二校验码。
其中,由于通信握手信号是控制信号,总线监视器611可以是与总线旁路的控制总线连接,以监视通信握手信号。校验码生成器612用于采集传输的解密结果数据,因此可以与总线旁路的数据总线连接,具体可以根据实际需求设置,只要能够实现相应功能即可。总线旁路的功能是使得硬件安全模块与第一存储器的通信内容并行通过总线旁路发送给该硬件加速模块61,以达到通信握手信号的实时检测及解密结果的实时采集。有效控制信号的含义参见前述方法实施例,在此不再赘述。在获得解密结果后校验码生成器612的具体操作可以参见前述方法实施例。
在一个可选示例中,总线监视器611和校验码生成器612可以通过硬件实现,以进一步提高实时性。
本公开基于总线旁路实现解密结果中待校验的镜像数据的校验码等等计算,不会对总线通路上的其他电路造成影响,且可以通过硬件实现硬件安全模块解密结果中待校验的镜像数据的校验码的快速计算,进而由安全处理模块将计算获得的校验码与解码结果中的校验码进行比较,以确定镜像数据的完整性,无需占用软件的计算时间,也不会造成硬件通路上额外的延迟,在保证满足一定安全等级需求的情况下,有效降低整体启动流程时间,从而提高启动速度。
在一个可选示例中,本公开的装置还包括:加载模块65和硬件安全模块66;
加载模块65,用于从外部存储设备加载预设阶段对应的加密镜像数据;硬件安全模块66,与加载模块65连接,用于对加密镜像数据进行解密,获得解密结果。
在一个可选示例中,加载模块65可以是通过总线与硬件安全模块66连接,或者加载模块65作为处理器或处理器核中的模块,通过处理器或处理器核与总线连接,进而与硬件安全模块66连接,具体可以根据实际需求设置。
本公开通过在预设阶段将外部存储设备存储的待执行的安全启动程序的加密镜像数据加载到芯片内部,使得芯片可以通过硬件安全模块解密该加密镜像数据,获得待执行的安全启动程序的镜像数据,为芯片启动提供外部存储功能,降低芯片内部的存储成本。
在一个可选示例中,本公开的装置还包括:第一存储器67;硬件安全模块66,还用于将解密结果存储到第一存储器67。
其中,第一存储器67可以是芯片内部的RAM或SRAM,硬件安全模块66可以通过总线与第一存储器67进行通信。
在一个可选示例中,硬件加速模块61,还包括:第一寄存器613,与第一处理模块62连接,用于存储完成中断信号;硬件加速模块61,还用于在确定第二校验码后,向第一寄存器613写入完成中断信号,以通知第一处理模块62第二校验码已经生成;第一处理模块62,还用于响应于检测到第一寄存器613中的完成中断信号,从第一存储器67获取第一校验码,将第二校验码与第一校验码进行比较,获得比较结果。
其中,第一寄存器613可以为任意可实施的寄存器,比如采用芯片中原有寄存器,或基于本公开的需求增加寄存器,具体可以根据实际需求设置。硬件加速模块61或前述的校验码生成器612在生成第二校验码后,可以将第二校验码写入第一寄存器613,以通知第一处理模块62第二校验码已生成。第一处理模块62可以定时或实时检测第一寄存器613,以响应完成中断信号,完成后续第二校验码与第一校验码的比较,从而完成完整性校验。
在一个可选示例中,还可以是在硬件加速模块61中包括比较器,实现第二校验码和第一校验码的比较,还可以通过相应的比较结果寄存器存储比较结果,该比较结果寄存器可以与第一处理模块61连接,使得第一处理模块62可以直接获得比较结果,进一步提升完整性校验的实时性。
本公开通过第一寄存器存储完成中断信号,从而使得校验码的生成可以独立于处理器,在完成校验码的生成后,通过完成中断信号向处理器发出中断请求,使得处理器响应中断请求进行完整性校验结果的确定,进一步提升实时性。
在一个可选示例中,本公开的装置还包括:第二寄存器68,与硬件加速模块61连接,用于存储校验配置信息,校验配置信息包括该阶段对应的校验算法信息;硬件加速模块61,还用于从第二寄存器68获取校验配置信息,基于校验配置信息及第一镜像数据,生成第一镜像数据的第二校验码。
其中,第二寄存器68可以采用任意可实施的寄存器,具体可以根据实际需求设置,第二寄存器68中存储的内容可以根据启动流程的完整性校验之前的任意时机进行配置,具体可以根据实际需求设置。可选地,各阶段的校验配置信息也可以是与初始启动代码一起预先存储在芯片内的ROM中,具体不做限定。校验配置信息的具体内容及作用原理参见前述实施例,在此不再赘述。
本公开通过第二寄存器存储预设阶段的校验配置信息,以支持预设阶段解密的第一镜像数据的完整性校验,保证校验码的快速生成,进一步提升实时性。
在一个可选示例中,本公开的装置还包括:第二存储器69和初始处理模块70;第二存储器69,用于存储初始启动程序及硬件加速模块61的初始校验配置信息;初始处理模块70,用于执行第二存储器69存储的初始启动程序,进入初始启动阶段,基于初始启动程序,从第二存储器69获取初始校验配置信息,基于初始校验配置信息对硬件加速模块61进行初始化配置,进入芯片启动过程的预设阶段。
其中,第二存储器69可以为芯片中的只读存储器(ROM),在ROM中预先固化有初始启动程序,芯片上电后,初始处理模块70开始工作,执行ROM中的初始启动程序,初始启动程序对硬件加速模块61进行初始化配置,使硬件加速模块61能够正常工作,当然还可以包括对芯片其他相关模块或功能的配置,并引导进入启动过程的预设阶段,在预设阶段完成该阶段对应的启动工作,包括从外部存储设备加载加密镜像数据,传输给硬件安全模块66进行解密,硬件安全模块66解密获得的解密结果分别通过总线和总线旁路传输给第一存储器67和硬件加速模块61,硬件加速模块61获取到解密结果,基于第二寄存器68存储的该阶段的校验配置信息生成解密结果中的第一镜像数据的第二校验码,并向第一寄存器613写入完成中断信号,通知第一处理模块62,第一处理模块62从第一存储器67获取解密结果中的第一校验码,并从硬件安全模块获取第二校验码,将第二校验码与第一校验码进行比较,获得比较结果,进而基于比较结果确定完整性校验结果,响应于完整性校验结果为通过,执行第一镜像数据对应的安全启动程序。具体原理参见前述实施例,在此不再赘述。
本公开通过将初始启动程序预先存储到芯片的只读存储器中,当芯片上电后,用于启动的相关处理器核(比如安全核)可以首先执行只读存储器中的初始启动程序,从而进入芯片的初始启动流程,以引导芯片进入后续启动阶段,实现芯片的安全启动。
在一个可选示例中,硬件加速模块61,还可以包括:
第四寄存器614,与校验码生成器612连接,用于存储第二校验码;
校验码生成器612,还用于将第二校验码写入第四寄存器614。
其中,第四寄存器614可以采用任意可实施的寄存器,具体可以根据实际需求设置。
在一个可选示例中,图6是本公开一示例性实施例提供的硬件加速模块61的结构示意图。在本示例中,硬件加速模块61可以完全或部分通过硬件实现,该硬件加速模块61还可以包括第三寄存器615和比较器616,第三寄存器615用于存储第一校验码。第三寄存器615和第四寄存器614可以分别与比较器616的输入端连接,从而通过硬件实现第二校验码与第一校验码的比较,进一步提升校验实时性。比较器616与第一寄存器613连接,则该完成中断信号可以携带比较器616的比较结果,从而可以将完成中断信号与比较结果一起传输给第一处理模块62,第一处理模块62可以响应中断,直接基于比较结果确定完整性校验结果,进一步提升校验实时性。
在一个可选示例中,本公开的装置还可以包括:外部存储设备71,用于存储加密镜像数据。
图7是本公开再一示例性实施例提供的芯片的安全启动控制装置的结构示意图。在本示例中,上述第一处理模块62、第二处理模块63、第三处理模块64、加载模块65和初始处理模块70为芯片中安全核(Safety Core)中的模块,硬件加速模块61为独立于安全核的硬件模块,安全核、硬件安全模块66、硬件加速模块61、第一存储器67、第二存储器69和外部存储器71通过总线互联。当芯片上电时,安全核启动第二存储器69中固化的初始启动程序,对硬件加速模块61进行初始化配置,使得硬件加速模块61进入正常工作,在启动流程进入预设阶段后,安全核从外部存储器71加载该预设阶段对应的加密镜像数据,并通过总线传输至硬件安全模块66,硬件安全模块66对加密镜像数据进行解密(还可以先进行验签再解密),获得解密结果,并将解密结果通过总线写入第一存储器67,硬件加速模块61通过总线旁路监视硬件安全模块66与第一存储器67的通信握手信号,在确定出有效控制信号后,获取总线传输的解密结果,基于第二寄存器68预配置的校验配置信息生成第一镜像数据的第二校验码,将第二校验码写入第四寄存器614,在生成第二校验码后,向第一寄存器613写入完成中断信号,通知安全核第二校验码已生成,安全核响应完成中断信号,通过总线从第一存储器67获取第一校验码,并从第四寄存器614获取第二校验码,将第二校验码与第一校验码进行比较,获得比较结果,进而基于比较结果,确定完整性校验结果,响应于完整性校验结果为通过,执行第一镜像数据对应的安全启动程序。
本公开通过总线旁路获取硬件安全模块的解密结果,并通过硬件实现第二校验码的生成,相对于由安全核软件计算第二校验码,可以大大降低处理时间,从而有效提高实时性,在保证芯片安全启动的情况下,有效提高芯片安全启动速度。
在一个可选示例中,图8是本公开又一示例性实施例提供的芯片的安全启动控制装置的结构示意图。在本示例中,硬件加速模块61和第二寄存器68可以设置在硬件安全模块66内,硬件安全模块66的解密结果一方面通过总线传输至第一存储器67,另一方面传输至硬件加速模块61,硬件加速模块61生成第一镜像数据的第二校验码并写入第四寄存器614,并向第一寄存器613写入完成中断信号,通知安全核进行后续的比较及其他相关处理,具体参见前述示例,在此不再赘述。
在一个可选示例中,当某预设阶段的第一镜像数据的完整性校验结果为不通过,则芯片安全启动失败,可以进行恢复操作,比如通过软件恢复或者通知外部后恢复,并重新开始执行新的安全启动流程。
本公开通过总线旁路及硬件加速模块实现完整性校验,不会造成芯片硬件通路的额外延迟,且不会影响其他电路,基于硬件还可以快速实现校验码的计算,相对于处理器软件完成完整性校验,可以进一步降低启动时间。且相对于通过硬件安全模块冗余设置(即设置两个硬件安全模块,同时进行解密,两者的解密结果进行比较,若一致则认为校验通过,否则认为校验不通过)实现解密结果的完整性校验,本公开可以有效降低硬件成本。
示例性电子设备
本公开实施例还提供了一种电子设备,包括:存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的芯片的安全启动控制方法。
图9是本公开电子设备一个应用实施例的结构示意图。本实施例中,该电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本公开的各个实施例的方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线***和/或其他形式的连接机构(未示出)互连。
例如,该输入装置13可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。
此外,该输入装置13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图9中仅示出了该电子设备10中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、***的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (14)
1.一种芯片的安全启动控制方法,包括:
在芯片启动过程的预设阶段,从硬件安全模块获得的解密结果中确定所述预设阶段待校验的第一镜像数据以及所述第一镜像数据对应的第一校验码;
基于所述第一镜像数据确定第二校验码;
将所述第二校验码与所述第一校验码进行比较,获得比较结果;
基于所述比较结果,确定所述第一镜像数据的完整性校验结果;
基于所述完整性校验结果,在所述预设阶段执行与所述第一镜像数据对应的安全启动程序。
2.根据权利要求1所述的方法,其中,在所述从硬件安全模块获得的解密结果中确定所述预设阶段待校验的第一镜像数据以及所述第一镜像数据对应的第一校验码之前,还包括:
检测所述硬件安全模块与第一存储器之间的通信握手信号;
基于所述通信握手信号,确定有效控制信号;
响应于所述有效控制信号,从所述硬件安全模块所连接的总线获取所述硬件安全模块传输的所述解密结果。
3.根据权利要求1所述的方法,其中,在从硬件安全模块获得的解密结果中确定所述预设阶段待校验的第一镜像数据以及所述第一镜像数据对应的第一校验码之前,还包括:
从外部存储设备加载所述预设阶段对应的加密镜像数据;
将所述加密镜像数据传输到所述硬件安全模块,以使所述硬件安全模块对所述加密镜像数据进行解密,获得所述解密结果。
4.根据权利要求3所述的方法,还包括:
将所述解密结果存储到第一存储器;
所述将所述第二校验码与所述第一校验码进行比较,获得比较结果,包括:
向第一寄存器写入完成中断信号;
响应于检测到所述第一寄存器中的所述完成中断信号,从所述第一存储器获取所述第一校验码;
将所述第二校验码与所述第一校验码进行比较,获得所述比较结果。
5.根据权利要求1所述的方法,其中,所述基于所述第一镜像数据确定第二校验码,包括:
获取预配置的校验配置信息,所述校验配置信息包括所述预设阶段对应的校验算法信息;
基于所述校验配置信息及所述第一镜像数据,生成所述第一镜像数据的所述第二校验码。
6.根据权利要求1-5任一所述的方法,其中,在所述从硬件安全模块获得的解密结果中确定所述预设阶段待校验的第一镜像数据以及所述第一镜像数据对应的第一校验码之前,还包括:
从只读存储器获取初始启动程序;
执行所述初始启动程序,获取初始校验配置信息;
基于所述初始校验配置信息,对所述芯片的安全启动进行初始配置;
响应于所述初始配置完成,进入所述芯片启动过程的所述预设阶段。
7.一种芯片的安全启动控制装置,包括:
硬件加速模块,与硬件安全模块连接,用于在芯片启动过程的预设阶段,从所述硬件安全模块获得的解密结果中确定所述预设阶段待校验的第一镜像数据以及所述第一镜像数据对应的第一校验码,基于所述第一镜像数据确定第二校验码;
第一处理模块,与所述硬件加速模块连接,用于将所述第二校验码与所述第一校验码进行比较,获得比较结果;
第二处理模块,用于基于所述比较结果,确定所述第一镜像数据的完整性校验结果;
第三处理模块,用于基于所述完整性校验结果,在所述预设阶段执行与所述第一镜像数据对应的安全启动程序。
8.根据权利要求7所述的装置,其中,所述硬件加速模块,包括:总线监视器和校验码生成器;
所述总线监视器,通过总线旁路与所述硬件安全模块连接,用于检测所述硬件安全模块与第一存储器之间的通信握手信号,基于所述通信握手信号向所述校验码生成器发送有效控制信号,所述有效控制信号用于通知所述校验码生成器开始采集所述硬件安全模块传输的所述解密结果;
所述校验码生成器,与所述总线监视器连接,还通过总线旁路与所述硬件安全模块连接,用于响应于所述总线监视器的所述有效控制信号,从所述硬件安全模块所连接的总线采集所述硬件安全模块传输的所述解密结果,并基于所述解密结果中的所述第一镜像数据确定所述第二校验码。
9.根据权利要求7所述的装置,还包括:加载模块和所述硬件安全模块;
所述加载模块,用于从外部存储设备加载所述预设阶段对应的加密镜像数据;
所述硬件安全模块,与所述加载模块连接,用于对所述加密镜像数据进行解密,获得所述解密结果。
10.根据权利要求9所述的装置,还包括:第一存储器;
所述硬件安全模块,还用于将所述解密结果存储到所述第一存储器;
所述硬件加速模块,还包括:
第一寄存器,与所述第一处理模块连接,用于存储完成中断信号;
所述硬件加速模块,还用于在确定所述第二校验码后,向所述第一寄存器写入所述完成中断信号,以通知所述第一处理模块所述第二校验码已经生成;
所述第一处理模块,还用于响应于检测到所述第一寄存器中的所述完成中断信号,从所述第一存储器获取所述第一校验码,将所述第二校验码与所述第一校验码进行比较,获得所述比较结果。
11.根据权利要求7所述的装置,还包括:第二寄存器,与所述硬件加速模块连接,用于存储校验配置信息,所述校验配置信息包括该阶段对应的校验算法信息;
所述硬件加速模块,还用于从所述第二寄存器获取所述校验配置信息,基于所述校验配置信息及所述第一镜像数据,生成所述第一镜像数据的所述第二校验码。
12.根据权利要求7-11任一所述的装置,还包括:第二存储器和初始处理模块;
所述第二存储器,用于存储初始启动程序及所述硬件加速模块的初始校验配置信息;
所述初始处理模块,用于执行所述第二存储器存储的所述初始启动程序,进入初始启动阶段,基于所述初始启动程序,从所述第二存储器获取所述初始校验配置信息,基于所述初始校验配置信息对所述硬件加速模块进行初始化配置,进入所述芯片启动过程的所述预设阶段。
13.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-6任一所述的芯片的安全启动控制方法。
14.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-6任一所述的芯片的安全启动控制方法;或者,
所述电子设备包括:
如权利要求7-12任一所述的芯片的安全启动控制装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211394929.8A CN115795472A (zh) | 2022-11-08 | 2022-11-08 | 芯片的安全启动控制方法、装置、电子设备和存储介质 |
US18/464,368 US20240152621A1 (en) | 2022-11-08 | 2023-09-11 | Control method and apparatus for safety boot of chip, electronic device and storage medium |
JP2023147420A JP2024068626A (ja) | 2022-11-08 | 2023-09-12 | チップのセキュアブート制御方法、装置、電子機器及び記憶媒体 |
EP23197743.0A EP4369233A1 (en) | 2022-11-08 | 2023-09-15 | Control method and apparatus for safety boot of chip, electronic device and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211394929.8A CN115795472A (zh) | 2022-11-08 | 2022-11-08 | 芯片的安全启动控制方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115795472A true CN115795472A (zh) | 2023-03-14 |
Family
ID=85436221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211394929.8A Pending CN115795472A (zh) | 2022-11-08 | 2022-11-08 | 芯片的安全启动控制方法、装置、电子设备和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240152621A1 (zh) |
EP (1) | EP4369233A1 (zh) |
JP (1) | JP2024068626A (zh) |
CN (1) | CN115795472A (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2540408B (en) * | 2015-07-16 | 2021-09-15 | Trw Ltd | Electronic control units for vehicles |
US10719606B2 (en) * | 2018-02-23 | 2020-07-21 | Infineon Technologies Ag | Security processor for an embedded system |
-
2022
- 2022-11-08 CN CN202211394929.8A patent/CN115795472A/zh active Pending
-
2023
- 2023-09-11 US US18/464,368 patent/US20240152621A1/en active Pending
- 2023-09-12 JP JP2023147420A patent/JP2024068626A/ja active Pending
- 2023-09-15 EP EP23197743.0A patent/EP4369233A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240152621A1 (en) | 2024-05-09 |
JP2024068626A (ja) | 2024-05-20 |
EP4369233A1 (en) | 2024-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9886580B2 (en) | Method for optimizing boot time of an information handling system | |
JP5571704B2 (ja) | 周辺デバイスを用いた完全性検証 | |
US9912474B2 (en) | Performing telemetry, data gathering, and failure isolation using non-volatile memory | |
JP2006501581A (ja) | サーバ管理コプロセッササブシステム内部のtcpaによる信頼性の高いプラットフォームモジュール機能のカプセル化 | |
US11755406B2 (en) | Error identification in executed code | |
US10346179B2 (en) | Information processing apparatus, server apparatus, information processing system, control method, and computer program | |
EP3123299A1 (en) | Initialization trace of a computing device | |
CN110875819B (zh) | 密码运算处理方法、装置及*** | |
EP3526716A1 (en) | User and device authentication for web applications | |
WO2022028057A1 (zh) | 一种基于tpm服务器资产信息多层保护的装置及方法 | |
CN111325558A (zh) | 一种刷脸支付方法、装置和设备 | |
CN112148314B (zh) | 一种嵌入式***的镜像验证方法、装置、设备及存储介质 | |
CN107766734A (zh) | 安全启动raid卡方法、装置、设备及计算机可读存储介质 | |
CN114925336A (zh) | 一种激活软件的方法及*** | |
CN112149097B (zh) | 身份认证方法、装置、设备及存储介质 | |
CN111680299A (zh) | 一种基于国产tcm平台的可信嵌入式***的实现方法 | |
WO2020233044A1 (zh) | 一种插件校验方法、设备、服务器及计算机可读存储介质 | |
CN115795472A (zh) | 芯片的安全启动控制方法、装置、电子设备和存储介质 | |
CN113127262A (zh) | 镜像文件的生成方法、装置、电子设备及存储介质 | |
CN115935373A (zh) | 用于保护操作***内核的方法和装置 | |
US11861587B1 (en) | Encrypted multi-factor authentication technologies | |
CN111177752B (zh) | 一种基于静态度量的可信文件存储方法、装置及设备 | |
US11416434B2 (en) | System and method for re-enumerating a secured drive dynamically within an operating system | |
US20240028713A1 (en) | Trust-based workspace instantiation | |
US20230094673A1 (en) | Information handling systems and related methods to prevent tampering and verify the integrity of non-volatile data stored within non-volatile memory |
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 |