CN113614723A - 更新信号 - Google Patents

更新信号 Download PDF

Info

Publication number
CN113614723A
CN113614723A CN201980095085.7A CN201980095085A CN113614723A CN 113614723 A CN113614723 A CN 113614723A CN 201980095085 A CN201980095085 A CN 201980095085A CN 113614723 A CN113614723 A CN 113614723A
Authority
CN
China
Prior art keywords
computing device
firmware
trust status
update
controller
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
CN201980095085.7A
Other languages
English (en)
Inventor
J·K·让索内
W·Z·刘
S·巴拉拉曼
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 Development Co LP
Original Assignee
Hewlett Packard Development Co 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 Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN113614723A publication Critical patent/CN113614723A/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/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/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
    • 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/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

第一计算设备的示例可以包括固件、控制器和处理器。处理器可能要生成要发送到控制器的指示第一计算设备的固件正在操作受信任环境的信任状态消息,并利用该固件来验证受信任环境内的更新。控制器可能要响应于接收到信任状态消息而向第二计算设备断言信任状态信号,其指示第一计算设备的固件正在操作受信任环境。信任状态信号的断言可能要使得第二计算设备能够安装经验证的更新。

Description

更新信号
背景技术
计算设备可以包括由处理器可执行以施行计算设备的各种功能的指令。指令可能受更新影响。指令可能是计算设备中或来自其它计算设备的恶意软件攻击的对象。在一些示例中,攻击可能在更新期间进行(perpetrate)或伪装成更新。
附图说明
图1图示了与本公开一致的利用更新信号的第一计算设备的示例。
图2图示了与本公开一致的利用更新信号的系统的示例。
图3图示了与本公开一致的利用更新信号的非暂时性机器可读存储器和处理器的示例。
图4图示了与本公开一致的利用更新信号的非暂时性机器可读存储器和处理器的示例。
具体实施方式
计算设备可以包括由处理资源可执行以施行各种功能的指令。这样的功能的示例包括计算系统的各种启动功能。指令可以包括固件指令。固件指令可以包括引导固件,诸如基本输入/输出系统(BIOS)指令。BIOS指令可以包括统一可扩展固件接口(UEFI)规范指令。
固件指令可以包括在通电时由计算设备的处理资源执行的指令。可以执行固件指令以施行计算设备的引导(booting up)操作。例如,固件指令可以标识、测试和/或初始化与计算设备相关联的硬件。固件指令可以将计算设备配置为特定状态,使得可以加载和执行诸如操作系统(OS)之类的其它指令以控制计算设备。
对用于施行计算设备的启动功能的指令(诸如固件指令)的恶意软件攻击可能引起计算设备的完整性受损,使得可能发生计算设备中的未经授权的访问和操作。受损固件指令可以包括已经损坏的指令,使得固件指令不可执行和/或在某些方面已经改变但仍可执行。例如,受损固件指令可以包括已经以可能允许恶意实体对计算设备进行不期望的远程监控和/或控制、恶意软件对与计算设备相关联的数据进行未经授权的访问和/或修改、禁用计算设备等的方式修改的固件指令。因此,可以在将指令安装在计算设备上之前施行指令的验证。
指令的验证可以包括基于密码的校验技术。例如,指令的验证可以采用使用公钥和私钥的密码加密来验证作者/分发者在指令中包括的数字签名。如本文中所使用的,公钥可以指多个实体已知的密钥,而私钥可以指单个实体或有限数量的实体已知的密钥。可以使用对应的公钥来对用私钥加密的数据解密,所述数据诸如与指令相关联的数字签名。这一底层概念可以用于数字签名生成和校验。例如,数字签名可以被解密并校验为真实的,以便将相关联的指令视为有效的。
在一些示例中,计算设备可以包括密码引擎和/或密码加速器。如这里所使用的,密码引擎和/或密码加速器可以包括嵌入在计算设备中并可用于在安装之前密码地校验指令的指令和/或硬件。例如,密码引擎和/或密码加速器可以包括专用资源,诸如专用于和/或保留用于对指令施行基于密码的验证的指令或硬件。例如,密码引擎和/或密码加速器可以包括安全密码处理器,其是用于承载我们的密码操作的专用处理器。密码引擎和/或密码加速器可以是要安装指令的计算设备的组件、嵌入在要安装指令的计算设备中和/或利用要安装指令的计算设备的资源。
然而,实行密码操作的指令和/或硬件可能给计算设备强加计算成本和/或附加的货币成本。也就是说,包含密码引擎和/或密码加速器可能增加计算设备的成本和/或降低计算能力。然而,移除在计算设备处实行密码操作的指令和/或硬件可能使计算设备容易受到攻击。例如,由于计算设备不能够验证作为更新的一部分安装的接收到的指令的真实性。
相比之下,与本公开一致的示例可以包括在没有能力施行固件指令更新的验证的情况下保护计算设备上的更新的机制。也就是说,与本公开一致的示例可以在没有密码引擎和/或密码加速器的情况下验证计算设备的固件指令更新。例如,与本公开一致的示例可以包括第一计算设备。第一计算设备可以包括固件、控制器和处理器。处理器可以是生成要发送到控制器的信任状态消息的处理器,所述信任状态消息指示第一计算设备的固件正在操作受信任环境,并利用该固件来验证受信任环境内的更新。控制器可以是响应于接收到信任状态消息而向第二计算设备断言信任状态信号的控制器,该信任状态信号指示第一计算设备的固件正在操作受信任环境,其中对信任状态信号的断言要使得第二计算设备能够安装经验证的更新。
图1图示了与本公开一致的利用更新信号的第一计算设备100的示例。第一计算设备100的所描述的组件和/或操作可以包括关于图2-4描述的所描述的组件和/或操作和/或与之互换。
第一计算设备100可以包括处理器102。处理器102可以包括执行机器可读指令以施行各种操作的处理器102。指令可以存储在诸如用于存储机器可读指令的非暂时性机器可读存储介质之类的存储器资源中。在一些示例中,机器可读指令可以存储在第一计算设备100的主板上的非易失性ROM芯片或闪速存储器芯片上。
由处理器102可执行以施行操作的机器可读指令可以包括固件指令。例如,固件可以包括基本输入/输出系统(BIOS)。固件可以包括在第一计算设备100启动时加载并且负责初始化和/或格式化计算设备100的各种硬件组件并确保它们正常运转的指令。固件可以运行引导加载程序,其引导安装在第一计算设备100上的操作系统(OS)。
在一些示例中,固件可以包括基于统一可扩展固件接口(UEFI)的固件。基于UEFI的固件可以在制造时安装在第一计算设备100上,并且其可以是当第一计算设备100通电时执行的第一指令集。基于UEFI的固件可以包括替换标准BIOS的功能性的固件。基于UEFI的固件可以检查以查看计算设备100具有什么硬件组件,初始化和/或格式化所述组件,并将它们移交给OS。
基于UEFI的固件可以包括安全引导特征。例如,基于UEFI的固件可以包括验证在第一计算设备100的引导过程期间加载的每个组件的特征。验证每个组件可以包括确保每个组件均进行数字签名和验证。以这种方式,可以确保第一计算设备100利用第一计算设备100的制造商和/或第一计算设备100的用户信任的软件引导。
可以针对基于UEFI的固件中存在的受信任证书或散列来施行对组件中的每一个的验证。例如,这些证书和/或散列可以利用密钥建立信任层次结构。例如,平台密钥(PK)可以表示信任根并且可以用于保护密钥交换密钥(KEK)数据库。供应商可能在制造期间将PK的公共部分发布到基于UEFI的固件中。然而,PK的私有部分可以留在供应商。当更新PK时,新的PK证书可以用旧的PK证书签名。KEK数据库可以包含允许修改允许的签名数据库(用于生成用于对引导加载程序和其它预引导组件签名并许可执行的代码签名证书的证书或其散列的数据库)、不允许的签名数据库(受损和/或撤销并被拒绝执行的证书或其散列的数据库)或时间戳签名数据库(包含对引导加载程序映像进行签名时利用的加时间戳的证书的数据库)的受信任证书。KEK数据库可以包含操作系统供应商的证书,并且可以受PK保护。
处理器102可以执行固件指令,以验证要应用于第一计算设备100的更新。例如,第一计算设备100的处理器102可以执行基于UEFI的固件,以便校验要应用于加载到第一计算设备100的机器可读指令(包括固件指令)的更新的数字签名。
第一计算设备100可以包括主机设备。主机设备可以包括第一计算设备100,其可以是包括多个计算设备的网络或其它系统中的计算设备,以最初接收要应用于机器可读指令的更新。例如,主机设备可以包括将向其它计算设备分发机器可读指令更新的第一计算设备100。附加地或替代地,主机设备可以包括将授权向其它计算设备分发机器可读指令更新的第一计算设备100。如此,第一计算设备100可以可通信地耦合到第二计算设备110。
第二计算设备110可以包括从第一计算设备100接收更新和/或安装更新的许可的计算设备。也就是说,第二计算设备110可以依赖于第一计算设备100来向第二计算设备110提供对用于安装在第二计算设备110处的升级的访问和/或访问升级的许可。第一计算设备100和第二计算设备110可以是计算网络的成员或节点。在示例中,第一计算设备100可以包括网络中的管理或控制节点,而第二计算设备110可以包括网络中的非管理或从属节点。
第二计算设备110可以依赖于第一计算设备100来代表第二计算设备110验证更新。也就是说,根据下面描述的示例,第二计算设备110可以依赖于第一计算设备100来校验更新的数字签名。
如上面所描述的,第一计算设备100可以包括处理器102。处理器102可以执行机器可读指令以施行各种操作。例如,处理器102可以执行固件指令。处理器102可以执行使第一计算设备100操作受信任环境的固件指令。操作受信任环境可以包括初始化通电自检(POST)和加载基于UEFI的固件以施行安全引导。当在受信任环境中操作时,可以建立信任链,并且可以在由第一计算设备100执行之前验证机器可读指令。处理器102可以通过执行第一计算设备100的固件来打开受信任窗口以在其中施行验证,从而建立信任链。在受信任环境内操作可以使得第一计算设备100能够通过校验其相应的数字签名来验证固件和/或固件升级以防止替换攻击。
处理器102可以生成信任状态消息104。如上面所描述的,信任状态消息104可以包括指示第一计算设备100的固件正在操作受信任环境的消息。也就是说,响应于第一计算设备100正在进行重置并安全引导到受信任环境中,处理器102可以生成传送第一计算设备100正在操作受信任环境的信任状态消息104。
信任状态消息104可以是要发送到第一计算设备100的控制器106的消息。信任状态消息104可以经由消息通信信道传送到控制器106。例如,控制器106可以经由共享存储器接口消息通信信道通信地耦合到处理器102。信任状态消息104可以经由处理器102和控制器106之间的共享存储器接口传送到控制器106。在一些示例中,可以通过将信任状态消息104放置在控制器106的非易失性嵌入式控制器随机存取存储器(ECRAM)中来将处理器102生成的信任状态消息104传送到控制器106。控制器106可能要接受重置之后通过共享存储器接口接收的初始消息。也就是说,尽管这样的通信信道可能被认为是不安全的,但是由于控制器106被限制为接受在第一计算设备100重置之后接收的第一信任状态消息104,通信信道可以是安全的。
控制器106可以接收信任状态消息104。信任状态消息104可以是在第一计算设备100重置之后经由通信信道接收的第一或初始消息。控制器106可以响应于接收到信任状态消息而向第二计算设备110断言信任状态信号108。信任状态信号108可以包括通过可通信连接到第二计算设备110的通用输入/输出(GPIO)管脚断言的信号。第二计算设备110通常可以位于可以是主信道的诸如USB I2C等之类的某个总线处。然而,信任状态信号108可以经由不同于第一计算设备100和第二计算设备110之间的主接口的带外(OOB)信道(诸如GPIO管脚)传送到第二计算设备110。
信任状态信号108可以包括向第二计算设备110指示处理器102正在执行第一计算设备100的固件的信号,使得第一计算设备100正在受信任环境中操作。也就是说,信任状态信号108可以包括通过GPIO管脚断言的信号,以向第二计算设备指示第一计算设备100已经施行了安全引导并且正在受信任环境中操作。当第一计算设备的固件继续在受信任环境中操作时,可以保持持续不断地和/或周期性地向第二计算设备110断言信任状态信号108。也就是说,只要第一计算设备100正在操作受信任环境,那么就保持向第二计算设备110断言向第二计算设备指示指示相同的信任状态信号。
如上面所描述的,处理器102可以在第一计算设备100处建立的受信任环境内执行固件以验证机器可读指令,诸如要应用于第一计算设备100和/或第二计算设备110的固件更新。例如,处理器102可以执行第一计算设备100的固件,以校验在第一计算设备100处接收的固件更新包的数字签名。一旦更新由第一计算设备100的固件验证,处理器102就可以发起对第一计算设备100的更新安装。一旦更新由第一计算设备100的固件验证,处理器102就可以向第二计算设备110发出验证信号。
第一计算设备100验证更新连同向第二计算设备110断言信任状态信号108可以使得第二计算设备110能够安装经验证的更新。例如,第二计算设备110可以依赖于第一计算设备100的固件的验证(向第二计算设备110发信号),协同指示验证是在第一计算设备100处的受信任环境内施行的信任状态信号108的断言。因此,一旦由第一计算设备100的固件验证,只要在安装期间控制器106向第二计算设备110断言信任状态信号108,就可以在第一计算设备100处和第二计算设备110处安装更新。
一旦更新已经安装到第一计算设备100和/或第二计算设备110,第一计算设备100就可以准备离开受信任环境和/或在第一计算设备100处引导OS。照此,处理器102可以在退出受信任环境之前生成第二信任状态消息。也就是说,处理器102可以在安排第一计算设备100的重置以引导第一计算设备100的OS之前生成第二信任状态消息。第二信任状态消息可以包括关闭受信任更新消息。可以将关闭受信任更新消息发送到控制器106。关闭受信任更新消息可以是对控制器106的第一计算设备100已经或将要离开受信任环境的指示。也就是说,关闭受信任更新消息可以向控制器106指示第一计算设备100已经完成验证操作、已经安装更新和/或准备引导第一计算设备100的OS。
关闭受信任更新消息可以经由与控制器106相关联的共享存储器接口和/或ECRAM接口传送到控制器。控制器106可以接收关闭受信任更新消息。可以在退出受信任环境之前安排发送关闭受信任消息更新,并且可以以这样的方式发送,即控制器106接受关闭受信任消息作为由控制器106作用于重置之后的初始消息。
响应于接收到关闭受信任更新消息,控制器106可以解除对信任状态信号108的断言。例如,响应于接收到关闭受信任更新消息,控制器106可以使信任状态信号108停止被断言和/或跨GPIO管脚改变信任状态信号108的状态。解除对信任状态信号108的断言可以禁止第二计算设备110安装更新包。也就是说,由于信任状态信号108的断言充当第一计算设备100正在受信任环境中验证更新的指示,并且使得第二计算设备110能够安装经验证的更新,因此解除断言或改变信任状态信号108的状态可以用于阻止安装更新,因为不能保证第一计算设备100在受信任环境中校验了更新。
图2图示出了与本公开一致的利用更新信号的系统200的示例。系统220的所描述的组件和/或操作可以包括关于图1和3-4描述的所描述的组件和/或操作和/或与之互换。
系统220可以包括固件更新包224。固件更新包224可以包括机器可读指令集,以修改和/或替换与第一计算设备222相关联的固件的一部分。固件更新包224可以包括二进制文件,该二进制文件包含要安装在第一计算设备222处的系统固件映像。
固件更新包224可以由第一计算设备222接收。固件更新包224可以从另一计算设备发送到第一计算设备222。第一计算设备222可以是主机计算设备。也就是说,第一计算设备222可以是在计算网络中接收固件更新包224的多个计算设备中的计算设备。第一计算设备222可以包括可以负责为计算网络验证固件更新包224和/或将固件更新包224分发给计算网络中的其它计算设备的计算设备。
第一计算设备222可以包括处理器和由处理器可执行以施行各种功能的机器可读指令。这些指令可以包括诸如固件指令、OS指令等之类的指令。
第一计算设备222可以启动更新代理226。更新代理226可以包括由第一计算设备222的处理器可执行的机器可读指令集,以自动触发和/或支持更新交付和安装。更新代理226可以扫描第一计算设备222以确定已经安装了什么更新,并且然后从制造商网站搜索并下载固件更新包224。在一些示例中,可以响应于接收到固件更新包224而启动更新代理226。更新代理226可以检测、下载和/或安装更新。更新代理226可以包括允许客户端计算机连接到更新服务器和/或更新网站的应用程序接口。更新代理226可以每天检查并安装更新。更新代理226可以从更新服务服务器下载固件更新包224。更新代理226可以将来自更新服务服务器的可用更新安装到第一计算设备222。
更新代理226可以触发第一计算设备222的第一重置228。可以响应于接收到或检索固件更新包224而触发第一重置228。在第一重置228之后,第一计算设备222的处理器可以执行指令以启动引导加载程序230。引导加载程序230可以包括指令集,以发起安全引导并且是在第一计算设备222处建立受信任环境的过程。
引导加载程序230可以利用UEFI更新胶囊功能来处理接收到的固件更新包224,以将固件更新包224有效载荷移交给第一计算设备222的固件进行处理。也就是说,第一计算设备222可以将固件更新包打包到运行时服务中的更新胶囊232中。更新胶囊232可以是将固件更新包224传递到第一计算设备222的固件的载体。第一计算设备222的固件可以将固件更新包224有效载荷识别为更新胶囊232并发起更新过程。
第一计算设备222的固件指令可以是可执行的,以将更新胶囊232保存到数据存储分区236。例如,更新胶囊232可以保存到可扩展固件接口系统分区(ESP),该ESP可以是第一计算设备222的数据存储设备上的系统分区。数据存储分区236可以用具有基于文件分配表(FAT)文件状态并作为UEFI规范的一部分维护的规范的文件系统进行格式化。数据存储分区236可以包括数据存储资源的分区部分,其中安装的系统的EFI引导加载程序和/或指令在启动时由第一计算设备222的固件利用。
在将更新胶囊232保存在数据存储分区236中之后,第一计算设备222的处理器可以触发第一计算设备222的第二重置234。第二重置234可以充当UEFI固件控制第一计算设备222并在第一计算设备222中建立和维护安全边界的触发器,以在其内施行后续操作。第二重置234可以被认为是建立安全环境的事件。下面详细描述的在第二重置234之后并在关闭受信任更新消息244之前发生的第一计算设备222的操作可以被认为正在由第一计算设备的固件建立的信任环境的安全边界内发生。
响应于第二重置234和/或通过在第一计算设备222处执行固件来建立受信任环境,可以生成246信任状态消息246。信任状态消息246可以包括可传送到控制器250的消息。控制器250可以包括嵌入在第一计算设备222内的控制器和/或在第一计算设备222外部但可通信地耦合到第一计算设备222的控制器。
信任状态消息246可以包括向控制器250传送第一计算设备是否正在受信任环境中执行的消息。例如,信任状态消息246可以包括建立第一计算设备222的固件已经控制第一计算设备222并建立了建立信任根以验证固件更新包234的安全受信任环境的消息。
可以经由将信任状态消息246保存到共享存储器资源248来将信任状态消息246传送到控制器250。共享存储器资源248可以包括在第一计算设备和控制器250之间共享访问的存储器。在一些示例中,共享存储器248可以包括与控制器250相关联的ECRAM。
响应于接收到指示第一计算设备222正在受信任环境中操作的信任状态消息246,控制器250可以使信任状态信号254被断言和/或改变通过GPIO信号管脚252断言的信任状态信号254的状态。GPIO可以包括集成电路或电子电路板上的信号管脚。信号管脚的行为,包括信号管脚是充当输入还是输出,可以在运行时由指令或由用户可控制。
GPIO信号管脚252可以包括与第二计算设备256对接和/或可通信地耦合到第二计算设备256的信号管脚。照此,可以向第二计算设备256断言诸如信任状态信号254之类的信号。第二计算设备256可以是与第一计算设备222存在于相同计算网络中的除了第一计算设备222之外的设备。第二计算设备256可以包括缺乏建立受信任环境的能力和/或缺乏独立地验证固件更新包224的硬件和/或指令的计算设备。也就是说,第二计算设备256可能缺乏可用于在安装到第二计算设备256之前验证固件更新包的密码引擎和/或加速器。
然而,通过实现信任状态信号254到第二计算设备256的传送,在第一计算设备222处操作的受信任环境的边界可以扩展为包括第二计算设备256。也就是说,控制器250向第二计算设备256断言信任状态信号254可以在第一计算设备222和第二计算设备256之间建立与固件更新包224的验证有关的信任链。例如,只要向第二计算设备256指示第一计算设备222正在受信任环境中操作的信任状态信号254被断言,第二计算设备256就可以确信第一计算设备222在受信任环境中操作时施行对固件更新包224的验证操作。以这种方式,指示第一计算设备222正在受信任环境中操作的信任状态信号254的断言可以使得第二计算设备256能够依赖于第一计算设备222对固件更新包224的验证。照此,指示第一计算设备222正在受信任环境中操作的信任状态信号254的断言可以使得第二计算设备256能够在第二计算设备256处安装固件更新包224,而无需施行固件更新包224的独立验证。
在第二重置234之后返回到第一计算设备222的功能,第一计算设备222的设备固件的执行可以发起更新处理程序238。更新处理程序238可以从数据存储分区236检索更新胶囊232。更新处理程序238可以在预准备引导事件时从数据存储分区236检索并加载更新胶囊232。预准备加载事件可以指在第一计算设备222的固件到达其中第一计算设备222准备引导的验证/安装后状态之前发生的事件。
可以执行第一计算设备222的固件以在受信任环境中操作时验证固件更新包。例如,可以执行第一计算设备222的固件以对从数据存储分区236检索的固件更新胶囊232施行密码数字签名校验240操作。
一旦完成固件更新包224的成功验证,第一计算设备222的处理器就可以执行指令以施行固件更新242。施行固件更新242可以包括在第一计算设备222处安装固件更新包224。附加地,施行固件更新242可以包括向第二计算设备256发送固件更新包224验证完成和/或成功的消息和/或其它信号。在一些示例中,施行固件更新242可以包括在第二计算设备256处安装固件更新242。在第二计算设备256处接收到固件更新包224验证完成和/或成功的消息和/或其它信号的条件下,和/或在向第二计算设备256断言指示第一计算设备222正在受信任环境中操作的信任状态信号254的条件下,第二计算设备256可以许可安装固件更新包224。
在校验固件签名240和/或固件更新242的性能之后,第一计算设备222的处理器可以执行指令以生成另一信任状态消息246。然而,在这样的示例中,要生成和/或发送到控制器250的信任状态消息246可以是关闭受信任更新消息244。可以在准备引导事件时生成和/或发送关闭受信任更新消息244。也就是说,当第一计算设备222的固件已经校验固件签名240和/或完成固件更新242安装并准备引导例如第一计算设备222的OS时,可以生成和/或发送关闭受信任更新消息244。当第一计算设备正在准备引导时,可以生成和/或安排发送关闭受信任更新消息244,从而导致第一计算设备离开受信任环境和/或停止操作受信任环境。
因此,信任状态消息246(诸如关闭受信任更新消息244)可以被传送到控制器250。例如,可以通过将关闭受信任更新消息244放置在共享存储器248中来将关闭受信任更新消息244传送到控制器250。关闭受信任更新消息244可以向控制器250指示第一计算设备222正在离开和/或已经离开受信任环境。
响应于接收到包括关闭受信任更新消息244的信任状态消息246,控制器250可以解除断言或修改跨GPIO信号管脚252向第二计算设备256断言的信任状态信号的状态。信任状态信号254的状态的解除断言和/或修改可以向第二计算设备256指示第一计算设备222第一计算设备222正在离开和/或已经离开受信任环境。照此,信任状态信号254的状态的解除断言和/或修改可以禁止第二计算设备256安装当信任状态信号254在修改状态下被解除断言或断言时可以接收的后续固件更新包。也就是说,当信任状态信号254在修改状态下被解除断言或断言时,第二计算设备256可能不许可安装固件更新包。第二计算设备256可能不许可安装固件更新包,直到信任状态信号254被重新断言或信任状态信号254的状态再一次被修改为止。以这种方式,取决于第一计算设备222的固件的验证和/或验证期间向第二计算设备256的信任状态信号254的断言,通过使得许可将固件更新安装到第二计算设备256,将由第一计算设备222建立的受信任环境的信任边界扩展到第二计算设备256以用于固件验证的目的。
图3图示了与本公开一致的利用更新信号的非暂时性机器可读存储器362和处理器360的示例。诸如非暂时性存储器362之类的存储器资源可以用于存储由处理器360执行以施行如本文中所描述的操作的指令(例如,364、366等)。操作不限于本文中所描述的特定示例,并且可以包括关于图1-2和4描述的所描述的组件和/或操作和/或与之互换。
处理器360可以包括与控制器相关联和/或并入到控制器中的处理器和/或专用集成电路。在一些示例中,控制器可以是嵌入到第一计算设备中和/或可通信地耦合到第一计算设备的控制器。第一计算设备可以包括用于验证要应用于第二计算设备的固件更新的主机设备。
非暂时性存储器362可以存储由处理器360可执行以使控制器从第一计算设备接收和/或检索信任状态消息的指令364。在示例中,第一计算设备可以包括要向第二计算设备供应更新的计算设备。例如,第一计算设备可以包括管理设备,其接收固件更新并且验证与第一计算设备相关联的各种其它计算设备的更新和/或将更新分发到与第一计算设备相关联的各种其它计算设备。
信任状态消息可以包括由第一计算设备的处理器生成的消息,其向控制器指示第一计算设备已经进入和/或正在利用受信任环境来校验它已经接收到的更新。该更新可以是适用于和/或可安装在可通信地耦合到控制器的第二计算设备处的更新。
信任状态消息可以经由两者之间的共享存储器接口从第一计算设备发送到控制器。也就是说,信任状态消息可以保存到共享存储器资源或分区中,诸如在第一计算设备和第二计算设备之间通常可访问的ECRAM中。
到控制器的信任状态消息的生成、发送、接收和/或检索可以由在第一计算设备处的重置和/或重置安排触发。例如,到控制器的信任状态消息的发送和/或检索可以由标记第一计算设备向受信任环境转变(由在第一个计算设备处执行固件引起)的重置触发。
在一些示例中,信任状态消息可以包括关闭受信任更新信任状态消息。 关闭受信任更新信任状态消息可以由第一计算设备的处理器生成并且可以向控制器指示第一计算设备正在离开和/或已经离开受信任环境。在一些示例中,关闭受信任更新消息信任状态消息可以包括由第一计算设备的处理器生成的消息,其向控制器指示第一计算设备准备离开受信任环境以引导第一计算设备的OS。
关闭受信任更新信任状态消息可以经由两者之间的共享存储器接口从第一计算设备发送到控制器。也就是说,关闭受信任更新信任状态消息可以保存到共享存储器资源或分区中,诸如在第一计算设备和第二计算设备之间通常可访问的ECRAM中。
到控制器的关闭受信任更新信任状态消息的生成、发送、接收和/或检索可以由在第一计算设备处的重置和/或重置安排触发。例如,到控制器的关闭受信任更新信任状态消息的发送和/或检索可以由安排和/或执行重置以引导操作系统触发。照此,到控制器的关闭受信任更新信任状态消息的发送和/或检索可以由安排和/或执行标记第一计算设备从受信任环境中向外转变的重置触发。
非暂时性存储器362可以存储由处理器360可执行以使控制器指定向第二计算设备断言的GPIO信任状态信号的信号状态的指令366。GPIO信任状态信号的信号状态和/或即使信任状态信号被完全断言,也可以基于控制器接收到的信任状态消息。
因此,基于向控制器指示第一计算设备是否正在受信任环境中操作的信任状态消息,控制器可以指定可以跨GPIO管脚向第二计算设备断言的信任状态信号的对应状态。照此,跨GPIO管脚向第二计算设备断言的信号的状态可以向第二计算设备指示第一计算设备是否正在利用受信任环境来校验更新。
例如,控制器可以接收在第一计算设备重置之后从第一计算设备发出的指示第一计算设备正在受信任环境中操作的第一信任状态消息。响应于接收到第一信任状态消息,控制器可以引起在可通信地耦合到第二计算设备的GPIO管脚处将信任状态信号的状态修改为第一状态。将信任状态信号修改为第一状态可以使得第二计算设备能够安装由在受信任环境中操作的第一计算设备验证的经验证固件包。
在另一示例中,控制器可以接收在第一计算设备重置以引导OS之前从第一计算设备发出的指示第一计算设备正在离开或已经离开受信任环境的第二信任状态消息。响应于接收到第二信任状态消息,控制器可以引起在可通信地耦合到第二计算设备的GPIO管脚处将信任状态信号的状态修改为第二状态。在第一状态中不存在信任状态信号的情况下,将信任状态信号修改为第二状态可以禁止第二计算设备安装被指定为经验证或以其它方式的固件包。
图4图示了与本公开一致的利用更新信号的非暂时性机器可读存储器472和处理器470的示例。诸如非暂时性存储器472之类的存储器资源可以用于存储由处理器470执行以施行如本文中所描述的操作的指令(例如,474、476、478等)。操作不限于本文中所描述的特定示例,并且可以包括关于图1-3描述的所描述的组件和/或操作和/或与之互换。
处理器470可以包括与第一计算设备相关联和/或并入到其中的处理器和/或专用集成电路。在一些示例中,第一计算设备可以可通信地耦合到控制器和/或具有嵌入在第一计算设备内的控制器。第一计算设备可以包括用于验证要应用于第二计算设备的固件更新的主机设备。
非暂时性存储器472可以存储由处理器470可执行以使第一计算设备重置第一计算设备的指令474。重置可以是提示第一计算设备的固件在第一计算设备处加载受信任环境的重置。重置可以包括在将由固件更新包生成的更新胶囊存储到与第一计算设备相关联的可扩展固件接口系统(ESP)分区之后发生和/或触发的重置。
非暂时性存储器472可以存储由处理器470可执行以使第一计算设备用在受信任环境中操作的第一计算设备的固件验证固件更新包的数字签名的指令474。验证固件更新包的数字签名可以包括用在受信任环境中执行的第一计算设备的固件从ESP分区检索更新胶囊。可以对检索到的更新胶囊施行签名验证操作以验证固件更新包的签名。例如,可以在更新胶囊上施行利用公钥和/或私钥对固件更新包的数字签名的密码验证。
非暂时性存储器472可以存储由处理器470可执行以使第一计算设备生成要传送到GPIO信号管脚的控制器的信任状态消息的指令476。信任状态消息可以生成并经由共享存储器接口传送到控制器。信任状态消息可以包括对控制器的指令,以经由GPIO管脚向第二计算设备断言信任状态信号。通过GPIO管脚向第二计算设备断言信任状态信号可以使得第二计算设备能够安装由第一计算设备验证的经验证固件更新包。
一旦第一计算设备已经完成了校验操作和/或安装了经验证的固件更新包,第一计算设备就可以到达准备引导事件。准备引导事件可以包括在由第一计算设备的基于UEFI的固件的执行指定的一系列事件中发起标记第一计算设备从受信任环境离开的重置的事件。例如,准备引导事件可以是其中第一计算设备准备退出受信任环境并引导OS的事件。
响应于到达准备引导事件,第一计算设备可以生成关闭受信任更新消息。关闭受信任更新消息可以是要经由共享存储器接口传送到控制器的信任状态消息。关闭受信任更新消息可以包括对控制器的指令,以向第二计算设备解除对信任状态信号的断言。解除对信任状态信号的断言可能要禁止第二计算设备110安装第二固件更新包。也就是说,在不存在断言的信任状态信号的情况下,第二计算设备可能不许可安装固件更新包。
在上述对本公开的详细描述中,对形成其一部分的附图进行参考,并且其中通过图示的方式示出了可以如何实践本公开的示例。这些示例被足够详细地描述以使得本领域普通技术人员能够实践本公开的示例,并且应当理解,可以利用其它示例,并且在不脱离本公开的范围的情况下,可以进行过程、电气和/或结构改变。另外,如本文中所使用的,“多个”元件和/或特征可以指多于一个这样的元件和/或特征。
本文中的附图遵循编号惯例,其中第一数字对应于附图编号,而剩余数字标识附图中的元件或组件。可以能够添加、交换和/或消除本文中的各种附图中所示出的元件,以便提供本公开的多个附加示例。此外,附图中提供的元件的比例和相对尺度意图图示本公开的示例,并且不应该理解为限制性意义。

Claims (15)

1.第一计算设备,包括:
固件;
控制器;以及
处理器,其中所述处理器要:
生成要发送到控制器的指示第一计算设备的固件正在操作受信任环境的信任状态消息,以及
利用固件验证受信任环境内的更新;并且
其中所述控制器要响应于接收到信任状态消息而向第二计算设备断言信任状态信号,其指示第一计算设备的固件正在操作受信任环境,其中所述信任状态信号的断言要使得第二计算设备能够安装经验证的更新。
2.根据权利要求1所述的第一计算设备,其中所述第一计算设备的固件是基于统一可扩展固件接口(UEFI)的固件。
3.根据权利要求1所述的第一计算设备,其中当第一计算设备的固件正在操作受信任环境时,信任状态信号保持由控制器断言。
4.根据权利要求1所述的第一计算设备,其中所述处理器要执行第一计算设备的固件,以通过校验与更新相关联的数字签名来验证更新。
5.根据权利要求1所述的第一计算设备,其中响应于接收到由处理器生成的指示第一计算设备准备引导第一计算设备的操作系统(O/S)的第二信任状态消息,控制器要解除对信任状态信号的断言。
6.根据权利要求1所述的第一计算设备,其中所述控制器经由共享存储器接口可通信地耦合到处理器,其中所述控制器要在重置之后接受通过共享存储器接口接收的初始消息。
7.根据权利要求1所述的第一计算设备,其中经由通用输入/输出(GPIO)信号管脚向第二计算设备断言信任状态信号。
8.一种非暂时性机器可读介质,包括指令,当被执行时,所述指令使控制器进行以下操作:
从第一计算设备接收信任状态消息,以向第二计算设备供应更新;以及
基于信任状态消息,指定向第二计算设备断言的通用输入/输出(GPIO)信任状态信号的信号状态,其中所述GPIO信任状态信号的信号状态向第二计算设备指示第一计算设备是否正在利用受信任环境校验更新。
9.根据权利要求8所述的非暂时性机器可读介质,进一步包括当被执行时使控制器响应于接收到第二信任状态消息而修改GPIO信任状态信号的状态的指令,所述第二信任状态消息由第一计算设备在重置之后发出,指示第一计算设备正在受信任环境中操作。
10.根据权利要求8所述的非暂时性机器可读介质,进一步包括当被执行时使控制器响应于接收到关闭受信任更新信任状态消息而修改GPIO信任状态信号的状态的指令,其中所述关闭受信任更新信任状态消息经由非易失性嵌入式控制器随机存储存储器(ECRAM)从第一计算设备发出,指示第一计算设备准备引导操作系统。
11.一种非暂时性机器可读介质,包括指令,当被执行时,所述指令使第一计算设备进行以下操作:
重置第一计算设备,以提示第一计算设备的固件在第一计算设备处加载受信任环境;
用在受信任环境中操作的第一计算设备的固件验证固件更新包的签名;
生成经由GPIO信号管脚要传送到通用输入/输出(GPIO)信号管脚的控制器以指导控制器向第二计算设备断言信任状态信号的信任状态消息,其中所述信任状态信号的断言要使得第二计算设备能够安装经验证的固件更新包。
12.根据权利要求11所述的非暂时性机器可读介质,进一步包括当被执行时使第一计算设备的处理器将由固件更新包生成的更新胶囊存储到与第一计算设备相关联的可扩展固件接口系统(ESP)分区的指令。
13.根据权利要求12所述的方法,进一步包括当被执行时使第一计算设备的处理器进行以下操作的指令:
用在受信任环境中执行的第一计算设备的固件从ESP分区检索更新胶囊;以及
可以对检索到的更新胶囊施行签名验证操作,以验证固件更新包的签名。
14.根据权利要求13所述的非暂时性机器可读介质,进一步包括当被执行时使第一计算设备的处理器响应于第一计算设备到达准备引导事件而生成关闭受信任更新消息的指令,所述关闭受信任更新消息要被传送到控制器以指导控制器向第二计算设备解除对信任状态信号的断言。
15.根据权利要求14所述的非暂时性机器可读介质,其中解除对信任状态信号的断言要禁止第二计算设备安装第二固件更新包。
CN201980095085.7A 2019-05-15 2019-05-15 更新信号 Pending CN113614723A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/032360 WO2020231418A1 (en) 2019-05-15 2019-05-15 Update signals

Publications (1)

Publication Number Publication Date
CN113614723A true CN113614723A (zh) 2021-11-05

Family

ID=73288767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980095085.7A Pending CN113614723A (zh) 2019-05-15 2019-05-15 更新信号

Country Status (5)

Country Link
US (1) US11755739B2 (zh)
EP (1) EP3912068A4 (zh)
CN (1) CN113614723A (zh)
TW (1) TWI754219B (zh)
WO (1) WO2020231418A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723376A (zh) * 2020-06-10 2020-09-29 苏州浪潮智能科技有限公司 一种板内可信平台的监测和控制方法、电路和装置
US20220366087A1 (en) * 2021-05-13 2022-11-17 AO Kaspersky Lab Systems and methods for verifying the integrity of a software installation image
US11409866B1 (en) 2021-06-25 2022-08-09 Northrop Grumman Systems Corporation Adaptive cybersecurity for vehicles
US11681811B1 (en) * 2021-06-25 2023-06-20 Northrop Grumman Systems Corporation Cybersecurity for configuration and software updates of vehicle hardware and software based on fleet level information
TWI828043B (zh) * 2022-01-22 2024-01-01 飛捷科技股份有限公司 電腦系統及更新方法

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976163B1 (en) 2000-07-12 2005-12-13 International Business Machines Corporation Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein
US20050021968A1 (en) 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US7017040B2 (en) 2003-12-04 2006-03-21 Intel Corporation BIOS update file
US20060200813A1 (en) * 2005-03-01 2006-09-07 Sea-Weng Young Firmware updating system
US7900058B2 (en) * 2006-08-31 2011-03-01 Intel Corporation Methods and arrangements for remote communications with a trusted platform module
US8589302B2 (en) 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US8898797B2 (en) * 2012-04-12 2014-11-25 Dell Products L.P. Secure option ROM firmware updates
US8856560B2 (en) * 2012-04-30 2014-10-07 Hewlett-Packard Development Company, L.P. Settings based on output powered by low power state power rail
CN103513993A (zh) * 2012-06-15 2014-01-15 鸿富锦精密工业(深圳)有限公司 固件更新系统及方法
US9218178B2 (en) * 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates
US9594638B2 (en) * 2013-04-15 2017-03-14 Amazon Technologies, Inc. Host recovery using a secure store
US9280355B2 (en) * 2013-08-29 2016-03-08 International Business Machines Corporation System with manual actuator for asserting physical presence across multiple compute nodes
US9830456B2 (en) * 2013-10-21 2017-11-28 Cisco Technology, Inc. Trust transference from a trusted processor to an untrusted processor
CN104572168B (zh) 2014-09-10 2018-06-05 中电科技(北京)有限公司 一种bios自更新保护系统及方法
CN105700970A (zh) * 2014-11-25 2016-06-22 英业达科技有限公司 服务器系统
DE102015209116A1 (de) 2015-05-19 2016-11-24 Robert Bosch Gmbh Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
US10025576B2 (en) * 2015-07-10 2018-07-17 Dell Products, Lp Method for deploying BIOS integrity measurement via BIOS update package and system therefor
CN105468978B (zh) * 2015-11-16 2019-11-01 全球能源互联网研究院 一种适用于电力系统通用计算平台的可信计算密码平台
US9805200B2 (en) 2016-02-01 2017-10-31 Quanta Computer, Inc. System and method for firmware verification
EP3440585B1 (en) * 2016-04-21 2021-04-14 Huawei Technologies Co., Ltd. System and method for establishing a securely updatable core root of trust for measurement
US10097563B2 (en) * 2016-05-04 2018-10-09 Gbs Laboratories, Llc Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices
US20170325088A1 (en) * 2016-05-05 2017-11-09 Qualcomm Incorporated Securing sensor status by leveraging always-on processor and host-based trusted execution
US10592670B2 (en) * 2016-06-28 2020-03-17 Intel Corporation Technologies for provisioning and managing secure launch enclave with platform firmware
US20180060077A1 (en) * 2016-08-26 2018-03-01 Qualcomm Incorporated Trusted platform module support on reduced instruction set computing architectures
US10242197B2 (en) * 2016-09-23 2019-03-26 Intel Corporation Methods and apparatus to use a security coprocessor for firmware protection
US10740468B2 (en) * 2016-09-30 2020-08-11 Hewlett Packard Enterprise Development Lp Multiple roots of trust to verify integrity
CN106708567B (zh) * 2016-12-06 2020-07-31 英业达科技有限公司 固件更新方法及系统
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
US11455396B2 (en) * 2017-05-12 2022-09-27 Hewlett Packard Enterprise Development Lp Using trusted platform module (TPM) emulator engines to measure firmware images
US11036863B2 (en) * 2017-08-01 2021-06-15 Dell Products, L.P. Validating an image using an embedded hash in an information handling system
EP3460700A1 (en) 2017-09-22 2019-03-27 Banco Bilbao Vizcaya Argentaria, S.A. Authentication of software update modules using chameleon hashing.
US10860305B1 (en) * 2017-09-29 2020-12-08 Amazon Technologies, Inc. Secure firmware deployment
CN107682159B (zh) 2017-10-12 2021-02-02 北京握奇智能科技有限公司 一种智能终端的可信应用管理方法和可信应用管理系统
KR20190074857A (ko) * 2017-12-20 2019-06-28 삼성전자주식회사 펌웨어를 업데이트하는 인터페이스 장치, 모바일 장치 및 펌웨어 업데이트 방법
US11163887B2 (en) * 2018-02-14 2021-11-02 Microsoft Technology Licensing, Llc Clearance of bare metal resource to trusted state usable in cloud computing
US10747526B2 (en) * 2018-06-21 2020-08-18 Dell Products, L.P. Apparatus and method to execute prerequisite code before delivering UEFI firmware capsule
US10740084B2 (en) 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
US10776492B2 (en) * 2018-09-10 2020-09-15 Dell Products, L.P. Multi-stage firmware update method and system therefor
US10789061B2 (en) * 2018-09-26 2020-09-29 Intel Corporation Processor based component firmware update method and apparatus
US11455397B2 (en) * 2018-11-13 2022-09-27 Microchip Technology Incorporated Secure boot assist for devices, and related systems, methods and devices
CN109670349B (zh) * 2018-12-13 2021-10-01 英业达科技有限公司 可信计算机的硬件架构及计算机的可信启动方法
US11126420B2 (en) * 2019-01-08 2021-09-21 Dell Products L.P. Component firmware update from baseboard management controller
US10860307B2 (en) * 2019-04-24 2020-12-08 Dell Products, L.P. Fragmented firmware storage system and method therefor
US11106622B2 (en) * 2019-05-10 2021-08-31 Dell Products L.P. Firmware update architecture with OS-BIOS communication

Also Published As

Publication number Publication date
TWI754219B (zh) 2022-02-01
US11755739B2 (en) 2023-09-12
WO2020231418A1 (en) 2020-11-19
EP3912068A1 (en) 2021-11-24
TW202044022A (zh) 2020-12-01
EP3912068A4 (en) 2022-08-10
US20220067162A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
US8904162B2 (en) Methods and apparatus for performing secure BIOS upgrade
US10528765B2 (en) Technologies for secure boot provisioning and management of field-programmable gate array images
US11921860B2 (en) Rollback resistant security
US11755739B2 (en) Update signals
US9288155B2 (en) Computer system and virtual computer management method
JP6319609B2 (ja) 信頼できるカーネル起動方法および装置
US11263326B2 (en) Method and apparatus for secure system boot
US9830456B2 (en) Trust transference from a trusted processor to an untrusted processor
KR101229148B1 (ko) 소프트웨어 신뢰성 검증 방법, 장치 및 컴퓨터 판독가능 매체
US20110246778A1 (en) Providing security mechanisms for virtual machine images
US8566815B2 (en) Mechanism for updating software
US11106798B2 (en) Automatically replacing versions of a key database for secure boots
US10936722B2 (en) Binding of TPM and root device
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
US20190163898A1 (en) Package processing
Bulygin et al. A tale of one software bypass of Windows 8 Secure Boot
Ruan et al. Boot with integrity, or don’t boot
US20190114433A1 (en) Method and Apparatus for Boot Variable Protection
WO2019112971A1 (en) Method and apparatus for secure system boot
US20180349609A1 (en) Method and Apparatus for Boot Variable Protection
US20200143058A1 (en) Operational verification
US20170017794A1 (en) Method and device for protecting a computing apparatus against manipulation
WO2019112972A1 (en) Method and apparatus for boot variable protection

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