一种服务器启动方法、装置、设备及存储介质转让专利

申请号 : CN202210352874.8

文献号 : CN114428963B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张旭李瑞东

申请人 : 浪潮(山东)计算机科技有限公司

摘要 :

本申请涉及通信技术领域,公开了一种服务器启动方法、装置、设备及存储介质,包括:分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。本申请在无需增加外围可信校验设备的同时对BMC固件和BIOS固件进行校验,提高服务器固件的可信度以保障服务器安全启动。

权利要求 :

1.一种服务器启动方法,其特征在于,包括:

分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;

在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;

判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理;

所述服务器启动方法,还包括:

预先创建自定义协议;

控制所述BMC固件和所述BIOS固件按照所述自定义协议中定义的结构体对固件验证信息进行交互;其中,所述固件验证信息包括BIOS固件验证信息和BMC固件验证信息;

相应的,所述分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证,包括:利用所述BMC固件通过IPMI命令的方式从所述BIOS固件中获取所述BIOS固件验证信息,以便所述BMC固件利用所述BIOS固件校验信息对所述BIOS固件进行第一验证;

利用所述BIOS固件通过IPMI命令的方式从所述BMC固件中获取所述BMC固件验证信息,以便所述BIOS固件利用所述BMC固件校验信息对所述BMC固件进行第二验证。

2.根据权利要求1所述的服务器启动方法,其特征在于,所述固件验证信息包括固件自检结果、核心进程运行情况、固件启动状态、固件大小、固件版本号及预设加密校验码中的任意一种或多种。

3.根据权利要求1所述的服务器启动方法,其特征在于,还包括:在所述BMC固件和所述BIOS固件运行时,分别控制所述BMC固件和所述BIOS固件对自身进行自检。

4.根据权利要求3所述的服务器启动方法,其特征在于,所述分别控制所述BMC固件和所述BIOS固件对自身进行自检之后,还包括:分别控制所述BMC固件和所述BIOS固件对自身的固件自检结果进行保存,当所述固件验证信息包含固件自检结果时,控制所述BMC固件和所述BIOS固件对固件自检结果进行交互。

5.根据权利要求1所述的服务器启动方法,其特征在于,所述对所述目标服务器进行断电处理,包括:通过可编程逻辑器件CPLD对搭载所述BMC固件的BMC板卡进行断电处理并停止为所述目标服务器的处理器上电。

6.一种服务器启动装置,其特征在于,包括:

进程封装及触发模块,用于分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;

交互验证模块,用于在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;

判断模块,用于判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理;

所述服务器启动装置,还包括:

协议创建模块,用于预先创建自定义协议;

控制模块,用于控制所述BMC固件和所述BIOS固件按照所述自定义协议中定义的结构体对固件验证信息进行交互;其中,所述固件验证信息包括BIOS固件验证信息和BMC固件验证信息;

相应的,所述交互验证模块12,包括:

第一验证单元,用于利用所述BMC固件通过IPMI命令的方式从所述BIOS固件中获取所述BIOS固件验证信息,以便所述BMC固件利用所述BIOS固件校验信息对所述BIOS固件进行第一验证;

第二验证单元,用于利用所述BIOS固件通过IPMI命令的方式从所述BMC固件中获取所述BMC固件验证信息,以便所述BIOS固件利用所述BMC固件校验信息对所述BMC固件进行第二验证。

7.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至5任一项所述的服务器启动方法。

8.一种计算机可读存储介质,其特征在于,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至5任一项所述的服务器启动方法。

说明书 :

一种服务器启动方法、装置、设备及存储介质

技术领域

[0001] 本发明涉及通信技术领域,特别涉及一种服务器启动方法、装置、设备及存储介质。

背景技术

[0002] BMC(Baseboard Management Controller)为基板管理控制器,可以实现服务器的相关控制、信息监督等功能,是直观呈现服务器信息的平台。服务器客户端可以通过web、ipmitool、snmp工具等访问服务器BMC以获取服务器的信息。BMC本质上是一个嵌入式系统,在使用过程中会面临程序完整性被破坏、操作系统被攻击、Web 应用被植入恶意代码等安全风险。此外,目前国内的服务器普遍采用国外的BMC芯片(如ASPEED 系列的AST2400、AST2500 等型号),安全性未知,核心技术受制于人。BIOS固件亦是如此。
[0003] 传统的安全手段一般只能防护网络层面或操作系统层面的问题,针对服务器BIOS固件的攻击以及针对服务器BMC固件的攻击,传统的“围堵查杀”手段显得更加捉襟见肘,不能保证固件安全便无法对服务器进行安全启动,对BMC固件和BIOS固件进行可信验证是必经之路。目前均需要新增外围电路(如可信密码模块或固件校验模块等),这种方式极大程度上增加了服务器成本,且对于已经出厂到客户现场的服务器则不能再添加外围设备。
[0004] 因此,如何提高服务器固件的可信度以保障服务器安全启动是本领域技术人员亟待解决的技术问题。

发明内容

[0005] 有鉴于此,本发明的目的在于提供一种服务器启动方法、装置、设备及存储介质,本发明的有益效果在于:能够在无需增加外围可信校验设备的同时对BMC固件和BIOS固件进行校验,提高服务器固件的可信度以保障服务器安全启动。其具体方案如下:
[0006] 本申请的第一方面提供了一种服务器启动方法,包括:
[0007] 分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;
[0008] 在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;
[0009] 判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。
[0010] 可选的,所述服务器启动方法,还包括:
[0011] 预先创建自定义协议;
[0012] 控制所述BMC固件和所述BIOS固件按照所述自定义协议中定义的结构体对固件验证信息进行交互;其中,所述固件验证信息包括BIOS固件验证信息和BMC固件验证信息。
[0013] 可选的,所述固件验证信息包括固件自检结果、核心进程运行情况、固件启动状态、固件大小、固件版本号及预设加密校验码中的任意一种或多种。
[0014] 可选的,所述服务器启动方法,还包括:
[0015] 在所述BMC固件和所述BIOS固件运行时,分别控制所述BMC固件和所述BIOS固件对自身进行自检。
[0016] 可选的,所述分别控制所述BMC固件和所述BIOS固件对自身进行自检之后,还包括:
[0017] 分别控制所述BMC固件和所述BIOS固件对自身的固件自检结果进行保存,当所述固件验证信息包含固件自检结果时,控制所述BMC固件和所述BIOS固件对固件自检结果进行交互。
[0018] 可选的,所述分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证,包括:
[0019] 利用所述BMC固件通过IPMI命令的方式从所述BIOS固件中获取所述BIOS固件验证信息,以便所述BMC固件利用所述BIOS固件校验信息对所述BIOS固件进行第一验证;
[0020] 利用所述BIOS固件通过IPMI命令的方式从所述BMC固件中获取所述BMC固件验证信息,以便所述BIOS固件利用所述BMC固件校验信息对所述BMC固件进行第二验证。
[0021] 可选的,所述对所述目标服务器进行断电处理,包括:
[0022] 通过可编程逻辑器件CPLD对搭载所述BMC固件的BMC板卡进行断电处理并停止为所述目标服务器的处理器上电。
[0023] 本申请的第二方面提供了一种服务器启动装置,包括:
[0024] 进程封装及触发模块,用于分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;
[0025] 交互验证模块,用于在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;
[0026] 判断模块,用于判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。
[0027] 本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述服务器启动方法。
[0028] 本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述服务器启动方法。
[0029] 本申请中,先分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;然后在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;最后判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。可见,本申请在服务器中的BMC固件和BIOS固件运行时,通过固件内封装的目标进程进行固件校验,也即基于服务器中BMC固件和BIOS固件之间的数据交互,实现BMC固件和BIOS固件的互锁验证。本发明的有益效果在于,在无需增加外围可信校验设备的同时对BMC固件和BIOS固件进行校验,提高服务器固件的可信度以保障服务器安全启动。

附图说明

[0030] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0031] 图1为本申请提供的一种服务器启动方法流程图;
[0032] 图2为本申请提供的一种具体的服务器启动方法示意图;
[0033] 图3为本申请提供的一种服务器启动装置结构示意图;
[0034] 图4为本申请提供的一种服务器启动电子设备结构图。

具体实施方式

[0035] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036] 现有技术中,一方面,针对服务器BIOS固件的攻击以及针对服务器BMC固件的攻击,传统的“围堵查杀”手段显得更加捉襟见肘,不能保证固件安全便无法对服务器进行安全启动,对BMC固件和BIOS固件进行可信验证是必经之路。另一方面,目前均需要新增外围电路,这种方式极大程度上增加了服务器成本,且对于已经出厂到客户现场的服务器则不能再添加外围设备。针对上述技术缺陷,本申请提供一种服务器启动方案,在无需增加外围可信校验设备的同时对BMC固件和BIOS固件进行校验,提高服务器固件的可信度以保障服务器安全启动。
[0037] 图1为本申请实施例提供的一种服务器启动方法流程图。参见图1所示,该服务器启动方法包括:
[0038] S11:分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验。
[0039] 本实施例中,先分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验。所述目标进程也即一段代码,所述BMC固件和所述BIOS固件本质也为程序代码,所述目标进程可封装于所述BMC固件和BIOS固件之中,当所述目标服务器主板上电后,所述BMC固件和所述BIOS固件相继开始运行,当所述BMC固件和所述BIOS固件均开始运行时,所述BMC固件和所述BIOS固件中封装的所述目标进程开始运行,以在所述BMC固件和所述BIOS固件之间执行互锁校验。
[0040] S12:在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证。
[0041] 本实施例中,在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证。当前对所述BMC固件或所述BIOS固件的校验均需要借助外围电路,例如可信密码模块、固件校验模块等,外围硬件电路成本较高。上述外围电路内嵌于服务器当中,对于已经出厂到客户现场的服务器增加硬件可信外围设备难度较大。
[0042] 本实施例使用软件方式进行服务器固件校验,也即基于所述BMC固件和所述BIOS固件中封装的所述目标进程以及所述BMC固件与所述BIOS固件之间本身存在的数据交互方式和通道进行服务器固件校验,既没有增加外围电路以降低固件可信校验的成本,又实现了客户机房设备的固件校验。具体的,一方面,通过所述BMC固件和所述BIOS固件之间的数据交互利用所述BMC固件对所述BIOS固件进行第一验证,另一方面,通过所述BMC固件和所述BIOS固件之间的数据交互利用所述BIOS固件对所述BMC固件进行第二验证。
[0043] S13:判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。
[0044] 本实施例中,在校验之后,综合判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。如果所述第一验证和所述第二验证均通过,则说明所述目标服务器的所述BMC固件和所述BIOS固件均通过了可信校验,所述BMC固件与所述BIOS固件均处于安全状态,此时可以安全启动所述目标服务器。同样的,如前文所述,如果所述BMC固件和所述BIOS固件中任何一个未通过可信校验,也即所述第一验证和所述第二验证中任何一个校验未通过,则对所述目标服务器进行断电处理。
[0045] 特别的,本实施例对搭载所述BMC固件的BMC板卡进行断电处理并停止为所述目标服务器的处理器上电,具体通过可编程逻辑器件CPLD对搭载所述BMC固件的BMC板卡进行断电处理并停止为所述目标服务器的处理器上电。也即所述如果BMC固件校验所述BIOS固件信息不通过,则通知所述可编程逻辑器件CPLD将BMC模块断电并不再给CPU上电,如果所述BIOS固件校验所述BMC固件信息不通过,则通知所述可编程逻辑器件CPLD将BMC模块断电并不再给CPU上电,达到所述BMC固件和所述BIOS固件互锁验证的目的。当然,所述可编程逻辑器件CPLD本质为控制单元,需要根据服务器的具体配置决定,其他能达到相同效果的器件均可,本实施例对此不进行限定。
[0046] 可见,本申请实施例先分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;然后在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;最后判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。本申请实施例在服务器中的BMC固件和BIOS固件运行时,通过固件内封装的目标进程进行固件校验,也即基于服务器中BMC固件和BIOS固件之间的数据交互,实现BMC固件和BIOS固件的互锁验证。本实施例的有益效果在于,在无需增加外围可信校验设备的同时对BMC固件和BIOS固件进行校验,提高服务器固件的可信度以保障服务器安全启动。
[0047] 图2为本申请实施例提供的一种具体的服务器启动方法流程图。参见图2所示,该服务器启动方法包括:
[0048] S21:预先创建自定义协议。
[0049] S22:控制所述BMC固件和所述BIOS固件按照所述自定义协议中定义的结构体对固件验证信息进行交互;其中,所述固件验证信息包括BIOS固件验证信息和BMC固件验证信息。
[0050] 本实施例中,进一步的,预先创建自定义协议。所述自定义协议主要是针对所述BMC固件和所述BIOS固件之间的底层传输协议做的约定,也即对所述BMC固件和所述BIOS固件之间的交互数据做的约定。在此基础上,控制所述BMC固件和所述BIOS固件按照所述自定义协议中定义的结构体对固件验证信息进行交互。不难理解,所述自定义协议可以是所述目标进程中的一部分代码,也可以单独封装于所述BMC固件和所述BIOS固件当中,本实施例对此不进行限定。
[0051] 本实施例中,为了使得校验结果更加准确,在所述BMC固件和所述BIOS固件运行时,分别控制所述BMC固件和所述BIOS固件对自身进行自检。分别控制所述BMC固件和所述BIOS固件对自身的固件自检结果进行保存,当所述固件验证信息包含固件自检结果时,控制所述BMC固件和所述BIOS固件对固件自检结果进行交互。
[0052] 本实施例中,所述固件验证信息包括固件自检结果、核心进程运行情况、固件启动状态、固件大小、固件版本号及预设加密校验码中的任意一种或多种。可以理解,所述固件验证信息包括BIOS固件验证信息和BMC固件验证信息,所述BIOS固件验证信息为所述BIOS固件的固件自检结果、核心进程运行情况、固件启动状态、固件大小、固件版本号及预设加密校验码中的任意一种或多种,所述BMC固件验证信息为所述BMC固件的固件自检结果、核心进程运行情况、固件启动状态、固件大小、固件版本号及预设加密校验码中的任意一种或多种。因此,本实施例采用自定义协议方式进行固件验证,协议格式也即协议结构体定义为:
[0053] typedef struct Verify_Integrity
[0054] {
[0055]   uint8 SelfTest;//自检结果
[0056]   uint8 CoreProcessStatus;//核心进程的运行情况
[0057]  uint8 InitCompletely;//是否完全启动
[0058] uint32 FirmwareSize;//固件大小
[0059]  uint8 Version[4];//固件版本号
[0060]  uint8 CheckCode[16];//校验码
[0061] } VERIFY_INTEGRITY_T;
[0062] 需要说明的是,上述自定义结构中的SelfTest表示所述BMC固件或所述BIOS固件的自检结果,所述BMC固件或所述BIOS固件运行时需要对自身运行状态进行自检并将自检结果保存;CoreProcessStatus表示所述BMC固件或所述BIOS固件的核心进程运行情况;InitCompletely表示所述BMC固件或所述BIOS固件是否完全启动,防止某一固件核心进程没启动给服务器上电,导致服务器异常;FirmwareSize表示固件大小,所述BMC固件一般为
64M大小,所述BIOS固件一般为32M大小,当数据不正确时表示固件有损坏;Version[4]表示固件版本号,所述BMC固件或所述BIOS固件会对对方的版本号进行校验;CheckCode表示所述BMC固件或所述BIOS固件的校验码,该校验码是一串加密字符,防止服务器的所述BMC固件或所述BIOS固件被篡改或篡刷。上述信息类型可以根据不同应用场景进行自定义设置,本实施例对此不进行限定。
[0063] S23:利用所述BMC固件通过IPMI命令的方式从所述BIOS固件中获取所述BIOS固件验证信息,以便所述BMC固件利用所述BIOS固件校验信息对所述BIOS固件进行第一验证。
[0064] S24:利用所述BIOS固件通过IPMI命令的方式从所述BMC固件中获取所述BMC固件验证信息,以便所述BIOS固件利用所述BMC固件校验信息对所述BMC固件进行第二验证。
[0065] S25:判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。
[0066] 本实施例中,所述BMC固件和所述BIOS固件之间一般通过IPMI(智能平台管理接口,Intelligent Platform Management Interface)命令进行交互, IPMI 是一种开放标准的硬件管理接口规格。所述目标服务器主板上电后,所述BMC固件和所述BIOS固件分别运行。所述BMC固件和所述BIOS固件首先进行自检,后通过IPMI命令交互传输上述结构体中的信息。一方面,利用所述BMC固件通过IPMI命令的方式从所述BIOS固件中获取所述BIOS固件验证信息,以便所述BMC固件利用所述BIOS固件校验信息对所述BIOS固件进行第一验证;另一方面,利用所述BIOS固件通过IPMI命令的方式从所述BMC固件中获取所述BMC固件验证信息,以便所述BIOS固件利用所述BMC固件校验信息对所述BMC固件进行第二验证。同样的,所述BMC固件校验所述BIOS固件信息不通过也即第一验证不通过,则所述可编程逻辑器件CPLD将BMC模块断电并不再给CPU上电;所述BIOS固件校验所述BMC固件信息不通过也即第二验证不通过,则通知CPLD将BMC模块断电并不再给CPU上电,达到BMC和BIOS互锁验证的目的。
[0067] 可见,本申请实施例在预先创建自定义协议的基础上控制所述BMC固件和所述BIOS固件按照所述自定义协议中定义的结构体对固件验证信息进行交互。然后利用所述BMC固件通过IPMI命令的方式从所述BIOS固件中获取所述BIOS固件验证信息以对所述BIOS固件进行第一验证,同时利用所述BIOS固件通过IPMI命令的方式从所述BMC固件中获取所述BMC固件验证信息以对所述BMC固件进行第二验证。本实施例的有益效果在于,使用软件和协议方式进行服务器固件验证,所述BMC固件和所述BIOS固件互锁校验完成后所述目标服务器再开机,能够保障服务器固件完整性、防止固件被恶意串以进一步保障服务器固件安全。
[0068] 参见图3所示,本申请实施例还相应公开了一种服务器启动装置,包括:
[0069] 进程封装及触发模块11,用于分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;
[0070] 交互验证模块12,用于在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;
[0071] 判断模块13,用于判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。
[0072] 可见,本申请实施例先分别在目标服务器的BMC固件和BIOS固件内封装目标进程,以在所述BMC固件和所述BIOS固件运行时触发所述目标进程进行固件校验;然后在固件校验过程中,通过所述BMC固件和所述BIOS固件之间的数据交互,分别利用所述BMC固件对所述BIOS固件进行第一验证并利用所述BIOS固件对所述BMC固件进行第二验证;最后判断所述第一验证和所述第二验证是否均通过,如果否,则对所述目标服务器进行断电处理。本申请实施例在服务器中的BMC固件和BIOS固件运行时,通过固件内封装的目标进程进行固件校验,也即基于服务器中BMC固件和BIOS固件之间的数据交互,实现BMC固件和BIOS固件的互锁验证,在无需增加外围可信校验设备的同时对BMC固件和BIOS固件进行校验,提高服务器固件的可信度以保障服务器安全启动。
[0073] 在一些具体实施例中,所述服务器启动装置还包括:
[0074] 协议创建模块,用于预先创建自定义协议;
[0075] 控制模块,用于控制所述BMC固件和所述BIOS固件按照所述自定义协议中定义的结构体对固件验证信息进行交互;其中,所述固件验证信息包括BIOS固件验证信息和BMC固件验证信息;
[0076] 自检模块,用于在所述BMC固件和所述BIOS固件运行时,分别控制所述BMC固件和所述BIOS固件对自身进行自检;
[0077] 存储模块,用于分别控制所述BMC固件和所述BIOS固件对自身的固件自检结果进行保存,当所述固件验证信息包含固件自检结果时,控制所述BMC固件和所述BIOS固件对固件自检结果进行交互。
[0078] 在一些具体实施例中,所述交互验证模块12,具体包括:
[0079] 第一验证单元,用于利用所述BMC固件通过IPMI命令的方式从所述BIOS固件中获取所述BIOS固件验证信息,以便所述BMC固件利用所述BIOS固件校验信息对所述BIOS固件进行第一验证;
[0080] 第二验证单元,用于利用所述BIOS固件通过IPMI命令的方式从所述BMC固件中获取所述BMC固件验证信息,以便所述BIOS固件利用所述BMC固件校验信息对所述BMC固件进行第二验证。
[0081] 在一些具体实施例中,所述判断模块13,具体用于通过可编程逻辑器件CPLD对搭载所述BMC固件的BMC板卡进行断电处理并停止为所述目标服务器的处理器上电。
[0082] 进一步的,本申请实施例还提供了一种电子设备。图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
[0083] 图4为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的服务器启动方法中的相关步骤。
[0084] 本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0085] 另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
[0086] 其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的服务器启动方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的交互数据。
[0087] 进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的服务器启动方法步骤。
[0088] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0089] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0090] 以上对本发明所提供的服务器启动方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。