安全固件更新的制作方法_2

文档序号:8287888阅读:来源:国知局
理系统、架构和/或平台相关联的系统固件202,在该示例中该特定处理系统、架构和/或平台被描绘为可以按各种方式配置的中央处理单元(CPU) 124(1)。例如,CPU可被实现为被配置成包括作为单个芯片的多个不同的集成硬件组件的片上系统(SoC)处理器。还构想包括基于ARM和x86架构的其他类型的CPU体系架构。图2所示的可具有可更新的相应设备固件204的各种其他示例硬件资源包括不同的通信无线电124(2)(例如,WiF1、移动宽带、蓝牙、近场通信(NFC)等)、微处理器124 (3)、传感器124(4)(例如,相机、陀螺仪、加速计、GPS、压力传感器、邻近度传感器等)、控制器124(4)(例如,触摸控制器、音频/视频控制器、存储器控制器、USB控制器等)以及计算设备的其他124(5)集成硬件资源。
[0028]本文描述的用于安全固件更新的技术也可适用于可经由相应的接口 208连接到计算设备102的附属设备206。构想可经由有线和/或无线接口连接的各种不同附件。附属设备206包括被配置成通过相应的端口、舱或计算设备102的其他集成连接部分来收纳和连接的外部外围设备和/或可移动、可插拔设备。不同的附属设备206可以在不同的时间连接到计算设备102。至少某些附属设备206被配置为可热插拔(例如,即插即用)设备。作为示例而非限制,附属设备206可包括输入设备206 (I)(例如,键盘、鼠标、指示笔等)、输出设备206(2)(例如,扬声器、耳机、打印机等)和显示设备206(3)以及各种其他206(4)设备,诸如游戏控制器、电源适配器、音乐附属设备等。附属设备206可具有在各设备上维护的、可通过固件系统更新的相关联的固件204,如图2所描绘的。
[0029]每一个资源因此可具有其自己的相关联的设备固件204。对设备固件204的更新可以与资源匹配并且在个体的基础上应用于集成和附属设备两者。另外地或另选地,一些资源的设备固件204可以按组合的方式作为对系统固件202的更新的一部分来更新。例如,多个微处理器、控制器和其他组件可被集成为SoC处理器或其他CPU的一部分,并且可以一起更新。一般而言,本文描述的安全固件更新可以在预引导环境中选择性地应用于可包括集成组件和附属设备两者的指定硬件资源的所选集合。供通过该系统管理的所指定的硬件资源可根据各种准则来被选为计算设备的核心组件。例如,核心硬件资源可包括由计算设备制造商开发或者与计算设备制造商紧密关联的、与伙伴0EM/IHV相关联的、被认为对于设备操作和用户体验是至关重要的(诸如核心处理/存储器/显示器组件)和/或作为设备设计和/或默认配置的一部分来提供的那些资源。SoC设计的集成组件是可被设计成供经由系统进行集中式管理的核心硬件资源的一个示例。多个其他微处理器、控制器和/或其他个别组件也可被设计成供通过该系统来进行固件管理。
[0030]在某些情况下,对某些非所选硬件资源的固件更新可以使用传统技术在固件系统128之外和/或在后引导环境中管理。但在一个或多个实施例中,安全更新模块130可被配置成限制或防止在预引导环境之外进行任何固件更新。在该方法中,安全更新模块130被实现为以安全的方式通过固件系统128来控制对计算设备的每一个硬件资源124的固件更新。
[0031]在描述了示例操作环境后,现在考虑根据一个或多个实施例的关于安全固件更新的示例细节。
[0032]安全固件更新示例
[0033]在以下章节中,讨论安全固件更新的实现细节和示例技术。讨论包括可以结合任何合适的硬件、软件、固件或其组合来实现的一些示例过程。在至少一些实施例中,过程可通过诸如图1中的包括或以其他方式利用固件系统128和安全更新模块130的示例计算设备102等经适当地配置的计算设备来实现。
[0034]图3描绘了其中在预引导环境中执行安全固件更新的示例过程300。响应于计算设备的启动来建立安全预引导环境(框302)。具体而言,当计算设备通电或重启时,被构建到设备中的集成引导程序通常执行以初始化系统,运行自检并标识系统的硬件资源124。此外,引导程序还可执行各项操作以便将硬件资源配置成供使用并加载设备的操作系统。
[0035]引导程序可包括或利用如本文描述的固件系统128和/或安全更新模块130。固件系统128和/或安全更新模块130提供固件接口,该固件接口被配置成初始化硬件资源,加载用于资源的适当驱动程序以及以其他方式执行为用于启动系统的引导序列定义的操作。本文描述的技术可以结合各种不同类型的固件系统实现。合适的固件系统的示例包括但不限于统一可扩展固件接口(UEFI)、高级配置和电源接口(ACPI)、基本输入输出系统(B1S)接口和/或自定义应用编程接口(API)。
[0036]安全更新模块130还可被配置成实现用于设备的安全引导模式。安全引导模式提供阻止执行不可信的、未经识别的和/或恶意代码的安全预引导环境。具体而言,安全更新模块130可实现并实施限定什么种类的程序和引导服务能够在预引导环境中运行和受限的安全策略。可采用用于验证代码的各种技术来确保被允许在安全引导模式中运行的任何代码都是可信的。例如,信任判定可通过对照与已知的可信实体相关联的数字签名来检查与代码相关联的数字签名来做出。假定对应于代码的数字签名被确定为有效,代码可被指定为可信并被允许运行。另一方面,未经签署或不具有有效数字签名的代码可被指定为不可信的并且可阻止不可信代码的执行。另外,安全更新模块130可确保在计算设备上加载的引导程序和/或对应的操作系统是可信的。
[0037]在预引导环境中启用对计算设备的所选硬件资源的固件更新(框304)。在此,硬件资源可被配置成在不同的更新状态之间切换以使得固件更新可被选择性地启用和禁用。这可以按各种方式进行。例如,与硬件资源124相关联的固件126可被配置成响应于相应的事件、输入和/或触发事件而使得被定义为控制固件更新的数据字段在更新启用状态和更新禁用状态之间切换。在一种方法中,布尔字段或与硬件资源124相关联的其他合适的更新状态数据对象/参数可被默认设置为在计算设备通电或重启时启用更新。另外地或另选地,安全更新模块130可被配置成发送作为引导序列的一部分的、使硬件资源124启用固件更新的命令。响应于启用命令,固件或与硬件资源124相关联的其他代码可设置适当的数据字段或以其他方式采取行动以启用固件更新。
[0038]在安全预引导环境中发起对所选硬件资源可用的固件更新的安装(框306)。具体而言,安全固件更新在预引导环境中被应用于可包括如上所述的集成组件和附属设备两者的指定硬件资源的所选集合。可以响应于适当的命令或以其他方式默认在安全预引导环境中启用对所指定的硬件资源的更新。
[0039]如上所述,固件系统128被配置成对固件更新进行管理,所述管理包括但不限于:发现资源以及检测、分析、获取、分发、安装和跟踪对已注册或以其他方式被指定通过固件更新系统获取固件更新的特定资源的固件更新。可使用包括与UEF1、ACPI和/或B1S固件接口相关联的技术在内的各种不同的技术来发现、获取和应用更新。在某些情形中也可采用专用和自定义API以及代码来实现固件更新。
[0040]在固件更新的上下文中,在安全预引导环境中应用的任何更新遵循已确立的安全策略。由此,由固件系统处理和应用的更新包由该系统数字地签署并标识为可信。作为更新过程的一部分,该系统可检查可用更新和/或固件的已安装版本以验证各个版本是正确的、固件被正确地匹配至平台的资源以及固件是安全/可信的。该系统可被进一步配置成标示或报告任何问题并自动尝试通过在合适的情形中定位和重新应用正确的固件来纠正任何缺陷。
[0041]另外,可实现延迟固件更新特征以分步实施对诸如断开连接的附属设备等不可用的设备的更新。在这种情况下,该系统可获取可用更新并继续在每一次重新引导时检查相应的资源直到该设备可用。然后将更新应用于适当的资源。在一种方法中,某些硬件资源(例如,所指定的CPU或微控制器)可被配置成将固件更新传递至包括被延迟的资源在内的其他资源。在该方法中,“主”资源可以在固件系统的指示下分步实施对其他组件的更新,并且然后处理与其他组件的交互以应用更新。这可包括在
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1