CN115203678A - 签名启动信息文件并与主机计算系统互锁的系统和方法 - Google Patents

签名启动信息文件并与主机计算系统互锁的系统和方法 Download PDF

Info

Publication number
CN115203678A
CN115203678A CN202111243120.0A CN202111243120A CN115203678A CN 115203678 A CN115203678 A CN 115203678A CN 202111243120 A CN202111243120 A CN 202111243120A CN 115203678 A CN115203678 A CN 115203678A
Authority
CN
China
Prior art keywords
information file
boot
computing system
host computing
boot information
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.)
Pending
Application number
CN202111243120.0A
Other languages
English (en)
Inventor
L·A·普莱姆斯伯格
V·Y·卡什申
J·西斯内罗斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN115203678A publication Critical patent/CN115203678A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

示例实施方式涉及由可管理性控制器对启动信息文件进行签名并将主机计算系统与已签名的启动信息文件互锁的系统和方法。启动信息文件可以包括主机计算系统的启动加载程序文件和/或OS内核文件。可管理性控制器从计算设备的处理器接收启动信息文件。进一步地,可管理性控制器用唯一标识符的散列数据对启动信息文件进行签名,以生成已签名的启动信息文件并将其传送到处理器。随后,可管理性控制器响应于处理器成功下载已签名的启动信息文件,而用已签名的启动信息文件的拇指指纹数据更新存储在主机计算系统的固件引擎的非易失性随机存取存储器中的启动数据库,以将主机计算系统与已签名的启动信息文件互锁。

Description

签名启动信息文件并与主机计算系统互锁的系统和方法
背景技术
数据中心可以具有用于执行客户的一个或多个工作负载(应用程序软件)的计算系统。每当启动/重新启动数据中心中的计算系统时,在使计算系统可用于运行操作系统(OS)和OS上的应用程序软件之前,可能必须执行各种初始化程序和测试(安全启动测试)。为了在加载OS之前确保计算系统软件(即,启动时间软件)的完整性,安全地启动计算系统可能是必不可少的。因此,安全启动可以使得能够在固件引擎的启动数据库中保持启动时间软件的受原始设备制造商(OEM)信任的授权签名,以便确保计算系统使用具有授权签名的软件来进行启动。因此,当计算系统启动(start/boot)时,固件引擎对照启动数据库中的授权签名检查启动信息文件中列出的软件的签名,并且如果签名被证实,则固件引擎向启动信息文件提供控制以允许启动计算系统。
附图说明
下面将参考以下附图描述各种示例。
图1是描绘了根据本公开的实施例的具有可管理性控制器、处理器和固件引擎的主机计算系统的框图。
图2是描绘了根据本公开的实施例的可管理性控制器的框图,所述可管理性控制器具有可操作地耦接到机器可读介质的处理资源,所述机器可读介质存储可执行程序指令。
图3是描绘了根据本公开的实施例的处理资源和机器可读介质的框图,所述机器可读介质编码有示例指令,这些示例性指令可由可管理性控制器执行以对启动信息文件进行签名并将已签名的启动信息文件与主机计算系统互锁。
图4是描绘了根据本公开的实施例的对启动信息文件进行签名并将其与主机计算系统互锁的方法的流程图。
图5是描绘了根据本公开的实施例的启动主机计算系统的方法的流程图。
在所有附图中,相同的附图标记可以表示相似但不一定相同的元件。附加在一些附图标记上的索引号“N”可以理解为仅指示复数个,并且对于具有这样的索引号“N”的每个附图标记而言可能不一定表示相同的数量。另外,本文中在附图标记在其他地方与索引号一起提及的情况下,这种附图标记在没有索引号的情况下的使用可以集体地或单个地概括指代对应的复数个元件。在另一示例中,可以使用索引号“I”、“M”等来代替索引号N。附图不一定是成比例的,并且一些部分的尺寸可以被放大以更清楚地图示所示的示例。此外,附图提供了与描述一致的示例和/或实施方式;然而,描述不限于附图中提供的示例和/或实施方式。
具体实施方式
以下详细描述参考附图。在可能的情况下,相同的附图标记在附图中以及以下描述中用于指代相同的或类似的部分。然而,应明确理解,附图仅用于说明和描述的目的。尽管在本文档中描述了若干示例,但是修改、改编和其他实施方式是可能的。因此,以下具体实施方式不限制所公开的示例。相反,所公开示例的正确范围可以由所附权利要求限定。
本文中使用的术语仅用于描述示例的目的,并且不旨在具有限制性。如本文中所使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另外明确指出。如本文中使用的,术语“多个”被定义为两个或多于两个。如本文中所使用的术语“另一”被定义为至少是第二或更多。如本文中使用的,除非另外指示,否则术语“耦接”被定义为连接的,无论是没有任何介入元件直接连接还是借助至少一个介入元件间接连接。两个元件可以机械耦接、电耦接,或通过通信信道、路径、网络或系统通信地链接。本文所使用的术语“和/或”是指并涵盖相关联列举项目中的一个或多个项目的任何和所有可能组合。还应理解的是,尽管术语第一、第二、第三等在本文中可以用于描述各种元件,但是这些元件不应受这些术语的限制,因为这些术语仅用于将一个元件与另一元件区分开,除非另有说明或上下文另有指示。如本文所使用的,术语“包括(includes)”是指包括(includes)但不限于,术语“包括(including)”是指包括(including)但不限于。术语“基于”是指“至少部分地基于”。
如本文所使用的,术语“可管理性控制器”是用于使用一个或多个传感器来监测主机计算系统的物理状态的专用服务处理器。可管理性控制器可以经由连接(例如,网络连接)与管理员或用户通信。
如本文所使用的,术语“主机计算系统”可以指部署在数据中心环境中的用于执行客户的一个或多个工作负载的服务器系统。主机计算系统也可以指部署在数据中心环境中的用于存储客户数据的存储系统。术语“计算设备”可以指主机计算系统或外部计算系统。如本文所使用的,术语“外部计算系统”可以指用于主机计算系统的安全管理的服务器系统。如本文所使用的,术语“工作负载”可以指在主机计算系统上运行并具有多个用户的应用程序软件,该多个用户连接到主机计算系统以与应用程序软件交互从而接收预期服务。
如本文所使用的,术语“启动信息文件”可以指主机计算系统的固件引擎感知操作系统(OS)加载程序文件或可启动文件。启动信息文件加载并开始进行属于主机计算系统的OS的启动时间任务和进程。如本文所使用的,术语“固件引擎”可以指硬件程序和软件程序的组合或编程在硬件上以用于启动主机计算系统的指令集。固件引擎的示例可以包括存储在存储器芯片上以供处理器执行的基本输入输出系统(BIOS)或统一可扩展固件接口(UEFI)。固件引擎可以在将控制传递给启动信息文件以加载主机计算系统中的OS或开始OS的启动时间任务和进程之前验证启动信息文件中的签名。
如本文所使用的,术语“散列数据”可以指特定于或绑定到主机计算系统的硬件资源的字符串。散列数据是通过使用可管理性控制器的唯一标识符根据算法来生成的。术语“唯一标识符”可以指对应于可管理性控制器的私钥。如本文所使用的,术语“私钥”可以指对应于可管理性控制器的唯一字母数字字符串。如本文所使用的,术语“已签名的启动信息文件”或“已附加的启动信息文件”可以指具有已附加在启动信息文件的主体中的散列数据的启动信息文件。散列数据可以用于将已附加或已签名的启动信息文件与主机计算系统互锁,以用于随后的启动。如本文所使用的,术语“启动数据库”可以指固件引擎的具有启动时间软件的授权/可信密钥列表的内部文件或数据集。密钥列表可以包括:i)软件的受原始设备制造商(OEM)信任的公共授权签名和/或ii)已签名的启动信息文件的拇指指纹数据。如本文所使用的,术语“拇指指纹数据”可以指表示已签名的启动信息文件或已附加的启动信息的公共密钥或标识符。如本文所使用的,术语“类似文件”可以指具有相同的公共密钥或标识符以便识别或辨识文件的文件。
如本文所使用的,术语“预定链接”可以指访问计算系统的非易失性存储驱动器中的启动信息文件的路径。如本文所使用的,术语“客户签名”可以指客户的私钥。如本文所使用的,术语“多个参数”可以对应于授权软件(启动时间软件)的不同种类/类型及其可用于启动主机计算系统的属性,比如操作系统的种类及其版本、安全软件的种类及其版本等。
出于解释本公开的目的,参考图1至图5中图示的部件来描述某些示例。然而,所示部件的功能可以重叠,并且可以存在于更少或更多数量的元件和部件中。另外,所示元件的所有或部分功能可以共同存在或分布在若干地理上分散的位置。此外,公开的示例可以在各种环境中实施并且不限于所示示例。进一步地,结合图1以及图4至图5描述的操作顺序是示例,而不旨在进行限制。在不背离所公开示例的范围的情况下,可以使用额外或更少的操作或操作组合或将其改变。因此,本公开仅仅阐述了实施方式的示例,并且可以对所描述的示例进行许多变化和修改。这样的修改和变化旨在包括在本公开的范围内并且由所附权利要求书保护。
比如服务器系统等主机计算系统通常提供称为“安全启动”的功能性,所述功能性确保具有受原始设备制造商(OEM)信任的授权签名的软件(启动时间软件)仅用于启动主机计算系统。因此,当主机计算系统启动时,主机计算系统的固件引擎可以对照存储在固件引擎的启动数据库中的软件的授权签名来验证在主机计算系统的启动信息文件中列出的软件签名。在这样的示例中,如果签名被证实,则固件引擎可以提供对启动信息文件的控制以允许启动主机计算系统或加载主机计算系统的操作系统。
然而,安全启动不能确保主机计算系统与具有已证实签名的启动信息文件互锁。换句话说,安全启动不提供以下特征:通过使用主机计算系统的具有已证实签名的启动信息文件来限制任何其他计算系统的启动。例如,如果主机计算系统在未经授权的用户手中受损,则可以移除具有启动信息文件的主机计算系统的硬盘驱动器并用在其他计算系统中,以启动其他计算系统并在所移除的硬盘驱动器中安装间谍软件或根程序病毒包(rootkit)。在这样的示例中,可以在主机计算系统中恢复所移除的硬盘驱动器(或受损的硬盘驱动器)。由此,通过从受损的硬盘驱动器秘密地传输数据,使未经授权的用户能够获得关于主机计算系统活动(例如,与在主机计算系统中运行/执行的工作负载相关的活动)的秘密信息。
为了解决安全启动中的这样的问题,可以从启动数据库中清除所有软件的公共授权签名,并且可以在启动数据库中添加选定软件的授权签名。进一步地,可以用选定软件的列表来更新主机计算系统的启动信息文件,所述选定软件的授权签名被添加到启动数据库。然而,安全启动的上述特征可能无法确保具有选定软件的列表的启动信息文件与主机计算系统互锁。例如,在其启动数据库中具有选定软件的授权签名的任何其他计算系统的固件引擎也可以证实主机计算系统的启动信息文件中的选定软件的列表。因此,允许使用主机计算系统的启动信息文件来启动其他计算系统。因此,将启动信息文件与主机计算系统互锁可能需要构建统一可扩展固件接口(UEFI)二进制文件以及使用定制的供应商工具来更新启动数据库和启动信息文件。这种过程可能超出了普通管理员/用户的能力范围。进一步地,了解UEFI二进制文件的构建和对定制的供应商工具的访问的未经授权的用户仍可以绕过互锁(如果有的话),并且将间谍软件或根程序病毒包引入从主机计算系统移除的硬盘驱动器。
针对上述问题的可行技术解决方案可以包括首先通过比如主机计算系统的可管理性控制器等至少一个硬件资源对启动信息文件进行签名以生成已签名的启动信息文件。进一步地,所述技术方案包括在存储在比如主机计算系统的硬盘驱动器等非易失性存储驱动器中的启动信息文件中附加可管理性控制器的签名。随后,所述技术方案包括用已签名或已附加的启动信息文件的拇指指纹数据更新主机计算系统的固件引擎中的启动数据库。因此,主机计算系统可以与已签名或已附加的启动信息文件互锁,以用于启动目的。在这样的示例中,即使主机计算系统受损(即,硬盘驱动器被从主机计算系统中移除并用在其他计算系统中),其他计算系统可能也无法使用已签名或已附加的启动信息文件来进行启动。因为其他计算系统的固件引擎可能无法验证所移除的硬盘驱动器中的已附加或已签名的启动信息文件的签名,这是由于主机计算系统的(用于对启动信息文件进行签名的)可管理性控制器与其他计算系统的可管理性控制器不同。进一步地,主机计算系统可能无法使用存储在其他硬盘驱动器(即,替换的硬盘驱动器)中的启动信息文件来进行启动。因为主机计算系统的固件引擎可能无法在其他硬盘驱动器中定位已签名或已附加的启动信息文件(即,基于存储在启动数据库中的拇指指纹数据)以证实已签名或已附加的启动信息文件的签名从而进行启动。
在一个或多个示例中,可管理性控制器可以通过使用属于可管理性控制器的唯一标识符的散列数据来对启动信息文件进行签名。唯一标识符可以是与可管理性控制器相对应的存储在可管理性控制器的可信平台模块中的私钥。换句话说,唯一标识符是特定于每个可管理性控制器的独特密钥。因此,主机计算系统的已签名的启动信息文件无法用于启动其他计算系统。在一些示例中,可信平台模块是可管理性控制器的安全存储扇区,主机计算系统的其他硬件资源无法访问所述存储扇区。在一个或多个示例中,在用散列数据对启动信息文件进行签名之前,可以使用比如安全散列算法(SHA)-256、SHA-512等算法来对唯一标识符进行散列。
在一些示例中,在随后启动主机计算系统时,固件引擎可以基于在启动数据库中更新的拇指指纹数据来访问存储在主机计算系统的非易失性存储驱动器中的已签名或已附加的启动信息文件。随后,固件引擎可以通过使用可管理性控制器的公钥来证实已签名或已附加的启动信息文件中的散列数据。因此,固件引擎可以允许主机计算系统的处理器响应于成功证实已签名的启动信息文件,而使用启动信息文件来加载主机计算系统的操作系统。在这样的示例中,在用已签名的启动信息文件的拇指指纹数据更新启动数据库之前,可管理性控制器可以将启动数据库中的预先存在的启动数据清除到固件引擎的清除启动数据库中。
因此,本公开描述了通过主机计算系统的可管理性控制器对启动信息文件进行签名并且将主机计算系统与已签名的启动信息文件互锁以用于启动主机计算系统的系统和方法的示例实施方式。在一些示例中,启动信息文件可以包括主机计算系统的启动加载程序文件或操作系统(OS)内核文件之一。可管理性控制器可以从计算设备的处理器接收启动信息文件。在一些示例中,启动信息文件是用于在主机计算系统上运行一个或多个工作负载的定制的启动信息文件,并且计算设备是主机计算系统或外部计算系统。可管理性控制器可以用唯一标识符的散列数据对启动信息文件进行签名以生成已签名的启动信息文件,并且可以将已签名的启动信息文件传送到处理器。进一步地,可管理性控制器可以响应于处理器成功下载已签名的启动信息文件,而用已签名的启动信息文件的拇指指纹数据更新主机计算系统的固件引擎中的启动数据库,以将主机计算系统与已签名的启动信息文件互锁。
图1图示了示例环境100,比如数据中心环境,其中可以部署主机计算系统102以运行或执行客户的一个或多个工作负载(即,应用程序软件)从而向连接的用户提供服务。另外,示例环境100可以具有外部计算系统104,所述外部计算系统经由网络106可操作地耦接到主机计算系统102以用于安全地管理在主机计算系统102中运行的一个或多个工作负载。在一些示例中,网络106可以是TCP/IP(传输控制协议/因特网协议)网络,其是用于互连因特网上的网络设备的一套通信协议。在一个或多个示例中,环境100可以被实施为企业系统或消费者系统或工业系统,所述系统促进执行或运行客户的一个或多个工作负载以向连接的用户提供预期服务,并且促进并行保护一个或多个工作负载免受安全漏洞的影响。
在一些示例中,主机计算系统102可以是包含属于一个或多个工作负载的敏感数据并且连接到TCP/IP网络106(包括因特网)的服务器系统。在一些其他示例中,主机计算系统102可以是存储系统等。类似地,外部计算系统104可以是被配置用于管理在主机计算系统102上运行的一个或多个工作负载的服务器系统。在一个或多个示例中,主机计算系统102和外部计算系统104中的每一者均可以由示例环境100的管理员108管理和/或控制。
在一些示例中,主机计算系统102可以包括处理器110(第一处理器)、存储器112(第一存储器)、非易失性存储驱动器114(第一驱动器)、可管理性控制器116以及固件引擎118。处理器110可以是物理处理器,比如中央处理单元(CPU),其可以通过执行由程序指令指定的算术操作、逻辑操作、控制操作以及输入/输出(I/O)操作来执行在主机计算系统102中运行的一个或多个工作负载的程序指令。例如,处理器110可以可操作地耦接到存储器112和非易失性存储驱动器114,以便将存储在非易失性存储驱动器114中的程序指令加载到存储器112中并执行主机计算系统102的软件,比如操作系统(OS)和在OS上运行的一个或多个工作负载。在本文中可以注意到,OS可以执行所有基本任务,如文件管理、存储器管理、进程管理、处置输入和输出以及控制比如打印机、调制解调器等外围设备。一个或多个工作负载可以是生产工作负载、开发工作负载或测试工作负载,这取决于客户要求。一个或多个工作负载中的每一个均可以包含客户专有的敏感信息或数据。在一些示例中,生产工作负载可以包括自动柜员机(ATM)应用程序软件、工资应用程序软件等。类似地,开发工作负载可以包括一组进程的实施和工具的编程以创建新的应用程序或软件产品。进一步地,测试工作负载可以包括另一组进程的实施和工具的测试以测试新的应用程序或软件产品。在一个或多个示例中,处理器110还可以可操作地耦接到主机计算系统102的可管理性控制器116和固件引擎118。
存储器112是易失性存储装置,例如随机存取存储器,其用作处理器110的内部存储器。一般来说,当主机计算系统102被开启或操作时,存储器112可以允许处理器110读取或存储i)数据、ii)程序指令、和/或iii)程序结果。例如,当主机计算系统102被启动/重新启动或操作时,OS和在OS上运行的一个或多个工作负载从非易失性存储驱动器114加载到存储器112中,其中处理器110可以利用加载到存储器112中的这样的数据来执行所需的任务。
非易失性存储驱动器114可以是硬盘驱动器、固态驱动器等。在一个或多个示例中,非易失性存储驱动器114可以包括多个分区126,以在主分区126A中存储主机计算系统102的文件,以及在扩展分区126B中存储用户的文件或数据。例如,主分区126A可以用于存储启动信息文件128。在一个或多个示例中,启动信息文件128可以是启动加载程序文件或OS内核文件之一。在本文中可以注意到,启动加载程序文件可以是存储在主分区126A的第一区块或扇区中或存储在非易失性存储驱动器114的特定分区中的特殊OS软件。在这样的示例中,在主机计算系统102的启动期间,比如GRUB等启动加载程序文件可以从非易失性存储驱动器114加载到存储器112中。类似地,OS内核文件是形成OS的核心部分并且存储在非易失性存储驱动器114中以促进主机计算系统102的硬件部件和软件部件之间的交互的软件程序。
可管理性控制器116可以是用于使用一个或多个传感器(未示出)来监测主机计算系统102的物理状态的专用服务处理器。可管理性控制器116可以经由网络106与管理员108或用户通信。在一些示例中,可管理性控制器116是嵌入在要监测的主机计算系统102的电路板(例如,母板)内的基板管理控制器(BMC)。在这样的示例中,电路板还可以承载处理器110。在一些示例中,可管理性控制器116可以是与被配置为执行主机计算系统102的OS的处理器110分开的另一个处理器。可管理性控制器116可以帮助管理员108远程监测主机计算系统102和连接到主机计算系统102的其他硬件设备。可管理性控制器116可以具有其自己的因特网协议(IP)地址,所述地址可以通过安全web控制台或命令行界面来访问。进一步地,可管理性控制器116可以具有其自己的存储器(机器可读介质)和耦接到存储器的处理资源,并且可以执行存储在存储器中的一个或多个程序指令以监测主机计算系统102、调节主机计算系统102的硬件资源、并且与外部计算系统104交互。即使当主机计算系统102关闭时,可管理性控制器116也可以由辅助电源轨(未示出)供电。因此,使得外部计算系统104能够在任何时候与可管理性控制器116建立安全连接,并且在主机计算系统102的整个生命周期中保持与可管理性控制器116的连续交互。在一些示例中,可管理性控制器116具有唯一标识符,所述唯一标识符可以在使用客户的凭证或使用客户签名第一次打开主机计算系统102时生成。在一些示例中,唯一密钥是可管理性控制器116的具有唯一的字母数字字符串的私钥。在一些示例中,唯一密钥存储在可管理性控制器116的可信平台模块(TPM)130中。TPM 130是可管理性控制器的安全存储扇区,所述安全存储扇区无法被主机计算系统102的其他硬件资源以及管理员108或任何其他用户访问。
固件引擎118可以是芯片组,其具有嵌入在芯片组中的可执行程序指令,以在启动(或重新启动)期间执行主机计算系统102的硬件资源的初始化,并向主机计算系统102的一个或多个工作负载提供运行时服务。在一些示例中,一个或多个工作负载可以是在OS上运行的应用程序软件。在一些示例中,固件引擎118可以包括统一可扩展固件接口(UEFI)或基本输入输出系统(BIOS)。在一些示例中,固件引擎118可以包括存储在固件引擎118的非易失性随机存取存储器136中的启动数据库132和清除启动数据库134。启动数据库132可以指代固件引擎118的内部文件或数据集。启动数据库132可以存储i)选定软件的受原始设备制造商(OEM)信任的授权签名和/或ii)已签名的启动信息文件的拇指指纹数据。类似地,清除启动数据库134也可以指固件引擎118的内部文件或数据集。清除启动数据库134可以存储所有公共软件的受OEM信任并且未包括在启动信息文件128中的软件(启动时间)列表中的授权签名。
外部计算系统104可以包括处理器120(第二处理器)、存储器122(第二存储器)和非易失性存储驱动器124(第二驱动器)。在一些示例中,处理器120、存储器122和非易失性存储驱动器124可以基本上类似于主机计算系统102的第一处理器110、第一存储器112和第一非易失性存储驱动器114。外部计算系统104可以经由网络106可操作地耦接到主机计算系统102的可管理性控制器116和非易失性存储驱动器114。在一些示例中,管理员108可以使用外部计算系统104中的web控制台或命令行界面(未示出)来建立与可管理性控制器116的通信。在一些其他示例中,管理员108可以使用主机计算系统102中的web控制台或命令行界面来建立与可管理性控制器116的通信。
在一个或多个示例中,管理员108可以最初设置主机计算系统102以在主机计算系统102上运行一个或多个工作负载。因此,管理员108可以基于一个或多个工作负载的要求定制(或本地构建)原始启动信息文件128(也称为启动信息文件)。在一些示例中,管理员108可以使用外部计算系统104来定制原始启动信息文件128。在一个或多个示例中,原始启动信息文件128可以包括多个参数,所述多个参数对应于授权软件(启动时间软件)的不同种类/类型以及其受原始设备制造商(OEM)信任用于启动主机计算系统102的属性。例如,所述多个参数可以包括OS的不同种类及其版本、安全软件的不同类型及其版本等。在这样的示例中,管理员108可以通过更新所述多个参数来定制原始启动信息文件128。例如,管理员108可以仅保留来自原始启动信息文件128的多个参数中的一些参数(或禁用剩余参数)。在一些示例中,管理员108可以从原始启动信息文件128中从不同种类的OS及其版本中选择具有一个特定版本的一个OS,并从不同种类的安全软件及其版本中选择具有一个特定版本的一个安全软件,以形成定制的启动信息文件128A。在一些其他示例中,管理员108可以从供应商接收定制的启动信息文件128A。定制的启动信息文件128A中的选定OS和安全软件可以具有来自其相应制造商的受OEM信任的签名。另外,管理员108可以在定制的启动信息文件128A中包括客户的签名以证明原始启动信息文件128的定制是基于客户的要求。在一些示例中,客户签名和软件的相应制造商的签名可以分别是客户和制造商的私钥(或证书)。在一些示例中,定制的启动信息文件128A可以用于运行工作负载,比如主机计算系统102上的“自动柜员机(ATM)应用程序软件”。管理员108随后可以经由网络106或通过比如插入主机计算系统102中的“闪存驱动器”(未示出)等其他可启动设备,在主机计算系统102的非易失性存储驱动器114的主分区126A中安装定制的启动信息文件128A。
在一个或多个示例中,定制的启动信息文件128A可以随后由可管理性控制器116签名以生成已签名的启动信息文件128B和/或已附加的启动信息文件128C。在这样的示例中,如本文所讨论的,已签名的启动信息文件128B或已附加的启动信息文件128C可以用于与主机计算系统102互锁。
在一些示例中,主机计算系统102的可管理性控制器116可以从主机计算系统102的第一处理器110或从外部计算系统104的第二处理器120接收定制的启动信息文件128A。换句话说,管理员108可以使用主机计算系统102或外部计算系统104来向可管理性控制器116提供定制的启动信息文件128A。例如,管理员108可以首先使用管理员108的登录凭证向可管理性控制器116进行认证。随后,管理员108可以使用主机计算系统102或外部计算系统104的web控制台或命令行界面来建立与可管理性控制器116的安全连接。在认证管理性控制器116并与其建立安全连接之后,管理员108可以发布到主机计算系统102的非易失性存储驱动器114的预定链接,以与可管理性控制器116共享定制的启动信息文件128A。在这样的示例中,可管理性控制器116可以访问预定链接以从主机计算系统102的非易失性存储驱动器114接收定制的启动信息文件128A。
在一些其他示例中,管理员108可以直接使用主机计算系统102或外部计算系统104的web控制台或命令行界面来建立与可管理性控制器116的连接。在建立与可管理性控制器116的连接之后,管理员108可以发布到主机计算系统102的非易失性存储驱动器114的预定链接,以与可管理性控制器116共享定制的启动信息文件128A。在这样的示例中,可管理性控制器116可以首先证实定制的启动信息文件128A中的客户签名。在成功证实定制的启动信息文件128A中的客户签名之后,可管理性控制器116可以从非易失性存储驱动器114接收定制的启动信息文件128A。在一个或多个示例中,可管理性控制器116可以使用客户的公钥来证实定制的启动信息文件128A,并且如果定制的启动信息文件128A中的客户签名被证实,则可管理性控制器116可以访问预定链接,以从非易失性存储驱动器114接收定制的启动信息文件128A。在一些示例中,可管理性控制器116可以接收二进制文件形式的定制的启动信息文件128A。
进一步地,可管理性控制器116用唯一标识符的散列数据对定制的启动信息文件128A进行签名,以生成已签名的启动信息文件128B。例如,可管理性控制器116可以首先访问可信平台模块130以获得唯一标识符。在一些示例中,唯一标识符是可管理性控制器116的私钥。在一个或多个示例中,私钥可以包括专用于可管理性控制器116的字母数字字符串。管理员108或用户或主机计算系统102的任何其他硬件资源可能均无法访问私钥。随后,可管理性控制器116可以使用比如安全散列算法(SHA)-256、SHA-512等算法来从唯一标识符生成散列数据。在一些示例中,散列数据可以是字符串。随后,可管理性控制器116可以使用散列数据来对定制的启动信息文件128A进行签名并生成已签名的启动信息文件128B。在一个或多个示例中,对定制的启动信息文件128A进行签名可以意指在由可管理性控制器116接收的定制的启动信息文件128A中附加唯一标识符的散列数据,以生成已签名的启动信息文件128B。在一些示例中,已签名的启动信息文件128B可以通过公共密钥或标识符来辨识。在一个或多个示例中,公共密钥或标识符可以是已知的拇指指纹数据128D,其可以包括单词、数字、字母、符号或它们的任何组合。
可管理性控制器116随后可以将已签名的启动信息文件128B传送到第一处理器110或第二处理器120。例如,可管理性控制器116可以向管理员108提供硬链接以用于下载已签名的启动信息文件128B。在一些示例中,第一处理器110可以将已签名的启动信息文件128B临时下载到非易失性存储驱动器114中。在一些其他示例中,第二处理器120可以将已签名的启动信息文件128B临时下载到非易失性存储驱动器124中。在这样的示例中,如果需要,管理员108可以随后将已签名的启动信息文件128B传送到安全驱动器(未示出)以供将来使用。在一个或多个示例中,在成功下载已签名的启动信息文件128B之后,可管理性控制器116可以从第一处理器110或第二处理器120接收确认。在这样的示例中,可管理性控制器116随后可以使用比如集成电路间(I2C)协议、系统管理总线(SMBus)等行业标准通信协议来建立与主机计算系统102的固件引擎118的通信。在与固件引擎118建立通信之后,可管理性控制器116可以访问启动数据库132并将启动数据库132中预先存在的启动数据清除到清除启动数据库134中。在一些示例中,从启动数据库132清除预先存在的数据包括将所有软件(启动时间软件)的受OEM信任的公共授权签名清除到清除启动数据库134中。随后,可管理性控制器116可以用已签名的启动信息文件128B的拇指指纹数据128D来更新启动数据库132。在一些示例中,拇指指纹数据128D可以具有已签名的启动信息文件128B的公共密钥或标识符以识别或辨识已签名的启动信息文件128B。
随后,可管理性控制器116可以通过使用预定链接来访问主机计算系统102的非易失性存储驱动器114。可管理性控制器116然后可以通过使用唯一标识符的散列数据对定制的启动信息文件128A进行附加来生成已附加的启动信息文件128C,以更新存储在非易失性存储器114中的定制的启动信息文件128A。在用唯一标识符的散列数据更新定制的启动信息文件128B或对其进行附加之后,所述定制的启动信息文件128B可能不再存在。在一个或多个示例中,已附加的启动信息文件128C和已签名的启动信息文件128B是类似文件。换句话说,已附加的启动信息文件128C和已签名的启动信息文件128B可以具有相同的公共密钥或标识符,并且可以在这两个文件128B、128C的整个主体中具有相同的内容以便识别或辨识文件。例如,如果已签名的启动信息文件的公共密钥为“1234ABCD”,则已附加的启动信息文件也可以具有相同的公共密钥,例如“1234ABCD”。进一步地,存储在启动数据库132中的拇指指纹数据128D也可以具有相同的公共密钥,例如“1234ABCD”。
在一些示例中,如果主机计算系统102的非易失性存储114损坏或在非易失性存储114的主分区126A中具有坏的可启动扇区。存储在非易失性存储驱动器114中的已附加的启动信息文件128C可能变得不可访问以用于启动主机计算系统102。在这样的示例中,管理员108可以用新的非易失性存储驱动器(未示出)替换非易失性存储驱动器114,并将已签名的启动信息文件128B(其存储在安全驱动器中)存储到新的非易失性存储驱动器的主分区中。因此,存储在新的非易失性存储驱动器中的已签名的启动信息文件128B也可以具有与已附加的启动信息文件128C的公共密钥相同的公共密钥。因此,允许固件引擎118使用拇指指纹数据128D识别存储在新的非易失性存储驱动器中的已签名的启动信息文件128B,并且允许主机计算系统102使用具有已签名的启动信息文件128B的新的(替换的)非易失性存储盘来进行启动。
在一些其他示例中,有时可能必须更新原始启动信息文件128或定制的启动信息文件128A,这取决于工作负载的要求。例如,可能必须更新安全软件的版本以解决在原始启动信息文件128或定制的启动信息文件128A或已签名的启动信息文件128B中列出的安全软件中识别出的一些新的漏洞。在这样的示例中,管理员108可以更新定制的启动信息文件128A或原始启动信息文件128中的如上文所讨论的多个参数,以生成新的定制的启动信息文件。进一步地,管理员108可以指示第一处理器110或第二处理器120重复本文讨论的用于对新的定制的启动信息文件进行签名的步骤。例如,可管理性控制器116可以在接收到新的启动信息文件时生成新的已签名的启动信息文件。随后,可管理性控制器116可以将新签名的启动信息文件传送到第一处理器110或第二处理器120,以便下载新签名的启动信息文件。在这样的示例中,在第一处理器110或第二处理器120成功下载新签名的启动信息文件之后,可管理性控制器116可以在固件引擎118的启动数据库132中记录与新签名的启动信息文件相对应的新拇指指纹数据。进一步地,可管理性控制器116可以将现有的拇指指纹数据清除到清除启动数据库134中。随后,可管理性控制器116可以用唯一标识符的散列数据对非易失性存储114中的原始启动信息文件128进行附加以生成新的已附加的启动信息文件。在这样的示例中,原来由可管理性控制器116签名的已签名的启动信息文件128B或已附加的启动信息文件128C可以被新签名的启动信息文件或新已附加的启动信息文件替换。
在一个或多个示例中,可管理性控制器116和固件引擎118可能能够将已附加的启动信息文件128C(或已签名的启动信息文件128B)与主机计算系统102互锁。因为存储在主机计算系统102的非易失性存储驱动器114中的已附加的启动信息文件128C具有可管理性控制器116的唯一标识符的散列数据。而主机计算系统102的固件引擎118中的启动数据库132具有已附加的启动信息文件128C的拇指指纹数据128D。因此,可管理性控制器116和固件引擎118可能能够将主机计算系统102与已附加的启动信息文件128C互锁,以便启动主机计算系统102,如下文所讨论的。
在一些示例中,在随后启动/重新开启主机计算系统102之后,固件引擎118最初可以对主机计算系统102的硬件资源执行开机自检(POST)。当POST过程成功完成时,固件引擎118可以查找主机计算系统102的启动信息文件128,以便提供控制以加载主机计算系统102的操作系统(OS)。例如,固件引擎118可以检查启动数据库132以确定与主机计算系统102绑定/互锁的启动信息文件128。在这样的示例中,固件引擎118可以获得存储在启动数据库132中的拇指指纹数据128D,以在主机计算系统102的一个或多个可启动存储介质中定位已签名的启动信息文件128B或已附加的启动信息文件128C。在这样的示例中,固件引擎118可以首先在比如光盘(CD)或通用串行总线(USB)棒等可移除存储介质中(根据启动序列)并随后在比如非易失性存储驱动器114等固定存储介质中,搜索具有拇指指纹数据128D的启动信息文件128。如本文所讨论的,固件引擎118可以使用拇指指纹数据128D中详述的公共密钥或标识符来搜索可移除或固定存储介质,以定位已附加的启动信息文件128C。相应地,固件引擎118可以发现存储在非易失性存储驱动器114中的主分区126A中的已附加的启动信息文件128C具有拇指指纹数据128D的公共密钥或标识符。
在一些示例中,如果固件引擎118无法定位具有公共密钥或标识符的已附加的启动信息文件128C,则固件引擎118会向管理员108返回错误消息。在一些示例中,如果固件引擎118能够定位具有公共密钥或标识符的已附加的启动信息文件128C,则固件引擎118可以访问可管理性控制器116的公钥以证实签名(即,在已附加的启动信息文件128C中附加的唯一标识符的散列数据)。在一些示例中,在成功证实签名之后,固件引擎118可以向主机计算系统102的处理器110提供控制以允许处理器110使用已附加的启动信息文件128C来加载主机计算系统102的OS。
图2是可管理性控制器216的框图,所述可管理性控制器包括处理资源250和存储可执行程序指令的机器可读介质252。在本文中应注意,图2中提及的可管理性控制器216可以与图1中描述的可管理性控制器116相同或类似。在一些示例中,处理资源250可操作地耦接到机器可读介质252。处理资源250可以是物理处理器。在一些示例中,物理处理器可以是适合于执行关于图1描述的功能性的微处理器。在一些示例中,机器可读介质252是非暂态的并且可替代地被称为非暂态机器可读介质。处理资源250执行一个或多个程序指令以执行图1中描述的一个或多个功能。
处理资源250可以执行程序指令以从计算设备的处理器接收主机计算系统的启动信息文件。在一些示例中,启动信息文件是启动加载程序文件或操作系统内核文件中的至少一者。在一个或多个示例中,启动信息文件是定制的启动信息文件,并且计算设备是主机计算系统或外部计算系统。在一些示例中,接收启动信息文件可以包括执行程序指令以在计算设备的处理器与可管理性控制器的处理资源250之间建立安全连接,并发布到主机计算系统的非易失性存储驱动器的预定链接以与可管理性控制器共享启动信息文件。进一步地,接收启动信息文件可以包括执行程序指令以访问预定链接,从而从主机计算系统的非易失性存储驱动器接收启动信息文件。
在一些其他示例中,接收启动信息文件可以包括执行程序指令以在处理资源250与计算设备的处理器之间建立连接,并发布到主机计算系统的非易失性存储驱动器的预定链接以与可管理性控制器共享启动信息文件。进一步地,接收启动信息文件可以包括:执行程序指令以访问预定链接,从而证实启动信息文件中的客户签名,并在成功证实启动信息文件中的客户签名之后,从主机计算系统的非易失性存储驱动器接收启动信息文件。
进一步地,处理资源250随后可以执行一个或多个程序指令以用唯一标识符的散列数据对启动信息文件进行签名,并生成已签名的启动信息文件。在一些示例中,唯一标识符可以是与可管理性控制器相对应的存储在可管理性控制器的可信平台模块中的私钥。可以使用比如安全散列算法(SHA)-256、SHA-512等算法对唯一标识符进行散列以生成散列数据。
处理资源250可以进一步执行一个或多个程序指令以将已签名的启动信息文件传送到计算设备的处理器。在一些示例中,可管理性控制器可以向处理器提供硬链接以用于下载已签名的启动信息文件。
进一步地,处理资源250可以执行一个或多个程序指令以在响应于处理器成功下载已签名的启动信息文件时,用已签名的启动信息文件的拇指指纹数据更新存储在主机计算系统的固件引擎的非易失性随机存取存储器中的启动数据库,以将主机计算系统与已签名的启动信息文件互锁。在一些示例中,拇指指纹数据可以具有已签名的启动信息文件的公共密钥或标识符,以便识别或辨识已签名的启动信息文件。
图3是描绘了处理资源350和机器可读介质352的框图300,所述机器可读介质编码有示例指令,这些示例指令可由可管理性控制器执行以对启动信息文件进行签名并将其与主机计算系统互锁。在本文中应注意,图3中提及的可管理性控制器可以分别与图1至图2中描述的可管理性控制器116、216相同或类似。机器可读介质352是非暂态的并且可替代地被称为非暂态机器可读介质。在一些示例中,机器可读介质352可以由处理资源350访问。在一些示例中,机器可读介质352存储与,如图1至图2中所讨论的可管理性控制器的功能性相对应的程序指令。机器可读介质352可以分别编码有示例第一指令302、第二指令304、第三指令306和第四指令308。
第一指令302在由处理资源350执行时可以实施以下方面:从计算设备的处理器接收主机计算系统的启动信息文件,其中,处理器与可管理性控制器分开。在一些示例中,启动信息文件是启动加载程序文件或操作系统内核文件中的至少一者。类似地,启动信息文件可以是具有被配置用于在主机计算系统中运行一个或多个工作负载的多个参数的定制的启动信息文件。接收主机计算系统的启动信息文件的步骤在图1中进行了详细描述。
第二指令304在由处理资源350执行时可以实施以下方面:用唯一标识符的散列数据对启动信息文件进行签名,以生成已签名的启动信息文件。在一些示例中,唯一标识符可以是与可管理性控制器相对应的存储在可管理性控制器的可信平台模块中的私钥。可以使用比如安全散列算法(SHA)-256、SHA-512等算法对唯一标识符进行散列以生成散列数据。对启动信息文件进行签名的步骤在图1中进行了详细描述。
第三指令306在由处理资源350执行时可以实施以下方面:将已签名的启动信息文件传送到处理器。在一些示例中,可管理性控制器可以向处理器提供硬链接以用于下载已签名的启动信息文件。传送已签名的启动信息文件的步骤在图1中进行了详细描述。
第四指令308在由处理资源350执行时可以实施以下方面:在响应于处理器成功下载已签名的启动信息文件时,用已签名的启动信息文件的拇指指纹数据更新存储在主机计算系统的固件引擎的非易失性随机存取存储器中的启动数据库,以将主机计算系统与已签名的启动信息文件互锁。在一些示例中,拇指指纹数据可以具有已签名的启动信息文件的公共密钥或标识符,以便识别或辨识已签名的启动信息文件。更新启动数据库的步骤在图1中进行了详细描述。
在一些示例中,机器可读介质352可以编码有示例第五指令和第六指令。例如,第五指令在由处理资源350执行时可以实施以下方面:通过使用唯一标识符的散列数据对存储在主机计算系统的非易失性存储驱动器中的启动信息文件进行附加来生成已附加的启动信息文件。在一个或多个示例中,已附加的启动信息文件和已签名的启动信息文件是类似文件。对主机计算系统的非易失性存储驱动器中的启动数据库进行附加的步骤在图1中进行了详细描述。类似地,第六指令在由处理资源350执行时可以实施以下方面:在从处理器接收到更新的启动信息文件时,重复对启动信息文件进行签名的第二指令、传送已签名的启动信息文件的第三指令、更新固件引擎中的启动数据库的第四指令、以及对非易失性存储器中的启动信息文件进行附加的第五指令。重复第二指令、第三指令、第四指令、第五指令的步骤在图1中进行了详细描述。
图4是描绘根据本公开的实施例的对启动信息文件进行签名并将其与主机计算系统互锁的方法400的流程图。在本文中应注意,方法400是结合图1进行描述的。在一个或多个示例中,本文在方法400中讨论的多个步骤由可管理性控制器执行。
方法400从框402开始并继续到框404。在框404处,方法400包括通过使用计算设备的处理器来定制主机计算系统的启动信息文件,如图1所述。在一个或多个示例中,计算设备的管理员可以更新具有被配置用于在主机计算系统中运行一个或多个工作负载的多个参数的启动信息文件(也被称为原始启动信息文件)。例如,管理员可以仅保留来自原始启动信息文件的多个参数(或禁用剩余参数)中的一些参数,以便对原始启动信息文件进行定制并生成定制的启动信息文件。在一些示例中,原始启动信息文件是启动加载程序文件或操作系统内核文件中的至少一者,并且计算设备是主机计算系统或外部计算系统。方法400继续到框406。
在框406处,方法400包括从计算设备的处理器接收主机计算系统的定制的启动信息文件,如图1所述。在一个或多个示例中,主机计算系统的可管理性控制器可以被配置为从计算设备的处理器接收定制的启动信息文件。在一些示例中,接收定制的启动信息文件可以包括处理器进行以下操作:i)建立与可管理性控制器的安全连接,以及ii)发布到主机计算系统的非易失性存储驱动器的预定链接,以与可管理性控制器共享启动信息文件。进一步地,接收定制的启动信息文件可以包括可管理性控制器进行一下操作:iii)访问预定链接以从主机计算系统的非易失性存储驱动器接收启动信息文件。
在一些其他示例中,接收启动信息文件可以包括处理器进行以下操作:i)建立与可管理性控制器的安全连接,以及ii)发布到主机计算系统的非易失性存储驱动器的预定链接,以与可管理性控制器共享启动信息文件。进一步地,接收启动信息文件可以包括可管理性控制器进行以下操作:iii)访问预定链接以证实启动信息文件中的客户签名,并在成功证实启动信息文件中的客户签名之后,从主机计算系统的非易失性存储驱动器接收启动信息文件。方法400继续到框408。
在框408处,方法400包括用唯一标识符的散列数据对定制的启动信息文件进行签名,以生成已签名的启动信息文件,如图1所述。在一个或多个示例中,主机计算系统的可管理性控制器可以用散列数据对定制的启动信息文件进行签名。在一些示例中,唯一标识符可以是与可管理性控制器相对应的存储在可管理性控制器的可信平台模块中的私钥。使用比如安全散列算法(SHA)-256、SHA-512等算法对唯一标识符进行散列以生成散列数据。方法400继续到框410。
在框410处,方法400包括将已签名的启动信息文件传送到处理器,如图1所述。在一个或多个示例中,可管理性控制器可以传送已签名的启动信息文件以供处理器下载已签名的启动信息文件。在一些示例中,可管理性控制器可以向处理器提供硬链接以用于下载目的。方法400移至框412。
在框412处,方法400包括确定已签名的启动信息文件是否被计算设备的处理器下载。在一个或多个示例中,可管理性控制器可以从处理器接收关于从处理器进行对启动信息文件的下载的状态的确认。因此,在框412处,如果可管理性控制器确定处理器能够下载已签名的启动信息文件,即在框412处为“是”,则方法400移至框414。
在框414处,方法400包括从存储在主机计算系统中的固件引擎的非易失性随机存取存储器中的启动数据库中清除预先存在的启动数据,如图1中所讨论的。在一些示例中,从启动数据库中清除预先存在的数据包括将所有软件(启动时间软件)的受OEM信任的公共授权签名清除到存储在固件引擎的非易失性随机存取存储器中的清除启动数据库中。方法400继续到框416。
在框416处,方法400包括用已签名的启动信息文件的拇指指纹数据更新固件引擎中的启动数据库,以将主机计算系统与已签名的启动信息文件互锁。在一个或多个示例中,可管理性控制器可以更新固件引擎中的启动数据库。在一些示例中,拇指指纹数据可以具有已签名的启动信息文件的公共密钥或标识符,以便在随后启动主机计算系统期间由固件引擎识别或辨识已签名的启动信息文件。方法400继续到框418。
在框418处,方法400包括通过使用唯一标识符的散列数据对存储在主机计算系统的非易失性存储驱动器中的启动信息文件进行附加来生成已附加的启动信息文件。在一个或多个示例中,可管理性控制器可以对存储在非易失性存储驱动器中的定制的启动信息文件进行附加。在一个或多个示例中,已附加的启动信息文件和已签名的启动信息文件是类似文件。例如,已附加的启动信息文件和已签名的启动信息文件可以具有相同的公共密钥或标识符,并且可以在这两个文件的整个主体中具有相同的内容。方法400在框420处结束。
返回参考框412处的另一个功能,如果可管理性控制器确定计算设备的处理器没有下载已签名的启动信息文件,即在框412处为“否”,则方法400在框420处结束。
图5是描绘根据本公开的实施例的启动主机计算系统的方法500的流程图。在本文中应注意,方法500是结合图1进行描述的。在一个或多个示例中,本文在方法500中讨论的多个步骤由固件引擎执行。
方法500从框502开始并继续到框504。在框504处,方法500包括访问存储在固件引擎的非易失性随机存取存储器中的启动数据库以获得已签名的启动信息文件的拇指指纹数据。在一些示例中,拇指指纹数据可以指表示已签名的启动信息文件或已附加的启动信息文件的公共密钥或标识符。方法500移至框506。
在框506处,方法500包括确定主机计算系统是否具有与拇指指纹数据匹配的启动信息文件。例如,方法500包括搜索主机计算系统的非易失性存储驱动器中的启动扇区,以找到具有与已签名的启动信息文件的拇指指纹数据匹配的拇指指纹数据的启动信息文件。因此,在框506处,如果固件引擎发现已附加的启动信息文件具有与已签名的启动信息文件的拇指指纹数据匹配的拇指指纹数据,即,在框506处为“是”,则方法500移至框508。
在框508处,方法500进一步包括基于存储在启动数据库中的拇指指纹数据访问存储在主机计算系统的非易失性存储驱动器的启动扇区中的已附加的启动信息文件,以获得附加在已附加的启动信息文件中的唯一标识符的散列数据。在一些示例中,唯一标识符的散列数据可能附加加在已附加的启动信息文件的末尾。方法500移至框510。
在框510处,方法500包括通过使用可管理性控制器的公钥来证实已附加的启动信息文件中的唯一标识符的散列数据。在一些示例中,固件引擎可以得到可管理性控制器的存储在固件引擎的非易失性随机存取存储器中的公钥。在这样的示例中,固件引擎可以使用公钥解密散列数据以确定从已附加的启动信息文件获得的散列数据的有效性。因此,在框510处,如果固件引擎发现从已附加的启动信息文件获得的散列数据具有有效签名,即,在框510处为“是”,则方法500移至框512。
在框512处,方法500包括允许主机计算系统的处理器使用已附加的启动信息文件来加载主机计算系统的操作系统。换句话说,在成功证实从已附加的启动信息文件获得的散列数据之后,固件引擎可以向启动信息文件提供控制以允许启动主机计算系统或加载主机计算系统的操作系统。方法500在框514处结束。
返回参考框506处的另一个功能,如果固件引擎确定主机计算系统的非易失性存储驱动器中的启动扇区不包括与已签名的启动信息文件的拇指指纹数据匹配的启动信息文件,即,在框506处为“否”,则方法500在框514处结束。换句话说,如果固件引擎无法定位/找到具有与已签名的启动信息文件的公共密钥或标识符的启动信息文件,则固件引擎会向主机计算系统的管理员返回错误消息。
类似地,返回参考框510处的另一个功能,如果固件引擎确定从已附加的启动信息文件获得的散列数据不具有对主机计算系统的可管理性控制器的有效签名,即,在框510处为“否”,则方法500在框514处结束。换句话说,如果固件引擎无法证实签名,则固件引擎会向主机计算系统的管理员返回错误消息。
可以实施如本文所述的示例中所示的各种特征以避免有意或无意的磁盘替换解锁,此时意外签名或过期且易受攻击的启动信息文件可能会被引入到主机计算系统而中断启动过程。主机计算系统可能仅用主机计算系统的可管理性控制器的唯一标识符对启动信息文件进行签名和安装。
在前述描述中,阐述了许多细节以提供对本文中公开的主题的理解。然而,可以在没有这些细节中的一些或全部细节的情况下实践实施方式。其他实施方式可以包括上文所讨论的细节的修改、组合和变化。所附权利要求旨在覆盖这样的修改和变化。

Claims (20)

1.一种方法,包括:
由主机计算系统的可管理性控制器从计算设备的处理器接收所述主机计算系统的启动信息文件;
由所述可管理性控制器用唯一标识符的散列数据对所述启动信息文件进行签名,以生成已签名的启动信息文件;
由所述可管理性控制器将所述已签名的启动信息文件传送到所述处理器;以及
响应于所述处理器成功下载所述已签名的启动信息文件,由所述可管理性控制器用所述已签名的启动信息文件的拇指指纹数据更新存储在所述主机计算系统的固件引擎的非易失性随机存取存储器中的启动数据库,以将所述主机计算系统与所述已签名的启动信息文件互锁。
2.如权利要求1所述的方法,进一步包括由所述可管理性控制器通过使用所述唯一标识符的散列数据对存储在所述主机计算系统的非易失性存储驱动器中的所述启动信息文件进行附加来生成已附加的启动信息文件,其中,所述已附加的启动信息文件和所述已签名的启动信息文件是类似文件。
3.如权利要求2所述的方法,进一步包括,在从所述处理器接收到更新的启动信息文件后,重复对所述启动信息文件进行签名的步骤、传送所述已签名的启动信息文件的步骤、更新所述固件引擎中的所述启动数据库的步骤、以及由所述可管理性控制器对存储在所述非易失性存储驱动器中的所述启动信息文件进行附加的步骤。
4.如权利要求2所述的方法,进一步包括在随后启动所述主机计算系统时:
由所述固件引擎基于存储在所述启动数据库中的所述拇指指纹数据访问存储在所述主机计算系统的非易失性存储驱动器中的所述已附加的启动信息文件;
由所述固件引擎通过使用所述可管理性控制器的公钥来证实所述已附加的启动信息文件中的所述唯一标识符的散列数据;以及
响应于证实成功,由所述固件引擎允许所述处理器使用所述启动信息文件来加载所述主机计算系统的操作系统。
5.如权利要求1所述的方法,其中,接收所述启动信息文件包括:
由所述处理器建立与所述可管理性控制器的安全连接;
由所述处理器发布到所述主机计算系统的非易失性存储驱动器的预定链接,以与所述可管理性控制器共享所述启动信息文件;以及
由所述可管理性控制器访问所述预定链接以从所述主机计算系统的非易失性存储驱动器接收所述启动信息文件。
6.如权利要求1所述的方法,其中,接收所述启动信息文件包括:
由所述处理器建立与所述可管理性控制器的连接;
由所述处理器发布到所述主机计算系统的非易失性存储驱动器的预定链接,以与所述可管理性控制器共享所述启动信息文件;以及
由所述可管理性控制器访问所述预定链接以证实所述启动信息文件中的客户签名,并在成功证实所述启动信息文件中的所述客户签名之后,从所述主机计算系统的非易失性存储驱动器接收所述启动信息文件。
7.如权利要求1所述的方法,其中,所述启动信息文件是具有被配置用于在所述主机计算系统中运行一个或多个工作负载的多个参数的定制的启动信息文件。
8.如权利要求1所述的方法,其中,所述启动信息文件包括所述主机计算系统的启动加载程序文件或操作系统(OS)内核文件中的至少一者。
9.如权利要求1所述的方法,其中,所述唯一标识符是与所述可管理性控制器相对应的存储在所述可管理性控制器的可信平台模块中的私钥。
10.如权利要求1所述的方法,进一步包括响应于所述处理器成功下载所述已签名的启动信息文件,由所述可管理性控制器在用所述已签名的启动信息文件的拇指指纹数据更新所述启动数据库之前,将所述启动数据库中的预先存在的启动数据清除到存储在所述固件引擎的非易失性随机存取存储器中的清除启动数据库中。
11.一种主机计算系统的可管理性控制器,所述可管理性控制器包括:
机器可读介质,所述机器可读介质存储程序指令;以及
可操作地耦接到所述机器可读介质的处理资源,其中,所述处理资源执行所述程序指令以进行以下操作:
从计算设备的处理器接收所述主机计算系统的启动信息文件;
用唯一标识符的散列数据对所述启动信息文件进行签名,以生成已签名的启动信息文件;
将所述已签名的启动信息文件传送到所述处理器;以及
响应于所述处理器成功下载所述已签名的启动信息文件,用所述已签名的启动信息文件的拇指指纹数据更新存储在所述主机计算系统的固件引擎的非易失性随机存取存储器中的启动数据库,以将所述主机计算系统与所述已签名的启动信息文件互锁。
12.如权利要求11所述的可管理性控制器,其中,所述处理资源进一步执行所述程序指令以通过使用所述唯一标识符的散列数据对存储在所述主机计算系统的非易失性存储驱动器中的所述启动信息文件进行附加来生成已附加的启动信息文件,其中,所述已附加的启动信息文件和所述已签名的启动信息文件是类似文件。
13.如权利要求12所述的可管理性控制器,其中,所述处理资源进一步执行所述程序指令以在从所述处理器接收到更新的启动信息文件后,重复对所述启动信息文件进行签名的步骤、传送所述已签名的启动信息文件的步骤、更新所述固件引擎中的所述启动数据库的步骤、以及由所述可管理性控制器对存储在所述非易失性存储驱动器中的所述启动信息文件进行附加的步骤。
14.如权利要求11所述的可管理性控制器,其中,所述启动信息文件是具有被配置用于在所述主机计算系统中运行一个或多个工作负载的多个参数的定制的启动信息文件。
15.如权利要求11所述的可管理性控制器,其中,所述启动信息文件包括所述主机计算系统的启动加载程序文件或操作系统(OS)内核文件中的至少一者。
16.如权利要求11所述的可管理性控制器,其中,所述唯一标识符是与所述可管理性控制器相对应的存储在所述可管理性控制器的可信平台模块中的私钥。
17.如权利要求11所述的可管理性控制器,进一步包括:响应于所述处理器成功下载所述已签名的启动信息文件,由所述可管理性控制器在用所述已签名的启动信息文件的拇指指纹数据更新所述启动数据库之前,将所述启动数据库中的预先存在的启动数据清除到存储在所述固件引擎的非易失性随机存取存储器中的清除启动数据库中。
18.一种非暂态机器可读介质,存储有可由主机计算系统的可管理性控制器执行的指令,其中,指令包括:
第一指令,用于从计算设备的处理器接收所述主机计算系统的启动信息文件,其中,所述处理器与所述可管理性控制器分开;
第二指令,用于用唯一标识符的散列数据对所述启动信息文件进行签名,以生成已签名的启动信息文件;
第三指令,用于将所述已签名的启动信息文件传送到所述处理器;以及
第四指令,用于响应于所述处理器成功下载所述已签名的启动信息文件,而用所述已签名的启动信息文件的拇指指纹数据更新存储在所述主机计算系统的固件引擎的非易失性随机存取存储器中的启动数据库,以将所述主机计算系统与所述已签名的启动信息文件互锁。
19.如权利要求18所述的非暂态机器可读介质,其中,所述指令进一步包括第五指令,所述第五指令用于通过使用所述唯一标识符的散列数据对存储在所述主机计算系统的非易失性存储驱动器中的所述启动信息文件进行附加来生成已附加的启动信息文件,其中,所述已附加的启动信息文件和所述已签名的启动信息文件是类似文件。
20.如权利要求19所述的非暂态机器可读介质,其中,所述指令进一步包括第六指令,所述第六指令用于在从所述处理器接收到更新的启动信息文件后,重复用于对所述启动信息文件进行签名的所述第二指令、用于传送所述启动信息文件的所述第三指令、用于更新所述启动信息文件的所述第四指令、以及用于对所述非易失性存储驱动器中的所述启动信息文件进行附加的所述第五指令。
CN202111243120.0A 2021-04-13 2021-10-25 签名启动信息文件并与主机计算系统互锁的系统和方法 Pending CN115203678A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/228,917 US11907375B2 (en) 2021-04-13 2021-04-13 System and method for signing and interlocking a boot information file to a host computing system
US17/228,917 2021-04-13

Publications (1)

Publication Number Publication Date
CN115203678A true CN115203678A (zh) 2022-10-18

Family

ID=83361971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111243120.0A Pending CN115203678A (zh) 2021-04-13 2021-10-25 签名启动信息文件并与主机计算系统互锁的系统和方法

Country Status (3)

Country Link
US (1) US11907375B2 (zh)
CN (1) CN115203678A (zh)
DE (1) DE102021127242A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989305B2 (en) * 2022-07-21 2024-05-21 Dell Products L.P. Automated update of a customized secure boot policy

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722665A (zh) * 2012-05-22 2012-10-10 中国科学院计算技术研究所 基于tpm/vtpm的可信程序列表生成方法及系统
CN108027856A (zh) * 2015-05-05 2018-05-11 迈克菲有限公司 使用可信平台模块来建立攻击信息的实时指示器
US20190163911A1 (en) * 2017-11-30 2019-05-30 Forcepoint Llc Secure boot chain for live boot systems
US20200134185A1 (en) * 2018-10-26 2020-04-30 Dell Products L.P. Method to securely allow a customer to install and boot their own firmware, without compromising secure boot

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082440B2 (en) 2008-09-29 2011-12-20 Intel Corporation Managed data region for server management
CN102750471B (zh) 2012-05-22 2015-02-11 中国科学院计算技术研究所 基于tpm 的本地验证式启动方法
US9779241B2 (en) 2013-09-25 2017-10-03 Cisco Technology, Inc. Synchronization of UEFI secure boot variables on a managed server
MY177609A (en) 2013-12-04 2020-09-22 Mimos Berhad A system and method to secure virtual machine images in cloud computing
US20150193620A1 (en) * 2014-01-07 2015-07-09 Dell Products, Lp System and Method for Managing UEFI Secure Boot Certificates
WO2016033539A1 (en) * 2014-08-29 2016-03-03 Memory Technologies Llc Control for authenticated accesses to a memory device
US10204241B2 (en) * 2017-06-30 2019-02-12 Microsoft Technology Licensing, Llc Theft and tamper resistant data protection
US20190236279A1 (en) * 2018-01-31 2019-08-01 Hewlett Packard Enterprise Development Lp Perform security action based on inventory comparison
CN111989651A (zh) 2018-04-17 2020-11-24 三星电子株式会社 在多核系统中管理内核服务的方法和装置
US10984107B2 (en) * 2018-04-24 2021-04-20 Mellanox Technologies, Ltd. Secure boot
US10726133B1 (en) * 2019-02-04 2020-07-28 Dell Products L.P. Securely loading UEFI images at runtime
US10997299B2 (en) * 2019-03-12 2021-05-04 Dell Products L.P. System and method of authenticating and restoring firmware of complex logic devices
US10747875B1 (en) 2020-03-19 2020-08-18 Cyberark Software Ltd. Customizing operating system kernels with secure kernel modules
US11907372B2 (en) * 2020-07-13 2024-02-20 Dell Products L.P. Systems and methods for modifying system pre-boot interface configuration based on usage characteristics of an individual information handling system
US11599378B2 (en) * 2020-12-09 2023-03-07 Dell Products L.P. Data encryption key management system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722665A (zh) * 2012-05-22 2012-10-10 中国科学院计算技术研究所 基于tpm/vtpm的可信程序列表生成方法及系统
CN108027856A (zh) * 2015-05-05 2018-05-11 迈克菲有限公司 使用可信平台模块来建立攻击信息的实时指示器
US20190163911A1 (en) * 2017-11-30 2019-05-30 Forcepoint Llc Secure boot chain for live boot systems
US20200134185A1 (en) * 2018-10-26 2020-04-30 Dell Products L.P. Method to securely allow a customer to install and boot their own firmware, without compromising secure boot

Also Published As

Publication number Publication date
US11907375B2 (en) 2024-02-20
DE102021127242A1 (de) 2022-10-13
US20220327215A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
EP1975836B1 (en) Server active management technology (AMT) assisted secure boot
US8892858B2 (en) Methods and apparatus for trusted boot optimization
EP3522059B1 (en) Perform security action based on inventory comparison
US20180075242A1 (en) Customer-Owned Trust of Device Firmware
EP2668566B1 (en) Authenticate a hypervisor with encoded information
CN107408172B (zh) 从用户信任的设备安全地引导计算机
US11030347B2 (en) Protect computing device using hash based on power event
US11106798B2 (en) Automatically replacing versions of a key database for secure boots
WO2007138442A1 (en) A methhod of patching applications on small resource-contrained secure devices.
KR20110050488A (ko) 티켓 인증 보안 설치 및 부트
CN110874467B (zh) 信息处理方法、装置、系统以及处理器、存储介质
US9690944B2 (en) System and method updating disk encryption software and performing pre-boot compatibility verification
US11907375B2 (en) System and method for signing and interlocking a boot information file to a host computing system
Bashun et al. Too young to be secure: Analysis of UEFI threats and vulnerabilities
US11989305B2 (en) Automated update of a customized secure boot policy
TW202318196A (zh) 韌體映像檢查系統、韌體映像檢查方法及電腦系統
US10922415B2 (en) Method and system for fail-safe booting
US20240070329A1 (en) Applying trusted backup configuration to a node
US11797682B2 (en) Pre-OS resiliency
KR102369874B1 (ko) 무결성 검증 대상 디바이스에 대한 os 및 무결성 정보의 통합 업데이트 방법 및 원격 검증 시스템, os 배포 서버 및 무결성 검증 대상 디바이스
US20230297682A1 (en) Computing device quarantine action system
US20240028734A1 (en) Automated update of a customized secure boot policy
CN111782230A (zh) 程序安装控制方法、装置和电子设备

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