基于固件所有权历史来管理对管理控制器秘密的使用的制作方法

未命名 08-13 阅读:105 评论:0

基于固件所有权历史来管理对管理控制器秘密的使用


背景技术:

1.计算机平台(例如,服务器)可以包括被称为“基板管理控制器”或“bmc”的专用服务处理器,该专用服务处理器除了具有其他潜在功能之外,还监测计算机平台的物理状态。bmc可以通过管理网络与远程管理服务器进行通信,以向远程管理服务器报告关于计算机平台的信息,并允许远程管理服务器控制由bmc执行的动作。作为其角色的示例,bmc可以:监测传感器(例如,温度传感器、冷却风扇速度传感器);监测操作系统状态;监测电源状态;记录计算机系统事件;执行远程控制的计算机平台功能(例如,使计算机平台加电和断电);等等。
附图说明
2.图1是根据示例实施方式的具有基板管理控制器(bmc)的计算机平台的示意图,该bmc提供bmc管理固件的固件所有权历史,并且包括安全地转移管理固件的所有权的特征。
3.图2是描绘根据示例实施方式的bmc将由bmc执行的管理固件的所有权从计算机平台制造商所有者安全地转移到另一个所有者并更新转移位的过程的流程图。
4.图3是描绘根据示例实施方式的bmc将由bmc执行的管理固件的所有权从另一所有者安全地转移到计算机平台制造商所有者的过程的流程图。
5.图4是描绘根据示例实施方式的基于固件所有权历史来管理对管理控制器的秘密的使用的过程的流程图。
6.图5是根据示例实施方式的基于固件所有权历史来管理对管理控制器的秘密的使用的管理控制器的示意图。
7.图6是根据示例实施方式的存储在非暂态机器可读存储介质上的机器可执行指令的图示,这些指令在由机器执行时使得基板管理控制器基于固件所有权历史来管理对基板管理控制器的秘密的使用。
具体实施方式
8.bmc可以执行一组固件指令,称为“固件管理堆栈”,以用于执行计算机平台的各种管理相关功能。例如,bmc可以提供比如操作系统运行时服务、资源检测和初始化以及预操作系统服务等管理相关功能。管理相关功能还可以包括计算机平台的远程管理功能。例如,远程管理功能可以包括:键盘、视频鼠标(kvm)功能;虚拟电源功能(例如,用于远程设置电源状态(如节能状态、通电、复位状态或关机状态)的远程激活的功能);虚拟媒体管理功能;等等。除了为计算机平台提供管理功能之外,bmc可以提供保护计算机平台免受安全危害的安全相关特征。
9.计算机平台的制造商可以为bmc提供专有的固件管理堆栈。以这种方式,计算机平台可以附带固件映像(即,表示一组机器可执行指令和数据的二进制数据的集合),该固件映像存储在平台的非易失性存储器中并对应于bmc的管理堆栈。制造商被认为是固件映像的所有者。在这种情况下,固件映像(或“固件”)的“所有者”是指用于对固件映像进行签名
的非对称密钥的所有者。固件映像的签名允许bmc验证固件映像,即,确定非对称密钥的所有者提供了固件映像并确定固件映像未被更改。
10.更具体地,固件映像的所有者可以用所有者的非对称密钥的私钥部分来对固件映像进行签名。作为示例,签名可以是用所有者的非对称密钥的私钥部分加密的固件映像的散列结果。验证固件映像的一种方式是bmc基于所有者的非对称密钥的公钥部分(其经由公钥基础设施分发)解密签名,以得到解密值。bmc然后可以将固件映像的散列与解密的值进行比较,以验证这两个值是否相同(即,确定是否出现匹配,这导致固件映像得到“验证”)。
11.一些计算机平台客户可能依赖制造商拥有的bmc固件,因为这些客户可能更喜欢商业解决方案。其他客户可能更喜欢使用bmc管理固件而不是制造商拥有的固件,因此,这些客户可能用不同的固件映像重写(例如,刷新)计算机平台的固件存储器。例如,给定的客户可能想要使用相同的开源bmc固件管理堆栈来管理客户的所有计算机平台,而不管这些平台的特定制造商如何。作为示例,开源固件管理堆栈可以是作为openbmc社区的一部分开发的固件,如发布版本2.7或更高版本。
12.使用非制造商拥有的bmc管理固件可能会出现问题。例如,使用开源bmc管理固件的客户可能没有足够的资源来深入分析可能涉及的所有潜在安全问题(例如,固件本身的安全漏洞、固件在特定计算机平台中使用时的安全漏洞等等)。此外,使用非制造商拥有的bmc管理固件可能引入信任问题,因为bmc(和计算机平台)的安全资产或秘密可能暴露给固件。因此,即使制造商拥有的bmc管理固件当前被安装在计算机平台上,如果例如之前在该平台上安装过开源bmc管理固件,该平台也可能是不可信的,因为该其他固件可以访问bmc的秘密。信任问题可能扩展到bmc管理固件的全部所有权历史未知的计算机平台。例如,当计算机平台被翻新并作为备件(例如,备用刀片服务器)重新出售时,当计算机平台有多于一个所有者时,以及,给定计算机平台的bmc管理固件的全部所有权历史可能是未知的。
13.根据示例实施方式,计算机平台的bmc包括并维护表示计算机平台的bmc管理固件所有权的历史的一次性可编程元件(例如,熔丝)。根据示例实施方式,一次性可编程元件具有两种状态之一:指示由某个所有者(例如,制造商所有者)拥有的bmc管理固件仅在计算机平台上使用的第一状态;以及指示bmc管理固件有多于一个所有者的第二状态。
14.例如,根据一些实施方式,当bmc首次投入生产时,bmc的所有权转移位(本文称为“转移位”)可以具有初始状态(例如,状态“0”或“未置位”状态,对应于未熔断的熔丝)。根据示例实施方式,只要bmc管理固件的所有权仍然属于原始制造商所有者,转移位就具有相同的初始值。bmc可以允许使用非制造商拥有的bmc管理固件。当在计算机平台中使用非制造商拥有的bmc固件映像时(例如,当用新的固件映像重写存储制造商拥有的固件映像的存储器时),bmc更改转移位的状态(例如,熔断熔丝以将状态“1”或“置位”状态赋予转移位),以表示或指示已经使用了非制造商拥有的bmc管理固件。根据示例实施方式,不管制造商拥有的固件是否被重新安装,指示非制造商拥有的固件使用的转移位的状态都不能被恢复到初始状态。因此,可以基于转移位的状态来评估计算机平台的信任度,即是否使用了非制造商拥有的bmc管理固件。
15.根据示例实施方式,bmc在每次启动或引导时,可以基于转移位的状态采取特定的动作。这些动作可以包括bmc基于转移位的状态来管理对主要秘密的使用所采取的动作。在这种情况下,“主要秘密”是指bmc从中得到其他秘密的秘密。作为示例,主要秘密可以是密
码密钥或种子。bmc可以使用主要秘密作为规避潜在篡改的措施。例如,出于安全的目的,bmc可以不将某些密码密钥存储在断电后仍然存在的非易失性存储器中,作为防止通过篡改来获得对密码密钥的访问的措施。每次引导时,bmc可以使用主要秘密作为各种密钥生成算法的输入来生成某些密码密钥,而不是将密码密钥存储在非易失性存储器中。例如,从主要秘密生成的密码密钥可以包括以下一个或多个:用于加密安全存储区的密钥;传输层安全性(tls)密钥;初始设备标识符(idevid)密钥;被传递到统一可扩展固件接口(uefi)的密钥;用于加密整个非易失性存储器的密钥;用于加密存储在非易失性存储器中的配置数据的密钥;等等。
16.根据示例实施方式,制造商将bmc的主要秘密编码到bmc的一组一次性可编程元件(例如,熔丝)中。bmc管理固件可以访问这个主要秘密。因此,如果计算机平台上安装或已经安装了非制造商拥有的bmc管理固件,则可能涉及信任问题。换句话说,从信任的角度来看,如果计算机平台上安装了非制造商拥有的bmc管理固件,则可以假定存储在该组一次性可编程元件中的主要秘密已经被泄露。因此,根据示例实施方式,bmc可以响应于确定已经置位了转移位(指示现在或过去固件所有权向非制造商所有者的转移),生成新的主要秘密(以代替存储在bmc的一次性可编程元件中的主要秘密)。bmc可以将新生成的主要秘密存储于:安全的非易失性存储器(例如,硬件安全模块(hsm));可信平台模块(tpm)的存储器;非易失性随机存取存储器(nvram);闪速存储器;持久性存储器;一组一次性可编程元件(例如,一次性可编程熔丝和/或反熔丝);等等)。bmc此后可以使用存储在安全存储器中的主要秘密(代替存储在bmc的一次性可编程元件中的主要秘密)来生成密码密钥。此外,根据示例实施方式,bmc可以在bmc管理固件的所有权从非制造商所有者转移到制造商所有者的任何时候生成新的主要秘密。
17.参考图1,作为更具体的示例,根据一些实施方式,计算机平台100包括比如bmc129等管理控制器(或“服务处理器”)。根据示例实施方式,刀片服务器是计算机平台100的示例。然而,根据进一步的实施方式,计算机平台100可以是除刀片服务器之外的平台,比如机架式服务器、存储阵列、模块化交换机、便携式计算机、智能手机、客户端、台式机等。
18.不管其特定形式如何,计算机平台100都包括能够处理机器可执行指令的硬件,以及在其上安装该硬件的框架或机箱。例如,计算机平台100可以包括可以安装在机箱上的一个或多个母板,并且每个母板可以包含一个或多个多核cpu半导体封装(或“插槽”或“芯片”)。作为示例,对于计算机平台100是刀片服务器的实施方式,刀片服务器可以具有形状因子、一个或多个机械闩锁以及对应的电连接器,以用于允许刀片服务器安装在机架安装式刀片外壳中的对应服务器刀片开口或插槽中,以及从对应服务器刀片开口或插槽中移除。
19.如本文所使用的,bmc是专用服务处理器,其使用传感器来监测服务器或其他硬件的物理状态并通过管理网络与管理系统进行通信。bmc还可以通过以下各项与在操作系统级别执行的应用程序进行通信:输入/输出控制器(ioctl)接口驱动程序、表示性状态转移(rest)应用程序接口(api)、或促进基板管理控制器与应用程序之间的通信的某种系统软件代理。bmc可以对位于包括系统存储器的服务器机箱中的硬件设备进行硬件级别访问。bmc可以能够直接修改硬件设备。bmc可以独立于其中设置了bmc的系统的操作系统运行。bmc可以位于服务器或要监测的其他设备的母板或主电路板上。bmc安装在受管服务器/硬
件的母板上或以其他方式连接或附接到受管服务器/硬件的事实并不妨碍bmc被认为与服务器/硬件是“分离”的。如本文所使用的,bmc具有对计算设备的子系统的管理能力,并且与执行计算设备的操作系统的处理资源分离。bmc与在系统上执行高级操作系统或管理程序的处理器(比如中央处理单元)是分离的。
20.根据一些实施方式,bmc 129提供彼此隔离的管理平面和安全平面。bmc的固件管理堆栈在管理平面中执行。根据示例实施方式,bmc的安全平面中的部件通过防火墙与计算机平台的其他部件隔离。在这种情况下,“防火墙”是指严格控制通信的通信屏障。作为示例,根据一些实施方式,可以通过使用安全服务应用编程接口(api)来监管通过防火墙的通信。
21.更具体地,根据示例实施方式,bmc的安全平面包括安全包围区140,并且安全包围区140包括可以存储计算机平台100的一个或多个秘密145的安全存储器144。秘密145可以包括计算机平台100的主机101的秘密,并且秘密145可以包括bmc 129的秘密。“主机”是指计算机平台100的部件(例如,一个或多个中央处理单元(cpu)核102和系统存储器104),该部件执行以下两个动作中的至少一个:提供操作系统113(例如,linux操作系统)来为计算机平台100创建操作系统环境,或者提供预引导环境(例如,提供基本输入/输出系统(bios)和/或统一可扩展固件接口(uefi)111)来为操作系统环境准备计算机平台。
22.根据示例实施方式,安全包围区140可以包括一次性可编程元件165(例如,熔丝和/或反熔丝的集合),所述一次性可编程元件可以共同指示或表示主要秘密161,bmc 129使用所述主要秘密来在bmc 129的每次引导时生成一组给定的密码密钥(即,bmc 129可以不将生成的密码密钥存储在非易失性存储器(即,在掉电后仍然存在的存储器)中)。此外,根据示例实施方式,安全包围区140可以包括一次性可编程元件160(例如,熔丝或反熔丝),所述一次性可编程元件可以指示或表示bmc固件管理所有权转移位162(本文称为“转移位162”)的状态。
23.根据示例实施方式,bmc 129响应于转移位162处于初始状态(例如,未置位状态),使用存储在一次性可编程元件165中的主要秘密来生成该组给定的密码密钥。这里,“初始状态”表示,对于bmc 129的固件所有权历史,制造商一直拥有bmc的管理固件。根据示例实施方式,当转移位162具有除初始状态之外的状态(例如,转移位162具有置位状态)时,bmc 129不使用被编码到一次性可编程元件165中的主要秘密161来生成该组给定的密码密钥。而是,bmc 129使用存储在bmc 129外部的硬件安全模块(hsm)172的非易失性存储器174中的主要秘密。注意,如本文进一步描述的,当转移位162首次被置位以指示固件所有权的转移时,bmc 129生成新的主要秘密并将该主要秘密存储在hsm 172中。
24.作为示例,hsm 172可以是可从microchip获得的ta100 trust anchor hsm半导体封装(或“芯片”),或者hsm 172可以是可从另一制造商获得的半导体封装。此外,根据进一步的实施方式,bmc 129可以将新的主要秘密存储在安全的非易失性存储器中,而不是hsm中。例如,根据进一步的实施方式,bmc 129可以将新的主要秘密存储在tpm或其他安全处理器的存储器中。根据进一步的实施方式,bmc 129可以将新的主要秘密存储在bmc 129的内部安全存储器(比如安全包围区140的安全存储器144、安全包围区140的另一存储器或bmc的半导体封装153的另一存储器)中。一般而言,根据示例实施方式,存储新的主要秘密的安全非易失性存储器可以与多种不同的存储器技术中的任何一种相关联。例如,非易失性存
储器可以是nvram、闪速存储器;持久性存储器;一组一次性可编程元件;等等。
25.在本文使用的上下文中,“一次性可编程元件”是指表示特定信息位的部件,并且该元件的状态(即,相关位的值)只能被编程或更改一次。例如,由一次性可编程元件表示的位可以具有初始未编程的“0”值(即,该位是“未置位的”)。该位可以被编程一次,以将该位的值更改为“1”(即,“置位”该位)。根据示例实施方式,该位的编程是不可逆的,因为该位的值一旦被编程(例如,置位)就不能被逆转(例如,未置位)。根据进一步的示例实施方式,“置位的”转移位162可以表示bmc管理固件的所有权已经更改,而“置位的”转移位162可以表示所有权从未更改。
26.取决于特定实施方式,一次性可编程元件可以采用多种不同形式中的任何一种。例如,根据一些实施方式,共同表示主要秘密161的一次性可编程元件165可以是包含bmc 129的半导体封装153的半导体熔丝和/或半导体反熔丝的集合。以这种方式,为了将主要秘密161编码到该集合中,在bmc 129投入生产之前,制造商可以选择性地激活或熔断熔丝和/或反熔丝的集合。以类似的方式,根据示例实施方式,一次性可编程元件160可以是半导体封装153的半导体熔丝或反熔丝。根据进一步的示例实施方式,一次性可编程元件165可以由一组具有相关联的一次性可编程锁定位的非易失性存储器位置形成。例如,在bmc 129投入生产之前,在表示主要秘密161的数据被写入该组非易失性存储器位置之后,锁定位可以对应于熔丝,该熔丝可以被熔断。根据一些实施方式,bmc 129可以包括电路,该电路被构造为通过施加超过对应的熔丝熔断阈值的电流和/或电压来熔断或激活(或置位)元件160以置位转移位162。
27.根据示例实施方式,bmc的安全包围区140是bmc 129的子系统,进出该子系统的访问受到严格控制。根据示例实施方式,安全包围区140为计算机平台100执行密码功能,并且被完全设置在密码边界内。在这种情况下,“密码边界”是指连续的边界或周界,该密码边界包含密码子系统的逻辑和物理部件,比如形成安全包围区140的bmc部件。
28.根据示例实施方式,安全包围区140包括为bmc 129提供安全特征的硬件或硅信任根引擎151(本文称为“srot引擎151”)。更具体地,根据示例实施方式,安全包围区140存储不可变指纹,srot引擎151使用该指纹来验证存储在非易失性存储器168中的计算机平台100的固件170的部分。根据示例实施方式,固件170可以包括:存储在安全包围区140的存储器143中并由安全包围区140的安全处理器142执行的机器可读指令139;与bmc的管理堆栈固件映像相对应的由bmc 129的一个或多个主处理核154执行的机器可执行指令;uefi固件映像的与uefi 111相对应的机器可读指令;等等。根据示例实施方式,当bmc 129首次通电或复位时,bmc 129保持在主处理核154和安全处理器142上。
29.响应于通电或复位,srot引擎151验证固件1的初始部分,然后将该固件的初始部分加载到安全包围区140的存储器143中,使得该固件部分现在是可信的。bmc 129然后释放对安全处理器142的保持,以允许安全处理器142引导并执行加载的固件指令。通过执行固件指令,安全处理器142然后可以验证与bmc的管理固件堆栈相对应的固件映像179,并且在验证之后,将固件映像179加载到bmc 129的存储器155中。管理固件堆栈的指令然后可以由(多个)主处理核154(当从复位中释放时)执行,这使得(多个)主处理核154加载固件170的附加部分并将加载的部分放入存储器164中。对存储器164的访问可以涉及附加的训练和初始化步骤(例如,由ddr规范提出的训练和初始化步骤)。这些指令可以从存储器155中的bmc
固件管理堆栈的已验证部分执行。根据示例实施方式,安全包围区140可以锁定存储器155,以防止对存储在存储器155中的(多个)已验证部分的修改或篡改。因此,根据示例实施方式,信任链可以从bmc的srot扩展到由bmc的主处理核154执行的固件管理堆栈。
30.根据示例实施方式,bmc 129被构造用于阻止bmc 129的给定域或实体加电或退出复位,直到安全包围区140验证了该域/实体为止。此外,根据示例实施方式,bmc 129可以阻止bmc 129的部件访问bmc 129的资源和计算机平台100的资源,直到安全包围区140批准/验证了这些资源为止。bmc 129可以执行总线过滤和监测(例如,对spi总线、系统管理总线(smb)、内部集成部件(i2c)总线、改进的i2c(i3c)总线等的总线过滤和监测),以防止对总线设备的不希望的访问。例如,bmc 129可以对总线167执行总线过滤和监测。
31.根据示例实施方式,安全处理器142可以执行(存储在存储器143中的)机器可读指令139来为bmc 129执行各种安全相关的任务。例如,根据示例实施方式,安全处理器142可以执行指令139以形成固件更新引擎147,该固件更新引擎用新的bmc管理固件映像代替现有的bmc管理固件映像。此外,根据示例实施方式,安全处理器142可以执行指令139以形成固件转移引擎149,该固件转移引擎被构造为实施本文描述的在固件所有权转移中所涉及的各种安全特征。
32.主处理核154可以执行机器可读指令以执行与bmc 129的固件管理堆栈相对应的管理功能。作为示例,通过主处理核154执行固件管理堆栈,bmc 129可以为主机101执行各种管理角色,比如监测传感器;监测操作系统状态;监控电源状态;记录计算机系统事件;提供远程控制台;提供远程控制功能和其他虚拟存在技术;等等。
33.此外,由主处理核154执行固件管理堆栈可以使bmc 129充当主机101的代理,以允许比如远程管理服务器190等管理实体来远程管理主机101。取决于特定实施方式,远程管理服务器190可以物理上位于与计算机平台100不同的另一个机架、刀片服务器、数据中心和/或地理位置。作为bmc 129充当主机101的代理以允许对主机101进行远程管理的示例,bmc 129可以为主机101提供远程控制台用于各种目的,比如提供kvm功能、虚拟电源功能、虚拟媒体管理功能等等。远程管理服务器190可以经由网络结构188与bmc 129通信,即使当主机101断电时,甚至当软件还没有安装在主机101上时。
34.作为bmc 129充当主机101的代理的进一步的示例,远程管理服务器190可以经由网络结构188与bmc 129通信,以接收关于主机101的状态信息(例如,温度传感器读数、篡改传感器读数、引导状态、故障指示、安全检查故障等);为主机101设置虚拟媒体;使主机101加电;使主机101断电;发起主机101的恢复动作(例如,发起操作系统恢复);为主机101设置引导路径;等等。根据示例实施方式,bmc 129的安全包围区140可以向远程管理服务器190提供平台清单(例如,表示软件部件身份和硬件部件身份的完整性测量的清单),使得服务器190可以验证平台清单。
35.一般而言,网络结构188可以与一种或多种类型的通信网络(比如(作为示例)光纤通道网络、gen-z结构、专用管理网络、局域网(lan)、广域网(wan)、全球网络(例如,因特网)、无线网络或其任何组合)相关联。
36.如图1所描绘的,根据示例实施方式,bmc 129的部件(比如(多个)主处理核154和安全包围区140)可以设置在半导体封装153(或“芯片”)内部。半导体封装153可以是多种封装类型中的任何一种,例如表面安装封装、通孔封装、球栅阵列封装、小外形封装、芯片级封
装等。此外,取决于特定实施方式,安全包围区140的部件可以在半导体封装153的一个或多个管芯157中制造,并且bmc 129的管理平面部件(比如主处理核154)可以在半导体封装153的一个或多个其他管芯中制造。
37.根据示例实施方式,主机101可以包括一个或多个cpu核102(例如,cpu处理核、包含cpu处理器核的半导体等),以及连接到cpu 102以形成系统存储器104的存储器设备。cpu核102可以执行机器可读指令以形成计算机平台100的多个软件和固件部件,比如uefi 111、操作系统113、一个或多个应用115等等。cpu核102可以耦接到一个或多个输入/输出(i/o)桥106,该一个或多个输入/输出桥允许cpu核102与bmc 129之间的通信,以及与各种i/o设备的通信,比如存储驱动器122;一个或多个网络接口控制器(nic)124;一个或多个通用串行总线(usb)设备126;i/o设备;视频控制器;等等。此外,同样如图1所描绘的,计算机平台100可以包括可以通过对应的(多个)单独pcie总线108耦接到cpu核102的一个或多个快速外围部件互连(pcie)设备110(例如,pcie扩展卡)。根据进一步示例实施方式,(多个)pcie设备110可以耦接到(多个)i/o桥106,而不是耦接到cpu核102。根据更进一步的实施方式,(多个)i/o桥106和pcie接口可以是cpu核102的一部分。
38.根据示例实施方式,计算机平台100的一个或多个存储器模块可以形成存储固件170的非易失性存储器168。如图1所描绘的,根据一些实施方式,非易失性存储器168可以通过总线167(例如,串行外围互连(spi)总线)耦接到bmc 129的部件。
39.一般而言,形成系统存储器104、固件存储器168以及本文描述的其他存储器和存储介质的存储设备可以由非暂态存储器设备形成,如半导体存储设备、闪速存储器设备、忆阻器、相变存储器设备、上述存储技术中的一种或多种的组合等等。此外,除非本文另有说明,否则存储器设备可以是易失性存储器设备(例如,动态随机存取存储器(dram)设备、静态随机存取(sram)设备等)或非易失性存储器设备(例如,闪速存储器设备、只读存储器(rom)设备等)。
40.根据一些实施方式,计算机平台100的一个或多个nic 124可以是智能输入/输出外设,或“智能i/o外设”,该智能i/o外设可以为在计算机平台100上执行的一个或多个应用115(或应用实例)提供后端i/o服务。根据一些实施方式,一个或多个pcie设备110可以是智能i/o外围设备。
41.根据示例实施方式,bmc 129可以包含网络接口控制器(nic)158(例如,半导体封装或“芯片”),该网络接口控制器允许bmc 129(经由网络结构188)与计算机平台100外部的实体(比如,远程管理服务器190等)通信。bmc 129可以进一步包含一个或多个附加通信接口156,比如usb接口、pci接口、spi接口、i3c总线接口等。此外,根据示例实施方式,bmc 129可以包含在图1中未具体描绘的部件,比如物理存储器接口、存储器控制器接口、视频控制器等。
42.图2描绘了根据示例实施方式的过程200,固件所有权引擎149(图1)和固件更新引擎147(图1)可以使用该过程将固件所有权从制造商转移到另一个所有者。换句话说,根据示例实施方式,安全处理器142(图1)可以执行机器可读指令139(图1),以用于执行过程200。结合图1参考图2,根据示例实施方式,过程200包括bmc 129接收(框204)将固件所有权从制造商所有者转移到新所有者的命令。按照框208,bmc 129通过在硬件安全模块172中安装与新所有者相关联的新固件密钥(例如,安装新所有者拥有的固件密钥)来响应该命令。
43.按照框212,bmc 129接收用新的bmc管理固件映像更新bmc 129的命令。响应于该命令,bmc 129验证新的固件映像。例如,作为验证的一部分,bmc 129可以确定新固件映像的散列值,使用新的所有者固件密钥来解密与新固件映像一起提供的签名,并将解密的签名与散列值进行比较,以确定这两个值是否匹配。以这种方式,bmc 129可以确定新固件映像由声称的新所有者拥有并且未被修改。按照判定框216,bmc 129确定新固件映像是否通过验证。例如,通过验证可以指解密的签名和散列值相匹配。
44.如果新固件映像未通过验证,则根据示例实施方式,bmc 129删除(框220)新固件密钥,并终止过程200。
45.如果新固件映像通过验证,则根据示例实施方式,bmc 129继续执行安装新固件映像和保护客户秘密的动作。更具体地,按照框224,bmc 129删除存储在安全存储器144中的秘密145。按照框228,bmc 129置位转移位162,即,将转移位更改为状态(例如“1”)以指示所有权已从制造商所有者转移。bmc 129进一步删除(框232)存储在硬件安全模块172中的任何秘密。bmc 129还可以从安全存储器144中删除(框236)制造商固件密钥。
46.接下来,按照框240,bmc 129将新固件映像170提交到非易失性存储器168,并按照框244发起bmc 129的重新启动。如附图标记250所描绘的,bmc 129然后可以执行对应于新固件映像的管理固件。
47.图3描绘了根据示例实施方式的bmc 129的过程300,该过程可以用于将固件所有权从非制造商所有者转移到制造商所有者。根据示例实施方式,过程300可以由bmc129的安全处理器142(图1)来执行。根据一些实施方式,作为执行过程300的一部分,安全处理器142可以执行机器可读指令以形成固件所有权转移引擎149(图1),以用于执行过程300。
48.结合图1参考图3,首先参考过程300,客户恢复制造商拥有的固件(即,安装制造商所有者所拥有的bmc管理固件),如附图标记304所示。按照框308,bmc 129然后被重新启动。
49.在引导起来之后,bmc 129确定(判定框312)转移位162是否已被置位。如果否,bmc 129执行管理与bmc 129相关联的安全资产(比如主要秘密和客户秘密)的动作。更具体地,按照判定框316,bmc 129确定主要秘密是否已经存储在硬件安全模块172中。以这种方式,经由判定框316,bmc 129可以确定这是否是安装新固件映像后的第一次引导,并且如果是,则新的主要秘密尚未生成并且尚未存储在hsm 172中。如果否,则按照框320,bmc 129使用新的制造商固件所有权密钥重新加密已安装的固件映像。例如,根据一些实施方式,当前安装的制造商拥有的固件映像可以由第一制造商拥有的固件密钥加密。按照框320,bmc 129可以例如:首先解密当前已安装的固件映像;安装新的制造商拥有的固件密钥;用新的制造商拥有的固件所有者密钥对解密的固件映像进行加密,然后将新加密的固件映像安装(例如,提交)到非易失性存储器168。按照框324,bmc 129然后生成新的主要秘密,并将生成的主要秘密存储在硬件安全模块172中。
50.如果按照判定框316,bmc 129确定主要秘密已经存储在硬件安全模块172中,则按照框328,bmc 129使用存储在硬件安全模块172中的主要秘密来生成密码密钥。如果按照判定框312,bmc 129确定转移位未被置位,则按照框332,bmc 129从存储在一次性可编程元件165中的主要秘密161生成密码密钥。
51.按照框336,bmc 129然后可以进行与bmc 129的启动相关的动作。例如,根据一些实施方式,bmc 129可以验证固件(如本文所述)、执行安全检查、执行故障检查等;并且如果
满足与这些动作相关的标准,则bmc 129将主处理核154从复位中释放,使得核154可以开始执行固件管理堆栈。按照判定框340,bmc 129确定转移位162是否已被置位,并且如果是,则bmc 129可以将固件所有权转移历史的状态传递给远程管理服务器190。该通知可以采取多种不同形式中的任何一种,比如更新远程管理服务器190的图形用户界面(gui)、向远程管理服务器190发送消息等等。按照框344,bmc 129的主处理核154然后可以执行管理固件。
52.设想了在所附权利要求的范围内的其他实施方式。例如,根据进一步的实施方式,除bmc之外的管理控制器可以存储固件所有权的历史并管理固件所有权的转移,如本文所述。例如,根据进一步的实施方式,管理控制器可以是平台控制器或机箱控制器。尽管前面的描述将管理固件的第一所有者或初始所有者讨论为计算机平台的制造商,但是根据进一步的实施方式,管理固件的初始所有者可以是除了计算机平台制造商之外的所有者。因此,一般而言,根据示例实施方式,不管作为初始所有者的特定实体如何,管理控制器都可以维护管理固件的所有权历史,并管理对主要秘密的使用(以及管理本文描述的其他秘密)。
53.参考图4,根据示例实施方式,过程400包括由计算机平台的管理控制器确定(框404)管理控制器的管理固件的所有权历史是否表示多个所有者。管理控制器包括一组表示第一秘密的一次性可编程元件。过程400包括基于所有权历史来管理(框408)对第一秘密的使用。该管理包括,响应于由管理控制器确定所有权历史表示多个所有者,由管理控制器生成第二秘密来代替第一秘密。该管理包括,响应于确定所有权历史表示多个所有者,由管理控制器将第二秘密存储在非易失性存储器中,并且由管理控制器基于第二秘密生成密码密钥。
54.参考图5,根据示例实施方式,计算机平台500包括主机501和管理主机501的管理控制器503。管理控制器503包括半导体封装502。半导体封装502包括第一一次性可编程元件508;第二一次性可编程元件517;主硬件处理器524;以及硬件安全处理器516。第一一次性可编程元件508表示第一秘密512,第二一次性可编程元件517表示固件转移历史519,即,在管理控制器503的使用历史中,由管理控制器503执行的管理固件的所有权是否已经从初始所有者更改到另一所有者。主硬件处理器524执行管理固件。初始所有者当前拥有管理固件。安全处理器516响应于管理控制器的启动,基于第二数据确定在使用历史中固件所有权是否已经从初始所有者更改,并且基于管理固件的所有权是否已经更改来管理对第一秘密512的使用。
55.参考图6,根据示例实施方式,非暂态机器可读存储介质600存储机器可执行指令604。指令604在由机器执行时,使得机器使机器的基板管理控制器确定存储在基板管理控制器中的固件所有权历史是否表示在基板管理控制器的使用历史中所有权从初始所有者到另一所有者的更改。该固件对应于基板管理控制器的管理堆栈。指令604在由机器执行时,进一步使得机器使基板管理控制器基于固件的所有权历史来管理对第一秘密的使用。第一秘密由机器的一次性可编程元件表示。管理对第一秘密的使用包括,响应于确定固件的所有权在历史中已经由第一所有者拥有而所有权未被转移,基于第一秘密生成密码密钥。管理对第一秘密的使用进一步包括,响应于确定所有权在历史期间已经被转移,基于存储在安全存储器中的第二秘密生成密码密钥。
56.根据示例实施方式,管理控制器可以基于一次性可编程元件的状态来确定所有权历史是否表示多个所有者。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘
密。
57.根据示例实施方式,基板管理控制器确定第二秘密是否存储在非易失性存储器中。基板管理控制器可以响应于确定第二秘密未存储在非易失性存储器中而生成第二秘密。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
58.根据示例实施方式,固件映像由第一密码密钥加密。响应于基板管理控制器确定第二秘密未存储在非易失性存储器中,基板管理控制器用除第一密码密钥之外的第二密码密钥重新加密固件映像。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
59.根据示例实施方式,基板管理控制器响应于确定所有权历史表示多个所有者,生成固件所有权转移的通知,并将该通知传递给远程管理服务器。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
60.根据示例实施方式,硬件安全处理器接收将所有权从初始所有者转移到第二所有者的命令。响应于该命令,安全处理器安装与初始所有者相关联的固件映像,并对第二次可编程元件进行编程以表示所有权被转移。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
61.根据示例实施方式,计算机平台进一步包括安全存储器。硬件安全处理器接收将所有权从初始所有者转移到第二所有者的命令。响应于该命令,硬件安全处理器基于与第二所有者相关联的密码密钥来验证固件映像。响应于固件映像的验证,硬件安全处理器移除存储在安全存储器中的秘密。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
62.根据示例实施方式,计算机平台进一步包括非易失性存储器。硬件安全处理器进一步响应于固件的验证和存储在安全存储器中的秘密的移除,将固件映像存储在非易失性存储器中。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
63.根据示例实施方式,硬件安全处理器进一步响应于固件映像被存储在该非易失性存储器中,发起管理控制器的重新启动。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
64.根据示例实施方式,硬件安全处理器将进一步接收安装与除初始所有者之外的第二所有者相关联的固件映像的命令。硬件安全处理器基于与第二所有者相关联的密码密钥来验证固件映像,并且硬件安全处理器响应于固件映像的验证失败而删除密码密钥。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
65.根据示例实施方式,硬件安全处理器响应于管理控制器的引导,基于第一一次性可编程元件的状态确定所有权是否已经更改,并且响应于确定所有权没有更改,基于第一秘密生成密码密钥。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
66.根据示例实施方式,计算机平台进一步包括安全存储器。硬件安全处理器基于第一一次性可编程元件的状态确定所有权是否已经更改。硬件安全处理器响应于确定所有权已经更改,生成第二秘密来代替第一秘密,将第二秘密存储在安全存储器中,发起管理控制器的重新启动,并且响应于该重新启动而生成基于第二秘密的密码密钥。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
67.根据示例实施方式,计算机平台进一步包括安全存储器。硬件安全处理器基于第一一次性可编程元件的状态来确定所有权是否已经更改。硬件安全处理器响应于确定所有
权已经更改,删除存储在所述安全存储器中的秘密,生成第二秘密以代替第一秘密,将第二秘密存储在安全存储器中,发起管理控制器的重新启动,并且响应于重新启动而基于第二秘密生成密码密钥。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
68.根据示例实施方式,管理控制器包括基板管理控制器。此外,管理控制器管理主机包括由基板管理控制器提供允许远程管理服务器远程控制主机功能的功能。特别的优点是,bmc可以基于持久的固件所有权历史来管理秘密。
69.尽管已经关于有限数量的实施方式描述了本公开,但受益于本公开的本领域技术人员将了解本公开的许多修改和变化。所附权利要求旨在覆盖所有这样的修改和变化。

技术特征:
1.一种方法,包括:由计算机平台的管理控制器确定所述管理控制器的管理固件的所有权历史是否表示多个所有者,其中,所述管理控制器包括一组表示第一秘密的一次性可编程元件;以及基于所述所有权历史来管理对所述第一秘密的使用,其中,所述管理包括响应于由所述管理控制器确定所述所有权历史表示多个所有者:由所述管理控制器生成第二秘密以代替所述第一秘密;由所述管理控制器将所述第二秘密存储在非易失性存储器中;以及由所述管理控制器基于所述第二秘密生成密码密钥。2.如权利要求1所述的方法,进一步包括:由所述管理控制器基于一次性可编程元件的状态确定所述所有权历史表示多个所有者。3.如权利要求1所述的方法,进一步包括:由基板管理控制器确定所述第二秘密是否存储在所述非易失性存储器中;以及响应于确定所述第二秘密未存储在所述非易失性存储器中,由所述基板管理控制器生成所述第二秘密。4.如权利要求3所述的方法,其中,固件映像由第一密码密钥加密,所述方法进一步包括:响应于所述基板管理控制器确定所述第二秘密未存储在所述非易失性存储器中,由所述基板管理控制器用除所述第一密码密钥之外的第二密码密钥来重新加密所述固件映像。5.如权利要求1所述的方法,进一步包括:响应于确定所述所有权历史表示多个所有者:由基板管理控制器生成固件所有权转移的通知;以及将所述通知传递给远程管理服务器。6.一种计算机平台,包括:主机;以及管理控制器,用于管理所述主机,其中,所述管理控制器包括半导体封装,并且所述半导体封装包括:第一一次性可编程存储器元件,用于表示第一秘密;第二一次性可编程元件,用于表示由所述管理控制器执行的管理固件的所有权在所述管理控制器的使用历史中是否已经从初始所有者更改为另一所有者;主硬件处理器,用于执行所述管理固件,其中,所述初始所有者当前拥有所述管理固件;以及硬件安全处理器,用于响应于所述管理控制器的启动:基于第二数据,确定所述固件所有权在所述使用历史中是否已经从所述初始所有者更改;以及基于所述管理固件的所有权是否已经更改来管理对所述第一秘密的使用。7.如权利要求6所述的计算机平台,其中,所述硬件安全处理器进一步用于:接收将所述所有权从所述初始所有者转移到第二所有者的命令;以及响应于所述命令,安装与所述第二所有者相关联的固件映像,并且对所述第二一次性可编程元件进行编程以表示所述所有权被转移到所述第二所有者。
8.如权利要求6所述的计算机平台,其中,所述计算机平台进一步包括安全存储器,并且所述硬件安全处理器进一步用于:接收将所述所有权从所述初始所有者转移到第二所有者的命令;响应于所述命令,基于与所述第二所有者相关联的密码密钥来验证固件映像;以及响应于对所述固件映像的所述验证,移除存储在所述安全存储器中的秘密。9.如权利要求8所述的计算机平台,其中,所述计算机平台进一步包括非易失性存储器,并且所述硬件安全处理器进一步用于:响应于对所述固件映像的所述验证和对存储在所述安全存储器中的所述秘密的所述移除,将所述固件映像存储在所述非易失性存储器中。10.如权利要求9所述的计算机平台,其中,所述硬件安全处理器进一步用于响应于所述固件映像被存储在所述非易失性存储器中,发起所述管理控制器的重新启动。11.如权利要求6所述的计算机平台,其中,所述硬件安全处理器进一步用于:接收安装与除所述初始所有者之外的第二所有者相关联的固件映像的命令;基于与所述第二所有者相关联的密码密钥来验证所述固件映像;以及响应于所述固件映像的验证失败,删除所述密码密钥。12.如权利要求6所述的计算机平台,其中,响应于所述管理控制器的引导,所述硬件安全处理器进一步用于:基于所述第一一次性可编程元件的状态,确定所述所有权是否已经更改;以及响应于确定所述所有权没有更改,基于所述第一秘密生成密码密钥。13.如权利要求6所述的计算机平台,其中,该计算机平台进一步包括安全存储器,并且所述硬件安全处理器进一步用于:基于所述第一一次性可编程元件的状态,确定所述所有权是否已经更改;以及响应于确定所述所有权已经更改,生成第二秘密以代替所述第一秘密,将所述第二秘密存储在所述安全存储器中,发起所述管理控制器的重新启动,以及响应于所述重新启动而基于所述第二秘密生成密码密钥。14.如权利要求6所述的计算机平台,其中,所述计算机平台进一步包括安全存储器,并且所述硬件安全处理器进一步用于:基于所述第一一次性可编程元件的状态,确定所述所有权是否已经更改;以及响应于确定所述所有权已经更改,删除存储在所述安全存储器中的秘密,生成第二秘密以代替所述第一秘密,将所述第二秘密存储在所述安全存储器中,发起所述管理控制器的重新启动,以及响应于所述重新启动而基于所述第二秘密生成密码密钥。15.如权利要求6所述的计算机平台,其中,所述管理控制器包括基板管理控制器,并且所述管理控制器管理所述主机包括:由所述基板管理控制器提供允许远程管理服务器远程控制所述主机的功能的功能。16.一种存储有机器可执行指令的非暂态机器可读存储介质,所述指令在由机器执行时使所述机器进行以下操作:使所述机器的基板管理控制器确定存储在所述基板管理控制器中的固件所有权历史是否表示在所述基板管理控制器的使用历史中所述所有权从初始所有者到另一所有者的更改,其中,所述固件对应于所述基板管理控制器的管理堆栈;以及
使所述基板管理控制器基于所述固件的所有权历史来管理对第一秘密的使用,其中,所述第一秘密由所述机器的一次性可编程元件表示,并且管理对所述第一秘密的使用包括:响应于确定所述固件的所有权在所述使用历史中已经由所述第一所有者拥有而所述所有权未被转移,基于所述第一秘密生成密码密钥;以及响应于确定所述所有权在所述使用历史期间已经被转移,基于存储在安全存储器中的第二秘密生成所述密码密钥。17.如权利要求16所述的非暂态机器可读存储介质,其中,所述指令在由所述机器执行时进一步使得所述机器使所述基板管理控制器基于所述机器的一次性可编程元件的状态来确定所述历史表示所述所有权的更改。18.如权利要求16所述的非暂态机器可读存储介质,其中,所述指令在由所述机器执行时进一步使得所述机器:确定所述第二秘密是否存储在所述安全存储器中;以及响应于确定所述第二秘密未存储在所述安全存储器中,生成所述第二秘密。19.如权利要求18所述的非暂态机器可读存储介质,其中,固件映像由第一密码密钥加密,并且所述指令在由所述机器执行时进一步使得所述机器:响应于确定所述第二秘密未存储在所述安全存储器中,使所述基板管理控制器用除所述第一密码密钥之外的第二密码密钥重新加密所述固件映像。20.如权利要求16所述的非暂态机器可读存储介质,其中,所述指令在由所述机器执行时进一步使得所述机器:响应于确定所述所有权历史已经更改而使所述基板管理控制器生成固件所有权转移的通知,并将所述通知传递给远程管理服务器。

技术总结
本公开涉及基于固件所有权历史来管理对管理控制器秘密的使用。计算机平台的管理控制器确定管理控制器的管理固件的所有权历史是否表示多个所有者。管理控制器包括一组表示第一秘密的一次性可编程元件。管理控制器基于所有权历史来管理对第一秘密的使用。该管理包括,响应于由管理控制器确定所有权历史表示多个所有者,由管理控制器生成第二秘密来代替第一秘密。该管理进一步包括,响应于由管理控制器确定所有权历史表示多个所有者,由管理控制器将第二秘密存储在非易失性存储器中,并且由管理控制器基于第二秘密生成密码密钥。管理控制器基于第二秘密生成密码密钥。管理控制器基于第二秘密生成密码密钥。


技术研发人员:L
受保护的技术使用者:慧与发展有限责任合伙企业
技术研发日:2022.04.18
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐