CN110494855A - 用于恢复可信系统固件状态的系统和方法 - Google Patents
用于恢复可信系统固件状态的系统和方法 Download PDFInfo
- Publication number
- CN110494855A CN110494855A CN201780088689.XA CN201780088689A CN110494855A CN 110494855 A CN110494855 A CN 110494855A CN 201780088689 A CN201780088689 A CN 201780088689A CN 110494855 A CN110494855 A CN 110494855A
- Authority
- CN
- China
- Prior art keywords
- code
- security code
- memory block
- hardware configuration
- security
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
操作包括恢复可信系统固件状态。系统将自包含的安全代码集存储在安全代码存储区中。系统将操作代码集存储在操作代码存储区中。在系统启动时,系统执行安全代码或操作代码,这取决于系统被配置为处于安全模式还是处于正常操作模式。当系统被配置为处于安全模式时,系统执行安全代码。在安全模式中,系统还用由安全代码引用的操作代码的替换版本覆盖存储在操作代码存储区中的操作代码的当前版本。当系统被配置为处于正常操作模式时,系统执行操作代码。在正常操作期间,安全代码存储区是电隔离的。
Description
技术领域
本公开涉及计算机安全性。特别地,本公开涉及恢复可信系统固件状态。
权益要求
本申请要求于2017年3月22日提交的美国非临时申请15/466,514的权益和优先权,该临时申请通过引用并入本文。
背景技术
计算机系统通常具有许多组件和许多软件层。计算机系统的安全性通常采用分层方案。第一个软件或固件(诸如基本输入/输出系统(BIOS)或引导加载程序(boot loader))在它被加载之前验证下一个软件,依此类推。信任的根(root of trust)是一组本质上可信的硬件或软件组件,并且用作可以建立对其它组件的信任的基础。信任的根用于建立信任链。一旦系统的一部分受到破坏,信任链就被打破。所有级别的软件都是可疑的,从而使得难以重新建立基于其进行构建的新的信任的根。通常,在这种信任链的基础处是固件。
固件是用于控制、监视和/或数据操纵的软件。固件可以被编程到计算设备中。固件可以存储在非易失性存储器设备中。固件通常仅包括设备的基本功能。固件经常是最低级别的代码。固件经常向更高级别的软件提供服务。
历史上,服务器在本地硬件上运行,并且信任链相对容易建立。近来,服务器越来越多地开始使用云模型。在云模型中,一家公司可能会从另一家公司租用物理服务器。该服务器先前可能已经由不同客户使用。这产生了新的问题,即,在具有未知历史的服务器的状态中重新建立信任。
本节中描述的方法是可以追求的方法,但不一定是先前已经构想或追求的方法。因此,除非另有说明,否则不应当假定本节中描述的方法中的任何方法仅仅因为它们被包含在本节中就有资格作为现有技术。
附图说明
在附图的各个图中,通过示例的形式而非限制的形式来示出实施例。应当注意的是,本公开中对“实施例”或“一个实施例”的引用不一定是引用相同的实施例,并且它们意味着至少一个实施例。在附图中:
图1A图示了根据一个或多个实施例的处于正常操作模式的系统;
图1B图示了根据一个或多个实施例的处于安全模式的系统;
图2图示了根据一个或多个实施例的用于恢复可信系统固件状态的示例操作集;
图3图示了根据一个或多个实施例的系统的框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了许多具体细节以便提供透彻的理解。可以在没有这些具体细节的情况下实践一个或多个实施例。在一个实施例中描述的特征可以与在不同的实施例中描述的特征组合。在一些示例中,参考框图形式描述公知的结构和设备,以避免不必要地模糊本发明。
1.总体概述
2.处于正常操作模式的系统
3.处于安全模式的系统
4.恢复可信系统固件状态
A.系统不处于安全模式
B.系统处于安全模式
5.将服务器恢复到可信固件状态
6.远程重新配置
7.其它事项;扩展
8.硬件概述
1.总体概述
一个或多个实施例包括恢复可信系统固件状态。系统将代码存储在两个代码存储区中。在安全代码存储区中,系统存储自包含的安全代码集。安全代码不引用任何其它可修改的代码。在操作代码存储区中,系统存储操作代码集。
在实施例中,系统包括控制器。控制器在系统启动时执行安全代码或操作代码,具体取决于系统处于安全模式还是正常操作模式。当系统被配置为处于安全模式时,系统执行安全代码。在安全模式中,系统还用由安全代码引用的操作代码的替换版本覆盖存储在操作代码存储区中的操作代码的当前版本。
当系统被配置为处于正常操作模式时,系统执行操作代码。在正常操作期间,安全代码存储区与系统的一个或多个其它组件电隔离。当系统处于正常操作模式时,不能访问安全代码。
2.处于正常操作模式的系统
图1A图示了根据一个或多个实施例的处于正常操作模式的系统。基板管理控制器(BMC)110运行代码以控制系统。引导选择机构(mechanism)116选择是从存储在安全代码存储区120还是从存储在操作代码存储区122中的代码来引导BMC。如图1A所示,系统还包括非易失性存储装置112、现场可编程门阵列(FPGA)114、缓冲器104、以及CPU和外围电源控件124。在一个或多个实施例中,系统可以包括比图1A中所示的组件更多或更少的组件。图1A中所示的组件可以在彼此本地或彼此远离。图1A中所示的组件可以用软件和/或硬件实现。每个组件可以分布在多个应用和/或机器上。可以将多个组件组合到一个应用和/或机器中。相对于一个组件描述的操作可以替代地由另一个组件执行。
在一个或多个实施例中,BMC 110是管理系统的控制器。在BMC上运行的软件除其它外还可以监视系统、使系统上电或断电,以及安装操作系统。BMC包括能够确定系统是处于正常操作模式还是安全模式的软件。BMC可以被配置为从片选零(chip select zero)获取代码。片选零是BMC上选择特定代码存储区的物理引脚。虽然在这个示例性实施例中使用了BMC,但是可以使用本领域中已知的任何类型的控制器来执行相同的功能。此外,BMC 110可以在与非易失性存储装置112、引导选择机构116、FPGA 116、安全代码存储区120和操作代码存储区122相同的计算系统上实现或者执行。替代地或附加地,BMC 110可以在与非易失性存储112、引导选择机构116、FPGA 116、安全代码存储区120和操作代码存储区122分开的计算系统上实现或执行。BMC 110可以经由直接连接或经由网络通信地耦合到非易失性存储装置或引导选择机构。
在实施例中,安全代码存储区120是系统中存储安全代码的位置。安全代码存储区可以是例如闪存、硬盘驱动器上的物理位置或虚拟存储器地址。安全代码存储区120可以包括多个不同的存储单元和/或设备。多个不同的存储单元和/或设备可以是相同类型或位于相同的物理站点,或者可以不是相同类型或位于相同的物理站点。在正常操作模式中,安全代码存储区与引导选择机构和系统的其余部分电隔离(隔离118)。存储在安全代码存储区中的安全代码在正常操作期间不能被修改。安全代码不引用任何其它可修改的代码。安全代码存储区还可以存储操作代码的替换版本。
在实施例中,操作代码存储区122是系统中存储操作代码的位置。操作代码存储区可以是例如闪存、硬盘驱动器上的物理位置或虚拟存储器地址。操作代码存储区122可以包括多个不同的存储单元和/或设备。多个不同的存储单元和/或设备可以是相同类型或位于相同的物理站点,或者可以不是相同类型或位于相同的物理站点。操作代码存储区耦合到引导选择机构116。操作代码存储区可以经由直接连接或经由网络通信地耦合到引导选择机构。例如,操作代码存储区可以通过串行外围接口总线(SPI)耦合到引导选择机构。无论系统处于安全模式还是操作模式,操作代码存储区都耦合到引导选择机构。存储在操作代码存储区中的操作代码是用于在正常操作期间运行系统的代码。操作代码可以是系统上最低级别的代码。
在实施例中,引导选择机构116包括被配置为控制由BMC使用的引导设备的硬件和/或软件。如上所述,BMC可以被配置为从映射到片选零的地址获取代码。引导选择机构可以包括操纵BMC在片选零处看到的内容的功能。引导选择机构将片选零指向安全代码存储区或者操作代码存储区,这取决于系统处于安全模式还是操作模式。在操作模式中,安全代码存储区不可访问,因此BMC不能从安全代码存储区进行引导或访问安全代码存储区。在操作模式中,BMC可以从操作代码存储区或与安全代码存储区不同的另一个存储区(未示出)进行引导。
在实施例中,缓冲器104是耦合在安全跳线(jumper)和BMC之间的单向缓冲器。缓冲器包括防止反向驱动的功能。因为缓冲器是单向的,因此信号只能沿着该接口传送到BMC而不能从BMC传送。缓冲器104还可以包括在数据被传送到BMC时临时存储数据的功能。
在实施例中,非易失性存储装置112包括存储由系统使用的数据的功能。非易失性存储装置是非易失性存储器,其中内容在系统断电时被保存。非易失性存储装置可以是例如只读存储器(ROM)、可编程只读存储器(PROM)、闪存、硬盘驱动器或磁带。非易失性存储装置112可以包括多个不同的存储单元和/或设备。多个不同的存储单元和/或设备可以是相同类型或位于相同的物理站点,或者可以不是相同类型或位于相同的物理站点。非易失性存储装置可以经由直接连接或网络通信地耦合到BMC。
在实施例中,FPGA 114是包括可编程逻辑块的阵列的集成电路。FPGA包括控制诸如CPU、外围电源、附加卡和网络之类的组件的状态的功能。例如,FPGA可以控制设备的电源。FPGA可以经由直接连接或经由网络通信地耦合到CPU和外围电源控件。
在实施例中,CPU和外围电源控件124通信地耦合到FPGA。CPU是系统用于运行软件的处理单元。CPU可以基于软件执行指令。外围电源控件可以控制对CPU和/或整个系统的供电。
在正常操作模式中,主板(motherboard)上未安装安全跳线。因此,系统中包括的主板上的两个引脚被电隔离。在正常操作中,信号被发送到FPGA、BMC(经由缓冲器104)、以及引导选择机构。
在正常操作中,在没有安全跳线的情况下,系统生成FPGA使能信号(enablesignal)106。FPGA使能信号启用FPGA。当FPGA使能信号有效时,FPGA可操作。FPGA可以对其自身进行内部改变。FPGA可以向CPU和外围电源控件传送指令。在正常操作模式中,FPGA可以例如控制对CPU的供电。
在没有安全跳线的情况下,系统也向BMC生成信号,使得BMC可以确定正常操作模式是有效的。此外,安全信号被传送到引导选择机构116。安全信号影响引导选择机构的引导选择逻辑,使得操作代码存储区122是BMC的引导设备。
在正常操作模式中,安全代码存储区120与引导选择机构和系统的其余部分隔离(隔离118)。通过切断与引导选择机构的连接,或者通过断开对安全代码存储区的供电,可以物理地隔离安全代码存储区。当安全代码存储区被隔离时,系统的其余部分不能访问它。在正常操作模式中,不能修改安全代码存储区。
系统还可以包括一个或多个操作系统、BIOS代码集和应用(未示出)。
3.处于安全模式的系统
图1B图示了根据一个或多个实施例的处于安全模式的系统。BMC 110、缓冲器104、非易失性存储装置112、引导选择机构116、安全代码存储区120、操作代码存储区122、FPGA114以及CPU和外围电源控件124在上面参考图1A的第2节中描述,但是,如下所述,这些组件可以不同地实现或操作。在图1B中,系统由于被插入安全跳线102而处于安全状态。在一个或多个实施例中,系统可以包括比图1B中所示的组件更多或更少的组件。图1B中所示的组件可以在彼此本地或彼此远离。图1B中所示的组件可以用软件和/或硬件实现。每个组件可以分布在多个应用和/或机器上。可以将多个组件组合到一个应用和/或机器中。相对于一个组件描述的操作可以替代地由另一个组件执行。
在实施例中,安全跳线102是物理短路设备,该物理短路设备可以放置在系统的主板上的两个引脚之间。安全跳线一侧接地。在另一侧,安全跳线经由缓冲器104耦合到BMC110。在插入安全跳线时,安全跳线电连接两个引脚,从而改变系统主板的配置。当安全跳线就位时,连接到BMC的电路被配置为传送安全信号。
安全跳线的放置改变板上的芯片选择硬件逻辑,以经由引导选择机构116来改变BMC的引导设备。安全跳线触发主板上的硬件,从而重新配置附接到服务处理器的代码存储区,并有效地更改引导设备。此外,当插入安全跳线102时,安全信号被断言(assert)。安全信号被传送到FPGA、BMC(经由缓冲器104)和引导选择机构。在安装安全跳线的情况下,系统处于安全模式。
传送到FPGA的安全信号触发FPGA禁用信号(disable signal)(126)。FPGA禁用信号向FPGA传送指令,从而禁用整个FPGA。FPGA禁用信号防止FPGA运行或与任何其它设备通信。FPGA禁用信号确保系统在系统处于安全模式时不受FPGA内非可信实体的干扰。FPGA不能对恢复可信固件状态的处理造成任何干扰。
在实施例中,FPGA连接到CPU和外围电源控件124。当FPGA被禁用时,CPU和外围电源控件依次被禁用,因为它们只能通过与FPGA的通信来工作。在安全模式中,CPU和外围电源控件被禁用,并在逻辑上与系统的其余部分隔离。
通过禁用隔离,安全信号还使安全代码存储区连接到BMC。BMC 110可以经由直接连接或经由网络通信地耦合到非易失性存储装置或引导选择机构。例如,安全代码存储区可以通过串行外围接口总线(SPI)耦合到引导选择机构。安全信号影响引导选择逻辑,使得安全代码存储区成为BMC的引导设备。操作代码存储区实际上变为辅助存储设备。只能通过插入或移除安全跳线来物理地操纵系统,才能将系统重新配置为安全模式或从安全模式进行重新配置。系统不能通过执行任何代码被重新配置为安全模式或从安全模式进行重新配置。
如上所述,引导选择机构将片选零指向安全代码存储区或者操作代码存储区,这取决于系统是处于安全模式还是操作模式。在安全模式中,当安全代码存储区和操作代码存储区两者都连接到引导选择机构时,引导选择机构被配置为从安全代码进行引导。
4.恢复可信系统固件状态
图2图示了根据一个或多个实施例的用于恢复可信固件状态的示例性操作集。可以修改、重新布置或完全省略图2中所示的一个或多个操作。因此,图2中所示的特定操作序列不应该被解释为限制一个或多个实施例的范围。
首先,系统启动(操作202)。系统启动可以包括使系统的一个或多个设备上电。系统启动可以包括基于软件引导一个或多个设备。控制器(例如,BMC)基于存储在所选择的代码存储区中的代码进行引导。
所选择的代码存储区基于系统的硬件配置。系统处于安全模式或者不处于安全模式(操作204)。系统是否处于安全模式是硬件逻辑的问题,如通过是否插入安全跳线连接主板上的两个引脚来确定的。替代地或附加地,系统可以远程地被配置为安全模式或从安全模式进行配置,如下面第6节中所描述的。作为硬件逻辑的结果,系统传送一个或多个信号。基于信号,系统组件可以确定有效的模式。
A.系统不处于安全模式
如果系统不处于安全模式,则控制器执行操作代码,而不访问电隔离的安全代码(操作220)。执行操作代码可以包括从操作代码存储区中检索操作代码。控制器可以物理地例如经由总线或通过安全网络从操作代码存储区检索操作代码。执行操作代码还可以包括解释操作代码。基于操作代码中的指令,控制器可以执行一系列动作。例如,控制器可以基于从操作代码存储区检索到的指令来监视系统的处理单元的温度。
控制器在正常操作模式中从操作代码存储区进行引导。在没有安全跳线的情况下,安全代码是电隔离的。可以通过物理地切断安全代码存储区和引导选择机构之间的连接来实现安全代码的电隔离。例如,没有安全跳线会使连接安全代码存储区和引导选择机构的连线断开连接。
在没有安全跳线的情况下,引导选择机构的硬件逻辑被配置为选择操作代码存储区作为控制器的引导设备。引导选择机构可以通过传送操作代码存储区在片选零的指令来向控制器传送引导设备信息。控制器被配置为从片选零进行引导。因此,控制器在不处于安全模式时从操作代码存储区进行引导。
此外,在没有安全跳线的情况下,从主板发送到控制器的信号由控制器作为输入信号接收。该输入信号允许控制器逻辑确定它不在安全模式中操作。
B.系统处于安全模式
如果系统处于安全模式,则控制器执行安全代码(操作210)。执行安全代码可以包括从安全代码存储区中检索安全代码。控制器可以物理地经由总线或通过安全网络从安全代码存储区中检索安全代码。执行安全代码还可以包括解释安全代码。基于安全代码中的指令,控制器可以执行一系列动作。例如,控制器可以基于安全代码中的指令擦除存储到特定设备的软件和/或存储器。
通过将安全跳线插入到主板中,主板被配置为传送安全信号。安全信号被发送到引导选择机构、控制器和FPGA。
被发送到引导选择机构的安全信号影响引导选择逻辑。安全信号使安全代码存储区耦合到引导选择机构,并且不再被禁用。安全代码不再与控制器隔离。
另外,当插入安全跳线时,引导选择机构的硬件逻辑被配置为选择安全代码存储区作为控制器的引导设备。引导选择机构将系统配置为从安全代码存储区进行引导。虽然安全代码存储区和操作代码存储区两者都在安全模式中连接到引导选择机构,但是引导选择机构指示控制器从安全代码存储区进行引导。引导选择机构可以将引导选择信息传送到控制器。引导选择机构可以向控制器传送安全代码存储区处于片选零的通知。控制器被配置为始终从片选零进行引导。因此,当处于安全模式时,控制器从安全代码存储区进行引导。
系统还向控制器传送安全信号。控制器接收安全信号,作为不能被反向驱动的输入信号。沿着安全跳线和控制器之间的接口放置缓冲器防止控制器将信号发送回安全跳线。控制器不能修改安全信号。由于接收到安全信号,控制器逻辑知道它正在安全模式中操作。
此外,系统将FPGA禁用信号传送到FPGA。FPGA禁用信号防止FPGA的操作。FPGA禁用信号可以通过切断FPGA的供电或时钟来使FPGA被禁用。FPGA禁用信号可以通过将FPGA与其它器件隔离来使FPGA被禁用。当被禁用时,FPGA不能影响系统的任何设备的状态。FPGA不能对恢复可信固件状态的处理造成任何干扰。
在安全模式中,控制器擦除一个或多个代码集(操作212)。控制器向不可信的所有设备传送指令,以擦除存储在其中的代码和/或存储器。控制器使所有可编程存储器被擦除,其可以包括存储到外围服务处理器、NAND闪存、非易失性存储装置或FPGA的代码集。控制器可以擦除诸如操作系统和/或BIOS代码集的代码集。
接下来,控制器用由安全代码引用的操作代码的替换版本来覆盖操作代码的当前版本(操作214)。安全代码可以包括用已经在安全代码存储区中保持分离的原始操作代码集的版本来替换操作代码集的指令。替代地,操作代码集可以用原始操作代码集的一部分替换。操作代码集可以用引导加载程序替换。可以在不需要任何其它固件的情况下执行上述步骤。一旦操作完成,整个系统就被清理并恢复到可信固件状态。
例如,用户使用在适当位置的安全跳线使系统上电。系统处于安全模式。在安全模式中,FPGA禁用信号被发送到FPGA,从而禁用FPGA、CPU和外围电源控件。
系统还向引导选择机构传送安全信号,使其禁用安全代码存储区的隔离。安全信号影响引导选择机构中的引导选择逻辑。在安全模式中,安全代码存储区成为控制器的引导设备。
系统还向控制器传送安全信号。控制器接收安全信号,作为不能被反向驱动的输入信号。由于接收到安全信号,控制器逻辑知道它正在安全模式中操作。
安全代码存储区包含指示控制器擦除非易失性存储装置、FPGA和操作代码存储区上的代码集的代码。安全代码存储区还包含指示系统用操作代码的干净版本替换操作代码存储区中的代码的代码。在操作一段时间之后,操作代码存储区中的操作代码可能已被更改,并且可能已被破坏。控制器响应于来自安全代码的指令,擦除并替换代码。
此时,操作代码存储区包含干净代码,但是非易失性存储装置和FPGA上的代码尚未被替换。要替换这些设备上的代码,用户将系统重新配置为正常操作模式。操作员物理地移除安全跳线。安全跳线的移除重新配置主板上的连接。
已将引导选择硬件逻辑重新配置为隔离安全代码存储区。系统将信号传送到控制器和引导选择机构,使得控制器从操作代码存储区中的操作代码进行引导。系统将FPGA使能信号传送到FPGA。响应于接收到FPGA使能信号,FPGA被启用。
现在,操作代码存储区连接到控制器,并且安全代码存储区未连接到控制器。控制器从操作代码存储区中的操作代码进行引导。安全代码存储区与系统隔离并且不会受到破坏。
5.将服务器恢复到可信固件状态
作为示例,系统执行将服务器恢复到可信固件状态的操作。首先,操作员使系统断电并插入安全跳线。操作员接通电源,使BMC进行引导。
BMC识别出BMC处于安全模式,并从安全代码存储区进行引导。BMC禁用所有外部接口的输入,并禁用系统的一个或多个设备。BMC可以禁用所有非可信设备和/或对于执行安全代码不必要的所有设备。BMC可以擦除它可以访问的所有非易失性存储装置,包括操作代码存储区、主板FPGA、非易失性存储器(例如,NAND)、以及任何其它可写存储区。BMC使用安全代码存储区的内容重建操作代码存储区。
在这个处理期间,BMC显示其状况。在安全模式中,系统不会一直引导到操作系统。BMC通过闪烁LED发信号通知,直到完成安全模式中的所有步骤为止。一旦已完成安全模式中的步骤,BMC就通过更改LED并在串行控制台上显示消息来发信号通知服务器已被恢复到可信状态。
操作员关闭电源,并且移除跳线。当系统在没有跳线就位的情况下上电时,系统发送使能信号而不是禁用信号。使能信号的传送使引导选择机构隔离并保护安全代码存储区,并将操作代码存储区配置为引导设备。
BMC从操作代码存储区中的新的可信代码进行引导。BMC加载崭新的固件映像。崭新的固件映像可以从任何可信来源加载,诸如通过DVD或经由网络连接从web服务器加载。BMC重新安装所有剩余固件(诸如BIOS、FPGA和非易失性存储器)的已知良好副本。这可以通过正常的固件更新过程来完成。系统返回操作状态,并且可以从新恢复的信任根进行操作。
6.远程重新配置
在实施例中,系统可以远程地被配置为安全模式和从安全模式进行配置。不需要用跳线来断言安全信号。在这种情况下,使用系统中的可信实体来断言安全信号,这允许系统的远程管理。
为防止未经授权的远程重新配置,系统包括可信实体。可信实体可以是例如具有其自己的私有接口的附加卡。可信卡与系统的其余部分隔离,并且仍然仅受可信用户或设备的控制。可信卡可以在简单的微控制器上运行,以易于核实它是否处于可信状态。可信实体独立于系统的安全模型来操纵系统中的信号。例如,可信实体可以操纵安全信号,或者可信实体可以操纵对系统的供电。
可信实体连接到系统逻辑,代替安全跳线。可信实体可以从外部来源接收指令。然后,可信实体可以控制安全信号的传输,如上所述。
在实施例中,可信实体经由可信远程连接通信地耦合到远程接口。可信远程连接对连接到系统的任何其它接口是私有的。可信远程连接可以是串行接口,和/或仅连接到私有网络的网络连接。通过使用远程接口,授权用户可以将硬件配置更改为安全模式或从安全模式更改硬件配置。
7.其它事项;扩展
实施例针对具有一个或多个设备的系统,该一个或多个设备包括硬件处理器并且被配置为执行本文描述的和/或以下权利要求中的任何权利要求所述的操作中的任何操作。
在实施例中,非瞬态计算机可读存储介质包括指令,这些指令当由一个或多个硬件处理器执行时,使得本文描述的和/或权利要求中的任何权利要求所述的操作中的任何操作被执行。
根据一个或多个实施例,可以使用本文描述的特征和功能的任何组合。在前述说明书中,已经参考许多具体细节描述了实施例,这些具体细节可能因实施方案而不同。因此,应当在说明性而不是限制性的意义上看待说明书和附图。本发明范围的唯一且排他的指示以及申请人意在要作为本发明范围的是以由本申请产生的一组权利要求的具体形式的所产生权利要求的字面和等同范围,包括任何后续的校正。
8.硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备来实现。专用计算设备可以是硬连线的以执行该技术,或者可以包括被持久性地编程以执行该技术的诸如一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)或网络处理单元(NPU)之类的数字电子设备,或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行该技术的一个或多个通用硬件处理器。这些专用计算设备还可以将自定义的硬连线逻辑、ASIC、FPGA或NPU与自定义的编程组合来实现该技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或结合硬连线逻辑和/或程序逻辑来实现该技术的任何其它设备。
例如,图3是图示可以在其上实现本发明的实施例的计算机系统300的框图。计算机系统300包括总线302或用于传送信息的其它通信机构,以及与总线302耦合用于处理信息的硬件处理器304。硬件处理器304可以是例如通用微处理器。计算机系统300还包括耦合到总线302用于存储信息和要由处理器304执行的指令的主存储器306,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器306还可以用于在要由处理器304执行的指令执行期间存储临时变量或其它中间信息。这些指令当被存储在处理器304可访问的非瞬态存储介质中时,使计算机系统300成为被定制以执行指令中指定的操作的专用机器。
计算机系统300还包括耦合到总线302用于为处理器304存储静态信息和指令的只读存储器(ROM)308或的其它静态存储设备。提供了诸如磁盘或光盘之类的存储设备310,并且存储设备310被耦合到总线302以用于存储信息和指令。
计算机系统300可以经由总线302耦合到诸如阴极射线管(CRT)之类的显示器312,以用于向计算机用户显示信息。包括字母数字键和其它键的输入设备314被耦合到总线302,用于将信息和命令选择传送到处理器304。另一种类型的用户输入设备是光标控件316,诸如鼠标、轨迹球、或光标方向键,以用于向处理器304传送方向信息和命令选择以及用于控制光标在显示器312上的移动。这种输入设备通常具有允许设备在平面中指定位置的在两个轴(第一轴(例如,x)和第二轴(例如,y))上的两个自由度。
计算机系统300可以使用与计算机系统结合使计算机系统300成为专用机器或将计算机系统300编程为专用机器的自定义的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文描述的技术。根据一个实施例,本文的技术由计算机系统300响应于处理器304执行主存储器306中包含的一条或多条指令的一个或多个序列而执行。这些指令可以从另一个存储介质(诸如存储设备310)读取到主存储器306中。包含在主存储器306中的指令序列的执行使处理器304执行本文描述的处理步骤。在替代实施例中,可以使用硬连线电路系统代替软件指令使用或与软件指令组合使用。
如本文所使用的术语“存储介质”是指存储使机器以特定方式操作的指令和/或数据的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备310。易失性介质包括动态存储器,诸如主存储器306。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔模式的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带、内容可寻址存储器(CAM)和三态内容可寻址存储器(TCAM)。
存储介质与传输介质不同但是可以与传输介质结合使用。传输介质参与在存储介质之间参与传输信息。例如,传输介质包括同轴线缆、铜线和光纤,包括包含总线302的引线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外线数据通信期间生成的声波或光波。
将一条或多条指令的一个或多个序列携带(carry)到处理器304以供执行可以涉及各种形式的介质。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并且使用调制解调器经电话线发送指令。计算机系统300本地的调制解调器可以接收电话线上的数据,并且使用红外线发射器将数据转换为红外线信号。红外线检测器可以接收在红外线信号中携带的数据,并且适当的电路系统可以将数据放在总线302上。总线302将数据携带到主存储器306,处理器304从主存储器306检索并执行指令。由主存储器306接收到的指令可以可选地在由处理器304执行之前或执行之后存储在存储设备310上。
计算机系统300还包括耦合到总线302的通信接口318。通信接口318提供耦合到网络链路320的双向数据通信,其中网络链路320连接到本地网络322。例如,通信接口318可以是综合业务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器、或提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口318可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。还可以实现无线链路。在任何这种实现中,通信接口318都发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
网络链路320通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路320可以提供通过本地网络322到主机计算机324或到由互联网服务提供商(ISP)326操作的数据设备的连接。ISP 326进而通过现在通常称为“互联网”328的全球分组数据通信网络提供数据通信服务。本地网络322和互联网328两者都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路320上并且通过通信接口318的信号是传输介质的示例形式,其中这些信号将数字数据携带到计算机系统300或者携带来自计算机系统300的数字数据。
计算机系统300可以通过(一个或多个)网络、网络链路320和通信接口318发送消息和接收数据,包括程序代码。在互联网示例中,服务器330可以通过互联网328、ISP 326、本地网络322和通信接口318传送应用程序的请求代码。
接收到的代码可以在其被接收时由处理器304执行,和/或被存储在存储设备310或其它非易失性存储装置中以供以后执行。
在前述说明书中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可能因实施方案而不同。因此,应当在说明性而不是限制性的意义上看待说明书和附图。本发明范围的唯一且排他的指示以及申请人意在要作为本发明范围的是以由本申请产生的一组权利要求的具体形式的所产生权利要求的字面和等同范围,包括任何后续的校正。
Claims (12)
1.一种系统,包括:
安全代码存储区,包括不引用任何其它能够修改的代码的自包含的安全代码集;
操作代码存储区,包括操作代码集;
控制器,包括在系统启动时最初执行以下功能中的一个:
(a)当所述系统被配置有第一硬件配置时的安全代码集,其中安全代码集的执行包括用由安全代码引用的操作代码的替换版本覆盖存储在操作代码存储区中的操作代码的当前版本;以及
(b)当所述系统被配置有第二硬件配置时的操作代码集,其中当所述系统被配置有第二硬件配置时,安全代码存储区与所述系统的一个或多个其它组件电隔离,其中当所述系统被配置有第二硬件配置时,安全代码集不能被访问。
2.如权利要求1所述的系统,其中安全代码集的执行还包括擦除与以下中的一个或多个对应的代码集:
操作系统;
BIOS代码集;
应用;
NAND闪存;
非易失性存储装置;以及
可编程逻辑设备。
3.如权利要求1所述的系统,其中由安全代码集引用的操作代码的替换版本被存储在安全代码存储区内。
4.如权利要求1所述的系统,其中由安全代码集引用的操作代码的替换版本被存储在安全代码存储区的外部。
5.如权利要求1所述的系统,其中在没有对所述系统进行物理操纵的情况下,不能实现第一硬件配置和第二硬件配置之间的改变。
6.如权利要求5所述的系统,其中所述系统的物理操纵包括:(a)添加跳线以连接包括在所述系统中的主板上的两个引脚,或者(b)移除跳线以使包括在所述系统中的主板上的两个引脚断开连接。
7.如权利要求1所述的系统,其中第一硬件配置和第二硬件配置之间的改变能够经由包括在所述系统中的可信实体对所述系统进行远程操纵来实现。
8.如权利要求1所述的系统,其中不能通过执行任何代码来实现从第二硬件配置到第一硬件配置的改变。
9.如权利要求1所述的系统,其中第一硬件配置禁用对于执行安全代码不必要的一个或多个设备。
10.如权利要求1所述的系统,其中第一硬件配置禁用包括干扰由安全代码启用的所述系统的安全恢复的功能的一个或多个设备。
11.一种方法,包括:
如权利要求1-10中任一项所述的操作;其中所述方法由包括硬件处理器的至少一个设备执行。
12.一种包括指令的非瞬态计算机可读介质,所述指令在由一个或多个硬件处理器执行时,使得执行如权利要求1-10中任一项所述的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/466,514 US10997296B2 (en) | 2017-03-22 | 2017-03-22 | System and method for restoration of a trusted system firmware state |
US15/466,514 | 2017-03-22 | ||
PCT/US2017/063915 WO2018174969A1 (en) | 2017-03-22 | 2017-11-30 | System and method for restoration of a trusted system firmware state |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110494855A true CN110494855A (zh) | 2019-11-22 |
CN110494855B CN110494855B (zh) | 2023-09-26 |
Family
ID=60766163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780088689.XA Active CN110494855B (zh) | 2017-03-22 | 2017-11-30 | 用于恢复可信系统固件状态的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10997296B2 (zh) |
EP (1) | EP3602374B1 (zh) |
JP (1) | JP7200122B2 (zh) |
CN (1) | CN110494855B (zh) |
WO (1) | WO2018174969A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023142523A1 (zh) * | 2022-01-26 | 2023-08-03 | 东芯半导体股份有限公司 | Nand存储器安全代码生成模块和生成方法、以及nand存储器 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997296B2 (en) | 2017-03-22 | 2021-05-04 | Oracle International Corporation | System and method for restoration of a trusted system firmware state |
BE1026835B1 (de) * | 2018-12-06 | 2020-07-07 | Phoenix Contact Gmbh & Co | Router mit Anmeldungsfunktionalität und hierfür geeignetes Zugriffskontrollverfahren |
US11829478B2 (en) * | 2019-01-08 | 2023-11-28 | Oracle International Corporation | Full server recovery architecture for cloud bare metal instances |
US11288372B2 (en) * | 2019-10-07 | 2022-03-29 | Microsoft Technology Licensing, Llc | Secure installation of baseboard management controller firmware via a physical interface |
US11222120B2 (en) * | 2019-11-19 | 2022-01-11 | Dell Products L.P. | Storage device firmware bootloader recovery system and method therefor |
US11314866B2 (en) | 2019-11-25 | 2022-04-26 | Dell Products L.P. | System and method for runtime firmware verification, recovery, and repair in an information handling system |
US11099838B1 (en) * | 2020-02-26 | 2021-08-24 | Quanta Computer Inc. | Method and system for recovery for custom integrated circuit |
CN115270100A (zh) * | 2021-04-29 | 2022-11-01 | 华为技术有限公司 | 一种安全保护方法、装置及系统 |
US11783040B2 (en) | 2021-07-09 | 2023-10-10 | Dell Products L.P. | Cryptographically verifying a firmware image with boot speed in an information handling system |
US11726879B2 (en) | 2021-07-12 | 2023-08-15 | Dell Products L.P. | Multiple block error correction in an information handling system |
US20230132176A1 (en) * | 2021-10-21 | 2023-04-27 | Dell Products L.P. | Method and system for a secure management of storage devices using a key management service |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0524719A2 (en) * | 1991-05-29 | 1993-01-27 | Dell Usa L.P. | Computer system with alterable bootstrapping software |
US20020188887A1 (en) * | 2000-05-19 | 2002-12-12 | Self Repairing Computers, Inc. | Computer with switchable components |
US20080005580A1 (en) * | 1999-10-19 | 2008-01-03 | Ming-Shiang Shen | Electronic data storage medium with fingerprint verification capability |
WO2008083350A1 (en) * | 2007-01-05 | 2008-07-10 | Microsoft Corporation | Hardware diagnostics and software recovery on headless server appliances |
US20090144472A1 (en) * | 2007-11-29 | 2009-06-04 | Wallace Paul Montgomery | Method and apparatus for making a processor sideband interface adhere to secure mode restrictions |
US20100192130A1 (en) * | 2009-01-29 | 2010-07-29 | Microsoft Corporation | Automated verification of a type-safe operating system |
US20110029820A1 (en) * | 2009-07-31 | 2011-02-03 | Google Inc. | Native code module security for 64-bit instruction set architectures |
US20130047031A1 (en) * | 2011-08-16 | 2013-02-21 | Google Inc. | Secure recovery apparatus and method |
US20150186150A1 (en) * | 2013-12-31 | 2015-07-02 | International Business Machines Corporation | Baseboard management controller and method of loading firmware |
CN105122261A (zh) * | 2013-04-23 | 2015-12-02 | 惠普发展公司,有限责任合伙企业 | 从遭到破坏的系统启动代码中恢复 |
CN105308612A (zh) * | 2013-03-11 | 2016-02-03 | 微软技术许可有限责任公司 | 用于安全代码启动的动态加载测量环境 |
CN106507698A (zh) * | 2014-06-27 | 2017-03-15 | 谷歌公司 | 通过使用高级综合来实施高效熵解码器的方法 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09330272A (ja) * | 1996-06-12 | 1997-12-22 | Hitachi Ltd | Bios制御方式 |
SE515327C2 (sv) * | 1999-08-27 | 2001-07-16 | Ericsson Telefon Ab L M | Anordning för att utföra säkra transaktioner i en kommunikationsanordning |
US7930531B2 (en) * | 2000-01-06 | 2011-04-19 | Super Talent Electronics, Inc. | Multi-partition USB device that re-boots a PC to an alternate operating system for virus recovery |
US6757838B1 (en) * | 2000-10-13 | 2004-06-29 | Hewlett-Packard Development Company, L.P. | Hardware independent implementation of computer system BIOS recovery |
US7149854B2 (en) * | 2001-05-10 | 2006-12-12 | Advanced Micro Devices, Inc. | External locking mechanism for personal computer memory locations |
TW548574B (en) * | 2001-10-19 | 2003-08-21 | Micro Star Int Co Ltd | Display interface with dual basic input/output system and the computer having the same |
US7536598B2 (en) * | 2001-11-19 | 2009-05-19 | Vir2Us, Inc. | Computer system capable of supporting a plurality of independent computing environments |
KR20040065495A (ko) | 2003-01-14 | 2004-07-22 | 삼성전자주식회사 | 마이콤을 갖는 전자기기 및 그 펌웨어 갱신 방법 |
US20040268116A1 (en) * | 2003-06-30 | 2004-12-30 | Vasisht Virender K | Fault tolerant recovery block with reduced flash footprint |
JP2006081246A (ja) | 2004-09-07 | 2006-03-23 | Yaskawa Electric Corp | シリアル通信指令方式サーボアンプ装置 |
US20070157015A1 (en) * | 2005-12-29 | 2007-07-05 | Swanson Robert C | Methods and apparatus to optimize boot speed |
US8522309B2 (en) | 2007-01-22 | 2013-08-27 | Simon Yoffe | Security switch |
US8924708B2 (en) | 2007-01-22 | 2014-12-30 | Simon Yoffe | Security switch |
US7861021B2 (en) * | 2008-01-24 | 2010-12-28 | International Business Machines Corporation | Device receiving unit that performs a determination based on data exchange which interfacing device takes precedence when a plurality of interfacing devices are simultaneously connected |
JP5127511B2 (ja) | 2008-03-04 | 2013-01-23 | キヤノン株式会社 | 光学装置 |
TWI414996B (zh) * | 2008-04-14 | 2013-11-11 | Asustek Comp Inc | 電腦系統 |
US8495349B2 (en) * | 2008-10-09 | 2013-07-23 | International Business Machines Corporation | Generating a primary BIOS code memory address and a recovery BIOS code memory address, where the recovery BIOS service code is loaded when the primary BIOS code fails to execute |
CN102419719A (zh) * | 2010-09-27 | 2012-04-18 | 鸿富锦精密工业(深圳)有限公司 | 电脑系统及电脑系统的开机方法 |
CN102446103A (zh) * | 2010-10-08 | 2012-05-09 | 鸿富锦精密工业(深圳)有限公司 | Bios刷新装置及利用其进行bios数据刷新的方法 |
CN102455945A (zh) | 2010-10-27 | 2012-05-16 | 鸿富锦精密工业(深圳)有限公司 | 基板管理控制器恢复系统及其使用方法 |
CN102455950A (zh) * | 2010-10-28 | 2012-05-16 | 鸿富锦精密工业(深圳)有限公司 | 基板管理控制器的韧体恢复系统及方法 |
US8843769B2 (en) * | 2011-04-18 | 2014-09-23 | Texas Instruments Incorporated | Microcontroller with embedded secure feature |
US8863109B2 (en) * | 2011-07-28 | 2014-10-14 | International Business Machines Corporation | Updating secure pre-boot firmware in a computing system in real-time |
TWI537735B (zh) * | 2011-12-16 | 2016-06-11 | 祥碩科技股份有限公司 | 電子裝置及其基本輸入輸出系統的更新裝置 |
WO2013102521A1 (en) * | 2012-01-03 | 2013-07-11 | International Business Machines Corporation | Method for secure self-booting of an electronic device |
CN103246583A (zh) | 2012-02-09 | 2013-08-14 | 鸿富锦精密工业(深圳)有限公司 | 具有bmc固件修复功能的电子装置及修复方法 |
US20150052616A1 (en) * | 2013-08-14 | 2015-02-19 | L-3 Communications Corporation | Protected mode for securing computing devices |
US9779241B2 (en) * | 2013-09-25 | 2017-10-03 | Cisco Technology, Inc. | Synchronization of UEFI secure boot variables on a managed server |
US9135029B2 (en) * | 2014-01-02 | 2015-09-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Securely reconfiguring a multi-node system to prevent firmware rollback |
KR101931455B1 (ko) * | 2014-07-11 | 2018-12-20 | 피씨엠에스 홀딩스, 인크. | 가상화에 근거한 보안 디바이스를 위한 시스템 및 방법 |
US20160306623A1 (en) | 2015-04-16 | 2016-10-20 | Aic Inc. | Control module of node and firmware updating method for the control module |
US9921915B2 (en) * | 2015-10-16 | 2018-03-20 | Quanta Computer Inc. | Baseboard management controller recovery |
US10055296B2 (en) * | 2015-10-30 | 2018-08-21 | Quanta Computer Inc. | System and method for selective BIOS restoration |
US9930051B1 (en) * | 2015-11-06 | 2018-03-27 | Amazon Technologies, Inc. | Remote management of hardware hosts in cloud infrastructure |
US10133637B2 (en) * | 2016-08-04 | 2018-11-20 | Dell Products L.P. | Systems and methods for secure recovery of host system code |
US20180091315A1 (en) * | 2016-09-27 | 2018-03-29 | Qualcomm Incorporated | Revocation and updating of compromised root of trust (rot) |
US10534618B2 (en) * | 2016-09-27 | 2020-01-14 | American Megatrends International, Llc | Auto bootloader recovery in BMC |
US10740468B2 (en) * | 2016-09-30 | 2020-08-11 | Hewlett Packard Enterprise Development Lp | Multiple roots of trust to verify integrity |
US20180097839A1 (en) * | 2016-10-01 | 2018-04-05 | Neeraj S. Upasani | Systems, apparatuses, and methods for platform security |
US10691803B2 (en) * | 2016-12-13 | 2020-06-23 | Amazon Technologies, Inc. | Secure execution environment on a server |
US10997296B2 (en) | 2017-03-22 | 2021-05-04 | Oracle International Corporation | System and method for restoration of a trusted system firmware state |
US10372460B2 (en) * | 2017-03-28 | 2019-08-06 | Dell Products, Lp | System and method for baseboard management controller assisted dynamic early host video on systems with a security co-processor |
-
2017
- 2017-03-22 US US15/466,514 patent/US10997296B2/en active Active
- 2017-11-30 WO PCT/US2017/063915 patent/WO2018174969A1/en unknown
- 2017-11-30 JP JP2019552048A patent/JP7200122B2/ja active Active
- 2017-11-30 CN CN201780088689.XA patent/CN110494855B/zh active Active
- 2017-11-30 EP EP17817979.2A patent/EP3602374B1/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0524719A2 (en) * | 1991-05-29 | 1993-01-27 | Dell Usa L.P. | Computer system with alterable bootstrapping software |
US20080005580A1 (en) * | 1999-10-19 | 2008-01-03 | Ming-Shiang Shen | Electronic data storage medium with fingerprint verification capability |
US20020188887A1 (en) * | 2000-05-19 | 2002-12-12 | Self Repairing Computers, Inc. | Computer with switchable components |
WO2008083350A1 (en) * | 2007-01-05 | 2008-07-10 | Microsoft Corporation | Hardware diagnostics and software recovery on headless server appliances |
US20090144472A1 (en) * | 2007-11-29 | 2009-06-04 | Wallace Paul Montgomery | Method and apparatus for making a processor sideband interface adhere to secure mode restrictions |
US20100192130A1 (en) * | 2009-01-29 | 2010-07-29 | Microsoft Corporation | Automated verification of a type-safe operating system |
US20110029820A1 (en) * | 2009-07-31 | 2011-02-03 | Google Inc. | Native code module security for 64-bit instruction set architectures |
US20130047031A1 (en) * | 2011-08-16 | 2013-02-21 | Google Inc. | Secure recovery apparatus and method |
CN103858107A (zh) * | 2011-08-16 | 2014-06-11 | 谷歌公司 | 安全恢复装置和方法 |
CN105308612A (zh) * | 2013-03-11 | 2016-02-03 | 微软技术许可有限责任公司 | 用于安全代码启动的动态加载测量环境 |
CN105122261A (zh) * | 2013-04-23 | 2015-12-02 | 惠普发展公司,有限责任合伙企业 | 从遭到破坏的系统启动代码中恢复 |
US20150186150A1 (en) * | 2013-12-31 | 2015-07-02 | International Business Machines Corporation | Baseboard management controller and method of loading firmware |
CN106507698A (zh) * | 2014-06-27 | 2017-03-15 | 谷歌公司 | 通过使用高级综合来实施高效熵解码器的方法 |
Non-Patent Citations (4)
Title |
---|
CHEN WEN-ZHI等: "Cerberus: A Novel Hypervisor to Provide Trusted and Isolated Code Execution", 《网页在线公开:HTTPS://IEEEXPLORE.IEEE.ORG/STAMP/STAMP.JSP?TP=&ARNUMBER=5572301》 * |
CHEN WEN-ZHI等: "Cerberus: A Novel Hypervisor to Provide Trusted and Isolated Code Execution", 《网页在线公开:HTTPS://IEEEXPLORE.IEEE.ORG/STAMP/STAMP.JSP?TP=&ARNUMBER=5572301》, 16 September 2010 (2010-09-16), pages 1 - 4 * |
杨波等: "基于TrustZone的可信移动终端云服务安全接入方案", 《软件学报》 * |
杨波等: "基于TrustZone的可信移动终端云服务安全接入方案", 《软件学报》, 19 August 2016 (2016-08-19), pages 1366 - 1383 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023142523A1 (zh) * | 2022-01-26 | 2023-08-03 | 东芯半导体股份有限公司 | Nand存储器安全代码生成模块和生成方法、以及nand存储器 |
Also Published As
Publication number | Publication date |
---|---|
JP2020511727A (ja) | 2020-04-16 |
WO2018174969A1 (en) | 2018-09-27 |
US10997296B2 (en) | 2021-05-04 |
EP3602374A1 (en) | 2020-02-05 |
EP3602374B1 (en) | 2022-06-22 |
US20180276385A1 (en) | 2018-09-27 |
CN110494855B (zh) | 2023-09-26 |
JP7200122B2 (ja) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110494855A (zh) | 用于恢复可信系统固件状态的系统和方法 | |
EP3494471B1 (en) | Systems and methods for secure recovery of host system code | |
CN105122258B (zh) | 对系统进行配置的方法、计算系统以及物品 | |
US8832369B2 (en) | Systems and methods for remote raid configuration in an embedded environment | |
CN1954297A (zh) | 在具有病毒、间谍软件以及黑客防护特征的虚拟处理空间中的隔离复用多维处理 | |
CN106575244A (zh) | 确保云应用的高可用性的修补过程 | |
CN111694760A (zh) | 服务器系统、快闪存储器模块及更新固件映像文件的方法 | |
EP3252991A1 (en) | Application specific low-power secure key | |
CN105991651A (zh) | 具有远程存储控制的网络接口设备 | |
WO2018026628A1 (en) | Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor | |
CN103329059A (zh) | 用于至少部分地选择至少一个存储器的电路 | |
JP7441896B2 (ja) | システム特徴をセキュアに分離するためのシステムおよび方法 | |
US20200257520A1 (en) | Updating firmware of a microcontroller | |
US10656991B2 (en) | Electronic component having redundant product data stored externally | |
CN114357434A (zh) | 基于虚拟机的操作系统授权方法、装置、系统及计算设备 | |
CN110597755B (zh) | 一种安全处理器的重组配置方法 | |
CN110659079B (zh) | 一种均衡式安全处理器 | |
CN110659073B (zh) | 一种仲裁式安全处理器 | |
CN110659507B (zh) | 一种安全处理器 | |
US11409883B1 (en) | Binding customer-signed image to a specific platform | |
CN101340426B (zh) | 一种整合数据传输接口的系统和方法 | |
CN110597754B (zh) | 一种主从式安全处理器 | |
US20210341980A1 (en) | Hot-inserted devices | |
CN116700764A (zh) | 固件升级方法、装置、硬件设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |