CN111158767A - 基于bmc的服务器安全启动方法及装置 - Google Patents
基于bmc的服务器安全启动方法及装置 Download PDFInfo
- Publication number
- CN111158767A CN111158767A CN201911358516.2A CN201911358516A CN111158767A CN 111158767 A CN111158767 A CN 111158767A CN 201911358516 A CN201911358516 A CN 201911358516A CN 111158767 A CN111158767 A CN 111158767A
- Authority
- CN
- China
- Prior art keywords
- cpld
- module
- measurement result
- bios
- bmc
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种基于BMC的服务器安全启动方法及装置,方法包括:启动BMC管理***和可信密码模块,基于BMC管理***调用可信密码模块对CPLD和BIOS模块进行度量,获取CPLD和BIOS模块的度量结果;若根据CPLD和BIOS模块的度量结果获知CPLD和BIOS模块均未被恶意破坏,则控制CPLD给BIOS模块上电;基于BIOS模块对服务器的主机硬件进行状态检测,若状态检测通过则调用可信密码模块对服务器的主机操作***的启动代码进行度量,获取启动代码的度量结果,若根据启动代码的度量结果获知启动代码未被修改,则启动主机操作***。本发明实施例中不需要增加额外负载,实现服务器的安全启动。
Description
技术领域
本发明属于计算机安全技术领域,尤其涉及一种基于BMC的服务器安全启动方法及装置。
背景技术
基板管理控制器(Baseboard Management Controller,BMC)管理***是服务器主板上独立于主机操作***的嵌入式管理***,支持行业标准的IPMI(IntelligentPlatform Management Interface,智能平台管理接口)协议,作用是利用虚拟的键盘、鼠标等为服务器提供远程管理功能。用户利用BMC监视服务器的物理特征,比如各部件的温度、电压、风扇工作状态等。
基本输入输出***(Basic Input Output System,BIOS)是直接固化在主板上的核心软件***,保存着服务器最重要的基本输入输出的程序、开机后的自检程序和***自启动程序。开机后BIOS从ROM(Read-Only Memory,只读存储器)等存储器读写***设置的具体信息,为服务器提供最底层的、最直接的硬件设置和控制。
现有技术通过加入可信密码模块,并且优先启动可信密码模块,构建启动信任链,实现服务器的可信启动。在服务器上电后,可信密码模块进行自检,确定是否工作正常。若其处于不正常工作状态则报警并关机。如果正常的话可信密码模块对CPLD(ComplexProgrammable Logic Device,复杂可编程逻辑器件)中的代码进行完整性度量,确定CPLD是否正确,并将CPLD度量结果存储于可信密码模块。若CPLD正确,则进行下一步,否则对CPLD进行恢复。接着可信密码模块对BMC的引导层进行度量,确定BMC的引导层是否正确。若其引导层正确,则转入下一步,否则对BMC引导层进行恢复。BMC引导层中内置了可信度量模块,通过可信密码模块对BMC的操作***镜像进行度量。根据结果继续进行下一步。BMC操作***中包括了一个可信度量代理和可信策略管理模块。可信度量代理将根据可信策略管理模块中的用户配置策略,通过可信密码模块对BIOS进行度量。若BIOS无误,则BIOS进行可信度量的任务交由可信密码模块主动完成。BIOS对服务器的关键硬件进行度量。BIOS通过调用可信密码模块的接口,对硬盘、显卡、网卡等关键设备进行度量,防止其被非授权替换或植入木马。
还有的现有技术通过加入硬件密码模块的方式来实现对服务器的相关固件进行可信度量,从而构建信任链,并且实现服务器的安全启动。首先,通过SPI(SerialPeripheral Interface,串行外设接口)总线构建基板管理控制器BMC与BIOS之间的连接,通过LPC(LOW PIN COUNT,短管脚计数)总线构建BMC与可信密码模块(TrustedCryptography Module,TCM)之间的连接,并在TCM中存储SM3杂凑算法和基准值;BMC通过SPI总线收集BIOS中的关键代码;通过LPC总线调用TCM中存储的SM3杂凑算法,对关键代码进行度量,得到度量值;判断度量值与TCM中存储的基准值是否一致,如果是,则发送控制信号给CPU(Central Processing Unit,中央处理器),以控制CPU上电,并将信任链传递给BIOS中的关键代码;否则,禁止CPU启动实现信任传递。
前面的方法首先启动可信密码模块,但是可信密码模块无法自己去度量其他部分,需要有***程序进行调用,而且需要初始化许多硬件,这无疑增加了***的额外负载,同时也增加了相关的改造成本。后面的方法通过加入TCM模块,让它和BMC同时作为***的可信根,用来构建信任链,但是它的信任链构建过程中并没有实现对CPLD进行可信度量,CPLD用于对主板上各个器件进行上电控制,如果它被攻击,将会出现严重的后果。因此,CPLD的可信度量也是非常重要的。
发明内容
为克服上述现有的服务器安全启动方法增加额外负载和改造成本,可信度量不全面的问题或者至少部分地解决上述问题,本发明实施例提供一种基于BMC的服务器安全启动方法及装置。
根据本发明实施例的第一方面,提供一种基于BMC的服务器安全启动方法,包括:
启动BMC管理***和可信密码模块,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果;
若根据所述CPLD的度量结果获知所述CPLD未被恶意破坏,且根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏,则控制所述CPLD给所述BIOS模块上电;
基于BIOS模块对服务器的主机硬件进行状态检测,若状态检测通过则基于所述BMC管理***调用所述可信密码模块对所述服务器的主机操作***的启动代码进行度量,获取所述启动代码的度量结果,若根据所述启动代码的度量结果获知所述启动代码未被修改,则启动所述主机操作***。
具体地,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果的步骤包括:
基于所述BMC管理***调用所述可信密码模块对CPLD进行度量,获取所述CPLD的度量结果;
若根据所述CPLD的度量结果获知所述CPLD未被恶意破坏,则基于所述BMC管理***调用所述可信密码模块对BIOS模块进行度量,获取所述BIOS模块的度量结果。
具体地,根据所述CPLD的度量结果获知所述CPLD未被恶意破坏的步骤包括:
将所述CPLD的度量结果和预先存储的所述CPLD的基准度量值进行比较;
若所述CPLD的度量结果和所述CPLD的基准度量值一致,则获知所述CPLD未被恶意破坏,允许所述CPLD进行上电控制;
若所述CPLD的度量结果和所述CPLD的基准度量值不一致,则不允许所述CPLD进行上电控制。
具体地,根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏的步骤包括:
将所述BIOS模块的度量结果和预先存储的所述BIOS模块的基准度量值进行比较;
若所述BIOS模块的度量结果和所述BIOS模块的基准度量值一致,则获知所述BIOS模块未被恶意破坏,允许所述CPLD对所述BIOS模块上电;
若所述BIOS模块的度量结果和所述BIOS模块的基准度量值不一致,则不允许所述CPLD对所述BIOS模块上电。
具体地,根据所述启动代码的度量结果获知所述启动代码未被修改的步骤包括:
将所述主机操作***的启动代码的度量结果和预先存储的所述启动代码的基准度量值进行比较;
若所述启动代码的度量结果和所述启动代码的基准度量值一致,则获知所述启动代码未被修改,将所述BIOS模块的控制权交给所述主机操作***;
若所述启动代码的度量结果和所述启动代码的基准度量值不一致,则不启动所述主机操作***。
具体地,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量的步骤包括:
基于所述BMC管理***通过调用所述可信密码模块中相应的算法对CPLD和BIOS模块进行度量;其中,所述BMC管理***通过LPC总线与所述可信密码模块连接。
具体地,将所述CPLD的度量结果和预先存储的所述CPLD的基准度量值进行比较的步骤之后还包括:
若所述CPLD的度量结果和所述CPLD的基准度量值一致,则将所述CPLD的度量结果存储在所述BMC管理***的寄存器中;
将所述BIOS模块的度量结果和预先存储的所述BIOS模块的基准度量值进行比较的步骤之后还包括:
若所述BIOS模块的度量结果和所述BIOS模块的基准度量值一致,则将所述BIOS模块的度量结果存储在所述CPLD的度量结果的后面;
将所述主机操作***的启动代码的度量结果和预先存储的所述启动代码的基准度量值进行比较的步骤之后还包括:
若所述启动代码的度量结果和所述启动代码的基准度量值一致,则将所述启动代码的度量结果存储在所述BIOS模块的度量结果的后面。
根据本发明实施例第二方面提供一种基于BMC的服务器安全启动装置,包括:
度量模块,用于启动BMC管理***和可信密码模块,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果;
上电模块,用于若根据所述CPLD的度量结果获知所述CPLD未被恶意破坏,且根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏,则控制所述CPLD给所述BIOS模块上电;
启动模块,用于基于BIOS模块对服务器的主机硬件进行状态检测,若状态检测通过则基于所述BMC管理***调用所述可信密码模块对所述服务器的主机操作***的启动代码进行度量,获取所述启动代码的度量结果,若根据所述启动代码的度量结果获知所述启动代码未被修改,则启动所述主机操作***。
根据本发明实施例的第三个方面,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于BMC的服务器安全启动方法。
根据本发明实施例的第四个方面,还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于BMC的服务器安全启动方法。
本发明实施例提供一种基于BMC的服务器安全启动方法及装置,该方法通过将加入的可信密码模块和先行启动的BMC同时作为可信根,同时作为信任链的源点,对信任链进行了扩展,把信任根进行前移,提高了服务器的安全性;同时,在构建可信链的过程中,BMC调用可信密码模块对CPLD、BIOS和主机操作***的启动代码进行度量,可信密码模块直接由BMC管理***调用,不需要增加额外负载来实现,简化了操作,提高了服务器安全启动的效率,降低了成本,而且通过加入对CPLD的完整性度量,确保了CPLD在工作时的安全性和可靠性,保证服务器整个启动过程中的安全可信,实现了服务器的可信启动。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于BMC的服务器安全启动方法流程示意图;
图2为本发明实施例提供的基于BMC的服务器安全启动方法的完整流程示意图;
图3为本发明实施例提供的基于BMC的服务器安全启动方法中服务器安全启动的架构结构图;
图4为本发明实施例提供的基于BMC的服务器安全启动方法中服务器启动过程中的信任链结构示意图;
图5为本发明实施例提供的基于BMC的服务器安全启动装置结构示意图;
图6为本发明实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的一个实施例中提供一种基于BMC的服务器安全启动方法,图1为本发明实施例提供的基于BMC的服务器安全启动方法流程示意图,该方法包括:S101,启动BMC管理***和可信密码模块,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果;
其中,可信密码模块中存储有度量算法,用于进行可信度量。为了实现服务器的安全启动,在服务器加电以后,首先启动BMC管理***和可信密码模块。两者启动后,通过BMC管理***调用可信密码模块对CPLD和BIOS模块进行度量,如对CPLD和BIOS模块的固件完整性进行度量,本实施例对度量方法不进行限定。BMC管理***通过调用可信密码模块中的度量算法对CPLD和BIOS模块进行度量。
S102,若根据所述CPLD和BIOS模块的度量结果获知所述CPLD和BIOS模块未被恶意破坏,且根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏,则控制所述CPLD给所述BIOS模块上电,启动所述BIOS模块;
其中,CPLD主要是控制服务器的主板电源上电的时序,通过LPC总线与BMC管理***相连。通过BMC管理***给CPLD发送时序逻辑控制指令对相关模块进行上电,实现相关模块的上电启动。BIOS模块主要用来在服务器的主机操作***启动前对硬件进行检测,BIOS模块通过SPI总线与BMC相连,BIOS模块在上电以前BMC会读取BIOS模块相关固件的代码,对BIOS模块进行度量。
根据CPLD和BIOS模块的度量结果确定两者的固件是否被恶意破坏。只有CPLD的固件没有被恶意破坏时才允许CPLD进行上电控制,只有BIOS模块的固件没有被恶意破坏,即完整的时候才允许CPLD对BIOS上电。在CPLD和BIOS模块均未被恶意破坏的情况下,CPLD才能对BIOS上电,启动BIOS,才能允许BIOS对服务器整个主板的控制。如果CPLD和/或BIOS模块被恶意破坏,则服务器将无法上电,同时会有告警信息传送到BMC管理***的页面,告知服务器的管理人员。
S103,基于BIOS模块对服务器的主机硬件进行状态检测,若检测通过则基于所述BMC管理***调用所述可信密码模块对所述服务器的主机操作***的启动代码进行度量,获取所述启动代码的度量结果,若根据所述启动代码的度量结果获知所述启动代码未被修改,则启动所述主机操作***。
在BIOS模块上电启动,获得控制权以后,对服务器主机的相关硬件进行状态检测,检测硬件的状态是否正常。如果硬件的状态均正常,则通过BMC调用可信密码模块对服务器的主机操作***的启动代码进行度量。根据度量结果判断启动代码是否被修改,如果未被修改则允许服务器启动,并将BIOS模块的控制权交给服务器的主机操作***。如果被修正,则不允许服务器的主机操作***进行启动,并且将判断结果发送给服务器的管理人员,等待下一次的指令。基于BMC的服务器安全启动完整流程如图2所示。
本实施例通过将加入的可信密码模块和先行启动的BMC同时作为可信根,同时作为信任链的源点,对信任链进行了扩展,把信任根进行前移,提高了服务器的安全性;同时,在构建可信链的过程中,BMC调用可信密码模块对CPLD、BIOS和主机操作***的启动代码进行度量,可信密码模块直接由BMC管理***调用,不需要增加额外负载来实现,简化了操作,提高了服务器安全启动的效率,降低了成本,而且通过加入对CPLD的完整性度量,确保了CPLD在工作时的安全性和可靠性,保证服务器整个启动过程中的安全可信,实现了服务器的可信启动。
在上述实施例的基础上,本实施例中基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果的步骤包括:基于所述BMC管理***调用所述可信密码模块对CPLD进行度量,获取所述CPLD的度量结果;若根据所述CPLD的度量结果获知所述CPLD未被恶意破坏,则基于所述BMC管理***调用所述可信密码模块对BIOS模块进行度量,获取所述BIOS模块的度量结果。
具体地,首先BMC管理***调用可信密码模块对CPLD进行度量,并根据度量结果判断CPLD是否被恶意破坏。只有在CPLD未被恶意破坏的情况下才允许CPLD进行上电控制,才需要对BIOS模块进行度量,根据度量结果对BIOS模型进行上电启动。而在CPLD被恶意破坏的情况下,不允许CPLD进行上电操作,此时无法对BIOS模型进行上电启动,无需对BIOS进行度量,从而减少资源消耗。
在上述实施例的基础上,本实施例中根据所述CPLD的度量结果获知所述CPLD未被恶意破坏的步骤包括:将所述CPLD的度量结果和预先存储的所述CPLD的基准度量值进行比较;若所述CPLD的度量结果和所述CPLD的基准度量值一致,则获知所述CPLD未被恶意破坏,允许所述CPLD进行上电控制;若所述CPLD的度量结果和所述CPLD的基准度量值不一致,则不允许所述CPLD进行上电控制。
其中,CPLD的基准度量值为预先采用对当前CPLD进行度量同样的方法对正常CPLD进行度量的结果。将CPLD的度量结果和CPLD的基准度量值进行比较,如果二者一致,则获知CPLD是完整的,未被恶意破坏,允许CPLD进行下一步的上电控制;如果二者不一致,则不允许CPLD进行上电控制,同时发送报警信息给BMC管理***,通知服务器的管理人员。
在上述实施例的基础上,本实施例中根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏的步骤包括:将所述BIOS模块的度量结果和预先存储的所述BIOS模块的基准度量值进行比较;若所述BIOS模块的度量结果和所述BIOS模块的基准度量值一致,则获知所述BIOS模块未被恶意破坏,允许所述CPLD对所述BIOS模块上电;若所述BIOS模块的度量结果和所述BIOS模块的基准度量值不一致,则不允许所述CPLD对所述BIOS模块上电。
其中,BIOS模块的基准度量值预先采用对当前BIOS模块进行度量同样的方法对正常BIOS模块进行度量的结果。将BIOS模块的度量结果和BIOS模块的基准度量值进行比较,如果二者一致,则获知CPLD是完整的,未被恶意破坏,允许CPLD对BIOS模块上电,从而启动BIOS模块;如果二者不一致,则不允许CPLD对BIOS模块上电,同时给服务器的管理人员发送报警信息。
在上述实施例的基础上,本实施例中根据所述启动代码的度量结果获知所述启动代码未被修改的步骤包括:将所述主机操作***的启动代码的度量结果和预先存储的所述启动代码的基准度量值进行比较;若所述启动代码的度量结果和所述启动代码的基准度量值一致,则获知所述启动代码未被修改,将所述BIOS模块的控制权交给所述主机操作***;若所述启动代码的度量结果和所述启动代码的基准度量值不一致,则不启动所述主机操作***。
其中,主机操作***的启动代码的基准度量值预先采用对当前启动代码进行度量同样的方法对正常启动代码进行度量的结果。将主机操作***的启动代码的度量结果和该启动代码的基准度量值进行比较,如果二者一致,则获知该启动代码没有被恶意篡改,启动服务器的主机操作***;如果二者不一致,则获知该启动代码被恶意篡改,服务器的主机操作***不能被启动。
在上述实施例的基础上,本实施例中基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量的步骤包括:基于所述BMC管理***通过调用所述可信密码模块中相应的算法对CPLD和BIOS模块进行度量;其中,所述BMC管理***通过LPC总线与所述可信密码模块连接。
具体地,如图3所示,服务器安全启动的架构结构图包括7个模块,BMC管理***、可信密码模块、CPLD、BIOS模块、Flash和EEPRAM(Erasable Programmable Random AccessMemory,电可擦除可编程随机存取存储器)。
其中,BMC管理***作为***平台的可信度量根,同时BMC管理***中的寄存器又作为度量结果的存储位置,在服务器加电以后会首先进行启动。可信密码模块中存储有度量算法,主要功能是被调用进行相关的度量计算,此模块通过LPC总线和BMC连接,BMC可以在上电启动以后对它进行访问。CPLD主要是控制服务器的主板电源上电的时序,通过LPC总线与BMC相连,在BMC启动以后,可以给CPLD模块发送时序逻辑控制指令,来对相关模块进行上电,实现相关模块的启动。BIOS模块主要是用来在服务器的主机操作***启动以前对相关硬件进行检测,BIOS模块通过SPI总线与BMC相连,BIOS模块在上电以前BMC管理***会读取其相关固件代码,对BIOS模块进行度量。Flash存储器是BMC管理***的片外非易失存储器,用于保存BMC管理***相关的固件程序。BMC管理***的固件存储在Flash存储器中,在服务器加电以后,会先进行启动。BMC在正常启动以后会调用可信密码模块对CPLD固件、BIOS固件和主机操作***的启动代码进行完整性度量,确保程序的完整性,从而建立起服务器启动的整条信任链,保证服务器在一个安全的环境下进行启动。
在上述实施例的基础上,本实施例中将所述CPLD的度量结果和预先存储的所述CPLD的基准度量值进行比较的步骤之后还包括:若所述CPLD的度量结果和所述CPLD的基准度量值一致,则将所述CPLD的度量结果存储在所述BMC管理***的寄存器中;将所述BIOS模块的度量结果和预先存储的所述BIOS模块的基准度量值进行比较的步骤之后还包括:若所述BIOS模块的度量结果和所述BIOS模块的基准度量值一致,则将所述BIOS模块的度量结果存储在所述CPLD的度量结果的后面;将所述主机操作***的启动代码的度量结果和预先存储的所述启动代码的基准度量值进行比较的步骤之后还包括:若所述启动代码的度量结果和所述启动代码的基准度量值一致,则将所述启动代码的度量结果存储在所述BIOS模块的度量结果的后面。
具体地,可信计算组织规范中信任链模型的起点是BIOS模块,由BIOS模块作为信任链起点,而本实施例首先使用BMC和可信密码模块作为可信根,同时作为信任链的源点,对信任链进行了扩展,把信任根进行前移,这样可以提高服务器的安全性。
在构建信任链过程中,所有过程的度量结果都存储在同一寄存器中,并且存储地址是连续的。每一个模块在运行前都需要对前一个模块进行完整性度量,只要完整性度量结果一致才允许当前模块加载运行,相关的寄存器会记录服务器整个启动过程的运行状态。如果信任链中间是断开的,即某些模块不满足启动条件就无法启动服务器,从而保证服务器从上电到启动主机操作***整个流程的安全可信。
本实施例中为了实现服务器的可信启动,主要是依靠在服务器管理***中嵌入的可信密码模块(Trusted Platform Module,TCM)来对整个服务器加电启动过程进行可信度量。BMC管理***和可信密码模块作为服务器管理***的信任根,能够对***平台进行主动度量和控制,信任链模型如图4所示,信任链建立过程如下:
1、首先BMC管理***和可信密码模块先进行上电启动,启动以后由BMC管理***中的程序调用可信度量模块,对CPLD的镜像进行度量,度量结果和基准度量值进行比较,如果二者不一致,就禁止进行下一步的操作;如果度量结果一致,将度量结果存储在BMC管理***的相关寄存器中,同时允许进行下一步的操作。
2、在CPLD允许上电以后,继续操作可信密码模块对BIOS模块相关的固件进行度量,同时将度量结果和基准度量值进行比较,如果有变化就禁止启动BIOS模块,同时发出告警信息;如果结果对比一致,就将度量结果存储在上一步度量结果的后面,同时允许CPLD对BIOS模块上电。
3、在BIOS获得控制权以后,首先会对服务器主机的相关硬件进行状态检测,在检测通过以后,BIOS模块的***就可以成功启动。然后调用可信密码模块对主机操作***的启动代码进行度量,度量结果同样会和存储值进行比较,如果根据比较结果获知启动代码发生恶意篡改现象,那么主机服务器***将不能被启动;如果结果对比一致,那么同样将度量结果存储在上一步的度量结果后面,同时允许服务器的主机操作***进行启动,服务器将可以正常启动。
在本发明的另一个实施例中提供一种基于BMC的服务器安全启动装置,该装置用于实现前述各实施例中的方法。因此,在前述基于BMC的服务器安全启动方法的各实施例中的描述和定义,可以用于本发明实施例中各个执行模块的理解。图5为本发明实施例提供的基于BMC的服务器安全启动装置结构示意图,该装置包括度量模块501、上电模块502和启动模块503,其中:
度量模块501用于启动BMC管理***和可信密码模块,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果;
其中,可信密码模块中存储有度量算法,用于进行可信度量。为了实现服务器的安全启动,在服务器加电以后,首先启动BMC管理***和可信密码模块。两者启动后,度量模块501通过BMC管理***调用可信密码模块对CPLD和BIOS模块进行度量,如对CPLD和BIOS模块的固件完整性进行度量,本实施例对度量方法不进行限定。BMC管理***通过调用可信密码模块中的度量算法对CPLD和BIOS模块进行度量。
上电模块502用于若根据所述CPLD的度量结果获知所述CPLD未被恶意破坏,且根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏,则控制所述CPLD给所述BIOS模块上电;
上电模块502根据CPLD和BIOS模块的度量结果确定两者的固件是否被恶意破坏。只有CPLD的固件没有被恶意破坏时才允许CPLD进行上电控制,只有BIOS模块的固件没有被恶意破坏,即完整的时候才允许CPLD对BIOS上电。在CPLD和BIOS模块均未被恶意破坏的情况下,CPLD才能对BIOS上电,启动BIOS,才能允许BIOS对服务器整个主板的控制。如果CPLD和/或BIOS模块被恶意破坏,则服务器将无法上电,同时会有告警信息传送到BMC管理***的页面,告知服务器的管理人员。
启动模块503用于基于BIOS模块对服务器的主机硬件进行状态检测,若状态检测通过则基于所述BMC管理***调用所述可信密码模块对所述服务器的主机操作***的启动代码进行度量,获取所述启动代码的度量结果,若根据所述启动代码的度量结果获知所述启动代码未被修改,则启动所述主机操作***。
在BIOS模块上电启动,获得控制权以后,对服务器主机的相关硬件进行状态检测,检测硬件的状态是否正常。如果硬件的状态均正常,则启动模块503通过BMC调用可信密码模块对服务器的主机操作***的启动代码进行度量。根据度量结果判断启动代码是否被修改,如果未被修改则允许服务器启动,并将BIOS模块的控制权交给服务器的主机操作***。如果被修正,则不允许服务器的主机操作***进行启动,并且将判断结果发送给服务器的管理人员,等待下一次的指令。
本实施例通过将加入的可信密码模块和先行启动的BMC同时作为可信根,同时作为信任链的源点,对信任链进行了扩展,把信任根进行前移,提高了服务器的安全性;同时,在构建可信链的过程中,BMC调用可信密码模块对CPLD、BIOS和主机操作***的启动代码进行度量,可信密码模块直接由BMC管理***调用,不需要增加额外负载来实现,简化了操作,提高了服务器安全启动的效率,降低了成本,而且通过加入对CPLD的完整性度量,确保了CPLD在工作时的安全性和可靠性,保证服务器整个启动过程中的安全可信,实现了服务器的可信启动。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)601、通信接口(Communications Interface)602、存储器(memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。处理器601可以调用存储器603中的逻辑指令,以执行如下方法:启动BMC管理***和可信密码模块,基于BMC管理***调用可信密码模块对CPLD和BIOS模块进行度量,获取CPLD和BIOS模块的度量结果;若根据CPLD和BIOS模块的度量结果获知CPLD和BIOS模块均未被恶意破坏,则控制CPLD给BIOS模块上电;基于BIOS模块对服务器的主机硬件进行状态检测,若状态检测通过则调用可信密码模块对服务器的主机操作***的启动代码进行度量,获取启动代码的度量结果,若根据启动代码的度量结果获知启动代码未被修改,则启动主机操作***。
此外,上述的存储器603中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:启动BMC管理***和可信密码模块,基于BMC管理***调用可信密码模块对CPLD和BIOS模块进行度量,获取CPLD和BIOS模块的度量结果;若根据CPLD和BIOS模块的度量结果获知CPLD和BIOS模块均未被恶意破坏,则控制CPLD给BIOS模块上电;基于BIOS模块对服务器的主机硬件进行状态检测,若状态检测通过则调用可信密码模块对服务器的主机操作***的启动代码进行度量,获取启动代码的度量结果,若根据启动代码的度量结果获知启动代码未被修改,则启动主机操作***。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于BMC的服务器安全启动方法,其特征在于,包括:
启动BMC管理***和可信密码模块,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果;
若根据所述CPLD的度量结果获知所述CPLD未被恶意破坏,且根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏,则控制所述CPLD给所述BIOS模块上电;
基于BIOS模块对服务器的主机硬件进行状态检测,若状态检测通过则基于所述BMC管理***调用所述可信密码模块对所述服务器的主机操作***的启动代码进行度量,获取所述启动代码的度量结果,若根据所述启动代码的度量结果获知所述启动代码未被修改,则启动所述主机操作***。
2.根据权利要求1所述的基于BMC的服务器安全启动方法,其特征在于,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果的步骤包括:
基于所述BMC管理***调用所述可信密码模块对CPLD进行度量,获取所述CPLD的度量结果;
若根据所述CPLD的度量结果获知所述CPLD未被恶意破坏,则基于所述BMC管理***调用所述可信密码模块对BIOS模块进行度量,获取所述BIOS模块的度量结果。
3.根据权利要求1所述的基于BMC的服务器安全启动方法,其特征在于,根据所述CPLD的度量结果获知所述CPLD未被恶意破坏的步骤包括:
将所述CPLD的度量结果和预先存储的所述CPLD的基准度量值进行比较;
若所述CPLD的度量结果和所述CPLD的基准度量值一致,则获知所述CPLD未被恶意破坏,允许所述CPLD进行上电控制;
若所述CPLD的度量结果和所述CPLD的基准度量值不一致,则不允许所述CPLD进行上电控制。
4.根据权利要求3所述的基于BMC的服务器安全启动方法,其特征在于,根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏的步骤包括:
将所述BIOS模块的度量结果和预先存储的所述BIOS模块的基准度量值进行比较;
若所述BIOS模块的度量结果和所述BIOS模块的基准度量值一致,则获知所述BIOS模块未被恶意破坏,允许所述CPLD对所述BIOS模块上电;
若所述BIOS模块的度量结果和所述BIOS模块的基准度量值不一致,则不允许所述CPLD对所述BIOS模块上电。
5.根据权利要求4所述的基于BMC的服务器安全启动方法,其特征在于,根据所述启动代码的度量结果获知所述启动代码未被修改的步骤包括:
将所述主机操作***的启动代码的度量结果和预先存储的所述启动代码的基准度量值进行比较;
若所述启动代码的度量结果和所述启动代码的基准度量值一致,则获知所述启动代码未被修改,将所述BIOS模块的控制权交给所述主机操作***;
若所述启动代码的度量结果和所述启动代码的基准度量值不一致,则不启动所述主机操作***。
6.根据权利要求1-5任一所述的基于BMC的服务器安全启动方法,其特征在于,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量的步骤包括:
基于所述BMC管理***通过调用所述可信密码模块中相应的算法对CPLD和BIOS模块进行度量;其中,所述BMC管理***通过LPC总线与所述可信密码模块连接。
7.根据权利要求5所述的基于BMC的服务器安全启动方法,其特征在于,将所述CPLD的度量结果和预先存储的所述CPLD的基准度量值进行比较的步骤之后还包括:
若所述CPLD的度量结果和所述CPLD的基准度量值一致,则将所述CPLD的度量结果存储在所述BMC管理***的寄存器中;
将所述BIOS模块的度量结果和预先存储的所述BIOS模块的基准度量值进行比较的步骤之后还包括:
若所述BIOS模块的度量结果和所述BIOS模块的基准度量值一致,则将所述BIOS模块的度量结果存储在所述CPLD的度量结果的后面;
将所述主机操作***的启动代码的度量结果和预先存储的所述启动代码的基准度量值进行比较的步骤之后还包括:
若所述启动代码的度量结果和所述启动代码的基准度量值一致,则将所述启动代码的度量结果存储在所述BIOS模块的度量结果的后面。
8.一种基于BMC的服务器安全启动装置,其特征在于,包括:
度量模块,用于启动BMC管理***和可信密码模块,基于所述BMC管理***调用所述可信密码模块对CPLD和BIOS模块进行度量,获取所述CPLD和BIOS模块的度量结果;
上电模块,用于若根据所述CPLD的度量结果获知所述CPLD未被恶意破坏,且根据所述BIOS模块的度量结果获知所述BIOS模块未被恶意破坏,则控制所述CPLD给所述BIOS模块上电;
启动模块,用于基于BIOS模块对服务器的主机硬件进行状态检测,若状态检测通过则基于所述BMC管理***调用所述可信密码模块对所述服务器的主机操作***的启动代码进行度量,获取所述启动代码的度量结果,若根据所述启动代码的度量结果获知所述启动代码未被修改,则启动所述主机操作***。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于BMC的服务器安全启动方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述基于BMC的服务器安全启动方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911358516.2A CN111158767B (zh) | 2019-12-25 | 2019-12-25 | 基于bmc的服务器安全启动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911358516.2A CN111158767B (zh) | 2019-12-25 | 2019-12-25 | 基于bmc的服务器安全启动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158767A true CN111158767A (zh) | 2020-05-15 |
CN111158767B CN111158767B (zh) | 2023-10-27 |
Family
ID=70558336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911358516.2A Active CN111158767B (zh) | 2019-12-25 | 2019-12-25 | 基于bmc的服务器安全启动方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158767B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282969A (zh) * | 2021-05-13 | 2021-08-20 | 中科可控信息产业有限公司 | 设备控制方法、电子设备及可读存储介质 |
CN113742141A (zh) * | 2021-11-04 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种服务器度量方法、装置、计算机设备和存储介质 |
CN113835770A (zh) * | 2021-11-30 | 2021-12-24 | 四川华鲲振宇智能科技有限责任公司 | 一种服务器管理模块在线更换方法及*** |
CN114205208A (zh) * | 2021-11-05 | 2022-03-18 | 苏州浪潮智能科技有限公司 | 一种基于远端的服务器批量启动方法、装置、设备及介质 |
WO2022143429A1 (zh) * | 2020-12-29 | 2022-07-07 | 华为技术有限公司 | 计算机***、可信功能组件及运行方法 |
CN116628701A (zh) * | 2023-05-25 | 2023-08-22 | 合芯科技有限公司 | Tpcm在位检测方法、装置、服务器启动方法及服务器 |
CN116643640A (zh) * | 2023-04-23 | 2023-08-25 | 合芯科技(苏州)有限公司 | 服务器***的分步上电方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110154010A1 (en) * | 2009-12-17 | 2011-06-23 | Springfield Randall S | Security to extend trust |
CN107451479A (zh) * | 2017-07-31 | 2017-12-08 | 浪潮(北京)电子信息产业有限公司 | 一种信任链的构建方法及*** |
CN107506663A (zh) * | 2017-08-02 | 2017-12-22 | 中电科技(北京)有限公司 | 基于可信bmc的服务器安全启动方法 |
CN109726562A (zh) * | 2019-01-03 | 2019-05-07 | 北京工业大学 | 一种基于可信bmc的服务器主板可信启动方法 |
-
2019
- 2019-12-25 CN CN201911358516.2A patent/CN111158767B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110154010A1 (en) * | 2009-12-17 | 2011-06-23 | Springfield Randall S | Security to extend trust |
CN107451479A (zh) * | 2017-07-31 | 2017-12-08 | 浪潮(北京)电子信息产业有限公司 | 一种信任链的构建方法及*** |
CN107506663A (zh) * | 2017-08-02 | 2017-12-22 | 中电科技(北京)有限公司 | 基于可信bmc的服务器安全启动方法 |
CN109726562A (zh) * | 2019-01-03 | 2019-05-07 | 北京工业大学 | 一种基于可信bmc的服务器主板可信启动方法 |
Non-Patent Citations (2)
Title |
---|
孙亮等: "基于可信BMC的服务器安全启动机制" * |
苏振宇: "基于国产BMC的服务器安全启动技术研究与实现" * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022143429A1 (zh) * | 2020-12-29 | 2022-07-07 | 华为技术有限公司 | 计算机***、可信功能组件及运行方法 |
CN113282969B (zh) * | 2021-05-13 | 2023-10-31 | 中科可控信息产业有限公司 | 设备控制方法、电子设备及可读存储介质 |
CN113282969A (zh) * | 2021-05-13 | 2021-08-20 | 中科可控信息产业有限公司 | 设备控制方法、电子设备及可读存储介质 |
CN113742141A (zh) * | 2021-11-04 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种服务器度量方法、装置、计算机设备和存储介质 |
CN113742141B (zh) * | 2021-11-04 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种服务器度量方法、装置、计算机设备和存储介质 |
CN114205208B (zh) * | 2021-11-05 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 一种基于远端的服务器批量启动方法、装置、设备及介质 |
CN114205208A (zh) * | 2021-11-05 | 2022-03-18 | 苏州浪潮智能科技有限公司 | 一种基于远端的服务器批量启动方法、装置、设备及介质 |
CN113835770B (zh) * | 2021-11-30 | 2022-02-18 | 四川华鲲振宇智能科技有限责任公司 | 一种服务器管理模块在线更换方法及*** |
CN113835770A (zh) * | 2021-11-30 | 2021-12-24 | 四川华鲲振宇智能科技有限责任公司 | 一种服务器管理模块在线更换方法及*** |
CN116643640A (zh) * | 2023-04-23 | 2023-08-25 | 合芯科技(苏州)有限公司 | 服务器***的分步上电方法、装置、设备及存储介质 |
CN116643640B (zh) * | 2023-04-23 | 2024-01-23 | 合芯科技(苏州)有限公司 | 服务器***的分步上电方法、装置、设备及存储介质 |
CN116628701A (zh) * | 2023-05-25 | 2023-08-22 | 合芯科技有限公司 | Tpcm在位检测方法、装置、服务器启动方法及服务器 |
CN116628701B (zh) * | 2023-05-25 | 2023-11-24 | 合芯科技有限公司 | Tpcm在位检测方法、装置、服务器启动方法及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111158767B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111158767B (zh) | 基于bmc的服务器安全启动方法及装置 | |
US11520894B2 (en) | Verifying controller code | |
US10839080B2 (en) | Hardware-enforced firmware security | |
EP2989579B1 (en) | Redundant system boot code in a secondary non-volatile memory | |
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
CN102509046B (zh) | 带有休眠支持的全局有效的测量的操作***发动 | |
CN107506663A (zh) | 基于可信bmc的服务器安全启动方法 | |
US20030221114A1 (en) | Authentication system and method | |
US9928367B2 (en) | Runtime verification | |
CN110659498A (zh) | 可信计算度量方法及其***、计算机可读存储介质 | |
CN111950014A (zh) | 服务器***启动的安全度量方法、安全度量装置及服务器 | |
WO2022028057A1 (zh) | 一种基于tpm服务器资产信息多层保护的装置及方法 | |
EP3185166B1 (en) | Trusted metric method and device | |
CN111651769B (zh) | 获取安全启动的度量方法和装置 | |
TW201642173A (zh) | 內嵌控制器安全開機之裝置與方法 | |
US20200159543A1 (en) | Information Handling Systems And Methods To Selectively Control Ownership Of A Hardware Based Watchdog Timer (WDT) | |
CN113419905A (zh) | 一种实现可信验证的方法及装置和安全模块 | |
CN114692160A (zh) | 计算机安全可信启动的处理方法及装置 | |
CN115618360A (zh) | 一种服务器防篡改安全启动方法及装置 | |
CN110781517B (zh) | 一种bios与bmc沟通实现数据交互的方法 | |
CN111506897B (zh) | 数据处理方法和装置 | |
US20200143058A1 (en) | Operational verification | |
CN114139168B (zh) | 一种tpcm度量的方法、装置及介质 | |
CN111625831B (zh) | 可信安全的度量方法和装置 | |
US11269637B2 (en) | Validating machine-readable instructions using an iterative validation process |
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 |