CN104850777B - 使用认证的清单来实现对多处理器平台的外部确认 - Google Patents
使用认证的清单来实现对多处理器平台的外部确认 Download PDFInfo
- Publication number
- CN104850777B CN104850777B CN201410831225.1A CN201410831225A CN104850777B CN 104850777 B CN104850777 B CN 104850777B CN 201410831225 A CN201410831225 A CN 201410831225A CN 104850777 B CN104850777 B CN 104850777B
- Authority
- CN
- China
- Prior art keywords
- platform
- processing
- processor
- key
- memory
- 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.)
- Expired - Fee Related
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Abstract
用于将输出表面位图安全递送到显示器引擎的系统和方法。示例处理系统包括:在架构上受保护的存储器;以及,可通信地耦合到在架构上受保护的存储器的多个处理设备,每一个处理设备都包括通过执行下列各项中的至少一项来实现在架构上受保护的执行环境的第一处理逻辑:执行驻留在架构上受保护的存储器中的指令,或防止对在架构上受保护的存储器的未经授权的访问;其中,每一个处理设备都进一步包括第二处理逻辑,所述第二处理逻辑与处理系统的第二处理设备建立安全通信信道,使用安全通信信道来同步表示处理系统的平台身份密钥,以及,将包括平台身份密钥的平台清单传输到确认系统。
Description
技术领域
本公开一般涉及计算机系统,具体而言,涉及用于实现多处理器平台的外部确认的系统和方法。
背景技术
计算机系统内的应用程序和数据的安全执行和完整性越来越重要。各种已知的安全技术不能以灵活的但是可靠的方式来充分保护应用程序和数据。
附图说明
本发明是通过示例而不是作为限制来说明的,当与附图一起考虑时并参考下列详细描述时,可以更完全地理解本发明,在附图中:
图1描绘了根据本公开的一个或多个方面的示例处理系统的高级组件图示;
图2示意地示出了根据本公开的一个或多个方面的用于通过多处理器平台产生平台清单的示例方法;
图3描绘了根据本公开的一个或多个方面的用于通过多处理器平台产生平台清单的示例方法的流程图;
图4描绘了根据本公开的一个或多个方面的在第二和随后的平台引导时用于在多处理器平台中进行处理器交叉认证的示例方法的流程图;
图5描绘了根据本公开的一个或多个方面的示例计算机系统的高级组件图示;
图6描绘了根据本公开的一个或多个方面的处理器的框图;
图7a-7b示意地示出了根据本公开的一个或多个方面的处理器微架构的要素;
图8描绘了根据本公开的一个或多个方面的示例计算机系统的框图;
图9描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图;
图10描绘了根据本公开的一个或多个方面的示例计算机系统的框图;以及
图11描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图。
具体实施方式
此处描述了用于实现对多处理器平台进行外部确认的处理系统以及相关的方法。由示例处理系统执行的应用程序和由这样的应用程序访问的数据可以在微架构级别被保护,例如,通过实现安全飞地,如下文比较详细地描述的。
根据本公开的一个或多个方面,处理系统可以包括耦合到在架构上受保护的存储器的处理核。处理核可以包括被配置成防止对在架构上受保护的存储器的未经授权的访问的控制逻辑。处理核还可以进一步包括被配置成通过执行访问驻留在在微架构上受保护的存储器中的数据的指令来实现安全飞地的执行逻辑,如下文比较详细地描述的。
在制造过程中,可以给每一个处理器提供身份密钥。处理器身份密钥可以被存储在由处理器包括的非易失性只读存储器中,诸如一组可编程的熔丝中。对于单处理器平台,处理器的身份密钥可以被用作平台身份密钥,以被提供给确认服务,也可以被用作密钥材料以产生用于安全飞地创建的一个或多个加密密钥。
因此,对于多处理器平台,飞地将接收不同的密钥,这取决于飞地运行所在的处理器,如果有效飞地从一个处理器迁移到另一处理器,可能会导致不可恢复的错误。多处理器平台还将需要产生平台标识符以便向确认服务呈现。
上文指出的及其他不足通过本公开的一个或多个方面,通过提供用于产生平台清单(包括由平台包括的处理器的身份密钥和由处理器产生并同步的平台身份密钥)多处理器平台和方法来解决,如下文比较详细地描述的。下面作为示例而并非作为限制地比较详细地描述了上面引用的方法和系统的各方面。
在下面的描述中,阐述了很多具体细节,诸如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量值/高度、特定处理器流水线级和操作的示例,以便提供对本发明的全面的理解。然而,对本领域普通技术人员显而易见的是,可以不必使用这些具体细节来实施此处所公开的方法。在其他情况下,没有详细描述已知的组件或方法,诸如特定和替代处理器架构、特定逻辑电路/用于描述算法的代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、代码中的算法的特定表达、特定断电和选通技术/逻辑及计算机系统的其他特定操作细节,以避免对本发明造成不必要的模糊。
虽然将处理器参考来描述下列各示例,但是,其他实现也适用于其他类型的集成电路和逻辑设备。可以将此处所描述的示例的类似的技术和原理应用于可以得益于较高流水线吞吐量和改善的性能的其他类型的电路或半导体器件。此处所描述的示例的原理适用于执行数据操纵的任何处理器或机器。然而,本发明不仅限于执行512比特、256比特、128比特、64 比特、32比特或16比特数据操作的处理器或机器,并可以应用于其中执行对数据的操纵或管理的任何处理器和机器。
然而,示出了本发明和附图的示例不应该以限制的方式来解释,因为它们只是提供此处所描述的各实施例的示例,而并非提供此处所描述的各实施例的所有可能的实现的详细清单。虽然下面的示例在执行单元以及逻辑电路的上下文中描述了指令处理和分布,但是此处所描述的系统和方法的其他实现可以通过存储在机器可读的、有形的介质上的数据或指令来完成,这些数据或指令当由机器执行时,使机器执行根据此处所描述的至少一个实施例的功能。在某些实现中,与此处所描述的各实施例相关联的功能是以机器可执行指令来实现的。指令可以用来使利用指令编程的通用或专用的处理器来执行此处所描述的方法。此处所描述的实现可以作为计算机程序产品或软件来提供,该计算机程序产品或软件可以包括在其上存储了机器或计算机可读介质,指令可以被用来编程计算机(或其他电子器件) 以执行根据此处所描述的各实施例的一个或多个操作。可另选地,可以由包含用于执行操作的固定功能逻辑的特定硬件组件,或由编程的计算机组件和固定功能硬件组件的任何组合,来执行此处所描述的系统和方法的操作。
用于编程逻辑以执行此处所描述的方法的指令可以存储在系统中的存储器内,诸如DRAM、缓存、闪存,或其他存储器。进一步的,指令可经由网络或其他计算机可读介质来分发。因此,计算机可读介质可包括用于以机器(诸如,计算机)可读的格式存储或发送信息的任何机制,但不限于:磁盘、光盘、致密盘只读存储器(CD-ROM)、磁光盘、只读存储器 (ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或在经由互联网通过电、光、声、或其他形式的传播信号(诸如,载波、红外信号、数字信号等)发送信息中所用的有形机器可读存储器。因此,计算机可读介质包括用于存储或发送机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。
此处“处理器”应该是指能够执行指令编码算术、逻辑或I/O操作的设备。在一个说明性示例中,处理器可以遵循冯诺依曼架构模型,并可以包括算术逻辑单元(ALU)、控制单元以及多个寄存器。另一方面,处理器可以包括一个或多个处理核,因此可以是通常能够处理单指令流水线的单核处理器,或同时可以处理多个指令流水线的多核处理器。在另一方面,处理器可以实现为单个集成电路,两个或更多个集成电路,或可以是多芯片模块(例如,其中,单个微处理器晶片被包括在单个集成电路封装中,因此共享单个插槽)的组件。
现在参考图1,所示是根据本公开的一个或多个方面的示例处理系统的框图。如图1所示,处理系统100可以包括一个或多个处理核111,每一个处理核111都具有与其相关联的本地第一级别(L1)缓存115。L1缓存 115可以可通信地耦合到共享末级缓存(LLC)120。在说明性示例中,包括L1缓存115和LLC 120的缓存层次结构可被配置成包括性的缓存层次结构,以便存储在L1缓存115中的信息的至少一部分还可以存储在LLC 120 中。
在各实现中,处理核111可以通过有序核或无序核来提供。在说明性示例中,处理核111可以具有包括用于实现指令集架构(ISA)的处理器逻辑和电路的微架构。带有不同的微架构的处理器可以共享共同的指令集的至少一部分。例如,ISA的相同寄存器架构可以使用各种技术,以不同的微架构,以不同的方式来实现,包括专用物理寄存器,使用寄存器重命名机制(例如,寄存器混叠表(RAT)的使用,重新排序缓冲器(ROB)以及退役寄存器组)的一个或多个动态分配的物理寄存器,如图6、 7a 、 7b 所示出的。在某些实现中,处理系统100还可以包括图1中未示出的各种其他组件。
根据本公开的一个或多个方面,处理系统100可以包括在架构上受保护的存储器。处理核111可以包括处理逻辑,所述处理逻辑被配置成通过执行驻留在受保护的存储器中的指令,并访问驻留在受保护的存储器中的数据,同时防止甚至被有特权的应用程序对受保护的存储器的未经授权的访问,来实现安全飞地,如下面更详细地描述的。
此处的“安全飞地”应该是指应用程序的地址空间内的受保护的区域。防止不常驻在飞地中的应用程序对飞地存储器的访问,即使这样的访问是由诸如BIOS、操作系统或虚拟机监视器之类的有特权的应用程序尝试的。
有效的安全飞地可以被分成经加密的部分和解密的部分。经加密的部分可以驻留在无保护的存储器中(诸如主存储器或磁盘)。解密的部分驻留在飞地页面缓存(EPC)182中。EPC是处理系统用来临时存储飞地页面 (当它们未用密码保护时)的受保护的存储器。EPC可以被分成预先定义的大小的页面,这些页面可以被称为EPC页面。防止EPC被驻留在飞地外面的软件的任何访问。此外,未经授权的各方将不能够读取或修改属于飞地的通过直接的硬件攻击加载到EPC中的明文数据。EPC位于处理系统的物理地址空间内,但是,只能被使用用于构建和启用飞地、进入/退出飞地、管理EPC,以及执行各种其他操作的有特权的或没有特权的飞地指令来访问。
有多个实现EPC的机制。EPC可以实现为管芯上的静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。可另选地,EPC可以通过CPU的末级缓存的分离方式来构建。实现EPC的另一种机制是存储器加密引擎(MEE)。此处MEE应该是指硬件实现的处理逻辑,该处理逻辑加密处理器包和平台DRAM之间的通信量,如此,提供使用平台DRAM来创建密码保护的易失性存储器的机制。MEE可截取所尝试的存储器访问,并将那些访问路由到密码控制器,该密码控制器可以生成对平台DRAM的一个或多个存储器访问,以获取密码文本,处理密码文本,以生成明文,并满足原始存储器访问请求。
再次参考图1,L1缓存115可以往返于LLC 120传输数据。存储器控制器150可以连接到末级缓存120和MEE 180。存储器控制器150可以访问驻留在物理地址空间188内的备用存储器设备186上的EPC 182。
飞地页面缓存映射(EPCM)是处理系统用来跟踪EPC的内容的受保护的结构。EPCM可以包括多个条目,每一个条目都对应于EPC中的页面。每一个EPCM条目都可以以依赖于实现的格式保存下列信息:EPC页面是否有效;拥有页面的飞地实例的标识符;页面类型(REG、TCS、VA、SECS);允许飞地通过其访问页面的虚拟地址;对于页面的读/写/执行权限;页面是否可访问(被阻断或解除阻断)。
EPCM可以被处理系统用于地址转换流中,以对加载到EPC中的飞地页面实施访问控制。逻辑地,除“旧式”分割、分页表和扩展的分页表机制之外,它还提供访问控制的额外的安全层。
EPC、EPCM以及各种其他实现特定的数据结构可以被映射到在架构上受保护的存储器内的位置。当生成访问EPC的请求时,处理系统100可以将请求重新映射到包含经加密的EPC数据的备用存储器位置,并检索数据。
各种飞地相关的功能可以以微代码实现,由MEE的硬件实现以及实现飞地功能的处理逻辑支持。在某些实现中,处理逻辑可以通过转换后援缓冲器(TLB)164和页面丢失处理程序(PMH)168来控制对EPC 182的访问。
在说明性示例中,TLB可以实现为将虚拟地址映射到物理地址的表。“TLB命中”是指当被请求的虚拟地址存在于TLB中的情况。“TLB未命中”是指相反的情况:当被请求的虚拟地址不存在于TLB中时,可以通过查找页面表,继续地址转换。在确定物理地址之后,可以向TLB中输入虚拟地址到物理地址映射。
每一个TLB条目都可以包括一个或多个比特,这些比特指出拥有由 TLB条目引用的存储器位置的飞地。可另选地,如果未提供这些比特,则当退出安全飞地时,将需要TLB清空,以防止对EPC的未经授权的访问。在说明性示例中,如果发生TLB未命中,则额外查找可以从多个存储器引用上的EPC映射获取数据。PMH可以执行对EPC映射的查询。
处理系统100可以实现称为“证明”的机制,该机制可以被处理系统用来向外部实体(例如,远程计算机系统)表明软件模块已经在处理系统上适当地实例化。在某些实现中,处理系统100可以产生标识硬件平台的身份密钥。在说明性示例中,在飞地内执行的应用程序可以向确认服务提供身份密钥。在验证身份密钥时,确认服务可以发出证明密钥,并还可以进一步向供应服务传输证明密钥。然后,由处理系统执行的安全飞地应用程序可以将其身份密钥传输到该供应服务,以便检索安全敏感数据。
在制造过程中,可以给每一个处理器提供身份密钥。处理器身份密钥可以存储在由处理器包括的非易失性只读存储器中,诸如一组可编程的熔丝中。对于单处理器平台,处理器的身份密钥可以被用作平台身份密钥,以被提供到确认服务,也可以被用作密钥材料以产生用于安全飞地创建的一个或多个加密密钥。在某些实现中,每一个安全飞地都可以使用 EGETKEY指令来请求一个或多个密钥。
因此,对于多处理器平台,取决于飞地运行所在的处理器,飞地将接收不同的密钥,如果有效飞地从一个处理器迁移到另一处理器,可能会导致不可恢复的错误。多处理器平台还将需要产生平台标识符以便向确认服务呈现。
根据本公开的一个或多个方面,多处理器平台可以产生平台清单,包括由平台包括的处理器的身份密钥和由处理器产生并同步的平台身份密钥,如下面更详细地描述的。
参考图2描述了产生平台清单的方法的示例。在图3中呈现了示例方法的流程图。如图2示意地示出的,平台200可以包括多个处理器包210。尽管下面的描述引用了两个处理器包,但是,此处所描述的方法同样适用于包括任意数量的处理器的处理平台。
在平台最初引导或复位时,处理器210A-210B中的每一个都可以查明平台清单是否存储在可被相应的处理器访问的非易失性存储器的预先定义的位置。如果平台清单丢失或无效,处理器210就可以协商长期处理器间通信(IPC)密钥220,用于保护用于产生平台清单230的接着发生的处理器间通信。在说明性示例中,处理器210可以实现非认证的密钥协商协议 (例如,Diffie-Hellman密钥交换协议)。
然后,处理器可以使用所协商的处理器间通信密钥220,建立受保护的通信信道,并使用该通信信道来交换它们的身份密钥并同步一组安全属性。后者可以包括平台身份密钥225以及要被平台使用的确认服务的标识符。在说明性示例中,确认服务标识符可以包括确认服务的公钥。
在某些实现中,平台身份密钥225可以通过平台的主控处理器来生成。可以通过每一个处理器读取预先定义的BIOS设置来选择后者。主控处理器可以生成平台身份密钥(例如,通过使用随机数生成器)。在说明性示例中,平台身份密钥可以通过128比特数字来提供。在另一说明性示例中,平台身份密钥可以包括一个或多个对称的和/或非对称的密钥。主控处理器还可以进一步接收确认服务240的标识符和公钥,例如,通过读取预先定义的BIOS设置。主控处理器可以使用被长期通信密钥保护的安全通信信道,将平台身份密钥和确认服务的标识符传递到平台的其他处理器,如此处所描述的,长期通信密钥是由平台处理器协商的。
在与平台的其他处理器同步安全属性时,平台的每一个处理器都可以使用其身份密钥,加密包括平台身份密钥和长期处理器间通信密钥的密钥块(blob)250。在某些实现中,密钥块还可以进一步包括确认服务标识符。处理器可以将密钥块存储在非易失性存储器255(例如,闪存或硬盘驱动器) 的预先定义的位置,并可以在随后的平台引导时检索密钥块。
在与平台的其他处理器同步安全属性时,平台的每一个处理器都还可以进一步创建平台清单230,包括平台身份密钥和平台的处理器的身份密钥。然后,每一个处理器都可以利用确认服务的公钥来加密清单,并将经加密的清单传输到确认服务240。
确认服务240可以通过解密并认证接收到的平台清单,并对照存储了所有有效处理器身份密钥的权威性的数据源(例如,处理器的制造商或经销商)验证每一个处理器的身份密钥,来验证平台。确认服务还可以进一步查明,已经从由平台包括的所有处理器接收到清单,如此,防止处理器试图隐藏它们在平台中的存在。
响应于成功地验证平台的所有处理器,确认服务可以将平台身份密钥 225记录到密钥供应数据库260中,并发出证明密钥270。确认服务还可以进一步将平台证明密钥传输到供应服务280。然后,由处理系统200执行的安全飞地应用程序290可以将其平台身份密钥225传输到供应服务,以便检索安全敏感数据。
在某些实现中,通信信道对外部确认服务的可用性可以只在平台的最初引导时需要。在随后的引导时,每一个处理器都可以检索存储在预先定义的非易失性存储器位置处的密钥块,并解密平台身份密钥和长期处理器间通信密钥。然后,每一个处理器都可以使用长期处理器间通信密钥,与平台的其他处理器建立安全通信信道,以便重新认证平台的其他处理器。在由平台的每一个处理器查明在最后一次引导之前存在的所有处理器都仍存在于平台中,没有新的处理器被添加到平台时,平台可以声明其自己为符合由确认服务以前确认的配置。
可以通过向以前确认了平台的确认服务传输包括新添加的处理器的身份密钥的请求,向以前确认的平台添加新的处理器。响应于验证新添加的处理器的身份密钥,确认服务可以以批准消息作出响应。新添加的处理器可以将接收到的批准消息存储在预先定义的非易失性存储器位置中。在下一平台重新引导时,新添加的处理器可以从非易失性存储器位置检索批准消息,并向平台的其他处理器呈现批准消息,以便交换长期处理器间通信密钥,如上文比较详细地描述。然后,新添加的处理器可以通过利用长期处理器间通信密钥保护的通信信道,从现有的处理器接收平台身份密钥。
在某些实现中,允许向确认的平台添加处理器以及删除处理器可以产生这样的情况:以前由共同的平台包括的两个处理器拆分成它们自己的平台,第二处理器被添加到两个新的平台。由于第一处理器拥有包括初始平台的平台身份密钥的密钥块,因此,后者可以由两个新的平台共享。过程可以重复,如此,潜在地导致任意数量的平台共享相同平台身份密钥。
为防止上文所描述的情况的可能的发生,可以在平台的绑定中包括芯片组。芯片组可以建立唯一平台标识符。每一个处理器都可以将平台标识符值存储在其密钥块中。在重新引导时,处理器可以从芯片组请求平台标识符,并将接收到的值与从密钥块检索到的平台标识符进行比较。如果两个值匹配,则密钥块属于当前平台。否则,处理器可以启动平台确认过程,如上文所描述的。
图3描绘了根据本公开的一个或多个方面的用于通过多处理器平台产生平台清单的示例方法的流程图。方法300可以由可以包括硬件(例如,电路、专用逻辑和/或可编程逻辑)、软件(例如,可在计算机系统上执行以执行硬件模拟的指令)或其组合的计算机系统来执行。方法300和/或其函数、例程、子例程或操作中的每一个都可以由执行方法的计算机系统的一个或多个物理处理器来执行。方法300的两个或更多函数、例程、子例程或操作可以并行地或按照可以不同于上文所描述的顺序的顺序来执行。在某些实现中,方法300可以由单一处理线程执行。可另选地,方法300 可以由两个或更多处理线程执行,每一个线程都执行方法的一个或多个单个函数、例程、子例程或操作。在说明性示例中,实现方法300的处理线程可以被同步(例如,使用旗语(semaphore)、关键部分,和/或其他线程同步机制)。可另选地,实现方法300的处理线程可以相对于彼此异步地执行。在一个示例中,如图3所示出的,方法300可以由下文所描述的并由图5-11所示出的计算机系统执行。
参考图3,在框310,两个或更多处理器可以协商处理器间通信密钥以建立安全通信信道。在说明性示例中,处理器可以实现匿名(非认证的) 密钥协商协议(例如,Diffie-Hellman密钥交换协议),如上文比较详细地描述的。
在框320,平台处理器可以使用安全通信信道来交换它们的身份密钥,并同步一组安全属性。后者可以包括平台身份密钥以及要被平台使用的确认服务的标识符。
在框330,平台可以指定主控处理器。在说明性示例中,主控处理器可以由BIOS设置来标识。
在框340,主控处理器可以生成平台身份密钥(例如,通过使用随机数生成器)。在说明性示例中,平台身份密钥可以通过128比特数字来提供。
在框350,主控处理器可以接收外部确认服务的标识符和公钥,例如,通过读取预先定义的BIOS设置。
在框360,平台处理器可以同步包括平台身份密钥和确认授权标识符的平台安全属性。主控处理器可以使用受上文参考框310所描述的经协商的长期通信密钥保护的安全通信信道,将平台身份密钥和确认服务的标识符传递到平台的其他处理器。
在框370,每一个平台处理器都可以使用其身份密钥,来加密包括平台身份密钥和长期处理器间通信密钥的密钥块。如上文比较详细地描述的,处理器可以将密钥块存储在非易失性存储器的预先定义的位置。
在框380,每一个平台处理器都可以创建平台清单,包括平台身份密钥和平台的处理器的身份密钥。
在框380,每一个平台处理器都可以利用确认服务的公钥来对平台清单进行标记并加密它,并将经加密的清单传输到确认服务,用于验证,如上文比较详细地描述的。
图4描绘了根据本发明的一个或多个方面的在第二和随后的平台引导时用于在多处理器平台中进行处理器交叉认证的示例方法的流程图。方法 400可以由可以包括硬件(例如,电路、专用逻辑和/或可编程逻辑)、软件(例如,可在计算机系统上执行以执行硬件模拟的指令)或其组合的计算机系统来执行。方法400和/或其函数、例程、子例程或操作中的每一个都可以由执行方法的计算机系统的一个或多个物理处理器来执行。方法400 的两个或更多函数、例程、子例程,或操作可以并行地或按照可以不同于上文所描述的顺序的顺序来执行。在某些实现中,方法400可以由单一处理线程执行。可另选地,方法400可以由两个或更多处理线程执行,每一个线程都执行方法的一个或多个单个函数、例程、子例程、或操作。在说明性示例中,实现方法400的处理线程可以被同步(例如,使用旗语、关键部分,和/或其他线程同步机制)。可另选地,实现方法400的处理线程可以相对于彼此异步地执行。在一个示例中,如图4所示出的,方法400 可以由下文所描述的并由图5-11所示出的计算机系统执行。
在框410,在平台重新引导时,每一个平台处理器都可以检索先前存储在预先定义的非易失性存储器位置处的密钥块,如上文比较详细地描述的。
在框420,每一个平台处理器都可以解密密钥块,以产生平台身份密钥和长期处理器间通信密钥。
在框430,每一个平台处理器都可以使用长期处理器间通信密钥,与平台的其他处理器建立安全通信信道,以便重新认证平台的其他处理器。
在框440,在由平台的每一个处理器查明在最后一次引导之前存在所有处理器仍存在于平台中,并且没有向平台添加新的处理器时,平台可以声明其自己为符合由确认服务以前确认的配置。
虽然此处参考特定集成电路(诸如处理器)描述了各种系统和方法,但其他实现也可以适用于其他类型的集成电路和逻辑设备。可以将此处所描述的系统和方法的技术和原理应用于也可以得益于更好的能量效率和能量节约的其他类型的电路或半导体器件。例如,所公开的实现不仅限于任何特定类型的计算机系统,也可以用于诸如手持式设备、片上系统(SOC) 设备以及嵌入式应用之类的其他设备中。手持式设备的某些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)以及手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、网络计算机 (NetPC)、机顶盒、网络集线器、广域网(WAN)交换机,或能够执行下面教导的功能和操作的任何其他系统。此外,此处所描述的系统和方法不仅限于物理计算设备,也可以涉及软件实现的方法。由此处所描述的系统和方法实现的电能节省可以独立于基于操作系统(OS)的机制,诸如高级配置和平台接口(ACPI)标准,并与其互补。
此处所描述的方法和系统可以通过对于膝上型计算机、台式机、手持式PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持式设备,以及各种其他电子设备的各种架构、设计和配置的计算机系统来实现,也适用于实现此处所描述的方法。一般而言,如此处所公开的能够包括处理器和/或其他执行逻辑的各种系统或电子设备一般适用于实现此处所描述的系统和方法。
图5描绘了根据本公开一个或多个方面的计算机系统的一个示例的高级的组件图示。根据此处所描述的实施例,计算机系统100可以包括两个或更多处理器110,其中包括被配置成执行用于产生平台清单来实现外部平台确认的方法的处理逻辑。系统100是基于位于加利福尼亚州圣克拉拉市的英特尔公司所提供的PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM的微处理器的处理系统的代表,虽然也可以被用来其他系统(包括具有其他微处理器的PC、工程工作站、机顶盒等等)。在一个实施例中,示例系统100执行位于美国华盛顿州雷蒙德市的微软公司所提供的WINDOWSTM操作系统的一种版本,虽然也可以使用其他操作系统(例如,UNIX和Linux)、嵌入式软件和/或图形用户界面。如此,此处所描述的各实施例不仅限于硬件电路和软件的任何特定的组合。
在说明性示例中,处理器110包括实现将执行至少一个指令的算法的一个或多个执行单元108。可以在单处理器台式机或服务器系统的上下文中来描述一个实施例,但是,替换实施例可以被包括在多处理器系统中。系统100是“中枢”系统架构的示例。在一个说明性示例中,处理器110包括复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集的组合的处理器或任何其他处理器设备,诸如,例如,数字信号处理器。处理器110耦合到在处理器110及系统100中的其他组件之间传输数据信号的处理器总线110。系统 100的元件(例如,图形加速器112、存储器控制器中枢116、存储器120、 I/O控制器中枢124、无线收发器126、闪存BIOS 128、网络控制器134、音频控制器136、串行扩展端口138、I/O控制器140、等等)执行本领域普通技术人员所共知的它们的常规功能。
在一个实施例中,处理器110包括1级(L1)内部缓存。取决于架构,处理器110可以具有单个内部缓存或多级内部缓存。取决于特定实现以及需求,其他实施例包括内部和外部缓存两者的组合。寄存器组106将不同类型的数据存储在各种寄存器中,包括整数寄存器、浮点寄存器、向量寄存器、分组寄存器、影子寄存器(shadow register)、检查点寄存器、状态寄存器以及指令指针寄存器。
执行单元108(包括执行整数和浮点操作的逻辑)也位于处理器110 中。在一个实施例中,处理器110包括存储微代码的微代码(ucode)ROM,该微代码在被执行时将执行某些宏指令的算法或处理复杂情况。这里,微代码是潜在地可更新的,以为处理器110处理逻辑缺陷/修补。对于一个实施例,执行单元108包括处理打包指令集109的逻辑。通过将打包指令集 109包括在通用处理器110的指令集内并包括相关的电路以执行这些指令,可使用通用处理器110中的打包数据来执行许多多媒体应用所使用的操作。如此,通过使用全宽的处理器的数据总线来对打包的数据执行操作,许多多媒体应用程序被加速并且更有效率地被执行。这潜在地消除了跨处理器的数据总线来传输较小单位的数据以执行一个或多个操作(一次一个数据元素)的必要性。执行单元108的替换实施例也可以用于微控制器、嵌入式处理器、图形设备、DSP及其他类型的逻辑电路中。
系统100包括存储器120。存储器120包括动态随机存取存储器 (DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备或其他存储器设备。存储器120存储要由处理器110执行的指令129和/或通过数据信号来表示的数据123。在某些实现中,指令129可以包括使用安全飞地执行逻辑的指令,如上文比较详细地描述的。
系统逻辑芯片116耦合至处理器总线110和存储器120。在所示出的实施例中的系统逻辑芯片116是存储器控制器中枢(MCH)。处理器110 可经由处理器总线110与MCH 116通信。MCH 116提供至存储器120的高带宽存储器路径118,用于指令和数据存储,以及用于存储图形命令、数据和文本。MCH 116将在处理器110、存储器120及系统100中的其他组件之间定向数据信号,并在处理器总线110、存储器120以及系统I/O 122之间桥接数据信号。在一些实施例中,系统逻辑芯片116可提供耦合至图形控制器112的图形端口。MCH 116经由存储器接口118耦合至存储器120。图形卡112通过加速图形端口(AGP)互连114耦合至MCH 116。
系统100使用外围设备中枢接口总线122以将MCH 116耦合至I/O控制器中枢(ICH)130。ICH 130经由局部I/O总线提供至一些I/O设备的直接连接。局部I/O总线是高速I/O总线,用于将外围设备连接至存储器120、芯片组以及处理器110。一些示例是音频控制器、固件中枢(闪存BIOS) 128、无线收发机126、数据存储器124、包括用户输入和键盘接口的传统I/O控制器、串行扩展端口(诸如通用串行总线USB)以及网络控制器134。数据存储设备124可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备、或其他大容量存储设备。
对于系统的另一个实施例,根据一个实施例的指令可被用于芯片上系统。芯片上系统的一个实施例包括处理器和存储器。用于这样一个系统的存储器是闪存存储器。闪存存储器可位于与处理器和其他系统组件相同的管芯上。此外,诸如存储器控制器或图形控制器之类的其他逻辑块也可位于芯片上系统上。
图6是根据本公开的一个或多个方面的包括执行指令的逻辑电路的处理器200的微架构的框图。在一些实施例中,根据一个实施例的指令可被实现为对具有字节大小、字大小、双字大小、四字大小等并具有诸多数据类型(诸如单精度和双精度整数和浮点数据类型)的数据元素执行操作。在一个实施例中,有序前端201是处理器200的一部分,其获取将要被执行的指令,并准备这些指令以在稍后供处理器流水线使用。前端201可包括若干单元。在一个实施例中,指令预取器226从存储器获取指令,并将指令馈送至指令解码器228,指令解码器228随后解码或解释指令。例如,在一个实施例中,解码器将接收到的指令解码为机器可以执行的一个或多个叫做“微指令”或“微操作”的操作。在其他实施例中,解码器将指令解析为操作码和对应的数据及控制字段,它们被微架构用于执行根据一个实施例的操作。在一个实施例中,追踪缓存230接受经解码的微操作,并将它们组装为程序有序序列或微操作队列234中的踪迹,以用于执行。当追踪缓存230遇到复杂指令时,微代码ROM 232提供完成操作所需的微操作。
一些指令被转换为单个微操作,而其他指令需要若干个微操作以完成整个操作。在一个实施例中,如果需要四个以上的微操作才能完成指令,则解码器228访问微代码ROM232来执行指令。对于一个实施例,指令可被解码为少量的微操作以用于在指令解码器228处进行处理。在另一个实施例中,如果需要若干微操作来完成操作,则可将指令存储在微代码ROM 232中。跟踪缓存230引用入口点可编程逻辑阵列(PLA)来确定用于从微代码ROM 232中读取微代码序列的正确的微指令指针,以完成根据一个实施例的一个或多个指令。在微代码ROM 232完成对于指令的微操作序列化之后,机器的前端201恢复从追踪缓存230获取微操作。
无序执行引擎203是将指令准备好用于执行的单元。无序执行逻辑具有若干个缓冲器,用于将指令流平滑并且重排序,以优化指令流进入流水线后的性能,并调度指令流以供执行。分配器逻辑分配每个微操作需要的机器缓冲器和资源,以用于执行。寄存器混叠使用逻辑将逻辑寄存器映射到寄存器组中的条目。在指令调度器(存储器调度器、快速调度器202、慢速/通用浮点调度器204、简单浮点调度器206)之前,分配器也将每个微操作的条目分配入两个微操作队列中的一个,一个队列用于存储器操作,另一个队列用于非存储器操作。微操作调度器202、204、206基于它们的依赖的输入寄存器操作数源的就绪状态以及微操作完成它们的操作所需的执行资源的可用性,来确定微操作何时准备好执行。一个实施例的快速调度器202可以在主时钟周期的每一半调度,而其他调度器只能每个主处理器时钟周期调度一次。调度器对分配端口进行仲裁以调度微操作以便执行。
物理寄存器组208、210在调度器202、204、206和执行块211中的执行单元212、214、216、218、220、222、224之间。对于整数和浮点运算,分别有单独的寄存器组208、210。一个实施例的每个寄存器组208、210 也包括旁路网络,旁路网络可将刚完成的还没有被写入寄存器组的结果旁路或转发给新的依赖微操作。整数寄存器组208和浮点寄存器组210也能够彼此通信数据。对于一个实施例,整数寄存器组208被划分为两个单独的寄存器组,一个寄存器组用于低阶的32位数据,第二个寄存器组用于高阶的32位数据。一个实施例的浮点寄存器组210具有128位宽度的条目,因为浮点指令通常具有从64至128位宽度的操作数。
执行块211包括执行单元212、214、216、218、220、222、224,在执行单元212、214、216、218、220、222、224中实际执行指令。该区块包括寄存器组208、210,寄存器组208、210存储微指令需要执行的整数和浮点数据操作数值。一个实施例的处理器200由若干个执行单元所组成。一个实施例的处理器200包括有若干个执行单元:地址生成单元(AGU) 212、AGU214、快速ALU 216、快速ALU 218、慢速ALU 220、浮点ALU 222、浮点移动单元224。对于一个实施例,浮点执行块222、224执行浮点、 MMX、SIMD、SSE以及其他操作。一个实施例的浮点ALU 222包括64 位/64位浮点除法器,用于执行除法、平方根、以及余数微操作。对于此处所描述系统和方法,可以利用浮点硬件来处理涉及浮点值的指令。在一个实施例中,ALU操作进入高速ALU执行单元216、218。一个实施例的高速ALU 216、218可执行高速操作,有效等待时间为半个时钟周期。对于一个实施例,大多数复杂整数操作进入慢速ALU 220,因为慢速ALU 220包括用于长等待时间类型操作的整数执行硬件,诸如,乘法器、移位器、标记逻辑和分支处理。存储器加载/存储操作由AGU 212、214来执行。对于一个实施例,整数ALU 216、218、220是在对64比特数据操作数执行整数操作的上下文中描述的。在替换实施例中,ALU216、218、220可被实现为支持各种数据比特,包括16、32、128、256等等。类似地,浮点单元222, 224可被实现为支持具有各种宽度的比特的操作数的范围。对于一个实施例,浮点单元222、224可以结合SIMD和多媒体指令对128比特宽的打包数据操作数进行操作。
在一个实施例中,微操作调度器202、204、206在父加载完成执行之前分派依赖的操作。因为在处理器200中微操作被投机地调度和执行,所以处理器200也包括处理存储器未命中的逻辑。如果数据加载在数据缓存中未命中,则可能存在带有临时错误数据离开调度器并运行在流水线中的依赖操作。重放机制跟踪使用错误数据的指令,并重新执行这些指令。依赖的操作应该被重播,而独立的操作被允许完成。处理器的一个实施例的调度器和重播机制还被设计为捕捉用于文本字符串比较操作的指令序列。
术语“寄存器”指代被用作为指令的一部分以标识操作数的板上处理器存储位置。换句话说,寄存器是那些处理器外部(从编程者的角度来看) 可用的处理器存储位置。然而,一实施例的寄存器不限于表示特定类型的电路。相反,一实施例的寄存器能够存储并提供数据,并且能够执行在此所述的功能。此处所描述的寄存器可以通过处理器内的电路使用任意数量的不同的技术来实现,诸如专用物理寄存器、使用寄存器混叠的动态地分配的物理寄存器、专用和动态地分配的物理寄存器的组合等等。在一个实施例中,整数寄存器存储32比特整型数据。一个实施例的寄存器组也包含八个多媒体SIMD寄存器,用于打包数据。对于下面的讨论,寄存器被理解为是被设计为保存打包的数据的数据寄存器,诸如利用加利福尼亚州 Santa Clara的Intel Corporation的MMXTM技术实现的微处理器中的64比特宽MMX寄存器(在某些情况下,也简称为“mm”寄存器)。这些MMX 寄存器(可用在整数和浮点格式中)可与伴随SIMD和SSE指令的打包数据元素一起操作。类似地,涉及SSE2、SSE3、SSE4或更新的技术(统称为“SSEx”)的128位宽XMM寄存器也可被用于保持这样打包数据操作数。在一个实施例中,在存储打包数据和整数数据时,寄存器不需要区分这两类数据类型。在一个实施例中,整数和浮点数据可被包括在相同的寄存器组中,或被包括在不同的寄存器组中。进一步的,在一个实施例中,浮点和整数数据可被存储在不同的寄存器中,或被存储在相同的寄存器中。
图7a-7b示意地示出了根据本公开的一个或多个方面的处理器微架构的要素。在图7a中,处理器流水线400包括提取级402、长度解码级404、解码级406、分配级408、重命名级410、调度(也称为分派或发布)级412、寄存器读取/存储器读取级414、执行级416、回写/存储器写入级418、异常处理级422、以及提交级424。
在图7b中,箭头表示两个或更多单元之间的耦合,箭头的方向指出那些单元之间的数据流动的方向。图7b示出了处理器核111,包括耦合到执行引擎单元450的前端单元430,执行引擎单元450和前端单元430两者都耦合到存储器单元470。
核111可以是精简指令集计算(RISC)核、复杂指令集计算(CISC) 核、超长指令字(VLIW)核或混合或替代核类型。作为另一个选项,核 111可以是专用核,诸如网络或通信核、压缩引擎、图形核或类似物。
前端单元430包括耦合到指令缓存单元434的分支预测单元432,该指令缓存单元耦合到指令转换后备缓冲器(TLB)436,该指令转换后备缓冲器耦合到指令取出单元438,指令取出单元耦合到解码单元440。解码单元或解码器可解码指令,并生成一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出,这些输出是从原始指令中解码出、或以其他方式反映原始指令、或是从原始指令中推导而出的。解码器可使用各种不同的机制来实现。合适的机制的示例包括但不限于:查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等等。指令缓存单元434进一步耦合至存储器单元470中的第二级(L2)缓存单元476。解码单元440耦合至执行引擎单元450中的重命名/分配器单元452。
执行引擎单元450包括重命名/分配器单元452,该重命名/分配器单元耦合至引退单元454和一个或多个调度器单元456的集合。调度器单元456 表示任何数目的不同调度器,包括预留站、中央指令窗等。调度器单元456 耦合到物理寄存器组单元458。物理寄存器组单元458中的每一个都表示一个或多个物理寄存器组,其中不同的文件存储一种或多种不同的数据类型,诸如标量整数、标量浮点、打包整数、打包浮点、向量整数、向量浮点等等、状态(例如,是要被执行的下一指令的地址的指令指针)等等。物理寄存器组单元458被隐退单元454重叠,以示出可以实现寄存器混叠使用和无序执行的各种方式(例如,使用重新排序缓冲器和隐退寄存器组,使用未来的文件,历史缓冲器,以及隐退寄存器组;使用寄存器图和寄存器的池;等等)。通常,架构寄存器从处理器外部或从编程者的视角来看是可见的。这些寄存器不限于任何已知的特定电路类型。多种不同类型的寄存器可适用,只要它们能够存储并提供在此所述的数据。合适的寄存器的示例包括,但不仅限于,专用物理寄存器,使用寄存器混叠的动态地分配的物理寄存器,专用和动态地分配的物理寄存器的组合,等等。隐退单元 454和物理寄存器组单元458耦合到执行群集460。执行群集460包括一个或多个执行单元162的集合和一个或多个存储器访问单元464的集合。执行单元462可以对各种类型的数据(例如,标量浮点、打包整数、打包浮点、向量整型、向量浮点)执行各种操作(例如,移位、加法、减法、乘法)。
尽管一些实施例可以包括专用于特定功能或功能组的若干个执行单元,但是,其他实施例可以包括一个执行单元或所有都执行所有功能的多个执行单元。调度器单元456、物理寄存器组单元458,以及执行群集460 被示为可能是多个,因为某些实施例对于某些类型的数据/操作创建单独的流水线(例如,标量整数流水线、标量浮点/打包整数/打包浮点/向量整数/ 向量浮点流水线,和/或存储器访问流水线,每一个流水线都具有它们自己的调度器单元、物理寄存器组单元,和/或执行群集——在单独的存储器访问流水线的情况下,实现了其中只有此流水线的执行群集具有存储器访问单元464的某些实施例)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以为无序发布/执行,并且其余流水线可以为有序发布/执行。
存储器访问单元464的集合耦合到存储器单元470,该存储器单元包括耦合到数据缓存单元472的数据TLB单元474,其中数据缓存单元耦合到二级(L2)缓存单元476。在一个示例性实施例中,存储器访问单元464 可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦合至存储器单元470中的数据TLB单元472。L2缓存单元476耦合到一个或多个其他级的缓存,并最终耦合到主存储器。
作为示例,示例性寄存器混叠、无序发布/执行核架构可以按如下方式实现流水线400:指令获取438执行获取和长度解码级402以及404;解码单元440执行解码级406;重命名/分配器单元452执行分配级408和重命名级410;调度器单元456执行调度级412;物理寄存器组单元458和存储器单元470执行寄存器读取/存储器读取级414;执行群集460执行“执行级416”;存储器单元470和物理寄存器组单元458执行写回/存储器写入级418;涉及异常处理级422中可以涉及各种单元;以及,隐退单元454 和物理寄存器组单元458执行提交级424。
核111可以支持一个或多个指令集(例如,x86指令集(带有与较新的版本一起添加的某些扩展);位于美国加州桑尼维尔的MIPS Technologies 的MIPS指令集;位于美国加州桑尼维尔的ARM Holdings的ARM指令集 (带有诸如NEON之类的可选的额外的扩展)。
在某些实现中,核可以支持多线程(执行操作或线程的两个或更多并行组),并可以以各种方式达到这一目的,包括时间切片多线程、同时的多线程(其中,单个物理核为物理核同时正在多线程处理的每一个线程提供一种逻辑核)或其组合(例如,时间切片获取和解码和此后的同时的多线程处理,诸如在Hyperthreading技术中)。
尽管寄存器混叠使用是在无序执行的上下文中描述的,但是,应该理解,寄存器混叠可以用于有序架构中。虽然处理器的所示出的实施例也包括单独的指令和数据缓存单元434/474以及共享的L2缓存单元476,但替代的实施例也可具有用于指令和数据的单个内部缓存,诸如例如第一级(L1) 内部缓存、或多个级别的内部缓存。在一些实施例中,该系统可包括内部缓存和在核和/或处理器外部的外部缓存的组合。或者,所有缓存都可以在核和/或处理器的外部。
在某些实现中,处理器核111可以被设计为无序(OOO)核,以便通过一旦其操作数可用,就执行指令,而并非按程序顺序,来改善性能。然而,性能优点可能会被相当大的功率消耗增大抵消。当有多个执行线程可以供操作系统调度时,使用多个有序核而并非大的无序核可以改善处理器的能源消耗概况,而不会损害总体性能。如此,为改善处理器的性能和能源消耗可缩放性,后者可以被设计为支持可变数量的核,这取决于性能需求和可以用来供操作系统调度的线程的数量。
图8描绘了根据本公开的一个或多个方面的示例计算机系统的框图。如图8所示,多处理器系统700是点对点互连系统,并包括通过点对点互连750耦合的第一处理器770和第二处理器780。处理器770和780中的每一个都可以是能够执行输出表面位图向显示引擎的安全递送的处理系统 100的某个版本,如上文比较详细地描述的。尽管只利用两个处理器770、 780来示出,但是,可以理解,本发明的范围不仅限于此。在其他实施例中,一个或多个额外的处理器可以存在于示例计算机系统中。
处理器770和780被示为分别包括集成存储器控制器单元772和782。处理器770还包括作为其总线控制器单元的一部分的点对点(P-P)接口776 和778;类似地,第二处理器780包括点对点接口786和788。处理器770、 780可以使用点对点(P-P)接口电路778、788经由P-P接口750来交换信息。如图8所示,IMC 772和782将处理器耦合到相应的存储器,即存储器732和存储器734,这些存储器可以是本地附连到相应处理器的主存储器的部分。
处理器770、780可各自经由使用点对点接口电路776、790、794、798 的各个P-P接口752、754与芯片组786交换信息。芯片组790还可经由高性能图形接口739与高性能图形电路738交换信息。
共享缓存(未示出)可以被包括在任一处理器之内,或被包括在两个处理器外部但仍经由P-P互连与这些处理器连接,从而如果将某处理器置于低功率模式时,可将任一处理器或两个处理器的本地缓存信息存储在该共享缓存中。
芯片组790可经由接口796耦合至第一总线716。在一个实施例中,第一总线716可以是外围组件互连(PCI)总线,或诸如PCI Express总线之类的总线,或另一第三代I/O互连总线,虽然本公开的范围不仅限于此。
如图8所示,各种I/O设备714可连同总线桥716一起耦合到第一总线718,总线桥716将第一总线720耦合到第二总线2020。在一个实施例中,第二总线720可以是低引脚数(LPC)总线。在一个实施例中,多个设备可以耦合到第二总线720,包括例如键盘和/或鼠标722、通信设备727 以及可以包括指令/代码和数据730的存储单元728(诸如盘驱动器或其它海量存储设备)。进一步地,音频I/O 724可以耦合到第二总线720。
图9描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图。应用程序处理器910通过能够执行输出表面位图向显示引擎的安全递送的处理系统100的某个版本来提供,如上文比较详细地描述的。如由图9 所示意地示出的,互连单元902可以耦合到:应用处理器910,包括一个或多个核902A-N的集合和共享缓存单元(多个)906;系统代理单元910;总线控制器单元(多个)916;集成存储器控制器单元(多个)914;一个或多个媒体处理器920的集合,可包括集成图形逻辑908、用于提供静态和 /或视频照相机功能的图像处理器924、用于提供硬件音频加速的音频处理器926、以及用于提供视频编码/解码加速的视频处理器928;静态随机存取存储器(SRAM)单元930;直接存储器存取(DMA)单元932;以及显示单元940,用于耦合至一个或多个外部显示器。
图10描绘了根据本公开的一个或多个方面的示例计算机系统的框图。处理器1610可以通过能够执行输出表面位图向显示引擎的安全递送的处理系统100的某个版本来提供,如上文比较详细地描述的。
由图10所示意地示出的系统1600可以包括实现为IC,其一些部分,单独的电子设备,或其他模块、逻辑、硬件、软件、固件的组件的任何组合,或,适用于计算机系统中的其组合,或作为以别的方式包括在计算机系统的机架内的组件。图10的框图旨在示出计算机系统的许多组件的高级别视图。然而,可以理解,可以省略所示出的某些组件,可以存在额外的组件,并且在其他实现中可以有所示出的组件的不同的布局。
处理器1610可以通过微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器,或其他已知处理元件来提供。在所示出的实现中,处理器1610充当主处理单元,以及用于与系统1600的许多各种组件进行通信的中心枢纽。作为一个示例,处理器1600可以实现为片上系统 (SoC)。作为特定的说明性示例,处理器1610包括基于架构CoreTM的处理器,诸如i3、i5、i7或位于美国加利福尼亚州圣克拉拉市的英特尔公司所提供的另一这样的处理器。
处理器1610可以与系统存储器1615进行通信。在各实现中,单个存储器设备可以是不同的封装类型,诸如单管芯封装(SDP),双管芯封装 (DDP)或四管芯封装(1P)。在某些实现中,这些设备可以直接焊接到主板中,以提供较低剖面的解决方案,而在其他实现中,设备可以被配置为一个或多个存储器模块,这些存储器模块又可以通过给定连接器耦合到主板。其他存储器实现也是可以的,诸如其他类型的存储器模块,例如,不同的双列直插存储器模块(DIMM),包括但不限于microDIMM、 MiniDIMM。在一个说明性示例中,存储器的大小在2GB和16GB之间,并可被配置成DDR3LM封装或LPDDR2或LPDDR3存储器,其通过球栅阵列(BGA)焊接到主板中。
为提供诸如数据、应用程序、一个或多个操作系统等信息的持久性存储,大容量存储器1620还可以耦合到处理器1610。在某些实现中,为实现较薄的和较轻的系统设计以及改善系统响应性,大容量存储器1620可以通过SSD来实现。在其他实现中,大容量存储器可以主要通过带有较小量的 SSD存储器的硬盘驱动器(HDD)来实现,以充当SSD缓存,以在断电情况下实现上下文状态及其他这样的信息的非易失性存储,以便在系统活动的重新启动时可以进行快速的通电。
也如图10所示出的,闪存设备1622可以,例如,通过串行外围接口 (SPI),耦合到处理器1610。闪存设备1622可以提供系统软件的非易失性存储器,包括基本输入/输出软件(BIOS)以及系统的其他固件。
在各实现中,系统的大容量存储器可以通过SSD单独地提供或作为带有SSD缓存的磁盘、光学或其他驱动器来提供。在某些实现中,大容量存储器可以通过SSD来提供或作为与恢复(RST)缓存模块一起的HDD来提供。SSD缓存可被配置成单级缓存(SLC)或多级缓存(MLC)选项,以提供响应性的合适的级别。
各种输入/输出(IO)设备可以存在于系统1600内,包括,例如,可以通过在机架的盖子部分内配置的高清晰度LCD或LED面板提供的显示器1624。此显示器面板还可以提供触摸屏1625,其在显示器面板上方从外部适应,以便通过用户与此触摸屏的交互,用户输入可以被提供到系统,以实现所需操作,例如,关于信息显示,访问信息等等。在某些实现中,显示器1624可以通过显示器互连耦合到处理器1610,该显示器互连可被实现为高性能图形互连。触摸屏1625可以通过另一互连(在一个实施例中,可以是I2C互连)耦合到处理器1610。除触摸屏1625之外,经由触摸的用户输入也可以通过触摸板1630进行,触摸板1630可以在机架内配置,还可以与触摸屏1625耦合到相同I2C互连。
各种传感器可以存在于系统内,并可以以不同的方式耦合到处理器 1610。某些惯性和环境传感器可以通过传感器中枢1640,例如,通过I2C 互连,耦合到处理器1610。这些传感器可以包括加速度计1641、环境光传感器(ALS)1642、罗盘1643以及陀螺仪1644。其他环境传感器可以包括一个或多个热传感器1646,在某些实施例中,这些热传感器1646可以通过系统管理总线(SMBus)总线耦合到处理器1610。在某些实现中,也可以存在一个或多个红外线或其他热量感应元件,或用于感应用户的存在或移动的任何其他元件。
各种外围设备可以通过低管脚数(LPC)互连耦合到处理器1610。在某些实现中,各种组件可以通过嵌入式控制器1635耦合。这样的组件可包括键盘1636(例如,通过PS2接口耦合)、风扇1637以及热传感器1639。在某些实施例中,触摸板1630还可以通过PS2接口耦合到EC 1635。另外,符合可信计算组(TCG)TPM规范版本1.2(2003年10月2日)的安全性处理器,诸如可信平台模块(TPM)1638,也可以通过此LPC互连,耦合到处理器1610。
在某些实现中,外围端口可以包括高清晰度媒体接口(HDMI)连接器 (可以是不同的形状因子,诸如全尺寸、小型或微型);一个或多个USB 端口,诸如符合通用串行总线修订版3.0规范(2008年11月)的全尺寸外部端口,当系统处于“连接待机”状态并插入到AC墙上电源时,至少一个通电,用于对USB设备(诸如智能电话)充电。另外,还可以提供一个或多个ThunderboltTM端口。其他端口可以包括可被从外部访问的读卡器,诸如全尺寸SD-XC读卡器和/或用于WWAN的SIM读卡器(例如,8针脚读卡器)。对于音频,可以存在带有立体声音和麦克风功能(例如,组合功能)的3.5mm插孔,带有对于插孔检测的支持(例如,只支持使用盖子中的麦克风的耳机或在电缆中带有麦克风的耳机)。在某些实施例中,此插孔可以在立体声耳机和立体声麦克风输入之间重新定任务。此外,还可以提供用于耦合到AC块(brick)的电源插孔。
系统1600可以以各种方式,包括以无线方式,与外部设备进行通信。在图10 所示出的实施例中,存在各种无线模块,每一个无线模块都可以对应于为特定无线通信协议配置的无线电。用于在近距离(诸如近场)内进行无线通信的一种方式可以通过近场通信(NFC)单元1645,在一个实施例中,该单元1645可以通过SMBus与处理器1610进行通信。
额外的无线单元可包括其他近距离无线引擎,包括WLAN单元1650 和Bluetooth单元1652。通过使用WLAN单元1650,可以实现符合给定电气与电子工程师学会(IEEE)802.11标准的Wi-FiTM通信,而通过蓝牙单元 1652,可以进行通过蓝牙协议的近距离通信。这些单元可以通过,例如, USB链路或通用异步收发器(UART)链路,与处理器1610进行通信。或者,这些单元可以通过符合外围组件互连ExpressTM(PCIeTM)协议的互连,例如,符合PCIExpressTM规范Base规范版本3.0(2007年1月17日),或另一这样的协议,诸如串行数据输入/输出(SDIO)标准,耦合到处理器 1610。当然,可以在一个或多个插入式卡上配置的这些外围设备之间的实际物理连接,可以通过适用于主板的NGFF连接器。
另外,无线广域通信,例如,符合蜂窝式或其他无线广域协议的,可以通过WWAN单元1656进行,该WWAN单元1656又可以耦合到用户标识模块(SIM)1657。另外,为允许接收并使用位置信息,还可以存在GPS 模块1655。
为提供音频输入和输出,可以通过数字信号处理器(DSP)1660来实现音频处理器,DSP 1660可以通过高清晰度音频(HDA)链路来耦合到处理器1610。类似地,DSP 1660可以与集成的编码器/解码器(CODEC)和放大器1662进行通信,放大器1662又可以耦合到可以在机架内实现的输出扬声器1663。类似地,放大器和编解码器1662可以耦合,以从麦克风 1665接收音频输入。
图11描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图。作为特定说明性示例,SOC 1700可以被包括在用户设备(UE)中。在一个实施例中,UE是指被最终用户用来进行通信的任何设备,诸如手持式电话、智能电话、平板电脑、超薄型的笔记本、带有宽带适配器的笔记本或任何其他类似的通信设备。UE常常连接到基站或节点,该基站或节点潜在地本质上对应于GSM网络中的移动站(MS)。
如由图11所示意地示出的,SOC 1700可以包括两个核。核1706和1707 可以耦合到与总线接口单元1709和L2缓存1710相关联的缓存控件1708,以与系统1700的其他部分进行通信。互连1710可以包括芯片内互连,诸如IOSF、AMBA或其他互连。
接口1710可以提供到其他组件的通信信道,其他组件诸如与SIM卡连接的用户标识模块(SIM)1730、保存供核1706和1707执行以初始化和引导SOC 1700的引导代码的引导ROM 1735、与外部存储器(例如,DRAM 1760)连接的SDRAM控制器1740、与非易失性存储器(例如,闪存1765) 连接的闪存控制器1745、与外围设备连接的外围控制器1550(例如,串行外围接口)、显示和接收输入(允许触摸的输入)的视频编解码器1720和视频接口1725、用于执行图形相关的计算的GPU 1715等等。另外,系统还可以包括用于通信的外围设备,诸如蓝牙模块1770、3G调制解调器1775、 GPS 1785以及Wi-Fi 1785。
其他计算机系统设计和配置也可以适于实现此处所描述的系统和方法。下列示例示出了符合本公开的一个或多个方面的各种实现。
示例1是处理系统,包括:在架构上受保护的存储器;以及,可通信地耦合到所述在架构上受保护的存储器的多个处理设备,每一个处理设备都包括被配置成通过执行下列各项中的至少一项来实现在架构上受保护的执行环境的第一处理逻辑:执行驻留在所述在架构上受保护的存储器中的指令,或防止对所述在架构上受保护的存储器的未经授权的访问;其中,每一个处理设备都进一步包括第二处理逻辑,所述第二处理逻辑被配置成与处理系统的第二处理设备建立安全通信通道,使用安全通信通道来同步表示处理系统的平台身份密钥,以及,将包括平台身份密钥的平台清单传输到确认系统。
在示例2中,示例1的处理系统的在架构上受保护的存储器可以通过飞地页面缓存(EPC)提供。
在示例3中,示例1的处理系统的第一处理逻辑可以被配置成实现安全飞地执行环境。
在示例4中,示例1的处理系统的第二处理逻辑可以被配置成将平台身份密钥传输到供应系统。
在示例5中,示例1的处理系统的第二处理逻辑可以被配置成将平台清单存储到非易失性存储器中。
在示例6中,示例1的同步处理系统的平台身份密钥的操作可以包括与第二处理设备交换处理器身份密钥。
在示例7中,示例1的处理系统的第二处理逻辑可以被配置成,在非易失性存储器中,存储密钥块,该密钥块包括平台身份密钥和多个处理设备的身份密钥。
示例8是一种方法,包括:由处理系统的第一处理设备,建立与所述处理系统的第二处理设备的安全通信通道;通过所述安全通信通道,同步表示所述处理系统的平台身份密钥,以及,将包括所述平台身份密钥的平台清单传输到确认系统。
在示例9中,示例8的方法还可以进一步包括将平台清单传输到供应系统。
在示例10中,示例8的方法还可以进一步包括将平台清单存储到非易失性存储器中。
在示例11中,示例8的方法的建立安全通信信道的操作可以包括实现非认证的密钥协商协议。
在示例12中,示例8的方法的同步平台身份密钥的操作可以包括与第二处理设备交换处理器身份密钥。
在示例13中,示例8的方法的同步平台身份密钥的操作可以包括将第一处理设备指定为主控处理器。
在示例14中,示例13的方法还可以进一步包括由主控处理器生成平台身份密钥。
在示例15中,示例8的方法还可以进一步包括,在非易失性存储器中,存储密钥块,该密钥块包括平台身份密钥和由处理系统包括的两个或更多处理设备的身份密钥。
在示例16中,示例15的方法还可以进一步包括,在检测到处理系统的重新引导时,从非易失性存储器中检索密钥块。
在示例17中,示例8的方法还可以进一步包括向确认系统传输向处理系统中添加第三处理设备的请求。
示例18是一种装置,包括存储器和耦合到存储器的处理系统,处理系统被配置成执行示例8-17中的任何一个的方法。
示例19是包括可执行指令的计算机可读取的非瞬时的存储介质,可执行指令当由处理系统执行时使处理系统执行下列操作,包括:由处理系统的第一处理设备建立与所述处理系统的第二处理设备的安全通信通道;通过所述安全通信通道,同步表示所述处理系统的平台身份密钥,以及,将包括所述平台身份密钥的平台清单传输到确认系统。
在示例20中,示例19的计算机可读取的非瞬时的存储介质还可以进一步包括导致处理系统将平台清单传输到供应系统的可执行指令。
在示例21中,示例19的计算机可读取的非瞬时的存储介质还可以进一步包括导致处理系统将平台清单存储到非易失性存储器中的可执行指令。
在示例22中,由示例19的计算机可读取的非瞬时的存储介质编码的建立安全通信信道的操作可以包括实现非认证的密钥协商协议。
在示例23中,由示例19的计算机可读取的非瞬时的存储介质编码的同步平台身份密钥的操作可以包括与第二处理设备交换处理器身份密钥。
在示例24中,由示例19的计算机可读取的非瞬时的存储介质编码的同步平台身份密钥的操作可以包括将第一处理设备指定为主控处理器。
在示例25中,示例24的计算机可读取的非瞬时的存储介质还可以进一步包括导致处理系统通过主控处理器生成平台身份密钥的可执行指令。
在示例26中,示例19的计算机可读取的非瞬时的存储介质还可以进一步包括导致处理系统在非易失性存储器中存储密钥块的可执行指令,密钥块包括平台身份密钥和由处理系统包括的两个或更多处理设备的身份密钥。
在示例27中,示例19的计算机可读取的非瞬时的存储介质还可以进一步包括导致处理系统在检测到处理系统的重新引导时从非易失性存储器检索密钥块的可执行指令。
在示例28中,示例19的计算机可读取的非瞬时的存储介质还可以进一步包括导致处理系统向确认系统传输向处理系统添加第三处理设备的请求的可执行指令。
详细描述的某些部分以算法、和对计算机存储器内的数据位的操作的符号表示法的形式存在。这些算法描述和表示法是那些精通数据处理技术的人所使用的最有效地将他们的工作的实质传递到精通技术的其他人的手段。算法,这里一般是指导致所希望的结果的操作的独立的序列。操作是那些需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量呈现电的和/或磁性信号的形式,这些信号能够被存储、传输、组合、比较,以及以别的方式操纵。已经证明将这些信号称为位、值、元素、码元、字符、项、数字等有时是方便的,主要是出于通用的原因。
然而,应该记住,所有这些及/或类似的术语将与适当的物理量关联,仅仅是应用于这些量的方便的标记。除非特别声明,从上文的讨论中显而易见地看出,应该理解,在整个本说明书中,利用诸如“加密”、“解密”、“存储”、“提供”、“导出”、“获取”、“接收”、“认证”、“删除”、“执行”、“请求”、“通信”等等之类的术语的讨论,引用了计算系统,和/或类似的电子计算设备的动作和/或进程,它们操纵和/或转换表示为计算系统的寄存器和存储器内的物理(例如,电子)量的数据,将这些数据转换为类似地表示为计算系统存储器或寄存器和/或其他这样的信息存储器、传输和/或显示设备内的物理量的其他数据。
在此可使用词语示例摂或示例性摂意指用作示例、实例或说明。本文中被描述为“示例”或“示例性”的任何方面或设计不一定被解释为优选于或更优于其他方面或设计。相反,使用词语“示例”或“示例性”旨在以具体的方式呈现各个概念。如本申请中所使用的,术语“或”意指包括性或摂而非互斥性“或”。即,除非另有指定或从上下文可以清楚,“X 包括A或B”意指任何自然的包括性排列。即,如果X包括A;X包括B;或X包括A和B两者,则在任何以上情况下,都满足“X包括A或B。”此外,本申请中和所附权利要求书所使用的冠词“一”和“一个”一般应解释为“一个或多个”,除非另有指定或从上下文将清楚是指单数形式。此外,术语“实施例”或“一个实施例”或“实现”或“一个实现”不旨在意指同一个实施例或实现,除非这样描述。此外,如此处所使用的术语“第一”、“第二”、“第三”、“第四”等等旨在用作区别不同的元件的标记,可以不一定具有根据它们的数字表示的序数含义。
此处所描述的各实施例还可以涉及用于执行此处的操作的设备。该装置可专门构造成用于所需目的,或者它可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在非瞬时的计算机可读取的存储介质上,诸如,但不仅限于,任何类型的磁(光)盘,包括软盘、光盘、CD-ROM,以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,闪存,或适于存储电子指令的任何类型的介质。术语“计算机可读取的存储介质”应该被视为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器)。术语计算机可读介质摂还应该被视为包括能够存储、编码或携带由机器执行的一组指令并且使机器执行各实施例的方法中的任何一个或多个的任何介质。术语计算机可读取的存储介质摂相应地应该被视为包括,但不局限于,固态存储器、光学介质、磁性介质,能够存储由机器执行的一组指令并且使机器执行各实施例的方法中的任何一个或多个的任何介质。
本文呈现的算法及显示并非固有地与任何特定计算机或其它装置相关。各种通用系统可以与根据此处的原理编写的程序一起使用,或者构建更加专业化的设备来执行所需的方法操作也是比较方便的。用于多种这些系统的所需结构将从以下的描述中出现。另外,没有参考任何特定编程语言来描述各实施例。将会理解,可使用多种编程语言来实现本文描述的实施例的教导。
上面的描述阐述了诸如特定系统、组件、方法等等的示例之类的很多具体细节,以便提供对多个实施例的更全面的理解。然而,对那些精通本技术的人显而易见的是,可以在没有这些具体细节的情况下实施至少一些实施例。在其他情况下,没有详细示出或以简单框图格式来呈现已知的组件或方法,以便避免对各实施例造成不必要的模糊。如此,上文阐述的具体细节只是示例性的。特定实现可能不同于这些示例性细节,仍在各实施例的范围内。
应当理解,以上描述旨在是说明性的而非限制性的。在阅读并理解以上描述之后,许多其它实施方式对本领域内技术人员而言将是显而易见的。各实施例的范围完全由所附权利要求书以及这些权利要求所授权的等效技术方案的完整范围来确定。
Claims (18)
1.一种用于多处理核平台的外部确认的处理系统,包括:
飞地页面缓存,用于存储飞地页面;以及,
可通信地耦合到所述飞地页面缓存的多个处理核,每一个处理核都包括通过执行下列各项中的至少一项来实现安全飞地执行环境的第一处理逻辑单元:执行驻留在所述飞地页面缓存中的指令,或防止对所述飞地页面缓存的未经授权的访问;
其中,每一个处理核都进一步包括第二处理逻辑单元,所述第二处理逻辑单元与所述处理系统的第二处理核建立安全通信信道,使用所述安全通信信道来同步表示所述处理系统的平台身份密钥,以及,将包括所述平台身份密钥的平台清单传输到确认系统。
2.如权利要求1所述的处理系统,其特征在于,所述第二处理逻辑单元进一步将所述平台身份密钥传输到供应系统。
3.如权利要求1所述的处理系统,其特征在于,所述第二处理逻辑单元进一步将所述平台清单存储到非易失性存储器中。
4.如权利要求1所述的处理系统,其特征在于,同步所述平台身份密钥包括与所述第二处理核交换处理核身份密钥。
5.如权利要求1所述的处理系统,其特征在于,所述第二处理逻辑单元进一步在非易失性存储器中存储密钥块,所述密钥块包括所述平台身份密钥和所述多个处理核的身份密钥。
6.一种用于多处理核平台的外部确认的方法,包括:
由处理系统的第一处理核,与所述处理系统的第二处理核建立安全通信信道;
通过所述安全通信信道,同步表示所述处理系统的平台身份密钥;
通过执行下列各项中的至少一项来实现安全飞地执行环境:执行驻留在飞地页面缓存中的指令,或防止对所述飞地页面缓存的未经授权的访问;以及
由在所述安全飞地执行环境内执行的应用将包括所述平台身份密钥的平台清单传输到确认系统。
7.如权利要求6所述的方法,其特征在于,进一步包括将所述平台清单传输到供应系统。
8.如权利要求6所述的方法,还包括将平台清单存储在非易失性存储器中。
9.如权利要求6所述的方法,其特征在于,建立所述安全通信信道包括实现非认证的密钥协商协议。
10.如权利要求6所述的方法,其特征在于,同步所述平台身份密钥包括与所述第二处理核交换处理核身份密钥。
11.如权利要求6所述的方法,其特征在于,同步所述平台身份密钥包括将所述第一处理核指定为主控处理核。
12.如权利要求11所述的方法,其特征在于,进一步包括由所述主控处理核生成所述平台身份密钥。
13.如权利要求6所述的方法,其特征在于,进一步包括:
在非易失性存储器中存储密钥块,所述密钥块包括所述平台身份密钥和由所述处理系统包括的两个或更多处理核的身份密钥。
14.如权利要求13所述的方法,其特征在于,进一步包括:
在检测到所述处理系统的重新启动时,从所述非易失性存储器检索所述密钥块。
15.如权利要求6所述的方法,其特征在于,进一步包括:
向所述确认系统传输将第三处理核添加到所述处理系统中的请求。
16.一种用于多处理核平台的外部确认的装置,包括:
存储器;以及
耦合到所述存储器的处理系统,所述处理系统执行如权利要求6-15中的任何一个所述的方法。
17.一种具有代码的计算机可读存储介质,所述代码在被执行时使机器执行如权利要求6-15的任一项所述的方法。
18.一种计算机系统,包括用于执行如权利要求6-15的任一项所述的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/140,254 US9448950B2 (en) | 2013-12-24 | 2013-12-24 | Using authenticated manifests to enable external certification of multi-processor platforms |
US14/140,254 | 2013-12-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850777A CN104850777A (zh) | 2015-08-19 |
CN104850777B true CN104850777B (zh) | 2019-01-08 |
Family
ID=51900165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410831225.1A Expired - Fee Related CN104850777B (zh) | 2013-12-24 | 2014-12-23 | 使用认证的清单来实现对多处理器平台的外部确认 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9448950B2 (zh) |
EP (1) | EP2889800B1 (zh) |
CN (1) | CN104850777B (zh) |
RU (1) | RU2599340C2 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8438392B2 (en) | 2002-06-20 | 2013-05-07 | Krimmeni Technologies, Inc. | Method and system for control of code execution on a general purpose computing device and control of code execution in a recursive security protocol |
US7203844B1 (en) | 2002-06-20 | 2007-04-10 | Oxford William V | Method and system for a recursive security protocol for digital copyright control |
KR20150011802A (ko) * | 2012-03-20 | 2015-02-02 | 크림메니 테크놀로지스, 인크. | 프로세스 작업 세트 격리를 위한 방법 및 시스템 |
US9864861B2 (en) * | 2014-03-27 | 2018-01-09 | Intel Corporation | Object oriented marshaling scheme for calls to a secure region |
TWI533160B (zh) * | 2014-11-26 | 2016-05-11 | 緯創資通股份有限公司 | 電子系統、電子裝置及其存取認證方法 |
US9858195B2 (en) * | 2014-12-10 | 2018-01-02 | International Business Machines Corporation | Near-cache distribution of manifest among peer applications in in-memory data grid (IMDG) non structured query language (NO-SQL) environments |
US10484172B2 (en) | 2015-06-05 | 2019-11-19 | Apple Inc. | Secure circuit for encryption key generation |
US10248791B2 (en) | 2015-07-20 | 2019-04-02 | Intel Corporation | Technologies for secure hardware and software attestation for trusted I/O |
US10374805B2 (en) | 2015-07-20 | 2019-08-06 | Intel Corporation | Technologies for trusted I/O for multiple co-existing trusted execution environments under ISA control |
US10140457B2 (en) * | 2015-07-31 | 2018-11-27 | Intel Corporation | Secure input/output device management |
US10261748B2 (en) * | 2015-12-18 | 2019-04-16 | Intel Corporation | Technologies for protecting audio data with trusted I/O |
US10536271B1 (en) | 2016-01-10 | 2020-01-14 | Apple Inc. | Silicon key attestation |
US10572687B2 (en) * | 2016-04-18 | 2020-02-25 | America as represented by the Secretary of the Army | Computer security framework and hardware level computer security in an operating system friendly microprocessor architecture |
US10708067B2 (en) | 2016-06-18 | 2020-07-07 | Intel Corporation | Platform attestation and registration for servers |
US10642972B2 (en) * | 2016-10-20 | 2020-05-05 | Intel Corporation | Extending packet processing to trusted programmable and fixed-function accelerators |
US10439803B2 (en) * | 2016-11-14 | 2019-10-08 | Microsoft Technology Licensing, Llc | Secure key management |
RU2634202C1 (ru) * | 2016-12-27 | 2017-10-24 | Открытое акционерное общество "Научно-производственное объединение Ангстрем" | Устройство программно-аппаратного комплекса формирования ключевой информации и радиоданных для радиостанции |
US11443033B2 (en) * | 2017-01-24 | 2022-09-13 | Microsoft Technology Licensing, Llc | Abstract enclave identity |
US10565130B2 (en) * | 2017-09-25 | 2020-02-18 | Intel Corporation | Technologies for a memory encryption engine for multiple processor usages |
US11082231B2 (en) * | 2017-12-29 | 2021-08-03 | Intel Corporation | Indirection directories for cryptographic memory protection |
CN112005230B (zh) | 2018-04-30 | 2024-05-03 | 谷歌有限责任公司 | 通过统一的安全区接口管理安全区创建 |
EP3776323A1 (en) * | 2018-04-30 | 2021-02-17 | Google LLC | Secure collaboration between processors and processing accelerators in enclaves |
EP4155996A1 (en) | 2018-04-30 | 2023-03-29 | Google LLC | Enclave interactions |
US11165766B2 (en) | 2018-08-21 | 2021-11-02 | International Business Machines Corporation | Implementing authentication protocol for merging multiple server nodes with trusted platform modules utilizing provisioned node certificates to support concurrent node add and remove |
US10885197B2 (en) | 2018-09-21 | 2021-01-05 | International Business Machines Corporation | Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning |
US11206141B2 (en) | 2018-09-21 | 2021-12-21 | International Business Machines Corporation | Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates |
TWI707247B (zh) * | 2018-12-28 | 2020-10-11 | 中華電信股份有限公司 | 資料保全系統及其使用方法 |
US11088846B2 (en) * | 2019-03-28 | 2021-08-10 | Intel Corporation | Key rotating trees with split counters for efficient hardware replay protection |
KR20210017083A (ko) * | 2019-08-06 | 2021-02-17 | 삼성전자주식회사 | 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법 |
EP3819774B1 (en) | 2019-11-06 | 2022-05-25 | Microsoft Technology Licensing, LLC | Confidential computing mechanism |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216736A1 (en) * | 2004-03-24 | 2005-09-29 | Smith Ned M | System and method for combining user and platform authentication in negotiated channel security protocols |
CN100350394C (zh) * | 2000-06-30 | 2007-11-21 | 英特尔公司 | 用于安全执行指令的方法、处理器和计算机系统 |
US20120159184A1 (en) * | 2010-12-17 | 2012-06-21 | Johnson Simon P | Technique for Supporting Multiple Secure Enclaves |
US20130031374A1 (en) * | 2011-07-29 | 2013-01-31 | Microsoft Corporation | Firmware-based trusted platform module for arm processor architectures and trustzone security extensions |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001390B2 (en) | 2007-05-09 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode |
WO2010057065A2 (en) | 2008-11-14 | 2010-05-20 | Intel Corporation | Method and apparatus to provide secure application execution |
US8843732B2 (en) | 2009-12-21 | 2014-09-23 | Intel Corporation | Mechanism for detecting a no-processor swap condition and modification of high speed bus calibration during boot |
US9087200B2 (en) | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
GB2481563B (en) | 2009-12-22 | 2017-07-19 | Intel Corp | Method and apparatus to provide secure application execution |
US9167002B2 (en) * | 2013-08-15 | 2015-10-20 | Microsoft Technology Licensing, Llc | Global platform health management |
-
2013
- 2013-12-24 US US14/140,254 patent/US9448950B2/en active Active
-
2014
- 2014-11-06 EP EP14192166.8A patent/EP2889800B1/en not_active Not-in-force
- 2014-11-24 RU RU2014147315/08A patent/RU2599340C2/ru not_active IP Right Cessation
- 2014-12-23 CN CN201410831225.1A patent/CN104850777B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100350394C (zh) * | 2000-06-30 | 2007-11-21 | 英特尔公司 | 用于安全执行指令的方法、处理器和计算机系统 |
US20050216736A1 (en) * | 2004-03-24 | 2005-09-29 | Smith Ned M | System and method for combining user and platform authentication in negotiated channel security protocols |
US20120159184A1 (en) * | 2010-12-17 | 2012-06-21 | Johnson Simon P | Technique for Supporting Multiple Secure Enclaves |
US20130031374A1 (en) * | 2011-07-29 | 2013-01-31 | Microsoft Corporation | Firmware-based trusted platform module for arm processor architectures and trustzone security extensions |
Also Published As
Publication number | Publication date |
---|---|
RU2014147315A (ru) | 2016-06-10 |
EP2889800A1 (en) | 2015-07-01 |
US20150178226A1 (en) | 2015-06-25 |
RU2599340C2 (ru) | 2016-10-10 |
CN104850777A (zh) | 2015-08-19 |
US9448950B2 (en) | 2016-09-20 |
EP2889800B1 (en) | 2017-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104850777B (zh) | 使用认证的清单来实现对多处理器平台的外部确认 | |
CN105320612B (zh) | 验证虚拟地址转换 | |
CN105184113B (zh) | 用于实现安全视频输出路径的硬件辅助虚拟化 | |
CN105264513B (zh) | 用于过程返回地址验证的系统和方法 | |
CN104954356B (zh) | 保护共享的互连以用于虚拟机 | |
US9852301B2 (en) | Creating secure channels between a protected execution environment and fixed-function endpoints | |
US9501668B2 (en) | Secure video ouput path | |
TWI690822B (zh) | 安全區之平台遷移 | |
TWI712887B (zh) | 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體 | |
CN108351779B (zh) | 用于安全指令执行流水线的指令和逻辑 | |
CN109960665A (zh) | 用于在分页期间逆转页阻止的解除阻止指令 | |
CN107667499A (zh) | 带密钥散列消息认证码处理器、方法、系统和指令 | |
US9705892B2 (en) | Trusted time service for offline mode | |
CN107683480A (zh) | 用于支持对受保护容器的实时迁移的处理器、方法、系统和指令 | |
CN107003965A (zh) | 向用户级应用传递中断 | |
CN106575261A (zh) | 受保护的区域中的存储器初始化 | |
CN117931376A (zh) | 信任域架构内的信任域内部的可缩放虚拟机操作 | |
TWI742120B (zh) | 用以識別及避免在虛擬機器監控器與客端虛擬機器之間追蹤衝突的處理器延伸的處理系統、晶片上系統及方法 | |
CN109643293B (zh) | 检测总线上锁条件并且避免总线锁 | |
US20140380019A1 (en) | Systems and methods for managing reconfigurable processor cores | |
CN108027864A (zh) | 经双仿射映射的s-盒硬件加速器 | |
CN108701101A (zh) | 处理器系统管理中断事件的基于仲裁器的串行化 | |
CN110321729A (zh) | 使用信任域支持虚拟化系统中的存储器分页 | |
CN109643244A (zh) | 映射安全策略组寄存器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190108 Termination date: 20191223 |
|
CF01 | Termination of patent right due to non-payment of annual fee |