CN113448915A - 固件弹性机构 - Google Patents

固件弹性机构 Download PDF

Info

Publication number
CN113448915A
CN113448915A CN202011524082.1A CN202011524082A CN113448915A CN 113448915 A CN113448915 A CN 113448915A CN 202011524082 A CN202011524082 A CN 202011524082A CN 113448915 A CN113448915 A CN 113448915A
Authority
CN
China
Prior art keywords
firmware
volatile memory
copy
main
main firmware
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
CN202011524082.1A
Other languages
English (en)
Inventor
N·阿加沃尔
A·穆克尔
M·伯格
K·科塔里
A·查托帕海伊
R·普尔纳钱德兰
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN113448915A publication Critical patent/CN113448915A/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

固件弹性机构。公开了一种促进计算机系统平台中的固件弹性的装置。该装置包括:存储用于计算机系统平台的主固件的第一非易失性存储器;存储主固件的固件副本的第二非易失性存储器;以及弹性硬件,其经由系统构造耦合到第一非易失性存储器,以检测对主固件的未授权访问并利用固件副本复原存储在第一非易失性存储器中的主固件。

Description

固件弹性机构
背景技术
片上系统(SOC)是集成计算机或其他电子系统的所有组件的集成电路。这些组件包括中央处理单元(CPU)、存储器、输入/输出(IO)端口和辅助存储装置,所有这些被包括在单个基板或微芯片上。附加地,SOC经由标准化的管芯上互连协议使能实现第三方组件的集成。然而,添加此类组件可能导致安全漏洞。
附图说明
为了能够详细理解上面记载的特征的方式,可以参考实施例进行上面简要概述的更具体的描述,其中一些实施例在附图中图示。然而,要注意到,附图仅图示了典型的实施例,并且因此不应被认为是对其范围的限制,因为本公开可以容许其他同等有效的实施例。
图1图示了计算设备的一个实施例。
图2A-2C图示了平台的实施例。
图3图示了平台的又一实施例。
图4A-4D是图示弹性过程的一个实施例的流程图。
图5图示了说明性电子计算设备的示意图的一个实施例。
具体实施方式
在以下描述中,阐述了许多具体细节以提供更透彻的理解。然而,对于本领域技术人员而言将清楚的是,实施例可以在没有一个或多个这些具体细节的情况下实践。在其他实例中,为了避免模糊实施例,没有描述公知的特征。
在实施例中,提供了一种机构来促进计算机系统平台中的固件弹性。在这样的实施例中,第二非易失性存储器被添加到计算机系统平台,以存储被存储在第一非易失性存储器中的主固件的固件副本。弹性代理检测对主固件的未授权访问,并且万一未授权改变,则利用固件副本复原(restore)主固件。在另外的实施例中,第一和第二非易失性存储器是隔离的。在这样的实施例中,弹性代理经由系统构造耦合到第一非易失性存储器,并且经由带外侧信道耦合到第二非易失性存储器。
对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等的引用指示如此描述的(一个或多个)实施例可以包括特定的特征、结构或特性,但是不是每个实施例都有必要包括特定的特征、结构或特性。此外,一些实施例可以具有针对其他实施例描述的特征中的一些、全部或没有所述特征。
在以下描述和权利要求中,可以使用术语“耦合”连同其派生词。“耦合”用于指示两个或更多个元件协同操作或彼此交互,但是它们可以具有或可以不具有在它们之间的居间物理或电气组件。
如权利要求中所使用的,除非另有指定,否则为了描述共同元素对序数形容词“第一”、“第二”、“第三”等的使用仅仅指示引用了同样元素的不同实例,并且不意图暗示如此描述的元素必须在时间上、空间上、排序上或以任何其他方式处于给定的顺序。
图1图示了计算设备100的一个实施例。根据一个实施例,计算设备100包括托管集成电路(“IC”)、诸如片上系统(“SoC”或“SOC”)的计算机平台,将计算设备100的各种硬件和/或软件组件集成在单个芯片上。如所图示的,在一个实施例中,计算设备100可以包括任何数量和类型的硬件和/或软件组件,诸如(在没有限制的情况下):图形处理单元114(“GPU”或简称为“图形处理器”)、图形驱动器116(也称为“GPU驱动器”、“图形驱动器逻辑”、“驱动器逻辑”、用户模式驱动器(UMD)、UMD、用户模式驱动器框架(UMDF)、UMDF或简称为“驱动器”)、中央处理单元112(“CPU”或简称为“应用处理器”)、存储器108、网络设备、驱动器等,以及输入/输出(I/O)源104、诸如触摸屏、触摸面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标、端口、连接器等。计算设备100可以包括充当计算设备100的硬件和/或物理资源与用户之间的接口的操作系统(OS)106。
要领会,对于某些实现,可能优选比上述示例配备更少或更多的系统。因此,计算设备100的配置可以取决于多种因素(诸如价格约束、性能要求、技术改进或其他情况)而因实现而异。
实施例可以被实现为以下各项中的任何一个或其组合:使用母板互连的一个或多个微芯片或集成电路、硬连线逻辑、由存储器设备存储并由微处理器执行的软件、固件、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。作为举例,术语“逻辑”、“模块”、“组件”、“引擎”和“机构”可以包括软件或硬件和/或其组合,诸如固件。
实施例可以使用利用母板、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)互连的一个或多个存储器芯片、控制器、CPU(中央处理单元)、微芯片、或者集成电路来实现。作为举例,术语“逻辑”可以包括软件或硬件和/或软件和硬件的组合。
图2A-2C图示了包括类似于上面讨论的计算设备100的SOC 210的平台200的实施例。如图2A中所示,平台200包括经由CPU 112通信地耦合 到一个或多个软件组件250的SOC210。附加地,SOC 210包括经由系统构造205耦合的其他计算设备组件(例如,存储器108)。在一个实施例中,系统构造205包括集成片上系统构造(IOSF),以提供用于在SOC 210内耦合互连协议(IP)代理230(例如,IP块230A和230B)的标准化管芯上互连协议。在这样的实施例中,互连协议提供了标准化的接口,以使得第三方能够设计诸如IP代理之类的逻辑以并入SOC 210中。
根据实施例,IP代理230可以包括通用处理器(例如,有序或无序核心)、固定功能单元、图形处理器、I/O控制器、显示控制器等。在这样的实施例中,每个IP代理230包括硬件接口235,以提供标准化来使得IP代理230能够与SOC 210组件通信。例如,在IPA代理230是第三方视觉处理单元(VPU)的实施例中,接口235提供标准化以使得VPU能够经由构造205访问存储器108。
SOC 210还包括安全控制器240,安全控制器240作为安全引擎操作来执行用于SOC210的各种安全操作(例如,安全处理、密码功能等)。在一个实施例中,安全控制器240包括被实现来执行安全操作的IPA代理230。此外,SOC 210包括非易失性存储器250。非易失性存储器250可以被实现为外围组件互连快速(PCIe)存储驱动器,诸如固态驱动器(SSD)或非易失性存储器快速(NVMe)驱动器。在一个实施例中,非易失性存储器250被实现为存储平台200固件。例如,非易失性存储器250存储引导(boot)(例如,基本输入/输出系统(BIOS))和设备(例如,IP代理230和安全控制器240)固件。
图2B图示了包括经由IP 230A耦合到SOC 210的组件270的平台200的另一个实施例。在一个实施例中,IP 230A作为将组件260连接到SOC 210的桥(诸如PCIe根端口)操作。在该实施例中,组件260可以被实现为PCIe设备(例如,交换机或端点),其包括硬件接口235以使得组件260能够与SOC 210组件通信。图2C图示了包括经由云网络210耦合到平台200的计算设备270的平台200的又一实施例。在该实施例中,计算设备270包括云代理,该云代理被提供经由软件280对SOC 210的访问。
当前,恶意代理对平台200固件(例如,非易失性存储器250、IP代理230、安全控制器240等)的攻击在上涨。这样的固件攻击导致对业务有负面影响的隐私数据泄露、系统停机。附加地,这些攻击已经导致题为NIST SP800-193的美国国家标准和技术研究院发布平台固件弹性特别出版物,该出版物设置固件弹性指南和要求。
固件弹性的典型实现包括安装在平台闪存组件上的辅助固件副本。在平台上有多个固件组件并且所有OEM都在努力满足合规性的情况下,平台闪存需要已经增长,从而增加OEM平台的总体成本。当前,系统上的大多数客户端平台固件可以适应在32 MB串行外围接口(SPI)闪存内。然而,添加弹性正引起对系统上的第二闪存设备的需要,这在一些情况下将高速缓存大小增加到64 MB。
其他现有解决方案使用允许从外部存储驱动器(如USB拇指驱动器)下载并执行固件的方法。该解决方案具有如下的问题:即它需要用户干预来恢复系统,并剥夺对恢复映像的OEM控制。
根据一个实施例,附加的固件存储装置被添加到平台200以提供弹性增强。在这样的实施例中,附加固件存储对于满足块存储装置的引导分区内部的弹性要求所需的不同平台固件组件的辅助副本。图3图示了平台200的又一实施例,该平台200包括包含在安全控制器240中的辅助固件存储装置320和弹性代理330。
如上面所提及的,非易失性存储器250被实现为用于平台固件(例如,主固件310(或弹性目标))的存储装置。在一个实施例中,为存储在非易失性存储器250中的主固件310提供弹性支持。如本文限定的,平台固件弹性描述了用于保护平台免受未授权改变、检测发生的未授权改变以及从攻击中恢复的安全机构。在另外的实施例中,主固件310被复原,以便在检测到损坏和/或故障时将系统带回到可引导状态。
辅助固件存储装置320(或弹性固件源)被实现为存储主固件(或固件副本)325的备份(或辅助)副本,该主固件(或固件副本)325被存储在非易失性存储器250中。在一个实施例中,在检测到对主固件310的未授权访问(例如,固件被攻击或损坏)时,备份固件用于复原存储在非易失性存储器250中的固件。在又一另外的实施例中,在辅助固件存储装置320处实现要求,以防止可能在主固件310处发生的攻击或故障。这样的要求包括:写入与主固件310完全隔离的辅助固件存储装置320;比非易失性存储器250具有更高保护级别的辅助固件存储装置320;仅在恢复流程期间和以安全方式更新时而不是在正常引导期间使用和访问的辅助固件存储装置320;以及仅由经认证的更新来更新、并且在某种损坏的情况下由用于该区域的信任根进行复原的辅助固件存储装置320。
在实施例中,辅助固件存储装置320可以经由通用闪速存储装置(UFS)或NVMe来实现。在另外的实施例中,辅助固件存储装置320可以被实现为经由带外(OOB)接口访问的块存储装置或远程云存储装置(例如,经由图2C中示出的云网络210)。在仍另外的实施例中,可以(例如从UFS、NVMe、块存储装置、云存储装置等)动态选择辅助固件存储装置320的源。在这样的实施例中,在确定本地辅助固件存储装置320已经损坏时,可以基于用于替换本地辅助固件存储装置320的配置策略来选择这些源之一。
弹性代理330为恢复主固件310提供信任根。在一个实施例中,弹性代理330在平台200启动期间执行主固件310的验证,以检测是否已经存在对主固件310的未授权访问。在这样的实施例中,在检测到主固件310的损坏故障时(例如,经由系统构造205),使用存储在辅助固件存储装置320处的固件副本325来复原主固件310。在另外的实施例中,弹性代理330通过从辅助固件存储装置320(例如,经由OOB侧信道301)中检索固件副本325并且利用固件副本(例如,经由系统构造205)重写非易失性存储器250处的现有主固件310,来复原主固件310。弹性代理330尽管被描述为包括在安全控制器240中,但是在其他实施例中可以实现为独立代理。
根据一个实施例,平台200还包括耦合到构造205的无线凭证交换(WCE)控制器312。附加地,WCE控制器312经由射频接口(例如,射频标识(RFID))306耦合到辅助固件存储装置320。在这样的实施例中,WCE控制器312是被实现为跟踪以及锁定辅助固件存储装置320以防止未授权访问的RFID控制器。在另外的实施例中,WCE控制器312可以锁定辅助固件存储装置320的可以被永久锁定以防止修改的部分。
根据一个实施例,WCE控制器312被实现为向辅助固件存储装置320提供凭证和可配置的安全策略。在又一另外的实施例中,WCE控制器312可以经由射频(RF)来无线配置和升级,以针对特定地理场所(例如,公共vs 私有vs 混合云)处的平台弹性行为来动态配置平台200。WCE控制器312提供非基于网络的机构来实时激活和去激活安全策略。因此,WCE控制器312不容易受到网络危害或通过网络的攻击。
根据一个实施例,弹性代理330在平台200的启动过程期间执行对主固件310的检查,以确定是否已经检测到主固件310。在这样的实施例中,在检测到主固件310已经被损坏时,弹性代理330从辅助固件存储装置320发起恢复引导。图4A-4D是图示由弹性代理330执行的过程的一个实施例的流程图。
在处理块405(图4A)处,监视定时器(watchdog timer)被开启。在一个实施例中,监视定时器作为弹性触发器操作,其在加电复位时处于可起作用的状态,并等待来自主机的消息。因此,在平台200固件开始执行之前,监视定时器处于可起作用的状态并被启用。在一个实施例中,主机消息由BIOS从BIOS初始引导块开始传输,该BIOS初始引导块在该点之前作为系统中所有固件故障的超集操作。
在处理块410处,从主固件310加载并执行安全固件。在一个实施例中,安全固件包括为平台200的验证提供信任根的融合安全引擎(CSE)固件。在这样的实施例中,通过检查数字签名(例如,由Rivest–Shamir–Adleman(RSA)算法生成)来验证CSE固件。在判定块415处,进行关于安全固件是否已经被损坏的确定。
在判定块415处确定安全固件没有被损坏时,从主固件310加载并执行BIOS固件,处理块420。如果存在系统挂起,并且BIOS在默认配置的时间内没有以消息响应,则监视定时器到期。在一个实施例中,系统挂起可以在引导期间的任何时候发生(例如,甚至在BIOS引导之前)。然而,来自主机的该缺失事件被用作与弹性触发器的总体同步点。
在判定块425处,进行关于BIOS固件是否已经被损坏或者监视定时器是否已经到期的确定。如果不是,则引导过程继续,处理块430。然而,在确定固件已经被损坏或者监视定时器已经到期时,存储在辅助固件存储装置320中的固件副本被认证,处理块435(图4B)。在一个实施例中,弹性代理330执行验证过程来认证固件副本。
在判定块437处,进行关于认证是否成功的确定。在确定固件副本的认证(或验证)故障(例如,由于损坏或漏洞)时,在处理块439处执行基于策略的动作。在一个实施例中,基于策略的动作可以包括弹性代理330修复固件副本(例如,使用系统构造205或OOB侧信道301)。在这样的实施例中,用以恢复固件副本的副本(例如,第二(或替换)固件副本)可以从受信源(例如,通过经由WCE 312接收第二固件副本)被检索并用于重写损坏的固件副本。
在另外的实施例中,可以从统一可扩展固件接口(UEFI)固件中保留的先前胶囊更新的副本接收第二固件副本。在判定块437处确定固件副本的认证成功时,认证的固件副本被拷贝到非易失性存储器250处的主固件310的BIOS区域(例如,经由OOB侧信道301),处理块440。在处理块445处,执行平台200的全局复位。
在判定块415处确定安全固件已经被损坏时,在判定块450(图4C)进行关于安全固件代码区域是否损坏的确定。如果是,则安全固件代码区域的固件副本被认证(例如,经由验证过程),处理块455。在判定块457处,进行关于认证是否成功的确定。如果不是,则控制返回到处理块439(图4B),在处理块439采取基于策略的动作。否则,在处理块460处,安全代码的认证固件副本被拷贝到非易失性存储器250处的主固件310的固件代码区域。随后,控制返回到处理块445(图4B),在处理块445执行全局复位。
在判定块450处确定安全固件代码区域没有损坏时,确定安全固件数据区域损坏,处理块465(图4D)。在处理块470处,安全固件数据区域的固件副本被认证。在处理块475处,安全数据的认证固件副本被拷贝到主固件310的固件数据区域。随后,控制返回到处理块445(图4B),在处理块445执行全局复位。
上述机构通过将平台固件的辅助弹性副本移动到替代块存储装置来降低闪存成本。附加地,该机构在块存储装置上支持的引导分区中提供弹性固件副本的安全存储。此外,提供对弹性固件副本的侧信道访问,以使得能够隔离恢复接口。如果设备和/或平台局限不准许侧信道访问,则主信道可以用于在某些限制的情况下进行恢复。
图5是根据一些实施例的使能实现针对对抗攻击的增强保护的说明性电子计算设备的示意图。在一些实施例中,计算设备600包括一个或多个处理器610,处理器610包括TEE664以及一个或多个处理器核心618,TEE包括机器学习服务包围体(machine learningservice enclave,MLSE)680。在一些实施例中,计算设备600包括硬件加速器668,硬件加速器包括密码引擎682和机器学习模型684。在一些实施例中,如图1-4中所提供的,计算设备将提供针对ML恶意攻击的增强保护。
计算设备600可以附加地包括以下各项中的一个或多个:高速缓存662、图形处理单元(GPU)612(在一些实现中其可以是硬件加速器)、无线输入/输出(I/O)接口620、有线I/O接口630、存储器电路640、功率管理电路650、非暂时性存储设备660以及用于连接到网络672的网络接口670。以下讨论提供了对形成说明性计算设备600的组件的简要、一般描述。例如,非限制性计算设备600可以包括桌面计算设备、刀锋服务器设备、工作站或类似设备或系统。
在实施例中,处理器核心618能够执行机器可读指令集614,从一个或多个存储设备660读取数据和/或指令集614,并将数据写入一个或多个存储设备660。相关领域的技术人员将领会,所图示实施例以及其他实施例可以利用其他基于处理器的设备配置来实践,所述设备配置包括便携式电子或手持电子设备,例如智能电话、便携式计算机、可穿戴计算机、消费电子器件、个人计算机(“PC”)、网络PC、小型计算机、服务器刀锋、大型计算机等。
处理器核心618可以包括任何数量的硬连线或可配置电路,其中的一些或全部可以包括电子组件、半导体器件和/或逻辑元件的可编程和/或可配置组合,所述电子组件、半导体器件和/或逻辑元件部分或全部设置在PC、服务器或能够执行处理器可读指令的其他计算系统中。
计算设备600包括总线或类似的通信链路616,其可通信地耦合并促进各种系统组件之间的信息和/或数据交换,所述系统组件包括处理器核心618、高速缓存662、图形处理器电路612、一个或多个无线I/O接口620、一个或多个有线I/O接口630、一个或多个存储设备660和/或一个或多个网络接口670。计算设备600在本文可能用单数来指代,但是这不意图将实施例限制为单个计算设备600,因为在某些实施例中,可以存在多于一个计算设备600,其并入、包括或包含任何数量的可通信地耦合、并置或远程联网的电路或设备。
处理器核心618可以包括能够执行机器可读指令集的当前可用或未来开发的任何数量、类型的设备,或者其组合。
处理器核心618可以包括(或耦合到)但不限于任何当前或未来开发的单核或多核处理器或微处理器,诸如:一个或多个片上系统(SOC);中央处理单元(CPU);数字信号处理器(DSP);图形处理单元(GPU);专用集成电路(ASIC)、可编程逻辑单元、现场可编程门阵列(FPGA)等。除非另有说明,否则图5中所示的各种块的构造和操作具有常规设计。因此,本文不需要进一步详细描述这样的块,因为相关领域的技术人员将理解这样的块。互连计算设备600的至少一些组件的总线616可以采用任何当前可用的或未来开发的串行或并行总线结构或架构。
系统存储器640可以包括只读存储器(“ROM”)642和随机存取存储器(“RAM”)646。ROM 642的一部分可以用于存储或以其他方式保留基本输入/输出系统(“BIOS”)644。BIOS644例如通过引起处理器核心618加载和/或执行一个或多个机器可读指令集614来向计算设备600提供基本功能性。在实施例中,一个或多个机器可读指令集614中的至少一些引起处理器核心618的至少一部分提供、创建、产生、转换和/或用作专用的、具体的和特定的机器,例如词语处理机器、数字图像采集机器、媒体播放机器、游戏系统、通信设备、智能电话等。
计算设备600可以包括至少一个无线输入/输出(I/O)接口620。至少一个无线I/O接口620可以可通信地耦合到一个或多个物理输出设备622(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线I/O接口620可以可通信地耦合到一个或多个物理输入设备624(定点设备、触摸屏、键盘、触觉设备等)。至少一个无线I/O接口620可以包括任何当前可用的或未来开发的无线I/O接口。示例无线I/O接口包括但不限于:蓝牙
Figure 815792DEST_PATH_IMAGE001
、近场通信(NFC)等等。
计算设备600可以包括一个或多个有线输入/输出(I/O)接口630。至少一个有线I/O接口630可以可通信地耦合到一个或多个物理输出设备622(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个有线I/O接口630可以可通信地耦合到一个或多个物理输入设备624(定点设备、触摸屏、键盘、触觉设备等)。有线I/O接口630可以包括任何当前可用的或未来开发的I/O接口。示例有线I/O接口包括但不限于:通用串行总线(USB)、IEEE 1394(“火线”)等等。
计算设备600可以包括一个或多个可通信地耦合 的非暂时性数据存储设备660。数据存储设备660可以包括一个或多个硬盘驱动器(HDD)和/或一个或多个固态存储设备(SSD)。一个或多个数据存储设备660可以包括任何当前或未来开发的存储器具、网络存储设备和/或系统。这样的数据存储设备660的非限制性示例可以包括但不限于任何当前或未来开发的非暂时性存储器具或设备,诸如一个或多个磁存储设备、一个或多个光存储设备、一个或多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备或其各种组合。在一些实现中,一个或多个数据存储设备660可以包括一个或多个可移动存储设备,诸如一个或多个闪速驱动器、闪速存储器、闪速存储单元或能够可通信地耦合到计算设备600并从计算设备600可通信地解耦的类似器具或设备。
一个或多个数据存储设备660可以包括将相应的存储设备或系统通信地耦合到总线616的接口或控制器(未示出)。一个或多个数据存储设备660可以存储、保留或以其他方式包含机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构,和/或对处理器核心618和/或图形处理器电路612有用的其他数据,和/或在处理器核心618和/或图形处理器电路612上或由其执行的一个或多个应用。在一些实例中,一个或多个数据存储设备660可以例如经由以下各项来通信地耦合到处理器核心618:经由总线616或经由一个或多个有线通信接口630(例如,通用串行总线或USB);一个或多个无线通信接口620(例如,蓝牙
Figure 998512DEST_PATH_IMAGE001
、近场通信或NFC);和/或一个或多个网络接口670(IEEE 802.3或以太网、IEEE 802.11或Wi-Fi
Figure 43828DEST_PATH_IMAGE001
等)。
处理器可读指令集614和其他程序、应用、逻辑集和/或模块可以全部或部分存储在系统存储器640中。这样的指令集614可以全部或部分地从一个或多个数据存储设备660传送。指令集614可以在由处理器核心618和/或图形处理器电路612执行期间全部或部分地被加载、存储或以其他方式保留在系统存储器640中。
计算设备600可以包括控制能量存储设备652的一个或多个操作方面的功率管理电路650。在实施例中,能量存储设备652可以包括一个或多个原(即,不可充电)或蓄(即,可充电)电池或类似的能量存储设备。在实施例中,能量存储设备652可以包括一个或多个超级电容器或超电容器。在实施例中,功率管理电路650可以变更、调整或控制从外部电源654到能量存储设备652和/或到计算设备600的能量流。电源654可以包括但不限于太阳能系统、商业电网、便携式发电机、外部能量存储设备或其任何组合。
为了方便,处理器核心618、图形处理器电路612、无线I/O接口620、有线I/O接口630、存储设备660和网络接口670被图示为经由总线616彼此通信地耦合,从而提供上述组件之间的连接性。在替代实施例中,上述组件可以以与图5中所图示的不同方式通信地耦合。例如,一个或多个上述组件可以直接耦合到其他组件,或者可以经由一个或多个中间组件(未示出)彼此耦合。在另一示例中,一个或多个上述组件可以集成到处理器核心618和/或图形处理器电路612中。在一些实施例中,可以省略总线616的全部或一部分,并且使用合适的有线或无线连接将组件彼此直接耦合。
例如,实施例可以作为计算机程序产品来提供,该计算机程序产品可以包括一个或多个其上存储有机器可执行指令的机器可读介质,该机器可执行指令当由诸如计算机、计算机网络或其他电子设备之类的一个或多个机器执行时,可以导致一个或多个机器实行根据本文描述的实施例的操作。机器可读介质可以包括但不限于软盘、光盘、CD-ROM(致密盘只读存储器)和磁光盘、ROM、RAM、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪速存储器或其他类型的合适于存储机器可执行指令的介质/机器可读介质。
此外,实施例可以作为计算机程序产品下载,其中程序可以通过体现在载波或其他传播介质中和/或由载波或其他传播介质调制的一个或多个数据信号的方式经由通信链路(例如,调制解调器和/或网络连接)从远程计算机(例如,服务器)传送到请求计算机(例如,客户端)。
贯穿文档,术语“用户”可以可互换地称为“观看者”、“观察者”、“说话者”、“人员”、“个体”、“终端用户”等。要注意的是,贯穿该文档,如“图形域”之类的术语可以与“图形处理单元”、“图形处理器”或简单的“GPU”可互换地引用,并且类似地,“CPU域”或“主机域”可以与“计算机处理单元”、“应用处理器”或简单的“CPU”可互换地引用。
要注意的是,如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算设备”、“计算机”、“计算系统”等术语可以贯穿本文档而可互换地使用。要进一步注意的是,如“应用”、“软件应用”、“程序”、“软件程序”、“包”、“软件包”等术语可以贯穿本文档而可互换地使用。此外,如“作业”、“输入”、“请求”、“消息”等术语可以贯穿本文档而可互换地使用。
在各种实现中,计算设备可以是膝上型计算机、上网本、笔记本、超极本、智能电话、平板计算机、个人数字助理(PDA)、超移动PC、移动电话、台式计算机、服务器、机顶盒、娱乐控制单元、数字相机、便携式音乐播放器或数字视频记录器。计算设备可以是固定的、便携式的或可穿戴的。在另外的实现中,计算设备可以是处理数据或记录数据以供在别处处理的任何其他电子设备。
附图和前述描述给出了实施例的示例。本领域技术人员将领会,一个或多个所描述的元件可以很好地组合成单个功能元件。替代地,某些元件可以被拆分成多个功能元件。来自一个实施例的元件可以被添加到另一个实施例。例如,本文描述的过程的次序可以改变,并且不限于本文描述的方式。此外,任何流程图的动作不需要以所示的次序实现;也不一定需要执行所有的动作。此外,不依赖于其他动作的那些动作可以与其他动作并行执行。实施例的范围决不受这些具体示例限制。无论是否在说明书中明确给出,诸如结构、尺寸和材料使用方面的差异之类的许多变型都是可能的。实施例的范围至少与以下权利要求所给出的一样宽。
实施例可以例如作为计算机程序产品来提供,该计算机程序产品可以包括其上存储有机器可执行指令的一个或多个暂时性或非暂时性机器可读存储介质,该机器可执行指令当由诸如计算机、计算机网络或其他电子设备之类的一个或多个机器执行时,可以导致一个或多个机器实行根据本文描述的实施例的操作。机器可读介质可以包括但不限于软盘、光盘、CD-ROM(致密盘只读存储器)和磁光盘、ROM、RAM、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪速存储器或其他类型的适合于存储机器可执行指令的介质/机器可读介质。
一些实施例与示例1有关,示例1包括促进计算机系统平台中的固件弹性的装置,包括存储用于计算机系统平台的主固件的第一非易失性存储器、存储主固件的固件副本的第二非易失性存储器、以及检测对主固件的未授权访问并利用固件副本复原存储在第一非易失性存储器中的主固件的弹性代理。
示例2包括示例1的主题,其中第二非易失性存储器与第一非易失性存储器隔离。
示例3包括示例1和2的主题,其中弹性代理经由系统构造耦合到第一非易失性存储器,并且经由带外侧信道耦合到第二非易失性存储器。
示例4包括示例1-3的主题,其中弹性代理在引导过程期间检测对主固件的未授权访问。
示例5包括示例1-4的主题,其中弹性代理在检测到对主固件的未授权访问时发起主固件的恢复。
示例6包括示例1-5的主题,其中弹性代理通过经由带外侧信道从第二非易失性存储器检索固件副本来执行主固件恢复。
示例7包括示例1-6的主题,其中弹性代理进一步通过经由系统构造利用固件副本重写主固件来执行主固件恢复。
示例8包括示例1-7的主题,其中弹性代理进一步通过在重写主固件之前认证固件副本来执行主固件恢复。
示例9包括示例1-8的主题,其中固件副本在不能认证固件副本时被修复。
示例10包括示例1-9的主题,进一步包括经由射频(RF)接口耦合到第二非易失性存储器的无线凭证交换(WCE)控制器。
示例11包括示例1-10的主题,其中WCE控制器经由RF接口修复固件副本。
示例12包括示例1-11的主题,其中配置策略包括从计算机系统平台外部的源选择替换固件拷贝源。
一些实施例与示例13有关,示例13包括其上存储有指令的至少一个计算机可读介质,所述指令当被一个或多个处理器执行时,引起处理器认证存储在计算机系统平台中的第一非易失性存储器中的主固件,以确定主固件是否已经被损坏,检测主固件的损坏,以及在检测到主固件的损坏时发起主固件的恢复,包括利用存储在计算机系统平台中的第二非易失性存储器中的固件副本来复原存储在第一非易失性存储器中的主固件。
示例14包括示例13的主题,其中第二非易失性存储器与第一非易失性存储器隔离。
示例15包括示例13和示例14的主题,其中主固件恢复进一步包括经由带外侧信道从第二非易失性存储器检索固件副本。
示例16包括示例13-15的主题,其中主固件恢复进一步包括经由系统构造利用固件副本重写主固件。
示例17包括示例13-16的主题,其中主固件恢复进一步包括在重写主固件之前认证固件副本。
一些实施例与示例18有关,示例18包括促进计算系统中的固件的方法,包括认证存储在计算机系统平台中的第一非易失性存储器中的主固件以确定主固件是否已经被损坏,检测主固件的损坏,以及在检测到主固件的损坏时发起主固件的恢复,包括利用存储在计算机系统平台中的第二非易失性存储器中的固件副本来复原存储在第一非易失性存储器中的主固件。
示例19包括示例18的主题,其中第二非易失性存储器与第一非易失性存储器隔离。
示例20包括示例18和示例19的主题,其中主固件恢复进一步包括经由带外侧信道从第二非易失性存储器检索固件副本。
示例21包括示例18-20的主题,其中主固件恢复进一步包括经由系统构造利用固件副本重写主固件。
示例22包括示例18-21的主题,其中主固件恢复进一步包括在重写主固件之前认证固件副本。
上面已经参考具体实施例描述了示例的实施例。然而,本领域技术人员将理解,在不脱离如所附权利要求中阐述的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。因此,前述描述和附图应以说明性而不是局限性的意义来看待。

Claims (20)

1.一种促进计算机系统平台中的固件弹性的装置,包括:
存储用于计算机系统平台的主固件的第一非易失性存储器;
存储主固件的固件副本的第二非易失性存储器;以及
检测对主固件的未授权访问并利用固件副本复原存储在第一非易失性存储器中的主固件的弹性代理。
2.根据权利要求1所述的装置,其中第二非易失性存储器与第一非易失性存储器隔离。
3.根据权利要求2所述的装置,其中弹性代理经由系统构造耦合到第一非易失性存储器,并且经由带外侧信道耦合到第二非易失性存储器。
4.根据权利要求3所述的装置,其中弹性代理在引导过程期间检测对主固件的未授权访问。
5.根据权利要求4所述的装置,其中弹性代理在检测到对主固件的未授权访问时发起主固件的恢复。
6.根据权利要求5所述的装置,其中弹性代理通过经由带外侧信道从第二非易失性存储器检索固件副本来执行主固件恢复。
7.根据权利要求6所述的装置,其中弹性代理进一步通过经由系统构造利用固件副本重写主固件来执行主固件恢复。
8.根据权利要求7所述的装置,其中弹性代理进一步通过在重写主固件之前认证固件副本来执行主固件恢复。
9.根据权利要求8所述的装置,其中固件副本在不能认证固件副本时被修复。
10.根据权利要求9所述的装置,进一步包括经由射频(RF)接口耦合到第二非易失性存储器的无线凭证交换(WCE)控制器。
11.根据权利要求10所述的装置,其中WCE控制器基于配置策略经由RF接口修复固件副本。
12.根据权利要求11所述的装置,其中配置策略包括从计算机系统平台外部的源选择替换固件拷贝源。
13.一种促进计算系统中的固件的方法,包括:
认证存储在计算机系统平台中的第一非易失性存储器中的主固件以确定主固件是否已经被损坏;
检测主固件的损坏;以及
在检测到主固件的损坏时发起主固件的恢复,包括利用存储在计算机系统平台中的第二非易失性存储器中的固件副本来复原存储在第一非易失性存储器中的主固件。
14.根据权利要求13所述的方法,其中第二非易失性存储器与第一非易失性存储器隔离。
15.根据权利要求14所述的方法,其中主固件恢复进一步包括经由带外侧信道从第二非易失性存储器检索固件副本。
16.根据权利要求15所述的方法,其中主固件恢复进一步包括经由系统构造利用固件副本重写主固件。
17.根据权利要求16所述的方法,其中主固件恢复进一步包括在重写主固件之前认证固件副本。
18.至少一个具有指令的计算机可读介质,所述指令当被一个或多个处理器执行时,引起处理器执行权利要求13-17所述的方法。
19.一种系统,包括实现或执行如权利要求13-17中任一项中所要求保护的方法的机构。
20.一种装置,包括用于执行如权利要求13-17中任一项中所要求保护的方法的构件。
CN202011524082.1A 2020-03-27 2020-12-22 固件弹性机构 Pending CN113448915A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/832,147 US20200226260A1 (en) 2020-03-27 2020-03-27 Firmware resiliency mechanism
US16/832147 2020-03-27

Publications (1)

Publication Number Publication Date
CN113448915A true CN113448915A (zh) 2021-09-28

Family

ID=71517599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011524082.1A Pending CN113448915A (zh) 2020-03-27 2020-12-22 固件弹性机构

Country Status (2)

Country Link
US (1) US20200226260A1 (zh)
CN (1) CN113448915A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240118966A1 (en) * 2022-10-05 2024-04-11 Dell Products L.P. Error correction dynamic method to detect and troubleshoot system boot failures
TWI839123B (zh) * 2023-02-20 2024-04-11 神雲科技股份有限公司 支持平台韌體恢復的管理系統及其韌體回復方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105122261B (zh) * 2013-04-23 2020-04-24 惠普发展公司,有限责任合伙企业 从遭到破坏的系统启动代码中恢复的方法以及计算装置
US10133637B2 (en) * 2016-08-04 2018-11-20 Dell Products L.P. Systems and methods for secure recovery of host system code
US10395038B2 (en) * 2018-02-01 2019-08-27 Quanta Computer Inc. System and method for automatic recovery of firmware image
US11695735B2 (en) * 2018-05-10 2023-07-04 Nxm Labs, Inc. Security management for net worked client devices using a distributed ledger service
US10740084B2 (en) * 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
JP7425797B2 (ja) * 2019-06-10 2024-01-31 グーグル エルエルシー ファームウェアのセキュアな検証
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process

Also Published As

Publication number Publication date
US20200226260A1 (en) 2020-07-16

Similar Documents

Publication Publication Date Title
US12001826B2 (en) Device firmware update techniques
CN111052118B (zh) 硬件实施的固件安全
US10860305B1 (en) Secure firmware deployment
EP3123312B1 (en) In-system provisioning of firmware for a hardware platform
KR20130058058A (ko) 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시
US11928215B2 (en) Firmware verification mechanism
US10523427B2 (en) Systems and methods for management controller management of key encryption key
US11347858B2 (en) System and method to inhibit firmware downgrade
US11909882B2 (en) Systems and methods to cryptographically verify an identity of an information handling system
CN109804598B (zh) 信息处理的方法、系统及计算机可读介质
CN113449349A (zh) 平台安全机制
CN113448915A (zh) 固件弹性机构
US20210110043A1 (en) Platform firmware boot mechanism
CN116561826A (zh) 基于固件所有权历史来管理对管理控制器秘密的使用
US11429289B2 (en) Memory map protection mechanism
US11429496B2 (en) Platform data resiliency mechanism
US20210216640A1 (en) Systems and methods for hardware root of trust with protected redundant memory for authentication failure scenarios
US11568048B2 (en) Firmware descriptor resiliency mechanism
US20240311495A1 (en) Recovery key management and storage
US12229270B2 (en) Mechanism to update attested firmware on a platform
US11861009B2 (en) Mechanism to update attested firmware on a platform
US20240232026A9 (en) Improving restoration of firmware data
WO2022133873A1 (en) Configurable fault tolerant mechanism

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