用于确保管理控制器固件安全的方法及计算机装置与流程

文档序号:11920272阅读:579来源:国知局
用于确保管理控制器固件安全的方法及计算机装置与流程

本申请案涉及一种计算机系统,且更具体而言涉及一种用于确认管理控制器固件安全的系统及方法。



背景技术:

典型地,管理控制器诸如基板管理控制器(BMC)位于每台计算机装置上。BMC包括管理系统管理软件与平台硬件之间的接口的微控制器。BMC监测建于装置内的不同类型传感器的参数,像是温度、冷却风扇的速度、电力状态、负载状态、操作系统状态等。BMC的运行独立于计算机装置的处理器,且因此在处理器、存储器或任何其他硬件错误的任何状态下,BMC仍应继续提供服务。

固件是一种软件,其对于所安装的装置提供控制、监控以及数据操作。如嵌入式系统的程序的固件可为将在系统上运行的唯一程序,且提供其所有功能。固件保持在非易失性存储器(non-volatile memory)装置中,像是ROM、EPROM、或快闪存储器。大部分固件可被更新或替代。更新固件的常见原因包括修复错误或添加功能至装置。此可能需要ROM集成电路以物理性地替换,或可能需要快闪存储器通过特定程序来重新编程。

用于计算机装置的BMC的固件控制所述BMC的所有功能。然而,BMC的固件可能会受到损害。恶意固件可以通过固件的更新或其他方法而载入BMC。如果未立即发现和制止,恶意固件控制BMC可能会导致对计算机装置的严重硬件和/或数据损坏。



技术实现要素:

以下呈现一或多个实施例的简单概述,以提供本技术的基本理解。此概述并非为本技术的所有预期实施例的详尽的概述,且其亦非旨在标识全部实施例的关键或重要元素或描绘本技术的任何及所有肽样的范围。其唯一目的为以简化形式呈现一或多个示例的部分概念,作为稍后呈现的更详细说明的序言。

在一些实施例中,藉由计算机装置的安全管理器用于确保管理控制器固件 安全的方法包含:存储公用密钥及原始身份数据,并从用于计算机装置的管理控制器的管理固件取得加密的身份数据。安全管理器以公用密钥来解密加密的身份数据为解密的身份数据,并比较解密的身份数据与原始身份数据,以确定管理固件是否为受信任的。响应于判定管理固件是不受信任的,安全管理器得以保护计算机装置免于管理固件的损害。

在一些实施例中,藉由计算机装置的生产者用于确保管理控制器固件安全的方法包含:产生一对安全密钥包括公用密钥及私用密钥,且使用私用密钥加密原始身份数据为一加密身份数据。生产者嵌入加密的身份数据于用于计算机装置的管理控制器的管理固件中,且嵌入公用密钥及原始身份数据于计算机装置的安全管理器,该安全管理器配置以:自管理固件取得加密的身份数据;以公用密钥解密此加密的身份数据为解密的身份数据;比较解密的身份数据与原始身份数据,以判定管理固件是否为受信任的;并响应于判定该管理固件是不受信任的,而保护计算机装置免于管理固件的损害。

在一些实施例中,计算机装置包括运行管理固件以存储加密的身份数据的管理控制器以及存储公用密钥及原始身份数据的安全管理器。安全管理器配置以自用于计算机装置的管理控制器的管理固件取得加密的身份数据。安全管理器配置以用公用密钥来解密此加密的身份数据为解密的身份数据。安全管理器配置以用原始身份数据比较解密的身份数据,以判定管理固件是否为受信任的。响应于判定管理固件是不受信任的,安全管理器进一步配置以保护计算机装置免于管理固件的损害。

附图说明

本技术的这些及其他样本方面将在后续的实施方式及所附权利要求书以及在附图中进行说明,其中:

图1示出了用于确保管理控制器固件安全的示例系统的框图;

图2示出了用于确保管理控制器固件安全的示例方法的示意图;

图3示出了用于确保管理控制器固件安全的另一示例方法的示意图;

图4示出了例示计算机装置的框图。

【符号说明】

200、300:方法

210、220、230、240、250、255、260、270、310、320、330、340、350、 360、370、385、390:步骤

100:计算机装置

110:原始身份数据

120:私用密钥

130:公用密钥

140:加密操作

150、480:管理控制器

160:安全管理器

170、152:身份数据

180:比较操作

142:解密操作

400:计算机系统

410:BIOS

420:存储器

430:存储器

440:处理器

450:网络接口

460:北桥

470:南桥

具体实施方式

本标的发明提供用于确保管理控制器固件安全的技术。本技术的各个方面将参照附图进行说明。在以下描述中,出于解释的目的,阐述了许多具体的细节,以提供一或多个方面的彻底理解。然而,显而易见的是,本技术可以在没有这些具体细节的情况下实施。在其他实例中,已知的结构及装置示为框图的形式,以便于描述此些方面。

本标的发明提供一种迅速发现在管理控制器(例如,BMC)上运行的恶意固件且防止恶意固件对计算机装置造成损害的方法。

图1示出了用于确保管理控制器固件安全的示例系统的框图。计算机装置100包括管理控制器150及安全管理器160。安全管理器160藉由使用下述的加密及解密验证过程来确定加载于管理控制器150上的管理固件是否为受信任 的。

在一些方面中,安全管理器160包括基本输入/输出系统(BIOS)。在一些其他方面中,安全管理器160包括在计算机装置100的操作系统(OS)上运行的安全软件、运行在网络装置上通过网络与计算机装置100连线的安全软件、包括计算机装置100的服务器机柜(server rack)的机柜管理控制器(rack management controller,RMC)、或用于计算机装置100的机箱管理控制器(chassis management controller,CMC)的其中之一。

在一些方面中,管理控制器150包括基板管理控制器(BMC)150。在一些其他方面中,管理控制器150包括在计算机装置100中的各种其他控制器的任一。在一些方面中,管理控制器160包含BIOS,而安全管理器包含BMC 150、RMC、或CMC的至少之一。BMC 150包含管理介于系统管理软件及平台硬件之间的接口的微控制器。BMC 150监测建于计算机装置100中的不同类型传感器的参数,像是温度、冷却风扇的速度(亦即,在装置内部的风扇以及于计算机装置机柜102的风扇两者)、电力状态、负载状态、操作系统状态等。在一些实施例中,BMC 150与各种计算机装置组件连线,其中BMC 150使用智能平台管理接口(IPMI)协议来进行管理。IPMI为用以管理及监控计算机装置的CPU、固件、及OS的自主计算机系统(autonomous computer subsystem)的规格设定(set of specifications),且为频外管理并由系统管理员所监控。然而,各种实施例并不局限于此方面,且其他协议也可由BMC 150所使用。BMC 150也可使用任何总线接口来连接至各种计算机装置组件(例如,南桥或网络控制器),总线接口例如为系统管理总线(SMBus)、RS-232串行总线、IIC协议(IIC protocol)、以太(Ethernet)、IPMB、少针脚型接口(LPC)总线等。

管理固件加载于BMC 150上来控制BMC 150的所有功能。然而,如以上所指出的,BMC 150的管理固件可能会受到损害,使整个计算机装置100处于风险之中。例如,恶意管理固件可以通过固件更新或其他方法载入BMC 150。当恶意的管理固件控制BMC 150时,BMC 150可能会导致对于计算机装置的严重硬件和/或数据损坏。

为了解决这些问题,本公开设想在计算机装置100中实现一验证方案。特别是,为了允许之后验证加载于BMC 150上的管理固件的真实性(authenticity),加密的身份数据152存储在管理固件。加密的身份数据152可接着在允许BMC150执行其管理功能之前先由计算机装置100所验证。

在一些实施例中,加密的身份数据152从原始身份数据110及私用密钥120所产生。原始身份数据110可包括任何数据字符串。例如,原始身份数据可包括计算机装置生产者名称、产品名称、装置模块标识(device model identification)、客户名称、管理控制器硬件标识、日期和/或时间等等。原始身份数据110也可以包含文本数据(text data)和/或哈希数据(hash data)。哈希数据包括由文本字符串产生的数值的散列值(hash values)。散列值实质上比文本本身小,且依一些其他文本将极度不可能产生相同的散列值的这种方式藉由公式来产生。散列值帮助确保文件、讯息或数据不会被篡改。

私用密钥120是亦包括公用密钥130的一对安全密钥的其中之一。私用密钥120保密,但公用密钥130不需要保密。虽然不同,但此安全密钥对中的公用密钥130与私用密钥120以公用密钥算法(public-key algorithm)来数学上连接。公用密钥130用于验证数字签章。私用密钥120用于进行相反的操作以产生数字签章。例如,私用密钥120及公用密钥130的每一个可包含文本数据字符串。例如,公用密钥130可包含一长串十六进制数字,像是「3048024100C918FA CF8D EB2D」。

下面是从公用密钥产生私用密钥的极度简化示例:

若「私用密钥120」=7

公用密钥130可藉由解出方程式而定:

(「私用密钥120」x「公用密钥130」)模数40=1

接着(7x「公用密钥130」)模数40=1

则「公用密钥130」=23

在一些方面中,公用密钥算法基于当前承认没有有效的解法且为特定整数分解(integer factorization)、离散对数(discrete logarithm)、及椭圆曲线的关系中固有的数学难题(mathematical problems)。然而,其在计算上易于生成公用密钥及私用密钥对,且使用以加密及解密。公用密钥算法的优势在于从其对应的公用密钥对于要被测定的适当产生私用密钥具有计算不可行性(computational impracticality)。因此,公用密钥可在不影响安全下公开。安全性只取决于保持私用密钥私密未公开。公用密钥算法不同于对称密钥算法,无须当事人之间的密钥的初步交换的安全通道。

原始身份数据110使用私用密钥120来加密(亦即,加密操作140)以产生加密的身份数据152。加密的身份数据152接着被存储和/或内置于管理控制器150 的管理固件。在一些方面中,经加密的身份数据152可在制造管理控制器150期间被嵌入于管理控制器150的管理固件。

运行于BIOS 160的芯片上的BIOS软件程序位于计算机装置100的主板上。BIOS 160存储在计算机装置100首先电源开启时执行的固件,连同指定BIOS160的设定配置。BIOS固件及BIOS配置存储于非易失性存储器中,像是只读存储器(ROM)。

BIOS 160基于设定配置来识别、初始化并测试计算机装置100中存在的硬件。BIOS 160可以在计算机装置100上执行自测试,诸如开机自我检测(POST)。这种自测试可以测试各种硬件组件的功能性,像是硬式磁盘机、光学读取装置、冷却装置、存储器模块、扩充卡等。BIOS 160可寻址及分配系统内存存储器(system memory in)中的区域以存储操作系统(OS)。BIOS 160可接着对OS进行计算机系统的控制。

BIOS 160提供接口,允许设置各种不同的参数。例如,BIOS 160可用于指定时钟(clock)及总线速率(bus speeds),指定什么外围设备被连接到计算机装置100,指定监控健康(例如,风扇速度及CPU温度限制),且指定影响计算机装置100的整体性能及电源使用的各种其他参数。

公用密钥130被存储在BIOS 160中。另外,存储于BMC 150中用于加密加密的身份数据的原始身份数据110的相同副本亦存储于BIOS 160中。在一些方面中,公用密钥130及原始身份数据110可在制造BIOS 160期间嵌入BIOS160。

在操作中,BIOS 160藉由发送指令从BMC 150请求加密的身份数据152。该指令可使用在任何计算机装置管理规格和/或协议上,如IPMI、表征性状态传输(REST)等。举例而言,请求指令可在计算机开启期间传送或在加载OS之后传送。BMC 150接着传回加密身份数据152至BIOS 160。

在一些方面中,BMC 150及BIOS 160包括共享存储器,像是动态随机存取存储器(DRAM)、电可除编程只读存储器(EEPROM)、邮箱寄存器(mailbox registers)等。BIOS 160藉由请求存储在BIOS 160及BMC 150的共享存储器上的加密的身份数据152,从BMC 150取得加密的身份数据152。

BIOS 160使用公用密钥130解密(亦即,解密操作142)经加密的身份数据152成解密的身份数据170。BIOS 160接着比较(亦即,比较操作180)解密的身份数据170与原始身份数据110。如果所解密的身份数据170不同于原始身份数 据110,则BIOS 160判定运行在BMC 150上的管理固件为不受信任的。

回到上述用于生成一对安全密钥的极其简化的示例:

若「私用密钥120」=7

公用密钥130可藉由解出方程式而定:

(「私用密钥120」x「公用密钥130」)模数40=1

接着(7x「公用密钥130」)模数40=1

则「公用密钥130」=23

例示性原始身份数据110可使用加密方程式被加密为加密身份数据152:

「加密的身份数据152」=(「原始身份数据110」)(「私用密钥120」)模数55

如果「原始身份数据110」=2

则「加密的身份数据152」=27模数55=18

「加密的身份数据152」=18存储于BMC 150中。BIOS 160接着以方程式解密经加密的身份数据152:

「解密的身份数据170」=(「加密的身份数据152」)(「公用密钥130」)模数55

则「解密的身份数据170」=1823模数55=2

在这个例子中,解密的身份数据170等于原始身份数据110,且因此,BIOS160确定管理固件是受信任的。

如果BIOS 160确定运行于BMC 150上的管理固件不是受信任的,则BIOS160续行程序(proceeds)以保护计算机装置免于管理固件的损害。例如,BIOS 160可停止BMC 150、防止启动进入OS、关闭计算机装置100、和/或输出警告在显示器上以使管理员得以查看。

可选地或除上述措施之外,BIOS 160可以触发BMC 150中的固件更新。举例而言,在一些实施例中,BIOS 160可被配置以产生使BMC 150下载并安装固件新副本的指令。在另一实例中,固件的「金(gold)」或可信版本可存储于计算机装置,且BIOS 160可被配置以产生使BMC 150存取并安装固件的可信版本的指令。在一些实施例中,BIOS 160可在更新后重复验证过程。在一些实施例中,在BIOS 160停止BMC 150、防止启动进入OS、关闭计算机装置100、输出警告在显示器上以使管理员得以查看之前,更新及重新验证过程可重复至少一次,或采取其他移动以保护计算机装置。

图2示出用于确保管理控制器固件安全的示例方法200。

在步骤210中,计算机装置的安全管理器存储公用密钥及原始身份数据。

在步骤220中,安全管理器从用于计算机装置的管理控制器的管理固件取得加密的身份数据。

在步骤230中,安全管理器以公用密钥解密经加密的身份数据为解密的身份数据。

在步骤240中,安全管理器比较解密的身份数据与原始身份数据,以判定管理固件是否为受信任的。

在步骤250,如果管理固件被判定为受信任的,则方法200进行到步骤255。如果管理固件被判定为不受信任的,则方法200进行到步骤260。

在步骤255,安全管理器允许管理控制器正常操作。

在步骤260,响应于判定管理固件为不受信任的,安全管理器保护计算机装置免于管理固件的损害。

在选择性步骤270,对于管理控制器,安全管理器用新的管理固件替换管理固件。该方法200接着返回到步骤220。

图3显示用于确保管理控制器固件安全的另一示例方法300。

在步骤310,计算机装置的生产者产生一对安全密钥,包括公用密钥及私用密钥。

在步骤320,生产者使用私用密钥加密原始身份数据为加密的身份数据。

在步骤330,生产者嵌入加密的身份数据在用于计算机装置的管理控制器的管理固件。

在步骤340,生产者嵌入公用密钥及原始身份数据于计算机装置的安全管理器中。

在步骤350,安全管理器从管理固件取得加密的身份数据。

在步骤360,安全管理器以公用密钥解密经加密的身份数据为解密身份数据。

在步骤370,安全管理器比较解密身份数据与原始身份数据,以判定管理固件是否为受信任的。

在步骤370,如果管理固件被判定为受信任的,则方法300进行至步骤385。如果管理固件被判定为不受信任的,则方法300进行至步骤390。

在步骤390,响应于判定所述管理固件是不受信任的,安全管理器保护计算机装置免于管理固件的损害。

图4示出示例计算机系统400的框图。计算机系统400包括处理器440、网络接口450、管理控制器480、存储器420、存储器430、BIOS 410、北桥460及南桥470。

计算机系统400是,例如,计算机装置(例如,在数据中心的计算机装置机柜中的计算机装置)或个人计算机。处理器(例如,中央处理单元(CPU))440是检索并执行存储在存储器420中的编程指令的主板上的芯片。处理器440为具单处理内核的单CPU、具多处理内核的单CPU、或多CPU。一或多个总线(未绘示)在多个计算机组件之间传输指令及应用数据,计算机组件如处理器440、存储器420、存储器430、及网络接口450。

存储器420包括用于暂时或永久存储数据或程序的任何物理装置,如各种形式的随机存取存储器(RAM)。存储器430包括用于非易失性数据存储的任何物理装置,诸如HDD或随身碟。存储器430可具有大于存储器420的容量,且在每单位存储上可具经济效益,但也可能具有较低的传输速率。

该BIOS 410包括基本输入/输出系统或其继承者或等价物,如可扩展固件接口(EFI)、或统一可扩展固件接口(UEFI)。BIOS 410包括位于存储BIOS软件程序的计算机系统400的主板上的BIOS芯片。BIOS 410存储在计算机系统首先电源开启时执行的固件,连同指定BIOS 410的设定配置。BIOS固件及BIOS配置存储于非易失性存储器(如NVRAM)中,或像是快闪存储器的ROM。快闪存储器为可电性擦除及重新编程的非易失性计算机存储介质。

BIOS 410在每次计算机系统400启动时加载并执行顺序程序(sequence program)。BIOS 410基于设定配置来识别、初始化并测试给定计算机系统中存在的硬件。BIOS 410可以在计算机系统400上执行自测试,诸如开机自我检测(POST)。这种自测试测试各种硬件组件的功能性,像是硬式磁盘机、光学读取装置、冷却装置、存储器模块、扩充卡等。BIOS寻址及分配内存存储器420中的区域以存储操作系统。BIOS 410接着对OS进行计算机系统的控制。

计算机系统400的BIOS 410包括定义BIOS 410如何控制计算机系统400中的各种硬件组件的BIOS配置。BIOS配置决定其中计算机系统400中各种硬件组件起始的顺序。BIOS 410提供了接口(例如,BIOS设置公用程序(setup utility)),允许各种不同参数被设定不同于BIOS预设配置中的参数。例如,使用者(例如管理员)可使用BIOS 410以指定时钟及总线速率,指定什么外围设备被连接到计算机系统,指定监控健康(例如,风扇速度及CPU温度限制),且指定 影响计算机系统的整体性能及电源使用的各种其他参数。

管理控制器480是嵌入于计算机系统的主板上的专门微控制器(specialized microcontroller)。例如,管理控制器480是基板管理控制器(BMC)。所述管理控制器480管理介于系统管理软件与平台硬件之间的接口。建于计算机系统的不同类型传感器向管理控制器780回报参数,像是温度、冷却风扇的速度、电力状态、操作系统状态等。若任何参数未留在预设限制内时,所述管理控制器480监测传感器且具有通过网络接口450发送警报于管理员的能力,指示系统的潜在故障。管理员可与管理控制器480远程连线,以采取一些纠正措施,像是重置或电源循环系统来恢复功能。

北桥460是可以直接连接到处理器440或集成在处理器440的在主板上的芯片。在一些情况下,北桥460和南桥470合并至单一晶粒(die)上。北桥460及南桥470管理处理器440与主板的其他部分之间的通信连线。北桥460管理相较于南桥470需要较高性能的任务。北桥460管理处理器440、存储器420及视频控制器(未示出)之间的通信连线。在一些情况下,北桥460包括视频控制器。

南桥470为连接到北桥460的主板上的芯片,但与北桥460不同的是,南桥470不必直接连接到处理器440。南桥470管理输入/输出功能,诸如计算机系统400的通用串行总线(USB)、音频、串行(serial)、BIOS、串行先进技术附接(Serial Advanced Technology Attachment,SATA)、周边组件互连(PCI)总线、PCI扩展(PCI-X)总线、PCI传输(Express)总线、SPI总线、eSPI总线、SMBus。南桥470连接到或包括在南桥470有管理控制器480,直接存储器存取(DMAs)控制器、可编程中断控制器(PICs)、及实时时钟。在一些情况下,南桥470直接连接到处理器440,像是其中北桥460被集成到处理器440的情况。

网络接口450是支持有线或无线局域网络(LANs)或广域网络(WANs),如以太、光纤通道、Wi-Fi、蓝牙、火线(Firewire)、互联网等的任何界面。例如,网络接口450可以包括针对以太的网络接口控制器(NIC)。以太为用于连接局域网络(LANs)与广域网络(WANs)中的计算机的最广泛使用的网络标准。以太定义了对于物理层(PHY)的一些线路及信号标准,通过在介质访问控制(MAC)/数据连接层的网络接口的手段,并通过通用寻址格式。以太功能装置通常藉由传输数据包来连线,数据包包含了个别发送及传输的数据块(blocks of data)。

与本文公开搭配所述的各种说明性逻辑块、模块、及电路可利用设计用以执行本文所述的功能的通用目的处理器(general-purpose processor)、数字信号处 理器(DSP)、特定应用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑装置、离散闸极、或晶体管逻辑、离散硬件组件、或其任何组合来实现或实施。通用目的处理器为微处理器,或者是任何常规处理器、控制器、微控制器或状态机。处理器也可实施成计算机装置的组合,例如,DSP与微处理器、多个微处理器、一或多个微处理器搭配DSP内核的组合,或任何其他此类配置。

搭配本文的公开所述的方法或算法的操作可直接体现于硬件中、由处理器执行的软件模块中、或两者的组合中。软件模块可驻留于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移磁盘、CD-ROM或所属技术领域中已知的任何其他形式的存储介质。例示性存储介质耦接至处理器,使得处理器读取信息于存储介质或写入信息于存储介质。或者,存储介质集成于处理器。处理器及存储介质驻留于ASIC。ASIC驻留在使用者终端机。或者,处理器及存储介质驻留在使用者终端机为分开的组件。

在一或多个例示性设计中,所描述的功能以硬件、软件、固件、或其任意组合来实现。如果在软件中实现,则功能以一或多个指令或代码被存储或传输至非临时性计算机可读介质(non-transitory computer-readable medium)。非临时性计算机可读介质包括计算机存储介质与连线介质,包括有助于从一个位置传送计算机程序至另一处的任何介质。存储介质为可由通用目的计算机或特定目的计算机所存取的任何可应用介质。举例而言,且非为限制性的,这样的计算机可读介质包含RAM、快闪存储器、ROM、EEPROM、CD-ROM或其他光磁碟存储器、磁碟存储器、或其他磁存储装置,或可以用于加载或存储所需程序代码工具为指令或数据结构的形式的任何其他介质,其可藉由通用目的或特定目的计算机、或通用目的或特定目的处理器所存取。当用于本文时,磁盘(Disk)和光盘(disc)包含光碟(CD)、激光光碟、光学光碟、多样化数字光碟(DVD)、软性磁碟及蓝光光碟,其中磁盘通常磁性地再生数据,而光盘则是以激光光学地再生数据。上述的组合亦应包含在非临时性计算机可读介质的范围内。

本公开的先前描述提供以使得本领域技术人员能够实施或利用本公开。对本公开的各种修改对于本领域技术人员而言将是显而易见的,且本文所定义的通用原理可在不脱离本公开的范围下应用其他变化。因此,本公开非旨在局限于本文所述的示例及设计,而是依据本文所公开的原理及新颖特征相符的最广范围。

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