当前位置: 首页 > 专利查询>英特尔公司专利>正文

由虚拟机管理器使用变换器密钥标识符无缝访问可信域的受保护存储器制造技术

技术编号:37057877 阅读:18 留言:0更新日期:2023-03-29 19:34
本申请的发明专利技术名称是“由虚拟机管理器使用变换器密钥标识符无缝访问可信域的受保护存储器”。在一个实施例中,一种设备包括处理器,该处理器包括:用于执行多个虚拟机(VM)和虚拟机监测器(VMM)的指令的至少一个核,以及用于通过使用多个私有密钥和可信变换器密钥来保护与多个VM关联的数据的密码引擎,其中多个私有密钥中的每一个用于保护相应VM的程序指令和数据,并且可信变换器密钥用于保护多个VM的管理结构数据。处理器进一步用于通过不可信变换器密钥向VMM提供对管理结构数据的读取和写入访问。入访问。入访问。

【技术实现步骤摘要】
由虚拟机管理器使用变换器密钥标识符无缝访问可信域的受保护存储器


[0001]本公开一般涉及计算系统领域,并且更特别地,涉及数据访问和保护。

技术介绍

[0002]保护计算机系统中的存储器免受软件错误和安全漏洞的影响是一个重要问题。恶意行动者可能尝试访问其未被授权访问的数据。完整性保护和加密是保护存储在存储器中的数据的常用方法。
附图说明
[0003]图1示出了根据某些实施例的计算系统。
[0004]图2A

2B示出了其中保护私有可信域(TD)代码和数据的示例架构。
[0005]图3描绘了根据某些实施例的用于服务指定变换器(transformer)KeyID的访问请求的流程。
[0006]图4示出了根据某些实施例的用于使用KeyID写入数据的流程。
[0007]图5示出了根据某些实施例的用于使用KeyID读取数据的流程。
[0008]图6示出了用于处置响应于读取用不可信变换器KeyID写入的数据而引发的故障的流程。
[0009]图7是示出根据至少一个实施例的示例处理器核和存储器的框图。
[0010]图8A是示出根据某些实施例的示例性有序流水线和示例性寄存器重命名、乱序发布/执行流水线的框图。
[0011]图8B是示出根据某些实施例的要被包括在处理器中的示例性寄存器重命名、乱序发布/执行架构核和有序架构核的示例性实施例的框图。
[0012]图9是根据至少一个实施例的示例计算机架构的框图。
[0013]图10是根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。
[0014]各种附图中相似的附图标记和名称指示相似的元件。
具体实施方式
[0015]云安全提供者(CSP)可将在它们平台上运行的客户工作负载彼此以密码方式隔离,并与CSP以密码方式隔离。在一些当前架构中,平台可以实现可信域扩展(TDX),以便在服务器上提供密码隔离,并从信任边界移除CSP软件(例如,虚拟机监测器(VMM)),使得它不能访问各个虚拟机(VM)的私有数据(其中与特定VM关联的信任边界被称为可信域(TD))。TDX可以使用提供机密性和完整性两者的多密钥全存储器加密引擎(MKTME)为云环境中的客户工作负载提供密码隔离。当前架构还可以利用中央处理单元(CPU)模式或被称为安全仲裁模式(SEAM)根模式(本文中也被称为SEAM模式)的其它安全处理器执行模式,其中本文
中被称为SEAM模块的软件模块由CPU执行以实现VM隔离。
[0016]在当前架构中,可为每个VM(本文中也称为可信域(TD))指配它自己唯一的存储器加密密钥,使得VMM和其它VM无法访问加密VM(TD)的明文存储器。可以使用被称为可信域(TD)位的元数据位来实现对TD的私有存储器的确定性访问防止,该可信域(TD)位被设置用于源自TD的写入数据,并且在读取访问时被检查(例如,通过诸如MKTME引擎的密码引擎)。允许源自TD内的读取访问来访问数据,然后该数据将使用访问TD的私有密钥(例如,通过密码引擎)进行完整性验证。当对该数据的读取访问由未被授权读取该数据的非TD软件(例如,VMM)请求时,包括固定零(或其它预定值)的中毒数据可被返回给尝试访问该数据的软件。虽然这些机制为TD的私有存储器提供了预期的保护,以将VMM从信任边界中移除,但是它们可能过于限制,因为对TD管理结构(例如,TD安全扩展页表(EPT)、嵌套页表(NPT)和页修改日志(PML))的直接访问被拒绝给VMM,即使VMM需要对这些结构的读取访问以用于管理功能。相反,可能要求VMM进行调用(例如,通过CPU指令)以将CPU过渡到SEAM根模式,并使SEAM模块请求访问这些TD管理结构,以便从存储器中读取这些结构。这种调用可以被称为SEAMCALL。SEAM模块可读取TD的其中存储管理结构的私有存储器,并复制存储器内容并在VMM可访问的指定位置(例如,在共享存储器区域内或经由寄存器)与VMM共享存储器内容。然而,由于处理器模式切换,对SEAM模块的调用可能导致显著的延迟(例如,数千CPU循环)。
[0017]在本公开的实施例中,TD可利用在本文中称为TD KeyID(例如,110)的相应的唯一密钥标识符(KeyID),以将数据写入存储器的某些部分,所述数据包括私有代码和数据以及TD的管理结构。TD KeyID可以标识上述唯一加密密钥。此外,本文中的实施例可以引入特殊的KeyID,其在本文中称为变换器KeyID(例如,111A、111B),它们可以被用在SEAM模式中,并且由VMM(例如,VMM 134)用于对TD的管理结构的读取访问和写入访问两者。使用变换器KeyID对存储器进行VMM写入可能导致存储器所有权转移到VMM。
[0018]当TD稍后尝试使用其KeyID访问管理结构中的数据(例如,通过TD的安全EPT页行走(page walk))时,可返回数据以及它是由VMM使用变换器KeyID最后写入的指示。页未命中处置器(PMH)硬件在接收到该指示时,可以向SEAM模块报故障,然后SEAM模块可以使用变换器KeyID从存储器中读取数据。SEAM模块可验证和/或检查数据(以及可能已被修改的任何相关结构)以确保VMM操作是可接受的。如果被认为是可接受的,则SEAM模块可以使用可信变换器KeyID将数据写入回到存储器位置,并且然后TD可以被恢复并且能使用可信变换器KeyID访问存储器而不会接收到故障。
[0019]使用变换器KeyID,SEAM和VMM可通过存储器无缝共享一些数据,而无需过渡可能要求数千个循环的处理器模式。通过允许读取私有EPT结构、A/D位、PML等、EPT编辑,避免VMM中的影子EPT管理,同时确保它们的完整性,这能实现许多用途,诸如实时迁移。另外,本文中的实施例仍可确保TD私有存储器的剩余部分不被SEAM使用变换器KeyID显式共享,仍被保护不被VMM查看/访问。这样,VMM能出于管理目的访问诸如TD EPT和PML之类的结构,同时避免每次需要这种访问时将处理器模式转移到SEAM。TD数据隔离所需的安全属性仍被维持,因为TD的私有存储器(例如,代码和数据)能继续使用TD私有密钥,该TD私有密钥仍不可被VMM通过使用存储器中的TD位或通过完整性来访问。例如,如果VMM使用共享KeyID来访问TD私有代码或数据,则它将受TD位检查的保护,并且如果VMM使用不可信变换器KeyID来访问TD私有代码或数据,则它将导致完整性失败。
[0020]除了节省通过SEAM调用的模式切换以及SEAM维护影子结构的需求的性能益处之外,本文中的实施例可仅在对现有硬件进行最小改变的情况下实现,并能为VM隔离考虑显著更容易的软件启用(例如,避免影子EPT维护)。例如,VMM逻辑不需要改变来实现本文中的实施例。也就是说,VMM可以像它正常的那样运转,编辑它认为它管理的VM的管理结构,同时由可信SEAM模块透明地监测安全违规。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种设备,包括:处理器,所述处理器包括:用于执行多个虚拟机(VM)和虚拟机监测器(VMM)的指令的至少一个核;以及 密码引擎,所述密码引擎包括用于通过使用多个私有密钥和可信变换器密钥来保护与所述多个VM关联的数据的电路,其中,所述多个私有密钥中的每一个用于保护相应VM的程序指令和数据,并且所述可信变换器密钥用于保护所述多个VM的管理结构数据;其中,所述处理器用于通过不可信变换器密钥向所述VMM提供对所述管理结构数据的读取和写入访问。2.如权利要求1所述的设备,其中,所述处理器用于在检测到所述管理结构数据是使用所述不可信变换器密钥保护的时,使VMM写入的数据通过使用所述不可信变换器密钥解密,并使用所述可信变换器密钥加密。3.如权利要求2所述的设备,其中,所述处理器进一步用于在使用所述可信变换器密钥加密所述管理结构数据之前,验证所述管理结构数据。4.如权利要求1或2所述的设备,其中,所述密码引擎用于:使用所述多个私有密钥中的私有密钥或所述可信变换器密钥来设置用于写入所述管理结构数据的可信域(TD)位;以及使用所述不可信变换器密钥置零用于写入所述管理结构数据的所述TD位。5.如权利要求1

4中任一项所述的设备,其中,所述密码引擎用于:响应于读取而访问管理结构数据;针对使用所述多个私有密钥中的私有密钥、所述可信变换器密钥或所述不可信变换器密钥的读取将访问的数据返回到所述核;以及针对使用其它密钥的读取将中毒和归零的数据返回到所述核。6.如权利要求5所述的设备,其中,所述密码引擎用于在将访问的数据返回到所述核之前基于用于访问所述数据的密钥对访问的数据执行完整性检查。7.如权利要求1

6中任一项所述的设备,其中,所述管理结构数据包括将访客物理地址映射到存储器的物理地址的页表。8.如权利要求1

6中任一项所述的设备,进一步包括用于存储所述多个VM的使用所述私有密钥加密的程序指令和数据的存储器。9.如权利要求1

6中任一项所述的设备,其中,所述密码引擎用于使用所述可信变换器密钥或所述不可信变换器密钥之一来加密所述管理结构数据。10.如权利要求1

6中任一项所述的设备,其中,所述密码引擎用于使用所述可信变换器密钥或所述不可信变换器密钥之一来对所述管理结构数据进行完整性保护。11.一种方法,包括:执行多个虚拟机(VM)和虚拟机监测器(VMM)的指令;通过使用多个私有密钥和可信变换器密钥来保护与所述多个VM关联的数据,其中,所述多个私有密钥中的每一个用于保护相应VM的程序指令和数据,并且所述可信变换器密钥用于保护所述多个VM的管理结构数据;以及通过不可信变换器密钥向所述VMM提供对所述管理结构数据的读取和写入访问。12.如权利要求11所述的方法,进一步包括:响应于读取管理结构数据的请求:
检测到所述管理结构数据是使用所述不可信变换器密钥保护的;访问用所述不可信变换器密钥保护的所述管理结构数据;使用所述不可信变...

【专利技术属性】
技术研发人员:D
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1