一种基于BMC的服务器硬件可信性保护方法及装置与流程

文档序号:14714965发布日期:2018-06-16 01:09阅读:298来源:国知局
一种基于BMC的服务器硬件可信性保护方法及装置与流程

本发明涉及计算机服务器技术领域,具体的说是一种基于BMC的服务器硬件可信性保护方法,。



背景技术:

服务器硬件可信是云计算、大数据安全的基础。如果有攻击者将服务器的某个硬件部件替换成了一个植入有后门的部件,或者插入一个新的具有后门的部件,将会造成巨大的安全风险。就算有代理商只是将某个原厂硬件部件替换成了一个低品质的部件,对于数据和计算的可靠性也会形成一定的风险。现有服务器硬件可信性保护方法,主要是通过管理员人工检查来完成。在有大量服务器存在的场景下,这会耗费巨大的人力资源,且不能及时发现服务器硬件可信受到损害的异常情况。基于此,现提供一种基于BMC的服务器硬件可信性保护方法。

BMC是服务器基板管理控制器,其并不依赖于服务器的处理器、BIOS或操作系统来工作,是一个单独在系统内运行的管理子系统。用户使用IPMI接口或Redfish API接口,可通过本地和网络两种方式,获取服务器的监测信息,实现对服务器的带外管理功能。

传统服务器的现场可更换单元FRU里只存有服务器整机名称、序列号、出场日期等信息。FRU存储器通常通过I2C总线与BMC相连。用户可通过BMC在获得授权的情况下,对FRU进行写操作。



技术实现要素:

为了克服上述现有技术的不足,本发明提供一种基于BMC的服务器硬件可信性保护方法。

一种基于BMC的服务器硬件可信性保护方法,其特征在于,其步骤包括:

步骤1:进行可信硬件部件基准值设定,对基准值进行加密处理,再将其写入服务器FRU里可供使用的记录区域,具体是:从输入中获得可信的相关服务器硬件部件的基准值,根据FRU数据规范,加密、存储基准值,存储操作需获得授权,具体包括:

步骤1.1、输入服务器BMC用户口令,从预先存储好的文件中读取服务器硬件部件的可信基准值,可信基准值的输入不局限于从文件中获取,也可由管理员通过图形界面手动输入。对可信基准值进行加密、处理,加密算法可以是SM4、AES、3DES,不局限于某一种特定算法。在每条加了密的可信基准值之间添加分隔符,并在不同部件的加了密的可信基准值开始和结束部分添加起始符和结束符,用于区分不同部件的可信基准值。这些标识符格式可按需求自行定义,不局限于某一种。最后,将处理后的数据组织成FRU规范格式;

步骤1.2、使用IPMItool工具调用IPMI命令将处理后的可信基准值写入服务器FRU里可供使用的记录区域,完成FRU写操作,但本发明不限于使用IPMItool工具,也不限于使用IPMI接口,也可使用Redfish接口。

步骤2:进行硬件部件可信性度量,通过BMC获取服务器目标硬件部件信息,解析、提取所需目标字段,所述硬件部件信息是字节数据流,解析、提取字段;

步骤3:先从FRU中读取加密的基准值,再执行解密操作,然后完成硬件可信性验证,判断所获取的部件信息与基准值是否匹配,若不匹配,则服务器硬件不可信,进行关机操作,反之,即为可信,服务器继续运行。

在上述的一种基于BMC的服务器硬件可信性保护方法,所述步骤2具体包括:

步骤2.1、通过BMC访问SMBIOS(System Management BIOS)信息,获取服务器当前硬件部件的各种信息。实例中使用IPMItool调用IPMI raw命令,通过BMC访问SMBIOS来获取硬件部件信息,但本发明不限于使用IPMItool工具,也不限于使用IPMI接口,也可使用Redfish接口;

步骤2.2、步骤2.1中所获取的硬件部件信息是字节数据流,过滤不规则、无关的信息,解析、提取目标字段信息。

在上述的一种基于BMC的服务器硬件可信性保护方法,所述步骤3具体包括:

步骤3.1、在判断所获取的当前硬件部件信息是否可信之前,先从FRU中读取加了密的基准值,根据标识符进行信息分隔,再执行解密操作;

步骤3.2、完成硬件可信性验证,判断所获取的部件信息与基准值是否匹配,若不匹配,则服务器硬件不可信,进行关机操作,反之,即为可信,服务器继续运行。

一种基于BMC的服务器硬件可信性保护装置,其特征在于,包括:

基准值设定模块:被配置为用于进行可信硬件部件基准值设定,对基准值进行加密处理,再将其写入服务器FRU里可供使用的记录区域,具体是:从输入中获得可信的相关服务器硬件部件的基准值,根据FRU数据规范,加密、存储基准值,存储操作需获得授权。

度量模块:被配置为用于进行硬件部件可信性度量,通过BMC获取服务器目标硬件部件信息,解析、提取所需目标字段,所述硬件部件信息是字节数据流,解析、提取字段;

验证模块:被配置为先从FRU中读取加密的基准值,再执行解密操作,然后完成硬件可信性验证,判断所获取的部件信息与基准值是否匹配,若不匹配,则服务器硬件不可信,进行关机操作,反之,即为可信,服务器继续运行。。

本发明具有以下有益效果:服务器硬件部件的可信性检查简便、自动、高效,节约时间、成本,不依赖于BIOS/EFI和操作系统,增加服务器硬件的安全性。

附图说明

附图1为本发明方法一种实施例的模块组成结构。

附图2为本发明方法图1所示实施例的流程图。

附图3为本发明方法一种实施例的CPU每条基准信息格式。

附图4为本发明方法一种实施例的内存模块每条基准信息格式。

附图5为本发明方法一种实施例的服务器硬件部件可信基准值存储结构图。

附图6为本发明方法一种实施例的多记录区域CPU信息记录中数据段格式。

附图7为本发明方法一种实施例的多记录区域内存模块信息记录中数据段格式。

附图8为本发明方法一种实施例的每个SMBIOS结构图。

附图9为本发明方法一种实施例的SMBIOS中存储CPU信息的结构示意图。

附图10为本发明方法一种实施例的SMBIOS中存储内存模块信息的结构示意图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步说明。

如图1所示,本发明的一种实施例由三个模块组成,包括基准值设定模块、度量模块、和验证模块。基准值设定模块位于BMC外部,在与BMC网络相连的客户端上。度量模块和验证模块位于BMC内部,属于BMC固件系统的应用程序。

如图2所示,图1所述实施例先运行基准值设定模块,输入服务器BMC用户口令,从预先存储好的文件中读取服务器硬件部件的可信基准值。可信基准值的输入不局限于从文件中获取,也可由管理员通过图形界面手动输入。本实例中的可信基准值设定信息包括服务器CPU和内存模块信息。CPU信息包括产品制造商、产品型号、主频三个字段,内存模块信息包括产品制造商、产品型号两个字段。CPU和内存模块信息分别存储在两个文本文件中,每一行存储一条可信基准信息,每条可信基准信息由各字段内容拼接而成,各字段内容之间用加号连接。CPU和内存模块每条可信基准信息格式分别见图3、图4。同一个部件可以具有多个可信基准值,即同一个部件可以具有多条可信基准信息。

接着,该实例对可信基准值加密,加密算法可以是SM4、AES、3DES等,不局限于某一种特定算法。该实例中的加密处理,是对每一条可信基准信息进行独立加密,在加密之前先对可信基准信息进行补齐填充,与加密块长度保持一致。本实施例参照Intel的Platform Management FRU Information Storage Definition v1.0规范,将加了密的可信基准值信息写入到FRU的多记录区域,如图5所示。在该实施例中,多记录区域中的每个记录包括一个头部和一个数据段,数据段的长度由头部中一个字节表示,数据段最大长度为255字节,每条记录的数据段中存储有多条加了密的基准值信息。在该实施例中,数据段格式具体见图6、图7,在第一条加了密的CPU基准值信息的前面增加一个“cpuinfo”标识符,在最后一条加了密的CPU基准值信息的后面增加一个“cpuend”标识符;在第一条加了密的内存模块基准值信息的前面增加一个“dimminfo”标识符,在最后一条加了密的内存模块基准值信息的后面增加一个“dimmend”标识符。在两条加了密的基准值信息之间加入一个分号分隔符。将标识符和分隔符连同加了密的基准值信息,一起写入到FRU的多记录区域的记录数据段中。如图5所示,除多记录区域外,FRU还包括头部、主板信息区域和产品信息区域。将加了密的基准值信息写入到多记录区域后,还必须修改头部中多记录区域的标志位,表明已使用了多记录区域,其中的校验和也需重新计算再写入。

该实施例使用IPMItool工具调用IPMI命令来完成FRU写操作,但本发明不限于使用IPMItool工具,也不限于使用IPMI接口,也可使用Redfish接口。IPMItool FRU操作命令基本格式如下:ipmitool–I interface options fru command。interface可以是open、lan或lanplus,如果使用open,则不包括options这个参数;否则options为-H ipaddress-U username-P password。command可以为write、read、edit、print等等。该实例中先通过读命令读取设定之前的FRU数据,然后修改所读出的二进制文件,包括FRU头部和多记录区域,接着将修改后的二进制文件写入到FRU中。该实例中使用的主要是读写命令,读命令command参数格式如下:read<fru id><fru file>;写命令comman参数格式如下:fru write<fru id><fru file>。该实例中具体使用的读命令为:ipmitool-I lanplus-H ip-U username-P password fru read 0/root/fru.bin;该实例中具体使用的写命令为:ipmitool-I lanplus-H ip-U username-P password fru write 0/root/fru.bin。

如图5所示,在可信基准值信息被写入到FRU后,该实施例运行度量模块,通过BMC访问SMBIOS(System Management BIOS)信息,获取服务器当前硬件部件的各种信息。返回的内容是字节流数据,根据System Management BIOS(SMBIOS)Reference v 3.1.0规范解析、提取CPU和内存模块信息。

该实施例使用IPMItool调用IPMI raw命令,通过BMC访问SMBIOS来获取硬件部件信息,但本发明不限于使用IPMItool工具,也不限于使用IPMI接口,也可使用Redfish接口。IPMItool raw command命令的基本格式如下:ipmitool–I interface options raw netfn cmd data。interface可以是open、lan或lanplus。如果使用open,则不包括options这个参数;否则options为-H ipaddress-U username-P password。netfn识别不同IPMI命令的返回消息并将其分成不同的组。cmd为一个独特的单字节指令。data为请求或响应提供附加参数(如果有的话)。

该实例中读取服务器CPU信息和内存模块信息其中一条具体命令格式为:ipmitool-I lanplus-H ip-U username-P password raw 0x3e 0x23 0x01 0xff 0x00 0x00,其中netfn=0x3e,cmd=0x23,data=0x01 0xff 0xff 0x00,在data请求参数中,可以带四个字节参数,第一个字节是数据区域,01h代表SMBIOS区域,第二个字节代表所读数据长度,0xff表示长度为255字节,第三个字节和第四个字节是偏移量。通过调整偏移量,可以读取所有SMBIOS内容。

该实例中上述命令访问SMBIOS返回的数据是字节流格式的,对其解析过程主要参照System Management BIOS(SMBIOS)Reference v 3.1.0规范,每个SMBIOS的结构如图8所示,主要包括SMBIOS结构头、指定类型的结构头、指定类型信息数据段三个部分。其中SMBIOS结构头总长度为四个字节,第一个字节指明该SMBIOS的结构后两个部分数据的类型,该实例中,该字节值为4时,代表后面两部分为CPU信息,该字节值为17时,代表后面两部分为内存模块信息;第二个字节表示SMBIOS结构头和指定类型的结构头的总长度,从类型字段开始;第三字节和第四字节表示指定类型数据的处理编号。指定类型的结构头部分是由SMBIOS结构头中的第一个字节的值决定的。指定类型信息数据段部分存储SMBIOS结构头中的第一个字节代表的模块的信息内容,该实例中目标部件信息字段就存储在该区域,通过编写脚本,过滤不规则、无关的信息,提取目标信息。该实例中,存储CPU信息的SMBIOS结构示意图如图9所示,存储内存模块信息的SMBIOS结构示意图如图10所示。

在度量模块获取了服务器当前部件的信息之后,该实施例运行验证模块。验证模块从FRU多记录区域读取加了密的部件可信基准值。该实施例根据标识符“cpuinfo”、“cpuend”、“dimminfo”和“dimmend”,将CPU基准信息和内存模块基准信息分开,再根据分隔符(分号)将标准值条分开,接着按条解密,并去掉补齐的填充字节。然后与度量模块提取的部件信息相比较。如果相同,则验证成功,服务器硬件可信,服务器继续运行;反之,则不可信,验证模块调用BMC接口,对服务器进行关机操作。

该实施例通过使用IPMItool工具调用IPMI命令,对服务器进行关机操作,但本发明不限于使用IPMItool工具,也不限于使用IPMI接口。该实施例使用的具体命令为:ipmitool-I lanplus-H ip-U username-P password chassis power off。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的若干改进和润饰,皆应落入本发明的专利保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1