CN105122258B - 对系统进行配置的方法、计算系统以及物品 - Google Patents

对系统进行配置的方法、计算系统以及物品 Download PDF

Info

Publication number
CN105122258B
CN105122258B CN201380075623.9A CN201380075623A CN105122258B CN 105122258 B CN105122258 B CN 105122258B CN 201380075623 A CN201380075623 A CN 201380075623A CN 105122258 B CN105122258 B CN 105122258B
Authority
CN
China
Prior art keywords
nonvolatile memory
data
controller
state
volatile memories
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
CN201380075623.9A
Other languages
English (en)
Other versions
CN105122258A (zh
Inventor
J.K.让索涅
M.涅尔西赛安
A.巴米迪帕泰
J.E.斯科特
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 CN105122258A publication Critical patent/CN105122258A/zh
Application granted granted Critical
Publication of CN105122258B publication Critical patent/CN105122258B/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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)

Abstract

响应于启动包括第一非易失性存储器和第二非易失性存储器的系统,所述第一非易失性存储器包含系统引导代码,执行第二非易失性存储器的供应。所述供应包括检查第二非易失性存储器未被初始化,并且响应于确定了第二非易失性存储器未被初始化,将系统引导代码从第一非易失性存储器拷贝到第二非易失性存储器。

Description

对系统进行配置的方法、计算系统以及物品
背景技术
计算系统可以包括代码来执行计算系统的各种启动功能。该代码可以包括基本输入/输出系统(BIOS)代码。BIOS代码可以是计算系统中或来自外部服务的恶意软件(malware)进行攻击的对象。作为攻击的结果,BIOS代码可以变成受损害的。
附图说明
关于以下各图描述了一些实施例:
图1是根据一些实现方式的供应过程的流程图;
图2是并入了一些实现方式的示例性计算系统的框图;
图3是根据一些实现方式的使用系统数据的过程的流程图;以及
图4是根据一些实现方式的与制造编程模式相关的各种状态的状态图。
具体实施方式
对用于执行计算系统的启动的系统代码的恶意软件攻击可以导致计算系统的完整性受到损害,使得可能发生在计算系统中的未经授权的访问和操作。例如,受损害的系统代码能够允许转变成由恶意实体对计算系统的远程监视和/或控制,由恶意软件对计算系统中的数据的未经授权的访问和/或修改,计算系统损坏等等。受损害的系统代码可以是指已经恶化使得系统代码不再可用的系统代码,或者可替换地,受损害的系统代码可以是指已经以某种方式改变但是仍能够执行的系统代码。注意到,系统代码还可以被意外或故意地损害。
尽管可以在计算系统中提供保护机制来保护系统代码,但是这样的保护机制在某些条件下可能变成受损害的,这可能使系统代码遭受恶意软件攻击。
用于执行计算系统的启动的系统代码可以包括系统固件,其可以是以在计算系统的处理器(或多个处理器)上可执行的机器可读指令的形式。“系统固件”可以涵盖能够执行计算系统的启动的任何机器可读的指令。计算系统的示例包括台式计算机、笔记本计算机、平板计算机、个人数字助理(PDA)、智能电话、游戏器具、服务器计算机、存储节点、网络通信节点等等。
系统固件可以包括基本输入/输出系统(BIOS)代码,其可以初始化计算系统的各种组件,并且加载计算系统的操作系统(OS)。BIOS代码可以执行硬件组件的检查,以确保硬件组件存在并且恰当地运转。例如,这可以是通电自测试(POST)过程的部分。在POST过程之后,BIOS代码可以行进通过引导(boot)序列的剩余部分,在这之后,BIOS代码可以加载OS并且将控制传递到OS。BIOS代码可以包括遗留的BIOS代码或统一的可扩展固件接口(UEFI)代码。在一些示例中,BIOS代码可以包括在OS加载之后执行的运行时部分。
在本讨论中,尽管参考了“系统固件”,但是注意到,技术或机制可以应用于其它类型的系统引导代码,其中系统引导代码可以是指能够在重启计算系统之后引导计算系统或能够从低功率状态恢复计算系统的任何代码。
计算系统还可以包括嵌入式控制器,其与计算系统的(多个)处理器分离,用于执行各种指定的任务。以嵌入式控制器(EC)固件的形式的控制器代码可以在嵌入式控制器上被执行以用于执行指定的任务。EC固件是以机器可读指令的形式。尽管提供了保护机制来保护EC固件免受损害,但是还是有可能在一些情况中,EC固件变成受损害的。
在随后的讨论中,参考可以在嵌入式控制器中被执行的EC固件。在其它示例中,根据一些实现方式的技术或机制可以应用于在嵌入式控制器或其它类型的控制器中可执行的其它类型的控制器代码。
同样,在随后的讨论中,假定EC固件是系统固件的部分。在其它实现方式中,EC固件可以与系统固件分离。
为了保护系统固件免于由于恶意软件攻击或非故意损害而受损害,除了用于存储系统固件的主要非易失性存储器之外可以提供辅助非易失性存储器。辅助非易失性存储器可以用于存储系统固件的拷贝。在辅助非易失性存储器上的系统固件拷贝可以是主要非易失性存储器中的系统固件的副本。可替换地,在辅助非易失性存储器中的系统固件拷贝可以是与主要非易失性存储器中的系统固件不同的版本(稍后的版本或较早前的版本)。
提供各自存储系统固件的相应拷贝的多个非易失性存储器可能增添包括多个非易失性存储器的计算系统的制造开销。在一些情况中,在计算系统的制造过程期间,在将主要非易失性存储器安装在计算系统中之前,可以将主要非易失性存储器预编程有系统固件,连同相关联的系统数据。如果辅助非易失性存储器也将会必须经受相同的预编程过程,那么额外的步骤将会被添加到制造过程,这可能增加与计算系统相关联的制造成本。
根据一些实现方式,辅助非易失性存储器可以被安装为计算系统中的空白部分(其不包含系统固件拷贝),而不是在将辅助非易失性存储器安装在计算系统中之前对辅助非易失性存储器进行预编程。例如,辅助非易失性存储器可以装配在计算系统的电路板上,而没有首先对辅助非易失性存储器进行编程。可以通过将辅助非易失性存储器焊接到电路板或者通过某种其它的附连技术来实现辅助非易失性存储器的装配。
在包括辅助非易失性存储器连同被连接到辅助非易失性存储器的嵌入式控制器的电路板的最初的加电时,可以执行供应过程来对辅助非易失性存储器进行编程。电路板的最初的加电可以是指在制造期间第一次对电路板进行加电。更一般地,可以响应于计算系统的启动而执行供应过程。启动计算系统可以是指响应于加电、系统重置等等而引导计算系统,或者以其它方式从关断状态初始化计算系统。
如图1中所示,在一些实现方式中可以由嵌入式控制器来执行供应过程,并且更具体地,由嵌入式控制器可执行的控制器代码来执行。嵌入式控制器代码可以从主要非易失性存储器进行加载,其中加载可以由初始加载器来执行,所述初始加载器可以在执行控制器代码之前检查控制器代码的有效性。
响应于计算系统的启动,供应过程(在102处)进行检查以确保辅助非易失性存储器未被初始化。如果(1)辅助非易失性存储器之前尚未被编程,或者(2)辅助非易失性存储器之前被初始化但是随后已经被擦除,那么辅助非易失性存储器可以是未经初始化的。
嵌入式控制器可以以若干不同方式中的一种方式确定辅助非易失性存储器尚未被初始化。例如,辅助非易失性存储器可以包括指定的区,并且可以基于指定的区中的内容来计算散列(hash)、校验和或其它值。在一些示例中,指定的区是用于存储策略信息的策略存储装置(在以下进一步讨论)。在可替换的示例中,指定的区可以是辅助非易失性存储器中的另一区。如果辅助非易失性存储器之前已经被编程,那么该指定的区将会包括有效的内容和所存储的散列、校验和或其它值。如果所计算的散列、校验和、或其它值与所存储的散列、校验和或其它值匹配,那么那是对嵌入式控制器的指示:即辅助非易失性存储器之前已经被存储。另一方面,如果不存在匹配,那么那是对辅助非易失性存储器未经初始化的指示。
可替换地,或附加地,检查(在102处)包括寻找在辅助非易失性存储器中的指定位置处的签名(例如,指定的已知值或标记)。如果签名存在于指定的位置中,那么那是辅助非易失性存储器已经初始化的指示。然而,如果签名不存在于指定的位置中,那么那是辅助非易失性存储器未经初始化的指示。
响应于(在104处)确定了辅助非易失性存储器未经初始化,嵌入式控制器(在106处)初始化辅助非易失性存储器,其中初始化包括从主要非易失性存储器向辅助非易失性存储器拷贝系统固件(以及嵌入式控制器的控制器代码)。然而,如果嵌入式控制器(在104处)确定了辅助非易失性存储器被初始化了,那么绕过任务106。
注意到,嵌入式控制器可以在其它条件下从主要非易失性存储器向辅助非易失性存储器拷贝系统固件,诸如当嵌入式控制器检测到在主要和辅助非易失性存储器中的系统固件的版本不同的时候。
作为106处的初始化的部分,供应过程还可以将签名写到辅助非易失性存储器中的指定的位置,以指示:辅助非易失性存储器已经被初始化。在一些示例中,签名的写入可以是106处的初始化的最后步骤。
另外,供应过程可以在辅助非易失性存储器中创建存储策略信息的策略存储装置,以及初始化审查(audit)数据结构(例如,审查日志)。策略信息可以关于与EC固件的执行相关的策略。例如,策略中的至少一个策略可以涉及在检测到系统固件已经受损害时修复系统固件。另一示例性策略可以指定是否要使用操作的进取性(aggressive)模式,其中进取性模式使得能够在其中处理器将执行系统固件的引导块的每个情况中验证系统固件(以检查系统固件是否已经受损害)。另一示例性策略指定是要使用手动的还是自动化的恢复模式,其中手动恢复模式涉及在允许执行受损害的系统固件的恢复之前的用户行动。另外的示例性策略指定是要使用锁定的还是非锁定的模式,其中锁定的模式使得系统固件被锁定到特定的版本,诸如辅助非易失性存储器中的版本。
在一些实现方式中,供应过程可以将策略信息初始化成默认值。
审查日志可以存储与EC固件的事件相关的记录。审查日志的初始化对审查日志进行准备以接受与EC固件的事件相关的信息。
可以在计算系统的制造过程期间、诸如在工厂处执行图1的供应过程。可以在包括辅助非易失性存储器的电路板最初被插入到计算系统中之后执行所述供应过程,其中该阶段处的辅助非易失性存储器是空白的。通过在制造过程期间执行供应过程,可以确保:计算系统处于安全环境中,使得可以以安全的方式来执行辅助非易失性存储器的内容的供应。
图2是示例性计算系统200的框图,所述计算系统200包括嵌入式控制器202、主要非易失性存储器204、处理器206和辅助非易失性存储器216。主要非易失性存储器204是共享的非易失性存储器,其通过多个实体可访问,包括嵌入式控制器202和至少一个其它实体(包括处理器206)。辅助非易失性存储器216通过嵌入式控制器202可访问,但是对于处理器206或对于计算系统200中的其它组件而言不可访问(事实上,辅助非易失性存储器216与除了嵌入式控制器202之外的实体是电气隔离的)。使得辅助非易失性存储器216对于处理器206和其它组件而言不可访问保护辅助非易失性存储器216的内容免受未经授权的篡改。辅助非易失性存储器216可以始终通过嵌入式控制器202可访问。
虽然在图1中未示出,但是可以在处理器206和主要非易失性存储器204之间提供输入/输出(I/O)控制器。
辅助非易失性存储器216可以与主要非易失性存储器204在物理上分离(诸如被实现在不同的物理存储器设备中)。可替换地,辅助非易失性存储器216和主要非易失性存储器204可以物理地驻留在共同的存储器设备上,但是主要非易失性存储器204和辅助非易失性存储器216处于物理存储器设备的不同分段中,其中包含辅助非易失性存储器216的物理存储器设备的分段仅仅通过嵌入式控制器202可访问。换言之,包含辅助非易失性存储器216的分段处于嵌入式控制器202的排他性控制之下,并且该分段被锁定以免受处理器206或另一实体的访问。
由嵌入式控制器202或由另一实体、通过共享的总线220而可访问主要非易失性存储器204。在一些实现方式中,在任何给定的时间只有一个实体能够可以访问共享的总线220,使得每次只有一个实体能够访问主要非易失性存储器204。在一些示例中,共享的总线220是共享的串行外围接口(SPI)总线。SPI总线是同步的串行数据链路,其中SPI总线上的设备以主-从模式来进行操作。在其它示例中,可以使用另一类型的共享总线220。在可替换的示例中,可以提供仲裁机制来虑及在计算系统的各种状态(包括低功率状态和正常的运行时状态)中对总线220的共享的访问。
主要非易失性存储器204可以存储系统固件207,其可以包括BIOS代码。BIOS代码207可以包括供嵌入式控制器202执行的EC固件208,以及将由处理器206执行的引导块210。
在根据图1的示例中,EC固件208被包括在系统固件207的引导块210中。在引导块210内部包括EC固件208可以提供这样的指示:EC固件208已经由提供系统固件207的实体所签名,所述实体可以是计算系统200的供应商或另一实体。在其它示例中,EC固件208可以与引导块210分离。
引导块210是BIOS代码的一部分,并且在计算系统200启动时被首先执行。在允许BIOS代码的其余部分在处理器206上执行之前首先执行引导块210。引导块210可以用于检查BIOS代码的完整性以及执行其它初始功能。如果引导块210确认了BIOS代码的完整性,那么引导块210可以将控制传递到BIOS代码的主要部分以用于发起与BIOS代码相关联的其余操作。
在一些实现方式中,引导块210可以包括用于度量的核心可信根(CRTM)逻辑,其是由可信计算组(TCG)(其是行业标准工作组)指定的逻辑。在计算系统200的通电过程期间,CRTM逻辑可以执行某些初始化任务并且可以进行多个度量,所述度量被存储以供稍后使用。CRTM逻辑然后可以在将控制传递到BIOS代码的主要部分之前检查BIOS代码。一旦BIOS代码完成了执行并且将控制传递到OS,OS就可以基于由CRTM逻辑所采取的度量来验证计算系统200的可信度。
嵌入式控制器202与计算系统200的处理器206在物理上分离。处理器206用于执行OS、应用代码以及系统200中的其它代码。嵌入式控制器202在另一方面可以用于执行如被编程到EC固件208中的特定预定义任务。可以由嵌入式控制器202执行的任务的示例包括以下中的任一个或某种组合:计算系统200中的电源控制(用于对向计算系统200中的各种组件供给电源电压的电源进行控制),计算系统200中的电池的充电和控制,热学监控(以监控计算系统200中的温度),风扇控制(以控制计算系统200中的风扇),以及与用户输入设备的交互(诸如执行计算系统200的键盘的扫描或与诸如鼠标、触摸板、触摸屏等等之类的定点设备的交互)。可以用微控制器、专用集成电路(ASIC)、可编程门阵列(PGA)、或任何其它类型的可编程电路来实现嵌入式控制器202。
辅助非易失性存储器216存储系统固件的冗余拷贝214,其中系统固件的冗余拷贝214包括引导块232和EC固件230。在辅助非易失性存储器216中的系统固件的冗余拷贝214可以是主要非易失性存储器204中的系统固件207的副本。可替换地,系统固件的冗余拷贝214可以是与系统固件207不同的版本(稍后的版本或较早前的版本)。
在一些实现方式中,系统固件的冗余拷贝214仅仅包括引导块232,但是不包括BIOS代码的主要部分。在其它实现方式中,系统固件的冗余拷贝214可以包括全部的BIOS代码。在另外的示例中,辅助非易失性存储器216还可以存储其它代码,诸如操作系统或应用代码、处理器206的代码等等。
在一些实现方式中,在制造过程期间的某个点处或在不同的时间处,嵌入式控制器202可以从系统固件207(其执行在处理器206上)接收命令,所述命令触发辅助非易失性存储器的附加的供应。例如,来自系统固件207的命令可以指令嵌入式控制器202将系统数据240从主要非易失性存储器204提交给辅助非易失性存储器216,这通过将系统数据240拷贝到辅助非易失性存储器216,用于存储为系统数据拷贝242。系统数据240可以包括机器唯一的数据,所述机器唯一的数据可以是指对于每个特定的计算系统而言唯一的任何配置数据或设置。机器唯一的数据的示例可以包括以下中的任一个或某种组合:产品名称、产品模型、库存单位(SKU)号(用于标识用于销售的相应计算系统)、计算系统的序列号、系统或物品追踪号(用于标识计算系统的系统板)、系统配置标识符(用于标识计算系统的配置)、保单数据(用于描述与计算系统相关联的保单)、通用唯一标识符(UUID)、BIOS代码的默认设置等等。作为机器唯一的数据的示例而提供前述内容;在其它示例中,可以提供其它或附加类型的机器唯一的数据。
在一些示例中,在将系统数据拷贝242保存到辅助非易失性存储器216时,嵌入式控制器202可以基于系统数据240的内容而计算散列、校验和、或其它值。该散列、校验和或其它值可以被保存到辅助非易失性存储器216并且相关联于系统数据拷贝242。
系统固件207此外可以提供其它指令,所述指令可以使得嵌入式控制器202从主要非易失性存储器204中读取另外的系统数据,并且将这样的另外的系统数据保存到辅助非易失性存储器216。
这样的另外的系统数据作为示例可以包括计算系统200的网络控制器的配置数据。网络控制器可以用于根据网络协议、通过网络而进行通信,所述网络协议诸如以太网协议(例如吉比特以太网协议或其它类型的以太网协议)或另一类型的协议。在其中由网络控制器支持的网络协议是吉比特以太网(GbE)协议的示例中,于是网络控制器的配置数据可以包括在主要非易失性存储器204的GbE区中的数据。GbE区是包含用于可以是计算系统的部分的网络控制器的可编程设置的数据结构。在网络控制器所连接到的总线上的总线重置信号的去断言(deassertion)时,由网络控制器读取可编程设置。
在其它示例中,可以从主要非易失性存储器204拷贝到辅助非易失性存储器216的所述另外的系统数据附加地包括描述符区。描述符区是这样的数据结构:所述数据结构包含对主要非易失性存储器204的布局进行描述的信息,以及用于输入/输出(I/O)控制器(诸如来自因特尔公司的平台控制器集线器(PCH)或另一类型的I/O控制器)的配置参数。PCH可以包括各种功能,包括与图形子系统的显示接口、与各种I/O设备可以连接到的系统总线的系统总线接口等等。在I/O控制器从重置中退出时,I/O控制器可以读取描述符区中的数据。
在其它示例中,附加或可替换的系统数据可以从主要非易失性存储器204拷贝到辅助非易失性存储器216。
通过将数据从GbE区和描述符区拷贝到辅助非易失性存储器216,创建了GbE区数据和描述符区数据的备份。
作为将GbE区数据和描述符区数据中的每一个拷贝到辅助非易失性存储器216的部分,嵌入式控制器202可以分别基于GbE区数据和描述符区数据中的每一个而计算对应的散列、校验和、或其它值。这些散列、校验和或其它值可以与GbE区数据拷贝和描述符区数据拷贝中相应的数据拷贝相关联地被保存到辅助非易失性存储器216。
与辅助非易失性存储器中的系统数据的各种片段相关联的散列、校验和或其它值可以稍后用于验证这样的系统数据的内容尚未改变,以使得能够验证辅助非易失性存储器216中的系统数据的备份拷贝的完整性。
辅助非易失性存储器216此外存储策略存储装置244和审查日志246,所述策略存储装置244用以存储策略信息,所述审查日志246用以存储与相关联于嵌入式控制器202的事件相关的事件数据。
在配置了辅助非易失性存储器216(通过执行图1的供应过程并且将各种系统数据拷贝到辅助非易失性存储器216)之后,嵌入式控制器202可以监控被存储在辅助非易失性存储器中的内容(代码和数据)的完整性,以确保内容尚未由于恶意软件、代码程式错误或其它原因而被损害。每当嵌入式控制器202自重置中出来时、在计算系统的低功率状态期间、或者在要检索代码和系统数据的备份拷贝以用于执行恢复操作的任何其它时间,可以执行辅助非易失性存储器216中的内容的完整性检查。
如以上所指出的,在辅助非易失性存储器216中可以存在各种类型的备份系统数据,包括以下中的一些或全部:机器唯一的数据、GbE区数据、描述符区数据、审查日志数据、和策略存储数据。在一些示例中,预期机器唯一的数据、GbE区数据和描述符区数据在辅助非易失性存储器216的供应(诸如在工厂中或通过服务设施)之后在计算系统200中保持静态。如果要使用辅助非易失性存储器216中的系统数据的前述片段中的任一个,诸如用以恢复主要非易失性存储器204中的相应的受损害的系统数据,那么可以执行图3中所描绘的过程。
在图3的过程中,嵌入式控制器202可以(在302处)验证要使用的辅助非易失性存储器216中的系统数据的每一个片段的完整性。
为了验证在辅助非易失性存储器216中所存储的数据的前述片段中的每一个的完整性,嵌入式控制器202可以利用系统数据的相应片段来计算散列或其它值,并且将所计算的散列或其它值与在辅助非易失性存储器中存储的散列或其它值进行比较。匹配指示:系统数据的相应片段是有效的。非匹配指示:系统数据的相应片段已经改变,其是系统数据的片段受损害的指示。
审查日志246的完整性的验证可以包括验证:审查日志的物理结构是正确的并且准备好接收审查日志事件。为了验证策略存储装置中的策略信息的完整性,每当策略信息被更新时,嵌入式控制器202可以在辅助非易失性存储器216中存储策略存储装置的度量。度量可以是以基于在策略存储装置中所存储的策略信息的散列、校验和或其它值的形式。嵌入式控制器202可以计算度量并且确认:所述度量与策略存储装置度量值匹配,以验证策略存储装置完整性。如果不存在匹配,则那是策略存储装置244已经被损害的指示。
嵌入式控制器202(在304处)确定是否已经验证了系统数据的片段的完整性。如果是这样,那么图3的过程结束。然而,如果尚未验证系统数据的片段的完整性,那么进一步的处理可以取决于系统数据的片段的类型(如在306处所确定的)。在一些实现方式中,假定将在安全环境中、诸如在工厂或服务设施处捕获机器唯一的数据、GbE区数据和描述符区数据。结果,在一些示例中,辅助非易失性存储器216中的这些类型的系统数据在现场(in thefield)不可恢复。一旦遇到数据完整性问题,嵌入式控制器202就可以(在308处)设置对应的状态指示符以指示:系统数据的相应片段是无效的。例如,机器唯一的数据、GbE区数据、和描述符数据中的每一个可以与相应的状态指示符相关联,所述状态指示符可以被设置成第一值来指示:相应的系统数据是无效的。对应的状态指示符如果被设置成第二值则指示:相应的系统数据是有效的。
在针对系统数据的相应片段的状态指示符被设置成第一值来指示系统数据的相应片段无效时,嵌入式控制器202将从状态指示符被设置成第一值的时候停止执行系统数据的相应片段的完整性检查。另外,在将状态指示符设置成第一值时,嵌入式控制器202可以(在310处)将相应的事件添加到审查日志以指示已经发生了错误。
状态指示符当被设置成第一值时告知系统固件207:辅助非易失性存储器216中的数据(例如机器唯一的数据、GbE区数据或描述符区数据)的相应片段的拷贝将不用于主要非易失性存储器204中的系统数据的相应片段的恢复。因此,可以禁用(或反对(deprecate))与系统数据的无效片段对应的相应特征。例如,可以反对机器唯一的数据、GbE区数据和描述符数据的使用。
为了校正与对系统数据的片段是无效的进行指示的状态指示符相关联的系统数据的相应片段,计算系统200可以被置于制造编程模式中以补救该问题,如以下进一步讨论的那样。注意到,制造编程模式是可以在工厂处或在服务设施处进入到其中并且不在用户场所处的现场可以进入的模式。
如果嵌入式控制器202(在306处)确定了辅助非易失性存储器216中的审查日志以这样的方式被损坏使得嵌入式控制器202将不再能够将新的事件添加到审查日志,则嵌入式控制器202可以(在312处)修复审查日志的结构。在修复审查日志结构时,嵌入式控制器202可以(在314处)将事件添加到审查日志,从而指示审查日志的结构问题被检测到并且被修复。
如果嵌入式控制器102(在306处)确定了数据完整性问题在辅助非易失性存储器216中的策略存储装置中,则嵌入式控制器202可以(在316处)将策略信息(例如可以被用户控制的策略信息)复原成默认值并且将默认值提交回给辅助非易失性存储器216。另外,与策略存储装置相关的、在辅助非易失性存储器216中的完整性度量可以被更新(在318处)。将策略信息设置成默认值可以包括将参数EC_MPM(图2中的252)设置成被禁用的状态。EC_MPM参数252是被存储在辅助非易失性存储器216中的与制造编程模式相关的值,并且在以下被进一步讨论。在其它示例中,策略信息的其它参数可以被设置成默认值。
在将策略信息复原成默认状态时,嵌入式控制器202可以(在320处)设置用于下一引导周期的状态警告指示符以指示:嵌入式控制器策略已经复原成默认值。响应于状态警告指示符被设置,可以由系统固件向用户显示警告消息。响应于该显示消息,如果期望不同的设置,则用户可以在系统固件设置(例如BIOS设置)中对设置进行重配置。另外,事件可以(在322处)被添加到审查日志,其指示:已经在策略存储装置中检测到数据完整性问题,并且策略已经被复原成默认值。
如在图2中进一步描绘的,MPM参数250(其涉及制造编程模式)被存储在主要非易失性存储器204中,并且MPM参数的拷贝被存储在辅助非易失性存储器216中的策略存储装置中,作为EC_MPM参数252。用于EC_MPM参数的默认设置是被禁用的设置(其指示制造编程模式被禁用)。更一般地,MPM和EC_MPM参数是存储在主要和辅助非易失性存储器中的指示符,以供用于转变成与制造编程模式相关联的各种状态。
计算系统可以在工厂或服务设施处被置于制造编程模式中。在制造编程模式中,服务人员可以设置或改变主要非易失性存储器204中的系统固件内容和系统数据。例如,系统数据(诸如机器唯一的数据、GbE区数据、和描述符区数据)可以被修改。
在一些示例中,当计算系统200处于制造编程模式中时,服务人员,通过使用应用,可以使用接口(诸如Windows管理规范(WMI)接口或其它类型的接口)而访问某些系统固件设置。制造编程模式在工厂处或在服务设施处可用,其用以执行计算系统的修复或其它服务。在制造编程模式中,各种系统数据,诸如机器唯一的数据、GbE区数据和描述符区数据,可以在辅助非易失性存储器216中被清除。这允许从主要非易失性存储器204中拷贝机器唯一的数据、GbE区数据和描述符区数据的新备份拷贝,这可以被执行以例如修理辅助非易失性存储器216中的受损害的系统数据。
图4是图示了与制造编程模式相关的状态机的各种状态的状态图。工厂第一引导状态402表示当制造计算系统200时在工厂处的状态。工厂第一引导状态402可以是在工厂处第一次引导计算系统200时计算系统200的状态。至少基于以下来指示工厂第一引导状态402:主要非易失性存储器204中的MPM参数250(图2)处于被启用的状态,并且辅助非易失性存储器216中的EC_MPM参数252处于被禁用的状态。
主要非易失性存储器204中的默认状态MPM参数250在主要非易失性存储器204被附连到计算系统200的电路板之前、经由外部编程而被设置成经启用的状态。在由嵌入式控制器202执行的辅助非易失性存储器216的初始化期间,辅助非易失性存储器216中的EC_MPM参数252被供应成经禁用的状态,例如作为图1中执行的初始化过程的部分。
此外,在一些实现方式中,工厂第一引导状态402此外由具有假状态的以下指示符来指示:有效MUD被捕获、有效GbE被捕获、以及有效描述符被捕获。这些指示符被设置成假状态指示了:尚未分别使得机器唯一的数据、GbE区数据、和描述符区数据的拷贝去到辅助非易失性存储器216。一旦已经在辅助非易失性存储器216中捕获到相应的机器唯一的数据、GbE区数据、和描述符区数据的拷贝,有效MUD被捕获指示符、有效GbE被捕获指示符、以及有效描述符被捕获指示符就可以被设置成真状态。
在工厂处对计算系统200的最初引导时,系统固件207可以向嵌入式控制器202发送命令,以将EC_MPM参数252(在辅助非易失性存储器216中)设置成被启用的状态,从而使得从状态402转变成状态404。由MPM参数250和EC_MPM参数252二者都处于被启用的状态中所表示的状态404对应于计算系统200的制造编程模式。
在状态404中的制造编程模式中,服务人员可以如期望的那样修改主要非易失性存储器204中的系统数据。在某个点处,系统固件207可以退出状态404的制造编程模式。系统固件207通过将MPM参数250设置成被禁用的状态而触发从制造编程模式中的退出。这使得MPM参数250被设置在经禁用的状态处,而EC_MPM参数252保持于经启用的状态。前述组合触发从状态404到状态406的转变。
注意到,如果检测到至少一个预定义的条件,则可以发生从状态404回到工厂第一引导状态402的转变。例如,所述至少一个预定义的条件包括:(1)通过使用由用户录入的预定义的密钥序列而擦除辅助非易失性存储器216;或(2)检测到策略存储装置244被损害。
在状态406中,系统固件207可以将命令发送到嵌入式控制器202,以从主要非易失性存储器204向辅助非易失性存储器216拷贝机器唯一的数据。另外,系统固件207可以将命令发送到嵌入式控制器202,以将EC_MPM参数252设置于被禁用的状态中,这引起从状态406到状态408的转变。
作为从状态406到状态408的转变的部分,系统固件207使得执行计算系统200的冷引导。另外,嵌入式控制器202将重置信号(例如RSMRST#)断言到计算系统202中的核心逻辑(例如,I/O控制器,诸如因特尔PCH),以确保嵌入式控制器202可以访问主要非易失性存储器204。同样,在从状态406到状态408的转变中,嵌入式控制器202从主要非易失性存储器202中读取GbE区数据以及描述符区数据,并且在辅助非易失性存储器216中创建备份拷贝。在一些示例中,嵌入式控制器202还可以更新辅助非易失性存储器216中的引导块232的拷贝,如果辅助非易失性存储器216中的引导块232不同于主要非易失性存储器204中的引导块210的话。
注意到,状态408,其对应于MPM参数250和EC_MPM参数252二者都处于被禁用的状态,是在现场由用户对计算系统200的正常操作的状态。
作为进入状态408的过程的部分,嵌入式控制器202可以执行以下:确认状态指示符,所述状态指示符指示了引导块232、机器唯一的数据、GbE区数据和描述符区数据被填充在辅助非易失性存储器216中。同样,嵌入式控制器202可以如下执行散列、校验和或其它值的比较:确认辅助非易失性存储器216中的引导块232的散列、校验和或其它值与主要非易失性存储器中的引导块210的散列、校验和或其它值匹配;确认辅助非易失性存储器216中的机器唯一的数据的散列、校验和或其它值与主要非易失性存储器204中的机器唯一的数据的散列、校验和或其它值匹配;确认辅助非易失性存储器216中的GbE区的散列、校验和或其它值与主要非易失性存储器204中的GbE区数据的散列、校验和或其它值匹配,并且确认辅助非易失性存储器216中的描述符区数据的散列、校验和或其它值与主要非易失性存储器202中的描述符区数据的散列、校验和或其它值匹配。
随后,出于某种原因,计算系统200可以被返回到工厂或服务设施,诸如由于检测到计算系统200被损害。在工厂或服务设施处,可以由服务人员使用应用来向系统固件207发出安全命令,以将MPM参数250和EC_MPM参数252的状态改变到被启用的状态(以使得重新进入到制造编程模式中)。安全命令可以是用加密密钥(诸如私有密钥)签名的管理命令。系统固件207可以通过使用对应的加密密钥(诸如公共密钥或私有密钥)而对所签名的命令进行解密。
在一些示例中,可以通过使用可移除存储介质(诸如通用串行总线(USB)存储介质或其它类型的存储介质)而将所签名的命令呈现给计算系统。在一些情况中,合期望的是,在发送所签名的命令之前从嵌入式控制器202移除功率,这确保在执行引导块210和启用到嵌入式控制器202的接口(例如应用编程接口或API)之前,嵌入式控制器202验证引导块210。
一旦由系统固件207接受了重新启用制造编程模式的经签名的命令,并且响应于MPM参数250和EC_MPM参数252二者都被设置成经启用的状态,状态机从状态408转变到状态404。在从状态408到状态404的转变中,嵌入式控制器202可以擦除辅助非易失性存储器216中的某些备用系统数据,包括机器唯一的数据、GbE区数据和描述符区数据,并且可以将以下指示符设置成假状态:有效MUD被捕获、有效GbE被捕获、以及有效描述符被捕获。
用于重新进入制造编程模式的另一机制(除了发送以上讨论的所签名的命令之外)是执行在其上装配了主要非易失性存储器204的电路板的物理再制。在一些示例中,主要非易失性存储器204可以从电路板中被物理移除并且被离线编程为默认的系统固件映像,其中MPM参数250被设置成经启用的状态。
一旦经重编程的主要非易失性装置204被放回到计算系统200中,系统固件207就检测到MPM参数250具有经启用的状态,并且EC_MPM参数252具有经禁用的状态。这引起从状态408到状态410的转变。当由于主要非易失性存储器204的再制而发生到制造编程模式的进入时,系统固件207可以进行检查以确保系统固件(包括引导块)已经被验证以用于当前的引导会话。这可以基于检查与系统固件207相关联的指示符。如果系统固件207尚未被验证以用于当前的引导会话,那么系统固件207可以发送命令以强制检查系统固件207,并且计算系统200可以被重新启动。
在从状态408到状态410的转变时,系统固件207可以(在412处)提供对于服务人员录入输入的提示。如果所接收的输入是特殊的预定义密钥序列,那么系统固件207然后向嵌入式控制器202发送命令,以将EC_MPM参数252设置成经启用的状态。这使得MPM和EC_MPM参数250和252二者都被设置成经启用的状态,这引起到状态404的转变。
在由于输入了特殊的预定义密钥序列而从决策菱形412到状态404的转变中,嵌入式控制器202可以清除已经被备份到辅助非易失性存储器21的以下系统数据,在一些示例中为:机器唯一的数据、GbE区数据以及描述符区数据。
然而,如果响应于412处呈现的提示而没有接收到特殊的预定义密钥序列,则系统固件207将MPM参数250设置成被禁用的状态,从而引起从决策菱形412到状态408的转变。在该转变中,辅助非易失性存储器216的内容保持未被改变并且系统固件207或EC固件208可以从辅助非易失性存储器216向主要非易失性存储器204还原机器唯一的数据、GbE区数据和描述符区数据,这是通过如果在主要和辅助拷贝之间存在任何差异,则用辅助非易失性存储器216中对应的系统数据来替换主要非易失性存储器204中的相应系统数据。
通过使用根据一些实现方式的技术或机制,可以通过不必在将辅助非易失性存储器装配在电路板上以供安装在计算系统中之前对辅助非易失性存储器进行编程而简化具有主要和辅助非易失性存储器的计算系统的制造过程。同样,在与特征相关联的数据变成受损害的情况中可以单独反对各种特征。另外,技术或机制被提供来允许进入制造编程模式以允许清除或还原辅助非易失性存储器的内容。
以上描述的各种模块的机器可读指令被加载以供执行在处理电路(例如嵌入式控制器102或处理器106)上。处理电路可以包括微处理器、微控制器、处理器模块或子系统、可编程集成电路、可编程门阵列或者另一控制或计算设备。
数据和指令被存储在相应的存储设备中,所述存储设备被实现为一个或多个计算机可读或机器可读的存储介质。存储介质包括不同形式的存储器,包括:半导体存储器设备,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦除和可编程只读存储器(EPROM)、电可擦除和可编程只读存储器(EEPROM)和闪速存储器;磁盘,诸如固定盘、软盘和可移除盘;其它磁性介质,包括磁带;光学介质,诸如光盘(CD)或数字视频盘(DVD);或其它类型的存储设备。注意到,以上讨论的指令可以被提供在一个计算机可读或机器可读的存储介质上,或者可替换地,可以被提供在可能地具有复数节点的大型系统中所分布的多个计算机可读或机器可读存储介质上。这样的一个或多个计算机可读或机器可读存储介质被视为物品(或制品)的部分。物品或制品可以是指任何制造的单个组件或多个组件。一个或多个存储介质可以位于运行机器可读指令的机器中,或者位于远程站点处,从所述远程站点可以通过网络来下载机器可读指令以供执行。
在前述描述中,阐述了众多细节来提供对本文所公开的主题的理解。然而,可以在没有这些细节中的一些或全部的情况下来实践实现方式。其它实现方式可以包括自以上讨论的细节的修改和变型。所意图的是随附权利要求涵盖这样的修改和变型。

Claims (15)

1.一种对系统进行配置的方法,包括:
响应于启动包括第一非易失性存储器和第二非易失性存储器的系统,所述第一非易失性存储器包含系统引导代码,由控制器来执行第二非易失性存储器的供应,所述供应包括:
检查第二非易失性存储器未被初始化;并且
响应于确定了第二非易失性存储器未被初始化,将系统引导代码从第一非易失性存储器拷贝到第二非易失性存储器;
其中如果(1)第二非易失性存储器之前尚未被编程,或者(2)第二非易失性存储器之前被初始化但是随后已经被擦除,那么第二非易失性存储器被视为未经初始化的。
2.根据权利要求1所述的方法,其中所述供应此外包括在第二非易失性存储器中创建策略存储装置,所述策略存储装置存储涉及与控制器的执行相关的至少一个策略的信息。
3.根据权利要求2所述的方法,其中所述至少一个策略涉及在检测到系统引导代码的损害时更新系统引导代码,或者针对损害而检查系统引导代码。
4.根据权利要求1所述的方法,其中所述供应此外包括初始化第二非易失性存储器中的审查数据结构,所述审查数据结构将接收与控制器的事件相关的信息。
5.根据权利要求1所述的方法,其中执行供应是响应于检测到在制造系统的工厂处对包含控制器和第二非易失性存储器的电路板进行的首次加电。
6.根据权利要求1所述的方法,此外包括:
在工厂处或在服务设施处的编程过程期间,
由控制器接收来自系统引导代码的命令;以及
响应于所述命令,从第一非易失性存储器检索系统数据并且将所述系统数据拷贝到第二非易失性存储器。
7.根据权利要求6所述的方法,其中所述系统包括复数类型的系统数据,所述方法此外包括:
检测所述复数类型的系统数据中之一的损害;以及
针对受损害的类型的系统数据而设置指示符,以指示所检测到的损害。
8.根据权利要求7所述的方法,其中所述复数类型的系统数据选自包括以下各项的组中:包括对于系统而言唯一的配置数据的机器唯一的数据、网络控制器的配置数据以及对第一非易失性存储器的布局进行描述的数据。
9.一种计算系统,包括:
处理器;
控制器;
第一非易失性存储器,其存储与系统的编程模式相关的第一指示符;
第二非易失性存储器,其连接到控制器并且存储与编程模式相关的第二指示符;以及
系统引导代码,其在处理器上可执行以基于第一和第二指示符的值而确定系统是否要进入编程模式,其中当系统处于编程模式中时,系统引导代码可配置。
10.根据权利要求9所述的系统,其中第二非易失性存储器能被控制器访问,但是与处理器电气隔离,其中第一非易失性存储器能被控制器和处理器二者访问,并且其中系统引导代码可执行以此外:
响应于确定了系统要进入编程模式,向控制器发送命令,以使得控制器将第二指示符从第一值改变到第二值。
11.根据权利要求9所述的系统,其中第一和第二指示符的值的不同组合引起到不同状态的转变,其中转变包括从工厂第一引导状态到对应于编程模式的状态的转变。
12.根据权利要求11所述的系统,其中转变此外包括从对应于编程模式的状态到用以退出编程模式的另一状态的转变。
13.根据权利要求12所述的系统,其中转变此外包括从所述另一状态回到对应于编程模式的状态的转变。
14.一种包括至少一个机器可读存储介质的物品,所述机器可读存储介质存储了指令,所述指令在执行时使得系统:
响应于启动包括第一非易失性存储器和第二非易失性存储器的系统,所述第一非易失性存储器包含系统引导代码,由系统的控制器来执行第二非易失性存储器的供应,所述供应包括:
检查第二非易失性存储器未被初始化;并且
响应于确定了第二非易失性存储器未被初始化,将系统引导代码从第一非易失性存储器拷贝到第二非易失性存储器,并且将与系统的配置和系统的至少一个组件的配置相关的系统数据从第一非易失性存储器拷贝到第二非易失性存储器;
其中如果(1)第二非易失性存储器之前尚未被编程,或者(2)第二非易失性存储器之前被初始化但是随后已经被擦除,那么第二非易失性存储器被视为未经初始化的。
15.根据权利要求14所述的物品,其中第二非易失性存储器能被控制器访问,但是不能被系统的处理器访问,并且其中第一非易失性存储器被控制器和处理器共享并且能被控制器和处理器访问。
CN201380075623.9A 2013-04-23 2013-04-23 对系统进行配置的方法、计算系统以及物品 Active CN105122258B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/037727 WO2014175863A1 (en) 2013-04-23 2013-04-23 Configuring a system

Publications (2)

Publication Number Publication Date
CN105122258A CN105122258A (zh) 2015-12-02
CN105122258B true CN105122258B (zh) 2019-03-15

Family

ID=51792252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075623.9A Active CN105122258B (zh) 2013-04-23 2013-04-23 对系统进行配置的方法、计算系统以及物品

Country Status (5)

Country Link
US (1) US9852298B2 (zh)
EP (1) EP2989583B1 (zh)
CN (1) CN105122258B (zh)
TW (1) TWI522838B (zh)
WO (1) WO2014175863A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733288B2 (en) 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US9990255B2 (en) * 2013-04-23 2018-06-05 Hewlett-Packard Development Company, L.P. Repairing compromised system data in a non-volatile memory
US10769389B2 (en) * 2014-08-27 2020-09-08 Ncr Corporation Automatic scanner configuration
US10114664B1 (en) * 2015-09-21 2018-10-30 Veritas Technologies Llc Systems and methods for automated delivery and identification of virtual drives
KR102388746B1 (ko) * 2015-11-11 2022-04-20 삼성전자주식회사 세이프 어드레스 매핑을 이용한 메모리 셀 액세스 제어 방법
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
US10885196B2 (en) 2016-04-29 2021-01-05 Hewlett Packard Enterprise Development Lp Executing protected code
US10254972B2 (en) * 2016-09-13 2019-04-09 Toshiba Memory Corporation Storage device and storage system
IT201700050166A1 (it) * 2017-05-09 2018-11-09 St Microelectronics Srl Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
CN107528898B (zh) * 2017-08-23 2020-09-29 合肥美菱物联科技有限公司 一种实现物联网模块的方法及装置
CN109614798B (zh) * 2017-09-30 2022-12-27 华为技术有限公司 安全启动方法、装置及终端设备
US11221841B2 (en) * 2018-08-03 2022-01-11 Hewlett-Packard Development Company, L.P. BIOS personalities
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11947675B2 (en) * 2019-02-11 2024-04-02 Hewlett-Packard Development Company, L.P. Restoration of firmware subsystems based on manufacturing states
US11487621B1 (en) * 2021-04-29 2022-11-01 Dell Products L.P. Linking embedded controller with memory reference code and system bios shadowing
JP2024530880A (ja) * 2021-07-21 2024-08-27 アボット ダイアベティス ケア インコーポレイテッド センサデバイスのオーバ・ザ・エアプログラミング
US11893394B2 (en) * 2022-04-05 2024-02-06 Denso Corporation Verifying a boot sequence through execution sequencing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN100472657C (zh) * 2002-12-02 2009-03-25 三星电子株式会社 保护闪存系统的设备和方法
TW201020785A (en) * 2008-11-19 2010-06-01 Inventec Corp Peripheral device initializing method and computer system

Family Cites Families (18)

* 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
US5822581A (en) * 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
US6907602B2 (en) 2000-08-10 2005-06-14 Mustek Systems Inc. Method for updating firmware of computer device
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
US7136994B2 (en) * 2003-05-13 2006-11-14 Intel Corporation Recovery images in an operational firmware environment
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US7908470B1 (en) * 2006-10-31 2011-03-15 Hewlett-Packard Development Company, L.P. Multi-processor computer with plural boot memories
JP4324810B2 (ja) 2007-04-10 2009-09-02 セイコーエプソン株式会社 マイクロコンピュータ、電子機器及びフラッシュメモリのプロテクト方式
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
KR20090060774A (ko) 2007-12-10 2009-06-15 한국전자통신연구원 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법
US20090172639A1 (en) * 2007-12-27 2009-07-02 Mahesh Natu Firmware integrity verification
TWI411959B (zh) 2008-03-21 2013-10-11 Asustek Comp Inc 具雙開機程式碼區之電腦系統及其啟動方法
US8132253B2 (en) 2008-04-21 2012-03-06 Dell Products L.P. Memory security override protection for manufacturability of information handling systems
TWI459294B (zh) * 2011-03-18 2014-11-01 Phoenix Tech Ltd Bios程式的更新方法與其電腦系統
CN102789396A (zh) 2011-05-18 2012-11-21 鸿富锦精密工业(深圳)有限公司 Bios配置模式切换系统及方法
GB2511998B (en) * 2012-01-03 2020-10-21 Hewlett Packard Development Co Backing up firmware during initialization of device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN100472657C (zh) * 2002-12-02 2009-03-25 三星电子株式会社 保护闪存系统的设备和方法
TW201020785A (en) * 2008-11-19 2010-06-01 Inventec Corp Peripheral device initializing method and computer system

Also Published As

Publication number Publication date
EP2989583A1 (en) 2016-03-02
EP2989583B1 (en) 2018-10-10
TW201447630A (zh) 2014-12-16
CN105122258A (zh) 2015-12-02
US20160055338A1 (en) 2016-02-25
WO2014175863A1 (en) 2014-10-30
TWI522838B (zh) 2016-02-21
US9852298B2 (en) 2017-12-26
EP2989583A4 (en) 2016-10-19

Similar Documents

Publication Publication Date Title
CN105122258B (zh) 对系统进行配置的方法、计算系统以及物品
US11520894B2 (en) Verifying controller code
US11995182B2 (en) Baseboard management controller to perform security action based on digital signature comparison in response to trigger
CN105122262B (zh) 辅助非易失性存储器中的冗余系统引导代码
CN105308609B (zh) 存储事件数据的系统和方法
CN103718165B (zh) Bios闪存攻击保护和通知
US9880908B2 (en) Recovering from compromised system boot code
CN105122259B (zh) 控制器和用于检索系统引导代码的系统及方法
EP2989547B1 (en) Repairing compromised system data in a non-volatile memory
EP3028147B1 (en) Updating boot code
JP2021179982A (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
US11816252B2 (en) Managing control of a security processor in a supply chain
US20230015519A1 (en) Automatically evicting an owner of a security processor
US11977639B2 (en) Indicating a type of secure boot to endpoint devices by a security processor
US11269637B2 (en) Validating machine-readable instructions using an iterative validation process

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