CN111052118B - 硬件实施的固件安全 - Google Patents
硬件实施的固件安全 Download PDFInfo
- Publication number
- CN111052118B CN111052118B CN201880056632.6A CN201880056632A CN111052118B CN 111052118 B CN111052118 B CN 111052118B CN 201880056632 A CN201880056632 A CN 201880056632A CN 111052118 B CN111052118 B CN 111052118B
- Authority
- CN
- China
- Prior art keywords
- firmware
- microcontroller
- motherboard
- peripheral card
- authentication
- 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
Links
- 230000002093 peripheral effect Effects 0.000 claims abstract description 96
- 230000004044 response Effects 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims description 82
- 238000000034 method Methods 0.000 claims description 45
- 238000011084 recovery Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 description 43
- 238000010586 diagram Methods 0.000 description 18
- 238000005259 measurement Methods 0.000 description 15
- 230000006854 communication Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Abstract
信任根硬件层次结构为母板和外围设备提供固件安全。在计算机系统处接收电力,并且响应于对电力的接收,对计算机系统的母板的备用电源轨通电,并且被安装在母板上的第一微控制器认证与被耦合到第一微控制器的基板管理控制器相关联的第一固件。如果第一固件的认证成功,则对基板管理控制器上电,将被耦合到第一微控制器的中央处理单元保持复位,并且对外围组件卡的备用电源轨通电。使用第一微控制器认证与中央处理单元相关联的第二固件,并且被安装在外围组件卡上的第二微控制器认证与被安装在外围组件卡上并且被耦合到第二微控制器的芯片相关联的第三固件。
Description
背景技术
计算机硬件平台通常包括几个组件,这些组件执行专用固件以提供其初始化和低级运行时控制。这些组件可以不仅包括一个或多个中央处理单元(CPU),而且还包括被安装在母板和/或附接的外围卡上的外围组件。
固件安全对于维持计算机硬件平台的完整性是必不可少的。固件攻击媒介包括主机/驱动程序访问、网络访问、上电和复位、引导和预引导、以及虚拟机访问。通过允许第三方应用和操作系统提供裸机以及允许访客虚拟机物理访问各种硬件资源(例如,GPU、FPGA、SSD),现代数据中心内的服务器平台为固件攻击提供了附加表面。
安全引导是一种用于标识平台制造商是否信任平台引导固件的系统。在平台上电时,并且在引导固件的执行之前,启用安全引导的CPU检查与引导固件相关联的一个或多个签名。如果所有签名均有效,则平台通过以标准方式执行固件来引导。如果任何签名无效,则引导过程将直接终止。相应地,安全引导对固件攻击或损坏既不提供保护也不提供恢复。安全引导也无法为外围组件提供任何固件安全。
期望系统能够有效地从在引导过程中检测到的固件损坏或攻击中恢复。还期望固件安全系统在运行期间提供保护、检测和恢复。这种安全性优选地扩展到母板CPU和固件执行外围组件。
附图说明
图1是根据一些实施例的硬件架构的框图。
图2是根据一些实施例的用于引导平台和外围组件的过程的流程图。
图3是根据一些实施例的硬件架构的框图。
图4是根据一些实施例的用于引导平台和外围组件的过程的流程图。
图5是根据一些实施例的用于认证固件映像的过程的流程图。
图6是用于示出根据一些实施例的固件映像的认证的框图。
图7是根据一些实施例的用于执行证明质询的过程的流程图。
图8是根据一些实施例的硬件架构的框图。
图9是根据一些实施例的控制器架构的框图。
图10是根据一些实施例的固件存储区域的框图。
图11是根据一些实施例的服务器硬件架构的框图。
图12是根据一些实施例的数据中心架构的框图。
具体实施方式
提供以下描述以使得本领域任何技术人员能够制造和使用所描述的实施例。然而,各种修改对于本领域技术人员将是很清楚的。
通常,一些实施例为整个计算平台提供了基于硬件的信任根(RoT)层次结构。每个RoT可以包括微控制器单元(MCU),该MCU设置在受保护的处理设备(例如,CPU、片上系统(SOC)、MCU、微处理器、GPU、FPGA等)与其固件负载存储之间并且负责管理负载存储中的固件的完整性。每个RoT可以在引导过程中对其相关联的固件组件实施非对称密钥签名认证。RoT可以存储已知良好固件版本并且在认证失败的情况下提供到已知良好固件版本的恢复。RoT还可以根据区域保护策略来在运行时实施安全的闪存读取和写入访问。
在平台上电期间,主RoT可以协调电力到主机CPU、芯片组、基板管理控制器和外围设备的输送,以确保在固件执行之前对所有固件的验证。上电序列可以包括在其所保护的设备本地的主RoT与从RoT之间交换的证明质询。证明质询可以向平台通知上电序列,也可以促进安全的固件更新。
图1是根据一些实施例的计算系统10的硬件架构的框图。计算系统10包括母板100和附加卡150。计算系统10可以表示已知的或变为已知的任何类型的计算平台或形状因子,包括但不限于机架服务器、服务器塔、台式计算机、便携式计算机、平板计算机、智能手机、可穿戴设备等。
CPU 110、RoT 120和存储器130被安装到母板100。根据一些实施例,母板100电连接CPU 110、RoT 120和存储器130以提供它们之间的通信,如本文中描述的。母板100还向CPU 110、RoT 120和存储器130提供电力以进行如本文中描述的操作。如本领域已知的,母板100可以支撑其他分立组件和集成电路设备。如本领域已知的,母板100和被安装在其上的组件也由电源和冷却组件支撑。
CPU 110可以包括能够执行固件的任何类型的CPU和/或其他处理设备(例如,片上系统(SOC)、MCU、微处理器)。RoT 120可以包括能够执行本文中归因于其的功能的MCU或任何其他逻辑器件。根据一些实施例,RoT 120包括高级RISC机器(ARM)控制器。下面将关于图9描述根据一些实施例的RoT 120的一般架构。
存储器130可以包括用于存储用于由CPU 110执行的固件的一个或多个闪存设备。CPU 110可以被配置为与存储器130通信以取回被存储在其中的固件。例如,CPU 110可以被配置为通过串行外围接口(SPI、eSPI、QSPI)的标准变体来请求和取回固件。
根据一些实施例,RoT 120向CPU 110呈现eSPI/QSPI闪存接口。因此,RoT 120可以拦截来自CPU 110的固件请求并且调解固件到CPU 110的提供,如本文中描述的。这样的操作对于CPU 110可以是透明的,CPU 110可以以常规方式操作以在预引导和引导时请求、取回和执行固件。
RoT 120能够控制CPU 110对存储器130的所有读取和写入。该能力允许RoT 120在运行时期间实施经过认证的写入和基于策略的存储区域访问,如下所述。此外,存储器130不限于闪存,而是限于与RoT 120具有公共通信接口的任何存储设备。
外围组件卡150经由互连140被电耦合到母板100。根据本说明书的外围组件可以包括附加卡和外围设备,其包含执行软逻辑的处理器、微控制器或设备。互连140可以包括外围组件互连或外围组件互连快速连接器,但是实施例不限于此。
外围组件卡150包括SoC 160、RoT 170和存储器180。母板100为外围组件卡150(并且因此为其安装的组件)提供电力以进行如本文中描述的操作。外围组件卡150可以支持本领域已知的其他分立组件和集成电路设备,包括例如其他连接器和冷却组件。
SoC 160可以包括将微控制器(或微处理器)与高级外围设备集成在一起的集成电路。RoT 170可以包括能够执行本文中归因于其的功能的MCU或任何其他逻辑器件。存储器180可以包括用于存储用于由SoC 160执行的固件的一个或多个闪存设备。如上面关于母板100的组件所述,RoT 170可以向SoC 160呈现eSPI/SPI/QSPI闪存接口,拦截固件请求,并且调解固件到SoC 160的提供。该操作对于SoC 160可以是透明的。
RoT 170还能够控制SoC 160对存储器180的所有读取和写入。因此,RoT 170可以在运行时期间实施经过认证的写入和基于策略的存储区域访问,如上面关于RoT 120所述。存储器180可以包括具有与RoT 170的公共通信接口的任何存储设备。
根据一些实施例,RoT 170从RoT 120接收证明质询,并且作为响应,尝试认证存储在存储器180中的固件。如果认证不成功,则不允许SoC 160引导。SoC 160的引导可以通过控制卡150的电源轨来控制,如将在本文中描述的。
实施例可以包括在母板100上的一个以上的CPU、以及在母板100上的由RoT 120保护的一个或多个其他设备。附加地或备选地,实施例可以包括一个或多个其他外围组件卡,其中的一个或多个其他外围组件卡包括如本文中描述地进行操作的RoT设备。
图2是根据一些实施例的过程200的流程图。通常,执行过程200以在包括固件执行外围组件的计算平台中实施固件安全。
最初,在S210处,向计算平台施加电力。S210可以包括将主电源切换到“打开”位置。在S210之前,计算平台可以正在接收备用电力和/或电池电力(例如,以对实时时钟供电)。
在常规计算系统中,当首次将电压施加到计算平台时,电力通过浪涌电路系统传递到复杂可编程逻辑器件(CPLD)。当CPLD确保以时间敏感顺序对平台的电源轨(例如,3.3V、+5V、+12V)通电时,CPU关闭。该顺序可以确保在对次高电压电源轨通电之前,较低电压电源轨稳定。随着上电序列朝向最后阶段进行,CPU和其他上电组件被保持复位。一旦最高电压电源轨稳定,就会断言电源良好信号,这引起CPU退出复位并且开始引导。此时所有其他活动设备也引导,包括位于母板或外围组件卡上的SoC/MCU。
继续常规布置,CPU通过执行其内部只读存储器(ROM)代码来引导。ROM代码的执行引起CPU从外部存储器(例如,被安装到母板的闪存)获取引导固件并且执行固件。如上所述,CPU可以实现安全引导系统以在执行之前验证引导固件。如果无法验证固件,则引导过程失败。
返回到过程200,并且根据一些实施例,最初在S220处仅对母板RoT供电。为了本描述的目的,位于母板上并且与CPU相关联的RoT将被称为主RoT,而与外围组件相关联的RoT将被称为从RoT。如将在下面描述的,某些分层架构可以包括用作主机和从机的RoT。
将结合图1的系统10描述过程200,但是过程200的实现不限于此。因此,主RoT 120最初在S220处被上电。作为响应,主RoT 120安全地加载和解压缩其内部固件,而所有其他活动设备保持待机或关闭。
接下来,在S230处认证CPU固件。CPU 110的固件存储在存储器130中。下面将描述用于执行该认证的系统。
在认证CPU固件之后,在S240处,对所有母板电源轨通电并且将CPU保持复位。在S230和S240之后(或期间),RoT 120在S250处对到外围组件互连140的备用电力进行排序。备用电力(例如,卡150的通电的+3.3V轨)引起从RoT 170在S260处上电并且认证存储在存储器180中的SoC 160的固件。从RoT 170驻留在外围组件卡150的+3.3v轨上,从而在上电和热插拔情况下在SoC 160之前启用对RoT 170的供电。如关于过程200描述的电源轨的排序可以由CPLD与母板RoT协作来控制。
在S270处,RoT 120确定SoC 160的固件是否已经被认证。S270可以包括等待从RoT170接收认证测量。认证测量可以包括对由主RoT 120发出的证明质询的响应,并且可以指示存储器180的固件已经被认证。该测量可以包括将在下面描述的附加信息。RoT 120与RoT170之间的质询/测量的传送在图1中由虚线表示。该传送可以通过I2C接口进行,该I2C接口通常存在于母板与PCI设备之间以用于监测附加卡的温度。
如果确定外围固件的完整性已经被验证,则流程从S270继续进行到S280。在S280处,对外围组件卡的所有电源轨通电,从而允许SoC 160引导存储器180的固件。还允许CPU110引导存储器130的经过验证的固件,例如通过取消断言复位信号。
在S270处可以确定外围固件尚未被认证,因为没有从RoT 170接收到认证测量。备选地,可以接收到认证测量,但是认证测量可以指示固件无法被认证。在这两种情况下,都允许CPU 110退出复位并且在S290处引导,但是不向外围组件卡施加全功率。在一些实施例中,并且基于平台策略,如果在S270处的确定是否定的,则SoC 160和CPU 110都不被允许在S290处引导。
在系统10包括一个以上的外围组件卡(诸如卡150)的情况下,在S250处对每个卡的备用电源导轨上电,并且在S260处每个卡上的RoT认证其相应固件。如果少于所有外围组件报告其固件已经被成功认证,则在一些实施例中,将向已经报告经过验证的固件的外围组件提供全功率,并且允许CPU退出复位并且引导。在其他实施例中,不允许外围组件或CPU引导。
过程200假定在S230处成功认证了CPU固件。根据一些实施例,如果认证不成功,则过程200终止。然而,如下所述,一些实施例在S230处的认证或S270处的一个或多个认证中的任何认证都不成功的情况下提供恢复。
图3是根据一些实施例的系统30的框图。系统30包括母板300、互连340和外围组件卡350。系统30与图1的系统10相同,除了包括基板管理控制器(BMC)315和存储器335。
如本领域已知的,BMC 315可以管理系统管理软件(未示出)与系统30的硬件之间的接口。BMC 315监测系统30的传感器,并且如果有任何测量表明系统30可能存在问题,则可以经由带外网络连接向系统管理员发送警报。系统管理员也可以经由带外连接与BMC315远程通信以采取纠正措施,诸如复位系统30或对系统30进行电力循环。相应地,根据一些实施例,系统30可以包括被管理的硬件服务器。
存储器335可以包括用于存储BMC 315的固件的闪存设备。RoT 320可以操作以验证BMC 315的固件的完整性并且门控BMC 315对存储器335的读取/写入访问。存储器335不限于闪存,而是可以包括具有与RoT 320共同的通信接口的任何存储设备。此外,由于CPU310和BMC 315都通过RoT 320访问其相应固件,因此存储器330和存储器335不需要在物理上分离,并且可以由一个(或多个)存储设备实现。
图4是根据一些实施例的过程400的流程图。可以执行过程400以在包括BMC和固件执行外围组件的计算平台中实施固件安全。相应地,将关于图3的系统30描述过程400,尽管过程400的实现不限于此。
如关于S210描述的,在S405处向平台施加电力。接下来,在S410处,主RoT 320上电并且安全地加载和解压缩存储在其ROM引导加载程序中的内部固件。同时,所有其他活动设备保持待机或关闭状态。ROM引导加载程序在S415处认证RoT 320的闪存。认证可以包括对照RSA非对称密钥签名的签名来验证固件完整性,如将在下面关于图5和6描述的。
如果RoT 320的固件认证失败,则引导过程在S420处终止。如果认证成功,则在S425处,RoT 320从存储器335读取与BMC 315相关联的固件。根据一些实施例,RoT 320使用安全直接存储器访问将固件从存储器335的“活动”区域读取到其安全SRAM中。该固件在S430处被认证。S430处的认证可以类似于S415处的认证来执行。
如果在系统30的首次引导时BMC固件的认证不成功,则引导过程在S420处终止。根据一些实施例,系统30引导过程没有在S420处终止,而是以包括策略驱动的通知和补救在内的策略驱动的安全或不可信模式继续进行。如果在后续引导期间认证不成功,则在S435处将存储在存储器335的恢复区域中的数据加载到存储器335的活动区域中,并且基于存储在活动区域中的固件再次执行认证。恢复区域中存储的数据是BMC固件的先前认证版本。
在这点上,如果在S430处认证BMC固件并且系统30是首次引导(即,在初始引导时),则在S440处将经过认证的BMC固件从活动区域复制到存储器335的恢复区域。在S440处,恢复区域被设置和锁定以防止RoT 320进一步写入。相应地,回到S435,可以使用恢复区域的固件从将来的故障中恢复以认证存储在存储器335的活动区域中的BMC固件。下面将关于图10进一步描述根据一些实施例的固件存储器的各个区域。
在S440之后,或者如果在初始引导之后的引导期间发生在S430处的成功认证,则RoT 320在S445处为BMC 315预先取读存储器335的引导块和针对BMC 315的上电的信号。因此,BMC 315上电并且开始执行其经过认证的固件。BMC 315的上电允许在引导或运行时期间将任何后续证明失败经由上述带外通信通道传送给数据中心管理软件。
接下来,在S450处认证存储在存储器330中的CPU固件。如关于BMC固件的认证描述的,如果在系统30的初始引导时CPU固件的认证不成功,则引导过程在S420处终止。如果在后续引导期间CPU固件的认证不成功,则在S455处将存储在存储器330的恢复区域中的数据加载到存储器330的活动区域中,并且重复认证过程。如关于BMC固件描述的,如果在S450处认证CPU固件并且系统30处于初始引导,则在S460处将经过认证的CPU固件复制到存储器330的恢复区域。该恢复区域也可以被设置和锁定以防止RoT 320进一步写入。
在S465处,对母板电源轨通电并且将CPU 310保持复位。然后,在S470处,RoT 320经由外围组件互连340对外围组件卡350的备用电源轨通电。备用电力引起从RoT 370在S475处上电并且读取存储在存储器380中的受保护设备(即,SoC 360)的固件。
在S480处,RoT 320确定SoC 360的固件是否已经被认证。如关于过程200的S270描述的,S480可以包括等待从RoT 370接收认证测量,该认证测量可以包括对由主RoT 320发出的认证询问的响应。该测量可以包括以下将描述的附加信息。RoT 320与RoT 370之间的质询/测量的传送在图3中由虚线表示,并且可以通过由+3.3V备用轨供电的I2C总线进行。
如果外围固件已经被成功认证,则流程从S480继续进行到S485。在S285处,对外围组件卡的所有电源轨通电,从而允许SoC 360引导存储器380的固件。CPU 310也退出复位,并且被允许引导存储器330的固件。电力排序和信令可以由RoT 320与被安装在母板300上的CPLD协作来执行。
如果在S480处确定外围固件尚未被认证(或者是因为未从RoT 370接收到认证测量,或者是因为接收到的认证测量指示固件无法被认证),则引导过程在S490处终止。在一些实施例中,并且基于平台策略,在S490处允许CPU 310退出复位并且引导,但是不向外围组件卡305施加全功率。
根据一些实施例,S470至S480可以与S450至S465同时执行。即,可以在检查外围组件固件的完整性的同时检查CPU固件的完整性。
在系统30包括一个以上的外围组件卡的情况下,在S470处对每个卡的备用电源轨供电,并且在S480处每个卡上的RoT认证其相应固件。如果少于所有外围组件报告其固件已经被成功认证,则在一些实施例中,向已经报告经过验证的固件的外围组件提供全功率,并且允许CPU退出复位并且引导。在其他实施例中,不允许外围组件或CPU引导。
根据一些实施例,存储器380还包括恢复区域。如上所述,可以向恢复区域设置和加载经过认证的固件(例如,在首次成功引导时),并且锁定其免受进一步的写入。在活动区域的固件无法在S480处被认证的情况下,主RoT 320可以指示从RoT 370从恢复区域加载固件。如果该加载成功,则流程可以继续进行到S485以完成引导过程。
图5是根据一些实施例的用于认证固件的过程500的流程图。过程500可以由RoT执行以认证其自身的固件、BMC固件、CPU固件和/或外围组件固件,如本文中描述的。
图6示出了RoT 600和存储器650以描述过程500的一些实施例。示出了RoT 600的若干元件以帮助描述。实施例不限于所示出的元件。
RoT 600包括其中融合有对称密钥(例如,高级加密标准(AES)密钥)、非对称密钥(例如,RSA公钥的散列)和初始化代码的一次性可编程(OTP)存储器。对称密钥可以由可信平台供应商用来加密固件,并且可以由RoT 600用来解密固件,如下所述。非对称密钥可以是非对称密钥对中的公钥,该非对称密钥对中的私钥由平台供应商用来对可信固件签名。在平台操作期间,融合的信息不能被覆盖或改变。RoT 600还包括用于生成未验证固件的摘要的安全SRAM和用于解密固件和固件签名的加密引擎。
图600的RoT 600包括到存储器650的SPI接口,但是实施例不限于此。如上所述,RoT 600可以包括用于拦截来自板载CPU或BMC的通信并且打算用于其相应闪存的SPI接口,但是可以包括用于与适于存储固件的任何存储器通信的任何其他合适的接口。
存储器650包括固件区域660。如本文中描述的,固件区域660可以由RoT 600设置为包括几个区域,每个区域与不同的读取和写入访问策略相关联。根据图示的实施例,固件区域660是活动区域并且包括公钥、签名和固件映像。公钥、签名和固件映像通过对称密钥加密,但是实施例不限于此。签名是在通过上述私有非对称密钥加密之后的固件映像的摘要。
在过程500的S505处,RoT 600从存储器650的活动区域加载固件。固件可以包括由RoT保护的任何设备的固件,包括RoT本身。在S510处,使用融合到RoT 600中的对称密钥来解密固件块的头部以获取公钥。在S515处生成公钥的散列。在S520处,确定在S515处生成的散列是否与融合到RoT 600中的非对称公钥散列相同。
如果确定所生成的散列与融合的散列不相同,则流程继续进行到S525以执行用于处理固件认证失败的任何合适的过程。这些过程可以包括通知和/或恢复过程,并且可以取决于与未经过认证的固件相关联的设备、引导序列中的失败认证的位置、和/或认证发生在引导时,在运行时,还是在固件更新期间。
如果所生成的散列与融合的散列相同,则使用融合的对称密钥解密固件的下一部分以获取签名和固件映像。解密的签名和固件映像可以加载到RoT 600的安全SRAM中。
RoT 600在S535处生成解密的固件映像的摘要或校验和。然后在S540处使用融合的非对称公钥对解密的签名进行解密。如果签名是使用与融合的非对称公钥相对应的私钥创建的,则解密的签名将与在S535处生成的摘要相同。因此,如果在S545处确定所生成的摘要与解密的签名相同,则认证被认为是成功的并且流程继续进行到S550以根据成功的认证继续操作。
一些实施例支持使用密钥清单的多阶段引导和固件撤销。在这样的实施例中,固件可以紧接在公钥头部之后包括签名的密钥清单。如上所述认证密钥清单,并且使用密钥清单的密钥依次验证活动存储区域内的其他签名的固件映像。
如上所述,一些实施例提供主RoT与从RoT之间的分层通信。这种通信可以通过I2C进行,而只有备用电源轨被通电,从而允许在受保护的活动组件的引导之前验证固件的完整性。图7是根据一些实施例的RoT之间的通信过程700的流程图。具体地,过程700描述了根据一些实施例的证明质询和响应。根据过程700的证明质询可以在预引导期间(例如,在S270或S480处)或在运行时期间发生。
主RoT在S710处生成非对称密钥对。因此,根据一些实施例,主RoT能够生成对于平台唯一的安全的私有非对称密钥。私钥在主RoT上的SRAM的指定区域之外可能无法访问,并且只能由主RoT的加密引擎访问。
在S720处,主RoT(例如,RoT 320)向从RoT(例如,RoT 370)传输证明质询。在S720处还传输从固有私钥和散列算法导出的公钥。关于一个从RoT描述了过程700,但是主RoT可以与一个以上的从RoT相关联并且因此可以在S720处向每个从RoT传输该信息。然后,每个从RoT可以如关于过程700描述地操作。
接下来,在S730处,从RoT认证其外围固件。S730可以如以上关于过程500描述的那样继续进行。如果认证不成功,则在S750处,从RoT向主RoT传输失败认证的指示。例如,在S730处,RoT 370认证存储在存储器380中的SoC 360的固件。如果认证不成功,则RoT 370向母板300上的主RoT 320传输其指示。
如果认证成功,则从RoT使用在S720处接收的散列算法在S760处创建固件的活动区域的摘要。在S770处,从RoT使用公钥对摘要签名。接下来,在S780处,从RoT向主RoT发送签名的摘要和对成功认证的确认。
主RoT可以使用所接收的信息来确定是否要对由从RoT保护的外围设备施加全功率。只能由主RoT解密的签名的摘要可以由主RoT存储和使用以确定外围固件将来是否改变。例如,在后续引导期间,RoT 370可以在S780处返回签名的摘要和对认证的确认,如上所述。如果在解密之后摘要与由RoT 370返回的先前摘要不匹配,则RoT 370可以在其日志中记录固件改变,经由BMC 315的网络连接向系统管理设备传输通知,和/或采取其他补救措施。
根据一些实施例,S760-S780还包括创建和返回由从RoT保护的存储器的恢复区域(如果有的话)和非活动区域的签名的摘要。主RoT可以为被耦合到其的每个从RoT保持这些摘要的表。因此,作为每个证明质询的结果,主RoT可以确定每个受保护的存储设备的非活动区域和恢复区域是否保持不变。这种攻击/损坏检测机制是对RoT的用于根据其相应访问限制策略在引导和运行时期间来对每个存储区域进行写入和读取保护的保护机制的补充。
图8示出了根据一些实施例的计算系统800的主RoT与从RoT之间的通信通道。母板RoT 810保护母板CPU 805和BMC 855,而RoT 815至850保护各种外围活动组件。如上所述,系统800包括被路由到所有活动组件的I2C通道。这些I2C通道通常由BMC 855用于活动组件的热监测。在系统800的情况下,I2C通道首先由RoT 810在引导和预引导期间使用,并且然后被复用切换到BMC 855以进行热管理。根据一些实施例,RoT 810可以请求BMC 855针对运行时证明质询来产生对I2C的控制。
RoT 810被耦合到CPLD 860以控制如本文中描述的电力排序。RoT 810作为主RoT操作,并且是本文中描述的信任平台设计的分层根的头部。如关于过程700提到的,RoT 810可以存储所有平台固件存储区域的可证明的散列。
RoT 815至850中的每个可以被配置为作为从机或者作为从机和主机进行操作。不需要总线仲裁,因为主机和从机操作是分层定义的。系统800的RoT 820被配置为从机和主机,因为它位于RoT 810的下游以及RoT 845和850的上游。RoT 820是RoT 810的从机,并且因此响应于从RoT 810接收的证明质询。RoT 820是RoT 845和850的主机,并且因此向其发出证明质询并且存储其固件摘要。根据一些实施例,对RoT 845和850的证明质询的结果、以及其加密摘要经由RoT 820被汇总到RoT 810。
图9是根据一些实施例的RoT 900的内部架构的框图。RoT 900可以包括ARM控制器,该ARM控制器包括安全SRAM和内部闪存。例如,OTP存储器可以包括用于存储公钥SHA2-512散列的OTP存储器和用于存储AES密钥的OTP存储器。这些密钥在安全存储器外部不可访问。RoT 900还包括如上所述的加密引擎、以及循环冗余校验和随机数生成功能。RoT 900还支持本文中提到的I2C、SPI和GPIO接口、以及用于与可移动闪存接口的安全数字/多媒体卡接口。
图10示出了根据一些实施例的安全存储器1000的固件存储区域。安全存储器可以包括外部闪存,诸如存储器130、330和335,但是实施例不限于此。存储器1000存储CPU(即,统一可扩展固件接口(UEFI))固件和BMC固件两者。
如图所示,存储器1000包括用于BMC和CPU固件中的每个的恢复区域和活动区域。活动区域存储要在引导时认证和执行的固件,而恢复区域存储固件的经过认证的版本(即,如上面关于过程400描述的第一已知良好版本、或最后已知良好版本)。如果主RoT检测到活动固件(CPU或BMC固件)的损坏,则可以用对应恢复区域的固件替换活动固件,并且然后再次从活动区域加载固件。
RoT可以阻止对每个恢复区域的运行时访问以避免其损坏。与外围组件相关联的固件存储器还可以包括如上所述的存储外围组件的固件的活动和恢复存储区域。外围组件的RoT可以限制对恢复区域的运行时访问。
存储器1000还可以包括用于辅助固件更新的分级区域。最初,例如,所有已更新固件都被接收到闪存分级区域中并且已更新固件的完整性被验证,如上所述。如果完整性验证成功,则将已更新固件写入活动区域。
在写入活动区域期间,新固件可能被损坏。在下一次重新加载固件时,将在认证期间检测到这样的损坏。响应于该检测,可以将来自恢复区域的固件移动到活动区域中,以便恢复系统并且允许其引导。
图11是根据一些实施例的系统1100的框图。系统1100与系统800相同,除了包括可信平台模块(TPM)1170、机架管理器(RM)1180和数据中心管理器(DCM)1190。系统1100示出了数据中心服务器内的一些实施例的实现。
特别地,BMC 1155经由带外网络连接而连接到RM 1180。因此,RoT 1110可以在BMC1155引导之后并且在CPU 1120或任何附接的活动外围设备引导之前向RM 1180提供证明测量和状态。该信息可以由RM 1180用来管理系统1100和由RM 1180管理的N个服务器中的任何其他服务器。RM 1180可以将该信息传递给DCM 1190以控制和监测M×N个服务器以及由DCM 1190管理的M个RM中的任何其他RM的操作。在CPU 1120的成功引导之后,附加地或备选地,RoT1110可以将这样的测量传输给TPM 1170。
图12示出了根据一些实施例的数据中心1200。如图所示,每个机架管理器连接到N个母板。每个母板包括用于认证其CPU的固件和BMC预引导的主RoT,如本文中描述的。每个母板还可以被耦合到由从RoT保护并且被上电的外围有源设备,如本文中描述的。如上所述,RoT可以操作以检测固件完整性问题,从检测到的固件完整性问题中恢复,以及保护固件区域。
前述图表示根据一些实施例的用于描述过程的逻辑架构,并且实际实现可以包括以其他方式布置的更多或不同的组件。其他拓扑可以与其他实施例结合使用。此外,本文中描述的每个组件或设备可以由经由任何数目的其他公共和/或私有网络进行通信的任何数目的设备实现。两个或更多个这样的计算设备可以彼此远离,并且可以经由任何已知的网络方式和/或专用连接彼此通信。每个组件或设备可以包括适合于提供本文中描述的功能以及任何其他功能的任何数目的硬件和/或软件元件。
本文中提到的所有过程可以体现在从一种或多种非暂态计算机可读介质(诸如软盘、CD-ROM、DVD-ROM、闪存驱动器和磁带)读取的并且然后以压缩、未编译和/或加密格式存储的计算机可执行程序代码中。在一些实施例中,可以使用硬连线电路系统代替程序代码或与程序代码结合使用以实现根据一些实施例的过程。因此,实施例不限于硬件和软件的任何特定组合。
本文中描述的实施例仅出于说明的目的。本领域技术人员将认识到,可以通过对上述实施例进行修改和变型来实现其他实施例。
Claims (13)
1.一种计算设备,包括:
母板,包括多个母板电源轨,所述多个母板电源轨包括备用母板电源轨;
中央处理单元,被安装到所述母板;
第一微控制器,被耦合到所述中央处理单元并且被安装到所述母板;
第一存储器,被耦合到所述第一微控制器,被安装到所述母板,并且存储与所述中央处理单元相关联的第一固件;
外围卡,被耦合到所述母板并且包括多个外围卡电源轨,所述多个外围卡电源轨包括备用外围卡电源轨;
片上系统,被耦合到所述外围卡;
第二微控制器,被耦合到所述片上系统并且被耦合到所述外围卡;以及
第二存储器,被耦合到所述第二微控制器,被耦合到所述外围卡,并且存储与所述片上系统相关联的第二固件,
其中响应于由所述计算设备对电力的接收,所述备用母板电源轨被通电,所述第一微控制器认证所述第一固件并且,响应于所述第一固件的成功认证,所述多个母板电源轨被通电,所述中央处理单元被保持复位,所述备用外围卡电源轨被通电,并且所述第二微控制器认证所述第二固件,并且
其中响应于所述第二固件的成功认证,所述第二微控制器向所述第一微控制器传输所述第二固件的所述成功认证的指示,并且响应于所述指示,所述多个外围卡电源轨被通电,所述第二固件由所述片上系统执行,并且所述中央处理单元被允许退出复位以执行所述第一固件。
2.根据权利要求1所述的计算设备,还包括:
第二外围卡,被耦合到所述母板并且包括多个第二外围卡电源轨,所述多个第二外围卡电源轨包括备用第二外围卡电源轨;
第二片上系统,被安装在所述第二外围卡上;
第三微控制器,被耦合到所述第二片上系统并且被安装到所述第二外围卡;以及
第三存储器,被耦合到所述第三微控制器,被安装到所述第二外围卡,并且存储与所述第二片上系统相关联的第三固件,
其中响应于所述第一固件的成功认证,所述备用第二外围卡电源轨被通电,并且所述第三微控制器认证所述第三固件,并且
其中响应于所述第三固件的成功认证,所述第三微控制器向所述第一微控制器传输所述第三固件的所述成功认证的指示,并且响应于所述指示,所述多个第二外围卡电源轨被通电,所述第三固件由所述第二片上系统执行,并且所述中央处理单元被允许退出复位以执行所述第一固件。
3.根据权利要求2所述的计算设备,其中所述第二微控制器向所述第一微控制器传输所述第二固件的所述认证的结果的指示,并且
其中所述第三微控制器向所述第一微控制器传输所述第三固件的所述认证的结果的指示。
4.根据权利要求3所述的计算设备,其中所述第二微控制器通过内部集成电路(I2C)总线向所述第一微控制器传输所述第二固件的所述认证的所述结果的所述指示,并且
其中所述第三微控制器通过所述I2C总线向所述第一微控制器传输所述第三固件的所述认证的所述结果的所述指示。
5.根据权利要求1所述的计算设备,其中所述第二微控制器向所述第一微控制器传输所述第二固件的所述认证的结果的指示。
6.根据权利要求5所述的计算设备,其中所述第二微控制器通过内部集成电路(I2C)总线向所述第一微控制器传输所述第二固件的所述认证的所述结果的所述指示。
7.根据权利要求1所述的计算设备,其中如果所述第一固件的所述认证成功,则所述第一微控制器将所述第一固件存储在所述第一存储器的恢复区域中。
8.根据权利要求1所述的计算设备,其中响应于由所述第二微控制器对所述第二固件的认证,所述第一微控制器控制所述第二微控制器和所述片上系统被安装到的外围卡的所有电源轨的通电。
9.一种计算设备,包括:
母板,包括多个母板电源轨,所述多个母板电源轨包括备用母板电源轨;
中央处理单元,被安装到所述母板;
基板管理控制器,被安装到所述母板;
第一微控制器,被安装到所述母板并且被耦合到所述中央处理单元和所述基板管理控制器;
外围卡,被耦合到所述母板并且包括多个外围卡电源轨,所述多个外围卡电源轨包括备用外围卡电源轨;
第一存储器,被耦合到所述第一微控制器,被安装到所述母板,并且存储与所述中央处理单元相关联的第一固件;
第二存储器,被耦合到所述第一微控制器,被安装到所述母板,并且存储与所述基板管理控制器相关联的第二固件;
片上系统,被安装到所述外围卡;
第二微控制器,被耦合到所述片上系统并且被安装到所述外围卡;
第三存储器,被耦合到所述第二微控制器,被安装到所述外围卡,并且存储与所述片上系统相关联的第三固件,
其中响应于由所述计算设备对电力的接收,所述备用母板电源轨被通电,所述第一微控制器认证所述第一固件并且,响应于所述第一固件的成功认证,所述第一微控制器认证所述第二固件,并且响应于所述第一固件的成功认证,所述多个母板电源轨被通电,所述中央处理单元被保持复位,所述外围卡的所述备用电源轨被通电,并且所述第二微控制器认证所述第三固件,并且
其中响应于所述第三固件的成功认证,所述第二微控制器向所述第一微控制器传输所述第三固件的所述成功认证的指示,并且响应于所述指示,所述多个外围卡电源轨被通电,所述第三固件由所述片上系统执行,并且所述中央处理单元被允许退出复位以执行所述第一固件。
10.根据权利要求9所述的计算设备,还包括:
第二外围卡,被耦合到所述母板并且包括多个第二外围卡电源轨,所述多个第二外围卡电源轨包括备用第二外围卡电源轨;
第二片上系统,被安装在所述第二外围卡上;
第三微控制器,被耦合到所述第二片上系统并且被安装到所述第二外围卡;以及
第四存储器,被耦合到所述第三微控制器,被安装到所述第二外围卡,并且存储与所述第二片上系统相关联的第四固件,
其中响应于所述第一固件的成功认证,所述第二外围卡的所述备用第二外围卡电源轨被通电,并且所述第三微控制器认证所述第四固件,并且
其中响应于所述第四固件的成功认证,所述第三微控制器向所述第一微控制器传输所述第三固件的所述成功认证的指示,并且响应于所述指示,所述多个第二外围卡电源轨被通电,所述第三固件由所述第二片上系统执行,并且所述中央处理单元被允许退出复位以执行所述第一固件。
11.根据权利要求9所述的计算设备,其中如果所述第一固件的所述认证成功,则所述第一微控制器将所述第一固件存储在所述第一存储器的恢复区域中,并且
其中如果所述第二固件的所述认证成功,则所述第一微控制器将所述第二固件存储在所述第二存储器的恢复区域中。
12.一种用于计算机系统的方法,包括:
在计算机系统处接收电力;
响应于对电力的所述接收:
对所述计算机系统的母板的备用电源轨通电;
使用被安装在所述母板上的第一微控制器认证与被安装在所述母板上并且被耦合到所述第一微控制器的基板管理控制器相关联的第一固件;
响应于所述第一固件的成功认证,对所述基板管理控制器上电,使用所述第一微控制器认证被安装到所述母板并且被耦合到所述第一微控制器的中央处理单元的第二固件,并且响应于所述第一固件的成功认证,对所述母板的多个电源轨通电,将所述中央处理单元保持复位,对被耦合到所述母板的外围组件卡的备用电源轨通电,并且使用第二微控制器认证与被安装在所述外围组件卡上的片上系统相关联的第三固件;
响应于所述第三固件的成功认证,从所述第二微控制器向所述第一微控制器传输所述第三固件的所述成功认证的指示;以及
响应于所述指示,对所述外围组件卡的多个外围卡电源轨通电,由所述片上系统执行所述第三固件,并且允许所述中央处理单元退出复位以执行所述第一固件。
13.根据权利要求12所述的方法,其中如果所述第二固件的所述认证成功,则所述第一微控制器将所述第二固件存储在被耦合到所述母板的存储器的恢复区域中,并且
其中如果所述第二固件的所述认证不成功,则所述第一微控制器从所述存储器的所述恢复区域取回恢复固件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/694,748 US10839080B2 (en) | 2017-09-01 | 2017-09-01 | Hardware-enforced firmware security |
US15/694,748 | 2017-09-01 | ||
PCT/US2018/039633 WO2019045863A1 (en) | 2017-09-01 | 2018-06-27 | SECURITY OF MICROPROGRAM APPLIED BY MATERIAL |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111052118A CN111052118A (zh) | 2020-04-21 |
CN111052118B true CN111052118B (zh) | 2023-10-24 |
Family
ID=62976208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880056632.6A Active CN111052118B (zh) | 2017-09-01 | 2018-06-27 | 硬件实施的固件安全 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10839080B2 (zh) |
EP (1) | EP3676742A1 (zh) |
CN (1) | CN111052118B (zh) |
WO (1) | WO2019045863A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017074431A1 (en) * | 2015-10-30 | 2017-05-04 | Hewlett Packard Enterprise Development Lp | Secure job pool and process |
JP6903529B2 (ja) * | 2017-09-11 | 2021-07-14 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
US10540232B2 (en) * | 2017-09-19 | 2020-01-21 | Hewlett Packard Enterprise Development Lp | Recovery using programmable logic device |
US10831506B2 (en) * | 2018-04-05 | 2020-11-10 | Phoenix Technologies Ltd. | Local oversight and provisioning of BIOS activity |
US11347861B2 (en) * | 2018-04-10 | 2022-05-31 | Raytheon Company | Controlling security state of commercial off the shelf (COTS) system |
US10979232B2 (en) * | 2018-05-31 | 2021-04-13 | Motorola Solutions, Inc. | Method for provisioning device certificates for electronic processors in untrusted environments |
US11714910B2 (en) * | 2018-06-13 | 2023-08-01 | Hewlett Packard Enterprise Development Lp | Measuring integrity of computing system |
US10896266B1 (en) * | 2018-07-12 | 2021-01-19 | Amazon Technologies, Inc. | Computer hardware attestation |
US10740084B2 (en) * | 2018-08-16 | 2020-08-11 | Intel Corporation | Soc-assisted resilient boot |
US11178159B2 (en) * | 2018-09-07 | 2021-11-16 | Raytheon Company | Cross-domain solution using network-connected hardware root-of-trust device |
US11423150B2 (en) * | 2018-09-07 | 2022-08-23 | Raytheon Company | System and method for booting processors with encrypted boot image |
US10776493B2 (en) * | 2018-10-12 | 2020-09-15 | Hewlett Packard Enterprise Development Lp | Secure management and execution of computing code including firmware |
US11068599B2 (en) * | 2018-12-19 | 2021-07-20 | Dell Products, L.P. | Secure initialization using embedded controller (EC) root of trust |
US11829478B2 (en) * | 2019-01-08 | 2023-11-28 | Oracle International Corporation | Full server recovery architecture for cloud bare metal instances |
US10997299B2 (en) * | 2019-03-12 | 2021-05-04 | Dell Products L.P. | System and method of authenticating and restoring firmware of complex logic devices |
US11113402B2 (en) * | 2019-03-29 | 2021-09-07 | Intel Corporation | Tunneling functional safety communications over an enhanced serial peripheral interface |
WO2020205497A1 (en) | 2019-04-01 | 2020-10-08 | Raytheon Company | Root of trust assisted access control of secure encrypted drives |
EP3948608B1 (en) | 2019-04-01 | 2023-04-26 | Raytheon Company | Adaptive, multi-layer enterprise data protection & resiliency platform |
CN111832084A (zh) * | 2019-04-22 | 2020-10-27 | 鸿富锦精密电子(天津)有限公司 | 基板管理控制器的固件保护系统以及方法 |
US11252193B2 (en) * | 2019-04-26 | 2022-02-15 | Microsoft Technology Licensing, Llc | Attestation service for enforcing payload security policies in a data center |
US11347858B2 (en) * | 2019-07-22 | 2022-05-31 | Dell Products L.P. | System and method to inhibit firmware downgrade |
JP7341784B2 (ja) | 2019-08-09 | 2023-09-11 | キオクシア株式会社 | ストレージ装置 |
US11113188B2 (en) | 2019-08-21 | 2021-09-07 | Microsoft Technology Licensing, Llc | Data preservation using memory aperture flush order |
US11361067B2 (en) * | 2019-08-29 | 2022-06-14 | Mitac Computing Technology Corporation | Cross authentication method for computer system security |
US11379588B2 (en) | 2019-12-20 | 2022-07-05 | Raytheon Company | System validation by hardware root of trust (HRoT) device and system management mode (SMM) |
US20210216640A1 (en) * | 2020-01-10 | 2021-07-15 | Dell Products L.P. | Systems and methods for hardware root of trust with protected redundant memory for authentication failure scenarios |
US11314867B2 (en) | 2020-03-26 | 2022-04-26 | Hewlett Packard Enterprise Development Lp | Determinations of compromise of controller code images |
US20210303691A1 (en) * | 2020-03-27 | 2021-09-30 | Intel Corporation | Ip independent secure firmware load |
US20240012572A1 (en) * | 2020-07-14 | 2024-01-11 | Hewlett-Packard Development Company, L.P. | Operationalization of memories using memory information sets |
US11593486B2 (en) * | 2020-07-24 | 2023-02-28 | Dell Products L.P. | System and method of operating an information handling system |
US11226862B1 (en) * | 2020-09-03 | 2022-01-18 | Dell Products L.P. | System and method for baseboard management controller boot first resiliency |
US20220244966A1 (en) * | 2021-02-03 | 2022-08-04 | Ampere Computing Llc | Multi-socket computing system employing a parallelized boot architecture with partially concurrent processor boot-up operations, and related methods |
US11593487B2 (en) * | 2021-06-14 | 2023-02-28 | Dell Products, L.P. | Custom baseboard management controller (BMC) firmware stack monitoring system and method |
US11698969B1 (en) * | 2021-06-25 | 2023-07-11 | Amazon Technologies, Inc. | Boot security of integrated circuit device |
US20230009032A1 (en) * | 2021-07-12 | 2023-01-12 | Dell Products, L.P. | Systems and methods for authenticating the identity of an information handling system |
US11783043B2 (en) * | 2021-11-23 | 2023-10-10 | ZT Group Int'l, Inc. | Methods for authentication of firmware images in embedded systems |
US11687475B1 (en) * | 2021-12-22 | 2023-06-27 | Himax Technologies Limited | Large touch display integrated circuit and operation method thereof |
US11836255B1 (en) * | 2023-03-28 | 2023-12-05 | Verkada Inc. | Microcontroller unit (MCU) secure boot |
CN116305169B (zh) * | 2023-05-12 | 2023-08-11 | 天津市中环电子计算机有限公司 | 一种固件安全检测方法和固件校验方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106605233A (zh) * | 2014-09-10 | 2017-04-26 | 英特尔公司 | 使用处理器提供可信执行环境 |
CN107025406A (zh) * | 2016-02-01 | 2017-08-08 | 广达电脑股份有限公司 | 母板、计算机可读存储装置以及固件验证方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870617A (en) * | 1994-12-22 | 1999-02-09 | Texas Instruments Incorporated | Systems, circuits and methods for mixed voltages and programmable voltage rails on integrated circuits |
US7080264B2 (en) * | 2002-12-11 | 2006-07-18 | Sun Microsystems, Inc. | Methods and apparatus for providing microprocessor firmware control of power sequencing on a CPCI card |
US20050010811A1 (en) * | 2003-06-16 | 2005-01-13 | Zimmer Vincent J. | Method and system to support network port authentication from out-of-band firmware |
KR20080112010A (ko) * | 2007-06-20 | 2008-12-24 | 삼성전자주식회사 | 펌웨어 인증 장치 및 방법 |
US8386806B2 (en) * | 2007-12-17 | 2013-02-26 | Intel Corporation | Integrated power management logic |
WO2011037665A2 (en) * | 2009-08-04 | 2011-03-31 | Carnegie Mellon University | Methods and apparatuses for user-verifiable trusted path in the presence of malware |
US20130275769A1 (en) | 2011-12-15 | 2013-10-17 | Hormuzd M. Khosravi | Method, device, and system for protecting and securely delivering media content |
US9384367B2 (en) * | 2012-09-04 | 2016-07-05 | Intel Corporation | Measuring platform components with a single trusted platform module |
US9043632B2 (en) * | 2012-09-25 | 2015-05-26 | Apple Inc. | Security enclave processor power control |
TWI564747B (zh) * | 2012-10-19 | 2017-01-01 | 威盛電子股份有限公司 | 電子裝置與安全開機方法 |
EP2912588A4 (en) * | 2012-10-25 | 2016-06-29 | Intel Corp | ANTI-THEFT IN A MICROLOGICIEL |
US9298524B2 (en) * | 2013-03-22 | 2016-03-29 | Insyde Software Corp. | Virtual baseboard management controller |
US10733288B2 (en) * | 2013-04-23 | 2020-08-04 | Hewlett-Packard Development Company, L.P. | Verifying controller code and system boot code |
US20150121054A1 (en) * | 2013-10-31 | 2015-04-30 | Advanced Micro Devices, Inc. | Platform Secure Boot |
US10007632B2 (en) * | 2014-01-22 | 2018-06-26 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Computing device interface connectors for peripheral component interconnect compliant devices and other devices |
US9766675B2 (en) * | 2015-12-04 | 2017-09-19 | Intel Corporation | Methods and apparatuses to provide power in idle states |
EP3291087A1 (en) * | 2016-09-01 | 2018-03-07 | Nxp B.V. | Apparatus and associated method for authenticating firmware |
US10318736B2 (en) * | 2016-10-31 | 2019-06-11 | Hewlett Packard Enterprise Development Lp | Validating operating firmware of a periperhal device |
US20180181757A1 (en) * | 2016-12-23 | 2018-06-28 | Intel Corporation | Firmware loader for electronic devices |
US10311224B1 (en) * | 2017-03-23 | 2019-06-04 | Amazon Technologies, Inc. | Digitally sealing equipment for authentication of components |
US10383157B2 (en) * | 2017-08-14 | 2019-08-13 | Dell Products, Lp | System and method for automatic wireless connections between server management controllers to set up a secure proxy channel |
-
2017
- 2017-09-01 US US15/694,748 patent/US10839080B2/en active Active
-
2018
- 2018-06-27 EP EP18743204.2A patent/EP3676742A1/en active Pending
- 2018-06-27 CN CN201880056632.6A patent/CN111052118B/zh active Active
- 2018-06-27 WO PCT/US2018/039633 patent/WO2019045863A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106605233A (zh) * | 2014-09-10 | 2017-04-26 | 英特尔公司 | 使用处理器提供可信执行环境 |
CN107025406A (zh) * | 2016-02-01 | 2017-08-08 | 广达电脑股份有限公司 | 母板、计算机可读存储装置以及固件验证方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019045863A1 (en) | 2019-03-07 |
US10839080B2 (en) | 2020-11-17 |
EP3676742A1 (en) | 2020-07-08 |
CN111052118A (zh) | 2020-04-21 |
US20190073478A1 (en) | 2019-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111052118B (zh) | 硬件实施的固件安全 | |
US11741230B2 (en) | Technologies for secure hardware and software attestation for trusted I/O | |
US10318736B2 (en) | Validating operating firmware of a periperhal device | |
CN107025406B (zh) | 母板、计算机可读存储装置以及固件验证方法 | |
US9292300B2 (en) | Electronic device and secure boot method | |
KR101662618B1 (ko) | 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정 | |
US11704402B2 (en) | Runtime device firmware verification using trust chaining | |
CN107665308B (zh) | 用于构建和保持可信运行环境的tpcm系统以及相应方法 | |
US11593487B2 (en) | Custom baseboard management controller (BMC) firmware stack monitoring system and method | |
US11809564B2 (en) | Secure importation of cryptographic credentials to an information handling system | |
US20220398320A1 (en) | Data sharing system and method for a multi-boot baseboard management controller (bmc) | |
WO2022037346A1 (zh) | 快速外设组件互联设备启动方法、装置以及存储介质 | |
US11797679B2 (en) | Trust verification system and method for a baseboard management controller (BMC) | |
US11907373B2 (en) | Validation of fixed firmware profiles for information handling systems | |
US20230128572A1 (en) | Customer validation of information handling systems | |
US20230125588A1 (en) | Geographic restrictions for information handling systems | |
US11593490B2 (en) | System and method for maintaining trusted execution in an untrusted computing environment using a secure communication channel | |
US20230010283A1 (en) | System and method for device authentication using a baseboard management controller (bmc) | |
US11863691B2 (en) | Lockable device validation for information handling systems | |
US20200226260A1 (en) | Firmware resiliency mechanism | |
US20220043915A1 (en) | Storage of network credentials |
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 |