掌桥专利:专业的专利平台
掌桥专利
首页

一种面向BMC固件系统安全的可信启动方法

文献发布时间:2023-06-19 10:35:20


一种面向BMC固件系统安全的可信启动方法

技术领域

本发明涉及信息安全领域,具体涉及一种面向BMC固件系统安全的可信启动方法。

背景技术

目前,基板管理控制器(Baseboard Management Controller,BMC,以下均用BMC指代)已经成为服务器的关键构成部分,它是一种专用芯片控制器,它并不依赖于服务器的处理器、基本输入输出系统(Basic Input Output System,BIOS,以下均用BIOS指代)或操作系统来工作,它有自己的固件、电源、硬件地址与网络接口,是一个单独在服务器内运行的无代理管理子系统。BMC作为一个平台管理系统,具备一系列的监控和控制功能,主要是通过监视服务器的温度、电压、风扇、电源等,并做相应的调节,以保证服务器处于健康的状态。

在服务器启动过程中,BMC往往先于服务器操作系统上电启动,因此毫无疑问BMC固件系统是最早掌握服务器权限的软件,这对于服务器安全显得尤为重要。从BMC固件的生命周期来看,在固件系统启动阶段,缺乏合理的安全机制,被攻击篡改的安全威胁更难被检测到,尤其是在不具备可信验证模块的情况下,面临的安全问题也更加严峻。因此,要解决BMC固件系统的安全问题,需要从BMC固件系统启动阶段的安全入手。

专利公开号为CN 111125707 A专利名称为“一种基于可信密码模块的BMC安全启动方法、系统及设备”的专利提出了一种基于可信密码模块的BMC安全启动方法、系统及设备,在普通BMC中引入了可信计算机制,实现可信度量功能的服务器带外管理模块。该专利发明的目的在于提供一种基于可信密码模块的BMC安全启动方法、系统及设备,能够防止针对服务器进行固件级的攻击,完善服务器的可信启动模型。然而该专利的实现需要额外的可信密码模块,而要在不具备可信密码模块的服务器上实施该方案,就需要重新设计制板,无疑会增加方案实施的成本,不具备普适性。

专利公开号为CN 106127056 A专利名称为“一种国产BMC芯片可信固件的设计方法”的专利提出了一种国产BMC芯片可信固件的设计方法,通过在BMC固件的引导层、内核层、中间层和软件层加入可信功能模块,在BMC上电过程中对内核程序、应用程序和BIOS关键代码进行完整性度量,确保程序的完整性,从而建立起系统平台的可信执行环境。该专利要解决的技术问题是,提供一种国产BMC芯片可信固件的设计方法,在国产BMC芯片的固件程序中加入可信功能模块,对BMC固件进行加固,在BMC启动运行过程中对各个功能组件进行完整性的度量,确保程序的完整性和没有被植入恶意代码,建立起BMC启动过程的完整信任链,保证了系统平台执行环境的可信,从而有助于提高国产BMC芯片的核心竞争力。该专利中提到的方案遵循边启动边度量思路,依据软件层更容易被篡改的实际情况,不能快速检出问题所在。

专利公开号为CN 109740353 A专利名称为“一种服务器的BMC固件的可信启动方法”的专利提出了一种服务器的BMC固件的可信启动方法,属于服务器BMC固件的安全可信启动领域。其特征在于,在一个由BMC芯片、BMC闪存、BMC固件、可信密码模块组成的系统中,在发布BMC固件时用可信密码模块计算BMC固件各部分的杂凑值并存储。该专利的目的在于,BMC固件启动时通过U-Boot(Universal Boot Loader,一个主要用于嵌入式系统的引导加载程序)、BMC内核分别调用可信密码模块分别对BMC内核、U-Boot进行可信度量,互相验证增强了BMC固件的安全性,增加了被修改的难度。该专利中提到的对U-Boot和BMC内核的相互验证的部分方法遵循了先启动后度量的思路,相比于先度量后启动的思路,安全性有待提高。

上述专利中提出的BMC可信启动方案,或遵循边启动边度量的思路,无法超前检出问题所在;或遵循先启动后度量的思路,但相较于先度量后启动的思路可信性不能得到保证;或需要额外的可信密码模块,很难应用于不具备可信密码模块的普通服务器。

发明内容

在实际应用场景中,相较于引导层或内核层,应用层尤其是其中的文件系统被篡改的几率往往更高。有鉴于此,本发明的目的在于提供一种面向BMC固件系统安全的可信启动方法,在不采用可信密码模块的BMC系统中加入软件实现的可信计算模块,依据先度量后启动的思想,通过在引导层添加可重定位功能程序,在BMC上电之后,首先对软件层进行可信度量,其次对引导层和内核层进行可信度量,最后再进行启动,可以超前检出被篡改之处。

BMC固件系统启动从软件的角度看可以分为三个部分:U-Boot、BMC内核、文件系统。BMC固件系统中位于非易失性存储区域已知位置有一段预先设置好的代码,即U-Boot。当BMC系统上电启动时,处理器直接跳转到U-Boot位置处执行。当U-Boot完成对BMC设备硬件初始化后,它会将存储在非易失性存储区域中的BMC内核拷贝至内存,随后跳转到内核中最初始的指令处执行,完成对BMC内核的引导,BMC再需完成系统的初始化,完成后加载文件系统,此文件系统当作根文件系统使用。

在BMC出厂阶段,BMC厂商需要在BMC固件引导程序U-Boot之前加入可重定位功能程序,负责加载可信计算模块以及负责对各个启动模块进行度量。

BMC固件系统可信启动过程可以分为两个部分,即BMC固件系统可信度量过程和BMC固件系统启动过程。在BMC固件可信度量阶段,可重定位功能程序优先对更易被篡改的文件系统进行可信度量,其次对U-Boot和BMC内核进行可信度量;在BMC固件系统启动阶段,依次启动U-Boot、BMC内核和文件系统。

本发明的特征在于,是一种用于无可信密码模块的BMC系统的先进行可信度量再进行启动的方法,尤其是一种先对抗攻击性最弱的文件系统进行可信度量然后再依次对引导层、内核层进行可信度量的确保BMC芯片安全的可信启动方法,是在BMC芯片中的存储有可重定位功能程序和BMC固件的非易失性存储区域a、存储有预设的可信计算模块及开发者导入的BMC芯片中BMC固件出厂标准基准值库的存储区域b和BMC处理器三者共同组成的安全可信启动度量系统,以下简称系统中按以下步骤实现的:

步骤(1),系统的构建和初始化:

步骤(1.1),在BMC的开发阶段,开发者在非易失性存储区域a中的U-Boot之前加入以代码形式的所述可重定位功能的程序,以便向BMC处理器加载可信计算模块度量各BMC固件待启动程序的完整性;

步骤(1.2),在BMC芯片出厂阶段,在BMC固件中初始化一个所述非易失性存储区域a和一个非易失性存储区域b;

步骤(2),BMC固件的可信度量过程:

步骤(2.1),在BMC固件上电后,所述BMC处理器依次按以下步骤执行可重定位功能程序;

步骤(2.1.1),可重定位功能程序将BMC处理器定位至非易失性存储区域b中的可信计算模块,加载后返回可重定位功能程序;

步骤(2.1.2),可重定位功能程序通过BMC处理器读取文件系统,然后通过可信计算模块计算文件系统摘要的实际基准值RHashF;

步骤(2.1.3),采用与步骤(2.1.2)中相同的方法在文件系统出厂标准基准值库中解析出文件系统的摘要基准值THashF,判断RHashF与THashF是否相同;

步骤(2.1.4),若相同,则进入步骤(2.1.5),依次对引导层U-Boot和BMC内核层进行可信度量,若不相同,则发出告警信息并判定文件系统不可信;

步骤(2.1.5),采用步骤(2.1.1)~步骤(2.1.4)中所述的方法依次判断引导层U-Boot、BMC内核层的可信度;

步骤(3),BMC固件系统启动过程:

步骤(3.1),可重定位功能程序根据文件系统、引导层U-Boot及BMC内核层的可信性决定是否启动BMC固件系统;

步骤(3.2),若可重定位功能程序判定文件系统、引导层U-Boot及BMC内核层可信,则进入步骤(3.3),否则终止BMC固件系统启动过程;

步骤(3.3),BMC处理器跳转至U-Boot开始执行;

步骤(3.4),U-Boot对BMC硬件设备进行初始化;

步骤(3.5),U-Boot将BMC内核从非易失性存储区域a中拷贝至内存;

步骤(3.6),BMC处理器跳转至BMC内核处执行;

步骤(3.7),BMC内核对系统进行初始化;

步骤(3.8),BMC内核挂载文件系统;

步骤(3.9),进入BMC固件系统的安全可信运行阶段。

对比现有技术,本发明有益效果在于:本发明提供了一套面向不采用可信密码模块的BMC固件系统可信启动方式。BMC出厂阶段,在U-Boot前添加可重定位功能软件,初始化可信计算模块与标准出厂基准库。BMC固件系统可信度量阶段,遵循先度量后启动的思路,根据实际的应用场景,优先对文件系统进行可信度量,其次对U-Boot和BMC内核进行可信度量,可以在可信启动之前超前检出篡改之处,方便快速及时处理出现的问题。较以往研究方案,能够更快检出问题所在,从适用范围来看,要比依赖可信密码模块的可信启动方案节约成本,从可信度量对象来看,要比已有的方案考虑更加充分全面。

附图说明

图1为系统整体结构框图;

图2为BMC固件系统可信度量流程图;

图3为BMC固件系统启动流程图。

具体实施方式

本发明中的BMC固件系统的可信启动方案涉及三个过程:

过程1:系统构建初始化过程

本系统构造初始化过程主要涉及两个对象:BMC厂商和BMC。BMC需要具备BMC处理器、用于存储BMC固件的非易失性存储区域a以及用于存储可信计算模块和出厂标准基准库的非易失性存储区域b。

第一步:BMC厂商在开发BMC阶段,在U-Boot之前加入可重定位功能程序,负责加载可信计算模块以及负责度量各个启动模块的完整性;

第二步:BMC厂商在BMC出厂阶段,BMC固件被初始化入非易失性存储区域a,可信计算模块和出厂标准基准库被初始化入非易失性存储区域b。

过程2:BMC固件系统可信度量过程

第一步:BMC上电后,第一段执行的代码是可重定位功能程序;

第二步:可重定位功能程序将BMC处理器重定位至非易失性存储区域b中可信计算模块;

第三步:BMC处理器加载可信计算模块;

第四步:BMC处理器加载可信计算模块成功后,返回可重定位功能程序;

第五步:可重定位功能程序通过BMC处理器读取文件系统;

第六步:可重定位功能程序通过BMC处理器和可信计算模块对文件系统摘要计算实际的基准值RHashF;

第七步:可重定位功能程序通过BMC处理器从出厂标准基准库中解析到文件系统的摘要基准值THashF;

第八步:可重定位功能程序通过BMC处理器比较RHashF与THashF是否相等;

第九步:如果RHashF与THashF相等,则继续下一步,否则终止启动,判定文件系统不可信,并发出告警信息;

第十步:可重定位功能程序通过BMC处理器读取U-Boot。

第十一步:可重定位功能程序通过BMC处理器和可信计算模块对U-Boot摘要计算实际的基准值RHashU;

第十二步:可重定位功能程序通过BMC处理器从出厂标准基准库中解析到U-Boot的摘要基准值THashU;

第十三步:可重定位功能程序通过BMC处理器比较RHashU与THashU是否相等;

第十四步:如果RHashU与THashU相等,则继续下一步,否则终止启动,判定U-Boot不可信,并发出告警信息;

第十五步:可重定位功能程序通过BMC处理器读取BMC内核。

第十六步:可重定位功能程序通过BMC处理器和可信计算模块对BMC内核摘要计算实际的基准值RHashK;

第十七步:可重定位功能程序通过BMC处理器从出厂标准基准库中解析到BMC内核的摘要基准值THashK;

第十八步:可重定位功能程序通过BMC处理器比较RHashK与THashK是否相等;

第十九步:如果RHashK与THashK相等,则启动BMC固件系统,否则终止启动,判定BMC内核不可信,并发出告警信息。

过程3:BMC固件系统启动过程

第一步:可重定位功能程序根据文件系统、引导层U-Boot及BMC内核层的可信性决定是否启动BMC固件系统;

第二步:若可重定位功能程序判定文件系统、引导层U-Boot及BMC内核层可信,则进入下一步,否则终止BMC固件系统启动过程;

第三步:BMC处理器跳转至U-Boot开始执行;

第四步:U-Boot对BMC硬件设备进行初始化;

第五步:U-Boot将BMC内核从非易失性存储区域a中拷贝至内存;

第六步:BMC处理器跳转至BMC内核处执行;

第七步:BMC内核对系统进行初始化;

第八步:BMC内核挂载文件系统;

第九步:进入BMC固件系统的安全可信运行阶段。

下面将结合本发明实施例中的附图,对本发明的技术方案进行清晰、详细的描述。

本发明实施例的核心是结合可信技术,通过对U-Boot、BMC内核及文件系统启动过程的可信验证来保证BMC固件系统启动过程的完整性。本发明方案能够行之有效的对系统中各个启动模块的可信与否进行判断,从而能够保证达到等级保护中所提到的对计算设备的系统引导程序、系统程序等进行可信验证的目的。

为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细解释说明。

对于BMC固件系统的可信启动方案,本发明将主要从系统构建初始化过程,U-Boot可信启动过程及BMC内核可信启动过程三个方面来进行。

系统构建初始化过程

本系统构造初始化过程主要涉及两个对象:BMC厂商和BMC。

BMC需要具备BMC处理器、用于存储BMC固件的非易失性存储区域a以及用于存储可信计算模块和出厂标准基准库的非易失性存储区域b。

第一步:BMC厂商在开发BMC阶段,在U-Boot之前加入可重定位功能程序,负责加载可信计算模块以及负责度量各个启动模块的完整性;

第二步:BMC厂商在BMC出厂阶段,BMC固件被初始化入非易失性存储区域a,具备国密密码杂凑算法SM3的可信计算模块和标准出厂基准库被初始化入非易失性存储区域b。

BMC固件系统可信度量过程

在本发明中,遵循先度量后启动的思想,同时根据实际应用场景,优先对文件系统进行可信度量,下面重点分析BMC固件系统可信度量过程。

第一步:BMC上电后,第一段执行的代码是可重定位功能程序;

第二步:可重定位功能程序将BMC处理器重定位至非易失性存储区域b中可信计算模块;

第三步:BMC处理器加载可信计算模块;

第四步:BMC处理器加载可信计算模块成功后,返回可重定位功能程序;

第五步:可重定位功能程序通过BMC处理器读取文件系统;

第六步:可重定位功能程序通过BMC处理器和可信计算模块的国密密码杂凑算法SM3对文件系统摘要计算实际的基准值RHashF;

第七步:可重定位功能程序通过BMC处理器从出厂标准基准库中解析到文件系统的摘要基准值THashF;

第八步:可重定位功能程序通过BMC处理器比较RHashF与THashF是否相等;

第九步:如果RHashF与THashF相等,则继续下一步,否则终止启动,判定文件系统不可信,并发出告警信息;

第十步:可重定位功能程序通过BMC处理器读取U-Boot。

第十一步:可重定位功能程序通过BMC处理器和可信计算模块的国密密码杂凑算法SM3对U-Boot摘要计算实际的基准值RHashU;

第十二步:可重定位功能程序通过BMC处理器从出厂标准基准库中解析到U-Boot的摘要基准值THashU;

第十三步:可重定位功能程序通过BMC处理器比较RHashU与THashU是否相等;

第十四步:如果RHashU与THashU相等,则继续下一步,否则终止启动,判定U-Boot不可信,并发出告警信息;

第十五步:可重定位功能程序通过BMC处理器读取BMC内核。

第十六步:可重定位功能程序通过BMC处理器和可信计算模块的国密密码杂凑算法SM3对BMC内核摘要计算实际的基准值RHashK;

第十七步:可重定位功能程序通过BMC处理器从出厂标准基准库中解析到BMC内核的摘要基准值THashK;

第十八步:可重定位功能程序通过BMC处理器比较RHashK与THashK是否相等;

第十九步:如果RHashK与THashK相等,则启动BMC固件系统,否则终止启动,判定BMC内核不可信,并发出告警信息。

BMC固件系统启动过程

在本发明中,BMC固件系统需要在度量阶段通过情况下启动,下面重点分析BMC固件系统启动过程。

第一步:可重定位功能程序根据文件系统、引导层U-Boot及BMC内核层的可信性决定是否启动BMC固件系统;

第二步:若可重定位功能程序判定文件系统、引导层U-Boot及BMC内核层可信,则进入下一步,否则终止BMC固件系统启动过程;

第三步:BMC处理器跳转至U-Boot开始执行;

第四步:U-Boot对BMC硬件设备进行初始化;

第五步:U-Boot将BMC内核从非易失性存储区域a中拷贝至内存;

第六步:BMC处理器跳转至BMC内核处执行;

第七步:BMC内核对系统进行初始化;

第八步:BMC内核挂载文件系统;

第九步:进入BMC固件系统的安全可信运行阶段。

应当理解,虽然本说明书根据实施方式加以描述,但是并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域的技术人员应当将说明书作为一个整体,各个实施方式中的技术方案也可以适当组合,按照本领域技术人员的理解来实施。

上文所列出的一系列详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡是未脱离发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

相关技术
  • 一种面向BMC固件系统安全的可信启动方法
  • 一种服务器的BMC固件的可信启动方法
技术分类

06120112607450