CN115935335A - 一种固件的启动方法、芯片及计算设备 - Google Patents
一种固件的启动方法、芯片及计算设备 Download PDFInfo
- Publication number
- CN115935335A CN115935335A CN202211261094.9A CN202211261094A CN115935335A CN 115935335 A CN115935335 A CN 115935335A CN 202211261094 A CN202211261094 A CN 202211261094A CN 115935335 A CN115935335 A CN 115935335A
- Authority
- CN
- China
- Prior art keywords
- core
- key
- memory
- service
- firmware
- 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 81
- 238000012795 verification Methods 0.000 claims description 30
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 230000002441 reversible effect Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 abstract description 35
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 230000008676 import Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000009434 installation Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供一种固件的启动方法,该方法应用于基板管理控制器BMC,BMC包括处理器和第一存储器,处理器中包括:业务核和安全核。在启动处理器的情况下,安全核从第二存储器中获取第二密钥,利用第二密钥对安全核中的固件进行校验;若安全核中的固件校验成功,运行该固件;安全核从第一存储器中获取第一密钥,利用第一密钥对业务核中的固件进行校验;若业务核固件校验成功,运行该固件。将固件安全启动的密钥分为第一密钥和第二密钥,第一密钥和第二密钥存储在不同的存储介质中。在保证固件安全的基础上,可以将业务核开放给用户,用户可以根据需求自主开发和修改业务核代码。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种固件的启动方法、芯片及计算设备。
背景技术
服务器启动过程中,服务器的安全核业务核的安全启动涉及可信根,且安全核核和业务核使用相同的可信根来达到安全启动的目的。一般情况下,服务器生产厂商在生产装备阶段,将可信根烧写到一次性可编程存储器(one time programmable,OTP)中,该根公钥烧写完成以后,就不能更改了。而在实际使用过程中,用户对业务核固件存在开发需求,当业务核固件厂商在根据用户的要求修改业务核固件以后,业务核固件厂商无法获取OTP区域中的可信根为修改后的代码签名。
发明内容
本申请实施例提供了一种固件的启动方法、芯片及计算设备。将固件安全启动的根公钥分为安全核根公钥和业务核根公钥,安全核根公钥存放在OTP区域,业务核根公钥加密后存储在非易失的存储介质上。在保证固件安全的基础上,方便用户更改业务核根公钥信息,以及可以将业务核开放给用户,用户可以根据需求自主开发和修改业务核代码。
第一方面,本申请提供了一种固件的启动方法,应用于基板管理控制器BMC,BMC包括处理器和第一存储器,处理器中包括多个核心,其中多个核心中包括业务核和安全核,业务核用于执行与业务相关的任务,安全核用于执行安全启动任务,安全核包括第二存储器,该方法包括:启动处理器,安全核从第二存储器中获取第二密钥,并根据第二密钥对安全核中的固件进行校验;在对安全核中的固件校验成功的情况下,安全核运行安全核中的固件;安全核从第一存储器中获取第一密钥,并根据第一密钥对业务核中的固件进行校验;在对业务核中的固件校验成功的情况下,业务核运行业务核中的固件。
也就是说,在处理器启动时,安全核可以使用用户设置的业务核根公钥校验用户修改后的业务核中的固件。即将固件安全启动的根公钥分为安全核的根公钥和业务核的根公钥,且安全核的根公钥和业务核的根公钥分开存储。在保证固件安全的基础上,方便用户更改业务核的根公钥信息,以及可以将业务核开放给用户,用户可以根据需求自主开发和修改业务核代码。
在一种可能的实现方式中,该方法还包括:安全核获取第一密钥,并对第一密钥进行校验,第一密钥用于对业务核固件进行校验;在安全核对所述第一密钥校验成功的情况下,安全核将第一密钥存储至第一存储器。
也就是说,当用户需要对业务核的固件进行修改时(即修改业务核代码)。用户可以使用自己设置的业务核密钥(即第一密钥)中的私钥对修改后的业务核固件进行签名。然后,用户可以将自己设置的业务核密钥的公钥(即业务核的根公钥)发送给业务核,业务核将接收到的业务核的根公钥发送给安全核。安全核在对接收到的业务核的根公钥进行验证以后,对该业务核的根公钥进行存储。
在一种可能的实现方式中,在启动处理器之前,该方法还包括:安全核获取业务核发送的第一消息,第一消息用于指示安全核清除第一存储器中的第一密钥;安全核利用第二密钥对第一消息进行校验;在对第一消息校验成功的情况下,安全核清除第一存储器中的第一密钥。
也就是说,在将业务核开放给用户以后,用户还可以清除预先存储的业务核根公钥信息。由于清除业务核的根公钥以后,会影响业务核中的固件的启动。因此,为了避免恶意攻击或者其他误操作,安全核需要谨慎的清除业务核根公钥。即安全核在执行清除业务核根公钥这个操作之前,需要验证该操作的合法性。
在一种可能的实现方式中,安全核获取业务核发送的第一消息之前,方法还包括:业务核获取第一消息,第一消息用于指示安全核清除第一存储器中的第一密钥。
也就是说,由于安全核无法直接接收外部设备发送的信息。因此,需要业务核接收以后再发送给安全核。
在一个可能的实现方式中,安全核在获取到第一密钥以后,该方法还包括:安全核获取业务核发送的第二消息,第二消息用于指示安全核将所述第一密钥存储到所述第一存储器中。
也就是说,业务核在将第一密钥发送给安全核以后,业务核还可以向安全核发送第二消息,以指示安全核将第一密钥保存到第一存储器中。
在一个可能的实现方式中,第二存储器为一次性可编程存储器。
在一个可能的实现方式中,第一存储器为串行外设接口存储芯片或者嵌入式多媒体卡中的重放保护内存块。
在一个可能的实现方式中,当第一存储器为串行外设接口存储芯片时,安全核将所述第一密钥存储至第一存储器,包括:安全核使用非可逆加密算法,生成第三密钥;安全核基于第三密钥使用对称加密算法对第一密钥进行加密;安全核将加密后的第一密钥存储至第一存储器中。
也就是说,在使用串行外设接口存储芯片作为存储业务核根公钥的存储器时,为了保证存储的业务核的根公钥的安全性。在存储业务核的根公钥之前,需要对业务核的根公钥进行加密处理。
第二方面,本申请提供了一种芯片,芯片包括处理器和接口电路,处理器和接口电路电连接,处理器中包括多个核心,其中多个核心中包括业务核和安全核,业务核用于执行与业务相关的任务,安全核用于执行安全启动任务,安全核包括第二存储器;
启动处理器,安全核从第二存储器中获取第二密钥,并根据第二密钥对安全核中的固件进行校验;
在对安全核中的固件校验成功的情况下,安全核运行安全核中的固件;
安全核从第一存储器中获取第一密钥,并根据第一密钥对业务核中的固件进行校验;
在对业务核中的固件校验成功的情况下,业务核运行业务核中的固件。
在一个可能的实现方式中,安全核用于:
获取第一密钥,并对第一密钥进行校验,第一密钥用于对业务核固件进行校验;
在安全核对第一密钥校验成功的情况下,安全核将第一密钥存储至第一存储器。
在一种可能的实现方式中,安全核还用于:
取业务核发送的第一消息,第一消息用于指示安全核清除第一存储器中的第一密钥;
利用第二密钥对第一消息进行校验;
在对第一消息校验成功的情况下,清除第一存储器中的第一密钥。
在一种可能的实现方式中,业务核还用于:
获取第一消息,第一消息用于指示安全核清除第一存储器中的第一密钥。
在一个可能的实现方式中,安全核还用于:
获取业务核发送的第二消息,第二消息用于指示安全核将第一密钥存储到第一存储器中。
在一个可能的实现方式中,第二存储器为一次性可编程存储器。
在一个可能的实现方式中,第一存储器为串行外设接口存储芯片或者嵌入式多媒体卡中的重放保护内存块。
在一个可能的实现方式中,当第一存储器为串行外设接口存储芯片时,安全核用于:
使用非可逆加密算法,生成第三密钥;
基于第三密钥使用对称加密算法对第一密钥进行加密;
将加密后的第一密钥存储至第一存储器中。
第三方面,本申请提供了一种计算设备,该计算设备包括处理器、存储器和BMC;BMC用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第四方面,本申请提供了一种计算机可读介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种固件的启动方法流程图;
图2为本申请实施例提供的一种BMC的结构示意图;
图3为本申请实施例提供的一种固件的启动方法流程图;
图4为本申请实施例提供的一种烧写业务核根公钥信息的方法流程图;
图5a为本申请实施例提供的又一种烧写业务核根公钥信息的方法流程示意图;
图5b为本申请实施例提供的又一种烧写业务核根公钥信息的方法流程示意图;
图6为本申请实施例提供的一种基于安全核密钥的其他密钥的生成过程示意图;
图7为本申请实施例提供的一种基于安全核密钥的其他密钥的的验证过程示意图;
图8为本申请实施例提供的一种清除业务核根公钥的方法流程图;
图9a为本申请实施例提供的又一种清除业务核根公钥的方法流程图;
图9b为本申请实施例提供的又一种清除业务核根公钥的方法流程图;
图10为本申请实施例提供的一种服务器的结构示意图;
图11为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。
在本申请实施例中的描述中,“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应该被理解为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在介绍本发明申请的方案之前,首先对本发明申请实施例中需要用到的关键术语进行解释。
1、生产装备阶段,是指电子设备的单板处于生产或者烧写程序的阶段。其中,单板,可以是指焊接上元器件的电路板。在本发明申请实施例中,单板可以是集成有中央处理器(central processing unit,CPU)、基板管理控制器(baseboard managementcontroller,BMC)、flash、总线或者其他元器件的电路板。
2、现网阶段,与生产装备阶段相对应。在本申请实施例中,现网阶段可以是指电子设备的单板已经被封装成对应的装置,用户可以使用的阶段。
3、业务核,针对异构多核的处理器,可以将该处理器中用于执行与业务相关的任务(包括存储日志、通信、升级等任务)的核心称为业务核。
4、安全核,针对异构多核的处理器,可以将该处理器中用于执行安全启动任务的核心称为安全核。其中,安全核的安全等级高于业务核的安全等级,且安全核是独立于业务核的,即为了保证系统的安全性,安全核是不允许被业务核和外接访问的。
5、固件(Firmware),是指写入可擦写可编程只读存储器(erasable programmableread only memory,EPROM)或电可擦写可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)中的程序。
6、业务核固件,业务核中的固件可以称为业务核固件。
7、安全核固件,安全核中的固件可以称为安全核固件。
接着对本申请涉及的技术方案进行介绍。
随着网络及数据中心的快速发展,数据中心中的电子设备面临着内部或外部的各种安全危险。电子设备的管理系统提供服务器的硬件管理。而电子设备的硬件安全依赖于电子设备自身提供的固件(包括安全核固件和业务核固件)的安全性。
图1示出了一种固件的启动方法。如图1所示,在固件的启动过程中,对固件的安全性验证过程包括:S101-S107。
S101,从OTP寄存器中读取根公钥信息。
S102,使用读取的根公钥信息校验安全核固件。
S103,确定安全核固件是否校验通过,若校验通过,执行S104,否则安全启动失败。
S104,运行安全核固件。
S105,使用读取的根公钥信息校验业务核固件。
S106,确定业务核固件是否校验通过,若校验通过,执行S107,否则安全启动失败。
S107,启动业务核,运行业务核固件。
在图1所示的固件启动过程中。在生产装备阶段,生产厂商就会在OTP寄存器内烧写入根公钥,且烧写的根公钥为可信根,无法更改。在电子设备启动时,会使用OTP寄存器中烧写的根公钥分别校验安全核固件和业务核固件。只有校验通过以后才启动相应的固件。
虽然,图1中示出的固件启动方法能够对固件的安全性进行验证。但是,由于安全核固件和业务核固件在进行安全启动时,使用的是同一个根公钥进行验证,且该根公钥是在生产装备阶段烧写到OTP寄存器中的,无法更改,将会导致后续在现网阶段,用户对业务核固件的代码进行更改后,无法为更改后的代码做签名(用户无法获取OTP寄存器中存储的根公钥对应的私钥)。即修改后的业务核固件的安全性无法得到保障。
而随着开源产品的逐渐盛行,用户对业务核固件也有了开发需求也逐渐增加。因此,为了解决上述方案中,安全核固件和业务核固件在进行安全启动时,使用同一个根公钥进行验证,当这个根公钥在生产装备阶段被烧入OTP寄存器中以后,设备生产厂商无法更改的问题。本申请实施例提供了一种固件的启动方法,可以应用于电子设备的安全启动。电子设备安全启动的根公钥分为安全核的根公钥和业务核的根公钥。将安全核的根公钥存储在OTP寄存器,将业务核的根公钥加密后存储在非易失性存储介质上比如,串行外设接口存储芯片(Serial Peripheral Interfaceflash,SPI flash)。使得在保证安全的基础上,生产厂商可以将业务核开放给用户,用户可以根据生产商的要求修改业务核。
为本申请实施例提供的一种固件的启动方法。在固件启动过程中,安全核通过执行安全启动代码(boot ROM secure boot code,BSBC)获取OTP寄存器中存储的安全核的根公钥,并根据获取的安全核的根公钥校验安全核固件。当安全核固件校验通过以后,安全核运行该安全核固件。然后,安全核从电子设备的非易失性存储介质中读取业务核的根公钥。此时,由于从非易失性存储介质中读取的业务核的根公钥为加密后的业务核的根公钥。因此,安全核在使用该业务核的根公钥验证业务核固件时,还需要对业务核的根公钥进行解密。当安全核对业务核的根公钥解密完成以后,安全核使用解密后的业务核的根公钥校验业务核固件,并在业务核固件校验通过以后启动业务核。业务核启动以后运行业务核固件。
将安全核固件和业务核固件的校验密钥分开,即安全核固件通过OTP寄存器中存储的安全核的根公钥来进行校验,业务核固件通过存储在非易失性存储介质中的业务核的根公钥来进行校验。进一步地,为了保证业务核的根公钥的安全性和合法性,在将业务核的根公钥导入到非易失性存储介质之前,需要使用安全核的根公钥对业务核的根公钥进行校验,并对校验后的业务核的根公钥进行加密。因此,在从非易失性存储介质中读取业务核的根公钥以后,需要对读取的业务核的根公钥进行解密操作。
本申请实施例提供的固件的启动方法,可以应用于电子设备上的BMC。BMC是部署于电子设备单板上具有独立供电、独立I/O接口的控制单元,它不依赖于电子设备的处理器、BIOS或者操作系统来工作,是一个单独在电子设备内运行的无代理管理子系统。当BMC的异构多核处理器时,该处理器中的核心可以划分为安全核和业务核,其中,安全核用于执行BMC内部的安全启动安全校验等与BMC安全相关的任务,业务核用于执行BMC内与业务相关的任务。由于在电子设备上电过程中,先给BMC上电,使得BMC启动,BMC启动以后带动电子设备启动。由于BMC先上电,因此,它可以获得电子设备系统的控制权,所以BMC对于电子设备的安全显得尤为重要。因此,在BMC启动阶段,需要对存储在BMC中的固件(安全核固件和业务核固件)的安全性进行验证。
接下来以BMC上的固件的安全启动为例进行介绍。可以理解的是,本发明申请实施例并不仅仅适用于BMC,对于其他和BMC具有相同结构的设备也同样适用。
示例性的,本申请实施例还提供了一种BMC的结构示意图。如图2所示,BMC可以包括:处理器210,网络接口220,及存储器230。其中,处理器210,网络接口220,及存储器230可通过总线或其他方式连接。
本申请实施例中,处理器210(或称为CPU)是BMC的计算核心及控制核心。在一个示例中,CPU中包含安全核和业务核,其中,安全核用于执行BMC内部的安全启动、安全校验等与BMC安全相关的任务,业务核用于执行BMC内与业务相关的任务。在一个可能的示例中,在安全核中还包括OTP寄存器。
网络接口220可以包括标准的有线接口,无线接口(如WI-FI,移动通信接口等),受处理器210的控制用于收发数据,例如,从网络上接收用户输入的根公钥信息等。其中从网络上接收用户输入的根公钥信息等操作主要由BMC的业务核执行。
存储器230(memory)是服务器的记忆设备,用于存放程序和数据。可以理解的是,此次的存储器230可以是高速RAM存储器,也可以是非易失性存储器(non-volatilememory),例如,SPIflash、至少一个磁盘存储器,还可以是嵌入式多媒体卡(embeddedMulti Media Card,eMMC)的重放保护内存块(replay protected memory block,rpmb);可选地还可以是至少一个位于远离前述处理器210的存储装置。存储器230提供存储空间,该存储空间存储了服务器的操作系统和可执行程序代码,可包括但不限于:Windows系统(一种操作系统),Linux系统(一种操作系统),鸿蒙系统(一种操作系统)等等,在此不做限定。
可以理解的是,本申请实施例图2示意的结构并不构成对BMC的具体限定。在本申请另一些实施例中,BMC可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
示例性的,本申请实施例还提供了一种固件的启动方法,该方法可以但不限于由图2所示的BMC执行。可以理解的是,本示例中所描述的业务核为BMC业务核,安全核为BMC安全核。参见图3,该方法包括:S301-S309。
S301,安全核启动,安全核从OTP寄存器中读取安全核的根公钥信息。
在本实施例中,OTP寄存器也可以称之为第二存储器,安全核的根公钥也可以称之为第二密钥。BMC上电以后,安全核启动,并从OTP寄存器中读取安全核的根公钥信息,用于对安全核固件进行校验。
在一个可能的示例中,若安全核固件是通过安全核的二级密钥进行签名。那么,安全核启动以后,安全核从OTP寄存器中读取安全核的二级密钥的公钥信息。
S302,安全核使用读取的根公钥信息校验安全核固件。
在本实施例中,安全核使用获取的安全核的根公钥对安全核固件中的代码签名进行校验。
S303,安全核确定安全核固件是否校验通过,若校验通过,执行S304,否则安全启动失败。
在本实施例中,安全核在使用安全核的根公钥对安全核固件中的代码签名进行校验时,安全核使用安全核的根公钥对安全核固件的代码签名进行解密,得到安全核固件的代码的摘要。然后,安全核使单向散列函数对安全核固件的代码进行处理,得到另外一份安全核固件的代码的摘要。安全核将两份摘要进行比较,若两份摘要相等,则认为安全核对安全核固件的校验通过。若两份摘要不相等,则认为安全核对安全核固件的校验不通过。
S304,安全核运行安全核固件。
在本实施例中,当安全核校验通过以后,安全核运行安全核固件。否则,安全核判定此次启动失败。
S305,安全核使用派生密钥算法生成业务核的根公钥的加解密密钥。
在本实施例中,业务核的根公钥也可以称之为第一密钥。由于在将业务核的根公钥写入到BMC的存储介质的过程中,为了保证写入后的业务核的根公钥的安全性,对写入的业务核的根公钥进行了加密。因此,当安全核需要从BMC的存储介质中获取业务核的根公钥时需要生成重新生成业务核的根公钥的加解密密钥,也可以称之为第三密钥。可以理解的是,安全核使用派生密钥算法生成业务核的根公钥的加解密密钥对称密钥,即加密密钥和解密密钥是相同的。
S306,安全核从BMC的非易失性存储介质中读取加密的业务核的根公钥信息,并使用生成的加解密密钥对加密的业务核的根公钥信息进行解密。
在本实施例中,BMC的非易失性存储介质也可以称之为第一存储器。安全核可以通过非可逆的加密算法(比如,hmac算法)得到对业务核的根公钥进行解密的密钥。然后,基于得到的密钥,安全核可以使用对称加密算法(比如,aes算法)对获取的业务核的根公钥信息进行解密。
可以理解的是,S304、S305、S306之间是不存在先后顺序的,S304、S305、S306可以同时执行。以及在一些可能的示例中,S305为可选的。当业务核的根公钥存储在eMMC的rpmb区域,安全核从rpmb中读取的业务核的根公钥是不需要解密的(存储时未被加密)。
S307,安全核使用解密得到的业务核的根公钥校验业务核固件。
在本实施例中,安全核使用获取的业务核的根公钥对业务核固件中的代码签名进行校验。具体地,安全核使用解密得到的业务核的根公钥对业务核固件的代码签名进行解密,得到业务核固件的代码的摘要。然后,安全核使单向散列函数对业务核固件的代码进行处理,得到另外一份业务核固件的代码的摘要。安全核将两份摘要进行比较,若两份摘要相等,则认为安全核对业务核固件的校验通过。若两份摘要不相等,则认为安全核对业务核固件的校验不通过。
S308,安全核确定业务核固件是否校验通过,若校验通过,执行S309,否则安全启动失败。
在本实施例中,由于安全核用于执行BMC的安全启动与BMC的安全校验任务。因此,安全核负责对业务核固件进行校验。
S309,启动业务核,业务核运行业务核固件。
在本实施例中,当业务核启动以后,业务核开始运行业务核固件。
在本申请实施例中,将BMC安全启动的根公钥分为安全核的根公钥和业务核的根公钥,安全核的根公钥放在OTP区域,业务核的根公钥信息加密存储在非易失的介质上。在保证安全基础上,方便用户更改业务核的根公钥信息,减少OTP区域使用,减少成本。以及将BMC安全启动的根公钥分为安全核的根公钥和业务核的根公钥以后,可以将业务核开放给客户,客户可以根据生产厂商要求和指导修改业务核的根公钥,客户可以根据需求自主开发和修改业务核代码。
在一个可能的实施例中,在执行S301之前,还需要将用户提供的业务核根公钥烧写到BMC的非易失性存储介质中。示例性的,本申请实施例提供了一种烧写业务核的根公钥信息的方法。该方法可以但不限于由图2所示的BMC执行。可以理解的是,本示例中所描述的业务核为BMC业务核,安全核为BMC安全核。参见图4,该方法包括:S401-S404。
S401,业务核获取业务核的根公钥信息。
在本实施例中,随着开源BMC(OpenBMC)逐渐盛行,生产厂商可以将BMC的业务核开放给用户,即用户可以自行对计算设备上的BMC的业务核固件(业务核固件的代码)进行修改。当用户对BMC上的业务核固件修改以后,为了保证修改后的业务核固件的安全性,用户需要设置相应的业务核密钥也可以称为第一密钥,用于对修改后的业务核固件进行签名。其中,用户设置的业务核的密钥信息为非对称密钥,包括一个公钥和一个私钥。私钥用于对修改后的业务核固件进行签名,公钥用于对业务核固件的签名进行验证。可以使用非对称加密算法得到公钥或者私钥。用户为业务核设置的密钥中的公钥可以称为业务核的根公钥。业务核的根公钥可以是根据用户设定的业务核的私钥生成的。也就是说,业务核的根公钥是基于用户设定的信息生成的,比如用户设定的一个或多个数字。其中,用户设定的信息例如可以为用户设定的私钥。
可以理解的是,在本申请实施例中,对生成公钥和私钥的方法不做限定。本申请实施例中的“签名”是指“数字签名”。数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
在一个可能的示例中,用户在生成业务核的密钥信息以后,用户可以将业务核密钥中的业务核的根公钥信息发生给生产厂商。生产厂商接收到用户的发送的业务核的根公钥信息以后,需要对用户发送的业务核的根公钥信息进行再次签名。由于BMC中的安全核执行的是BMC内部的安全启动安全校验等与BMC安全相关的任务。因此,为了保证安全核的安全性,一般是不会直接使用安全核的根密钥进行安全核固件或者其他信息的签名。在具体实现时,生产厂商可以使用基于安全核的根密钥得到的其他密钥来进行安全核固件和其他信息的签名。其中,安全核根密钥、以及基于安全核的根密钥得到的其他密钥可以统称为安全核密钥或者第二密钥。
在一个可能的示例中,如图5a所示,生产厂商接收到用户发送的业务核的根公钥以后,生产厂商可以使用安全核的二级密钥中的私钥,对用户发送的业务核的根公钥信息进行签名。生产厂商对用户发送的业务核的根公钥完成签名以后,可以将该签名完成的业务核的根公钥发送给BMC业务核。即BMC业务核接收到的业务核的根公钥信息为,使用BMC安全核的二级密钥签名的后的业务核的根公钥信息。
在另一个可能的示例中,由于安全核的二级密钥除了对业务核的根公钥信息进行签名以外,也会用于安全核固件代码签名使用。而对业务核的根公钥信息进行签名,涉及对外业务。为了保证安全核固件的安全性,在理论上是不应该使用安全核的二级密钥的(即对业务核的根公钥进行签名的密钥应该与对安全核固件代码签名的密钥进行区分)。因此,可以使用安全核的根公钥的三级密钥来对用户生成的业务核的根公钥信息进行签名。如图5b所示,生产厂商接收到用户发送的业务核的根公钥以后,生产厂商可以使用安全核的根公钥的三级密钥中的私钥,对用户发送的业务核的根公钥信息进行签名。生产厂商对用户发送的业务核的根公钥完成签名以后,可以将该签名完成的业务核的根公钥发送给BMC业务核。即BMC业务核接收到的业务核的根公钥信息为,使用BMC安全核的三级密钥签名的后的业务核的根公钥信息。
S402,业务核获取到业务核的根公钥信息以后,业务核将获取的业务核的根公钥信息发送给安全核。
在本实施例中,业务核接收到业务核的根公钥信息以后,由于业务核并不执行与BMC安全相关的任务,业务核还需要将该公钥信息发送给安全核,由安全核进行处理。
在一个可能的示例中,业务核在将业务核的根公钥信息发送给安全核以后,BMC还需要向安全核发送使能指令,该指令用于指示安全核对业务核根公钥进行使能。具体地,业务核可以执行预置的代码触发业务核生成使能指令。其中,该使能命令用于触发安全核将业务核的根公钥信息烧写到BMC的非易失性存储介质中,以及向BMC的非易失性存储介质中烧写业务核的根公钥对应的使能信息。
S403,安全核对接收到的业务核的根公钥信息进行验证。
在本实施例中,为了保证安全核密钥不被泄露以及安全核固件的安全性。安全核在使用安全核密钥对安全核固件进行签名时,安全核可以使用基于安全核的根密钥得到的其他密钥对安全核固件进行加密。其中,安全核的根密钥包括:安全核的根公钥和安全核的根私钥。基于安全核根密钥得到的其他密钥可以是安全核密钥的二级密钥、三级密钥等。其中,安全核的二级密钥的公钥证书可以使用安全核的根公钥进行验证,安全核的三级密钥的公钥证书可以使用安全核的二级密钥的公钥进行验证。因此,安全核的二级密钥也可以指安全核的根公钥的二级密钥,安全核的三级密钥也可以指安全核的二级密钥的公钥的三级密钥。
在一个可能的示例中,当安全核的二级密钥用于对安全核固件代码签名时,为了保证安全核固件的安全性,可以在安全核的二级密钥的基础上派生得到安全核的三级密钥,将安全核的三级密钥用于其他业务。比如,如图6所示,可以将安全核的三级密钥用于业务核的根公钥导入业务或者业务核的根公钥的清除业务。此时,生成的安全核的三级密钥证书也可以称为业务核的根公钥导入证书或者业务核的根公钥清除证书。
在一个可能的示例中,若安全核接收到的业务核的根公钥信息,经由生产厂商使用安全核的二级密钥的私钥进行签名。那么,如图5a所示,安全核接收到该业务核的根公钥信息以后,需要获取安全核的二级密钥。具体地,安全核可以通过获取安全根公钥的二级密钥证书来获取安全核的二级密钥公钥。然后,安全核可以使用该二级密钥公钥校验业务核的根公钥信息,以保证安全核接收到的业务核的根公钥信息是用户需要写入到BMC的非易失性存储介质中的业务核的根公钥信息。
在另一个可能的示例中,若安全核接收到的业务核的根公钥信息,经由生产厂商使用安全核的三级密钥的私钥进行签名。那么,如图5b所示,安全核接收到该业务核的根公钥信息以后,需要获取安全核的二级密钥,并使用安全核的二级密钥验证安全核的三级密钥证书(也可以称之为业务核的根公钥导入证书),以保证用于验证业务核的根公钥的三级密钥是正确且合法的。当安全核对三级密钥证书的验证通过以后,安全核获取三级密钥证书中的安全的三级密钥公钥。然后,安全核可以使用该三级密钥公钥校验业务核的根公钥信息,以保证安全核接收到的业务核的根公钥信息是用户需要写入到BMC存储介质中的业务核的根公钥信息。
当安全核使用安全核的三级密钥以后,二级密钥证书和三级密钥证书也需要放到安全固件中,以便于安全核在使用安全核密钥(包括二级密钥和三级密钥)进行验证时,可以进行逐级校验。此时,在安全核根密钥、安全核的二级密钥证书以及安全核的三级密钥证书之间可以形成一条证书链。以安全核校验业务核的根公钥信息为例。安全核使用安全核的三级密钥校验业务核的根公钥信息的过程如图7所示。安全核的根公钥可以校验安全核的二级密钥证书。基于安全核的二级密钥证书校验通过,安全核提取该二级密钥证书中的二级密钥公钥,并使用该二级密钥公钥校验安全核的三级密钥证书。基于安全核的三级密钥证书校验通过,安全核提取该三级密钥证书中的三级密钥公钥,并使用该三级密钥公钥校验业务核的根公钥信息。
S404,基于安全核对业务核的根公钥信息验证通过,安全核对业务核的根公钥信息进行加密,并将加密以后的业务核的根公钥信息存储到BMC的非易失性存储介质中。
在本实施例中,当安全核对接收到的业务核的根公钥信息验证通过以后,安全核可以将该验证通过的业务核的根公钥信息写入到BMC的非易失性存储介质中,该非易失性存储介质也可以称为第一存储器。由于,存储到BMC存储介质中的安全核的根公钥信息存在被篡改的风险。所以,为了保证存储后的业务核的根公钥信息的安全性,安全核需要对验证通过的业务核的根公钥信息进行加密。然后,安全核将加密后的业务核的根公钥信息存储到BMC的非易失性存储介质中。
在一个可能的示例中,安全核可以将加密后的业务核的根公钥信息存储在BMC的SPI flash中。当安全核在将验证通过的业务核的根公钥信息存储到BMC的SPI flash中时,安全核可以通过hmac算法得到对业务核的根公钥进行加密的密钥,也可以称之为第三密钥。然后,基于得到的密钥,安全核可以使用aes算法对验证通过的业务核的根公钥信息进行加密存储。
在另一个可能的示例中,对于使用eMMC启动的电子设备,安全核可已将加密后的业务核的根公钥信息存储在eMMC的rpmb区域。因为,rpmb为安全存储,安全核读写业务核的根公钥时无需再进行加解密操作。但是,rpmb的访问时需要密钥的。具体地,安全核可以通过hmac算法得到访问rpmb的密钥。对于使用eMMC启动的单板,直接使用rpmb区域,减少加解密的动作,加速安全启动。
可以理解的是,在本实施例中主要是通过BMC的安全核将用户生成的业务核的根公钥信息存储到BMC的非易失性存储介质中,使得用户在对BMC业务核固件的代码进行修改以后,可以使用用户生成的业务核私钥对修改后的业务核固件的代码进行签名。以及,在BMC启动修改后的业务核固件时,可以通过存储在BMC非易失性存储介质中的业务核的根公钥,对业务核固件进行校验,以完成业务核固件的安全启动。
在一个可能的示例中,用户在获取到BMC业务核固件的开源代码以后,用户可以根据需要对业务核固件的开源代码进行修改。当用户对业务核固件的代码修改完成以后,用户使用用户自己生成的业务核密钥中的私钥对业务核固件代码进行签名,并生成新的业务核固件的安装包。然后用户将新生成的业务核固件安装包发生给BMC业务核,使得BMC业务核可以根据新生成的业务核固件安装包,升级业务核固件。升级以后的业务核固件在进行安全启动时,需要使用与对该业务核固件进行签名的业务核私钥,对应的业务核的根公钥进行验证。
用户在对BMC的业务核固件进行修改之前,用户需要生成用于对该业务核固件的进行签名和验证的业务核密钥信息。当用户对BMC业务核固件修改完成以后,用户需要使用预先生成的业务核私钥对修改后的业务核固件进行签名。当用户完成对修改后的业务核固件进行签名以后,用户还需要生成该业务核固件的安装包,并将该安装包发送给BMC业务核,以使BMC业务核根据该安装包升级业务核固件。可以理解的是,用户将生成的业务核固件安装包发送给BMC业务核,以及用户将生成业务核的根公钥信息通过生产厂商发送给BMC业务核,这两个动作之间是没有先后顺序的。只要能保证在启动修改后的业务核固件时,用于验证该业务核固件的业务核的根公钥信息已经被写入到BMC的非易失性存储介质中。
在本申请实施例中,在BMC的安全启动过程中,安全核固件与业务核固件使用不同的根公钥,可以方便原始设备厂商(original equipment manufacturer,OEM)的客户设置自己的业务核的根公钥。在大多数情况下,OEM厂商的客户的开发修改主要聚集在业务核上,安全核的根公钥可以保证业务核的根公钥导入和删除是合法的,安全核可以现网导入和擦除业务核的根公钥信息。
当用户将设置的业务核的根公钥导入到BMC的非易失性存储介质中以后,用户还可以对设置的业务核的根公钥进行修改。可以理解的是,当用户更改了BMC中存储的业务核的根公钥以后,还需要同步更新业务核固件,以保证BMC中的业务核的根公钥更新以后,BMC的业务核固件能够被正确启动。
示例性的,本发明申请实施例提供了一种清除业务核的根公钥的方法。该方法可以但不限于由图2所示的BMC执行。参见图8,该方法包括:S801-S804。
S801,业务核接收生产厂商发送的业务核的根公钥清除命令。
在本实施例中,生产厂商可以通过向业务核发送第一消息的方式来发送业务核的根公钥清除命令。其中,第一消息用于指示安全核清除BMC的非易失性存储介质(即上述实施例中的第一存储器)中的业务核根公钥信息(即上述实施例中的第一密钥)。
当用户需要清除预先写入到BMC的非易失性存储介质中的业务核的根公钥信息时,用户需要向生产厂商发送业务核的根公钥清除命令。生产厂商接收到用户发送的业务核的根公钥清除命令以后,生产厂商使用安全核的根公钥信息对用户发送的业务核的根公钥清除命令进行签名。
在一个可能的示例中,如图9a所示,生产厂商接收到用户发送的业务核的根公钥清除命令以后,生产厂商可以使用安全核的二级密钥中的私钥,对用户发送的业务核的根公钥清除命令进行签名。生产厂商对用户发送的业务核的根公钥清除命令完成签名以后,可以将该签名完成的业务核的根公钥清除命令发送给BMC业务核。在另一个可能的示例中,如图9b所示,生产厂商接收到用户发送的业务核的根公钥清除命令以后,生产厂商可以使用安全核的根公钥的三级密钥中的私钥,对用户发送的业务核的根公钥清除命令进行签名。生产厂商对用户发送的业务核的根公钥清除命令完成签名以后,可以将该签名完成的业务核的根公钥清除命令发送给BMC业务核。
S802,业务核向安全核发送业务核的根公钥清除命令。
在本实施例中,业务核接收到业务核的根公钥清除命令以后,由于业务核并不执行与BMC安全相关的任务,业务核还需要将接收到的业务核的根公钥清除命令发送给安全核,由安全核进行处理。
S803,安全核对业务核发送的业务核的根公钥清除命令进行验证。
在本实施例中,由于清除BMC存储介质中的业务核的根公钥以后,会影响BMC上的业务核固件的启动。因此,为了避免恶意攻击或者其他误操作,安全核需要谨慎的清除业务核的根公钥。即安全核在执行清除业务核的根公钥这个操作之前,需要验证业务核的根公钥的清除命令是否合法。
在一个可能的示例中,若安全核接收到的业务核的根公钥清除命令,经由生产厂商使用安全核的二级密钥的私钥进行签名。那么,如图9a所示,安全核接收到业务核的根公钥清除命令以后,需要获取安全核的二级密钥。具体地,安全核可以通过获取安全根公钥的二级密钥证书来获取安全核的二级密钥公钥。然后,安全核可以使用该二级密钥公钥校验业务核的根公钥清除命令,以保证接收到的业务核的根公钥清除命令是合法的。
在另一个可能的示例中,若安全核接收到的业务核的根公钥清除命令,经由生产厂商使用安全核的三级密钥的私钥进行签名。那么,如图9b所示,安全核接收到业务核的根公钥清除命令以后,需要获取安全核的二级密钥,并使用安全核的二级密钥验证安全核的三级密钥证书(也可以称之为业务核的根公钥清除证书),以保证用于验证业务核的根公钥清除命令的三级密钥是正确且合法的。当安全核对三级密钥证书的验证通过以后,安全核获取三级密钥证书中的安全的三级密钥公钥。然后,安全核可以使用该三级密钥公钥校验业务核的根公钥清除命令,以保证接收到的业务核的根公钥清除命令是合法的。
S804,若业务核的根公钥清除命令验证通过,安全核将业务根公钥信息从BMC的存储区域中清除。
在本实施例中,当安全核对接收到的业务核的根公钥清除命令验证通过以后,安全核可以执行该业务核的根公钥清除命令。
在一个可能的实施例中,在清除掉业务核的根公钥以后,用户可以导入新的业务核的根公钥信息。当用户导入新的业务核的根公钥信息以后,还需同步升级与该新导入的业务核的根公钥信息对应的业务核固件。
基于上述实施例中的方法,本申请实施例还提供一种服务器,请参阅图10,图10为本申请实施例提供的一种服务器的结构示意图。如图10所示,该服务器包括:处理器、存储器、网络接口和BMC。其中,服务器上部署的BMC可以是如图2所示的BMC。当服务器上的BMC运行时,该BMC可以执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机程序产品,其特征在于,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算设备,计算设备包括主板和芯片。其中,芯片集成在主板上,芯片包括至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述实施例中的方法。在本申请实施例中,计算设备可以是服务器、主机等网络设备。芯片可以是BMC、存储BIOS的芯片等。在本申请实施例中对计算设备的类型和芯片的类型并不做限定。
需要说明的是,在其他实施例中,BMC在不同计算设备中有不同的称呼,例如华为服务器、超聚变服务器的BMC为iBMC,HPE服务器的BMC称为iLO,DELL服务器的BMC称为iDRAC。
基于上述实施例中的方法,本申请实施例还提供了一种芯片。请参阅图11,图11为本申请实施例提供的一种芯片的结构示意图。如图11所示,芯片1100包括一个或多个处理器1101以及接口电路1102。可选的,芯片1100还可以包含总线1103,处理器1101还可以包括业务核和安全核,安全核中还可以包括OTP寄存器(图11中未示出)。
处理器1101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1101可以是通用处理器、数字通信器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
接口电路1102可以用于数据、指令或者信息的发送或者接收,处理器1101可以利用接口电路1102接收的数据、指令或者其它信息,进行加工,可以将加工完成信息通过接口电路1102发送出去。
可选的,芯片1100还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(NVRAM)。
可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
可选的,接口电路1102可用于输出处理器1101的执行结果。
需要说明的,处理器1101、接口电路1102各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
应理解,上述方法实施例的各步骤可以通过处理器中的硬件形式的逻辑电路或者软件形式的指令完成。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
Claims (17)
1.一种固件的启动方法,其特征在于,应用于基板管理控制器BMC,所述BMC包括处理器和第一存储器,所述处理器中包括多个核心,其中所述多个核心中包括业务核和安全核,所述业务核用于执行与业务相关的任务,所述安全核用于执行安全启动任务,所述安全核包括第二存储器,所述方法包括:
启动所述处理器,所述安全核从所述第二存储器中获取第二密钥,并根据所述第二密钥对所述安全核中的固件进行校验;
在对所述安全核中的固件校验成功的情况下,所述安全核运行所述安全核中的固件;
所述安全核从所述第一存储器中获取所述第一密钥,并根据所述第一密钥对所述业务核中的固件进行校验;
在对所述业务核中的固件校验成功的情况下,所述业务核运行所述业务核中的固件。
2.根据权利要求1所述的方法,其特征在于,在启动所述处理器之前,所述方法还包括:
所述安全核获取第一密钥,并对所述第一密钥进行校验,所述第一密钥用于对业务核固件进行校验;
在所述安全核对所述第一密钥校验成功的情况下,所述安全核将所述第一密钥存储至第一存储器。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述安全核获取所述业务核发送的第一消息,所述第一消息用于指示所述安全核清除所述第一存储器中的第一密钥;
所述安全核利用所述第二密钥对所述第一消息进行校验;
在对所述第一消息校验成功的情况下,所述安全核清除所述第一存储器中的所述第一密钥。
4.根据权利要求3所述的方法,其特征在于,所述安全核获取所述业务核发送的第一消息之前,所述方法还包括:
所述业务核获取所述第一消息,所述第一消息用于指示所述安全核清除所述第一存储器中的第一密钥。
5.根据权利要求2所述的方法,其特征在于,所述安全核在获取到所述第一密钥以后,所述方法还包括:
所述安全核获取所述业务核发送的第二消息,所述第二消息用于指示所述安全核将所述第一密钥存储到所述第一存储器中。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第二存储器为一次性可编程存储器。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述第一存储器为串行外设接口存储芯片或者嵌入式多媒体卡中的重放保护内存块。
8.根据权利要求7所述的方法,其特征在于,当所述第一存储器为串行外设接口存储芯片时,所述安全核将所述第一密钥存储至第一存储器,包括:
所述安全核使用非可逆加密算法,生成第三密钥;
所述安全核基于所述第三密钥使用对称加密算法对所述第一密钥进行加密;
所述安全核将加密后的所述第一密钥存储至所述第一存储器中。
9.一种芯片,所述芯片包括处理器、第一存储器和接口电路,所述处理器和所述接口电路电连接,所述处理器中包括多个核心,其中所述多个核心中包括业务核和安全核,所述业务核用于执行与业务相关的任务,所述安全核用于执行安全启动任务,所述安全核包括第二存储器;
启动所述处理器,所述安全核从所述第二存储器中获取第二密钥,并根据所述第二密钥对所述安全核中的固件进行校验;
在对所述安全核中的固件校验成功的情况下,所述安全核运行所述安全核中的固件;
所述安全核从所述第一存储器中获取所述第一密钥,并根据所述第一密钥对所述业务核中的固件进行校验;
在对所述业务核中的固件校验成功的情况下,所述业务核运行所述业务核中的固件。
10.根据权利要求9所述的芯片,其特征在于,所述安全核用于:
获取第一密钥,并对所述第一密钥进行校验,所述第一密钥用于对业务核固件进行校验;
在所述安全核对所述第一密钥校验成功的情况下,所述安全核将所述第一密钥存储至第一存储器。
11.根据权利要求9或10所述的芯片,其特征在于,所述安全核还用于:
取所述业务核发送的第一消息,所述第一消息用于指示所述安全核清除所述第一存储器中的第一密钥;
利用所述第二密钥对所述第一消息进行校验;
在对所述第一消息校验成功的情况下,清除所述第一存储器中的所述第一密钥。
12.根据权利要求11所述的芯片,其特征在于,所述业务核还用于:
获取所述第一消息,所述第一消息用于指示所述安全核清除所述第一存储器中的第一密钥。
13.根据权利要求10所述的芯片,其特征在于,所述安全核还用于:
获取所述业务核发送的第二消息,所述第二消息用于指示所述安全核将所述第一密钥存储到所述第一存储器中。
14.根据权利要求9-13任一项所述的芯片,其特征在于,所述第二存储器为一次性可编程存储器。
15.根据权利要求9-13任一项所述的芯片,其特征在于,所述第一存储器为串行外设接口存储芯片或者嵌入式多媒体卡中的重放保护内存块。
16.根据权利要求15所述的芯片,其特征在于,当所述第一存储器为串行外设接口存储芯片时,所述安全核用于:
使用非可逆加密算法,生成第三密钥;
基于所述第三密钥使用对称加密算法对所述第一密钥进行加密;
将加密后的所述第一密钥存储至所述第一存储器中。
17.一种计算设备,其特征在于,所述计算设备包括处理器、存储器和BMC,所述BMC用于执行所述如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211261094.9A CN115935335A (zh) | 2022-10-14 | 2022-10-14 | 一种固件的启动方法、芯片及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211261094.9A CN115935335A (zh) | 2022-10-14 | 2022-10-14 | 一种固件的启动方法、芯片及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115935335A true CN115935335A (zh) | 2023-04-07 |
Family
ID=86556688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211261094.9A Pending CN115935335A (zh) | 2022-10-14 | 2022-10-14 | 一种固件的启动方法、芯片及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115935335A (zh) |
-
2022
- 2022-10-14 CN CN202211261094.9A patent/CN115935335A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3458999B1 (en) | Self-contained cryptographic boot policy validation | |
US8239688B2 (en) | Securely recovering a computing device | |
TWI598814B (zh) | 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法 | |
US8560823B1 (en) | Trusted modular firmware update using digital certificate | |
US9652755B2 (en) | Method and system for securely updating field upgradeable units | |
CN102063591B (zh) | 基于可信平台的平台配置寄存器参考值的更新方法 | |
KR100657532B1 (ko) | 전자 장치 보안 방법, 보안 시스템 및 전자 장치 | |
CN111984962B (zh) | 固件安全验证方法及装置 | |
EP2727040B1 (en) | A secure hosted execution architecture | |
EP3343424B1 (en) | Control board secure start method, and software package upgrade method and device | |
CN110688660B (zh) | 一种终端安全启动的方法及装置、存储介质 | |
KR20090067154A (ko) | 신뢰 상태를 확인하는 데 사용되는 휴대용 장치 | |
CN110795126A (zh) | 一种固件安全升级系统 | |
CN112181513B (zh) | 一种基于硬件板卡的控制主机系统引导的可信度量方法 | |
JP6930884B2 (ja) | Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム | |
CN109814934B (zh) | 数据处理方法、装置、可读介质和系统 | |
CN116070217A (zh) | 一种用于芯片模块的安全启动系统及其启动方法 | |
CN111177709A (zh) | 一种终端可信组件的执行方法、装置及计算机设备 | |
CN112148314B (zh) | 一种嵌入式系统的镜像验证方法、装置、设备及存储介质 | |
CN115329321A (zh) | 一种固件的启动方法、芯片及计算设备 | |
EP3356987B1 (en) | Securely writing data to a secure data storage device during runtime | |
KR102089435B1 (ko) | 안전한 usb 장치를 보장하는 부트 방법 | |
JP7508571B2 (ja) | 車両の安全始動方法、安全始動装置、電子制御ユニット及び記憶媒体 | |
CN115935335A (zh) | 一种固件的启动方法、芯片及计算设备 | |
US20240037216A1 (en) | Systems And Methods For Creating Trustworthy Orchestration Instructions Within A Containerized Computing Environment For Validation Within An Alternate Computing Environment |
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 |