CN109446815A - 基本输入输出系统固件的管理方法、装置和服务器 - Google Patents
基本输入输出系统固件的管理方法、装置和服务器 Download PDFInfo
- Publication number
- CN109446815A CN109446815A CN201811159841.1A CN201811159841A CN109446815A CN 109446815 A CN109446815 A CN 109446815A CN 201811159841 A CN201811159841 A CN 201811159841A CN 109446815 A CN109446815 A CN 109446815A
- Authority
- CN
- China
- Prior art keywords
- bios
- firmware
- processor
- signature
- server
- 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.)
- Granted
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/575—Secure boot
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种基本输入输出系统BIOS固件的管理方法、装置和服务器,能够解决BIOS固件的安全性低的问题。该方法包括:基板管理控制器BMC中的第一处理器获取BIOS固件和BIOS固件的签名,BIOS固件包括服务器的基本输入输出程序,BIOS固件的签名用于对BIOS固件进行鉴权,第一处理器用于对服务器中待运行或待存储的软件代码进行签名校验;第一处理器将BIOS固件和BIOS固件的签名存储至安全存储区域,安全存储区域仅支持第一处理器的访问;第一处理器根据BIOS固件的签名,对安全存储区域中的BIOS固件进行签名校验,以此提升BIOS固件的安全性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基本输入输出系统固件的管理方法、装置和服务器。
背景技术
基本输入输出系统(basic input output system,BIOS)固件是一组存储至服务器BIOS闪存(Flash)的程序,其包括服务器中最重要的基本输入输出程序、开机后自检程序和系统自启动程序等。一旦BIOS固件的完整性被破坏,服务器则无法正常运行。而且,由于BIOS固件中存储有中央处理单元(central processing unit,CPU)运行的首段代码,如果BIOS固件被植入恶意程序,则攻击者可以监控操作系统(operating system,OS),并且可以绕过操作系统重重防护记录系统输入输出信息,存在较大安全隐患。
目前,为了防止BIOS固件被恶意攻击,破坏其完整性,服务器中的基板管理控制器(baseboard management controller,BMC)支持安全启动技术,通过对BIOS固件进行签名校验保障BIOS固件的安全性。其中,BMC通过内部总线与BIOS闪存相连,BMC是一个独立的系统,它不依赖与系统上的其它硬件(比如CPU、内存等)。BMC可以负责管理BIOS固件。然而,由于BMC的操作系统比较复杂,往往运行有多种应用,存在多样化的对外接口,导致BMC可被攻击的可能性较大,BIOS固件的安全性低。
发明内容
本申请提供一种BIOS固件的管理方法、装置和服务器,以解决BIOS固件的安全性低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种BIOS固件的管理方法。具体的,BMC中的第一处理器在获取到BIOS固件和BIOS固件的签名后,将获取到的BIOS固件和BIOS固件的签名存储至安全存储区域,该安全存储区域仅支持第一处理器的访问;然后,第一处理器根据BIOS固件的签名,对安全存储区域中的BIOS固件进行签名校验。这里,BIOS固件包括服务器的基本输入输出程序,BIOS固件的签名用于对BIOS固件进行鉴权,第一处理器用于对服务器中待运行/待存储的软件代码进行签名校验。
由于安全存储区域仅支持第一处理器的访问,因此,本申请提供的BIOS固件的管理方法中,只有BMC中第一处理器能获取到存储至安全存储区域中的BIOS固件和BIOS固件的签名,并对该BIOS固件进行签名校验,也就是将BMC中的其他组件和存储BIOS固件的存储区域进行隔离,仅第一处理器可以获取该BIOS固件,有效的预防了攻击者对未校验的BIOS固件的攻击,提高了BIOS固件的安全性。
在一种可能的实现方式中,上述“第一处理器获取BIOS固件和BIOS固件的签名”的方法为:第一处理器从服务器的BIOS闪存中读取BIOS固件和BIOS固件的签名。
第一处理器用于对服务器中待运行/待存储的软件代码进行签名校验,这里,待运行的软件代码可以为服务器上电后待启动的BIOS固件。在服务器上电后,BIOS固件启动前的应用场景中,待运行的软件代码为BIOS固件,该BIOS固件存储至BIOS闪存。第一处理器对该BIOS固件进行签名校验时,需要从BIOS闪存中读取BIOS固件和BIOS固件的签名。相应的,若第一处理器确定待运行的BIOS固件校验成功,则第一处理器还控制服务器的处理器运行BIOS固件。由于第一处理器对BIOS固件的签名校验是在安全存储区域中进行的,有效的保证了校验过程中BIOS固件的安全性。
在另一种可能的实现方式中,BMC除了包括第一处理器,还包括用于运行BMC中业务软件的第二处理器,该第二处理器能够接收到客户端发送的BIOS固件(这里的BIOS固件为升级BIOS固件)和BIOS固件的签名,并将该BIOS固件和BIOS固件的签名存储至非安全存储区域,该非安全存储区域与上述安全存储区域为不同的存储区域。在需要将BIOS闪存中的原始BIOS固件进行升级的场景中,第二处理器向第一处理器发送安全升级命名,用于指示更新服务器的BIOS闪存中的原始BIOS固件。响应于该安全升级命令,第一处理器从非安全存储区域获取BIOS固件和BIOS固件的签名。进一步地,第一处理器将获取到的BIOS固件和BIOS固件的签名存储至安全存储区域。
第一处理器从非安全存储区域获取BIOS固件和BIOS固件的签名,并将获取到的BIOS固件和BIOS固件的签名存储至安全存储区域,进而根据BIOS固件的签名,对安全存储区域中的BIOS固件进行签名校验。由于安全存储区域仅支持第一处理器的访问,因此,只有BMC中第一处理器能获取到存储至安全存储区域中的BIOS固件和BIOS固件的签名,并对该BIOS固件进行签名校验,也就是将BMC中的其他组件和存储BIOS固件的存储区域进行隔离,仅第一处理器可以获取该BIOS固件。有效的预防了攻击者对未校验的BIOS固件的攻击,提高了BIOS固件的安全性。
容易理解的是,在对BIOS闪存中的原始BIOS固件进行升级的场景中,当第一处理器确定安全存储区域中的BIOS固件校验成功之后,第一处理器将BIOS闪存中的原始BIOS固件更新为BIOS固件。具体的,在确定安全存储区域中的BIOS固件校验成功之后,第一处理器擦除原始BIOS固件,并将安全存储区域中的BIOS固件写入BIOS闪存。
在另一种可能的实现方式中,BIOS闪存的访问通道仅支持第一处理器的访问。也就是说,BMC中除了第一处理器之外,其他组件均无法访问BIOS闪存。由于第一处理器用于对服务器中待运行或待存储的软件代码进行签名校验,因此,第一处理器可对BIOS闪存中的BIOS固件进行签名校验。
在另一种可能的实现方式中,上述安全存储区域可以为服务器的内存中的存储区域,这里服务器的内存指与BMC连接的内存,也可以为第一处理器中的存储区域。也就是说,安全存储区域为服务器BMC的内存中的一部分,也可以为第一处理器的一部分存储区域。
在另一种可能的实现方式中,上述“第一处理器根据安全存储区域中的BIOS固件的签名,对安全存储区域中的BIOS固件进行签名校验”的方法为:第一处理器计算安全存储区域中的BIOS固件的特征值,并根据预设的公钥对安全存储区域中的BIOS固件的签名进行解密,以得到解密结果;之后,第一处理器判断解密结果与特征值是否相同。具体的,当解密结果与特征值相等时,第一处理器确定安全存储区域中的BIOS固件校验成功。
这里,预设的公钥是固化到第一处理器中的秘钥,与为BIOS固件进行签名的私钥对应。BIOS固件包括服务器中最重要的基本输入输出程序,在实际应用中,该BIOS固件是以可执行文件的形态存储或者传输的,因此,本申请中第一处理器计算BIOS固件的特征值实质上是指第一处理器对用于体现BIOS固件的可执行文件计算特征值。BIOS固件的特征值可以为BIOS固件的哈希值,也可以为BIOS固件的第五版信息摘要算法(message-digestalgorithm 5,MD5)值。
第二方面,提供一种BIOS固件的管理装置,该管理装置包括用于执行上述第一方面或上述第一方面任意一种可能的实现方式所述的BIOS固件的管理方法的各个模块。
在一种可能的实现方式中,可以根据上述第一方面或第一方面中任意一种可能的实现方式所提供的管理方法对该管理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
第三方面,提供一种BIOS固件的管理装置,该BIOS固件的管理装置包括:处理器和存储器。存储器与处理器连接。存储器用于存储计算机指令,当处理器执行该计算机指令时,BIOS固件的管理装置执行如上述第一方面或上述第一方面任意一种可能实现方式所述的BIOS固件的管理方法。
上述第二方面或第三方面描述的BIOS固件的管理装置具体可以是上述第一方面中描述的第一处理器。第三方面中描述的处理器可以为处理器中的处理器核(core),该处理器核可以是单核,也可以是多核,本申请对此不作具体限定。
第四方面,提供一种BIOS固件的管理方法,该管理方法应用于包括第一处理器和第二处理器的BMC,这里的第一处理器用于对服务器中待运行或待存储的软件代码进行签名校验,第二处理器用于运行BMC中的业务软件。该BMC配置有安全存储区域,且该安全存储区域仅支持第一处理器的访问。具体的,BMC执行的BIOS固件的管理方法可以参考上述第一方面或上述第一方面任意一种可能的实现方式所述的BIOS固件的管理方法。
第五方面,提供一种BMC,该BMC包括用于执行上述第四方面所述的BIOS固件的管理方法的各个模块。
在一种可能的实现方式中,可以根据上述第四方面所提供的管理方法对该BMC进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
第六方面,提供一种BMC,该BMC包括:第一处理器和存储器。存储器与第一处理器连接。存储器用于存储计算机指令,当第一处理器执行该计算机指令时,第一处理器执行如上述第一方面或上述第一方面任意一种可能的实现方式所述的BIOS固件的管理方法。
在一种可能的实现方式中,BMC还包括第二处理器,该第二处理器与上述第一处理器和上述存储器均连接。该第二处理器,用于接收并存储客户端发送的BIOS固件,并向上述第一处理器发送用于指示更新所述BIOS闪存中的原始BIOS固件的安全升级命令。
第七方面,提供一种服务器,该服务器包括BMC和BIOS闪存,其中,BMC包括第一处理器和存储器。所述第一处理器与所述存储器连接,所述存储器用于存储计算机指令,当第一处理器执行所述计算机指令时,所述第一处理器执行如上述第一方面或上述第一方面任意一种可能实现方式所述的BIOS固件的管理方法。
在一种可能的实现方式中,BMC还包括第二处理器,该第二处理器与上述第一处理器和上述存储器均连接。该第二处理器,用于接收并存储客户端发送的BIOS固件,并向上述第一处理器发送用于指示更新所述BIOS闪存中的原始BIOS固件的安全升级命令。
第八方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第九方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的管理方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例中通信系统的结构示意图;
图2为本申请实施例中服务器的一种硬件结构示意图;
图3为本申请实施例中BMC的一种硬件结构示意图;
图4为本申请实施例中BMC的另一种硬件结构示意图;
图5为本申请实施例中对第一固件进行签名校验的方法的流程示意图;
图6为本申请实施例中管理BIOS固件的方法的一种流程示意图;
图7为本申请实施例中管理BIOS固件的方法的另一种流程示意图;
图8为本申请实施例中管理BIOS固件的装置的结构示意图。
具体实施方式
固件是指服务器内部保存的“驱动程序”,是服务器中最基础、最底层工作的软件。
对于服务器而言,BIOS固件的安全性至关重要。为了防止BIOS固件被恶意攻击,破坏其完整性,服务器中的BMC通过对BIOS固件进行签名校验保障BIOS固件的安全性。但是,由于BMC的操作系统比较复杂,往往运行有多种应用,存在多样化的对外接口,导致BMC可被攻击的可能性较大,BIOS固件的安全性低。
为此,本申请实施例提供一种BIOS固件的管理方法、装置和服务器。通过在服务器的BMC中新增与其他组件隔离的第一处理器,并配置仅支持第一处理器访问的安全存储区域,构建了安全的软硬件环境,以实现对BIOS固件的校验(包括对BIOS固件的启动校验和升级校验),有效的预防了攻击者对未校验的BIOS固件的攻击,提高了BIOS固件的安全性。
具体的,在服务器的BMC中部署第一处理器,该第一处理器内部的硬件资源以及存储地址对BMC中的其他组件不可见,也就是说,将第一处理器与BMC中的其他组件隔离。第一处理器用于对服务器中待运行或待存储的软件代码进行签名校验。该第一处理器运行的固件,即用于实现对待运行或待存储的软件代码进行签名校验的固件(简称为第一固件)为已经被校验的固件,保证了该第一固件的安全性。此外,服务器中还配置有仅支持第一处理器访问的安全存储区域。该安全存储区域可以为服务器的内存中的存储区域,也可以为第一处理器中的存储空间。
本申请实施例提供的BIOS固件的管理方法适用于通信系统。图1示出了该通信系统的结构。如图1所示,通信系统包括客户端10、服务器11、签名服务器12和固件发布服务器13,其中,服务器11和固件发布服务器13分别与客户端10连接,固件发布服务器13还与签名服务器12连接。
在实际应用中,客户端10和服务器11之间还可以存在至少一个连接设备。这里的连接设备可以包括当前技术已知的客户端10和服务器11之间的任何接口,如交换机。
当然,客户端10可以与至少一个服务器11连接,也可以与至少一个签名服务器12连接。
客户端10可以用于从固件发布服务器13获取最新发布的固件(如升级BIOS固件),并向服务器10发送该客户端10从固件发布服务器13获取到的固件,以及用于在首次获取某一固件(这里的首次获取是指之前没有获取到该固件的不同版本)时,获取与签名服务器对该固件进行签名使用的私钥所对应的公钥,并向服务器11发送该公钥。
签名服务器12用于确定公钥和私钥,其中,私钥用于对执行文件进行签名,公钥用于其他设备对签名后的执行文件的校验,以及利用私钥对固件发布服务器发送的执行文件进行签名,并向固件发布服务器13发送签名结果和公钥。
固件发布服务器13用于存储执行文件,该执行文件与开发人员开发的代码对应,以及用于接收签名服务器发送的签名结果,并根据预设的组合格式,将签名结果与执行文件组合,以发布组合后的文件。
服务器11用于接收客户端10发送的某一固件的公钥,并将该公钥固化在服务器11中,以及接收客户端10发送的固件,并对该固件进行签名校验,以及用于对该服务器11中的某些固件(如本申请实施例涉及到的第二固件,第二固件的描述可以参考后续描述)进行签名校验。服务器11可以为当前技术已知的任意一种类型的服务器。在服务器11内部,安装有操作系统以及其他应用程序。由于公钥固化在服务器11中,因此,对于服务器11而言,该公钥是预设的。
结合上述图1,图2示出了本申请实施例中的服务器11的结构。如图2所示,本申请实施例中的服务器11可以包括BMC 110、BMC闪存111、BIOS闪存112、处理器113、平台控制中枢(platform control heart,PCH)114以及选择器(multiplexer,MUX)115。
处理器113与PCH 114之间通过直接媒体接口(direct media interface,DMI)116连接,PCH 114、BMC 110和BIOS闪存112分别通过串行外设接口(serial peripheralinterface,SPI)117与MUX 115之间连接,BMC 110还通过选择(select,SEL)管脚118控制MUX 115的切换,PCH 114与BMC 110之间通过高速串行服务器扩展总线标准(PeripheralComponent Interconnect express,PCIe)119连接。
BMC 110作为一个单板控制器,通常用于对服务器11内部的固件进行管理。例如,BMC110用于管理服务器11中BIOS固件的升级、BIOS固件的校验等。BMC 110通过MUX 115访问BIOS闪存112的通道。
BMC 110包括第一处理器20与第二处理器21,且服务器11配置有安全存储区域和非安全存储区域,非安全存储区域与安全存储区域为不同的存储区域。安全存储区域仅支持第一处理器20访问。第一处理器20利用安全存储区域实现对BIOS固件的校验,该第一处理器20执行的固件为第一固件,该第一固件为在运行之前已经被签名校验成功的固件。第二处理器21用于运行BMC 110中的业务软件,也就是说,第二处理器21用于实现除签名校验之外的其他功能,例如接收客户端10发送的升级BIOS固件。本申请实施例将能够运行BMC110中的业务软件的固件简称为第二固件,即第二处理器21执行的固件为第二固件。相应的,BMC闪存111存储有第二固件和第一固件。
BIOS闪存112存储有BIOS固件。BIOS固件包括有服务器中最重要的基本输入输出程序、开机后自检程序和系统自启动程序等。
处理器113可以是任何计算器件,可以是通用中央处理器(central processingunit,CPU),微处理器,可编程控制器,特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。处理器113是服务器11的控制中心,能够执行服务器11的各种功能和处理数据,从而对服务器11进行整体监控。
PCH 114用于控制服务器11的输入输出。
当然,服务器11还可以包括其他组件,如内存,本申请实施例对服务器11的结构并不限定。
图3示出了的服务器中BMC的一种结构示意图。如图3所示,BMC包括第一处理器30、第二处理器31、片内存储器32、双倍速率同步动态随机存储器(double data rate SDRAM,DDR)控制器33以及存储控制器34。其中,第一处理器30、第二处理器31、片内存储器32、DDR控制器33以及存储控制器34之间通过系统总线连接,完成相互间的通信。第一处理器30与其他组件相互隔离。具体的,第一处理器30内部的硬件资源以及存储地址对BMC中的其他组件不可见。例如,第一处理器30支持访问的地址范围与其他组件支持访问的地址范围不同,以此实现第一处理器和BMC中其他组件的隔离。
第二处理器31用于运行BMC中的业务软件,即实现BMC中除签名校验以外的其他功能,例如接收客户端发送的升级BIOS固件的指令。片内存储器32可以为静态随机存储器(static RAM,SRAM),也可以为闪存,用于存储BMC运行过程中的临时数据。DDR控制器33与BMC外的存储器连接,该存储器的功能与服务器的主处理器(控制器服务器的操作系统和启动的处理器)的内存类似,为便于描述,将此存储器也简称为内存。例如,如图3所示,BMC与内存100连接。值得注意到是,图3中内存100仅用于BMC的数据访问,与服务器的主处理器连接的内存为不同存储器。BMC可从内存100中读取或写入数据。下文中提及的服务器的内存如无特殊说明,均指代图3所示的内存100。若本申请实施例中的安全存储区域为服务器的内存中的存储区域,则DDR控制器33支持安全存储区域的配置。可选地,若本申请实施例中的安全存储区域为服务器的内存中的存储区域,DDR控制器33可以基于信任区域(TrustZone)技术配置安全存储区域,也可以基于其他相关技术配置安全存储区域,本申请实施例对此不作具体限定。存储控制器34用于提供对BMC的存储区域的访问接口,例如,可以提供对安全存储区域的访问接口,也可以提供对非安全存储区域的访问接口。
示例性的,DDR控制器33基于信任区域技术配置安全存储区域的方法为:配置BMC的内部总线支持非安全(non-secure,NS)信号线;当NC信号线传输的信号为0时,则第一处理器访问存储区域,此时,该存储区域为安全存储区域;当NC信号线传输的信号为1时,则第二处理器访问存储区域,此时,该存储区域为非安全区域。信任区域技术属于现有技术,这里对此不在进行详细赘述。
第一处理器30可以在BIOS固件启动前对该BIOS固件进行校验,也可以在BIOS固件进行升级时,对升级BIOS固件进行校验。
例如,在BIOS固件启动前对该BIOS固件进行校验的场景中,BMC中的第一处理器30用于:从BIOS闪存中读取BIOS固件和BIOS固件的签名;将获取到的BIOS固件和BIOS固件的签名存储至安全存储区域;根据安全存储区域中的BIOS固件的签名,对安全存储区域中的BIOS固件进行签名校验;当确定安全存储区域中的BIOS固件校验成功时,控制处理器运行BIOS固件。
又例如,在对BIOS固件进行升级时,对升级BIOS固件进行校验的场景中,BMC中的第一处理器30用于:接收第二处理器发送的安全升级命令;从非安全存储区域获取BIOS固件和BIOS固件的签名,并将获取到的BIOS固件和BIOS固件的签名存储至安全存储区域;根据安全存储区域中的BIOS固件的签名,对安全存储区域中的BIOS固件进行签名校验;当确定安全存储区域中的BIOS固件校验成功时,擦除原始BIOS固件,并将安全存储区域中的BIOS固件写入BIOS闪存。
如图3所示,第一处理器30包括SPI控制器/SPI闪存控制器(SPI flashcontroller,SFC)300、通用输入/输出(general purpose input output,GPIO)接口301、ROM 302、SRAM 303以及处理器核(core)304。其中,SPI控制器/SPI闪存控制器300、GPIO301、ROM 302、SRAM 303以及处理器核304之间通过第一处理器内的系统总线连接,完成相互间的通信。对于第一处理器30外部的其他硬件资源而言,第一处理器30内的硬件资源(如SPI控制器300、GPIO 301、ROM 302、SRAM 303以及处理器核304)是不可见、不可控的。
其中,SPI控制器/SPI闪存控制器300为连接BIOS闪存112的接口控制器,可以通过SPI接口连接到BIOS闪存。GPIO接口301为连接MUX的控制器,控制第一处理器与MUX的连接。ROM 302属于第一处理器30中的一次性可编程存储区,存储有第一处理器的固化代码,该固化代码用于校验第一固件后续的可升级/修改代码。具体的,第一处理器30从ROM 302开始运行代码,并基于ROM中的固化代码对待引导运行的代码(如第一固件)进行安全签名校验,从而确保待运行的代码没有被恶意篡改。第一处理器30中的一次性可编程存储区还可以存储预设的公钥。SRAM 303为第一固件的运行区和运行时临时数据的存储区。若本申请实施例中的安全存储区域为第一处理器内的存储空间,则该安全存储区域可以为SRAM 303中的存储区域。处理器核304用于执行第一固件。
可选地,第一处理器30还包括加速器305,该加速器305用于实现校验算法的加速。由于加速器为可选地,图3中采用虚线框表示。
可选地,本申请实施例中的SPI控制器和GPIO接口还可以置于第一处理器外。置于第一处理器外的SPI控制器和GPIO接口可以被第一处理器配置为安全属性。在配置为安全属性的情况下,置于第一处理器外的SPI控制器和GPIO接口仅支持第一处理器30的访问。
图4为本申请实施例提供的BMC的另一种结构示意图。如图4所示,BMC包括第一处理器40、第二处理器41、片内存储器42、DDR控制器43、存储控制器44、SPI控制器45和GPIO接口46。相应的,第一处理器40包括ROM 401、SRAM 402以及处理器核403。可选地,第一处理器40还包括加速器404。与上述图3比较,图4中的SPI控制器和GPIO接口均置于第一处理器外。图4中的各个组件可以参考上述对图3的描述,在此不再赘述。
本领域技术人员可以理解,图3(或图4)示出的BMC的结构并不构成对BMC的限定,其可以包括比如图3(或图4)所示的部件更多或更少的部件,或者可以组合如图3(或图4)所示的部件中的某些部件,或者可以与如图3(或图4)所示的部件布置不同。
以下,结合图1-图4,对本申请实施例提供的BIOS固件的管理方法进行说明。
从上面描述可知,第一固件为用于实现对待运行或待存储的软件代码进行签名校验的固件,第一处理器执行第一固件,以对BIOS固件/升级BIOS固件进行签名校验。为了保证签名校验的执行处于安全环境,在第一处理器对BIOS固件/升级BIOS固件进行签名校验之前,第一处理器需要对第一固件进行签名校验。
第一处理器在对BIOS固件进行签名校验之前,第一固件和该第一固件的签名已经被固件发布服务器发布,且已经存储至BMC闪存中。该第一固件为签名服务器基于二级秘钥(包括根公钥(相当于第一级秘钥)、第二级秘钥)做非对称算法签名后的固件。此外,第一处理器的ROM所存储的固化代码支持安全启动校验特性,第一处理器中的一次性可编程存储区中存储有根公钥的哈希值、使能安全启动指示位和第二级秘钥的标识,具体地,该标识可以为编号或名称或其他表示形式。其中,哈希值是对一段数据进行哈希运算得到的结果。结果的长度由哈希算法决定,跟输入数据的大小无关。例如,在本申请实施例中,可以将第一固件对应程序编译后生成的数据作为输入数据,经过哈希运算后生成的结果为第一固件的哈希值。
具体的,如图5所示,本申请实施例中第一处理器对第一固件进行签名校验的流程为:
S600、第一处理器运行只读存储器ROM中的固化代码,并根据使能安全启动指示位确定是否安全启动。
示例性的,若使能安全启动指示位的数值为1,则指示安全启动使能(即允许安全启动)。若使能安全启动指示位的数值为0,则指示无法安全启动。
S601、如果安全启动指示位指示安全启动,则读取BMC闪存中的第一固件和第一固件的签名到第一处理器的SRAM中,并对第一固件进行签名校验。
具体的,第一处理器根据SRAM中的第一固件的签名,对第一固件进行签名校验的方法为:
S1、第一处理器根据SRAM中的头(Header)信息对根公钥进行校验,即计算根公钥的哈希值,并判断计算出的哈希值与一次性可编程存储区中存储的根公钥的哈希值是否相同。如果计算出的哈希值与一次性可编程存储区中存储的根公钥的哈希值相同,第一处理器则继续执行S2。如果计算出的哈希值与一次性可编程存储区中存储的根公钥的哈希值不相同,第一处理器则禁止启动或是执行其他策略。
S2、第一处理器根据根公钥对第二级秘钥进行签名校验。如果校验成功,则继续执行S3;如果校验失败,则禁止启动或是执行其他策略。
S3、第一处理器判断第二级秘钥的标识是否有效。如果第二级秘钥的标识仍有效,则继续执行S4;如果第二级秘钥的标识已失效,则禁止启动或是执行其他策略。
S4、第一处理器对第一固件的哈希值和第一固件的安全版本号进行签名校验。如果校验成功,则继续执行S5;如果校验失败,则禁止启动。
其中,第一处理器采用预设的哈希算法,计算第一固件的哈希值。
在实际应用中,固件是以可执行文件的形态存储于存储介质,也就是以一段静态数据的形态存储于存储介质。因此,第一处理器从BMC闪存中获取到的第一固件实质上为可执行文件。这样,第一处理器计算第一固件的哈希值实质上为计算可执行文件的哈希值。
当然,第一处理器也可以计算第一固件的其他特征值,并采用第二级公钥对第一固件的其他特征值进行签名校验。例如:第一处理器计算第一固件的MD5值,并采用第二级公钥对第一固件的MD5值进行签名校验。
本申请实施例中的根公钥是指二级秘钥中的第一级秘钥。此外,本申请实施例涉及到的公钥是指仅采用一级秘钥进行认证的公共秘钥。
需要说明的是,本申请实施例均采用固件的哈希值进行描述,在其他涉及到固件的哈希值的描述可以参考这里第一固件的哈希值的解释,本申请实施例对此不再进行重复描述。
S5、第一处理器校验第一固件的安全版本号,查看是否为安全版本。如果第一固件的安全版本号属于安全版本,则执行S6;如果第一固件的安全版本号不属于安全版本,则禁止或是执行其他策略。
S6、第一处理器校验第一固件的哈希值,并判断该第一固件的哈希值与S4中签名验证过的哈希值是否相同。如果相同,第一处理器则引导第一固件启动运行。如果不同,则禁止启动或是执行其他策略。
S602、当第一处理器确定第一固件校验成功时,运行该第一固件。
具体的,第一处理器执行上述S1-S6,若在S6中确定第一固件的哈希值与S4中签名验证过的哈希值相同,则确定该第一固件校验成功。
第一固件校验成功即可说明该第一固件的安全性,第一处理器可运行该第一固件。
当然,若第一固件包括多层级代码,如包括引导代码和应用代码,则第一处理器需要逐层级对每一层级的代码进行校验。这里,代码的层级可以根据代码的执行先后顺序,以及代码实现的功能进行划分,本申请实施例对此不做具体限定。
具体的,在第一固件启动运行后,第一处理器配置安全存储区域。
可选地,若安全存储区域为服务器内存中的存储区域,则第一处理器可以采用信任区域技术实现安全存储区域的配置,也可以采用其他方法通过DDR控制器配置安全存储区域,本申请实施例对此不作具体限定。
可选地,若安全存储区域为第一处理器中的存储区域,则第一处理器可以将SRAM中的部分存储区域作为安全存储区域。
可选地,第二处理器处于未运行状态(即对第二处理器复位),在第一处理器配置安全存储区域后,该第一处理器对第二固件进行签名校验,在确定第二固件的签名校验成功后,对第二处理器解复位,以实现第二处理器的运行。当然,第二处理器也可以自身解复位,并从BMC闪存中获取指令,以实现第二处理器的运行。
对于BMC而言,BIOS闪存的访问通道仅支持第一处理器的访问。例如:若SEL=0,则MUX与BMC的第一处理器连通。
后续,在BIOS闪存中的BIOS固件启动前,第一处理器对BIOS固件进行校验。当然,BIOS闪存中的BIOS固件是已经被签名服务器签名,且固件发布服务器根据预设格式将代码生成的可执行文件和签名进行组合的。此外,第一固件中固化有该BIOS固件的公钥,该公钥与签名服务器为该BIOS固件配置的私钥对应。
现在对BIOS闪存中的BIOS固件启动前,第一处理器对BIOS固件进行校验的方法进行说明。
图6为本申请实施例提供的BIOS固件的管理方法的流程图。如图6所示,在第一固件的签名校验成功后,可以通过下述S700-S704完成BIOS固件的启动校验,其中,第一处理器为图2或图3所示BMC中第一处理器,该方法包括:
S700、第一处理器从BIOS闪存中读取BIOS固件和BIOS固件的签名。
S701、第一处理器将读取到的BIOS固件和BIOS固件的签名存储至安全存储区域。
可选地,若安全存储区域为第一处理器中的存储区域,则第一处理器在获取到BIOS固件和BIOS固件的签名后,直接将获取到的BIOS固件和BIOS固件的签名存储至安全存储区域即可。
若安全存储区域为服务器内存中的存储区域,则第一处理器在获取到BIOS固件和BIOS固件的签名后,向DDR控制器发送包括BIOS固件和BIOS固件的签名的写命令,以指示DDR控制器将BIOS固件和BIOS固件的签名写入内存的安全存储区域中。其中,服务器的内存是指与BMC连接的内存,也就是说,安全存储区域为服务器BMC的内存中的一部分。
S702、第一处理器根据安全存储区域中的BIOS固件的签名,对安全存储区域中的BIOS固件进行签名校验。
具体的,第一处理器计算安全存储区域中的BIOS固件的特征值,并根据预设的公钥(即第一固件中固化的公钥)对安全存储区域中的BIOS固件的签名进行解密,以得到解密结果,这样,第一处理器即可根据解密结果和特征值,确定安全存储区域中的BIOS固件是否校验成功。这里的特征值可以为哈希值,也可以为MD5数值,本申请实施例对此不作具体限定
若解密结果与特征值相同,第一处理器确定安全存储区域中的BIOS固件校验成功,继续执行S703。若解密结果与特征值不同,第一处理器确定安全存储区域中的BIOS固件校验失败,不允许服务器的处理器运行BIOS固件,即S704。
S703、若第一处理器确定安全存储区域中的BIOS固件校验成功,则控制服务器的处理器运行BIOS固件。
容易理解的是,若第一处理器确定安全存储区域中的BIOS固件校验成功,则说明服务器的处理器可运行该BIOS固件,相应的,第一处理器控制服务器的处理器运行BIOS固件。具体的,第一处理器控制SEL管脚连通PCH与BIOS闪存,使得服务器的处理器运行BIOS闪存中的BIOS固件。
S704、若第一处理器确定安全存储区域中的BIOS固件校验失败,则禁止服务器的处理器运行BIOS固件。
在BIOS固件的启动校验成功后,服务器的处理器运行该BIOS固件。后续,固件发布服务器可能还会发布升级BIOS固件。客户端在获取到升级BIOS固件后,可向服务器发送升级BIOS固件。服务器在接收到升级BIOS固件后,第一处理器对该升级BIOS固件进行签名校验。在确定升级BIOS固件校验成功后,第一处理器执行BIOS固件的升级操作。
图7为本申请实施例提供的BIOS固件的管理方法的另一流程图。如图7所示,在运行BIOS固件后,可以通过下述S800-S804完成BIOS固件的升级:
S800、客户端向第二处理器发送升级BIOS固件和升级BIOS固件的签名。
S801、第二处理器将升级BIOS固件和升级BIOS固件的签名存储至非安全存储区域,并在确定服务器的处理器处于未进行IO的状态后,向第一处理器发送安全升级命令。
该安全升级命令用于指示更新BIOS闪存中的原始BIOS固件。
其中,本申请实施例涉及的BIOS闪存中的原始BIOS固件是指在升级之前,BIOS闪存中存储的BIOS固件。
在一种可能的实现方式中,本申请实施例中的安全升级命令包括原始BIOS固件的标识、升级BIOS固件的标识以及升级BIOS固件的存储地址,具体用于指示将BIOS闪存中的原始BIOS固件更新为升级BIOS固件。
在另一种可能的实现方式中,本申请实施例中的安全升级命令包括升级BIOS固件的标识和升级BIOS固件的存储地址,具体用于指示将BIOS闪存中的原始BIOS固件更新为升级BIOS固件。
在另一种可能的实现方式中,本申请实施例中的安全升级命令包括第一字段,该第一字段用于标识更新BIOS闪存中的原始BIOS固件。这种情况下,第一处理器与第二处理器预先约定了非安全存储区域,且非安全存储区域存储有BIOS固件以及该BIOS固件的签名,即存储升级BIOS固件和升级BIOS固件的签名,第一处理器在接收到该安全升级命令后,直接从非安全存储区域获取升级BIOS固件和升级BIOS固件的签名。在安全存储区域为第一处理器中的存储区域的情况下,本申请实施例中的非安全存储区域可以为服务器的内存。在安全存储区域为服务器的内存中的存储区域的情况下,安全存储区域和非安全存储区域均可以为内存中的一部分存储区域,二者可以为DDR控制器采用信任区域技术进行设置。
具体的,第二处理器向第一处理器发送安全升级命令之前,该第二处理器还需确定服务器的处理器处于未进行IO的状态。容易理解的是,BIOS固件包括服务器中最重要的基本输入输出程序,若处理器有IO动作,则说明原始BIOS固件被调用,此时若执行BIOS固件的升级,升级过程会出现问题。
S802、第一处理器从非安全存储区域中获取升级BIOS固件和升级BIOS固件的签名,并将获取到的升级BIOS固件和升级BIOS固件的签名存储至安全存储区域。
可选地,若安全存储区域为第一处理器中的存储区域,则第一处理器在获取到升级BIOS固件和升级BIOS固件的签名后,直接将获取到的升级BIOS固件和升级BIOS固件的签名存储至安全存储区域即可。
若安全存储区域为服务器内存中的存储区域,则第一处理器在获取到升级BIOS固件和升级BIOS固件的签名后,向DDR控制器发送包括升级BIOS固件和升级BIOS固件的签名的写命令,以指示DDR控制器将升级BIOS固件和升级BIOS固件的签名写入内存的安全存储区域中。
S803、第一处理器根据安全存储区域中的升级BIOS固件的签名,对安全存储区域中的升级BIOS固件进行签名校验。
S803可以参考上述S702,这里不再进行详细赘述。
若第一处理器确定安全存储区域中的升级BIOS固件校验成功,则第一处理器擦除原始BIOS固件,并将安全存储区域中的升级BIOS固件写入BIOS闪存,以完成BIOS固件的升级,即执行S804。若第一处理器确定安全存储区域中的升级BIOS固件校验失败,则返回失败,终止升级。
S804、若第一处理器确定安全存储区域中的升级BIOS固件校验成功,则擦除原始BIOS固件,并将安全存储区域中的升级BIOS固件写入BIOS闪存。
示例性的,第一处理器通过SEL管脚控制MUX的切换,连通BMC的第一处理器与BIOS闪存。然后,第一处理器通过BIOS闪存读写命令接口擦除原始BIOS固件,并将安全存储区域中的升级BIOS固件写入BIOS闪存,以完成升级。
综上,在硬件层面上,第一处理器与BMC中的其他组件相互隔离;在软件层面上,第一固件为已经被签名校验成功的固件,共同为第一处理器提供了一个安全的运行环境。由于安全存储区域仅支持第一处理器的访问,因此,本申请提供的BIOS固件的管理方法中,只有BMC中第一处理器能获取到存储至安全存储区域中的BIOS固件和BIOS固件的签名,并对该BIOS固件进行签名校验,也就是将BMC中的其他组件和存储BIOS固件的存储区域进行隔离,仅第一处理器可以获取该BIOS固件,有效的预防了攻击者对未校验的BIOS固件的攻击,提高了BIOS固件的安全性。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对管理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
上文中结合图5至图7,详细描述了根据本申请实施例所提供的BIOS固件的管理方法,下面将结合图8,描述根据本申请实施例所提供的BIOS固件的管理装置。
图8为本申请实施例提供的一种管理装置8的结构示意图。管理装置8可以用于执行图5-图7中任一附图所示的方法。管理装置8包括:获取单元80、存储单元81和校验单元82。
其中,获取单元80,用于获取BIOS固件和BIOS固件的签名,BIOS固件包括服务器的基本输入输出程序,BIOS固件的签名用于对BIOS固件进行鉴权。存储单元81,用于将获取单元80获取到的BIOS固件和BIOS固件的签名存储至安全存储区域,安全存储区域仅支持管理装置的访问。校验单元82,用于根据存储单元81中的BIOS固件的签名,对安全存储区域中的BIOS固件进行签名校验。
作为一个示例,管理装置8可以是BMC中的一个逻辑模块或物理器件(如第一处理器)。作为一个示例,管理装置8可以是服务器中的一个逻辑模块或物理器件(如BMC)。作为一个示例,管理装置8可以是该服务器。
示例性的,结合图6-图7,获取单元80可用于执行S700、S802中“获取升级BIOS固件和升级BIOS固件的签名”等;存储单元81可用于执行S701、S802中“将升级BIOS固件和升级BIOS固件的签名存储至安全存储区域”等;校验单元82可用于执行S702、S803等。
在一种可能的实现方式中,获取单元80,具体用于从服务器的BIOS闪存中读取BIOS固件和BIOS固件的签名。
在一种可能的实现方式中,管理装置8还包括接收单元83。该接收单元83,用于接收其他装置发送的安全升级命令,安全升级命令用于指示更新服务器的BIOS闪存中的原始BIOS固件。相应的,获取单元80,具体用于从非安全存储区域获取BIOS固件和BIOS固件的签名,BIOS固件和BIOS固件的签名是由其他装置存储至非安全存储区域,非安全存储区域与安全存储区域为不同的存储区域。
示例性的,结合图6-图7,接收单元83可用于执行S801。
在一种可能的实现方式中,安全存储区域为服务器的内存中的存储区域,或者为第一处理器中的存储区域。
在一种可能的实现方式中,校验单元82具体用于:计算安全存储区域中的BIOS固件的特征值;根据预设的验签公钥对安全存储区域中的BIOS固件的签名进行解密,以得到解密结果;判断解密结果与特征值是否相同;当解密结果与特征值相同时,确定安全存储区域中的BIOS固件校验成功。
本实施例中相关内容的解释以及有益效果的描述等均可参考上述方法实施例,此处不再赘述。作为一个示例,结合图2,本实施例中的管理装置8可以是图2中的第一处理器20。作为一个示例,结合图2,实施例中的管理装置8可以是图2中的服务器11。上述获取单元80、存储单元81、校验单元82和接收单元83中的部分或全部也可以通过BMC 110实现。
应理解的是,本申请实施例的管理装置8可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图5至7所示的BIOS固件的管理方法时,管理装置8及其各个模块也可以为软件模块。
在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)、以太网)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,DVD)或者半导体介质(例如固态硬盘(solid state disk(SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
Claims (13)
1.一种基本输入输出系统BIOS固件的管理方法,其特征在于,包括:
基板管理控制器BMC中的第一处理器获取BIOS固件和所述BIOS固件的签名,所述BIOS固件包括服务器的基本输入输出程序,所述BIOS固件的签名用于对所述BIOS固件进行鉴权,所述第一处理器用于对所述服务器中待运行或待存储的软件代码进行签名校验;
所述第一处理器将所述BIOS固件和所述BIOS固件的签名存储至安全存储区域,所述安全存储区域仅支持所述第一处理器的访问;
所述第一处理器根据所述BIOS固件的签名,对所述安全存储区域中的BIOS固件进行签名校验。
2.根据权利要求1所述的管理方法,其特征在于,所述第一处理器获取BIOS固件和所述BIOS固件的签名,包括:
所述第一处理器从所述服务器的BIOS闪存中读取所述BIOS固件和所述BIOS固件的签名。
3.根据权利要求1所述的管理方法,其特征在于,所述第一处理器获取BIOS固件和所述BIOS固件的签名,包括:
所述第一处理器接收所述BMC中第二处理器发送的安全升级命令,所述安全升级命令用于指示更新所述服务器的BIOS闪存中的原始BIOS固件;所述第二处理器用于运行BMC中的业务软件;
所述第一处理器从非安全存储区域获取所述BIOS固件和所述BIOS固件的签名,所述BIOS固件和所述BIOS固件的签名是由所述第二处理器存储至所述非安全存储区域的,所述非安全存储区域与所述安全存储区域为不同的存储区域。
4.根据权利要求1-3中任意一项所述的管理方法,其特征在于,所述BIOS闪存的访问通道仅支持所述第一处理器的访问。
5.根据权利要求1-4中任意一项所述的管理方法,其特征在于,
所述安全存储区域为所述服务器的内存中的存储区域,或者为所述第一处理器中的存储区域。
6.根据权利要求1-5中任意一项所述的管理方法,其特征在于,所述第一处理器根据所述BIOS固件的签名,对所述安全存储区域中的BIOS固件进行签名校验,包括:
所述第一处理器计算所述安全存储区域中的BIOS固件的特征值;
所述第一处理器根据预设的公钥对所述安全存储区域中的BIOS固件的签名进行解密,以得到解密结果;
所述第一处理器判断所述解密结果与所述特征值是否相同;
当所述解密结果与所述特征值相同时,所述第一处理器确定所述安全存储区域中的BIOS固件校验成功。
7.一种基本输入输出系统BIOS固件的管理装置,其特征在于,所述管理装置用于对服务器中待运行或待存储的软件代码进行签名校验,包括:
获取单元,用于获取BIOS固件和所述BIOS固件的签名,所述BIOS固件包括所述服务器的基本输入输出程序,所述BIOS固件的签名用于对所述BIOS固件进行鉴权;
存储单元,用于将所述获取单元获取到的所述BIOS固件和所述BIOS固件的签名存储至安全存储区域,所述安全存储区域仅支持所述管理装置的访问;
校验单元,用于根据所述存储单元中的所述BIOS固件的签名,对所述安全存储区域中的BIOS固件进行签名校验。
8.根据权利要求7所述的管理装置,其特征在于,
所述获取单元,具体用于从所述服务器的BIOS闪存中读取所述BIOS固件和所述BIOS固件的签名。
9.根据权利要求7所述的管理装置,其特征在于,所述管理装置还包括接收单元;
所述接收单元,用于接收其他装置发送的安全升级命令,所述安全升级命令用于指示更新所述服务器的BIOS闪存中的原始BIOS固件;
所述获取单元,具体用于从非安全存储区域获取所述BIOS固件和所述BIOS固件的签名,所述BIOS固件和所述BIOS固件的签名是由所述其他装置存储至所述非安全存储区域,所述非安全存储区域与所述安全存储区域为不同的存储区域。
10.根据权利要求7-9中任意一项所述的管理装置,其特征在于,
所述安全存储区域为所述服务器的内存中的存储区域,或者为所述第一处理器中的存储区域。
11.根据权利要求7-10中任意一项所述的管理装置,其特征在于,所述校验单元具体用于:
计算所述安全存储区域中的BIOS固件的特征值;
根据预设的验签公钥对所述安全存储区域中的BIOS固件的签名进行解密,以得到解密结果;
判断所述解密结果与所述特征值是否相同;
当所述解密结果与所述特征值相同时,确定所述安全存储区域中的BIOS固件校验成功。
12.一种服务器,其特征在于,所述服务器包括基板管理控制器BMC和基本输入输出系统BIOS闪存,所述BMC包括第一处理器和存储器;所述第一处理器与所述存储器连接;所述存储器用于存储计算机指令,当所述第一处理器执行所述计算机指令时,所述第一处理器执行如权利要求1-6中任意一项所述的管理方法。
13.根据权利要求12所述的服务器,其特征在于,所述BMC还包括第二处理器,所述第二处理器与所述第一处理器和所述存储器均连接;所述第二处理器,用于接收并存储客户端发送的BIOS固件,并向所述第一处理器发送安全升级命令,所述安全升级命令用于指示更新所述BIOS闪存中的原始BIOS固件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811159841.1A CN109446815B (zh) | 2018-09-30 | 2018-09-30 | 基本输入输出系统固件的管理方法、装置和服务器 |
PCT/CN2019/093960 WO2020063001A1 (zh) | 2018-09-30 | 2019-06-29 | 基本输入输出系统固件的管理方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811159841.1A CN109446815B (zh) | 2018-09-30 | 2018-09-30 | 基本输入输出系统固件的管理方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109446815A true CN109446815A (zh) | 2019-03-08 |
CN109446815B CN109446815B (zh) | 2020-12-25 |
Family
ID=65544693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811159841.1A Active CN109446815B (zh) | 2018-09-30 | 2018-09-30 | 基本输入输出系统固件的管理方法、装置和服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109446815B (zh) |
WO (1) | WO2020063001A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110163012A (zh) * | 2019-05-30 | 2019-08-23 | 苏州浪潮智能科技有限公司 | 基于可编程器件的主板上电方法、装置及系统 |
CN110688660A (zh) * | 2019-09-27 | 2020-01-14 | 深圳市共进电子股份有限公司 | 一种终端安全启动的方法及装置、存储介质 |
WO2020063001A1 (zh) * | 2018-09-30 | 2020-04-02 | 华为技术有限公司 | 基本输入输出系统固件的管理方法、装置和服务器 |
CN111008379A (zh) * | 2019-11-22 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
CN112632552A (zh) * | 2019-09-24 | 2021-04-09 | 技嘉科技股份有限公司 | 服务器启动方法 |
TWI738243B (zh) * | 2020-03-10 | 2021-09-01 | 神雲科技股份有限公司 | 伺服系統 |
CN113377425A (zh) * | 2021-06-29 | 2021-09-10 | 南昌华勤电子科技有限公司 | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 |
CN113760328A (zh) * | 2021-07-28 | 2021-12-07 | 郑州云海信息技术有限公司 | 一种固件升级处理的方法、服务器系统和存储介质 |
CN114357468A (zh) * | 2022-03-21 | 2022-04-15 | 深圳比特微电子科技有限公司 | 一种固件的安全性保护方法、装置 |
CN114444083A (zh) * | 2022-01-07 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种基于bmc的服务器bios全生命周期安全保护系统 |
CN114995893A (zh) * | 2022-08-01 | 2022-09-02 | 摩尔线程智能科技(北京)有限责任公司 | 固件的管理方法、闪存、主机及存储介质 |
WO2022227641A1 (zh) * | 2021-04-29 | 2022-11-03 | 华为技术有限公司 | 一种安全保护方法、装置及系统 |
WO2023051262A1 (zh) * | 2021-09-28 | 2023-04-06 | 华为技术有限公司 | 一种安全启动的方法、装置和系统 |
CN117056982A (zh) * | 2023-08-28 | 2023-11-14 | 广州市粤港澳大湾区前沿创新技术研究院 | 一种多机数据验签方法、系统及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6808793B1 (ja) * | 2019-09-20 | 2021-01-06 | レノボ・シンガポール・プライベート・リミテッド | 情報処理装置 |
CN111723376A (zh) * | 2020-06-10 | 2020-09-29 | 苏州浪潮智能科技有限公司 | 一种板内可信平台的监测和控制方法、电路和装置 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060174055A1 (en) * | 2005-02-02 | 2006-08-03 | Insyde Software Corporation | System and method for reducing memory requirements of firmware |
US20070061581A1 (en) * | 2005-09-14 | 2007-03-15 | Micky Holtzman | Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory |
CN101340288A (zh) * | 2007-03-30 | 2009-01-07 | 英特尔公司 | 服务器主动管理技术协助的安全引导 |
CN101373437A (zh) * | 2007-04-10 | 2009-02-25 | 标准微系统公司 | 通过嵌入式控制器访问安全存储设备而增强系统安全 |
US20090249053A1 (en) * | 2008-03-31 | 2009-10-01 | Zimmer Vincent J | Method and apparatus for sequential hypervisor invocation |
US20100058306A1 (en) * | 2008-08-26 | 2010-03-04 | Terry Wayne Liles | System and Method for Secure Information Handling System Flash Memory Access |
CN101965570A (zh) * | 2008-02-29 | 2011-02-02 | 先进微装置公司 | 具有安全启动机制的计算机系统 |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
CN103166759A (zh) * | 2011-12-15 | 2013-06-19 | 通用汽车环球科技运作有限责任公司 | 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置 |
CN103502932A (zh) * | 2011-04-29 | 2014-01-08 | 惠普发展公司,有限责任合伙企业 | 用于验证crtm的嵌入式控制器 |
CN105159707A (zh) * | 2015-08-14 | 2015-12-16 | 飞天诚信科技股份有限公司 | 一种安全的金融终端的固件烧写方法及金融终端 |
CN105447406A (zh) * | 2015-11-10 | 2016-03-30 | 华为技术有限公司 | 一种用于访问存储空间的方法与装置 |
CN106127056A (zh) * | 2016-06-20 | 2016-11-16 | 浪潮电子信息产业股份有限公司 | 一种国产bmc芯片可信固件的设计方法 |
CN106681779A (zh) * | 2017-02-07 | 2017-05-17 | 济南浪潮高新科技投资发展有限公司 | 一种集中更新bios固件的方法 |
CN106897070A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于bmc实现的bios版本升级方法及装置 |
CN107193717A (zh) * | 2017-05-19 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于Web界面实现BMC固件可信状态呈现系统及判断方法 |
CN107256168A (zh) * | 2017-06-12 | 2017-10-17 | 郑州云海信息技术有限公司 | 一种uefi bios安全升级机制的设计方法 |
CN107273150A (zh) * | 2017-05-10 | 2017-10-20 | 深圳市金百锐通信科技有限公司 | 预加载固件下载写入方法及装置 |
CN108399339A (zh) * | 2018-02-12 | 2018-08-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384367B2 (en) * | 2012-09-04 | 2016-07-05 | Intel Corporation | Measuring platform components with a single trusted platform module |
CN107423626B (zh) * | 2017-07-19 | 2020-07-21 | 南京百敖软件有限公司 | 一种基于连续Hash值的BIOS更新信任链的方法 |
CN108255505A (zh) * | 2018-01-10 | 2018-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种固件更新方法、装置、设备及计算机可读存储介质 |
CN109446815B (zh) * | 2018-09-30 | 2020-12-25 | 华为技术有限公司 | 基本输入输出系统固件的管理方法、装置和服务器 |
-
2018
- 2018-09-30 CN CN201811159841.1A patent/CN109446815B/zh active Active
-
2019
- 2019-06-29 WO PCT/CN2019/093960 patent/WO2020063001A1/zh active Application Filing
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060174055A1 (en) * | 2005-02-02 | 2006-08-03 | Insyde Software Corporation | System and method for reducing memory requirements of firmware |
US20070061581A1 (en) * | 2005-09-14 | 2007-03-15 | Micky Holtzman | Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory |
CN101340288A (zh) * | 2007-03-30 | 2009-01-07 | 英特尔公司 | 服务器主动管理技术协助的安全引导 |
CN101373437A (zh) * | 2007-04-10 | 2009-02-25 | 标准微系统公司 | 通过嵌入式控制器访问安全存储设备而增强系统安全 |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
CN101965570A (zh) * | 2008-02-29 | 2011-02-02 | 先进微装置公司 | 具有安全启动机制的计算机系统 |
US20090249053A1 (en) * | 2008-03-31 | 2009-10-01 | Zimmer Vincent J | Method and apparatus for sequential hypervisor invocation |
US20100058306A1 (en) * | 2008-08-26 | 2010-03-04 | Terry Wayne Liles | System and Method for Secure Information Handling System Flash Memory Access |
CN103502932A (zh) * | 2011-04-29 | 2014-01-08 | 惠普发展公司,有限责任合伙企业 | 用于验证crtm的嵌入式控制器 |
CN103166759A (zh) * | 2011-12-15 | 2013-06-19 | 通用汽车环球科技运作有限责任公司 | 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置 |
CN105159707A (zh) * | 2015-08-14 | 2015-12-16 | 飞天诚信科技股份有限公司 | 一种安全的金融终端的固件烧写方法及金融终端 |
CN105447406A (zh) * | 2015-11-10 | 2016-03-30 | 华为技术有限公司 | 一种用于访问存储空间的方法与装置 |
CN106127056A (zh) * | 2016-06-20 | 2016-11-16 | 浪潮电子信息产业股份有限公司 | 一种国产bmc芯片可信固件的设计方法 |
CN106681779A (zh) * | 2017-02-07 | 2017-05-17 | 济南浪潮高新科技投资发展有限公司 | 一种集中更新bios固件的方法 |
CN106897070A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于bmc实现的bios版本升级方法及装置 |
CN107273150A (zh) * | 2017-05-10 | 2017-10-20 | 深圳市金百锐通信科技有限公司 | 预加载固件下载写入方法及装置 |
CN107193717A (zh) * | 2017-05-19 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于Web界面实现BMC固件可信状态呈现系统及判断方法 |
CN107256168A (zh) * | 2017-06-12 | 2017-10-17 | 郑州云海信息技术有限公司 | 一种uefi bios安全升级机制的设计方法 |
CN108399339A (zh) * | 2018-02-12 | 2018-08-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020063001A1 (zh) * | 2018-09-30 | 2020-04-02 | 华为技术有限公司 | 基本输入输出系统固件的管理方法、装置和服务器 |
CN110163012A (zh) * | 2019-05-30 | 2019-08-23 | 苏州浪潮智能科技有限公司 | 基于可编程器件的主板上电方法、装置及系统 |
CN112632552A (zh) * | 2019-09-24 | 2021-04-09 | 技嘉科技股份有限公司 | 服务器启动方法 |
CN110688660B (zh) * | 2019-09-27 | 2021-08-24 | 深圳市共进电子股份有限公司 | 一种终端安全启动的方法及装置、存储介质 |
CN110688660A (zh) * | 2019-09-27 | 2020-01-14 | 深圳市共进电子股份有限公司 | 一种终端安全启动的方法及装置、存储介质 |
CN111008379B (zh) * | 2019-11-22 | 2023-02-28 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
CN111008379A (zh) * | 2019-11-22 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
TWI738243B (zh) * | 2020-03-10 | 2021-09-01 | 神雲科技股份有限公司 | 伺服系統 |
WO2022227641A1 (zh) * | 2021-04-29 | 2022-11-03 | 华为技术有限公司 | 一种安全保护方法、装置及系统 |
CN113377425A (zh) * | 2021-06-29 | 2021-09-10 | 南昌华勤电子科技有限公司 | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 |
CN113377425B (zh) * | 2021-06-29 | 2023-05-30 | 南昌华勤电子科技有限公司 | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 |
CN113760328B (zh) * | 2021-07-28 | 2023-09-15 | 郑州云海信息技术有限公司 | 一种固件升级处理的方法、服务器系统和存储介质 |
CN113760328A (zh) * | 2021-07-28 | 2021-12-07 | 郑州云海信息技术有限公司 | 一种固件升级处理的方法、服务器系统和存储介质 |
WO2023051262A1 (zh) * | 2021-09-28 | 2023-04-06 | 华为技术有限公司 | 一种安全启动的方法、装置和系统 |
CN114444083A (zh) * | 2022-01-07 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种基于bmc的服务器bios全生命周期安全保护系统 |
CN114444083B (zh) * | 2022-01-07 | 2023-12-22 | 苏州浪潮智能科技有限公司 | 一种基于bmc的服务器bios全生命周期安全保护系统 |
CN114357468B (zh) * | 2022-03-21 | 2022-06-24 | 深圳比特微电子科技有限公司 | 一种固件的安全性保护方法、装置 |
CN114357468A (zh) * | 2022-03-21 | 2022-04-15 | 深圳比特微电子科技有限公司 | 一种固件的安全性保护方法、装置 |
CN114995893A (zh) * | 2022-08-01 | 2022-09-02 | 摩尔线程智能科技(北京)有限责任公司 | 固件的管理方法、闪存、主机及存储介质 |
CN114995893B (zh) * | 2022-08-01 | 2022-11-01 | 摩尔线程智能科技(北京)有限责任公司 | 固件的管理方法、闪存、主机及存储介质 |
CN117056982A (zh) * | 2023-08-28 | 2023-11-14 | 广州市粤港澳大湾区前沿创新技术研究院 | 一种多机数据验签方法、系统及存储介质 |
CN117056982B (zh) * | 2023-08-28 | 2024-02-23 | 广州市粤港澳大湾区前沿创新技术研究院 | 一种多机数据验签方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109446815B (zh) | 2020-12-25 |
WO2020063001A1 (zh) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446815A (zh) | 基本输入输出系统固件的管理方法、装置和服务器 | |
US10885197B2 (en) | Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning | |
US11316733B1 (en) | Client configurable hardware logic and corresponding signature | |
US9245106B2 (en) | Providing a multi-phase lockstep integrity reporting mechanism | |
CN105354493B (zh) | 基于虚拟化技术的终端可信增强方法及系统 | |
US20180165455A1 (en) | Secure execution environment on a server | |
US11206141B2 (en) | Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates | |
CN110321713B (zh) | 基于双体系架构的可信计算平台的动态度量方法和装置 | |
US11829478B2 (en) | Full server recovery architecture for cloud bare metal instances | |
EP1975836A2 (en) | Server active management technology (AMT) assisted secure boot | |
CN108351937A (zh) | 计算设备 | |
TW202038114A (zh) | 將安全客體之安全金鑰繫結至硬體安全模組 | |
US8589672B2 (en) | Method for securely merging multiple nodes having trusted platform modules | |
CN110334512B (zh) | 基于双体系架构的可信计算平台的静态度量方法和装置 | |
KR20100054805A (ko) | 원격 액세스 진단 디바이스 및 이의 방법들 | |
KR20090005219A (ko) | 점대점 상호연결 시스템 상에서의 보안 환경 초기화 명령의실행 | |
CN106063218A (zh) | 虚拟化系统中加解密的方法、装置和系统 | |
US11165766B2 (en) | Implementing authentication protocol for merging multiple server nodes with trusted platform modules utilizing provisioned node certificates to support concurrent node add and remove | |
US11868474B2 (en) | Securing node groups | |
CN110390201A (zh) | 计算机系统以及初始化计算机系统的方法 | |
CN110334509B (zh) | 双体系架构的可信计算平台的构建方法和装置 | |
JP2012518213A (ja) | 情報処理装置および情報処理方法 | |
US20230342472A1 (en) | Computer System, Trusted Function Component, and Running Method | |
CN113448681B (zh) | 一种虚拟机监控器公钥的注册方法、设备和存储介质 | |
WO2018233638A1 (zh) | Ai软件系统安全状态的确定方法及装置 |
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 |