CN105144185B - 验证控制器代码和系统启动代码 - Google Patents

验证控制器代码和系统启动代码 Download PDF

Info

Publication number
CN105144185B
CN105144185B CN201380075617.3A CN201380075617A CN105144185B CN 105144185 B CN105144185 B CN 105144185B CN 201380075617 A CN201380075617 A CN 201380075617A CN 105144185 B CN105144185 B CN 105144185B
Authority
CN
China
Prior art keywords
code
controller
memory
block
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380075617.3A
Other languages
English (en)
Other versions
CN105144185A (zh
Inventor
J.K.让索内
V.Y.阿利
J.M.曼
B.巴拉谢夫
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 CN105144185A publication Critical patent/CN105144185A/zh
Application granted granted Critical
Publication of CN105144185B publication Critical patent/CN105144185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/575Secure boot
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Abstract

与系统的处理器分离的控制器验证用于在控制器上执行的控制器代码。响应于验证控制器代码,控制器验证系统启动代码。

Description

验证控制器代码和系统启动代码
背景技术
计算系统可以包括用以执行计算系统的各种启动功能的代码。此代码可以包括基本输入/输出系统(BIOS)代码。BIOS代码可以是在计算机系统中或来自外部服务的恶意软件攻击的对象。作为攻击的结果,BIOS代码可能变得被损害。
附图说明
相对于以下各图来描述某些实施方式:
图1是根据某些实施方式的示例性系统的框图;
图2是根据某些实施方式的由嵌入式控制器执行的启动过程的流程图;
图3是根据某些实施方式的验证过程的流程图;
图4是根据其它实施方式的示例性系统的框图;以及
图5—7是根据其它实施方式的过程的流程图。
具体实施方式
对被用来执行计算系统启动的系统代码的恶意软件攻击可以促使计算系统的完整性被损害,使得可能发生计算系统中的未授权访问和操作。例如,被损害系统代码可以允许计算系统被恶意实体隐蔽地远程监视和/或控制、计算系统中的数据被恶意软件未授权访问和/或修改、计算系统的禁用等。被损害系统代码可以指代已被损坏、使得系统代码不再可用的系统代码,或者替换地,被损害系统代码可以指代已经以某种方式改变、但仍能够执行的系统代码。请注意,系统代码也可能偶然地或无意中被损害。
虽然可以在计算系统中提供保护机制以保护系统代码,但是此类保护机制在能够使系统代码经受恶意软件攻击的某些条件下可能变得被损害。
用来执行计算系统的启动的系统代码可以包括系统固件,其可以采取可在计算系统的(一个或多个)处理器上执行的机器可读指令的形式。“系统固件”可以指代能够执行计算系统的启动的任何机器可读指令。计算系统的示例包括台式计算机、笔记本计算机、平板计算机、个人数字助理(PDA)、智能电话、游戏设备、服务器计算机、存储节点、网络通信节点等。
系统固件可以包括基本输入/输出系统(BIOS)代码,其可以对计算系统的各种部件进行初始化,并加载计算系统的操作系统(OS)。BIOS代码可以执行硬件部件的检查以确保硬件部件存在并适当地运行。这可以是例如通电自检(POST)程序的一部分。在POST程序之后,BIOS代码可以行进通过启动序列的其余部分,在其之后,BIOS代码可以加载OS并向其传递控制。BIOS代码可以包括传统BIOS代码或统一可扩展固件接口(UEFI)代码。在某些示例中,BIOS代码可以包括在OS加载之后执行的运行时间部分。
系统固件可以被存储在非易失性存储器中,诸如闪存或可编程的任何其它持久性存储器。一旦非易失性存储器中的系统固件被损害,则一个可能的补救措施可涉及到在物理上替换包括非易失性存储器的部件。解决被损害系统固件的此类技术可能是劳动密集的、成本高的且耗时的。
根据某些实施方式,提供了用以允许实现被损害系统固件的检测以及检测到系统固件损害的情况下的系统固件自愈的技术或机制。图1是包括嵌入式控制器102、共享非易失性存储器104、处理器106以及私用非易失性存储器116的示例性计算系统100的框图。共享非易失性存储器104在其可被多个实体访问的意义上被“共享”,所述多个实体包括嵌入式控制器102和至少一个其它实体(包括处理器106)。私用非易失性存储器116可被嵌入式控制器102访问,但是对于处理器106或计算系统100中的其它部件是不可访问。使得私用非易失性存储器116不可被吹冷气106及其它部件访问保护私用非易失性存储器116的内容不被未授权篡改。私用非易失性存储器116始终可被嵌入式控制器102访问。
虽然在图1中未示出,但可以在处理器106与共享非易失性存储器104之间提供输入/输出(I/O)控制器。
私用(private)非易失性存储器116可以在物理上与共享非易失性存储器104(诸如在不同的物理存储器件中实现)分离。替换地,私用非易失性存储器116和共享非易失性存储器104可以在物理上驻于公共存储器件上,但是共享非易失性存储器104和私用非易失性存储器116在物理存储器件的不同段中,其中包含私用非易失性存储器116的物理存储器件的段仅可被嵌入式控制器102访问。
共享非易失性存储器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启动时执行。启动块110首先在BIOS代码的剩余部分被允许执行之前执行。启动块110可以用来检查BIOS代码的完整性以及执行其它初始功能。如果启动块110确认BIOS代码的完整性,则启动块110可以向BIOS代码的主要部分传递控制以用于发起与BIOS代码相关联的其余操作。
在某些实施方式中,启动块110可以包括可信测量核心根(CRTM)逻辑,其是由可信计算组(TCG)、行业标准工作组指定的逻辑。在计算系统100的通电程序期间,CRTM逻辑可以执行某些初始化任务,并且可以进行被存储以供稍后使用的许多测量。CRTM逻辑然后可以在向BIOS代码的主要部分传递控制之前检查BIOS代码。一旦BIOS代码完成执行并向OS传递控制,则OS可以基于由CRTM逻辑进行的测量来验证计算系统100的可信任性(trustworthiness)。
嵌入式控制器102在物理上与计算系统100的处理器106分离。处理器106被用于执行系统100中的OS、应用程序代码以及其它代码。嵌入式控制器102另一方面可以用来执行如被编程到EC固件108中的特定预定义任务。可以由嵌入式控制器102执行的任务的示例包括以下各项中的任何一个或某种组合:计算系统100中的电源控制(用于控制向计算系统100中的各种部件供应电源电压的电源)、计算系统100中的电池的充电和控制、热监视(用以监视计算系统100中的温度)、风扇控制(用以控制计算系统100中的风扇)以及与用户输入设备的交互(诸如执行计算系统100的键盘的扫描或与诸如鼠标、触控板、触摸屏等定点设备的交互)。可以用微控制器、专用集成电路(ASIC)、可编程门阵列(PGA)或任何其它类型的可编程电路来实现嵌入式控制器102。
计算系统100还包括私用非易失性存储器116,其存储系统固件拷贝114,其中,系统固件拷贝114包括启动块132和EC固件130。私用非易失性存储器116中的系统固件拷贝114可以是共享非易失性存储器104中的系统固件107的复制品。替换地,系统固件拷贝114可以是与系统固件107不同的版本(较晚版本或较早版本)。
在某些实施方式中,嵌入式控制器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中。被嵌入该嵌入式控制器102中的EC固件可以是不可变的。
根据某些实施方式,嵌入式控制器102包括能够验证在嵌入式控制器的初始化程序期间从非易失性存储器(116和/或104)检索的EC固件(130和/或108)的验证逻辑112。验证诸如EC固件之类的代码片可以指代以密码方式确认该代码片尚未改变和/或确认该代码片来自可信源。初始化程序(或更简单地“初始化”)指代当嵌入式控制器102在嵌入式控制器102已被重置之后或者在嵌入式控制器102的电源循环(其中从嵌入式控制器102去除电源且然后重新向其施加电源)之后首次启动时执行的程序。
另外,一旦EC固件被验证并加载以用于在嵌入式控制器102上执行,则EC固件可以在系统固件每次被处理器106进行重新启动执行之前验证系统固件,诸如由于计算系统100的冷重置、从计算系统100的低功率状态恢复、操作系统重启等。应注意的是还可以每当计算系统100进入低功率状态时由EC固件来验证系统固件。在其它示例中,EC固件还可以在处理器106仍被供电时验证系统固件。
计算系统100的低功率状态指代其中系统100的处理器106和某些其它硬件部件关闭(例如不向处理器和所述某些其它硬件部件提供功率)的计算系统100的状态。在低功率状态下,仍可以向嵌入式控制器102提供功率。计算系统100可以在以下情形中的任何一个中过渡至低功率状态:(1)作为促使系统100被断电以用于后续通电的计算系统100的冷重置的一部分,或者(2)作为省电程序的一部分,其中,计算系统100可在一定的不活动时间段之后或者响应于检测到低电池条件或者响应于用户或应用程序命令或者由于另一原因而从正常操作状态过渡到睡眠状态、冬眠状态或关断状态,或者(3)在任何其它情形中。
低功率状态的示例可以包括某些高级配置和电源接口(ACPI)状态,包括:ACPI S3状态(其是一种待机或睡眠状态,其中,计算系统100的系统上下文被保持在易失性存储器中,其在计算系统100的某些部件被断电的同时保持被供电);ACPI S4状态(其是一种冬眠状态,其中,系统上下文被保存到持久性存储器以允许从包括易失性存储器的附加计算系统部件去除电源);以及ACPI S5状态(其是一种系统关断状态形式,其中,已从计算系统100的甚至更多部件去除电源)。
在其它示例中,EC固件可以响应于计算系统100的热重置而执行系统固件的验证,在该热重置中在不去除到计算系统100的电源的情况下重启计算系统100。如下面进一步讨论的,为了允许EC固件响应于热重置而执行验证,可以迫使计算系统100在检测到热重置时过渡到适当的低功率状态(诸如上列低功率状态中的某些)。
在其它实施方式中,EC固件可以在任何时间执行验证,即使当计算系统并未处于低功率状态时。例如,EC固件可以在处理器空闲或并未访问共享非易失性存储器104时执行验证。还可以“实时地”执行由EC固件进行的验证,因为系统固件被检索以用于由处理器执行。
如在图2中所描绘的,作为系统启动的一部分,允许嵌入式控制器102执行其操作。可以将图2中所描绘的过程视为计算系统100的启动程序的阶段1。一般地,阶段1涉及到将EC固件检索到嵌入式控制器102中,验证EC固件,并在验证时执行EC固件。可以在计算系统100处于低功率状态的同时执行嵌入式控制器102的操作。
嵌入式控制器102首先检索(在202处)私用非易失性存储器116的EC固件130。验证逻辑112然后执行(在204处)EC固件130的验证。EC固件的验证可以基于基于密码的验证技术的使用。例如,该验证可以是采用密码加密的Rivest、Shamar以及Adleman(RSA)验证技术。RSA验证技术涉及到公开密钥和私用密钥的使用。公开密钥为多个实体所知,但是私用密钥仅为单个实体所知。可以使用相应的公开密钥将被用私用密钥加密的数据解密。替换地,可以使用私用密钥将数据加密,但使用公开密钥来解密。
如果验证逻辑112确定(在206处)来自私用非易失性存储器116的EC固件130已被成功地验证,则由嵌入式控制器102来执行(在208处)EC固件130以执行嵌入式控制器初始化任务。
然而,如果验证逻辑112确定(在206处)EC固件130未被成功地验证(例如由于EC固件130的损害或另外原因),则嵌入式控制器102从共享非易失性存储器104检索(在210处)EC固件108。验证逻辑112然后执行(在212处)EC固件108的验证(使用RSA验证技术或其它验证技术)。如果EC固件108被成功地验证(在214处确定),则由嵌入式控制器102来执行(在216处)EC固件108。然而,如果EC固件108未被验证逻辑112验证,则指示错误(在218处)。
在阶段1成功地完成(阶段1已经前进至任务208或216)之后,可以继续进行下一阶段(阶段2)。阶段2(有关图5进一步详细描述的)一般地涉及到EC固件(130或108)执行私用非易失性存储器116中的启动块132和共享非易失性存储器104中的启动块110的验证。可以在计算系统100处于低功率状态的同时执行阶段2。如果启动块132和110两者被EC固件验证,则阶段2可以成功地完成,并且系统准备使用启动块(132或110)启动。另一方面,如果EC固件确定私用非易失性存储器116中的启动块132或共享非易失性存储器104中的启动块110被损害,则EC固件使用指定的一个或多个策略来解决启动块132或启动块110的损害。如果启动块132和启动块110两者都被损害,则已发生系统错误,并且不允许计算系统100启动。
图3是根据某些实施方式的验证过程的流程图。可以由嵌入式控制器102来执行验证过程。在嵌入式控制器102的初始化期间,验证过程诸如通过使用RSA验证技术或其它验证技术来验证(在302处)从非易失性存储器(例如图1中的116或104)检索的EC固件。在由处理器106执行任何代码之前执行验证(在302处)。
在EC固件的验证之后,可以将EC固件加载到嵌入式控制器102中以用于执行。响应于验证EC固件,验证过程可以进一步验证(在304处)非易失性存储器(例如116或104)中的系统启动代码。被验证的系统启动代码可以包括启动块132和/或启动块110。更一般地,系统启动代码可以指代被用来启动计算系统100或使计算系统100从低功率状态恢复的任何系统代码。可以由在嵌入式控制器102中执行的EC固件来执行验证(在304处)。
如果系统启动代码(例如启动块132和/或启动块110)被验证,则计算系统100准备启动。如果启动块132和110中的一个不能被验证,则EC固件可以使用启动块132和110中的一个来校准(fix)启动块132和110中的另一个。然后可以从共享非易失性存储器104检索启动块110并将启动块110加载到处理器106以用于执行。
根据某些实施方式的验证过程因此可以验证在启动块110被处理器106执行之前启动块110未被损害(并且如果被损害,启动块110可以被校准)。以这种方式,可以针对系统固件的内容被恶意软件损害的可能性而提供保护。并且,可以针对涉及到用包含含有损害系统固件的非易失性存储器的另一部件来替换共享非易失性存储器部件104(或116)的部分替换攻击提供保护。
可以在计算系统100每次过渡到低功率状态时执行系统启动代码的验证。这确保在系统启动代码在从低功率状态出来过渡到较高功率状态期间被处理器106执行之前,系统启动代码未被损害。更一般地,可以在处理器106重新开始系统启动代码的执行的每个时刻之前执行系统启动代码的验证。
图4是根据其它实施方式的计算系统100的框图。图4的计算系统100包括输入/输出(I/O)控制器402,其被连接在处理器106与共享总线120之间。在某些示例中,I/O控制器402可以是来自英特尔公司的平台控制器集线器(PCH)。PCH可以包括各种功能,包括到图形子系统的显示器接口、到各种I/O设备可以被连接到的系统总线的系统总线接口等。在其它示例中,可以使用其它类型的I/O控制器。
如图4中所描绘的,嵌入式控制器102被耦合到用户输入设备404(例如,鼠标设备或其它类型的输入设备)、键盘406、风扇408、电池410以及电源413,以管理各设备(例如在EC固件的控制下)。
在图4示例中,嵌入式控制器102还包括密码硬件412,其可以执行密码计算,诸如在EC固件和启动块的验证中所使用的那些。密码硬件412可以采取被配置成执行密码计算的电路的形式。
嵌入式控制器102还包括只读存储器(ROM)414,其可以被用来存储启动加载程序416和加密密钥418。加密密钥418可以是用来执行EC固件(130或108)的验证的密钥(公开密钥或私用密钥)。在系统启动期间,启动加载程序416被从ROM 414加载以在嵌入式控制器102中执行以将EC固件从私用或共享非易失性存储器116或104检索到嵌入式控制器102的随机存取存储器(RAM)419中。启动加载程序416可以采取步骤以确保没有除嵌入式控制器102之外的其它实体在EC固件负载操作期间可访问共享总线120。
为了检索EC固件以用于加载到嵌入式控制器102中,启动加载程序416可以找到到EC固件图像的指针(或其它参考),其可以被存储在私用或共享非易失性存储器116或104中。
被检索的EC固件被图1的验证逻辑112验证,其可以包括能够调用密码硬件412以帮助执行密码计算的启动加载程序416中的功能。
在共享非易失性存储器104中,签名422与EC固件108相关联,并且签名424与启动块110相关联。同样地,在私有非易失性存储器116中,签名440与EC固件130相关联,并且签名442与启动块132相关联。签名440或422在各EC固件108或130的验证中使用,而签名442或424在各启动块110或132的验证中使用。验证过程中的签名的使用可以允许确定各EC固件或启动块的真实性,并确定各EC固件或启动块尚未被损害。
在某些实施方式中,EC固件108或130的验证可以通过使用存储在嵌入式控制器ROM 414中的加密密钥418将各签名422或440解密来实现。将签名解密产生可以与EC固件的相应计算值(例如哈希值)相比较的各值(例如哈希值)。如果前述值匹配,则EC固件被验证。可以将类似过程用于使用各数字签名424或442来验证BIOS启动块110或132。在替换示例中,可以使用任何密码技术来执行验证。
私用非易失性存储器116还可以存储机器独有数据430和策略信息434。例如,策略信息434可以包括关于以下策略中的一个或某种组合的信息:
指定是否将要使用积极(aggressive)操作模式的策略,其中,积极模式使得能够在其中主机处理器将执行启动块的每个情况下(在每次冷启动、热启动、从低功率状态恢复等)实现系统固件的验证。
指定将使用手动还是自动化恢复模式的策略,其中,手动恢复模式涉及到在允许执行被损害启动块的恢复之前的用户动作;以及
指定是将使用锁定还是解锁模式的策略,其中,锁定模式促使系统固件被锁定到指定版本,诸如私用非易失性存储器116中的版本。
机器独有数据430可以指代为每个特定计算系统所独有的任何数据或设置。机器独有数据的示例可以包括以下各项中的任何一个或某种组合:产品名称、产品型号、库存量单位(SKU)数目(用于识别待售的各计算系统)、计算系统的序列号、系统或商品跟踪号(用于识别计算系统的系统板)、系统配置标识符(用于识别计算系统的配置)、保证数据(用于描述与计算系统相关联的保证书)、通用唯一标识符(UUID)、BIOS代码的默认设置等。前述内容是作为机器独有数据的示例而提供的;在其它示例中,可以提供其它或附加类型的机器独有数据。
共享非易失性存储器104还存储与机器独有数据430相同或类似的机器独有数据436。
图5是阶段2过程的流程图,其是在图2中描绘的阶段1过程成功完成之后执行的。图5的阶段2过程可以在在阶段1过程中(在图2中的任务208或216中)执行的EC固件的控制下由嵌入式控制器102执行。
如图5中所示,嵌入式控制器确定(在502处)确定私用非易失性存储器116中的启动块130(在图5中表示为EC_BB)是否被验证(基于使用图4的签名442执行的验证)。如果不是,则EC_BB_Valid标志被清零(在504处)至已清零状态,以指示私用非易失性存储器116中的启动块130未被验证。
然而,如果502处的确定指示启动块132已被验证,则EC_BB_Valid标志被设定(在506处)成设定状态,以指示私用非易失性存储器116中的启动块132已被验证。
接下来,EC固件确定(在508)共享非易失性存储器104中的启动块110(在图5中表示为SYS_BB)是否已被验证(基于使用图4的签名424执行的验证)。如果不是,则EC固件接下来检查(在510处)EC_BB_Valid标志是否被设定(在510处)。如果不是,则其为私用和共享非易失性存储器116和104中的启动块132和110两者不能验证的指示,并且指示错误(在511处)。在这里,图5的阶段2过程停止,因为由于被损害的启动块而不能允许系统启动。
如果确定(在510处)EC_BB_Valid标志被设定,则其为私用非易失性存储器116中的启动块132已被验证的指示,即使共享非易失性存储器104中的启动块110不能被验证。在这种情况下,EC固件确定(在512处)恢复策略(存储为图4的私用非易失性存储器116中的策略信息434的一部分)是指定手动模式还是自动化模式。如果指示了自动化模式,则私用非易失性存储器116中的有效启动块132被拷贝(在514处)以替换共享非易失性存储器104中的无效启动块110。
然而,如果恢复策略指定手动模式,则可以输出(在516处)指示以提示用户输入,诸如密钥序列或其它输入。用户输入的接收促使任务514被执行,其中,用私用非易失性存储器116中的有效启动块132的拷贝来替换共享非易失性存储器104中的无效启动块110。
接下来,EC固件设定(在518处)各种状态信息以报告所采取的动作,其中可以在计算系统的下一次启动中使用状态信息。
EC固件接下来确定(在520处)私用非易失性存储器116中的启动块132是否已被更新。如果不是,则计算系统准备好启动(522)。然而,如果私用非易失性存储器116中的启动块132已被更新,则EC固件执行(在524处)动作以促使计算系统检查嵌入式控制器102正在运行EC固件的正确版本,其可以通过将嵌入式控制器102重置来实现,这促使图2的阶段1过程被执行,其然后将再次地继续进行至图5的阶段2过程,如果阶段1过程成功地验证EC固件的话。
在图5的任务508中,如果EC固件能够验证共享非易失性存储器104中的启动块110,则EC固件检查(在526处)EC_BB_Valid标志是否被设定。如果不是,则其为共享非易失性存储器110中的启动块110有效、但私用非易失性存储器116中的启动块132无效的指示。在这种情形中,EC固件确定(在528处)锁定策略(如在图4的策略信息434中所指示的)是指定锁定模式还是解锁模式。如果指定了解锁模式,则意味着私用非易失性存储器116中的启动块132可以被更新,在这种情况下,EC固件将共享非易失性存储器104中的启动块110拷贝(在530处)到私用非易失性存储器116以替换启动块132。
另一方面,如果确定(在528处)锁定策略指定锁定模式,则其指示不允许EC固件更新私用非易失性存储器116中的启动块132。在这种情况下,EC固件可以设定标志(在532处)以指示锁定策略的变化,其涉及到锁定策略被改变成指定解锁模式。将锁定策略从锁定模式变成解锁模式允许用共享非易失性存储器104中的启动块110来替换私用非易失性存储器116中的启动块132(如在532处执行的)。另外,可以向审计记录(未示出)添加信息以指示前述事件(锁定策略被改变)。
该过程然后接下来前进至任务518。
在任务526中,如果确定EC_BB_Valid标志被设定,则其指示启动块132和启动块110两者已被验证。在这种情形中,EC固件确定(在534处)基于启动块132的内容导出的值(例如,哈希值、校检和值等)等于基于启动块110的内容导出的值。如果是这样,则确认两个启动块132和110是相同的,并且因此系统准备好启动(522)。另一方面,如果基于启动块132和110的内容导出的值不相等(其指示启动块132和110是不同版本),则EC固件确定(在536处)BIOS锁定策略指定锁定模式或解锁模式。如果指定了解锁模式,则EC固件可以将共享非易失性存储器104中的启动块110拷贝(在538处)到私用非易失性存储器116以替换启动块132。该过程然后前进至任务518。
如果在536处确定的锁定策略指定锁定模式,则其为共享非易失性存储器104中的启动块110将被锁定到存储在私用非易失性存储器116中的启动块132的版本的指示。在某些情况下,共享非易失性存储器104中的启动块110可能已被更新到较新的版本。然而,如果锁定策略指定锁定模式,则共享非易失性存储器104中的启动块110的此更新是不允许的,在这种情况下用私用非易失性存储器116中的启动块132来替换共享非易失性存储器104中的启动块110(通过在542处执行拷贝)。在拷贝(在542)启动块132以替换启动块110之前,EC固件可以检查(在540处)恢复策略是指定自动化模式还是手动模式。如果指定了自动化模式,则可以直接地执行542处的拷贝。然而,如果指定了手动模式,则EC固件可以提供(在544处)输出以提示用户输入,在其之后可以执行542处的拷贝。
该过程然后前进至任务518。
图6示出了图5中 阶段2过程的成功完成之后(阶段2过程已前进至522)的阶段3过程。阶段3过程可以由嵌入式控制器102和处理器106执行。
嵌入式控制器102检测(在602处)计算系统中的唤醒事件,其中,该唤醒事件促使计算系统从低功率状态过渡至较高功率状态。唤醒事件可以由诸如计算系统的键盘或鼠标之类的用户输入设备的致动、电源按钮的致动等引起。
嵌入式控制器102将处理器106从重置中释放(在604处)。处理器106然后开始从共享非易失性存储器104执行(在606处)启动块110(在图6中表示为SYS_BB)。在启动块110的控制下,处理器106从嵌入式控制器102获得(在608处)状态信息。此状态信息是由嵌入式控制器在图5中的任务518中设定的状态信息。
在某些示例中,启动块110可以设定(在610处)嵌入式控制器策略,其可以是与上文所讨论的EC固件的性能有关的锁定策略、恢复策略、恢复策略或任何其它策略中的任何一个。设定嵌入式控制器策略可以涉及到向嵌入式控制器102发送指令以促使嵌入式控制器102更新私用非易失性存储器116中的策略信息434(图4)。
启动块110然后向嵌入式控制器102发送(在612处)命令以促使嵌入式控制器102在启动块向BIOS代码的主要部分传递控制之前不再接受任何策略更改。该命令的效果是防止来自可能经受损害且因此可能不可信的代码的策略更改,诸如BIOS代码或操作系统的主要部分。
嵌入式控制器102接下来确定(在614处)是否已发生热启动。如果不是,则嵌入式控制器102等待(在616处)计算系统过渡到低功率状态,诸如ACPI S3、S4或S5状态。
在计算系统已经过渡到低功率状态之后,嵌入式控制器102接下来确定(在618处)嵌入式控制器是否可独有地访问共享总线120。如果是这样的话,则过程前进(在622处)至阶段4过程(图7)以引起启动块132和110的验证。从阶段4过程的成功返回指示计算系统准备好启动(624)并前进至运行时间状态(例如ACPI S0状态)。
如果确定(在618处)嵌入式控制器102不可独有地访问共享总线120,则即使计算系统已过渡至低功率状态,嵌入式控制器102也可以根据策略信息(图4中的434)来确定(在620处)是否指定了积极模式。
如果指定了积极模式,则嵌入式控制器102可以执行动作以迫使(在621处)进行共享总线120的独有访问。此动作可以包括迫使计算系统的核心逻辑(例如,包括图4的I/O控制器402的芯片组)进入允许嵌入式控制器102获得共享总线120的独有访问的状态。在某些示例中,这可以仅在S4或S5状态而不在S3状态下发生,以避免S3上下文的丢失(被用于使计算系统从S3状态恢复的易失性存储器中的信息)。如果计算系统处于S3状态或者并未设定积极模式策略,则阶段4过程622将被绕过,这绕过启动块的验证。
在图6的任务614中,如果嵌入式控制器102检测到热启动(其中保持到计算系统的部件(包括处理器106)的供电的计算系统的启动),则嵌入式控制器102确定(在626处)是否按策略指定了积极模式。如果不是,则嵌入式控制器102继续等待(在616处)计算系统进入低功率状态。
然而,如果指定了积极模式,则嵌入式控制器102前进至任务621。期望嵌入式控制器102在每次热重置时验证启动块真实性,因为热重置促使处理器106从启动块的开头起开始执行。
在某些实施方式中,由于实体(诸如图4的I/O控制器402中的实体或另一实体)在低功率状态下仍被启用且可访问共享总线120的可能性而执行用以确保即使计算系统处于低功率状态(例如ACPI S3、S4或S5状态)嵌入式控制器102也可独有地访问共享总线120的检查(在618处)。
在低功率状态下可以保持被启用并可访问共享总线120的示例性实体是作为来自英特尔公司的芯片组的一部分的管理引擎(ME)。ME提供用以允许进行计算系统的监视、维护、更新、升级以及修复的功能。可以将ME规定成在低功率状态(例如S3、S4或S5状态)下操作。根据某些实施例,只有当嵌入式控制器102从MED接收到ME处于已经从ME去除电源的状态的指示(例如,来自ME的SLP_A#信号处于断言状态)时,嵌入式控制器102才将验证启动块132和110。如果嵌入式控制器102并未接收到该指示(例如来自ME的SLP_A#信号处于断言状态),则嵌入式控制器102假设共享总线120正在被ME使用,并且嵌入式控制器102并未尝试访问系统总线102。
如果当计算系统处于S4或S5状态时指定了积极模式(如在图6的620处所确定的),则嵌入式控制器102可以通过断言重置信号(例如到I/O控制器402的RSMRST#)以迫使ME进入关断状态来迫使(在621处)进行共享总线120的独有访问。当系统处于S3状态时,不使用迫使进行共享总线120的独有访问的这种技术,因为其将引起S3上下文的丢失。
在某些情况下,还可以当系统处于低功率状态时使ME在嵌入式控制器102正在访问共享总线120的同时从关断状态恢复(以例如执行图2的阶段1过程)。为了防止ME在嵌入式控制器102正在访问共享总线120的同时进行此类恢复,可以提供用以通过断言到I/O控制器402的BATLOW#信号、通过阻止向ME提供电源良好指示(例如M_PWRGD)来防止ME恢复的逻辑。电源良好指示是ME电源正在活动的指示,而BATLOW#信号是平台主电池(例如图4中的410)可能不能供应用于适当操作的足够功率的指示。嵌入式控制器102可以控制此逻辑以在嵌入式控制器102正在访问共享总线120的同时阻止电源良好指示。一旦嵌入式控制器102已完成其涉及到共享总线120的访问的操作,则嵌入式控制器120可以停止阻止到ME的电源良好的指示和/或停止断言BATLOW#信号。
图7是根据某些实施方式的阶段4过程的流程图。请注意,阶段4过程(在图6中的622处发起)假设EC_BB_Valid标志被设定(其意味着私用非易失性存储器116中的启动块132已被验证且因此是有效的)。阶段4过程前进至任务508,其与上文所讨论的图5中的任务508相同。在图7中描绘的其余任务与图5中的各任务相同,并且因此将不进一步讨论。请注意,在图7中,省略了任务502、504、506、510以及511,因为假设EC_BB_Valid标志被设定。
通过使用根据某些实施方式的技术或机制,检查系统固件的完整性以针对由可能能够突破计算系统的保护机制的恶意软件攻击引起的系统固件损害进行保护。另外,可以针对涉及到包括包含系统固件的非易失性存储器的零件的物理替换的攻击提供保护。针对系统固件损害的保护不必依赖于来自第三方供应商的核心逻辑或IO控制器中的保护机制,其对于不同的供应商而言可不同且可被损害。在系统固件被损害的情况下,系统固件可以被恢复而不必涉及到维修人员。可以提供被损害系统固件的检测和恢复,与损害的起因、损害的时间、损害被如何执以及执行了什么类型的损害无关。
上述各种模块的机器可读指令被加载以用于在处理电路(例如嵌入式控制器102或处理器106)上执行。处理电路可以包括微处理器、微控制器、处理器模件或子系统、可编程集成电路、可编程门阵列或另一控制或计算设备。
数据和指令被存储在各存储设备中,其被实现为一个或多个计算机可读或机器可读存储介质。存储介质包括不同形式的存储器,包括半导体存储器件,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦可编程只读存储器( EPROM)、电可擦可编程只读存储器(EEPROM)和闪存;磁盘,诸如固定磁盘、软盘和可移动磁盘;包括磁带的其它磁性介质;光学介质,例如紧凑式磁盘(CD)或数字视频磁盘(DVD);或其它类型的存储设备。请注意,上文所讨论的指令可以在一个计算机可读或机器可读存储介质上提供,或者替换地可以在分布于具有可能多个节点的大型系统中的多个计算机可读或机器可读存储介质上提供。此类一个或多个计算机可读或机器可读存储介质被视为物品(或制品)的一部分。物品或制品可以指代任何制造的单个部件或多个部件。一个或多个存储介质可以位于运行机器可读指令的机器中,或者位于可以通过网络从其下载机器可读指令以用于执行的远程位置处。
在前述描述中,阐述了许多细节以提供在本文中公开的对象的理解。然而,可在没有这些细节中的某些或全部的情况下实施各实施方式。其它实施方式可包括对上文所讨论的细节的修改和改变。意图在于所附权利要求涵盖此类修改和改变。

Claims (13)

1.一种用于验证控制器代码和系统启动代码的方法,包括:
在系统中的控制器的初始化程序期间,由与系统的处理器分离的控制器来验证用于在控制器上执行的控制器代码,其中,所述验证是在处理器的执行之前执行;以及
在验证控制器代码之后,由控制器来验证系统启动代码,其中,所述系统启动代码被用于由处理器执行;
还包括:
所述控制器代码在被控制器执行时在处理器重新开始执行系统启动代码的每个时刻之前验证系统启动代码;
其中,所述控制器代码被从私用存储器检索以执行控制器代码的验证,并且其中,所述私用存储器可被控制器访问且不可被处理器访问,所述方法还包括:
响应于检测到私用存储器中控制器代码的损害,由控制器从也可被处理器访问的共享存储器检索控制器代码,并验证从共享存储器检索的控制器代码;以及
响应于验证从共享存储器检索的控制器代码,在控制器中执行从共享存储器检索的控制器代码以执行私用存储器和共享存储器中的一者或两者中的系统启动代码的验证。
2.权利要求1的方法,其中,所述控制器代码在控制器中执行时促使控制器执行选自以下各项中的至少一个:系统中的电源控制、系统中的热监视、系统中的风扇控制、系统中的电池充电和控制以及与用户输入设备的交互。
3.权利要求1的方法,其中,所述系统启动代码包括用于可在处理器上执行以实现系统中的测量的可信测量核心根(CRTM)逻辑,所述测量被系统用来确定系统的可信任性。
4.权利要求1的方法,其中,验证控制器代码包括验证嵌入式控制器固件,其为存储在存储器中的基本输入/输出系统(BIOS)代码的一部分。
5.权利要求1的方法,还包括:
响应于确定私用存储器中的系统启动代码或共享存储器中的系统启动代码被损害,用来自私用存储器或共享存储器的未被损害系统启动代码来更新私用存储器或共享存储器中的被损害系统启动代码。
6.权利要求1的方法,还包括:
由控制器来确定共享存储器中的系统启动代码是与私用存储器中的系统启动代码不同的版本;
响应于确定共享存储器中的系统启动代码是与私用存储器中的系统启动代码不同的版本,确定是否设定了指定系统启动代码将被锁定到私用存储器中的系统启动代码的版本上的锁定策略;以及
响应于确定设定了锁定策略,将共享存储器中的系统启动代码更新成专用存储器中的系统启动代码的版本。
7.权利要求1的方法,其中,所述控制器具有存储密码密钥的只读存储器,并且其中,控制器代码的验证使用密码密钥。
8.一种用于验证控制器代码和系统启动代码的系统,包括:
处理器;
第一存储器,其存储控制器固件和基本输入/输出系统(BIOS)代码的启动块;
第二存储器,其存储控制器固件和BIOS代码的启动块;以及
嵌入式控制器,其:
在处理器被关断的同时进行嵌入式控制器的初始化期间,确定存储在第一存储器中的控制器固件是否损害,其中,所述控制器固件用于在嵌入式控制器中执行,并且其中,所述第一存储器可被嵌入式控制器访问但不可被处理器访问;以及
响应于检测到第一存储器中的控制器固件的损害,检索存储在第二存储器中的控制器固件并且由嵌入式控制器执行检索的控制器固件。
9.权利要求8的系统,其中,所述嵌入式控制器将执行第一存储器或第二存储器的控制器固件以验证第一存储器和第二存储器中的启动块。
10.权利要求9的系统,其中,所述嵌入式控制器将用启动块中的未被损害的一个替换启动块中的被损害的一个。
11.权利要求9的系统,其中,响应于系统过渡到其后处理器将随后从第二存储器中的启动块重新开始执行的状态而执行启动块的验证。
12.权利要求8的系统,其中,所述第一存储器存储指示以下策略中的至少一个或组合的策略信息:
指定是否将要使用积极操作模式以使得能够在处理器从第二存储器中的启动块重新开始执行的每个时刻之前验证第二存储器中的启动块的策略;
指定将使用手动还是自动化恢复模式的策略,其中,手动恢复模式涉及到在允许执行被损害启动块的恢复之前的用户动作;以及
指定将使用锁定还是解锁模式的策略,其中,锁定模式促使系统固件被锁定到指定版本。
13.一种包括存储指令的至少一个机器可读存储介质的物品,所述指令在执行时促使系统:
在系统的处理器开始执行启动块之前,由嵌入式控制器验证存储在第一存储器中的控制器代码,其中,所述控制器代码用于在嵌入式控制器中执行,并且其中,所述第一存储器可被嵌入式控制器访问但不可被系统的处理器访问;以及
响应于检测到第一存储器中的控制器代码的损害,检索存储在可被嵌入式控制器和处理器两者访问的第二存储器中的控制器代码,其中存储在第二存储器中的控制器代码用于在嵌入式控制器中执行;以及
由嵌入式控制器执行第一存储器或第二存储器的控制器代码以执行第一和第二存储器中的一者或两者中的启动块的验证。
CN201380075617.3A 2013-04-23 2013-04-23 验证控制器代码和系统启动代码 Active CN105144185B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/037735 WO2014175867A1 (en) 2013-04-23 2013-04-23 Verifying controller code and system boot code

Publications (2)

Publication Number Publication Date
CN105144185A CN105144185A (zh) 2015-12-09
CN105144185B true CN105144185B (zh) 2018-06-05

Family

ID=51792256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075617.3A Active CN105144185B (zh) 2013-04-23 2013-04-23 验证控制器代码和系统启动代码

Country Status (4)

Country Link
US (2) US10733288B2 (zh)
CN (1) CN105144185B (zh)
TW (1) TWI539324B (zh)
WO (1) WO2014175867A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144185B (zh) * 2013-04-23 2018-06-05 惠普发展公司,有限责任合伙企业 验证控制器代码和系统启动代码
EP3028147B1 (en) 2013-07-31 2021-04-14 Hewlett-Packard Development Company, L.P. Updating boot code
US20180204006A1 (en) * 2015-07-23 2018-07-19 Qualcomm Technologies International, Ltd. Fast authentication of code in a low-power system
EP3356931B1 (en) * 2015-09-30 2021-06-23 Hewlett-Packard Development Company, L.P. Bios runtime verification using external device
US10628168B2 (en) 2016-01-14 2020-04-21 Hewlett-Packard Development Company, L.P. Management with respect to a basic input/output system policy
CN108292345A (zh) 2016-01-27 2018-07-17 惠普发展公司,有限责任合伙企业 操作验证
US11004567B2 (en) 2017-08-15 2021-05-11 Koko Home, Inc. System and method for processing wireless backscattered signal using artificial intelligence processing for activities of daily life
US10839080B2 (en) * 2017-09-01 2020-11-17 Microsoft Technology Licensing, Llc Hardware-enforced firmware security
CN109710315B (zh) 2017-10-25 2022-05-10 阿里巴巴集团控股有限公司 Bios刷写方法及bios镜像文件的处理方法
CN109714303B (zh) 2017-10-25 2022-05-27 阿里巴巴集团控股有限公司 Bios启动方法及数据处理方法
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
JP7134670B2 (ja) * 2018-03-29 2022-09-12 キヤノン株式会社 画像形成装置、及び、画像形成装置の制御方法
CN109445874A (zh) * 2018-11-15 2019-03-08 济南浪潮高新科技投资发展有限公司 一种基于嵌入式Linux系统的带安全认证的多启动系统及方法
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
US10810850B2 (en) 2019-02-19 2020-10-20 Koko Home, Inc. System and method for state identity of a user and initiating feedback using multiple sources
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
CN110795738B (zh) * 2019-09-19 2022-05-13 超聚变数字技术有限公司 一种计算机的启动方法和控制器、存储介质以及系统
US11719804B2 (en) 2019-09-30 2023-08-08 Koko Home, Inc. System and method for determining user activities using artificial intelligence processing
CN110737902B (zh) * 2019-10-10 2022-02-11 北京智芯微电子科技有限公司 嵌入式终端及其可信安全模块的固件设计方法
TWI736074B (zh) * 2019-12-20 2021-08-11 瑞昱半導體股份有限公司 周邊裝置及其驗證更新方法
US11314867B2 (en) 2020-03-26 2022-04-26 Hewlett Packard Enterprise Development Lp Determinations of compromise of controller code images
US11240635B1 (en) * 2020-04-03 2022-02-01 Koko Home, Inc. System and method for processing using multi-core processors, signals, and AI processors from multiple sources to create a spatial map of selected region
US11184738B1 (en) 2020-04-10 2021-11-23 Koko Home, Inc. System and method for processing using multi core processors, signals, and AI processors from multiple sources to create a spatial heat map of selected region
FR3110005B1 (fr) * 2020-05-05 2022-05-27 Thales Sa Contrôleur de démarrage sécurisé pour un système embarqué, système embarqué et procédé de démarrage sécurisé associés
TWI749704B (zh) * 2020-08-13 2021-12-11 群聯電子股份有限公司 韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元
US11797680B2 (en) * 2020-08-28 2023-10-24 Micron Technology, Inc. Device with chain of trust
KR102395258B1 (ko) * 2020-10-15 2022-05-10 한국전자통신연구원 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치
US20230117694A1 (en) * 2021-10-14 2023-04-20 Cypress Semiconductor Corporation Systems, methods, and devices for security attribute caching and accelerated wake times of secured environments
TWI789142B (zh) * 2021-12-03 2023-01-01 新唐科技股份有限公司 控制器、計算機裝置、bios復原備份方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612115A (zh) * 2003-10-27 2005-05-04 联想(北京)有限公司 基于硬盘保护空间自动恢复bios的方法
CN102971742A (zh) * 2010-02-12 2013-03-13 辉达技术英国有限公司 处理器安全

Family Cites Families (186)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2772103B2 (ja) 1990-03-28 1998-07-02 株式会社東芝 計算機システム立上げ方式
US5432927A (en) 1992-06-17 1995-07-11 Eaton Corporation Fail-safe EEPROM based rewritable boot system
US5327531A (en) 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery
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 日本電気通信システム株式会社 コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法
US5822581A (en) 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
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
JP2940480B2 (ja) 1996-07-05 1999-08-25 日本電気株式会社 コンピュータシステム
US5819087A (en) 1996-07-19 1998-10-06 Compaq Computer Corporation Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events
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 フラッシュ・マイコンにおけるプログラム書き換え方法
US6711675B1 (en) 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US6665813B1 (en) 2000-08-03 2003-12-16 International Business Machines Corporation Method and apparatus for updateable flash memory design and recovery with minimal redundancy
US6907602B2 (en) 2000-08-10 2005-06-14 Mustek Systems Inc. Method for updating firmware of computer device
GB2367656A (en) 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
TW480444B (en) 2000-11-29 2002-03-21 Mitac Technology Corp Computer system boot-up method capable of completing the startup procedure even the system BIOS code is damaged
US6807630B2 (en) 2000-12-15 2004-10-19 International Business Machines Corporation Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US6651188B2 (en) 2001-06-29 2003-11-18 Intel Corporation Automatic replacement of corrupted BIOS image
US20030079007A1 (en) 2001-10-22 2003-04-24 Merkin Cynthia M. Redundant source event log
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 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
EP1345124A1 (en) 2002-03-14 2003-09-17 Hewlett-Packard Company Managing boot errors
EP1372068A3 (en) 2002-06-11 2006-02-08 Seiko Epson Corporation System, method and program for rewriting a flash memory
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
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
US7200758B2 (en) * 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
US20040076043A1 (en) 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
KR100532413B1 (ko) 2002-12-02 2005-12-02 삼성전자주식회사 플래시 메모리 보호 장치 및 방법
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
US7136994B2 (en) 2003-05-13 2006-11-14 Intel Corporation Recovery images in an operational firmware environment
KR20060015329A (ko) 2003-06-03 2006-02-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 비휘발성 메모리로부터의 부팅
US7467417B2 (en) 2003-06-18 2008-12-16 Architecture Technology Corporation Active verification of boot firmware
US20040268079A1 (en) 2003-06-24 2004-12-30 International Business Machines Corporation Method and system for providing a secure rapid restore backup of a raid system
US20050081090A1 (en) 2003-09-29 2005-04-14 Giga-Byte Technology Co., Ltd. Method for automatically and safely recovering BIOS memory circuit in memory device including double BIOS memory circuits
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
US7203808B2 (en) 2004-03-19 2007-04-10 Intel Corporation Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware
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
US7483810B2 (en) 2004-06-29 2009-01-27 Honeywell International Inc. Real time event logging system
KR101038567B1 (ko) 2004-07-13 2011-06-02 엘지전자 주식회사 시스템 응급 복구 장치 및 방법
US20060020844A1 (en) 2004-07-22 2006-01-26 Gibbons Patrick L Recovery of custom BIOS settings
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
TWI280487B (en) 2004-12-15 2007-05-01 Via Tech Inc Power-on method for computer system with hyper-threading processor
US7373551B2 (en) 2004-12-21 2008-05-13 Intel Corporation Method to provide autonomic boot recovery
US7340595B2 (en) 2005-01-07 2008-03-04 International Business Machines Corporation Multiplex execution-path system
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
US7356680B2 (en) 2005-01-22 2008-04-08 Telefonaktiebolaget L M Ericsson (Publ) Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader
WO2006082985A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure booting sequence in a processor
US7711989B2 (en) 2005-04-01 2010-05-04 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
US20060225067A1 (en) 2005-04-05 2006-10-05 Inventec Corporation Method for automatically updating and backing up the BIOS
US8006125B1 (en) 2005-04-29 2011-08-23 Microsoft Corporation Automatic detection and recovery of corrupt disk metadata
US7734945B1 (en) 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
DE112006001793T5 (de) * 2005-06-22 2008-05-08 Discretix Technologies Ltd. System, Gerät und Verfahren des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf von einem Host ausführbaren Code
US7193895B2 (en) 2005-06-24 2007-03-20 Chingis Technology Corporation Redundant memory content substitution apparatus and method
US7500094B2 (en) * 2005-10-18 2009-03-03 American Megatrends, Inc. BIOS identification, initialization and management
US7831821B2 (en) 2005-12-30 2010-11-09 Intel Corporation System backup and recovery solution based on BIOS
US20070226478A1 (en) * 2006-03-23 2007-09-27 John Rudelic Secure boot from secure non-volatile memory
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)
US7994889B2 (en) * 2006-06-01 2011-08-09 Taiyo Yuden Co., Ltd. Multilayer inductor
US7424398B2 (en) * 2006-06-22 2008-09-09 Lexmark International, Inc. Boot validation system and method
CN100395733C (zh) 2006-08-01 2008-06-18 浪潮齐鲁软件产业有限公司 提高金融税控专用soc芯片安全性的方法
TW200809489A (en) 2006-08-01 2008-02-16 Epox Comp Co Ltd BIOS damage detection and repair method and the motherboard
TW200809611A (en) 2006-08-11 2008-02-16 Quanta Comp Inc Embedded system and the boot code auto-copy method
US8190917B2 (en) 2006-09-12 2012-05-29 International Business Machines Corporation System and method for securely saving and restoring a context of a secure program loader
DE102006043636A1 (de) 2006-09-18 2008-03-27 Fujitsu Siemens Computers Gmbh Computersystem und Verfahren zum Aktualisieren von Programmcode
US20080126779A1 (en) * 2006-09-19 2008-05-29 Ned Smith Methods and apparatus to perform secure boot
US7886190B2 (en) 2006-09-29 2011-02-08 Intel Corporation System and method for enabling seamless boot recovery
US7987351B2 (en) 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US7934993B2 (en) 2006-10-16 2011-05-03 Igt Secure progressive controller
US7908470B1 (en) 2006-10-31 2011-03-15 Hewlett-Packard Development Company, L.P. Multi-processor computer with plural boot memories
JP4784888B2 (ja) 2006-11-09 2011-10-05 エスアイアイ・ナノテクノロジー株式会社 Fibによるアトムプローブ分析用試料の作製方法とそれを実施する装置
US7930532B2 (en) 2006-11-15 2011-04-19 Via Technologies, Inc. Systems and methods for basic input output system (BIOS) management
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
KR101605907B1 (ko) 2007-01-04 2016-03-23 샌디스크 아이엘 엘티디 호스트와 데이터 저장 디바이스 사이의 파일 전송 실패의 복구
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
US8255988B2 (en) 2007-03-28 2012-08-28 Microsoft Corporation Direct peripheral communication for restricted mode operation
JP4324810B2 (ja) 2007-04-10 2009-09-02 セイコーエプソン株式会社 マイクロコンピュータ、電子機器及びフラッシュメモリのプロテクト方式
US7930576B2 (en) 2007-04-10 2011-04-19 Standard Microsystems Corporation Sharing non-sharable devices between an embedded controller and a processor in a computer system
US8798806B2 (en) * 2007-04-30 2014-08-05 Hewlett-Packard Development Company, L.P. Electronic device thermal management system and method
US7870407B2 (en) 2007-05-18 2011-01-11 Advanced Micro Devices, Inc. Dynamic processor power management device and method thereof
US20080307134A1 (en) 2007-06-05 2008-12-11 Geissler Andrew J I2C bus interface and protocol for thermal and power management support
US7886140B2 (en) 2007-08-16 2011-02-08 International Business Machines Corporation Booting a computer using a boot list when a non-volatile memory on the computer does not contain the boot list
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
KR101211503B1 (ko) 2007-10-02 2012-12-12 삼성전자주식회사 부팅 시스템, 그 시스템을 구비한 화상형성장치 및 그제어방법
TWI362588B (en) 2007-10-12 2012-04-21 Asustek Comp Inc Monitor apparatus, a monitoring method thereof and computer apparatus therewith
US8082439B2 (en) 2007-12-06 2011-12-20 Hewlett-Packard Development Company, L.P. Firmware modification in a computer system environment supporting operational state changes
KR20090060774A (ko) 2007-12-10 2009-06-15 한국전자통신연구원 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법
CN101458648A (zh) 2007-12-12 2009-06-17 鸿富锦精密工业(深圳)有限公司 双bios电路
CN101458743A (zh) 2007-12-12 2009-06-17 中国长城计算机深圳股份有限公司 一种保护计算机系统安全的方法
US8190950B2 (en) 2007-12-21 2012-05-29 Atmel Corporation Dynamic column redundancy replacement
US20090172639A1 (en) 2007-12-27 2009-07-02 Mahesh Natu Firmware integrity verification
TWI368872B (en) 2008-01-03 2012-07-21 Nuvoton Technology Corp Systems and methods for bios processing
US8392762B2 (en) 2008-02-04 2013-03-05 Honeywell International Inc. System and method for detection and prevention of flash corruption
US8719585B2 (en) * 2008-02-11 2014-05-06 Nvidia Corporation Secure update of boot image without knowledge of secure key
DE102008011925B4 (de) 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
TWI411959B (zh) 2008-03-21 2013-10-11 Asustek Comp Inc 具雙開機程式碼區之電腦系統及其啟動方法
US8082384B2 (en) 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
TWI366135B (en) 2008-03-26 2012-06-11 Asustek Comp Inc Method for restoring bios and computer thereof
US20090248955A1 (en) 2008-03-31 2009-10-01 Satoru Tamada Redundancy for code in rom
US8132253B2 (en) 2008-04-21 2012-03-06 Dell Products L.P. Memory security override protection for manufacturability of information handling systems
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
TW201007465A (en) 2008-08-13 2010-02-16 Ene Technology Inc A sharable memory architecture of cache in a embedded controller and a method of sharing memory
TWI460657B (zh) 2008-09-05 2014-11-11 Asustek Comp Inc 更新與修復基本輸入輸出系統的方法
CN102239472B (zh) 2008-09-05 2017-04-12 惠普发展公司,有限责任合伙企业 在支持查询的同时高效地存储日志数据
US8103909B2 (en) 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
US20100082960A1 (en) * 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
US8443181B2 (en) 2008-09-30 2013-05-14 Qualcomm Incorporated Processor boot security device and methods thereof
TWI382346B (zh) 2008-10-20 2013-01-11 Asustek Comp Inc 保護雙基本輸出入系統程式之電腦系統及其控制方法
TWI386852B (zh) 2008-10-24 2013-02-21 Wistron Corp 基本輸出入系統之切換系統及其切換方法
TW201017407A (en) 2008-10-31 2010-05-01 Ind Tech Res Inst Nonvolatile data storage system and method thereof
US8151101B2 (en) 2008-11-06 2012-04-03 Lenovo (Singapore) Pte. Ltd. Method, apparatus, and system for quiescing a boot environment
TW201020785A (en) 2008-11-19 2010-06-01 Inventec Corp Peripheral device initializing method and computer system
JP5198245B2 (ja) 2008-12-27 2013-05-15 株式会社東芝 メモリシステム
TW201033808A (en) 2009-03-10 2010-09-16 Vivotek Inc System recovery method and embedded system with auto-recovery function
CN101894054A (zh) 2009-05-21 2010-11-24 华硕电脑股份有限公司 具有修复毁损bios数据功能的电脑系统及其修复方法
TWI467375B (zh) 2009-05-21 2015-01-01 Asustek Comp Inc 具有修復毀損bios資料功能之電腦系統及其修復方法
US8756391B2 (en) 2009-05-22 2014-06-17 Raytheon Company Multi-level security computing system
US9377960B2 (en) 2009-07-29 2016-06-28 Hgst Technologies Santa Ana, Inc. System and method of using stripes for recovering data in a flash storage system
US8527838B2 (en) 2009-07-31 2013-09-03 Cleversafe, Inc. Memory controller utilizing an error coding dispersal function
TWI409664B (zh) 2009-09-09 2013-09-21 Micro Star Int Co Ltd Personal computer boot authentication method and its boot authentication system
US8812854B2 (en) 2009-10-13 2014-08-19 Google Inc. Firmware verified boot
TWI399647B (zh) 2009-10-15 2013-06-21 Wistron Corp 回復電腦系統之基本輸出入系統之方法及相關電腦系統
TW201115341A (en) 2009-10-20 2011-05-01 Inventec Corp Method for protecting redundant data
US8543838B1 (en) 2009-12-23 2013-09-24 Marvell International Ltd. Cryptographic module with secure processor
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
TW201133342A (en) 2010-03-30 2011-10-01 Hon Hai Prec Ind Co Ltd Method for integrating OS into BIOS chip, and method for booting the OS
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
US9063836B2 (en) 2010-07-26 2015-06-23 Intel Corporation Methods and apparatus to protect segments of memory
US8499295B2 (en) 2010-09-20 2013-07-30 American Megatrends, Inc. Microcontroller firmware running from RAM and applications of the same
US8688899B2 (en) 2010-09-28 2014-04-01 Fusion-Io, Inc. Apparatus, system, and method for an interface between a memory controller and a non-volatile memory controller using a command protocol
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
TWI459294B (zh) 2011-03-18 2014-11-01 Phoenix Tech Ltd Bios程式的更新方法與其電腦系統
WO2012148422A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Embedded controller to verify crtm
CN102789396A (zh) 2011-05-18 2012-11-21 鸿富锦精密工业(深圳)有限公司 Bios配置模式切换系统及方法
CN102799497A (zh) 2011-05-24 2012-11-28 鸿富锦精密工业(深圳)有限公司 Nvram数据恢复系统及方法
US9015455B2 (en) 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
US8732527B2 (en) 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
JP5476363B2 (ja) * 2011-12-19 2014-04-23 レノボ・シンガポール・プライベート・リミテッド 生体認証装置を利用したコンピュータの起動方法およびコンピュータ
IN2014CN03796A (zh) 2012-01-03 2015-10-16 Hewlett Packard Development Co
KR101994811B1 (ko) 2012-03-04 2019-07-01 삼성전자주식회사 전자 장치, mbr 복원 방법 및 컴퓨터 판독가능 기록매체
TW201401098A (zh) * 2012-06-18 2014-01-01 Hon Hai Prec Ind Co Ltd 固件驗證方法及系統
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
US10089472B2 (en) 2013-04-23 2018-10-02 Hewlett-Packard Development Company, L.P. Event data structure to store event data
CN105144185B (zh) * 2013-04-23 2018-06-05 惠普发展公司,有限责任合伙企业 验证控制器代码和系统启动代码
US9880908B2 (en) 2013-04-23 2018-01-30 Hewlett-Packard Development Company, L.P. Recovering from compromised system boot code
CN105122262B (zh) 2013-04-23 2018-06-05 惠普发展公司,有限责任合伙企业 辅助非易失性存储器中的冗余系统引导代码
US9852298B2 (en) 2013-04-23 2017-12-26 Hewlett-Packard Development Company, L.P. Configuring a system
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 電腦開機啟動偵測系統及方法
WO2015045172A1 (ja) 2013-09-30 2015-04-02 富士通株式会社 情報処理装置及び情報処理方法
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
WO2016122520A1 (en) 2015-01-29 2016-08-04 Hewlett-Packard Development Company, L.P. Resuming a system-on-a-chip device
US9710651B2 (en) * 2015-04-10 2017-07-18 Vixs Systems Inc. Secure processor for SoC initialization
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612115A (zh) * 2003-10-27 2005-05-04 联想(北京)有限公司 基于硬盘保护空间自动恢复bios的方法
CN102971742A (zh) * 2010-02-12 2013-03-13 辉达技术英国有限公司 处理器安全

Also Published As

Publication number Publication date
US20160055332A1 (en) 2016-02-25
US11520894B2 (en) 2022-12-06
TW201443686A (zh) 2014-11-16
CN105144185A (zh) 2015-12-09
US20200302057A1 (en) 2020-09-24
WO2014175867A1 (en) 2014-10-30
TWI539324B (zh) 2016-06-21
US10733288B2 (en) 2020-08-04

Similar Documents

Publication Publication Date Title
CN105144185B (zh) 验证控制器代码和系统启动代码
CN105308609B (zh) 存储事件数据的系统和方法
CN105122262B (zh) 辅助非易失性存储器中的冗余系统引导代码
CN105122259B (zh) 控制器和用于检索系统引导代码的系统及方法
US9880908B2 (en) Recovering from compromised system boot code
CN104850762B (zh) 防止计算机的动作不良的方法、计算机程序以及计算机
CN105122258B (zh) 对系统进行配置的方法、计算系统以及物品
US9703635B2 (en) Method, computer program, and computer for restoring set of variables
EP2989547B1 (en) Repairing compromised system data in a non-volatile memory
CN103080904A (zh) 提供多阶段锁步完整性报告机构
CN116561826A (zh) 基于固件所有权历史来管理对管理控制器秘密的使用
US11580225B2 (en) Determine whether to perform action on computing device based on analysis of endorsement information of a security co-processor

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