CN104603792B - 安全固件更新 - Google Patents

安全固件更新 Download PDF

Info

Publication number
CN104603792B
CN104603792B CN201380045591.8A CN201380045591A CN104603792B CN 104603792 B CN104603792 B CN 104603792B CN 201380045591 A CN201380045591 A CN 201380045591A CN 104603792 B CN104603792 B CN 104603792B
Authority
CN
China
Prior art keywords
update
equipment
firmware
firmware update
hardware resources
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.)
Active
Application number
CN201380045591.8A
Other languages
English (en)
Other versions
CN104603792A (zh
Inventor
R·D·杨
S·A·弗达利
W·P·蒙特马利
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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
Priority claimed from US13/597,641 external-priority patent/US9218178B2/en
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN104603792A publication Critical patent/CN104603792A/zh
Application granted granted Critical
Publication of CN104603792B publication Critical patent/CN104603792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

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

Abstract

描述了以限定且一致的方式集中式地处理对硬件资源的安全固件更新的固件更新系统。该固件更新系统被配置成在预引导环境中(例如,在加载操作系统之前)管理至少某些固件更新。由此,该固件更新系统行使对更新的控制并减少暴露给攻击者的入口点。在一种方法中,为由固件更新系统管理的硬件资源定义更新状态。在预引导环境中,受管硬件资源的更新状态被设置成启用固件更新。固件更新系统然后可检测并应用对受管硬件资源可用的固件更新。更新状态可以在加载操作系统之前被设置为禁用,以使得在安全预引导环境之外禁用对受管资源的固件更新。

Description

安全固件更新
背景
计算平台的不同硬件资源(例如,模块、组件和设备)可具有不时发布对其的更新的固件。传统上,独立硬件供应商(IHV)和原始设备制造商(OEM)负责处理对其自己的硬件资源的固件更新。因此,不同的供应商和制造商可建立通常在后引导环境中(例如,在计算平台加载操作系统之后)操作的用于部署和应用经更新的固件的不同、独立和/或专用机制和系统。这些多个第三方机制可能由于提供可被利用来注入用于硬件资源的不合适和/或恶意的固件的相应入口点而造成安全威胁。因此,在后引导环境中启用的传统固件更新呈现了可能被用来取得对计算平台的控制和/或对计算平台造成损害的安全威胁。
概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
描述了安全固件更新。在一个或多个实施例中,固件更新系统被实现为以限定且一致的方式集中式地处理对硬件资源的固件更新。固件更新系统被配置成在预引导环境中(例如,在加载操作系统之前)处理至少某些固件更新。由此,该固件更新系统可行使对更新的控制并减少暴露给攻击者的入口点。在一种方法中,为由固件更新系统管理的硬件资源定义更新状态。在预引导环境中,受管硬件资源的更新状态被设置成启用固件更新。固件更新系统然后可检测并应用对受管硬件资源可用的固件更新。在应用更新后,更新状态被设置成禁用固件更新并加载操作系统。在已加载的操作系统的运行时环境中,禁用对受管硬件资源的固件更新。
附图简述
图1示出其中可采用安全固件更新的一个或多个实施例的示例操作环境。
图2是示出根据一个或多个实施例的设备的示例资源的图示。
图3是描述根据一个或多个实施例的示例过程的细节的流程图。
图4是描述根据一个或多个实施例的另一示例过程的细节的流程图。
图5是描述根据一个或多个实施例的又一示例过程的细节的流程图。
图6是可以实现各种实施例的系统的框图。
详细描述
概览
传统上,独立硬件供应商(IHV)和原始设备制造商(OEM)负责处理对其自己的硬件资源的固件更新,这可能暴露攻击者可利用来注入恶意固件的不受控制的入口点。
描述了安全固件更新。在一个或多个实施例中,固件更新系统被实现为以限定且一致的方式集中式地处理对硬件资源的固件更新。固件更新系统被配置成在预引导环境中(例如,在加载操作系统之前)处理至少某些固件更新。由此,该固件更新系统可行使对更新的控制并减少暴露给攻击者的入口点。在一种方法中,为由固件更新系统管理的硬件资源定义更新状态。在预引导环境中,受管硬件资源的更新状态被设置成启用固件更新。固件更新系统然后可检测并应用对受管硬件资源可用的固件更新。在应用更新后,更新状态被设置成禁用固件更新并加载操作系统。在已加载的操作系统的运行时环境中,禁用对受管硬件资源的固件更新。
在以下讨论中,提供了题为“操作环境”的章节,该章节描述其中可采用一个或多个实施例的一个环境。然后,题为“安全固件更新示例”的章节描述了根据一个或多个实施例的一个示例技术和细节。最后,题为“示例系统”的章节描述了可用于实现一个或多个实施例的示例计算系统和设备。
操作环境
图1在100处概括地示出根据一个或多个实施例的操作环境。环境100包括计算设备102,计算设备102具有处理系统104、一个或多个计算机可读介质106、操作系统108以及驻留在计算机可读介质上并可由处理器执行的一个或多个应用110。处理系统104可以按各种方式被配置成从应用110检索并执行计算机程序指令以便向计算设备102提供各种各样的功能,包括但不限于游戏、办公生产力、电子邮件、媒体管理、打印、联网、web浏览等。还可包括与应用110相关的各种数据和程序文件,例如包括游戏文件、办公文档、多媒体文件、电子邮件、数据文件、网页、用户简档和/或偏好数据等。
计算设备102可被具体化为任何合适的计算系统和/或设备,诸如作为示例而非限制:游戏系统、台式计算机、便携式计算机、平板或板式计算机、诸如个人数字助理(PDA)等手持式计算机、蜂窝电话、机顶盒等等。例如,如图1所示,计算设备102可被实现为电视机客户端设备112、计算机114和/或连接到显示设备118以显示媒体内容的游戏系统116。或者,计算设备可以是任何类型的便携式计算机、移动电话、便携式设备120、平板或板式设备122和/或可包括集成显示器。任一计算设备可以实现有各种组件,诸如一个或多个处理器和存储器设备以及不同组件的任何组合。可表示包括计算设备102的各种系统和/或设备的计算系统的一个示例以下在图6中示出和描述。
计算机可读介质可包括,作为示例而非限制,通常与计算设备相关联的所有形式的易失性和非易失性存储器和/或存储介质。这种介质可包括ROM、RAM、闪存、硬盘、可移动介质等。计算机可读介质可包括“计算机可读存储介质”和“通信介质”二者,其示例可在图6的示例计算系统的讨论中找到。
计算设备102还包括表示通常与计算设备相关联的不同组件和设备的各种不同的硬件资源124。硬件资源124可包括集成组件、可移动组件以及可经由有线和/或无线连接来连接到计算设备102的外部外围设备。硬件资源124中的至少某一些具有可根据上文和下文描述的技术来更新的相关联的固件126。一些示例硬件资源124以下参考图2讨论。
图1的计算设备102还包括驻留在计算机可读介质上且可由处理器执行的固件系统128和安全更新模块130。固件系统128表示以下功能:实现固件接口并执行如上文和下文描述的用于集中式地管理对多个硬件资源124的固件更新的各种技术。固件系统128可被实现为如图1所描绘的独立组件。固件系统128还可被实现为操作系统108的集成组件。
安全更新模块130表示以下功能:实现上文和下文描述的用于安全固件更新的技术。具体而言,安全更新模块可管理对计算设备的所选硬件资源的更新。一般而言,这涉及在预引导环境中启用对受管硬件资源的更新,调用并与固件系统128对接以使得在预引导环境中应用可用固件更新,并且随后在引导OS之前禁用对受管硬件资源的固件更新。以此方式,在由安全更新模块130控制的安全预引导环境之外禁用对受管硬件资源的固件更新。安全更新模块130可被实现为如图1所描绘的独立组件。本文描述的与安全更新模块130和/或固件系统128有关的一些功能也可由计算设备102的引导程序和/或操作系统108来实现。
固件系统128对固件更新的管理可包括但不限于:发现资源以及检测、分析、获取、分发、安装和跟踪对已注册或以其他方式被指定通过固件更新系统获取固件更新的特定资源的固件更新。一般而言,标识被指定为通过该系统来进行固件处理的资源,并且检测对这些资源的可用更新。固件系统128还可用于获取合适形式的更新并且将更新部署/分发到适当的资源以发起安装。固件系统128还可执行对更新的跟踪以标识成功或失败,记录关于已安装的固件的版本信息、启用固件回滚,等等。
以此方式,固件更新可以在预引导环境中通过与固件系统128结合的安全更新模块130来安全地执行。对固件更新的处理被卸载到固件系统128,该固件系统128被配置成代表不同的硬件资源124和/或相应的IHV和OEM来集中式地管理固件更新。安全更新模块130然后操作以在预引导环境之外禁用固件更新。这些和其他方面参考以下附图更详细地描述。
构想可被指定为由固件系统管理的各种不同的硬件资源124。作为示例而非限制,图2在200处概括地描绘了与示例计算设备102有关的一些代表性硬件资源124。图2所示的计算设备102包括可以与设备的特定处理系统、架构和/或平台相关联的系统固件202,在该示例中该特定处理系统、架构和/或平台被描绘为可以按各种方式配置的中央处理单元(CPU)124(1)。例如,CPU可被实现为被配置成包括作为单个芯片的多个不同的集成硬件组件的片上系统(SoC)处理器。还构想包括基于ARM和x86架构的其他类型的CPU体系架构。图2所示的可具有可更新的相应设备固件204的各种其他示例硬件资源包括不同的通信无线电124(2)(例如,WiFi、移动宽带、蓝牙、近场通信(NFC)等)、微处理器124(3)、传感器124(4)(例如,相机、陀螺仪、加速计、GPS、压力传感器、邻近度传感器等)、控制器124(4)(例如,触摸控制器、音频/视频控制器、存储器控制器、USB控制器等)以及计算设备的其他124(5)集成硬件资源。
本文描述的用于安全固件更新的技术也可适用于可经由相应的接口208连接到计算设备102的附属设备206。构想可经由有线和/或无线接口连接的各种不同附件。附属设备206包括被配置成通过相应的端口、舱或计算设备102的其他集成连接部分来收纳和连接的外部外围设备和/或可移动、可插拔设备。不同的附属设备206可以在不同的时间连接到计算设备102。至少某些附属设备206被配置为可热插拔(例如,即插即用)设备。作为示例而非限制,附属设备206可包括输入设备206(1)(例如,键盘、鼠标、指示笔等)、输出设备206(2)(例如,扬声器、耳机、打印机等)和显示设备206(3)以及各种其他206(4)设备,诸如游戏控制器、电源适配器、音乐附属设备等。附属设备206可具有在各设备上维护的、可通过固件系统更新的相关联的固件204,如图2所描绘的。
每一个资源因此可具有其自己的相关联的设备固件204。对设备固件204的更新可以与资源匹配并且在个体的基础上应用于集成和附属设备两者。另外地或另选地,一些资源的设备固件204可以按组合的方式作为对系统固件202的更新的一部分来更新。例如,多个微处理器、控制器和其他组件可被集成为SoC处理器或其他CPU的一部分,并且可以一起更新。一般而言,本文描述的安全固件更新可以在预引导环境中选择性地应用于可包括集成组件和附属设备两者的指定硬件资源的所选集合。供通过该系统管理的所指定的硬件资源可根据各种准则来被选为计算设备的核心组件。例如,核心硬件资源可包括由计算设备制造商开发或者与计算设备制造商紧密关联的、与伙伴OEM/IHV相关联的、被认为对于设备操作和用户体验是至关重要的(诸如核心处理/存储器/显示器组件)和/或作为设备设计和/或默认配置的一部分来提供的那些资源。SoC设计的集成组件是可被设计成供经由系统进行集中式管理的核心硬件资源的一个示例。多个其他微处理器、控制器和/或其他个别组件也可被设计成供通过该系统来进行固件管理。
在某些情况下,对某些非所选硬件资源的固件更新可以使用传统技术在固件系统128之外和/或在后引导环境中管理。但在一个或多个实施例中,安全更新模块130可被配置成限制或防止在预引导环境之外进行任何固件更新。在该方法中,安全更新模块130被实现为以安全的方式通过固件系统128来控制对计算设备的每一个硬件资源124的固件更新。
在描述了示例操作环境后,现在考虑根据一个或多个实施例的关于安全固件更新的示例细节。
安全固件更新示例
在以下章节中,讨论安全固件更新的实现细节和示例技术。讨论包括可以结合任何合适的硬件、软件、固件或其组合来实现的一些示例过程。在至少一些实施例中,过程可通过诸如图1中的包括或以其他方式利用固件系统128和安全更新模块130的示例计算设备102等经适当地配置的计算设备来实现。
图3描绘了其中在预引导环境中执行安全固件更新的示例过程300。响应于计算设备的启动来建立安全预引导环境(框302)。具体而言,当计算设备通电或重启时,被构建到设备中的集成引导程序通常执行以初始化系统,运行自检并标识系统的硬件资源124。此外,引导程序还可执行各项操作以便将硬件资源配置成供使用并加载设备的操作系统。
引导程序可包括或利用如本文描述的固件系统128和/或安全更新模块130。固件系统128和/或安全更新模块130提供固件接口,该固件接口被配置成初始化硬件资源,加载用于资源的适当驱动程序以及以其他方式执行为用于启动系统的引导序列定义的操作。本文描述的技术可以结合各种不同类型的固件系统实现。合适的固件系统的示例包括但不限于统一可扩展固件接口(UEFI)、高级配置和电源接口(ACPI)、基本输入输出系统(BIOS)接口和/或自定义应用编程接口(API)。
安全更新模块130还可被配置成实现用于设备的安全引导模式。安全引导模式提供阻止执行不可信的、未经识别的和/或恶意代码的安全预引导环境。具体而言,安全更新模块130可实现并实施限定什么种类的程序和引导服务能够在预引导环境中运行和受限的安全策略。可采用用于验证代码的各种技术来确保被允许在安全引导模式中运行的任何代码都是可信的。例如,信任判定可通过对照与已知的可信实体相关联的数字签名来检查与代码相关联的数字签名来做出。假定对应于代码的数字签名被确定为有效,代码可被指定为可信并被允许运行。另一方面,未经签署或不具有有效数字签名的代码可被指定为不可信的并且可阻止不可信代码的执行。另外,安全更新模块130可确保在计算设备上加载的引导程序和/或对应的操作系统是可信的。
在预引导环境中启用对计算设备的所选硬件资源的固件更新(框304)。在此,硬件资源可被配置成在不同的更新状态之间切换以使得固件更新可被选择性地启用和禁用。这可以按各种方式进行。例如,与硬件资源124相关联的固件126可被配置成响应于相应的事件、输入和/或触发事件而使得被定义为控制固件更新的数据字段在更新启用状态和更新禁用状态之间切换。在一种方法中,布尔字段或与硬件资源124相关联的其他合适的更新状态数据对象/参数可被默认设置为在计算设备通电或重启时启用更新。另外地或另选地,安全更新模块130可被配置成发送作为引导序列的一部分的、使硬件资源124启用固件更新的命令。响应于启用命令,固件或与硬件资源124相关联的其他代码可设置适当的数据字段或以其他方式采取行动以启用固件更新。
在安全预引导环境中发起对所选硬件资源可用的固件更新的安装(框306)。具体而言,安全固件更新在预引导环境中被应用于可包括如上所述的集成组件和附属设备两者的指定硬件资源的所选集合。可以响应于适当的命令或以其他方式默认在安全预引导环境中启用对所指定的硬件资源的更新。
如上所述,固件系统128被配置成对固件更新进行管理,所述管理包括但不限于:发现资源以及检测、分析、获取、分发、安装和跟踪对已注册或以其他方式被指定通过固件更新系统获取固件更新的特定资源的固件更新。可使用包括与UEFI、ACPI和/或BIOS固件接口相关联的技术在内的各种不同的技术来发现、获取和应用更新。在某些情形中也可采用专用和自定义API以及代码来实现固件更新。
在固件更新的上下文中,在安全预引导环境中应用的任何更新遵循已确立的安全策略。由此,由固件系统处理和应用的更新包由该系统数字地签署并标识为可信。作为更新过程的一部分,该系统可检查可用更新和/或固件的已安装版本以验证各个版本是正确的、固件被正确地匹配至平台的资源以及固件是安全/可信的。该系统可被进一步配置成标示或报告任何问题并自动尝试通过在合适的情形中定位和重新应用正确的固件来纠正任何缺陷。
另外,可实现延迟固件更新特征以分步实施对诸如断开连接的附属设备等不可用的设备的更新。在这种情况下,该系统可获取可用更新并继续在每一次重新引导时检查相应的资源直到该设备可用。然后将更新应用于适当的资源。在一种方法中,某些硬件资源(例如,所指定的CPU或微控制器)可被配置成将固件更新传递至包括被延迟的资源在内的其他资源。在该方法中,“主”资源可以在固件系统的指示下分步实施对其他组件的更新,并且然后处理与其他组件的交互以应用更新。这可包括在启动时检查这些组件的可用性并在适当时分发更新。
在应用任何可用更新后,在安全预引导环境之外禁用对所选资源的固件更新(框308)。以此方式,固件系统128可控制对受管设备的固件更新以使得在安全预引导环境中执行更新并且在该受控环境之外阻止更新。为了禁用对受管设备的固件更新,安全更新模块可以向硬件资源124传递使得硬件资源禁用固件更新的适当命令。当系统无法建立安全预引导环境时,也可采用禁用命令或其他类似技术来禁用更新并绕过固件更新过程。另一选项是将计时器与设备相关联,该计时器设置用于更新固件的有限时间段。然后可根据该计时器来禁用更新,如下文更详细地描述的。如同先前描述的启用命令或在启动时启用的行为,与硬件资源124相关联的固件或其他代码可响应于用于禁用固件更新的禁用命令来设置适当的数据字段或以其他方式采取相应行动。
引导程序然后可向引导加载程序传递控制并移交处理,以便在禁用对受管设备的固件更新的情况下加载操作系统。因此,在OS的运行时环境中禁用固件更新。由于在设备层面禁用固件更新,因此在运行时暴露的潜在入口点无法被用来安装恶意固件。参考以下示例过程来讨论安全固件更新的这些和其他方面的附加细节。
图4描绘了表示根据一个或多个实施例的安全固件更新的示例逻辑的过程400。启动用于计算设备的引导程序(框402)。例如,可以在计算设备通电或重启时执行用于处理计算设备的启动/初始化的默认引导代码。如上所述,引导程序实现用于初始化计算设备和相关联的硬件资源124的引导序列。引导程序还可通过调用或以其他方式与被配置成实现安全固件更新的安全更新模块130交互来控制对与硬件资源124相关联的固件126的更新。
做出关于引导程序是否建立安全环境的判定(框404)。例如,安全更新模块130可实现安全引导模式。安全引导模式可被用作供设备提供其中不可信代码被限制和/或阻止执行的安全预引导环境的独占或可选引导模式。对于某些设备,用户可选选项可被设置成控制安全引导模式是否是有效的。另一用户可选选项可控制安全固件更新是否是有效的。在应用可用固件更新之前,安全更新模块130可执行一个或多个检查以确定安全引导模式和安全更新是否是有效的。如果安全引导模式是有效的,则安全更新模块130还确定是否已经成功地建立安全预引导环境。
可基于上述判定的结果来选择性地执行固件更新过程。一般而言,在建立安全预引导环境时应用对受管资源的安全固件更新。然后,如果由于安全引导模式被停用或出于某一其他原因而无法建立安全预引导环境,则可绕过固件更新过程。
假设在框404存在安全环境,则查明被指定为通过固件系统来进行固件更新管理的硬件资源(框406)。然后,做出关于更新是否对在框406查明的受管硬件资源可用的判定(框408)。如果更新可用,则应用可用更新(框410)。框410表示可用于实现固件更新的各种技术和操作。
作为示例,固件系统128和/或操作系统108可被配置成参考具有限定的格式的数据结构,该数据结构标识并描述与计算设备102相关联的硬件资源124和对应的固件126的属性。该数据结构提供用于向系统标识用于更新的系统固件、设备固件和附属设备固件的机制。在至少一些实施例中,核心系统固件负责分配和填充具有指定格式的数据结构。另外地或另选地,引导程序可用于创造和填充数据结构以枚举与计算设备相关联的硬件资源。这可以在用于计算平台的引导序列期间进行。可以为每一个引导序列实例化不同的数据结构实例以反映固件资源的当前数据。该数据结构可经由UEFI或另一合适的接口(例如,ACPI、BIOS、自定义API等)来展示。固件系统128和/或安全更新模块130然后可利用该数据结构中所包含的关于资源的数据条目来发现资源、配置固件更新、部署更新并以其他方式设置和处理对该数据结构中所枚举的设备的固件更新。
仅仅作为一个说明性示例,该数据结构可被配置为用于统一可扩展固件接口(UEFI)系统的表。UEFI是定义用于预引导环境中的平台的操作系统和固件之间的接口的参数的标准。UEFI提供用于通过函数、方法、表等来向OS描述平台的各方面的标准规约。具体而言,UEFI提供用于引导期间的系统引导代码和OS的引导加载程序之间的数据交换和交互的基础结构、规约和技术。在至少某些实施例中,按UEFI定义的基础结构可被用来创造用于实现安全固件更新的合适的数据结构。但应理解,也可采用各种其他种类的技术、系统、表、数据库和/或数据结构来以类似方式向固件系统枚举硬件资源。
合适的数据结构中的条目标识和描述具有可更新固件的硬件资源。这可包括资源类型和分类数据;关于如何与资源交互和更新资源的指令/细节;可用于注册、下载或以其他方式获取更新的链接、位置和/或地址;等等。此外,条目的元数据可记录对应于所描述的资源的状态/版本信息。可以为条目定义各种不同的字段以捕捉足以使安全更新模块130能够设置和执行更新的信息。在至少一些实施例中,不同字段包括如上所述的可根据本文描述的技术来被选择性地设置成启用或禁用对相应资源的固件更新的更新状态字段。与数据结构中的条目相关联的更新状态字段反映与被枚举的硬件资源相关联的固件中所包含的对应的更新状态字段。因此,设置针对特定资源的更新状态字段的值可导致对该特定资源的固件内的值的改变。
再次注意,上述表和/或UEFI实现是作为适于供固件更新系统使用的数据结构的说明性示例来提供的。在实践中,可采用用于展示关于硬件资源的数据的各种不同的格式和技术。例如,可以为包括但不限于ACPI、自定义API和BIOS接口在内的OS和系统引导代码之间的其他种类的接口配置类似于上述示例的表或其他数据结构。
所采用的固件更新过程可取决于所实现的固件系统128的特定类型而变化。但一般而言,安全更新模块130可检查更新是否对从所展示的数据结构中标识的资源可用。例如,可将数据结构中所包含的固件版本信息与已发布的更新进行比较以确定当前为资源安装的固件是否是最新的。安全更新模块然后可以按特定固件系统所规定的方式定位并获取对过期固件可用的更新。安全更新模块130还可检查与更新相关联的数字签名和/或其他证书以做出如上所述的信任判定。可信更新可以在安全预引导环境内应用。这可涉及分发可信的更新包以供相应的硬件资源消费以应用更新。更新包可根据UEFI或平台实现的另一固件系统来配置和分发。在另一方法中,安全更新模块130可被配置成代表至少某些硬件资源来应用更新。另一方面,安全更新模块130可被配置成通过丢弃、删除、忽略、隔离或其他方式阻止系统执行和应用不可信更新来拒绝不可信更新。
一旦如安全更新模块所指示的那样处理可用更新,就向受管资源发送通知以使得受管资源禁用固件更新(框412)。这有效地在安全预引导环境之外禁用对受管设备的固件更新。该通知可包含供硬件资源处理的禁用命令。具体而言,硬件资源124的固件可被配置成处理来自固件系统128的命令以便按指示启用或禁用固件更新。可以向多个资源发送全局通知消息。另外地或另选地,可以向至少一些资源发送设备专用消息。
此外,对于某些资源,可使用计时器来控制固件更新并阻止在所限定的时间段之外进行更新。例如,可以在设备通电时设置计时器,这在通电后的限定时间段内启用更新。当计时器期满时,更新被自动禁用。在该方法中,计时器的长度可被设为少于引导序列的预期时间,以使得在OS加载之前禁用更新。
然后可以在禁用对受管资源的固件更新的情况下加载操作系统(框414)。在此,处理可以在以所描述的方式禁用固件更新后被移交给引导加载程序。引导加载程序然后处理OS的引导。在OS的运行时环境中,更新受管硬件资源的固件的尝试被拒绝,因为这些资源已被设置成在设备层面禁用更新。
当在框408更新不可用时,过程400可继续至框412处的禁用通知以及框414中的在不执行框410所表示的应用更新操作的情况下直接加载操作系统。同样,在框404不存在安全环境的情况下,过程400可通过框412处的禁用命令来禁用更新并且然后在框414加载操作系统。在这种情况下,系统可以在安全环境不可用时完全绕过固件更新。
在某些情况下,引导程序可以在安全环境不可用时生成错误消息。可以呈现提示以向用户请求关于处理错误的选项的输入。例如,可提示用户指示中止加载、正常启动还是在提供一组减少的功能的安全模式中启动,等等。或者,系统可被配置成在不存在安全环境时自动中止引导序列。
图5描绘了根据一个或多个实施例的其中选择性地设置更新状态以实现安全固件更新的过程500。将与计算设备相关联的一个或多个受管硬件资源的更新状态设置成在安全预引导环境中启用固件更新(框502)。可以按上述方式单独为不同的资源设置更新状态。状态可使用所指定的字段或与资源相关联的其他合适的数据对象/参数来设置。更新状态可以在系统通电时按默认设置、响应于通知/命令设置或以其他方式设置。
在另一方法中,SoC设备或其他指定组件(例如,所指定的中央处理单元(CPU)、微处理器或控制器设备)的核心系统固件可被配置为连接到每一个受管硬件资源的看护者。在该方法中,对受管硬件资源的固件更新可通过对应于看护者设备的系统固件202来集中式地更新和处理。系统固件202可负责在启用固件更新时向其他资源分发更新。因此,对多个不同硬件资源的更新可通过管理SoC设备或其他指定看护者的更新状态来控制。当所指定的看护者设备的更新状态被设为禁用更新时,系统固件被配置成不向其他设备/资源分发更新。以此方式,对一组所选设备的固件更新可通过管理与所指定的看护者设备相关联的状态来被启用或禁用。
检测对一个或多个受管硬件资源可用的更新(框504),并且应用检测到的可用更新(框506)。对更新的处理和安装可以按上述方式使用不同的固件系统128和技术来进行。一般而言,这涉及枚举通过该系统进行固件管理的一组指定硬件资源。只要启用对所枚举的资源的安全更新,固件系统128就可以与安全更新模块130结合发现和部署对所枚举的资源可用的更新。例如,该系统可获取更新包并分发更新包以供各个资源应用更新。当采用所指定的看护者设备时,根据固件系统来格式化的更新包可通过看护者设备的固件来集中式地发现和部署。在一些实施例中,安全更新模块130被配置为用于集中式地处理对所指定的硬件资源的安全固件更新的看护者设备的组件。
在应用更新后向一个或多个受管硬件资源传递禁用命令以将更新状态改为在后引导环境中禁用固件更新(框508)。这可以就在控制被传递至引导加载程序以加载OS之前进行。同样,对资源的更新通过设置与每一个不同的硬件资源相关联的更新字段来单独禁用。但是,当采用所指定的看护者设备时,对通过看护者设备来集中式地管理的资源的更新可通过设置看护者设备本身的状态(该状态禁用对多个资源的更新)来一起禁用。将状态设为禁用阻止看护者设备向其他资源分发任何固件更新。
在考虑了关于安全固件更新的示例细节和技术后,考虑讨论根据一个或多个实施例的示例系统。
示例系统
图6示出了包括示例计算设备602的示例系统600,该示例计算设备602表示可以实现此处描述的各种技术的一个或多个计算系统和/或设备。计算设备602可以是,例如,服务提供方的服务器、与客户机相关联的设备(例如,客户机设备)、片上系统、和/或任何其他合适的计算设备或计算系统。
所示的示例计算设备602包括处理系统604、一个或多个计算机可读介质606、以及相互通信地耦合的一个或多个I/O接口608。尽管没有示出,计算设备602可进一步包括系统总线或将各种组件相互耦合的其它数据和命令传输系统。系统总线可包括不同总线结构中的任一个或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任一种的处理器或局部总线。也构想了各种其它示例,诸如控制和数据线。
处理系统604表示使用硬件执行一个或多个操作的功能。因此,处理系统604被示为包括可被配置为处理器、功能块等的硬件元件610。这可包括在作为专用集成电路或使用一个或多个半导体构成的其它逻辑设备的硬件中的实现。硬件元件610不受形成它们的材料或者在其中所利用的处理机制的限制。例如,处理器可以由半导体和/或晶体管(例如,电子集成电路(IC))构成。在这一上下文中,处理器可执行指令可以是可电子地执行的指令。
计算机可读介质606被示为包括存储器/存储612。存储器/存储612表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储612可包括易失性介质(如随机存取存储器(RAM))和/或非易失性介质(如只读存储器(ROM)、闪存、光盘、磁盘等等)。存储器/存储612可包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如闪存、可移动硬盘驱动器、光盘等等)。计算机可读介质606可以下面进一步描述的各种方式来配置。
输入/输出接口608表示允许用户向计算设备602输入命令和信息的功能,并且还允许使用各种输入/输出设备向用户和/或其他组件或设备呈现信息。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、用于语音操作的话筒、扫描仪、触摸功能(例如,电容性的或被配置来检测物理接触的其它传感器)、照相机(例如,可采用可见或诸如红外频率的不可见波长来将不涉及触摸的移动检测为姿势),等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备,等等。因此,计算设备602可以下面进一步描述的各种方式来配置以支持用户交互。
此处可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。一般而言,这种模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等等。本文使用的术语“模块”、“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的各特征是平台无关的,从而意味着该技术可在具有各种处理器的各种商用计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。计算机可读介质可包括可由计算设备602访问的介质。作为示例而非限制,计算机可读介质可包括“计算机可读存储介质”和“通信介质”。
“计算机可读存储介质”可以指相对于仅信号传输、载波、或信号本身而言,启用对信息的持久存储的介质和/或设备。因此,计算机可读存储介质不包括信道承载或瞬时介质。计算机可读存储介质包括以适合于存储如计算机可读指令、数据结构、程序模块、逻辑元件/电路、或其他数据等的方法或技术来实现的诸如易失性和非易失性、可移动和不可移动介质和/或存储设备的硬件。该计算机可读存储介质的示例包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、硬盘、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可适用于存储所需信息并可由计算机访问的其它存储设备、有形介质或制品。
“通信介质”可以指被配置为诸如经由网络向计算设备602的硬件传输指令的信号承载介质。通信介质通常用诸如载波、数据信号、或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。通信介质还包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线路连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。
如先前所描述的,硬件元件610和计算机可读介质606代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其可在某些实施例中被采用来实现此处描述的技术的至少某些方面。硬件元件可包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD),和用硅的其它实现的组件或其它硬件设备。在此上下文中,硬件元件可以充当处理设备,该处理设备执行由该硬件元件以及用于存储供执行的指令的硬件设备(例如前面描述的计算机可读存储介质)所体现的指令、模块和/或逻辑所定义的程序任务。
前面的组合也可被采用来实现在此描述的各种技术。因此,软件、硬件,或程序模块(包括操作系统108、应用110、固件系统128、安全更新模块130和其他程序模块)可被实现为一个或多个指令和/或在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件610实现的逻辑。计算设备602可被配置成实现特定指令和/或对应于软件和/或硬件模块的功能。因此,将模块实现为可由计算设备602执行为软件的模块可至少部分以硬件完成,例如,通过使用处理系统的计算机可读存储介质和/或硬件元件610。指令和/或功能可以是一个或多个制品(例如,一个或多个计算设备602和/或处理系统604)可执行/可操作的,以实现此处描述的技术、模块,以及示例。
如在图6中进一步所示,示例系统600启用了用于当在个人计算机(PC)、电视设备和/或移动设备上运行应用时的无缝用户体验的普遍存在的环境。服务和应用在所有三个环境中基本相似地运行,以便当使用应用、玩视频游戏、看视频等时在从一个设备转换到下一设备时得到共同的用户体验。
在示例系统600中,多个设备通过中央计算设备互连。中央计算设备对于多个设备可以是本地的,或者可以位于多个设备的远程。在一个实施例中,中央计算设备可以是经由通过网络、因特网或其他数据通信链路连接到多个设备的一个或多个服务器计算机来实现的分布式云环境。
在一个实施例中,该互连架构使得功能能够跨多个设备递送以向多个设备的用户提供共同且无缝的体验。多个设备的每一个可具有不同的物理要求和能力,且中央计算设备使用一平台来使得为设备定制且又对所有设备共同的体验能被递送到设备。在一个实施例中,创建目标设备的类,且使体验针对设备的通用类被定制。设备类可由设备的物理特征、用途类型、或其他共同特性来定义。
在各种实现中,计算设备602可采取各种不同的配置,诸如用于计算机614、移动设备616和电视机618用途。这些配置中的每一个包括可具有一般不同的构造和能力的设备,并且因而计算设备602可根据不同的设备类中的一个或多个来配置。例如,计算设备602可被实现为计算机614类设备,该计算机类设备包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备602还可被实现为移动616类设备,该移动类设备包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备。计算设备602还可被实现为电视机618类设备,该电视机类设备包括在休闲观看环境中具有或连接到通常更大的屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等。
本文所描述的技术可由计算设备602的这些各种配置来支持,且不限于在本文描述的各具体示例。这是通过在计算设备602上包括安全更新模块130来示出的。安全更新模块130和其他模块/应用所表示的功能也可全部或部分通过对分布式系统的使用(诸如如下所述的经由平台622通过“云”620)来实现。
云620包括和/或表示资源624的平台622。平台622抽象云620的硬件(如,服务器)和软件资源的底层功能。资源624可包括可在计算机处理在位于计算设备602远程的服务器上执行时使用的应用和/或数据。资源624也可包括在因特网上和/或通过诸如蜂窝或Wi-Fi网络之类的订户网络上提供的服务。
平台622可抽象资源和功能以将计算设备602与其他计算设备相连接。平台622还可用于抽象资源的规模以向经由平台622实现的资源624所遇到的需求提供对应的规模级别。因此,在互联设备的实施例中,本文描述的功能的实现可分布在系统600上。例如,该功能可部分地在计算设备602上以及经由抽象云620的功能的平台622来实现。
结语
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (10)

1.一种计算设备,包括:
具有可更新固件的一个或多个硬件资源;以及
存储安全更新模块的存储器,所述安全更新模块被配置成:
在所述计算设备启动时建立安全预引导环境;
在所述安全预引导环境中启用经由固件系统的对所述一个或多个硬件资源的固件更新;以及
基于设置与所述一个或多个硬件资源相对应的数据结构中的更新状态字段的值来在所述安全预引导环境之外禁用对所述一个或多个硬件资源的固件更新。
2.如权利要求1所述的计算设备,其特征在于,所述安全更新模块被进一步配置成:
检测对所述一个或多个硬件资源可用的更新;以及
通过以下操作来在所述安全预引导环境中发起对检测到的更新的安装:
通过所述固件系统来获取用于可用更新的更新包;以及
将所述包分发至所述一个或多个硬件资源以使得所述硬件资源应用所述更新。
3.如权利要求1所述的计算设备,其特征在于,所述安全更新模块被进一步配置成通过参考用描述所述一个或多个硬件资源的条目填充的所述数据结构来枚举被指定为在所述安全预引导环境中处理固件更新的所述一个或多个硬件资源。
4.如权利要求1所述的计算设备,其特征在于,所述安全更新模块被进一步配置成在禁用对所述一个或多个硬件资源的固件更新后向引导加载程序传递控制以引导用于所述计算设备的操作系统。
5.如权利要求1所述的计算设备,其特征在于,所述一个或多个硬件资源中的至少一些是作为用于所述计算设备的片上系统处理器的集成组件来提供的。
6.如权利要求1所述的计算设备,其特征在于,所述一个或多个硬件资源包括能经由相应的接口连接到所述计算设备的附属设备。
7.如权利要求1所述的计算设备,其特征在于,与所述一个或多个硬件资源相关联的一个或多个更新状态被默认设置成在所述计算设备启动时启用固件更新。
8.如权利要求1所述的计算设备,其特征在于,禁用所述固件更新包括在引导用于所述计算设备的操作系统之前向所述一个或多个硬件资源发送禁用命令,所述禁用命令被配置成将与所述一个或多个硬件资源相关联的一个或多个更新状态设置成在所述安全预引导环境外禁用所述固件更新。
9.一种由计算设备实现的方法,包括:
确定在所述计算设备启动时启动的引导程序是否建立安全预引导环境;
当建立所述安全预引导环境时,在所述安全预引导环境中执行对所述计算设备的一个或多个硬件资源的固件更新;以及
发送至少一个通知以使得所述一个或多个硬件资源基于设置与所述一个或多个硬件资源相对应的数据结构中的更新状态字段的值来在所述安全预引导环境外禁用对所述一个或多个硬件资源的固件更新。
10.如权利要求9所述的方法,其特征在于:
所述至少一个通知被发送到所述硬件资源中的担当看护者设备的一个硬件资源,并且包括将所述看护者设备设置为禁用状态的禁用命令;
所述看护者设备被配置成集中式地管理对所述硬件资源中的至少一些的固件更新;并且
当处于所述禁用状态时,所述看护者设备被配置成不向由所述看护者设备管理的硬件资源分发固件更新。
CN201380045591.8A 2012-08-29 2013-08-26 安全固件更新 Active CN104603792B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/597,641 US9218178B2 (en) 2012-08-29 2012-08-29 Secure firmware updates
US13/597,641 2012-08-29
US13/651,252 US8898654B2 (en) 2012-08-29 2012-10-12 Secure firmware updates
US13/651,252 2012-10-12
PCT/US2013/056688 WO2014035908A1 (en) 2012-08-29 2013-08-26 Secure firmware updates

Publications (2)

Publication Number Publication Date
CN104603792A CN104603792A (zh) 2015-05-06
CN104603792B true CN104603792B (zh) 2019-08-06

Family

ID=49151325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380045591.8A Active CN104603792B (zh) 2012-08-29 2013-08-26 安全固件更新

Country Status (6)

Country Link
US (1) US8898654B2 (zh)
EP (1) EP2917870A1 (zh)
JP (1) JP2015531500A (zh)
KR (1) KR102048111B1 (zh)
CN (1) CN104603792B (zh)
WO (1) WO2014035908A1 (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789034B1 (en) * 2011-12-31 2014-07-22 Parallels IP Holdings GmbH Method for updating operating system without memory reset
US9218178B2 (en) 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates
US8594850B1 (en) * 2012-09-30 2013-11-26 Nest Labs, Inc. Updating control software on a network-connected HVAC controller
US9189225B2 (en) 2012-10-16 2015-11-17 Imprivata, Inc. Secure, non-disruptive firmware updating
US9015694B2 (en) 2012-10-31 2015-04-21 Aruba Networks, Inc Cloud-based firmware distribution service
US9349009B2 (en) * 2013-07-15 2016-05-24 Paul A. Rivera Method and apparatus for firmware based system security, integrity, and restoration
US20150193620A1 (en) * 2014-01-07 2015-07-09 Dell Products, Lp System and Method for Managing UEFI Secure Boot Certificates
KR20150098263A (ko) * 2014-02-19 2015-08-28 삼성전자주식회사 펌웨어를 갱신하기 위한 전자 장치 및 방법
GB201413836D0 (en) 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
US20160147259A1 (en) * 2014-11-21 2016-05-26 Kabushiki Kaisha Toshiba Electronic device
US9524158B2 (en) * 2015-02-23 2016-12-20 Apple Inc. Managing firmware updates for integrated components within mobile devices
US10664573B2 (en) 2015-06-17 2020-05-26 Intel Corporation Computing apparatus and method with persistent memory
US9960912B2 (en) * 2015-07-06 2018-05-01 Quanta Computer Inc. Key management for a rack server system
GB2540961B (en) * 2015-07-31 2019-09-18 Arm Ip Ltd Controlling configuration data storage
GB2540965B (en) 2015-07-31 2019-01-30 Arm Ip Ltd Secure configuration data storage
CN105159707B (zh) * 2015-08-14 2018-06-29 飞天诚信科技股份有限公司 一种安全的金融终端的固件烧写方法及金融终端
CN105159727B (zh) * 2015-09-22 2017-10-17 广东欧珀移动通信有限公司 固件升级处理方法、装置和系统
US10592228B2 (en) * 2016-02-12 2020-03-17 Microsoft Technology Licensing, Llc Stylus firmware updates
EP3208717A1 (en) * 2016-02-17 2017-08-23 Gemalto Sa Method for managing objects in a secure element
CN107491698A (zh) * 2016-06-12 2017-12-19 联想(上海)信息技术有限公司 Hdd加密固件更新方法、装置及电子设备
US10416991B2 (en) 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10621353B2 (en) * 2016-12-28 2020-04-14 Intel Corporation Firmware loading for exploit resistance
US11263320B2 (en) 2017-01-20 2022-03-01 Hewlett-Packard Development Company, L.P. Updating firmware
JP6263294B1 (ja) * 2017-03-31 2018-01-17 西日本電信電話株式会社 セキュリティ製品評価装置、セキュリティ製品評価方法及びセキュリティ製品評価プログラム
US10754955B2 (en) 2017-08-04 2020-08-25 Dell Products, L.P. Authenticating a boot path update
WO2019046933A1 (en) * 2017-09-06 2019-03-14 Absolute Software Corporation SECURE FIRMWARE INTERFACE
WO2019117863A1 (en) * 2017-12-12 2019-06-20 Hewlett-Packard Development Company, L.P. Configuration profile updates
KR20190074857A (ko) * 2017-12-20 2019-06-28 삼성전자주식회사 펌웨어를 업데이트하는 인터페이스 장치, 모바일 장치 및 펌웨어 업데이트 방법
CN111527731B (zh) * 2017-12-22 2023-04-25 瑞典爱立信有限公司 用于限制iot设备中的存储器写入访问的方法
WO2019161138A1 (en) 2018-02-16 2019-08-22 Reneo, Inc. Scalable life-cycle maintenance of hardware
CN112655228B (zh) * 2018-09-14 2024-07-19 昕诺飞控股有限公司 用于产生更新报告的系统和方法
CN111083001B (zh) * 2018-10-18 2021-09-21 杭州海康威视数字技术股份有限公司 一种固件异常检测方法及装置
JP7138043B2 (ja) * 2018-12-28 2022-09-15 日立Astemo株式会社 情報処理装置
US11194589B2 (en) * 2019-01-08 2021-12-07 Dell Products L.P. Information handling system adaptive component reset
US11550593B2 (en) * 2019-01-08 2023-01-10 Dell Products L.P. Information handling system quick boot
EP3928197A1 (en) * 2019-02-19 2021-12-29 Red Bend Ltd. Software updates distribution to vehicles via v2v communication and verification by a community of vehicles
US11301566B2 (en) * 2019-07-03 2022-04-12 Ati Technologies Ulc Firmware anti-rollback
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
CN111045739B (zh) * 2019-12-03 2022-06-07 福州瑞芯微电子股份有限公司 基于启动程序的固件引导方法、介质及设备
US11582418B1 (en) 2020-01-06 2023-02-14 Cisco Technology, Inc. Secured communications with display device
US11947987B2 (en) * 2020-06-03 2024-04-02 Dell Products L.P. Live node imaging
US11416614B2 (en) * 2020-07-01 2022-08-16 Dell Products L.P. Statistical detection of firmware-level compromises
KR20220032268A (ko) 2020-09-07 2022-03-15 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20220033311A (ko) 2020-09-09 2022-03-16 삼성전자주식회사 전자 디바이스 및 이의 동작 방법과 네트워크 시스템
US11989551B2 (en) * 2021-03-18 2024-05-21 Quanta Computer Inc. Modular firmware composition
US11809851B2 (en) * 2021-06-10 2023-11-07 Dell Products L.P. System and method for managing update installation lockdown policies for firmware devices and driver-managed devices
US20230244564A1 (en) * 2022-02-01 2023-08-03 Dell Products L.P. Systems and methods for proactively staging preboot firmware components for offline update and remediation
US11861010B2 (en) * 2022-02-14 2024-01-02 Xilinx, Inc. Extensible device hosted root of trust architecture for integrated circuits
US11989305B2 (en) * 2022-07-21 2024-05-21 Dell Products L.P. Automated update of a customized secure boot policy

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069452B1 (en) * 2000-07-12 2006-06-27 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
CN102023256A (zh) * 2009-09-10 2011-04-20 英特尔公司 片上系统(soc)的功率测量技术
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834340B2 (en) * 2001-03-01 2004-12-21 International Business Machines Corporation Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines
US7243347B2 (en) 2002-06-21 2007-07-10 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
US7099967B2 (en) * 2003-12-22 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for storing an image file in a computer system
US7457945B2 (en) 2004-03-23 2008-11-25 Dell Products L.P. System and method for providing a secure firmware update to a device in a computer system
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
US7603562B2 (en) * 2005-02-02 2009-10-13 Insyde Software Corporation System and method for reducing memory requirements of firmware
KR100706471B1 (ko) * 2005-06-30 2007-04-10 주식회사 대우일렉트로닉스 전자기기의 펌웨어 업데이트 방법
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
KR20080090939A (ko) 2007-04-06 2008-10-09 삼성전자주식회사 펌웨어의 업데이트 파일 생성 방법, 펌웨어 업데이트파일을 이용한 업데이트 방법 및 그 장치
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8606377B2 (en) * 2009-07-23 2013-12-10 Biosense Webster, Inc. Preventing disruptive computer events during medical procedures
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9292277B2 (en) 2009-12-18 2016-03-22 Hewlett-Packard Development Company, L.P. Methods and devices for updating firmware of a component using a firmware update application
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology
KR20120041384A (ko) * 2010-10-21 2012-05-02 삼성전자주식회사 모바일 디바이스의 펌웨어 업데이트 방법 및 장치
US9218178B2 (en) 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069452B1 (en) * 2000-07-12 2006-06-27 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
CN102023256A (zh) * 2009-09-10 2011-04-20 英特尔公司 片上系统(soc)的功率测量技术

Also Published As

Publication number Publication date
KR102048111B1 (ko) 2019-12-02
WO2014035908A1 (en) 2014-03-06
JP2015531500A (ja) 2015-11-02
US20140068585A1 (en) 2014-03-06
CN104603792A (zh) 2015-05-06
US8898654B2 (en) 2014-11-25
KR20150048136A (ko) 2015-05-06
EP2917870A1 (en) 2015-09-16

Similar Documents

Publication Publication Date Title
CN104603792B (zh) 安全固件更新
US11256496B2 (en) Apparatus and method for managing application
US9218178B2 (en) Secure firmware updates
KR101872141B1 (ko) 확장자가 애플리케이션의 기능을 다른 애플리케이션으로 확장하게 하는 고정적 확장 포인트
US9262153B2 (en) Firmware update discovery and distribution
US9235404B2 (en) Firmware update system
US9110761B2 (en) Resource data structures for firmware updates
US10747526B2 (en) Apparatus and method to execute prerequisite code before delivering UEFI firmware capsule
US10338933B2 (en) Method for generating custom BIOS setup interface and system therefor
US10922445B2 (en) Computing systems and methods
CN105453097B (zh) 受约束驱动程序平台在用户模式下在沙箱中运行驱动程序
KR20120041384A (ko) 모바일 디바이스의 펌웨어 업데이트 방법 및 장치
US20170039053A1 (en) Field update of boot loader using regular device firmware update procedure
TW200839615A (en) Boot negotiation among multiple boot-capable devices
US20170200009A1 (en) Systems and Methods for Providing an Operating System for a Smart Mirror Device
US10521216B2 (en) Unified extensible firmware interface updates
US12093102B2 (en) System and method for power state enforced subscription management
EP3701411A1 (en) Software packages policies management in a securela booted enclave
US20220413903A1 (en) Framework for migrating applications across public and private clouds
CN109154903B (zh) 用于虚拟机的恢复环境
US20230376426A1 (en) Caching system and method for a workspace environment
CN114902252A (zh) 用于检测部署编排器中的漂移的技术
US12032935B2 (en) Enforcement of environmental conditions for cloud applications
US20230350670A1 (en) Non-terminating firmware update
US20240037237A1 (en) System and method for flexible startup of data processing systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20171016

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant