CN113452666A - Ip独立的安全固件加载 - Google Patents
Ip独立的安全固件加载 Download PDFInfo
- Publication number
- CN113452666A CN113452666A CN202011517392.0A CN202011517392A CN113452666A CN 113452666 A CN113452666 A CN 113452666A CN 202011517392 A CN202011517392 A CN 202011517392A CN 113452666 A CN113452666 A CN 113452666A
- Authority
- CN
- China
- Prior art keywords
- agent
- firmware
- memory
- firmware module
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims abstract description 11
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 8
- 239000003795 chemical substances by application Substances 0.000 description 85
- 238000012545 processing Methods 0.000 description 17
- 238000012795 verification Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 239000004744 fabric Substances 0.000 description 6
- 230000010354 integration Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000454 anti-cipatory effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013175 transesophageal echocardiography Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
公开了一种用于实现IP独立的固件加载的装置。该装置包括:多个代理,至少一个代理包括用于存储要由代理执行以实行与该代理相关联的功能的固件的存储器以及用于存储用于IP的固件加载机制的枚举数据的寄存器;和处理器,用于发起枚举过程以从至少一个代理的寄存器中读取枚举数据,基于该数据做出决定以从存储设备中检索固件模块,验证固件模块,以及将固件模块加载到至少一个代理的存储器中。
Description
技术领域
本发明涉及IP独立的安全固件加载。
背景技术
片上系统(SOC)是集成计算机或其他电子系统所有组件的集成电路。这些组件可以包括中央处理单元(CPU)、存储器、输入/输出(IO)端口和次级存储装置,所有这些都包括在单个基板或微芯片上。附加地,SOC经由标准化的管芯上互连协议使得能够实现第三方组件的集成。然而,添加此类组件可能导致安全漏洞。
附图说明
为了能够详细理解本主题的以上记载的特征所用的方式,可以通过参考实施例对以上简要概述的主题进行更具体的描述,其中一些实施例在附图中图示。然而,要注意的是,附图仅图示了该主题的典型的实施例,并且因此不应被认为限制其范围,因为本主题可以允许其他同等有效的实施例。
图1是根据示例的计算设备的一个实施例的示意性图示。
图2A-2C是根据实施例的计算平台的示意性图示。
图3是根据实施例的IP代理的示意性图示。
图4A是图示根据实施例的用于实现IP独立的安全固件加载的方法中的操作的流程图。
图4B是图示根据实施例的用于实现IP独立的安全固件加载的方法中的操作的乒乓图。
图5是根据实施例的可以被适配用于实现IP独立的安全固件加载的电子设备的示意性图示。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对本主题的更透彻的理解。然而,对于本领域技术人员而言将显然的是,本主题可以在没有这些具体细节中的一个或多个的情况下实践。在其他实例中,为了避免模糊本主题,没有描述公知的特征。
对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等的引用指示如此描述的(一个或多个)实施例可以包括特定的特征、结构或特性,但是不是每个实施例都必须包括所述特定的特征、结构或特性。此外,一些实施例可以具有针对其他实施例描述的特征中的一些、全部或没有所述特征。
在以下描述和权利要求书中,可以使用术语“耦合”连同其派生词。“耦合”用于指示两个或更多个元件相互协作或彼此交互,但是它们可以具有或可以不具有在它们之间介入的物理或电气组件。
如权利要求书中所使用的,除非另有指定,否则使用序数形容词“第一”、“第二”、“第三”等来描述共同的元素,仅仅指示指代相同元素的不同实例,并且不意图暗示如此描述的元素必须在时间上、空间上、等级上或以任何其他方式处于给定的顺序。
诸如片上系统(SoC)、微处理器、微控制器和其他系统之类的集成电路的设计人员可以使用知识产权(IP)块来简化系统设计。IP块是模块化的独立硬件块,其可以容易地集成到设计中。因为IP块是模块化且独立的,因此集成电路(IC)设计人员仅需要“投入”IP块即可使用IP块的功能。然后,系统设计人员可以建立与输入和输出的适当连接。
IP块通常是“黑匣子”。换句话说,使用IP块的系统集成人员可能不知道,并且不需要知道IP块的具体实现细节。实际上,IP块可以作为专有的第三方单元被提供,而系统集成人员没有对IP块的设计的洞察。
例如,设计用于智能电话的SoC的系统集成人员除了处理器核外还可以使用IP块,诸如存储器控制器、非易失性存储器(NVM)控制器、Wi-Fi、蓝牙、GPS、第四或第五代网络(4G或5G)、音频处理器、视频处理器、图像处理器、图形引擎、图形处理单元(GPU)引擎、安全控制器和许多其他IP块。在许多情况下,这些IP块中的每个都有它自己的嵌入式微控制器,并且微控制器具有它自己的架构、指令集和固件加载要求。因为没有标准化的微控制器架构或一组固件加载要求,因此可以为每个IP块设计自定义固件加载过程。
在说明性示例中,SoC集成人员将IP块与跨大量供应商、架构、总线接口和启动时间特性在内部和外部设计的控制器集成在一起。这些都可以彼此独立地设计,尤其是在加载在IP块的微控制器上运行的固件方面。目前没有在IP块固件加载机制的方面存在的硬件标准。这能够使与SoC的IP集成变得困难且昂贵。
IP固件加载的自定义流程的要求具有缺点。例如,它防止重复使用关于不同IP块的设计。在一些实例中,可能会发生供应商锁定,因为SoC是围绕特定供应商的IP块设计的。用来自不同供应商的功能相同的IP块替换IP块可能是昂贵的,因为需要完全重新设计固件加载机制。这增加了SoC和软件集成的成本。它还增加了安全验证所需的工作量,并且总体上增加了安全开发生命周期(SDL)的所有阶段的成本。
本文中描述的一些示例可以利用固件加载接口,也称为“仪表板”,其提供用于将固件加载到IP块的标准机制。可以在IP块内部提供硬件仪表板,或者为了与缺少固件仪表板的传统IP块的兼容性,可以将固件仪表板其本身作为单独的IP块提供。硬件仪表板具有面向IP的接口,该接口提供特定于IP的自定义指令和过程,并且还包括面向系统的接口,该接口提供对于所有IP块或IP块类别通用的标准化接口。这提供了与供应商无关的固件加载接口,该接口确保如果将IP块用来自另一供应商的功能相似或相同的IP块替换,则不需要重新设计系统。这可以提供直接的投入替换(即,在将固件仪表板在内部提供给IP块的情况下),或者在最坏的情况下,将固件仪表板IP用新的IP块的供应商的对应固件仪表板IP替换。系统的其他方面(包括BIOS、固件和软件)不需要与新的IP块兼容,因为它们能够与标准化固件仪表板一起操作。
固件仪表板提供不仅与供应商无关,而且还与架构无关的接口。ARM、AMD、Intel®和其他架构可以与提供对应固件仪表板的任何IP集成。在将可信执行环境(TEE)用于安全性的情况下,固件仪表板还可以与例如Trusty、VBS、安全控制器、早期BIOS或任何其他TEE机制兼容。这允许与TEE无关的用于设备的安全固件加载。例如,固件仪表板可以在ARM、AMD或Intel®SoC上使用,并且可以用于集成来自任何数量的供应商的IP块。这不仅提供了安全的输入/输出(I/O),而且还将计算功能安全卸载到加速器,这在数据中心中是有用的。
本说明书的固件仪表板克服了因为在当今普遍使用中存在多个架构和多个TEE而引起的困难。IP提供商通常具有他们自己的独立设计的硬件,以及对他们的IP固件的软件的自定义预期。在没有通用机制的情况下,SoC集成人员可能非常难于将IP与多个供应商混合与匹配。此外,一些供应商将一个IP的固件加载与其他IP耦合,从而产生了棘手的依赖关系。例如,如果IP A依赖于IP B来加载安全固件,并且IP B依赖于IP C和结构D来实现它的存在,则SoC设计变得充满挑战且次优。
本说明书实现一种称为用于固件“仪表板”的固件加载接口的硬件小部件,其提取IP固件加载所需要的信息,并揭露了一种在IP外部的通用标准接口。尽管IP被设计具有自定义流程,但它对于外部代理以及用于固件验证和加载的架构具有一些一般性的预期。本文公开的固件仪表板使用这些一般化来创建普遍可插入的标准硬件小部件,并提供用于固件加载和验证的标准外部流程。在IP侧上的内部实现可能仍因IP而异。
固件仪表板支持多种访问控制样式,包括例如基于范围、基于TLP位和基于启动阶段的访问控制。此外,它包封在IP和SoC之间以及IP与SoC内的其他IP之间的所有交互以用于IP固件管理。
有利地,IP可以彼此独立地设计,将它们集成到哪些SoC中以及在那些SoC上使用哪个OS或软件。因此,利用固件仪表板,可以跨许多不同的架构重用IP。此外,诸如BIOS或OS驱动器之类的软件组件可能将IP固件加载模块从一个IP重用到另一个IP,并且还从一个平台移植到另一个平台,或者从一个生态系统移植到另一个生态系统。这使得能够实现在第三方IP的软件中的降低的验证成本的情况下的快速SoC集成。由于标准化,它还提供了关于IP固件完整性的改进的安全保证。
本说明书根据三种类型的IP块说明了固件加载接口或仪表板的使用。应该注意的是,呈现这些特点仅出于说明目的,并且可以提供具有其他固件加载特性的其他类型的IP块。
类型1是具有只读存储器(ROM)和内置硬件密码的IP。该IP块能够建立它自己的信任根,但依赖于比如操作系统或另一控制器之类的外部代理来将固件拷贝到SoC可寻址存储器以让它进行加载。IP然后可以使用直接存储器访问(DMA)来访问和验证固件,并开始执行它。
类型2是没有ROM或密码的IP。它完全依赖于外部实体来验证固件的完整性,并将其下载到内部随机存取存储器(RAM)中,诸如静态RAM(SRAM)或寄存器堆。
类型3是没有内部ROM或密码的IP。它预期外部代理加载并验证固件。然后,外部代理必须将固件指向IP。IP直接从该外部存储器执行。
更特别地参考附图描述了用于提供IP独立的安全固件加载的系统和方法。应该注意的是,贯穿附图,某些参考数字可以重复以指示特定的设备或块跨各图是完全一致或大体一致的。然而,这并不意图暗示所公开的各种实施例之间的任何特定关系。在某些示例中,元素的属(genus)可以由特定的参考数字(“小部件10”)来指代,而属的各个种类或示例可以由带连字符的数字(“第一特定小部件10-1”和“第二特定小部件10-2”)来指代。
下面的附图中的某些详述了用于实现以上的实施例的示例架构和系统。在一些实施例中,以上描述的一个或多个硬件组件和/或指令被仿真,如以下详述那样,或者被实现为软件模块。
图1是根据示例的计算设备的一个实施例的示意性图示。根据一个实施例,计算设备100包括托管集成电路(“IC”)的计算机平台、诸如片上系统(“SoC”或“SOC”),其将计算设备100的各种硬件和/或软件组件集成在单个芯片上。如所图示的,在一个实施例中,计算设备100可以包括任何数量和类型的硬件和/或软件组件,诸如(在没有限制的情况下):图形处理单元114(“GPU”或简称为“图形处理器”)、图形驱动器116(也称为“GPU驱动器”、“图形驱动器逻辑”、“驱动器逻辑”、用户模式驱动器(UMD)、UMD、用户模式驱动器框架(UMDF)、UMDF或简称为“驱动器”)、中央处理单元112(“CPU”或简称为“应用处理器”)、可信执行环境(TEE)113、存储器108、网络设备、驱动器等;以及输入/输出(I/O)源104,诸如触摸屏、触摸面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标、端口、连接器等。计算设备100可以包括:操作系统(OS)106,其用作计算设备100的硬件和/或物理资源与用户之间的接口;以及基本输入/输出系统(BIOS)107,其可以实现为固件并且驻留在存储器108的非易失性区段中。
将领会到,对于某些实现方式,可能优选比上述示例配备更少或更多的系统。因此,计算设备100的配置可以取决于许多因素(诸如价格约束、性能要求、技术改进或其他情况)而因实现方式而异。
实施例可以被实现为以下各项中的任何一项或其组合:使用母板互连的一个或多个微芯片或集成电路、硬连线逻辑、由存储器设备存储并由微处理器执行的软件、固件、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。作为示例,术语“逻辑”、“模块”、“组件”、“引擎”和“机制”可以包括软件或硬件和/或其组合,诸如固件。
实施例可以使用一个或多个存储器芯片、控制器、CPU(中央处理单元)、微芯片或使用母板互连的集成电路、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)来实现。作为示例,术语“逻辑”可以包括软件或硬件和/或软件和硬件的组合。
图2A-2C是根据实施例的计算平台的示意性图示。在一些示例中,平台200可以包括与以上讨论的计算设备100类似的SOC 210。如在图2A中示出的,平台200包括经由CPU112通信地耦合到一个或多个软件组件280的SOC 210。附加地,SOC 210包括经由系统结构205耦合的其他计算设备组件(例如,存储器108)。在一个实施例中,系统结构205包括集成片上系统结构(IOSF),以提供用于耦合SOC 210内的互连协议(IP)代理(例如,IP块230A和230B,在本文中统统通过参考数字230来指代)的标准化管芯上互连协议。在这样的实施例中,互连协议提供了标准化的接口,以使得第三方能够设计诸如要结合到SOC 210中的IP代理230之类的逻辑。
根据实施例,IP代理230可以包括通用处理器或微控制器232(例如,有序或无序核)、固定功能单元、图形处理器、I/O控制器、显示控制器等、SRAM 234,并且可以包括密码模块236。在这样的实施例中,每个IP代理230包括硬件接口235,以提供标准化来使得IP代理230能够与SOC 210组件通信。例如,在其中IP代理230是第三方视觉处理单元(VPU)的实施例中,接口235提供标准化以使得VPU能够经由结构205访问存储器108。
SOC 210还包括安全控制器240,其作为安全引擎进行操作以执行SOC 210各种安全操作(例如,安全处理、密码功能等)。在一个实施例中,安全控制器240包括被实现来执行安全操作的IP代理240。此外,SOC 210包括非易失性存储器250。非易失性存储器250可以被实现为外围组件互连快速(PCIe)存储驱动器,诸如固态驱动器(SSD)或非易失性存储器快速(NVMe)驱动器。在一个实施例中,非易失性存储器250被实现为存储平台200固件。例如,非易失性存储器250存储启动(例如,基本输入/输出系统(BIOS))和设备(例如,IP代理230和安全控制器240)固件。
图2B图示了平台200的另一个实施例,包括经由IP 230A耦合到SOC 210的组件270。在一个实施例中,IP 230A作为将组件260连接到SOC 210的桥操作,所述桥诸如PCIe根端口。在该实施例中,组件260可以被实现为PCIe设备(例如,交换机或端点),其包括硬件接口235以使得组件260能够与SOC 210组件通信。
图2C图示了平台200的又一实施例,包括经由云网络210耦合到平台200的计算设备270。在该实施例中,计算设备270包括云代理275,所述云代理275被提供经由软件280对SOC 210的访问。
在一些示例中,(一个或多个)固件接口285可以实现固件仪表板的实施例,该固件仪表板提取针对IP中的每个IP的固件加载的共同元素,并创建用于软件的标准接口以将固件加载到这些IP中。共同元素可以包括以下内容。
枚举能力:这涉及在外部代理中运行的软件能够使用以对IP进行枚举并理解它的能力是什么的信息。例如,这可以描述IP是否具有密码能力,它是否预期拉模型(IP其本身拉固件),它是否具有多阶段加载,以及其他有助于标识IP设备的固件的信息和修订标识符。
加载器相关的信息:这涉及IP和外部代理之间交换的信息,关于系统存储器中哪里是IP的固件映像。例如,可以从闪存存储装置中加载固件映像,并且因此,可能需要加载器从闪存存储装置中拉映像。如果IP具有ROM和密码来建立映像完整性,则IP它自己可以使用这来拉固件。否则,其他代理可以扮演固件验证器(例如,安全引擎240)的角色。在那种情况下,安全引擎可以使用加载器相关的信息来验证固件映像的完整性。
验证器相关的信息:这涉及与将在IP块内执行的对固件映像的完整性验证有关的信息。IP硬件可以使用此信息来拒绝或接受正被加载的固件映像。
中断和错误状态:这组信息涉及通用的、类似门铃的事件或状态改变事件。当在IP加载流程中发生某些事件时,可以使用这些来中断IP或主机上运行的软件组件。
在此描述的固件加载过程采用以上共同元素,并且关于固件加载提供从IP到外部世界的统一且一致的标准接口。它还使IP块它们本身中的实现方式细节或差异抽象化(abstract)。有利的是,外部软件组件和控制器可以实现针对所有IP的固件加载的单个统一流程。本来不被设计为满足硬件标准的IP可以被使能以经由类似薄垫片或扶壁(buttress)的接口来使用该标准,或者也可以提供独立的硬件小部件(例如,固件仪表板)。
通过使用此类机制,每个SOC代理,比如OS驱动器、BIOS或安全引擎都可以将所有SOC IP作为它们的启动顺序的一部分进行枚举,并使用共同SW流程为它们负责的所有IP加载FW。这将类似于PCI枚举。
下面描述可以在枚举中使用的标准接口的一个示例。在一些示例中,该接口向每个读取它的代理提供关于以下的信息:关于那个IP它的职责是什么。SOC中的每个软件代理都可以创建它针对相关IP所做的任务的列表,并且该流程跨SOC中的所有代理和SW组件是一致的。从此接口捕获的信息中的一些包括以下内容:
1.IP是否需要将FW推入其中,或者它是否能从外部存储器中拉FW;
2.IP预期BIOS、OS驱动器、TEE还是外部安全代理来从闪存加载其FW;
3.IP预期BIOS、OS驱动器、TEE还是安全引擎来认证其固件;
4.IP是否支持由它自身来进行加载和验证;
5.IP HW的设备ID和修订ID,以便它可以与闪存或存储设备中的等效FW版本匹配。
然后,可以跨不同的操作系统版本、SOC和平台移植固件加载流程,而不会影响IP更改(除了用于设置枚举位的配置参数之外)。这些可以实现为IP中的编译时间带或参数。
位 | 访问类型 | 默认值 | 描述 |
63:36 | RO | 1`h0 | 保留 |
47:44 | RO | 参数 | IP预期推模型 |
43:36 | RO | 8’h0 | 保留 |
35:32 | RO | 参数/熔丝/带 | 经由另一个SOC IP(示例安全IP)预期验证器能力 |
31:28 | RO | 参数/熔丝/带 | 经由另一个SOC IP(示例安全IP)预期加载器能力 |
27:24 | RO | 参数/熔丝/带 | 经由IA SW/TEE预期验证器能力 |
23:20 | RO | 参数/熔丝/带 | 经由IA SW/TEE预期加载器能力 |
19:16 | RO | 参数/熔丝/带 | 经由BIOS预期验证器能力 |
15:12 | RO | 参数/熔丝/带 | 经由BIOS预期加载器能力 |
11:8 | RO | 参数/熔丝/带 | 在IP其本身中建立验证器能力 |
7:4 | RO | 参数/熔丝/带 | 在IP其本身中建立加载器能力 |
3:3 | RO | 参数/熔丝/带 | 由IP支持的内联散列化。在仪表板1.0中不存在任何对于该特征的当前使用 |
2:0 | RO | 3'b0 | 保留 |
表1:IP加载器和验证器能力。
表2:IP加载器和验证器能力。
图3是根据实施例的IP代理的示意性图示。根据一个实施例,代理300包括包含固件315的非易失性存储器310,固件315被执行以实行与代理300相关联的特定功能。例如,如果IP代理300是视频处理代理,则固件315可以在代理的视频处理单元(VPU)处被执行,以执行视频处理功能。在一个实施例中,每个代理的固件315被安全地报告给其他平台200组件、软件280和/或一个或多个云组件。
代理300还包括被实现来验证固件315的完整性的验证器320。在这样的实施例中,验证器320通过验证固件315的完整性来生成测量数据。在另外的实施例中,经由对固件数据(或图像)执行的散列算法(例如,MD5消息摘要算法、安全散列算法1(SHA-1))来验证完整性。尽管被示出为在代理300内实现,但是其他实施例可以以验证器320在外部组件(例如,基本输入/输出系统(BIOS)固件、虚拟机管理器、软件驱动器等)处实现为特征。
接口330也包括在代理300内。根据一个实施例,接口330包括寄存器335以存储固件加载指令和/或验证测量数据。在另外的实施例中,寄存器335位于从接口330偏移的固定地址,并且接口330位于IP代理300中的标准存储器地址处。在又另外的实施例中,寄存器335可经由结构205访问。表3示出了寄存器335的一个实施例。
位 | 访问类型 | 默认值 | 描述 |
512:0 | RO | 11'h0 | 正被验证和加载到代理中的映像的散列 |
表3:寄存器内容。
图4A是图示根据实施例的用于实现IP独立的安全固件加载的方法400中的操作的流程图,并且图4B是图示根据实施例的用于实现IP独立的安全固件加载的方法400中的操作的乒乓图。在一些示例中,可以通过计算设备100的BIOS 107来实现图4A和图4B中描绘的操作。
参考图4A和/或图4B,在操作410处,发起枚举过程以读取SOC的一个或多个IP代理的(一个或多个)固件接口寄存器,以获得用于IP代理的固件加载指令。参考图3,例如,BIOS107可以从接口235A的寄存器335读取用于IP代理300的固件加载指令。在一些示例中,加载指令可以包括与IP代理300相关联的IP加载器和验证器能力,如以上参考表1和表2所说明的,如在图3中图示的。
在操作415处,确定要加载在SOC 100的一个或多个IP代理中的IP。在一些示例中,BIOS 107可以确定SOC 100的IP代理中的哪个需要接收固件更新。例如,可以定期执行固件更新。替代地,SOC 100可以从SOC 100中的IP接收指示IP代理中的一个或多个(例如230A、230B、230C)需要固件更新的通知。
在操作420处,BIOS 107从存储设备(例如,从外部存储设备)检索固件更新的映像,并且在操作425处,固件映像被加载到系统存储器108。
在操作430处,BIOS 107发起过程以更新要加载到一个或多个IP代理(例如230A、230B、230C)上的固件映像的加载状态。在一些示例中,加载状态更新可以基于在操作410中检索到的枚举数据。在一些示例中,在枚举之后,BIOS 107检测到加载器,在将固件从外部存储装置加载到SOC的可寻址存储器中之后,BIOS在加载状态中设置加载完成指示符。加载完成指示用于通知验证器加载阶段已完成,并且验证阶段可以开始。例如,如果IP枚举数据具有BIOS作为加载器和安全控制器作为验证器,则BIOS将固件从存储设备加载到DRAM中并设置加载完成指示。这将中断安全控制器,以便它可以开始验证先前拷贝在DDR中的映像。
在操作435处,BIOS 107发起过程以验证其负责的固件映像。在一些示例中,验证通常涉及使用比如RSA的非对称密码来验证映像的散列是否由相关所有者签名。作为此过程的一部分,验证器计算映像的散列,使用提供的公钥执行RSA验证操作,并确保其与散列匹配。然后,通过将其与设备中(比如ROM代码或熔丝内)的某些内容进行比较来确保将公钥绑定到平台。
在操作440处,BIOS 107发起过程以用一个或多个IP代理(例如230A、230B、230C)更新固件的验证状态。
在操作445处,BIOS 107触发一个或多个IP代理(例如230A、230B、230C)以执行更新的固件映像。在操作450处,BIOS 107触发一个或多个IP代理(例如,230A、230B、230C)以从外部存储器(例如,存储器108或TEE 113的存储器段)拷贝固件映像。在操作455处,BIOS107触发一个或多个IP代理(例如230A、230B、230C)以从外部存储器执行固件。
图5是根据实施例的可以被适配用以实现IP独立的安全固件加载的电子设备的示意性图示。在各种实施例中,计算架构500可以包括或被实现为电子设备的一部分。在一些实施例中,计算架构500可以代表例如实现上述操作环境的一个或多个组件的计算机系统。在一些实施例中,计算架构500可以代表实现本文描述的一个或多个技术的DNN训练系统的一个或多个部分或组件。实施例不限于此上下文。
如在本申请中使用的,术语“系统”和“组件”以及“模块”旨在指代与计算机相关的实体、或者是硬件、硬件和软件的组合、软件或者是正在执行的软件,示例性计算架构500提供了其示例。例如,组件可以是但不限于在处理器上运行的过程、处理器、硬盘驱动器、(光学和/或磁存储介质的)多个存储驱动器、对象、可执行件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在过程和/或执行线程内,并且组件可以局部化在一台计算机上和/或分布在两台或更多台计算机之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。协调可以涉及信息的单向或双向交换。例如,组件可以以通过通信介质传送的信号的形式来传送信息。该信息可以被实现为分配给各种信号线的信号。在这样的分配中,每个消息都是一个信号。然而,另外的实施例可以替代地采用数据消息。这样的数据消息可以跨各种连接被发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构500包括各种常见计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、计时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于由计算架构500的实现。
如在图5中示出的,计算架构500包括一个或多个处理器502以及一个或多个图形处理器508,并且可以是单个处理器台式系统、多处理器工作站系统或具有大量处理器502或处理器核507的服务器系统。在一个实施例中,系统500是被结合在用于在移动设备、手持式设备或嵌入式设备中使用的片上系统(SoC或SOC)集成电路内的处理平台。
系统500的实施例可以包括下述各项或被结合在下述各项内:基于服务器的游戏平台;游戏控制台,其包括游戏和媒体控制台、移动游戏控制台、手持式游戏控制台或在线游戏控制台。在一些实施例中,系统500是移动电话、智能电话、平板计算设备或移动因特网设备。数据处理系统500还可以包括可穿戴设备、与其耦合或被集成在其内,该可穿戴设备诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在一些实施例中,数据处理系统500是电视或机顶盒设备,该电视或机顶盒设备具有一个或多个处理器502以及由一个或多个图形处理器508生成的图形接口。
在一些实施例中,一个或多个处理器502均包括用以处理指令的一个或多个处理器核507,该指令在被执行时实行系统和用户软件的操作。在一些实施例中,一个或多个处理器核507中的每个处理器核被配置成处理专用指令集509。在一些实施例中,指令集509可以便于复杂指令集计算(CISC)、精简指令集计算(RISC)、或经由超长指令字(VLIW)的计算。多个处理器核507可以均处理不同的指令集509,该指令集509可以包括用以便于对其他指令集的仿真的指令。处理器核507还可以包括其他处理设备,诸如数字信号处理器(DSP)。
在一些实施例中,处理器502包括高速缓冲存储器504。取决于架构,处理器502可以具有单个内部高速缓存或多级内部高速缓存。在一些实施例中,在处理器502的各种组件当中共享高速缓冲存储器。在一些实施例中,处理器502还使用外部高速缓存(例如,3级(L3)高速缓存或末级高速缓存(LLC))(未示出),可以使用已知的高速缓存一致性技术来在处理器核507当中共享该外部高速缓存。附加地,寄存器堆506被包括在处理器502中,其可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可以专用于处理器502的设计。
在一些实施例中,一个或多个处理器502与一个或多个接口总线510耦合,以在处理器502与系统中的其他组件之间传输通信信号,诸如地址、数据或控制信号。在一个实施例中,接口总线510可以是处理器总线,诸如一种版本的直接媒体接口(DMI)总线。然而,处理器总线不限于DMI总线,并且可以包括一个或多个外围组件互连总线(例如,PCI、PCIExpress)、存储器总线或其他类型的接口总线。在一个实施例中,(一个或多个)处理器502包括集成存储器控制器516和平台控制器集线器530。存储器控制器516便于存储器设备与系统500的其他组件之间的通信,而平台控制器集线器(PCH)530提供经由本地I/O总线到I/O设备的连接。
存储器设备520可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪速存储器设备、相变存储器设备或具有合适的性能以用作处理存储器的某个其他存储器设备。在一个实施例中,存储器设备520可以作为系统500的系统存储器进行操作,以存储数据522和指令521以供在一个或多个处理器502执行应用或过程时使用。存储器控制器集线器516还与可选的外部图形处理器512耦合,该可选的外部图形处理器512可以与处理器502中的一个或多个图形处理器508通信,从而执行图形和媒体操作。在一些实施例中,显示设备511可以连接到(一个或多个)处理器502。显示设备511可以是如在移动电子设备或膝上型设备中的内部显示设备或经由显示接口(例如,DisplayPort等)附接的外部显示设备中的一个或多个。在一个实施例中,显示设备511可以是头戴式显示器(HMD),诸如用于在虚拟现实(VR)应用或增强现实(AR)应用中使用的立体显示设备。
在一些实施例中,平台控制器集线器530使得外围设备能够经由高速I/O总线连接到存储器设备520和处理器502。I/O外围设备包括但不限于音频控制器546、网络控制器534、固件接口528、无线收发器526、触摸传感器525、数据存储设备524(例如,硬盘驱动器、闪速存储器等)。数据存储设备524可以经由存储接口(例如,SATA)或经由外围总线(诸如外围组件互连总线(例如,PCI、PCI Express))连接。触摸传感器525可以包括触摸屏传感器、压力传感器或指纹传感器。无线收发器526可以是Wi-Fi收发器、蓝牙收发器或移动网络收发器,诸如3G、4G或长期演进(LTE)收发器。固件接口528使得能够实现与系统固件的通信,并且可以例如是统一的可扩展固件接口(UEFI)。网络控制器534可以使得能够实现到有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线510耦合。在一个实施例中,音频控制器546是多声道高清晰度音频控制器。在一个实施例中,系统500包括可选的传统I/O控制器540,其用于将传统(例如,个人系统2(PS/2))设备耦合到系统。平台控制器集线器530还可以连接到一个或多个通用串行总线(USB)控制器542、连接输入设备(诸如键盘和鼠标543组合)、相机544或其他USB输入设备。
例如,实施例可以作为计算机程序产品来提供,该计算机程序产品可以包括一个或多个其上存储有机器可执行指令的机器可读介质,所述机器可执行指令当由诸如计算机、计算机网络或其他电子设备的一个或多个机器执行时,可以导致一个或多个机器实行根据本文描述的实施例的操作。机器可读介质可以包括但不限于软盘、光盘、CD-ROM(光盘只读存储器)和磁光盘、ROM、RAM、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪速存储器或其他类型的适合于存储机器可执行指令的介质/机器可读介质。
此外,实施例可以作为计算机程序产品下载,其中程序可以通过一个或多个数据信号从远程计算机(例如,服务器)传送到请求计算机(例如,客户端),所述一个或多个数据信号通过经由通信链路(例如,调制解调器和/或网络连接)的载波或其他传播介质来被体现或调制。
贯穿文档,术语“用户”可以可互换地称为“观看者”、“观察者”、“说话者”、“人员”、“个体”、“终端用户”等。要注意的是,贯穿该文档,比如“图形域”的术语可以与“图形处理单元”、“图形处理器”或简单地“GPU”可互换地引用,并且类似地,“CPU域”或“主机域”可以与“计算机处理单元”、“应用处理器”或简单地“CPU”可互换地引用。
要注意的是,比如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算设备”、“计算机”、“计算系统”等术语可以贯穿该文档可互换地使用。要进一步注意的是,比如“应用”、“软件应用”、“程序”、“软件程序”、“包”、“软件包”等术语可以贯穿该文档可互换地使用。此外,比如“作业”、“输入”、“请求”、“消息”等术语可以贯穿该文档可互换地使用。
在各种实现中,计算设备可以是膝上型计算机、上网本、笔记本、超级本、智能电话、平板设备、个人数字助理(PDA)、超移动PC、移动电话、台式计算机、服务器、机顶盒、娱乐控制单元、数码相机、便携式音乐播放器或数字视频记录器。计算设备可以是固定的、便携式的或可穿戴的。在另外的实现中,计算设备可以是处理数据或记录数据以便在别处处理的任何其他电子设备。
附图和前面的描述给出了实施例的示例。本领域技术人员将领会,所描述的元件中的一个或多个可以很好地组合成单个功能元件。替代地,某些元件可以被拆分成多个功能元件。来自一个实施例的元件可以被添加到另一个实施例。例如,本文描述的过程的次序可以改变,并且不限于本文描述的方式。此外,任何流程图的动作不需要以所示的次序实现;也不一定需要执行所有的动作。而且,不依赖于其他动作的那些动作可以与其他动作并行执行。实施例的范围决不受这些具体示例限制。无论是否在说明书中明确给出,诸如结构、尺寸和材料使用方面的差异之类的许多变化都是可能的。实施例的范围至少与所附权利要求书所给出的一样宽。
实施例可以例如作为计算机程序产品来提供,该计算机程序产品可以包括一个或多个其上存储有机器可执行指令的暂时性的或非暂时性的机器可读存储介质,所述机器可执行指令当由诸如计算机、计算机网络或其他电子设备的一个或多个机器执行时,可以导致一个或多个机器实行根据本文描述的实施例的操作。机器可读介质可以包括但不限于软盘、光盘、CD-ROM(光盘只读存储器)和磁光盘、ROM、RAM、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪速存储器或其他类型的适合于存储机器可执行指令的介质/机器可读介质。
一些实施例涉及示例1,其包括一种装置,该装置包括多个代理,至少一个代理包括用于存储要由该代理执行以实行与该代理相关联的功能的固件的存储器;以及用于存储固件的枚举数据的寄存器;处理器,用于发起枚举过程以从至少一个代理的寄存器中读取枚举数据,从存储设备中检索固件模块;验证固件模块;并将固件模块加载到至少一个代理的存储器中。
示例2包括示例1的主题,其中处理器用于将消息发送到至少一个代理以更新固件模块的加载状态。
示例3包括示例1和2的主题,其中,使用推技术或拉技术中的至少一个来加载固件模块。
示例4包括示例1-3的主题,其中至少一个代理用于从多个代理中的每个代理收集可枚举数据;并使用所述可枚举数据发现代理的一个或多个能力。
示例5包括示例1-4的主题,其中,至少一个代理用于发送消息以触发至少一个代理执行固件模块。
示例6包括示例1-5的主题,其中,至少一个代理用于发送消息,以触发至少一个代理从外部存储器拷贝固件模块。
示例7包括示例1-6的主题,其中,处理器用于将固件模块拷贝到至少一个代理的存储器中。
一些实施例涉及示例8,该示例包括处理器实现的方法,该方法包括:在处理器中发起枚举过程以从多个代理中的至少一个代理的寄存器中读取枚举数据,所述至少一个代理包括:存储器,用于存储将由代理执行以实行与代理相关联的功能的固件;以及寄存器,用于存储固件的枚举数据;从存储设备中检索固件模块;验证固件模块;并将固件模块加载到至少一个代理的存储器中。
示例9包括示例8的主题,还包括将消息发送到至少一个代理以更新固件模块的加载状态。
示例10包括示例8和9的主题,其中,使用推技术或拉技术中的至少一个来加载固件模块。
示例11包括示例8-10的主题,还包括:从多个代理中的每个代理收集可枚举数据,并使用所述可枚举数据发现代理的一个或多个能力。
示例12包括示例8-11的主题,还包括:发送消息以触发至少一个代理执行固件模块。
示例13包括示例8-12的主题,还包括发送消息以触发至少一个代理从外部存储器拷贝固件模块。
示例14包括示例8-13的主题,其中,处理器用于将固件模块拷贝到至少一个代理的存储器中。
一些实施例涉及示例15,该示例包括其上存储有指令的至少一个非暂时性计算机可读介质,当该指令由处理器执行时,使处理器在处理器中发起枚举过程以从多个代理中的至少一个代理的寄存器中读取枚举数据,所述至少一个代理包括非易失性存储器,用于存储将由所述代理执行以实行与所述代理相关联的功能的固件;以及寄存器,用于存储固件的枚举数据;从存储设备中检索固件模块;验证固件模块;并将固件模块加载到至少一个代理的非易失性存储器中。
示例16包括示例15的主题,其中,处理器用于将消息发送到至少一个代理以更新固件模块的加载状态。
示例17包括示例15和16的主题,其中,使用推技术或拉技术中的至少一个来加载固件模块。
示例18包括示例15-17的主题,其中,至少一个代理用于从多个代理中的每个代理收集可枚举数据;并使用所述可枚举数据发现代理的一个或多个能力。
示例19包括示例15-18的主题,其中,至少一个代理用于发送消息以触发至少一个代理执行固件模块。
示例20包括示例15-19的主题,其中,至少一个代理用于发送消息以触发至少一个代理从外部存储器拷贝固件模块。
示例21包括示例15-20的主题,其中,处理器用于将固件模块拷贝到至少一个代理的存储器中。
示例22包括示例15的主题,还包括指令,所述指令在由处理器执行时使所述处理器:
向至少一个代理发送消息以更新固件模块的加载状态。
上面已经参考具体实施例描述了本主题。然而,本领域技术人员将理解,在不脱离如所附权利要求中阐述的本主题的更宽的精神和范围的情况下,可以对其进行各种修改和改变。因此,前面的描述和附图被认为是说明性的而不是限制性的意义。
Claims (14)
1.一种设备,包括:
多个代理,至少一个代理包括:
存储器,用于存储要由代理执行以实行与代理相关联的功能的固件;和
寄存器,用于存储固件的枚举数据;
处理器,用于:
发起枚举过程以从至少一个代理的寄存器中读取枚举数据;
从存储设备中检索固件模块;
验证固件模块;和
将固件模块加载到至少一个代理的存储器中。
2.根据权利要求1所述的装置,其中,所述处理器用于:
向至少一个代理发送消息以更新固件模块的加载状态。
3.根据权利要求1所述的设备,其中,使用推技术或拉技术中的至少一个来加载所述固件模块。
4.根据权利要求3所述的装置,其中,所述至少一个代理用于:
从多个代理中的每个代理收集可枚举数据;
使用所述可枚举数据发现代理的一个或多个能力。
5.根据权利要求4所述的装置,其中,所述至少一个代理用于发送消息以触发所述至少一个代理执行所述固件模块。
6.根据权利要求5所述的装置,其中,所述至少一个代理用于发送消息以触发所述至少一个代理从外部存储器拷贝所述固件模块。
7.根据权利要求6所述的装置,其中,所述处理器用于将所述固件模块拷贝到所述至少一个代理的存储器中。
8.一种处理器实现的方法,包括:
在处理器中发起枚举过程,以从多个代理中的至少一个代理的寄存器中读取枚举数据,该至少一个代理包括:
存储器,用于存储要由代理执行以实行与代理相关联的功能的固件;和
寄存器,用于存储固件的枚举数据;
从存储设备中检索固件模块;
验证固件模块;和
将固件模块加载到至少一个代理的存储器中。
9.根据权利要求8所述的方法,还包括:将消息发送到所述至少一个代理以更新所述固件模块的加载状态。
10.根据权利要求9所述的方法,其中,使用推技术或拉技术中的至少一个来加载所述固件模块。
11.根据权利要求10所述的方法,还包括:
从多个代理中的每个代理收集可枚举数据;和
使用所述可枚举数据发现代理的一个或多个能力。
12.根据权利要求11所述的方法,还包括:
发送消息以触发至少一个代理执行固件模块。
13.根据权利要求12所述的方法,还包括:发送消息以触发所述至少一个代理从外部存储器拷贝所述固件模块。
14.根据权利要求13所述的方法,还包括:将所述固件模块拷贝到所述至少一个代理的存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/832,416 US20210303691A1 (en) | 2020-03-27 | 2020-03-27 | Ip independent secure firmware load |
US16/832416 | 2020-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113452666A true CN113452666A (zh) | 2021-09-28 |
Family
ID=77808647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011517392.0A Pending CN113452666A (zh) | 2020-03-27 | 2020-12-21 | Ip独立的安全固件加载 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210303691A1 (zh) |
CN (1) | CN113452666A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546900A (zh) * | 2022-01-21 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种验证mctp控制器的方法、系统、设备和存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11550917B2 (en) * | 2019-06-28 | 2023-01-10 | Intel Corporation | Standardized interface for intellectual property blocks |
CN114077739A (zh) * | 2020-08-21 | 2022-02-22 | 华为技术有限公司 | 快速外设组件互联设备启动方法、装置以及存储介质 |
US11797680B2 (en) * | 2020-08-28 | 2023-10-24 | Micron Technology, Inc. | Device with chain of trust |
FR3125615B1 (fr) * | 2021-07-26 | 2024-06-21 | Stmicroelectronics Grand Ouest Sas | Systeme sur puce comprenant un logiciel d’installation de programmes |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839080B2 (en) * | 2017-09-01 | 2020-11-17 | Microsoft Technology Licensing, Llc | Hardware-enforced firmware security |
-
2020
- 2020-03-27 US US16/832,416 patent/US20210303691A1/en not_active Abandoned
- 2020-12-21 CN CN202011517392.0A patent/CN113452666A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546900A (zh) * | 2022-01-21 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种验证mctp控制器的方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210303691A1 (en) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113452666A (zh) | Ip独立的安全固件加载 | |
US10311236B2 (en) | Secure system memory training | |
US8776245B2 (en) | Executing trusted applications with reduced trusted computing base | |
US11281768B1 (en) | Firmware security vulnerability verification service | |
US9208292B2 (en) | Entering a secured computing environment using multiple authenticated code modules | |
US11531760B1 (en) | Baseboard management controller (BMC)-based security processor | |
JP2005528665A (ja) | システムインテグリティとレガシー環境とを提供するための方法 | |
US10430589B2 (en) | Dynamic firmware module loader in a trusted execution environment container | |
US20230169173A1 (en) | Standardized Interface for Intellectual Property Blocks | |
US11157625B2 (en) | Verifying basic input/output system (BIOS) boot block code | |
CN115981776B (zh) | 位于服务器网络接口卡处的基板管理控制器 | |
US11928215B2 (en) | Firmware verification mechanism | |
US11768941B2 (en) | Non-ROM based IP firmware verification downloaded by host software | |
US11392512B2 (en) | USB method and apparatus in a virtualization environment with multi-VM | |
EP3913513A1 (en) | Secure debug of fpga design | |
CN113448914A (zh) | 平台测量收集机制 | |
US20230078138A1 (en) | Computing systems employing measurement of boot components, such as prior to trusted platform module (tpm) availability, for enhanced boot security, and related methods | |
Van Aubel et al. | Investigating SRAM pufs in large cpus and gpus | |
US20220100906A1 (en) | Software library integrity verification mechanism | |
US11803454B2 (en) | Chained loading with static and dynamic root of trust measurements | |
US11429289B2 (en) | Memory map protection mechanism | |
US20240220626A1 (en) | Secure boot using parallelization | |
US12061710B2 (en) | Mechanism for secure library sharing | |
US11847226B1 (en) | Baseboard Management Controller (BMC)-based security processor | |
US12164641B1 (en) | Designating an operational mode for an integrated circuit |
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 |