CN105122261A - 从遭到破坏的***启动代码中恢复 - Google Patents
从遭到破坏的***启动代码中恢复 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- Y—GENERAL 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS 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/00—Systems 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/20—Information 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.一种包括至少一个机器可读存储介质的物品,所述机器可读存储介质存储指令,所述指令在由***中的控制器执行时,引起所述控制器:
在所述***的处理器被禁用的所述***的状态中,确定来自所述***中第一存储器的启动块是否遭到破坏,其中所述第一存储器通过总线能够由所述处理器和所述控制器访问;以及
响应于确定所述***启动代码遭到破坏,通过所述控制器从所述计算装置中的第二存储器获取启动块以替换所述第一存储器中的启动块,其中所述第二存储器与总线电隔离并且不能由所述处理器访问。
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)
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 (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014175867A1 (en) | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Verifying controller code and system boot code |
TW201616273A (zh) * | 2014-10-30 | 2016-05-01 | 鴻海精密工業股份有限公司 | 電腦bios資料恢復系統及方法 |
WO2017188976A1 (en) | 2016-04-29 | 2017-11-02 | 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 |
US10540501B2 (en) * | 2017-06-02 | 2020-01-21 | Dell Products, L.P. | Recovering an information handling system from a secure boot authentication failure |
US10824724B2 (en) * | 2017-06-02 | 2020-11-03 | Dell Products, L.P. | Detecting runtime tampering of UEFI images in an information handling system |
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 |
US11418335B2 (en) | 2019-02-01 | 2022-08-16 | 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 |
CN113330436A (zh) * | 2019-02-11 | 2021-08-31 | 惠普发展公司,有限责任合伙企业 | 基于制造状态的固件子***恢复 |
US11029965B2 (en) * | 2019-03-15 | 2021-06-08 | Intel Corporation | Booting firmware from expansion block storage devices |
TWI733399B (zh) * | 2019-04-07 | 2021-07-11 | 新唐科技股份有限公司 | 安全裝置、安全方法、安全系統以及安全設備 |
WO2020262347A1 (ja) * | 2019-06-27 | 2020-12-30 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置、ファームウェアの改竄防止方法及び改竄防止プログラムを記憶したコンピューター読取可能な非一時的な記録媒体 |
US11016755B2 (en) * | 2019-07-31 | 2021-05-25 | Dell Products L.P. | System and method to secure embedded controller flashing process |
US11385902B2 (en) * | 2019-11-17 | 2022-07-12 | Nuvoton Technology Corporation | Secure firmware management with hierarchical boot sequence using last known good firmware |
CN112817619B (zh) * | 2019-11-17 | 2023-07-28 | 新唐科技股份有限公司 | 电脑***及其安全管理方法以及电脑软件产品 |
US20200226260A1 (en) * | 2020-03-27 | 2020-07-16 | Intel Corporation | Firmware resiliency mechanism |
WO2021194501A1 (en) * | 2020-03-27 | 2021-09-30 | Hewlett-Packard Development Company, L.P. | Alternate operating systems |
JP2022071954A (ja) | 2020-10-29 | 2022-05-17 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP7500400B2 (ja) | 2020-11-18 | 2024-06-17 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
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 |
US20240232026A9 (en) * | 2022-10-24 | 2024-07-11 | Dell Products L.P. | Improving restoration of firmware data |
Citations (6)
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)
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 |
US8296467B2 (en) * | 2000-01-06 | 2012-10-23 | Super Talent Electronics Inc. | Single-chip flash device with boot code transfer capability |
US7676640B2 (en) * | 2000-01-06 | 2010-03-09 | Super Talent Electronics, Inc. | Flash memory controller controlling various flash memory cells |
JP3838840B2 (ja) * | 2000-01-06 | 2006-10-25 | Necエレクトロニクス株式会社 | コンピュータ |
US20060075395A1 (en) * | 2004-10-01 | 2006-04-06 | Lee Charles C | Flash card system |
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資料功能之電腦系統及其修復方法 |
BR112012001098A2 (pt) * | 2009-07-09 | 2015-09-01 | Crescendo Therapeutics Llc | Método de cicatrização de feridas e modulação de cicatriz |
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 | 惠普发展公司,有限责任合伙企业 | 存储事件数据的***和方法 |
CN105122262B (zh) * | 2013-04-23 | 2018-06-05 | 惠普发展公司,有限责任合伙企业 | 辅助非易失性存储器中的冗余***引导代码 |
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 |
US10228745B2 (en) * | 2015-01-29 | 2019-03-12 | 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 |
-
2013
- 2013-04-23 WO PCT/US2013/037724 patent/WO2014175861A1/en active Application Filing
- 2013-04-23 CN CN201380075649.3A patent/CN105122261B/zh active Active
- 2013-04-23 US US14/780,967 patent/US9880908B2/en active Active
-
2014
- 2014-02-26 TW TW103106565A patent/TWI648652B/zh not_active IP Right Cessation
Patent Citations (6)
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)
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 |
---|---|
US20160055068A1 (en) | 2016-02-25 |
CN105122261B (zh) | 2020-04-24 |
WO2014175861A1 (en) | 2014-10-30 |
TW201506675A (zh) | 2015-02-16 |
US9880908B2 (en) | 2018-01-30 |
TWI648652B (zh) | 2019-01-21 |
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 |