CN1416545A - 受保护的引导流程 - Google Patents

受保护的引导流程 Download PDF

Info

Publication number
CN1416545A
CN1416545A CN01804817A CN01804817A CN1416545A CN 1416545 A CN1416545 A CN 1416545A CN 01804817 A CN01804817 A CN 01804817A CN 01804817 A CN01804817 A CN 01804817A CN 1416545 A CN1416545 A CN 1416545A
Authority
CN
China
Prior art keywords
program
bios
verification
method described
protected
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
CN01804817A
Other languages
English (en)
Other versions
CN1318963C (zh
Inventor
克里斯托弗·J·施皮格尔
安德鲁·H·加夫肯
罗伯特·P·黑尔
小威廉·A·史蒂文斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1416545A publication Critical patent/CN1416545A/zh
Application granted granted Critical
Publication of CN1318963C publication Critical patent/CN1318963C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

计算机系统内一个受保护的引导序列。一个复位向量引导系统进入一个包含受保护程序的引导程序。该受保护程序在转移到BIOS去运行标准引导程序函数前验证BIOS内容的完整性。该受保护程序也能锁定各种引导程序代码块,防止其在经过引导序列中某点后被修改。

Description

受保护的引导流程
本发明的背景
1.技术领域
本发明一般地涉及一个计算机系统内的引导过程。特别涉及一个防止引导序列被窜改的受保护引导过程。
2.背景技术
在一个计算机系统可以运行前,它的存储器中必须具有一个允许其他软件,例如各种应用程序,获取和控制计算机的资源的操作系统(OS)。人们希望拥有可加载到同一计算机系统硬件的各种类型和版本的操作系统。为实现此目的,计算机硬件具有一个非易失、比较简单的引导程序,该程序初始化各种基本函数,然后从磁盘中装入更复杂的软件。引导序列可能具有多个装入程序的等级,每个后续级装入更复杂、功能更强但有更多修改余地的程序,直到操作系统自身被装入。
在传统系统中,引导过程从某种复位函数开始。这可能是冷启动复位(最初硬件电源关闭)、热启动复位(硬件已经被供电,但是处于部分未知的逻辑状态)或其他几种启动状态之一。复位类型影响在引导序列中必须执行的特定函数,但是一般不改变整个引导过程。
典型地,复位函数产生一个把系统引导到非易失存储器中的一个程序并从那一点开始运行的复位中断。这个程序一般是闪存中的一个基本输入输出系统(BIOS)。该BIOS使能基本输入输出(IO)控制,转入一个可选只读存储器(ROM),激活在该特定系统中有效的选择,然后转回该BIOS程序以完成初始化并把操作系统(OS)从磁盘中装入主存储器。虽然这样一个系统中的多数硬件由计算机供应商提供,BIOS和可选只读存储器(ROM)却一般由第三方供应商提供,因此计算机供应商对这些部件的具体内容只有有限的了解和控制。此外,BIOS和可选只读存储器(ROM)在计算机中一般都是可再编程的,因此在系统安装后可能被窜改。这引出了一个安全问题,因为无法确定BIOS或可选只读存储器(ROM)是否已被窜改过。对狡猾的电脑黑客和计算机病毒的广泛关注使得这个问题尤其令人担忧,因为系统可能被用未知和可能无法检测的方法窜改。
计算机供应商想要能够证实引导序列是他们所需要和期望的,并且对该序列所做的任何未经授权的修改在引导时都可被检测,以便能终止引导序列和对问题进行调查。
发明内容
本发明包括一种引导操作系统的方法,该方法包括初始化一个复位函数、执行一个受保护程序、校验一个BIOS程序和执行该BIOS程序。
附图说明
图1示出了一个引导序列的示意图。
图2示出了一个固件中心块划分示意图。
图3示出了另一个引导序列的示意图。
具体实施方式
本发明通过向传统的引导序列引入一组或更多组受保护指令来对其进行完善,这些指令是受保护的以防止其自身被窜改并至少检验剩余引导序列一部分的完整性。图1示出了系统的一个实施例。块10包含存储引导序列中所用指令和数据的非易失性存储器。固件中心(FWH)12是存储控制并校验引导序列的指令(代码)的非易失性存储器块。BIOS 14是非易失性存储器块,它可能含有一个比较标准但是经修改以便和FWH 12交互作用的BIOS。
系统启动时,系统复位向量16被调用,它引导处理器在FWH 12的子块21内的固件中心A(FWH_A)内一个特定地址开始运行。FWH_A的代码定位被标作BIOS_A的BIOS 14的第一子块23。然后FWH_A 21校验该BIOS和FWH_B 25以确认其包含的是所期望的代码。可以有多种校验形式,视所希望的安全等级而定。一个实施例对该BIOS代码进行求和校验,并把该校验和与存储在FWH_A内的预期校验和相比较。另一个实施例用数字签名来增强此安全系统提供的保护。FWH_A可以包含一个表,它确定要执行的安全校验类型、要执行安全校验的目标BIOS以及用于执行校验的代码。
除校验BIOS外,用于校验和执行可选只读存储器(ROM)的代码也可以包含于FWH 12或BIOS 14中。可选只读存储器(ROM)可以在BIOS 14中,也可以在一个独立的存储器块内。
校验完BIOS后,控制被交给位于BIOS 14的子块23中的BIOS_A的代码。BIOS_A代码负责初始化主存储器并确定CPU复位的类型。启动引导序列的CPU复位类型可能影响引导序列中执行的具体函数,但并不改变整个引导过程。执行完这些函数后,控制被交给位于FWH 12的子块25内的FWH_B。FWH_B代码负责锁定FWH 12和/或BIOS 14内闪存的各块。
锁定是通过禁止对代码的进一步写入来实现稳定代码块的一个过程。该特征在FWH 12通常所用的闪存中是动态可用的。在被FWH_B锁定前,受影响的块可以被引导代码更新。锁定之后,如果不重新开始引导过程,就不能对块再做修改。FWH_B也可以在系统存储器中装入附加的安全单元以供以后使用。FWH_A也可能执行有限次的锁定。
各代码块可以在被锁定前更新。这一般通过在系统关机前由操作系统把更新过的块写入主存储器中的预定位置来处理。当系统关机并重新启动,引导程序检测到这些更新过的模块,对其进行校验,并把它们装入含有此引导程序的非易失性存储器。这些更新过的模块安装完成后,可以被锁定以防止再对它们进行修改。这个过程允许做必要的更新,但是保护引导序列在已到达该引导序列的某个点后免受未经授权的窜改。
完成这些任务后,控制被交给包含在BIOS子块27内的BIOS_B的代码。BIOS_B代码也可具有附加安全接口,这些接口在代码继续执行它的标准通电自检(POST)序列时可用。BIOS_B也可以以常规模式转到可选只读存储器(ROM)。BIOS_B含有开始把操作系统18装入存储器处理的OS加载器。上述校验过程的目的之一就是校验该OS加载器的完整性。
图2示出了可以如何分配固件中心的内容。在一个实施例中,FWH引导块31含有在生产FWH时提供的FWH_A代码。这可能是一个由硬件保护的单个64KB块,不能被系统更新。该代码定位BIOS_A,并执行一个校验程序以确认该BIOS代码是预期的代码。
BIOS启动块32提供了在FWH_A内运行但一般由BIOS供应商提供的代码。它可以包含同BIOS_A、BIOS_B以及一个BIOS恢复函数(未示出)接口的代码。引导块31和BIOS启动块32都含有只能直接从FWH 12开始运行的代码。
锁定分区33是在引导过程早期被锁定,在系统运行过程中受保护的一个或多个块的集合。每个块都可被单独锁定。闪烁介质管理器(FMM)可被用于更新该分区内的数据。但是,引导序列中对该分区的任何写操作必须在锁定前进行。一旦该分区内的块已被锁定,FWH硬件禁止对这些存储器区域的任何写入。只有复位FWH才能解除对这些块的锁定,这仅在CPU复位时才会发生。为更新这些块,一个更新映像被装入存储器并启动一个CPU复位。在受保护引导序列中,该映像将被检测到并用于在锁定分区被实际锁定前更新其内部记录。
锁定解除的分区34是一个或多个可被解除锁定,因此可写入的块的集合。这些块可以是空间允许的任何大小。这些块内的全部数据可以由FMM管理。
可以选择分配给图2中所示每个功能的块的数量以满足一个特定系统类型的需求,这个数量一般由BIOS供应商在最初设计FWH和BIOS代码时确定。
下面是本发明一个实施例更详细的说明,说明了图1中四个主要部分:FWH_A、BIOS_A、FWH_B和BIOS_B。
FWH_A
FWH_A的代码负责进行处理器模式的转换和校验系统内的代码。特别是它必须在把控制交给该代码前校验整个BIOS启动块。校验可以用求和校验或其他更复杂的校验方法完成。这个代码段内的所有代码运行时应该不用或用有限的存储器资源。
如果有一个更新恢复块(回收块)可用,其他的安全软件可以在擦除BIOS启动块前备份它,然后在更新序列中写入新的BIOS启动块。如果在更新完成前掉电,就用备份更新。FWH_A代码确定BIOS启动块和回收块中的哪个包含有效映像。
FWH_A可能是处理器复位后执行的第一段代码。该代码应该可以在不必初始化RAM资源的条件下运行。它存在于含有可靠代码的FWH引导块中。FWH_A代码能执行下列功能:
1)引导向量-处理器复位时,从此处获取并执行第一条指令。
2)锁定引导块-引导块被置于锁定状态。在引导块外部运行锁定代码,因为闪存不能在执行它内部的代码时被锁定。
3)模式转换-把CPU模式转换到平坦(flat)32位环境。
4)校验BIOS启动块-用预定方法进行校验,例如求和校验。
5)如果校验失败-或者a)发出警告信号并使系统暂停,或者b)在回收块内定位备份BIOS启动块,对它进行校验,如果校验通过则跳转到该块,如果校验失败则发出警告信号并使系统暂停。
6)跳转到BIOS_A-如果校验步骤4通过,跳转到BIOS_A代码的入口点。
BIOS_A
BIOS_A代码是被运行的第一段BIOS代码。该代码负责确定引导类型,使能RAM资源并把控制交回FWH_B。BIOS_A代码存在于BIOS启动块内并由FWH_A代码调用。BIOS_A代码能执行下列功能:
1)确定重引导-处理器可能因为多种原因被复位。这些原因包括从休眠节能状态复苏、部分重引导、热态重引导、冷引导等。根据正在执行的重引导类型,引导序列可能有所不同。
2)使能存储器-一旦重引导类型被确定,BIOS_A代码可以恢复存储器控制器的状态(热引导、从休眠状态复苏),或重新初始化并检测存储器(冷引导)。
3)设置FWH B参数-BIOS_A代码根据引导类型指明运行路径。它可以确定其他保护软件的位置(热引导),或装入其他保护软件的位置(冷引导)。
4)跳转到FWH_B-使能存储器后,BIOS_A代码通过跳转到FWH_B的入口点把控制交回FWH引导块。
FWH_B
该代码负责初始化其他被管理的块中的任何相关保护软件,用于更新需要在引导序列中更新的任何块,锁定那些块并把控制交给BIOS_B。该代码能执行下列功能:
1)初始化非易失性存储器-该代码确定平台中闪存总量并初始化所有相关寄存器。
2)根据引导类型转移-根据BIOS_A确定的引导类型,代码可以转移到下列步骤3之一:加载操作系统OS、返回操作系统OS或更新。
3)加载OS-BIOS_A代码指明BIOS正重新加载。同其他相关保护软件的接口应该被加载到BIOS_A指明的位置。
4)初始化堆栈-存储器资源可用,因此堆栈应该被初始化供使用。
5)把闪烁介质管理器(FMM)装入存储器-FMM应被从引导块复制到根据BIOS_A指定的加载值确定的存储器区域。
6)如果需要,进行恢复-在这点,存储器资源可用,允许恢复更新失败的BIOS启动块。调用FMM的恢复函数可以实现此操作。
7)锁定BIOS启动块-BIOS启动块应当被锁定。
8)初始化FMM-初始化FMM,包括已锁定和未锁定的分区,并允许进行任何掉电恢复(power-loss recovery)。
9)加载相关保护软件-可以在这点通过使用在步骤3中加载的接口加载其他保护代码。
10)失败时跳转到BIOS的恢复-在FMM锁定的分区初始化失败或相关保护软件未被定位的情况下,控制可以被交给BIOS恢复代码。
11)锁定块-锁定在锁定分区内的全部块。
12)跳转到BIOS_B-把控制交给FWH内的BIOS_B加载器。
3)返回OS-BIOS_A代码指明BIOS正返回OS,例如自休眠状态返回。
4)锁定块-不占用存储器资源,把锁定分区和BIOS启动块内的全部块锁定。
5)转入实模式-在打开被屏蔽存储器中的BIOS映像前,处理器返回实模式。
6)跳转到BIOS兼容引导向量-把控制交回在存储器中屏蔽的BIOS映像。
3)更新-BIOS_A代码指明正在对锁定分区进行更新,应运行可靠的更新应用程序。
4)初始化堆栈-定位并建立堆栈区。
5)校验相关保护代码-任何相关保护代码必须被校验以保证安全软件自身是安全和有效的。
6)校验并加载更新应用程序-更新应用软件被校验并装入存储器。
7)执行更新应用程序-把控制交给更新应用程序。该应用程序定位、检验并加载更新映像。
8)进行冷引导-开始一个完整的重引导。
BIOS_B
BIOS_B的代码一般负责加载标准BIOS,因此可以叫做BIOS加载器。事件的实际顺序一般留给BIOS供应商决定,但可以是下列步骤:
1)把BIOS装入存储器-一旦被装入存储器,BIOS_B代码就可以解压BIOS代码。
2)初始化图像-通常希望把图像尽快地输出到屏幕上。
3)进行完整的存储器检测-在引导流程的BIOS_A部分,可能只有一部分低端存储器被初始化。该步骤可以检测并初始化剩余存储器。
4)初始化系统剩余部分。
5)重新定位相关保护代码-该代码一般位于高端存储器,因此本步骤把它移动到紧接在前一步骤的SMM代码的下面。相关的表可以被放在其他地方。
6)POST-完成通电自检。
在另一实施例中,如图3所示,FWH引导块43在子块44中包含BIOS_A代码,在子块41中包含FWH_B代码。BIOS_A代码可以由BIOS生产商提供,而FWH_B代码可以由BIOS生产商或第三方提供。BIOS_A代码和FWH_B在BIOS编程时被一起存储在引导块43中。BIOS_B代码被存储在非易失性器件40的其他部分,可以不受保护。存储在引导块43中的代码受到保护,不会在运行中被硬件修改,并且只能通过BIOS_A代码更新。这样在系统运行时,引导块43就可以受到保护,免受未经授权的窜改。
系统的复位向量42使程序在BIOS_A中的预定地址开始运行。BIOS_A代码负责启动系统、初始化存储器并定位FWH_B代码。FWH_B代码负责定位和校验全部或部分BIOS_B代码,以保证它是预期的代码。FWH_B代码接着把控制交给BIOS_B代码,由它继续初始化系统,并加载操作系统46。
上述说明的目的在于解释而非限制。本领域技术人员可以作出其他变化。仅被所附权利要求的主旨和范围所限制的本发明包含了这些变化。

Claims (30)

1.一种在计算机系统内引导软件的方法,包括:
初始化一个复位函数;
运行第一个受保护的程序;
校验一个BIOS程序;和
运行该BIOS程序。
2.如权利要求1中所述方法,其中,运行BIOS程序包括校验和运行一个操作系统加载器。
3.如权利要求1中所述方法,其中,校验包括定位BIOS程序。
4.如权利要求1中所述方法,其中,初始化包括转移到第一个受保护程序中一个引导序列的入口点。
5.如权利要求1中所述方法,其中,运行BIOS程序包括初始化主存储器。
6.如权利要求1中所述方法,其中,运行BIOS程序包括确定复位类型。
7.如权利要求1中所述方法,其中,校验包括至少锁定第一个受保护程序和BIOS程序其中之一的某些部分。
8.如权利要求1中所述方法,其中,校验BIOS程序包括校验第二个受保护程序,运行该BIOS程序包括运行该第二个受保护程序。
9.如权利要求8中所述方法,其中,第二个受保护程序是一个可选ROM程序。
10.如权利要求1中所述方法,其中,校验BIOS程序包括校验和安装更新模块。
11.一种在计算机系统内引导软件的方法,包括:
初始化一个复位函数;
运行第一个受保护的程序;
至少校验第一和第二BIOS程序其中之一;
运行第一BIOS程序;
运行第二个受保护程序;和
运行第二BIOS程序。
12.如权利要求11中所述方法,其中,初始化包括转移到第一个受保护程序中一个引导序列的入口点。
13.如权利要求11中所述方法,其中,运行第一个受保护程序包括至少校验第一和第二BIOS程序其中之一。
14.如权利要求11中所述方法,其中,运行第一BIOS程序包括初始化主存储器。
15.如权利要求11中所述方法,其中,运行第一BIOS程序包括确定复位类型。
16.如权利要求11中所述方法,其中,至少运行第一个受保护程序第二个受保护程序其中之一包括至少锁定第一个受保护程序、第二个受保护程序、第一BIOS程序和第二BIOS程序其中之一中的数据块。
17.如权利要求11中所述方法,其中,运行第二受保护程序包括在存储器中加载附加安全单元。
18.如权利要求11中所述方法,其中,至少运行第一BIOS程序和运行第二BIOS程序其中之一包括校验一操作系统加载器。
19.如权利要求18中所述方法,还包括运行该操作系统加载器。
20.如权利要求11中所述方法,其中,校验包括校验一个可选ROM。
21.如权利要求20中所述方法,其中,运行至少第一和第二BIOS程序其中之一包括运行一个校验过的可选ROM程序。
22.如权利要求11中所述方法,其中,校验包括校验并安装更新模块。
23.一种机器可读介质,其上存储了指令,这些指令被至少一个处理器执行时使得所述至少一个处理器执行下列操作:
初始化一个复位函数;
运行一个受保护的程序;
校验一个BIOS程序;和
运行该BIOS程序。
24.一种装置,包括:
含有一个受保护的第一程序序列的第一存储器块;和
含有用于引导计算机系统的第二程序序列的第二存储器块;
其中,第一程序序列包括用于校验第二程序序列和把控制转给第二程序序列的指令。
25.如权利要求24所述装置,其中,第一程序序列包括用于锁定至少第一存储器块和第二存储器块其中之一的一部分的指令。
26.如权利要求24所述装置,其中,第二程序序列包括一个BIOS程序序列。
27.如权利要求24所述装置,其中,至少第一和第二程序序列之一包括用于锁定至少第一存储器块和第二存储器块其中之一的一部分的指令。
28.如权利要求24所述装置,其中,至少第一和第二程序序列之一包括用于校验可选ROM的指令。
29.如权利要求24所述装置,其中,至少第一和第二程序序列之一包括用于校验和安装更新模块的指令。
30.权利要求24所述装置,其中,第一程序序列包括用于定位第二程序序列的指令。
CNB01804817XA 2000-02-11 2001-01-04 在计算机系统内引导软件的方法和装置 Expired - Fee Related CN1318963C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/503,046 US6711675B1 (en) 2000-02-11 2000-02-11 Protected boot flow
US09/503,046 2000-02-11

Publications (2)

Publication Number Publication Date
CN1416545A true CN1416545A (zh) 2003-05-07
CN1318963C CN1318963C (zh) 2007-05-30

Family

ID=24000548

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB01804817XA Expired - Fee Related CN1318963C (zh) 2000-02-11 2001-01-04 在计算机系统内引导软件的方法和装置

Country Status (8)

Country Link
US (1) US6711675B1 (zh)
JP (1) JP2003525484A (zh)
KR (1) KR20030044901A (zh)
CN (1) CN1318963C (zh)
AU (1) AU2001227684A1 (zh)
GB (1) GB2376327B (zh)
TW (1) TW531712B (zh)
WO (1) WO2001059564A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807152A (zh) * 2009-02-13 2010-08-18 环旭电子股份有限公司 自我验证选择只读存储器的基本输出入系统及其验证方法
CN101639877B (zh) * 2008-07-30 2011-06-22 和硕联合科技股份有限公司 电子装置及其更新基本输入输出系统方法
CN101176069B (zh) * 2005-02-07 2012-01-11 高智发明风险投资有限公司 用于操作计算机系统的方法
CN102681860A (zh) * 2011-03-11 2012-09-19 宏碁股份有限公司 定制基本输入输出系统的方法及相关电脑系统
CN102955921A (zh) * 2012-10-19 2013-03-06 威盛电子股份有限公司 电子装置与安全开机方法
CN101263501B (zh) * 2005-09-14 2013-03-20 桑迪士克科技公司 存储卡控制器固件的硬件驱动器完整性检查
US9684518B2 (en) 2011-09-30 2017-06-20 Hewlett-Packard Development Company, L.P. Option read-only memory use
WO2018119873A1 (en) * 2016-12-29 2018-07-05 Gemalto Smart Cards Technology Co., Ltd. Method for controlling functioning of microprocessor

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785808B2 (en) * 2000-02-04 2004-08-31 Insyde Software, Inc. System and method for altering an operating system start-up sequence prior to operating system loading
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6954765B2 (en) * 2000-12-30 2005-10-11 Intel Corporation Updating a file in a fragmented file system
GB2373604B (en) 2001-03-23 2004-10-27 Ibm A method and system for controlling use of software programs
US8200988B2 (en) * 2001-08-03 2012-06-12 Intel Corporation Firmware security key upgrade algorithm
US6965989B1 (en) * 2001-08-14 2005-11-15 Network Appliance, Inc. System and method for fast reboot of a file server
US7237126B2 (en) * 2001-09-28 2007-06-26 Hewlett-Packard Development Company, L.P. Method and apparatus for preserving the integrity of a management subsystem environment
JP3677252B2 (ja) 2002-03-22 2005-07-27 株式会社東芝 情報機器、記憶媒体、及び初期状態復元方法
US7024581B1 (en) 2002-10-09 2006-04-04 Xpoint Technologies, Inc. Data processing recovery system and method spanning multiple operating system
US20040123093A1 (en) * 2002-12-20 2004-06-24 Rothman Michael A. Method and apparatus for loading BIOS and option ROM's from alternate locations
US20050005136A1 (en) * 2003-04-23 2005-01-06 Liqun Chen Security method and apparatus using biometric data
GB0309182D0 (en) 2003-04-23 2003-05-28 Hewlett Packard Development Co Security method and apparatus using biometric data
US20040268139A1 (en) * 2003-06-25 2004-12-30 Microsoft Corporation Systems and methods for declarative client input security screening
EP1665038A4 (en) 2003-09-18 2011-01-26 Aristocrat Technologies Au BIOS PROTECTION DEVICE
US7149890B2 (en) * 2003-11-21 2006-12-12 Intel Corporation Initializing system memory
US7509636B2 (en) * 2003-12-15 2009-03-24 Microsoft Corporation System and method for updating files utilizing delta compression patching
US7325176B2 (en) * 2004-02-25 2008-01-29 Dell Products L.P. System and method for accelerated information handling system memory testing
US7243221B1 (en) * 2004-02-26 2007-07-10 Xilinx, Inc. Method and apparatus for controlling a processor in a data processing system
US7694121B2 (en) * 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
US7210033B1 (en) * 2004-10-15 2007-04-24 American Megatrends, Inc. Method, system, and computer-readable medium for enabling multi-segmented recovery of basic input output system program code in a computer system
US20060149954A1 (en) * 2004-12-03 2006-07-06 Matt Hageman Apparatus and method for accommodating different central processing units in a computer
KR100654446B1 (ko) 2004-12-09 2006-12-06 삼성전자주식회사 보안 부팅 장치 및 방법
US20060179308A1 (en) * 2005-02-07 2006-08-10 Andrew Morgan System and method for providing a secure boot architecture
US8078740B2 (en) * 2005-06-03 2011-12-13 Microsoft Corporation Running internet applications with low rights
US8225392B2 (en) * 2005-07-15 2012-07-17 Microsoft Corporation Immunizing HTML browsers and extensions from known vulnerabilities
US8239939B2 (en) * 2005-07-15 2012-08-07 Microsoft Corporation Browser protection module
CN100437502C (zh) 2005-12-30 2008-11-26 联想(北京)有限公司 基于安全芯片的防病毒方法
CN100373337C (zh) * 2006-01-20 2008-03-05 北京朗通环球科技有限公司 一种嵌入式系统的引导系统
EP1826697A1 (en) * 2006-02-24 2007-08-29 Giga Games System, SL Method for booting and using software for AWP and B type amusing gaming machines, and for C type casino machines
SE531992C2 (sv) 2006-02-24 2009-09-22 Oniteo Ab Metod och system för säker programvaruprovisionering
US7624260B2 (en) * 2006-05-04 2009-11-24 Qnx Software Systems Gmbh & Co. Kg System executing a fast boot wake-up
US7660977B2 (en) * 2006-06-08 2010-02-09 Intel Corporation System and method to control microcode updates after booting an operating system in a computing platform
US7424398B2 (en) 2006-06-22 2008-09-09 Lexmark International, Inc. Boot validation system and method
US8185737B2 (en) 2006-06-23 2012-05-22 Microsoft Corporation Communication across domains
WO2008096891A1 (ja) * 2007-02-09 2008-08-14 Ntt Docomo, Inc. 端末装置及びソフトウエア検査方法
US8190869B2 (en) * 2007-04-17 2012-05-29 Lexmark International, Inc. Dual boot strategy to authenticate firmware in a computing device
US10019570B2 (en) 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US20090013192A1 (en) * 2007-07-03 2009-01-08 Ping-Sheng Chen Integrity check method applied to electronic device, and related circuit
CN100454324C (zh) * 2007-09-21 2009-01-21 武汉大学 一种可信机制上的嵌入式平台引导方法
US8195927B2 (en) * 2007-10-31 2012-06-05 International Business Machines Corporation Expedient preparation of memory for video execution
TW200945200A (en) * 2008-04-22 2009-11-01 Asustek Comp Inc Computer system, BIOS structure and power-on method thereof
TWI467484B (zh) * 2008-12-17 2015-01-01 Universal Scient Ind Shanghai 自我驗證選用唯讀記憶體之基本輸出入系統及其驗證方法
US8832454B2 (en) * 2008-12-30 2014-09-09 Intel Corporation Apparatus and method for runtime integrity verification
US9310089B2 (en) * 2009-05-21 2016-04-12 Lennox Industries Inc. Variable speed motor control method and apparatus
TW201115341A (en) * 2009-10-20 2011-05-01 Inventec Corp Method for protecting redundant data
EP2570956A1 (en) * 2010-05-11 2013-03-20 Suginaka, Junko External boot device, external boot program, external boot method and network communication system
KR20140068792A (ko) * 2010-11-29 2014-06-09 톰슨 라이센싱 콜드 부트와 웜 부트 사이를 구별하기 위한 방법 및 장치
US9015455B2 (en) * 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
KR101636816B1 (ko) 2011-09-29 2016-07-20 인텔 코포레이션 메모리 액세스 제어를 제공하는 장치, 시스템, 및 방법
WO2013058768A1 (en) 2011-10-21 2013-04-25 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system
US9753738B2 (en) 2011-10-21 2017-09-05 Hewlett-Packard Development Company, L.P. Providing a function of a basic input/output system (BIOS) in a privileged domain
US20130117006A1 (en) * 2011-11-07 2013-05-09 Microsoft Corporation Simulated boot process to detect introduction of unauthorized information
US9411748B2 (en) 2011-12-20 2016-08-09 Intel Corporation Secure replay protected storage
US9405707B2 (en) 2011-12-20 2016-08-02 Intel Corporation Secure replay protected storage
US8386763B1 (en) * 2012-01-04 2013-02-26 Google Inc. System and method for locking down a capability of a computer system
US9390278B2 (en) 2012-09-14 2016-07-12 Freescale Semiconductor, Inc. Systems and methods for code protection in non-volatile memory systems
US9600291B1 (en) * 2013-03-14 2017-03-21 Altera Corporation Secure boot using a field programmable gate array (FPGA)
US9335809B2 (en) * 2013-03-15 2016-05-10 Seagate Technology Llc Volatile memory storing system data during low power mode operation and monitoring the voltage supplied to the memory during low power mode
WO2014175867A1 (en) * 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US10192054B2 (en) * 2013-09-13 2019-01-29 Intel Corporation Automatic pairing of IO devices with hardware secure elements
US9129113B2 (en) 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
US9767288B2 (en) * 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
US10055588B2 (en) 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9547767B2 (en) 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9507942B2 (en) * 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9183394B2 (en) * 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US9779243B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US10095868B2 (en) 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9779242B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US9367689B2 (en) * 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US9798880B2 (en) * 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US10101928B2 (en) * 2016-02-19 2018-10-16 Dell Products L.P. System and method for enhanced security and update of SMM to prevent malware injection
CN106354514B (zh) * 2016-09-23 2019-06-25 成都爱斯顿科技有限公司 一种快速引导申威处理器bios的方法
US11099831B2 (en) * 2018-02-08 2021-08-24 Micron Technology, Inc. Firmware update in a storage backed memory system
CN108416217A (zh) * 2018-03-05 2018-08-17 山东超越数控电子股份有限公司 一种基于单片机的计算机主板bios验证系统及方法
US11243757B2 (en) * 2018-12-03 2022-02-08 Dell Products L.P. Systems and methods for efficient firmware update of memory devices in BIOS/UEFI environment
US11418335B2 (en) 2019-02-01 2022-08-16 Hewlett-Packard Development Company, L.P. Security credential derivation
WO2020167283A1 (en) 2019-02-11 2020-08-20 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11003461B2 (en) * 2019-03-29 2021-05-11 Dell Products L.P. Boot process security self-check system
CN110795738B (zh) * 2019-09-19 2022-05-13 超聚变数字技术有限公司 一种计算机的启动方法和控制器、存储介质以及系统
US20220366087A1 (en) * 2021-05-13 2022-11-17 AO Kaspersky Lab Systems and methods for verifying the integrity of a software installation image
CN113591094B (zh) * 2021-07-30 2023-11-14 超越科技股份有限公司 一种基于双bios平台的soc验证装置、方法及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0149005B1 (en) 1983-09-29 1992-06-24 The Wellcome Foundation Limited Pesticidal compositions
US5210875A (en) * 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
EP0510244A1 (en) * 1991-04-22 1992-10-28 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US6018806A (en) 1995-10-16 2000-01-25 Packard Bell Nec Method and system for rebooting a computer having corrupted memory using an external jumper
US5802592A (en) 1996-05-31 1998-09-01 International Business Machines Corporation System and method for protecting integrity of alterable ROM using digital signatures
US5805882A (en) 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US5793943A (en) 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
US6070240A (en) * 1997-08-27 2000-05-30 Ensure Technologies Incorporated Computer access control
US6223284B1 (en) * 1998-04-30 2001-04-24 Compaq Computer Corporation Method and apparatus for remote ROM flashing and security management for a computer system
US6138239A (en) * 1998-11-13 2000-10-24 N★Able Technologies, Inc. Method and system for authenticating and utilizing secure resources in a computer system
US6408387B1 (en) * 1999-01-22 2002-06-18 Intel Corporation Preventing unauthorized updates to a non-volatile memory
US6571347B1 (en) * 1999-05-24 2003-05-27 Winbond Electronics Corporation Apparatus and method for intelligent computer initiation program recovery
US6473853B1 (en) * 1999-06-21 2002-10-29 Intel Corporation Method and apparatus for initializing a computer system that includes disabling the masking of a maskable address line
US6564317B1 (en) * 1999-12-20 2003-05-13 Intel Corporation Method and apparatus for securing computer firmware wherein unlocking of nonvolatile memory is prohibited unless address line masking Is disabled during an initialization event

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101176069B (zh) * 2005-02-07 2012-01-11 高智发明风险投资有限公司 用于操作计算机系统的方法
CN101263501B (zh) * 2005-09-14 2013-03-20 桑迪士克科技公司 存储卡控制器固件的硬件驱动器完整性检查
CN101639877B (zh) * 2008-07-30 2011-06-22 和硕联合科技股份有限公司 电子装置及其更新基本输入输出系统方法
CN101807152A (zh) * 2009-02-13 2010-08-18 环旭电子股份有限公司 自我验证选择只读存储器的基本输出入系统及其验证方法
CN102681860A (zh) * 2011-03-11 2012-09-19 宏碁股份有限公司 定制基本输入输出系统的方法及相关电脑系统
US9684518B2 (en) 2011-09-30 2017-06-20 Hewlett-Packard Development Company, L.P. Option read-only memory use
CN103827812B (zh) * 2011-09-30 2017-12-15 惠普发展公司,有限责任合伙企业 选项只读存储器的使用
CN102955921A (zh) * 2012-10-19 2013-03-06 威盛电子股份有限公司 电子装置与安全开机方法
CN102955921B (zh) * 2012-10-19 2016-03-16 威盛电子股份有限公司 电子装置与安全开机方法
WO2018119873A1 (en) * 2016-12-29 2018-07-05 Gemalto Smart Cards Technology Co., Ltd. Method for controlling functioning of microprocessor

Also Published As

Publication number Publication date
WO2001059564A2 (en) 2001-08-16
US6711675B1 (en) 2004-03-23
AU2001227684A1 (en) 2001-08-20
TW531712B (en) 2003-05-11
GB2376327A (en) 2002-12-11
GB2376327B (en) 2004-09-22
JP2003525484A (ja) 2003-08-26
WO2001059564A3 (en) 2002-05-02
KR20030044901A (ko) 2003-06-09
GB0220657D0 (en) 2002-10-16
CN1318963C (zh) 2007-05-30

Similar Documents

Publication Publication Date Title
CN1416545A (zh) 受保护的引导流程
US7827371B2 (en) Method for isolating third party pre-boot firmware from trusted pre-boot firmware
US7689817B2 (en) Methods and apparatus for defeating malware
US9367671B1 (en) Virtualization system with trusted root mode hypervisor and root mode VMM
US20080209198A1 (en) Boot Acceleration For Computer Systems
US10002251B2 (en) Bootstrap OS protection and recovery
US7941624B2 (en) Parallel memory migration
US7702896B1 (en) Interactive firmware recovery
US20080126779A1 (en) Methods and apparatus to perform secure boot
US8539213B2 (en) Manageability extension mechanism for system firmware
US7962736B1 (en) Interactive pre-OS firmware update with repeated disabling of interrupts
KR101048914B1 (ko) 초기 하드웨어 구성 상태 유지
KR20040034540A (ko) 대용량 저장 디바이스로 부터 펌웨어의 신뢰성 있고안전한 업데이트와 복구
US11042644B2 (en) Method and system for security verification in a booting process with a multi-core processor
CN105378663A (zh) 更新引导代码
US10055234B1 (en) Switching CPU execution path during firmware execution using a system management mode
US6829725B2 (en) Fault resistant operating system
WO2006069493A1 (en) An apparatus and method for cooperative guest firmware
US6910113B2 (en) Executing large device firmware programs
US20120266148A1 (en) Supporting multiple hardware components in uefi
CN101615129A (zh) 应用于分布式系统中的升级方法及版本管理客户端
CN117785314A (zh) 一种基于risc-v架构嵌入式设备的uefi固件启动方法
Kildall User interface
CN118312226A (zh) 一种基于riscv服务器cpu的uefi固件启动方法及系统
Terzić et al. BASIC INPUT/OUTPUT SYSTEM BIOS FUNCTIONS AND MODIFICATIONS

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070530

Termination date: 20180104