CN105122261A - 从遭到破坏的系统启动代码中恢复 - Google Patents

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

Info

Publication number
CN105122261A
CN105122261A CN201380075649.3A CN201380075649A CN105122261A CN 105122261 A CN105122261 A CN 105122261A CN 201380075649 A CN201380075649 A CN 201380075649A CN 105122261 A CN105122261 A CN 105122261A
Authority
CN
China
Prior art keywords
memory
code
controller
system start
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.)
Granted
Application number
CN201380075649.3A
Other languages
English (en)
Other versions
CN105122261B (zh
Inventor
杰弗里·凯文·耶安松尼
瓦柳丁·Y·阿里
王兰
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 CN105122261A publication Critical patent/CN105122261A/zh
Application granted granted Critical
Publication of CN105122261B publication Critical patent/CN105122261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F11/1469Backup restoration techniques
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

从遭到破坏的系统启动代码中恢复
背景技术
计算系统可包括执行计算系统各种启动功能的代码。该代码可包括基本输入/输出系统(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)和闪存。要注意的是,上面论述的指令可被提供到一个计算机可读或机器可读存储介质上,或者可替代地,可被提供到分布在可能具有多个节点的大系统中的多个计算机可读或机器可读存储介质上。这种计算机可读或机器可读存储介质或这些计算机可读或机器可读存储介质被认为是物品(或者制造物品)的一部分。物品或制造物品可以指任何制造的单个组件或多个组件。这种存储介质或这些存储介质能够被定位在运行机器可读指令的机器中,或者定位在通过网络可从其下载用于执行的机器可读指令的远程站点。
在前述说明中,提出多个细节以提供本文公开的主题的理解。然而,可以在没有一些或所有这些细节的情况下实践实施方式。其它实施方式可以包括来自上面论述的细节的修改和变化。其旨在所附权利要求涵盖这些修改和变化。

Claims (15)

1.一种计算装置,包括:
处理器;
控制器;
存储系统启动代码的第一存储器,其中所述第一存储器通过总线能够由所述处理器和所述控制器两者访问;
与所述总线电隔离并且存储系统启动代码副本的第二存储器,其中所述第二存储器能够由所述控制器访问,但是不能由所述处理器访问;
其中所述控制器在所述处理器不访问所述第一存储器期间,利用来自所述第二存储器的所述系统启动代码副本替换所述第一存储器中的所述系统启动代码。
2.根据权利要求1所述的计算装置,其中所述控制器在不访问所述计算装置外部的任何装置的情况下,通过从所述第二存储器获取所述系统启动代码副本来执行所述替换。
3.根据权利要求1所述的计算装置,其中所述控制器是嵌入式控制器。
4.根据权利要求1所述的计算装置,其中所述系统启动代码包括启动块。
5.根据权利要求1所述的计算装置,其中所述控制器用于访问策略信息以确定是否允许所述第二存储器中的所述系统启动代码副本的更新。
6.根据权利要求5所述的计算装置,其中所述策略信息被存储在所述第二存储器中。
7.根据权利要求6所述的计算装置,其中所述策略信息在第一设定和第二设定之间可更新,在所述第一设定中允许所述系统启动代码副本的更新,在所述第二设定中不允许所述系统启动代码副本的更新。
8.根据权利要求1所述的计算装置,其中所述第二存储器中的所述系统启动代码副本是可更新的第一系统启动代码副本,并且其中所述第二存储器进一步存储不可变的第二系统启动代码副本。
9.一种方法,包括:
在计算装置的处理器不访问所述计算装置中的第一存储器的所述计算装置的状态中,通过所述计算装置中的控制器确定来自所述第一存储器的系统启动代码是否遭到破坏,其中所述第一存储器通过总线能够由所述处理器和所述控制器访问;以及
响应于确定所述系统启动代码遭到破坏,通过所述控制器从所述计算装置中的第二存储器获取系统启动代码来替换所述第一存储器中的系统启动代码,其中所述第二存储器与所述总线电隔离并且不能由所述处理器访问。
10.根据权利要求9所述的方法,其中确定所述系统启动代码是否遭到破坏包括确定所述第一存储器中的启动块是否遭到破坏。
11.根据权利要求10所述的方法,其中从所述第二存储器获取系统启动代码包括从所述第二存储器获取启动块以替换所述第一存储器中的所述启动块。
12.根据权利要求11所述的方法,其中所述启动块是基本输入/输出系统(BISO)代码的一部分,并且其中所述第二存储器中的系统启动代码进一步包括所述BIOS代码的剩余部分。
13.根据权利要求9所述的方法,其中确定所述第一存储器中的系统启动代码是否遭到破坏是在处理器重新启动所述系统启动代码的执行的每个实例之前由所述控制器执行。
14.根据权利要求9所述的方法,进一步包括:
在所述控制器的初始化程序期间,验证控制器代码;以及
响应于验证所述控制器代码,将所述控制器代码加载到所述控制器中以由所述控制器执行,其中所述确定和所述获取由所述控制器中执行的所述控制器代码执行。
15.一种包括至少一个机器可读存储介质的物品,所述机器可读存储介质存储指令,所述指令在由系统中的控制器执行时,引起所述控制器:
在所述系统的处理器被禁用的所述系统的状态中,确定来自所述系统中第一存储器的启动块是否遭到破坏,其中所述第一存储器通过总线能够由所述处理器和所述控制器访问;以及
响应于确定所述系统启动代码遭到破坏,通过所述控制器从所述计算装置中的第二存储器获取启动块以替换所述第一存储器中的启动块,其中所述第二存储器与总线电隔离并且不能由所述处理器访问。
CN201380075649.3A 2013-04-23 2013-04-23 从遭到破坏的系统启动代码中恢复的方法以及计算装置 Active CN105122261B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/037724 WO2014175861A1 (en) 2013-04-23 2013-04-23 Recovering from compromised system boot code

Publications (2)

Publication Number Publication Date
CN105122261A true CN105122261A (zh) 2015-12-02
CN105122261B CN105122261B (zh) 2020-04-24

Family

ID=51792250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075649.3A Active CN105122261B (zh) 2013-04-23 2013-04-23 从遭到破坏的系统启动代码中恢复的方法以及计算装置

Country Status (4)

Country Link
US (1) US9880908B2 (zh)
CN (1) CN105122261B (zh)
TW (1) TWI648652B (zh)
WO (1) WO2014175861A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446322A (zh) * 2015-12-21 2016-03-30 浙江中控研究院有限公司 一种控制代码异常检测方法及装置
CN105607929A (zh) * 2015-12-18 2016-05-25 合肥联宝信息技术有限公司 对计算机设备上的ec进行烧录的系统及方法
CN106569912A (zh) * 2016-11-02 2017-04-19 惠州Tcl移动通信有限公司 一种移动终端恢复出厂设置的方法及系统
CN106648632A (zh) * 2016-12-02 2017-05-10 英业达科技有限公司 计算机系统
CN106874801A (zh) * 2017-01-20 2017-06-20 维沃移动通信有限公司 一种数据处理方法及移动终端
CN110494855A (zh) * 2017-03-22 2019-11-22 甲骨文国际公司 用于恢复可信系统固件状态的系统和方法
CN112868013A (zh) * 2018-10-25 2021-05-28 戴尔产品有限公司 经由边带接口恢复场域可程序门阵列固件的系统及方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144185B (zh) 2013-04-23 2018-06-05 惠普发展公司,有限责任合伙企业 验证控制器代码和系统启动代码
TW201616273A (zh) * 2014-10-30 2016-05-01 鴻海精密工業股份有限公司 電腦bios資料恢復系統及方法
US10885196B2 (en) 2016-04-29 2021-01-05 Hewlett Packard Enterprise Development Lp Executing protected code
TWI607381B (zh) * 2016-08-10 2017-12-01 神雲科技股份有限公司 用於電腦裝置的系統資訊存取方法
US10241803B2 (en) * 2016-10-03 2019-03-26 Schneider Electric It Corporation System and method for updating device software
DE102017207871A1 (de) * 2017-05-10 2018-11-15 Tridonic Gmbh & Co Kg Firmware-Update-Over-The Air (FOTA) in der Gebäudetechnik
US10824724B2 (en) * 2017-06-02 2020-11-03 Dell Products, L.P. Detecting runtime tampering of UEFI images in an information handling system
US10540501B2 (en) * 2017-06-02 2020-01-21 Dell Products, L.P. Recovering an information handling system from a secure boot authentication failure
US10802916B2 (en) * 2017-08-04 2020-10-13 Dell Products, L.P. System and method to enable rapid recovery of an operating system image of an information handling system after a malicious attack
US10534936B2 (en) * 2017-08-30 2020-01-14 Dell Products, Lp System and method for enabling and disabling of baseboard management controller configuration lockdown
US10715321B2 (en) 2017-12-22 2020-07-14 Micron Technology, Inc. Physical unclonable function using message authentication code
US10906506B2 (en) 2017-12-28 2021-02-02 Micron Technology, Inc. Security of user data stored in shared vehicles
US10924277B2 (en) * 2018-01-25 2021-02-16 Micron Technology, Inc. Certifying authenticity of stored code and code updates
US10778661B2 (en) 2018-04-27 2020-09-15 Micron Technology, Inc. Secure distribution of secret key using a monotonic counter
KR102612842B1 (ko) * 2018-09-17 2023-12-13 에스케이하이닉스 주식회사 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치
US10795746B2 (en) 2018-12-13 2020-10-06 Micron Technology, Inc. Automated power down based on state of firmware
US10853179B2 (en) * 2018-12-21 2020-12-01 Dell Products L.P. Information handling system and method for restoring firmware in one or more regions of a flash memory device
US11550593B2 (en) * 2019-01-08 2023-01-10 Dell Products L.P. Information handling system quick boot
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11947675B2 (en) * 2019-02-11 2024-04-02 Hewlett-Packard Development Company, L.P. Restoration of firmware subsystems based on manufacturing states
US11029965B2 (en) * 2019-03-15 2021-06-08 Intel Corporation Booting firmware from expansion block storage devices
TWI751962B (zh) * 2019-04-07 2022-01-01 新唐科技股份有限公司 安全裝置、安全方法、安全系統以及安全設備
JP7184188B2 (ja) * 2019-06-27 2022-12-06 京セラドキュメントソリューションズ株式会社 画像形成装置、ファームウェアの改竄防止方法及び改竄防止プログラムを記憶したコンピューター読取可能な非一時的な記録媒体
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
CN112817619B (zh) * 2019-11-17 2023-07-28 新唐科技股份有限公司 电脑系统及其安全管理方法以及电脑软件产品
US11385902B2 (en) * 2019-11-17 2022-07-12 Nuvoton Technology Corporation Secure firmware management with hierarchical boot sequence using last known good firmware
WO2021194501A1 (en) * 2020-03-27 2021-09-30 Hewlett-Packard Development Company, L.P. Alternate operating systems
US20200226260A1 (en) * 2020-03-27 2020-07-16 Intel Corporation Firmware resiliency mechanism
JP2022071954A (ja) 2020-10-29 2022-05-17 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
US11928217B2 (en) 2020-11-18 2024-03-12 Canon Kabushiki Kaisha Information processing apparatus, control method of information processing apparatus, and storage medium
US20220197746A1 (en) * 2020-12-18 2022-06-23 Advanced Micro Devices, Inc. Combination bios with a/b recovery
JP2022135443A (ja) * 2021-03-05 2022-09-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11907071B2 (en) * 2022-05-09 2024-02-20 Dell Products L.P. Storage failover protocol for secure and seamless extended firmware load

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1799028A (zh) * 2003-06-03 2006-07-05 皇家飞利浦电子股份有限公司 从非易失性存储器引导
CN1928843A (zh) * 2006-08-01 2007-03-14 山东浪潮电子设备有限公司 提高金融税控专用soc芯片安全性的方法
US20080040596A1 (en) * 2006-08-11 2008-02-14 Quanta Computer Inc. Embedded system and boot code auto-copy method thereof
CN101894054A (zh) * 2009-05-21 2010-11-24 华硕电脑股份有限公司 具有修复毁损bios数据功能的电脑系统及其修复方法
US20100299493A1 (en) * 2009-05-22 2010-11-25 Raytheon Company Multi-Level Security Computing System
US7908470B1 (en) * 2006-10-31 2011-03-15 Hewlett-Packard Development Company, L.P. Multi-processor computer with plural boot memories

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469573A (en) * 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
US5745669A (en) * 1993-10-21 1998-04-28 Ast Research, Inc. System and method for recovering PC configurations
US5713024A (en) * 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US5564054A (en) * 1994-08-25 1996-10-08 International Business Machines Corporation Fail-safe computer boot apparatus and method
JP3088269B2 (ja) * 1995-07-26 2000-09-18 日本電気通信システム株式会社 コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法
US5918047A (en) * 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US5778070A (en) 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US6205527B1 (en) * 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
US5987605A (en) * 1998-02-28 1999-11-16 Hewlett-Packard Co. Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
US6275930B1 (en) * 1998-08-12 2001-08-14 Symantec Corporation Method, computer, and article of manufacturing for fault tolerant booting
US6539473B1 (en) * 1999-09-02 2003-03-25 International Business Machines Corporation Remotely controlled boot manager
JP3838840B2 (ja) * 2000-01-06 2006-10-25 Necエレクトロニクス株式会社 コンピュータ
US20060075395A1 (en) * 2004-10-01 2006-04-06 Lee Charles C Flash card system
US7676640B2 (en) * 2000-01-06 2010-03-09 Super Talent Electronics, Inc. Flash memory controller controlling various flash memory cells
US8296467B2 (en) * 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
JP2001209543A (ja) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
US6651188B2 (en) * 2001-06-29 2003-11-18 Intel Corporation Automatic replacement of corrupted BIOS image
US7069445B2 (en) * 2001-11-30 2006-06-27 Lenovo (Singapore) Pte. Ltd System and method for migration of a version of a bootable program
TWI251771B (en) * 2001-12-28 2006-03-21 Asustek Comp Inc Module and method for automatic restoring BIOS device, and the computer-readable recording media of storing the program codes thereof
JP3863447B2 (ja) 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
EP1372068A3 (en) * 2002-06-11 2006-02-08 Seiko Epson Corporation System, method and program for rewriting a flash memory
US7143275B2 (en) * 2002-08-01 2006-11-28 Hewlett-Packard Development Company, L.P. System firmware back-up using a BIOS-accessible pre-boot partition
US20040030877A1 (en) 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
US20040076043A1 (en) 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
US6915420B2 (en) * 2003-01-06 2005-07-05 John Alan Hensley Method for creating and protecting a back-up operating system within existing storage that is not hidden during operation
US20040193862A1 (en) * 2003-03-31 2004-09-30 Johnson Lin Device with high storage capacity and several BIOS backup copies
TW200506731A (en) * 2003-08-05 2005-02-16 Via Tech Inc Computer system with multiple basic input/output system (BIOS) memory blocks
US7533274B2 (en) 2003-11-13 2009-05-12 International Business Machines Corporation Reducing the boot time of a TCPA based computing system when the core root of trust measurement is embedded in the boot block code
US20050190699A1 (en) 2004-02-26 2005-09-01 Smith Carey W. Collecting hardware asset information
US7185191B2 (en) * 2004-05-05 2007-02-27 International Business Machines Corporation Updatable firmware having boot and/or communication redundancy
US20050273588A1 (en) * 2004-06-08 2005-12-08 Ong Soo K Bootstrap method and apparatus with plural interchangeable boot code images
US7409539B2 (en) * 2004-08-06 2008-08-05 International Business Machines Corporation System design and code update strategy to implement a self-healing, self-verifying system
US7370234B2 (en) * 2004-10-14 2008-05-06 International Business Machines Corporation Method for system recovery
US8028172B2 (en) 2005-01-14 2011-09-27 Microsoft Corporation Systems and methods for updating a secure boot process on a computer with a hardware security module
US20060225067A1 (en) * 2005-04-05 2006-10-05 Inventec Corporation Method for automatically updating and backing up the BIOS
US7734945B1 (en) * 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
TW200739417A (en) * 2006-04-14 2007-10-16 Benq Corp Method for software processing and firmware updating in different OS and system thereof
US8863309B2 (en) 2006-04-27 2014-10-14 Hewlett-Packard Development Company, L.P. Selectively unlocking a core root of trust for measurement (CRTM)
US7613872B2 (en) 2006-11-28 2009-11-03 International Business Machines Corporation Providing core root of trust measurement (CRTM) for systems using a backup copy of basic input/output system (BIOS)
TW200825915A (en) * 2006-12-07 2008-06-16 Wistron Corp Computer system and related method for preventing from failing to update BIOS program
US20080195750A1 (en) * 2007-02-09 2008-08-14 Microsoft Corporation Secure cross platform auditing
US7743424B2 (en) * 2007-02-22 2010-06-22 Inventec Corporation Method for protecting data in a hard disk
US8798806B2 (en) 2007-04-30 2014-08-05 Hewlett-Packard Development Company, L.P. Electronic device thermal management system and method
US20090063834A1 (en) * 2007-09-05 2009-03-05 Inventec Corporation Auto-Switching Bios System and the Method Thereof
US7925877B2 (en) * 2007-09-27 2011-04-12 Texas Instruments Incorporated Method, system and apparatus for providing a boot loader of an embedded system
TWI362588B (en) * 2007-10-12 2012-04-21 Asustek Comp Inc Monitor apparatus, a monitoring method thereof and computer apparatus therewith
CN101458648A (zh) * 2007-12-12 2009-06-17 鸿富锦精密工业(深圳)有限公司 双bios电路
US8392762B2 (en) * 2008-02-04 2013-03-05 Honeywell International Inc. System and method for detection and prevention of flash corruption
TWI366135B (en) * 2008-03-26 2012-06-11 Asustek Comp Inc Method for restoring bios and computer thereof
US7818622B2 (en) * 2008-04-29 2010-10-19 International Business Machines Corporation Method for recovering data processing system failures
US7984286B2 (en) 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
US8055892B2 (en) * 2008-07-18 2011-11-08 International Business Machines Corporation Provision of remote system recovery services
TWI460657B (zh) * 2008-09-05 2014-11-11 Asustek Comp Inc 更新與修復基本輸入輸出系統的方法
US20100082960A1 (en) 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
TWI382346B (zh) * 2008-10-20 2013-01-11 Asustek Comp Inc 保護雙基本輸出入系統程式之電腦系統及其控制方法
TW201033808A (en) * 2009-03-10 2010-09-16 Vivotek Inc System recovery method and embedded system with auto-recovery function
TWI467375B (zh) 2009-05-21 2015-01-01 Asustek Comp Inc 具有修復毀損bios資料功能之電腦系統及其修復方法
AU2010271205A1 (en) * 2009-07-09 2012-02-09 Moko Therapeutics Llc. Method of wound healing and scar modulation
TWI399647B (zh) * 2009-10-15 2013-06-21 Wistron Corp 回復電腦系統之基本輸出入系統之方法及相關電腦系統
US8838949B2 (en) * 2010-03-22 2014-09-16 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
US8429391B2 (en) * 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US20120011393A1 (en) * 2010-07-06 2012-01-12 Roberts Richard B Bios recovery
US8499295B2 (en) * 2010-09-20 2013-07-30 American Megatrends, Inc. Microcontroller firmware running from RAM and applications of the same
US8489922B2 (en) * 2010-11-17 2013-07-16 Apple Inc. Networked recovery system
US8627141B2 (en) * 2011-02-14 2014-01-07 Dell Products L.P. System and method for auto-failover and version matching of bootloader in an access controller
US8732527B2 (en) 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
JP5476363B2 (ja) 2011-12-19 2014-04-23 レノボ・シンガポール・プライベート・リミテッド 生体認証装置を利用したコンピュータの起動方法およびコンピュータ
KR101994811B1 (ko) * 2012-03-04 2019-07-01 삼성전자주식회사 전자 장치, mbr 복원 방법 및 컴퓨터 판독가능 기록매체
TWI564747B (zh) 2012-10-19 2017-01-01 威盛電子股份有限公司 電子裝置與安全開機方法
US9575768B1 (en) * 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9558012B2 (en) * 2013-02-21 2017-01-31 Applied Micro Circuits Corporation System boot with external media
US9336010B2 (en) * 2013-03-15 2016-05-10 Xilinx, Inc. Multi-boot or fallback boot of a system-on-chip using a file-based boot device
CN105308609B (zh) * 2013-04-23 2017-12-29 惠普发展公司,有限责任合伙企业 存储事件数据的系统和方法
US9785596B2 (en) * 2013-04-23 2017-10-10 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory
US9542195B1 (en) * 2013-07-29 2017-01-10 Western Digital Technologies, Inc. Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip
TW201512831A (zh) * 2013-09-30 2015-04-01 Hon Hai Prec Ind Co Ltd 電腦開機啟動偵測系統及方法
TW201520895A (zh) * 2013-11-20 2015-06-01 Hon Hai Prec Ind Co Ltd Bios自動恢復系統及方法
US9411688B1 (en) * 2013-12-11 2016-08-09 Xilinx, Inc. System and method for searching multiple boot devices for boot images
US9122893B1 (en) 2014-02-24 2015-09-01 International Business Machines Corporation Trusted platform module switching
US9262257B2 (en) * 2014-04-21 2016-02-16 Netapp, Inc. Providing boot data in a cluster network environment
US9317691B2 (en) * 2014-05-08 2016-04-19 Dell Products L.P. Pre-boot software verification
EP3201763A4 (en) * 2015-01-29 2018-07-11 Hewlett-Packard Development Company, L.P. Resuming a system-on-a-chip device
US9740866B2 (en) * 2015-06-10 2017-08-22 The Boeing Company Automatic measuring boot process using an automatic measuring processor coupled to a memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1799028A (zh) * 2003-06-03 2006-07-05 皇家飞利浦电子股份有限公司 从非易失性存储器引导
CN1928843A (zh) * 2006-08-01 2007-03-14 山东浪潮电子设备有限公司 提高金融税控专用soc芯片安全性的方法
US20080040596A1 (en) * 2006-08-11 2008-02-14 Quanta Computer Inc. Embedded system and boot code auto-copy method thereof
US7908470B1 (en) * 2006-10-31 2011-03-15 Hewlett-Packard Development Company, L.P. Multi-processor computer with plural boot memories
CN101894054A (zh) * 2009-05-21 2010-11-24 华硕电脑股份有限公司 具有修复毁损bios数据功能的电脑系统及其修复方法
US20100299493A1 (en) * 2009-05-22 2010-11-25 Raytheon Company Multi-Level Security Computing System

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105607929A (zh) * 2015-12-18 2016-05-25 合肥联宝信息技术有限公司 对计算机设备上的ec进行烧录的系统及方法
CN105607929B (zh) * 2015-12-18 2019-02-19 合肥联宝信息技术有限公司 对计算机设备上的ec进行烧录的系统及方法
CN105446322A (zh) * 2015-12-21 2016-03-30 浙江中控研究院有限公司 一种控制代码异常检测方法及装置
CN106569912A (zh) * 2016-11-02 2017-04-19 惠州Tcl移动通信有限公司 一种移动终端恢复出厂设置的方法及系统
CN106569912B (zh) * 2016-11-02 2020-08-11 惠州Tcl移动通信有限公司 一种移动终端恢复出厂设置的方法及系统
CN106648632A (zh) * 2016-12-02 2017-05-10 英业达科技有限公司 计算机系统
CN106874801A (zh) * 2017-01-20 2017-06-20 维沃移动通信有限公司 一种数据处理方法及移动终端
CN106874801B (zh) * 2017-01-20 2020-04-03 维沃移动通信有限公司 一种数据处理方法及移动终端
CN110494855A (zh) * 2017-03-22 2019-11-22 甲骨文国际公司 用于恢复可信系统固件状态的系统和方法
CN110494855B (zh) * 2017-03-22 2023-09-26 甲骨文国际公司 用于恢复可信系统固件状态的系统和方法
CN112868013A (zh) * 2018-10-25 2021-05-28 戴尔产品有限公司 经由边带接口恢复场域可程序门阵列固件的系统及方法

Also Published As

Publication number Publication date
TW201506675A (zh) 2015-02-16
TWI648652B (zh) 2019-01-21
US20160055068A1 (en) 2016-02-25
CN105122261B (zh) 2020-04-24
US9880908B2 (en) 2018-01-30
WO2014175861A1 (en) 2014-10-30

Similar Documents

Publication Publication Date Title
CN105122261A (zh) 从遭到破坏的系统启动代码中恢复
US11520894B2 (en) Verifying controller code
EP2989579B1 (en) Redundant system boot code in a secondary non-volatile memory
EP2989583B1 (en) Configuring a system
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
CN105308609B (zh) 存储事件数据的系统和方法
US9734339B2 (en) Retrieving system boot code from a non-volatile memory
EP2989547B1 (en) Repairing compromised system data in a non-volatile memory
EP3028147B1 (en) Updating boot code
US9928367B2 (en) Runtime verification
EP4174698A1 (en) Method and system for controlling the boot customization in a platform firmware resilience execution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant