首页> 中国专利> 从遭到破坏的系统启动代码中恢复

从遭到破坏的系统启动代码中恢复

摘要

在系统的处理器不访问第一存储器的所述系统的状态中,所述系统中的控制器确定来自所述系统中的第一存储器的系统启动代码是否遭到破坏,其中所述第一存储器通过总线能够由所述处理器和所述控制器访问。响应于确定所述系统启动代码遭到破坏,所述控制器从所述计算装置中的第二存储器获取系统启动代码以替换所述第一存储器中的系统启动代码,其中所述第二存储器与所述总线电隔离并且不能由所述处理器访问。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-24

    授权

    授权

  • 2015-12-30

    实质审查的生效 IPC(主分类):G06F21/57 申请日:20130423

    实质审查的生效

  • 2015-12-02

    公开

    公开

说明书

背景技术

计算系统可包括执行计算系统各种启动功能的代码。该代码可包括基本输入/输出系统(BIOS)代码。BIOS代码可以是计算系统中恶意软件攻击的对象或是来自外部服务的恶意软件攻击的对象。作为攻击结果,BIOS代码可遭到破坏。

附图说明

关于下述附图描述了一些实施方式:

图1是根据一些实施方式的示例系统的框图;

图2是根据一些实施方式的系统启动代码恢复过程的流程图;

图3是根据进一步实施方式的另一个示例系统的框图;以及

图4是根据进一步实施方式的过程的流程图。

具体实施方式

对用于执行计算系统启动的系统代码的恶意软件攻击可导致计算系统的完整性遭到破坏,使得可在计算系统中发生未授权的访问和操作。例如,遭到破坏的系统代码可允许隐蔽的远程监控和/或由恶意实体对计算系统的控制、由恶意软件进行的计算系统中数据的非授权访问和/或修改、禁用计算系统等。遭到破坏的系统代码可以指已经被毁坏使得系统代码不再可用的系统代码,或者可替代地,遭到破坏的系统代码可以指已经以某种方式改变但是仍然能够执行的系统代码。需要注意的是,系统代码也可遭到偶然地或故意地破坏。

尽管在计算系统中可提供保护机制以保护系统代码,但是这种保护机制在某些条件下可遭到破坏,这可使该系统代码受到恶意软件的攻击。

用于执行计算系统启动的系统代码可包括系统固件,该系统固件可以是在计算系统的处理器(或多个处理器)上可执行的机器可读指令的形式。“系统固件”涵盖能够执行计算系统启动的任何机器可读指令。计算系统的示例包括台式计算机、笔记本电脑、平板电脑、个人数字助理(PDA)、智能电话、游戏机电器、服务器计算机、存储节点、网络通信节点等。

系统固件可包括基本输入/输出系统(BIOS)代码,其可初始化计算系统的各种组件,并且加载计算系统的操作系统(OS)。BIOS代码可执行硬件组件的检查以确保硬件组件存在以及正确地起作用。例如这可以是上电自检(POST)程序的一部分。在POST程序之后,BIOS代码可通过启动顺序提醒继续进行,在这之后BIOS代码可加载并传递控制到OS。BIOS代码可包括传统(legacy)BIOS代码或可扩展固件接口(UEFI)代码。在一些示例中,BIOS代码可包括在OS加载之后被执行的运行时(runtime)部分。

系统固件可存储在非易失性存储器中,例如闪存存储器或任何可编程的其它永久存储器。一旦非易失性存储器中的系统固件遭到破坏,一种可能的补救可以涉及物理上替换包括非易失性存储器的组件。这种解决遭到破坏的系统固件的技术是劳动密集型的、成本昂贵的以及耗时的。

可替代地,其它技术可试图来利用来自外部存储装置的系统固件的有效副本替换非易失性存储器中遭到破坏的系统固件,外部存储装置例如可移除存储装置(例如通用串行总线或USB存储装置或任何其它类型的可移除存储装置)。然而,在从遭到破坏的系统固件恢复发生时,包含有效系统固件的外部存储装置可能是不可用的。另外,企业(例如,商行、政府机关、教育组织等)的策略可能禁止涉及外部存储装置上的系统固件的使用的恢复技术。

根据一些实施方式,除了提供存储系统固件的主要非易失性存储器之外(如果系统固件没有遭到破坏,则该系统固件通过计算系统的处理器执行),还提供存储系统固件的“黄金副本”的次要非易失性存储器。系统固件的黄金副本指的是确认有效或信赖有效的系统固件。例如,系统固件的黄金副本可以是在计算系统制造时在工厂设置的系统固件的原始副本。可替代地,系统固件的黄金副本可以是在次要非易失性存储器中已经以安全方式更新的副本。更一般地,代替所指的系统固件的黄金副本,系统固件的冗余副本可存储在次要非易失性存储器中。

次要非易失性存储器与系统处理器隔离以提供增强的安全性,因为在处理器上运行的恶意软件不能够破坏次要非易失性存储器中的系统固件的冗余副本。更具体地,次要非易失性存储器与总线隔离,该总线可由处理器和其它实体使用以访问主要非易失性存储器。根据一些实施方式,可以使用嵌入式控制器来执行遭到破坏的系统固件的恢复,通过使用次要非易失性存储器中的系统固件的冗余副本来替换主要非易失性存储器中的遭到破坏的系统固件。使用嵌入式控制器来执行系统固件的恢复,降低了系统固件恢复过程期间系统损坏的可能性。

在本论述中,尽管对“系统固件”进行参考,但是应该注意到,技术或机制可被应用到其它类型的系统启动代码,其中系统启动代码可以指在重新启动计算系统之后能够启动计算系统的任何代码或能够从低功率状态重新开始计算系统的任何代码。

图1是包括嵌入式控制器102、主要非易失性存储器104、处理器106以及次要非易失性存储器116的示例计算系统100的框图。主要非易失性存储器104是共享的非易失性存储器,该存储器由多个实体可访问,该多个实体包含嵌入式控制器102和至少一个其它实体(包含处理器106)。次要非易失性存储器116由嵌入式控制器102可访问,但是对于计算系统100中的处理器106或其它组件而言是不能访问的(实际上,除了嵌入式控制器102,次要非易失性存储器116与实体电隔离)。使次要非易失性存储器116对于处理器106和其它组件而言不可访问保护了次要非易失性存储器116的内容不受未授权的篡改。次要非易失性存储器116可总是被嵌入式控制器102访问。

尽管在图1中没有示出,但可以在处理器106和主要非易失性存储器104之间提供输入/输出(I/O)控制器。

次要非易性失存储器116可与主要非易失性存储器104物理上分离(例如实现在不同的物理存储装置中)。可替代地,次要非易失性存储器116和主要非易失性存储器104可物理地驻留在共同的存储器装置上,但是主要非易失性存储器104和次要非易失性存储器116在物理存储器装置的不同分段中,其中包含次要非易失性存储器116的物理存储器装置的分段仅由嵌入式控制器102访问。换句话说,包含次要非易失性存储器116的分段处于嵌入式控制器102的专有控制下,并且这个分段被锁定不能由处理器106或另一个实体访问。

主要非易失性存储器104通过共享总线120由嵌入式控制器102或另一个实体可访问。在一些实施方式中,仅有一个实体在任何给定时间使用共享总线120,使得仅有一个实体可在某时访问主要非易失性存储器104。在一些示例中,共享总线120是共享串行外围接口(SPI)总线。SPI总线是同步串行数据链路,在该链路中在SPI总线上的装置以主从模式操作。在其它示例中,可使用另一种类型的共享总线120。在可替代的示例中,可提供仲裁机制以允许在计算系统的各种状态中对总线120的共享访问,各种状态包括低功率状态和正常运行时状态。

主要非易失性存储器104可存储系统固件107,其可包括BIOS代码。BIOS代码107可包括由嵌入式控制器102执行的控制器代码108,以及由处理器106执行的启动块110。控制器代码108可以是嵌入式控制器(EC)固件的形式,其可以指在嵌入式控制器102中可执行的任何机器可读指令。可替代地,控制器代码108可以是以机器可读指令形式存在的应用程序软件。在接下来的论述中,尽管对“EC固件”进行参考,应该注意的是技术或机制可被应用到控制器代码108的其它形式。

在根据图1的示例中,EC固件108被包括在系统固件107的启动块110中。将EC固件108包括在启动块110内可提供EC固件108已经由提供系统固件107的实体(其可以是计算系统100的供应商)或者另一个实体签名的指示。在其它示例中,EC固件108可与启动块110分离。

启动块110是BIOS代码的一部分,并且在计算系统100启动时首先执行。在允许BIOS代码剩余部分在处理器106上执行之前首先执行启动块110。启动块110可用于检查BIOS代码的完整性以及执行其它初始功能。如果启动块110确认BIOS代码的完整性,那么启动块110可传递控制到用于初始化与BIOS代码相关联的剩余操作的BIOS代码的主要部分。

在一些实施方式中,启动块110可包括可信度量根的核心(CRTM)逻辑,其是由可信计算组织(TCG)、工业标准工作组指定的逻辑。在计算系统100上电过程期间,CRTM逻辑可执行某些初始化任务并且可进行若干度量,该度量被存储以供后期使用。CRTM逻辑然后在将控制传递到BIOS代码主要部分之前可检查BIOS代码。一旦BIOS代码完成执行并将控制传递到OS,OS就可基于由CRTM逻辑进行的度量而验证计算系统100的可信度。

嵌入式控制器102与计算系统100的处理器106物理分离。处理器106用于执行OS、应用程序代码、以及系统100中的其它代码。在另一方面,嵌入式控制器102可用于执行特定的预定义任务,如编程到EC固件108中。可由嵌入式控制器102执行的任务示例包括下述中任何一个或一些的组合:计算系统100中的电源控制(用于控制将电源电压供应至计算系统100中各个组件的电源),计算系统100中电池的充电和控制,热监控(监控计算系统100中的温度),风扇控制(控制计算系统100中的风扇),以及与用户输入装置的互动(例如,执行计算系统100的键盘的扫描或者与例如鼠标、触摸板、触摸屏等的定点装置的互动)。嵌入式控制器102可以与微控制器、专用集成电路(ASIC)、可编程门阵列(PGA)或者任何其它类型的可编程电路一起实现。

次要非易失性存储器116与共享总线120电隔离,并且存储系统固件的冗余副本114,其中系统固件冗余副本114包含启动块132以及EC固件130。次要非易失性存储器116中的系统固件冗余副本114可以是主要非易失性存储器104中的系统固件107的复制品。可替代地,系统固件冗余副本114与系统固件107相比可以是不同的版本(较晚的版本或较早的版本)。

在一些实施方式中,系统固件冗余副本114仅包括启动块132,但不包括BIOS代码的主要部分。在其它实施方式中,系统固件冗余副本114可包括BIOS代码的全部。次要非易失性存储器116中包括整个BIOS代码副本的可能的好处在于,计算系统100不必到外部源(计算系统100的外部)去获取BIOS代码的一部分以供在从遭到破坏的系统固件的恢复中使用。

图2是根据一些实施方式的启动过程的流程图,其中从用于启动或重新开始计算系统100的主要非易失性存储器104获取系统固件107。图2的过程可通过嵌入式控制器102在处理器106被禁用或不访问主要非易失性存储器104的时间内执行。处理器106被禁用指的是处理器106处于停电状态(没有电力提供给处理器106的主要处理部件)或者在重置状态(例如,到处理器106的重置信号被断言为防止处理器106执行机器可读指令)中。

嵌入式控制器102确定(在202处)从主要非易失性存储器获取的系统固件107(并且更具体地,在一些示例中是启动块110)是否遭到破坏。该确定可以基于验证系统固件107(或者在系统固件107上执行验证过程)。验证一段代码(例如系统固件或其它代码)可以指加密地证实该段代码没有被改变过和/或确认该段代码来自信任源。结合附图3下面进一步论述用于验证系统固件的技术。

响应于确定系统固件107遭到破坏,嵌入式控制器102从次要非易失性存储器116获取(在204处)系统固件冗余副本114,送到主要非易失性存储器104以替换遭到破坏的系统固件107。

如果系统固件107被验证,那么计算系统100准备继续启动。

在一些实施方式中,可以以安全方式更新次要非易失性存储器116中的系统固件冗余副本114。系统固件冗余副本114的更新可以是基于策略的,例如基于策略信息中的指定策略,例如其可存储在次要非易失性存储器116中。结合附图4,下面进一步论述系统固件冗余副本114的这种基于策略的更新。

在进一步实施方式中,次要非易失性存储器116可存储系统固件的两个冗余副本。例如通过使用基于策略的更新,系统固件的第一冗余副本是可更新的。系统固件的第二冗余副本是不可更新的副本,在计算系统100离开工厂之后该第二冗余副本不能被更新。

根据一些实施方式,在嵌入式控制器102的初始化过程期间,嵌入式控制器102能够验证从非易失性存储器(116和/或104)获取的EC固件(130和/或108)。初始化过程指的是在嵌入式控制器102已经被重置之后或者在嵌入式控制器102电力循环(其中从嵌入式控制器102去除电力并且然后重新施加到嵌入式控制器102)之后当嵌入式控制器102首先启动时被执行的过程。

在一些实施方式中,嵌入式控制器102可在计算系统100重新启动期间首先试图使用次要非易失性存储器116中的EC固件130。如果嵌入式控制器102不能够成功地使用EC固件130,那么嵌入式控制器102可使用主要非易失性存储器104中的EC固件108以试图启动计算系统100。如果嵌入式控制器102使用EC固件130或EC固件108不能够启动系统,那么发生错误,该错误可能是由于EC固件130和EC固件108两者都遭到破坏。

尽管提供的参考是在试图使用主要非易失性存储器104中的EC固件108之前首先试图使用次要非易失性存储器116中的EC固件130,但是不同的实施方式可以在试图使用次要非易失性存储器116中的EC固件130之前首先试图使用主要非易失性存储器104中的EC固件108。

此外,一旦EC固件被验证并加载以用于在嵌入式控制器102上执行,EC固件就可以在由处理器106对系统固件进行的每次重新启动的执行之前验证(在图2中的202处执行)系统固件(例如,从主要非易失性存储器104获取的系统固件107)。系统固件的重新启动的执行可由于计算系统100的冷重置、从计算系统100的低功率状态重新开始、操作系统重新启动等发生。应该注意,在每次计算系统100进入低功率状态时,系统固件也可以由EC固件验证。在其它示例中,在处理器106保持被供电时,EC固件也可以验证系统固件。

在进一步示例中,EC固件可响应于计算系统100的热重置而执行系统固件的验证,其中计算系统100在没有去除计算系统100的电力的情况下重新启动。为了允许EC固件响应于热重置而执行验证,在检测到热重置时,迫使计算系统100过渡至适当的低功率状态。

在其它示例中,EC固件可在任何时间执行验证,甚至在计算系统没有处于低功率状态时。例如,在处理器空闲或未访问共享的非易失性存储器104时,EC固件可执行验证。当获取系统固件以用于处理器执行时,也可通过EC固件“实时”执行验证。

在处理器106重新启动系统固件107的执行的每个实例之前,前面所述确保系统固件107没有遭到破坏。

计算系统100的低功率状态指的是在其中处理器106以及系统100的某些其它硬件组件关闭(例如没有电力提供给处理器和某些其它硬件组件)的计算系统100的状态。在低功率状态中,电力仍然能够被提供给嵌入式控制器102。计算系统100可在下述任何场景中过渡至低功率状态:(1)作为计算系统100冷重置的一部分,其引起系统100电力关闭以便随后上电,或者(2)作为节电程序的一部分,其中计算系统100可从正常操作状态过渡到睡眠状态、休眠状态或者在一时间段不活跃之后的关闭状态,或者响应于检测到低电池电量情况的关闭状态,或者响应于用户或应用程序命令的关闭状态,或者因为其它原因的关闭状态,或者(3)在任何其它场景中。

低功率状态的示例可包括某些高级配置和电源接口(ACPI)状态,包括:ACPIS3状态(其是备用状态或睡眠状态的形式,在该形式中计算系统100的系统上下文被保持在易失性存储器中,当计算系统100的一些组件被关闭时,该易失性存储器保持供电);ACPIS4状态(其是休眠状态的形式,在该形式中系统上下文被保存至永久存储器以允许从其他计算系统组件去除电力,其他计算系统组件包括易失性存储器);以及ACPIS5状态(其是系统关闭状态的形式,在该形式中已经从计算系统100的甚至更多组件去除电力)。

图3是根据进一步实施方式的计算系统100的框图。图3的计算系统100包括输入/输出(I/O)控制器302,控制器302连接在处理器106和共享总线120之间。在一些示例中,I/O控制器302可以是来自英特尔公司的平台控制器集线器(PCH)。PCH可包括各种功能,包括到图形子系统的显示接口,到系统总线的系统总线接口等,各种I/O装置可连接至该系统总线。在其它实例中,可使用其它类型的I/O控制器。

如图3中描述的,嵌入式控制器102被联接到用户输入装置304(例如,鼠标装置或其它类型的输入装置)、键盘306、风扇308、电池310、以及电源313,以管理各自的装置(例如在EC固件的控制下)。

在图3的示例中,嵌入式控制器102还包括加密硬件312,加密硬件312可执行加密计算,例如在验证EC固件和系统固件中使用的那些加密计算。加密硬件312可以是被配置成执行加密计算的电路的形式。

嵌入式控制器102进一步包含只读存储器(ROM)314,只读存储器314可用于存储启动加载器316和密钥318。密钥318可以是用于执行EC固件(130或108)验证的钥匙(公钥或私钥)。在系统启动期间,启动加载器316从ROM314加载以在嵌入式控制器102中执行,用来从次要非易失性存储器116或主要非易失性存储器116获取到嵌入式控制器102的随机存取存储器(RAM)319中的EC固件。启动加载器316可采取步骤来确保除了嵌入式控制器102之外没有其它实体在EC固件加载操作期间使用共享总线120。

为了获取用于加载到嵌入式控制器102中的EC固件,启动加载器316可发现针对EC固件图像的指针(或者其它参考),该指针(或者其它参考)可存储在次要非易失性存储器116或主要非易失性存储器104中。

获取的EC固件被能够调用加密硬件312的启动加载器316验证,以有助于执行加密计算。

在主要非易失性存储器104中,签名322与EC固件108相关联,并且签名324与启动块110相关联。类似地,在次要非易失性存储器116中,签名340与EC固件130相关联,并且签名342与启动块132相关联。签名340或签名322用于各自的EC固件108或EC固件130的验证中,同时签名342或签名324用于各自的启动块110或启动块132的验证中。在验证过程中签名的使用可允许各自的EC固件或启动块的可靠性的确定,以及各自的EC固件或启动块还没有遭到破坏的确定。

在一些实施方式中,可通过使用存储在嵌入式控制器ROM314中的密钥318对各自的签名322或签名340进行解密完成对EC固件108或EC固件130的验证。解密签名产生可以与EC固件的对应的计算值(例如哈希值)进行比较的相应值(例如哈希值)。如果前述值匹配,那么EC固件被验证。类似的过程可用于使用各自的数字签名324或数字签名342对BIOS启动块110或BIOS启动块132进行验证。

在一些示例中,次要非易失性存储器116可存储另一个系统固件冗余副本350。在一些示例中,系统固件冗余副本114可被更新,但是另一个系统固件冗余副本350是不可更新的(不可变的)。

次要非易失性存储器116还可存储策略信息334。例如,策略信息334可包括与下述策略中的一个或一些组合相关的信息:

●指定操作的积极模式是否要被使用的策略,其中积极模式使得在每种情况下都能够验证系统固件,在每种情况下主处理器将执行启动块(在每次冷启动、热启动、从低功率状态重新开始等)。

●指定手动或自动恢复模式是否要被使用的策略,其中手动恢复模式涉及在允许执行遭到破坏的启动块恢复之前的用户动作;以及

●指定锁定或解锁模式是否要被使用的策略,其中锁定模式引起系统固件被锁定到特定版本,例如在次要非易失性存储器116中的版本。

指定锁定或解锁模式是否要被使用的策略可控制系统固件冗余副本114的基于策略的更新,如下面进一步解释的。

图4是根据进一步实施方式的过程的流程图,该过程可在成功验证EC固件和随后在嵌入式控制器102上执行EC固件之后执行。图4的过程可在EC固件的控制下由嵌入式控制器102执行。

如图4中所示,嵌入式控制器102确定(在402处)次要非易失性存储器116中的启动块130(图4中表示为EC_BB)是否被验证(基于使用图3的签名342执行的验证)。如果没有,那么EC_BB_Valid标记被清除(在404处)至清除状态,以指示次要非易失性存储器116中的启动块130没有被验证。

然而,如果在402处的确定指示已经验证了启动块132,那么EC_BB_Valid标记被设定(在406处)至设定状态,以指示已经验证过次要非易失性存储器116中的启动块132。

接下来,EC固件确定(在408处)主要非易失性存储器104中的启动块110(图4中表示为SYS_BB)是否已经验证(基于使用图3的签名324执行的验证)。如果没有,那么EC固件接下来检查(在410处)是否设定EC_BB_Valid标记(在410处)。如果没有,那么也就是指示次要非易失性存储器116中的启动块132和主要非易失性存储器104中的启动块110都不能被验证,并且指示(在411处)错误。在这点,图4中的过程停止,因为由于启动块遭到破坏,启动系统不能被允许启动。

如果确定(在410处)EC_BB_Valid标记被设定,那么也就是指示已经验证了次要非易失性存储器116中的启动块132,即使不能验证主要非易失性存储器104中的启动块110。在这种情况下,EC固件确定(在412处)恢复策略(存储为图3的次要非易失性存储器116中的策略信息334的一部分)指定手动模式还是自动模式。如果指示自动模式,那么复制(在414处)次要非易失性存储器116中的有效启动块132以替换主要非易失性存储器104中的无效启动块110。任务414对应于使用图1的次要非易失性存储器116中的系统固件冗余副本114以替换图1的遭到破坏的系统固件107。

然而,如果恢复策略指定手动模式,那么可输出(在416处)指示以提示用户输入,例如键顺序或其它输入。用户输入的接收引起任务414被执行,其中利用次要非易失性存储器116中的有效启动块132的副本替换主要非易失性存储器104中的有效启动块110。

接下来,EC固件设定(在418处)各种状态信息以报告采取的动作,其中状态信息可被用在计算系统的下一次启动中。

EC固件接下来确定(在420处)次要非易失性存储器116中的启动块132是否已经被更新。如果没有,那么计算系统准备启动(422)。然而,如果次要非易失性存储器116中的启动块132已经被更新,那么EC固件执行(在424处)动作以引起计算系统检查嵌入式控制器102正在运行EC固件的正确版本,这可通过重新设定嵌入式控制器102来完成,重新设定嵌入式控制器102引起嵌入式控制器102执行其初始化程序,该初始化程序包括验证EC固件,在该程序之后,图4的过程被再次执行。

在图4的任务408中,如果EC固件能够验证主要非易失性存储器104中的启动块110,那么EC固件检查(在426处)是否设定EC_BB_Valid标记。如果没有,那么也就是指示主要非易失性存储器110中的启动块110有效,但是次要非易失性存储器116中的启动块132无效。在这种场景下,EC固件确定(在428处)锁定策略(如图4的策略信息334中所指示)指定锁定模式还是解锁模式。如果指定解锁模式,这意味着可更新次要非易失性存储器116中的启动块132,在该情况下,EC固件将主要非易失性存储器104中的启动块110复制(在430处)到次要非易失性存储器116以替换启动块132。

在另一方面,如果确定(在428处)锁定策略指定锁定模式,那么其指示不允许EC固件更新次要非易失性存储器116中的启动块132。在这种情况下,EC固件可设定标记(在432处)以指示锁定策略中的变化,该锁定策略中的变化涉及正被改变以指定解锁模式的锁定策略。将锁定策略从锁定模式改变至解锁模式以允许次要非易失性存储器116中的启动块132被主要非易失性存储器104中的启动块110替换(如在432处执行的)。此外,信息可被添加至审计日志(未示出)以指示前述事件(锁定策略正被改变)。另外,在这种情况下,用户可被警告由于内部错误不能够履行锁定策略以及用户应该检查锁定策略并且重新配置平台以确保配置期望的设定。

任务428、430和432涉及次要非易失性存储器116中的启动块132(或者更加一般地系统固件冗余副本114)的基于策略的更新。在其它实施方式中,如果在428处确定的锁定策略指定锁定模式,那么嵌入式控制器102可决定不利用主要非易失性存储器104中的启动块110来替换次要非易失性存储器116中的启动块132。

过程接下来继续进行到任务418。

在任务426中,如果确定设定了EC_BB_Valid标记,那么其指示启动块132和启动块110两者都已经被验证。在这种场景下,EC固件确定(在434处)基于启动块132的内容得出的值(例如哈希值、校验和值等)是否等同于基于启动块110的内容得出的值。如果是这样,那么确认两个启动块132和110是相等的,并且因此,系统准备启动(422)。在另一方面,如果基于启动块132的内容得出的值和基于启动块110的内容得出的值不相等(其指示启动块132和启动块110是不同版本),那么EC固件确定(在436处)BIOS锁定策略指定锁定模式还是解锁模式。如果指定解锁模式,那么EC固件可将主要非易失性存储器104中的启动块110复制(在438处)到次要非易失性存储器116中以替换启动块132。该过程然后继续进行到任务418。

如果在436处确定的锁定策略指定锁定模式,那么也就是指示主要非易失性存储器104中的启动块110要被锁定到存储在次要非易失性存储器116中的启动块132的版本。在一些情况下,主要非易失性存储器104中的启动块110可以已经被更新至更新的版本。然而,如果锁定策略指定锁定模式,那么不允许主要非易失性存储器104中的启动块110的这种更新,在这种情况下,主要非易失性存储器104中的启动块110被次要非易失性存储器116中的启动块132替换(通过在442处执行复制)。在复制(在442处)启动块132以替换启动块110之前,EC固件可检查(在440处)回复策略指定自动模式还是手动模式。如果指定自动模式,那么可直接执行在442处的复制。然而,如果指定手动模式,那么EC固件可提供(在444处)输出以提示用户输入,在这之后,可执行在442处的复制。

该过程然后继续进行到任务418。

任务434、436、440、442和444也涉及次要非易失性存储器116中的启动块132(或者更一般地系统固件冗余副本114)的基于策略的更新。

通过使用根据一些实施方式的技术或机制,可实现从遭到破坏的系统固件的更加有效和安全的恢复。从遭到破坏的系统固件恢复不依赖于处理器上代码的执行;相反地,恢复由嵌入式控制器执行。在一些实施方式中,可提供更新系统固件冗余副本的安全方式。系统固件冗余副本的基于策略的更新可提供执行更新时的灵活性。

加载上述各种模块的机器可读指令以供在处理电路(例如,嵌入式控制器102或处理器106)上执行。处理电路可包括微处理器、微控制器、处理器模块或子系统、可编程集成电路、可编程门阵列或者另一个控制或计算装置。

数据和指令被存储在各自的存储装置中,这些存储装置被实现为一个或多个计算机可读或机器可读存储介质。存储介质包括不同形式的存储器、磁盘(例如固定硬盘、软盘和移动硬盘)、包括磁带的其它磁性介质、光学介质(例如光盘(CD)或数字化视频光盘(DVD))、或者其它类型的存储装置,存储器包括半导体存储器装置(例如动态或静态随机存取存储器(DRAM或SRAM))、可擦除和可编程只读存储器(EPROM)、电可擦除和可编程只读存储器(EEPROM)和闪存。要注意的是,上面论述的指令可被提供到一个计算机可读或机器可读存储介质上,或者可替代地,可被提供到分布在可能具有多个节点的大系统中的多个计算机可读或机器可读存储介质上。这种计算机可读或机器可读存储介质或这些计算机可读或机器可读存储介质被认为是物品(或者制造物品)的一部分。物品或制造物品可以指任何制造的单个组件或多个组件。这种存储介质或这些存储介质能够被定位在运行机器可读指令的机器中,或者定位在通过网络可从其下载用于执行的机器可读指令的远程站点。

在前述说明中,提出多个细节以提供本文公开的主题的理解。然而,可以在没有一些或所有这些细节的情况下实践实施方式。其它实施方式可以包括来自上面论述的细节的修改和变化。其旨在所附权利要求涵盖这些修改和变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号