CN108762887B - 用于虚拟机的测量的信任根 - Google Patents

用于虚拟机的测量的信任根 Download PDF

Info

Publication number
CN108762887B
CN108762887B CN201810461023.0A CN201810461023A CN108762887B CN 108762887 B CN108762887 B CN 108762887B CN 201810461023 A CN201810461023 A CN 201810461023A CN 108762887 B CN108762887 B CN 108762887B
Authority
CN
China
Prior art keywords
computing platform
guest
vrtm
integrity
measurement
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
Application number
CN201810461023.0A
Other languages
English (en)
Other versions
CN108762887A (zh
Inventor
M·E·斯科特-纳什
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201810461023.0A priority Critical patent/CN108762887B/zh
Publication of CN108762887A publication Critical patent/CN108762887A/zh
Application granted granted Critical
Publication of CN108762887B publication Critical patent/CN108762887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Measuring Volume Flow (AREA)
  • Testing Of Engines (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)

Abstract

公开了与用于虚拟机(VM)的用于测量的信任根(RTM)相关联的技术和系统的实施例。在某些实施例中,计算平台可在该计算平台的第一安全区域中提供虚拟机RTM(vRTM)。该计算平台可被配置成用于执行该第一安全区域的完整性测量。该计算平台可在该计算平台的该第一安全区域外部提供用于宾客VM的虚拟机信任平台模块(vTPM)。该计算平台可发起在该vRTM和该宾客VM的资源之间的完整性测量链。可描述和/或要求保护其他实施例。

Description

用于虚拟机的测量的信任根
本申请是国际申请日为2013/3/6,国际申请号为PCT/US2013/029439,进入中国国家阶段的申请号为201380072400.7,题为“用于虚拟机的测量的信任根”的发明专利申请的分案申请。
技术领域
本公开总体上涉及计算系统领域,并且更具体地涉及安全计算平台。
背景
在某些安全模型中,一个或多个信任根(root-of-trust)用于支持信任执行平台。例如,在由信任计算小组呈现的某些安全模型中,使用三个信任根:用于存储的信任根(RTS);用于报告的信任根(RTR)和用于测量的信任根(RTM)。这些信任根在计算平台内的位置可改变。例如,某些信任平台包括在信任平台模块(TPM)中的RTR和RTS,做出动作以便检测对硬件和软件配置的篡改的物理组件(通常是芯片)。然而,这种平台中的RTM可由平台固件提供。具体地,当这种计算平台开始引导时,以不可变形式(诸如ROM)在设备的预BIOS中实现的核RTM(cRTM)测量有待执行的下一代码集合、密码地对这种测量进行散列并且将散列摘要值存储在TPM中。控制被传递到这个下一代码集合,其然后测量后续代码集合并且将测量的散列摘要值存储在TPM中。这个测量链继续直到引导完成并且OS被加载。可通过将TPM中所存储的散列值与其先前的值进行比较来检测引导阶段的配置变化(由于例如恶意软件或篡改)。作为初始测量组件,在执行之前不测量cRTM并且其被认为是设计正确的。
在虚拟化环境中,宾客虚拟机(VM)在由虚拟机管理器(VMM,也被称为管理程序)提供的基于软件的环境中运行。该环境可包括提供传统计算平台的多个物理组件的虚拟化版本的VM,诸如用于硬件的驱动器,以及为VM维护提供支持功能的VM,诸如可操纵宾客VM的存储器的VM。某些先前工作已经将TPM概念应用到虚拟化系统并且发展了虚拟机TPM(vTPM)。在某些这种系统中,每个宾客VM可与其自身的vTPM相关联,其充当用于相关联的宾客VM的测量链的RTS和RTR。可测量支持vTPM的VM和其他软件组件的RTM可被实现为相同管理程序上的VM。然而,这种RTM就像vTPM一样易于受到篡改,并且完全依赖于管理程序的可信任性。这可导致超大的信任计算基础以及因此易于受到管理程序或其他组件中的安全漏洞。
附图简要描述
将结合附图通过以下详细描述容易地理解实施例。为了方便本描述,相同的参考标号指示相同的结构元素。通过举例而非通过限制在附图的图式中示出实施例。
图1是根据各实施例包括安全区域(SE)中的用于测量的虚拟机信任根(vRTM)的计算平台的框图。
图2是根据各实施例用于在SE中的vRTM和宾客VM的资源之间发起完整性测量链的说明性过程的流程图。
图3是根据各实施例用于存储vRTM的完整性测量的说明性过程的流程图。
图4是根据各实施例用于与具有SE中的vRTM的计算平台进行通信的说明性过程的流程图。
图5是根据各实施例用于修改存储在平台配置寄存器中的值的说明性过程的流程图。
图6是根据各实施例适用于实践所公开的实施例的说明性计算平台的框图。
详细描述
公开了与用于虚拟机(VM)测量的信任根(RTM)相关联的技术和系统的实施例。在某些实施例中,计算平台可在该计算平台的第一安全区域中提供虚拟机RTM(vRTM)。该计算平台可被配置成用于执行该第一SE的完整性测量。该计算平台可对位于该计算平台的该第一SE外部的宾客VM提供虚拟机信任平台模块(vTPM)。该计算平台可在该vRTM和该宾客VM的资源之间发起完整性测量链。
在以下详细描述中,参考形成其一部分并且通过可实践的说明实施例示出的附图,其中,相同的标号指示相同的部件。应当理解可使用其他实施例以及可在不背离本公开的范围的情况下做出结构或逻辑改变。因此,不应以限制性的意义解释以下详细描述,并且实施例的范围由所附权利要求书及其等效方案定义。
各操作可被描述为按顺序的多个离散动作或操作,其方式为最有助于理解所要求保护的主题。然而,描述的顺序不应被解释为暗示这些操作必需依赖于顺序。具体而言,可不按展示顺序执行这些操作。可以用不同于所描述的实施例的顺序执行所描述的操作。可执行各附加操作和/或可在附加实施例中忽略所描述的操作。
为了本公开的目的,短语“A和/或B”是指(A)、(B)、或(A和B)。为了本公开的目的,短语“A、B和/或C”是指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
本描述可使用短语“在实施例中”或“在多个实施例中”,其可各自指代相同或不同实施例中的一个或多个。此外,如结合本公开的实施例所使用的,术语“包括(comprising)”、“包括(including)”、“具有(having)”等等是同义的。如在此所使用的,术语“模块”或“逻辑”可指代、作为其一部分、或包括专用集成电路(“ASIC”)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或分组)和/或存储器(共享、专用或分组)、组合式逻辑电路、和/或其他合适的提供所描述的功能性的组件。
现在参照图1,根据各实施例示出了包括SE中的vRTM的计算平台。
计算平台100可包括硬件102。硬件102可包括例如一个或多个处理设备和存储器设备(例如,系统存储器、高速缓存存储器、基于微处理器的存储器、位于处理器内部的存储器、位于处理器外部的存储器)。在某些实施例中,计算平台100可包括计算平台可与其他计算平台或设备通信所通过的通信接口。以下参照图6讨论可包括在计算平台100的硬件102内的硬件的进一步的示例。硬件102还可包括计算平台100的固件和微代码。例如,微代码可定义汇编语言指令的操作,并且因此可以用不可由计算平台100的终端用户修改的方式影响硬件组件的操作。
计算平台100可包括虚拟机监视器(VMM)104。VMM 104可将计算平台100的硬件102虚拟化以便提供虚拟操作平台从而允许VM(诸如vRTM 120、vTPM 106、宾客VM 110,等等)并发地在计算平台100上执行或运行。在VMM 104上运行的每个VM可将其虚拟操作平台感知为物理平台。尽管计算平台100的某些组件可被描述为“宾客VM”,术语“宾客VM”可包括在VMM104上执行的可由vRTM 120测量的任何VM(包括例如支持VM 122)。
计算平台100可包括vTPM 106。在某些实施例中,计算平台100可包括其各自可与类似宾客VM 110的一个或多个宾客VM(以下讨论)相关联的类似vTPM 106的多个vTPM。为了容易说明,本公开的大部分将讨论单个vTPM,但是在此公开的全部系统和技术适用于与多个vTPM一起使用。vTPM 106可以包括可被配置为便于vTPM 106与宾客VM 110之间的通信的宾客接口模块108。vTPM 106可以包括可被配置为便于vTPM 106与管理VM(MVM)118(以下描述)之间的通信的管理接口模块116。
vTPM 106可安置在SE 134中。如在此所使用的,SE(诸如SE 134)可包括提供安全位置的一组存储器位置,模块(诸如VM)可在该安全位置中执行机器可读代码指令并存储数据。SE可因此提供用于计算平台100的硬件102保护某些存储器位置(诸如SE 134中的vTPM106)的机制。具体地,SE 134可保护vTPM 106的秘密不受计算平台100的任何固件、VMM 104和/或在计算平台100上执行的其他进程影响。还可测量并存储SE的内容,从而使得可容易地检测内容的改变。
现在描述SE的多个示例实施例。在某些实施例中,SE中的VM可从区域页高速缓存运行,并且区域页可由计算平台100的操作系统(OS)加载到区域页高速缓存中。在某些实施例中,SE可由VMM或在VMM上运行的VM(例如,Xen管理程序中的域0)初始化。无论何时从区域页高速缓存移除SE中的VM的页,密码保护可用于保护页的机密性以及在页被加载回区域页高速缓存中时检测篡改。在区域页高速缓存内部,可使用访问控制机制保护区域数据,这些机制可由硬件102的处理设备提供,并且页高速缓存的页也可被加密。
在某些实施例中,用于SE中的VM的代码可暂时以加密状态存储在区域页高速缓存中。VM代码可被从区域页高速缓存取出、被解密并被放入处理设备高速缓存中,可从该高速缓存检索并执行代码,并且区域数据由计算平台100的处理设备访问。在某些实施例中,区域页高速缓存可位于计算平台100的物理地址空间内,并且可仅通过使用SE指令来访问区域页高速缓存,这些指令是由硬件102的处理设备执行的指令子集。区域页高速缓存可包含来自许多不同SE的页并且提供访问控制机制以便保护页的完整性和机密性。区域页高速缓存可以维持与可用于保留计算平台内的一致物理存储器访问的那些类似的一致性协议。
在某些实施例中,区域页高速缓存可使用区域页高速缓存映射,其可包含与区域页高速缓存中的每个页相关联的状态信息。状态信息可指示如下信息,诸如给定页所属于的特定区域、所加载的页的状态等等。当从区域页高速缓存移除页时,可通过从区域页高速缓存映射输出并保护状态信息(使用密码技术)对SE进行完整性测量。类似地,当给定区域页被重新加载到区域页高速缓存中时,可验证状态信息。在各实施例中,区域页高速缓存可存储在不同类型的存储器中(例如,特定处理设备的板上静态随机存取存储器(SRAM)),和/或作为安置在处理设备上或与其分离的动态随机存取存储器(DRAM)的一部分。在各实施例中,区域页高速缓存可被保护而免于来自外部计算平台100的未授权访问,同时允许计算平台100的其他组件仍安全地访问区域页高速缓存。
在某些实施例中,区域页高速缓存可以是加密存储器孔,其可提供使用DRAM创建密码地受保护的易失性存储的相对成本有效的机制。密码存储器孔可使用硬件102的中央处理单元(CPU)的处理核外部的区域内的一个或多个策略性放置的密码单元以便提供各种级别的保护。处理核外部的各个代理可被修改以便识别对密码存储器孔的存储器访问以及将这些访问路由到位于处理核内的密码控制器。依据所期望的保护级别,密码控制器可生成对平台DRAM的一个或多个存储器访问以便取出密文。取出的密文可然后由密码控制器处理以便生成明文从而满足原始的密码存储器孔请求。
在某些实施例中,区域页高速缓存可被保持为分离的容器,其可由包括在硬件102中的微代码管理。以此方式,当在SE外部执行时,该容器可能是不可访问的。当进入SE(诸如SE 134)时,控制可被转移到区域页高速缓存内部的区域代码,其可被包含在分离的容器中。在SE内部执行的同时发生的任何页故障或异常可由微代码反映给计算平台100的OS和/或反映给VMM 104。当计算平台100在任何SE的外部执行时,对区域页高速缓存的访问控制可由硬件102的SE范围寄存器提供。当在微代码内部运行时,计算平台100可因此提供防止访问不属于正在执行的SE的其他SE页高速缓存条目的页表级别保护。在某些实施例中,实现SE可包括使用硬件102的处理设备的微代码能力实现指令和保护。
除SE的各个示例的上述优点和特征之外,多个设计考虑因素也可获知可如何在计算平台中使用SE。例如,第三方硬件和设备(诸如例如网络接口卡)可不被配置成用于与在SE内部运行的VM或其他应用进行通信,并且因此即使这种设备可正确地与在SE外部运行的VM和应用接口连接,这种设备可能不正确地与在SE内部运行的VM或其他应用正确地接口连接。此外,SE的各实施例中所涉及的安全特征可要求大量开销(例如,在用于密钥管理的存储器和处理器周期方面),并且因此选择可将(如果有的话)哪些VM或其他应用适当地包含在SE中可要求考虑速度、存储器访问和其他问题。
仍参考图1,在某些实施例中,计算平台100可包括类似vTPM 106的多个vTPM,其各自可安置在不同的SE中。在某些实施例中,vTPM可不安置在SE中。vTPM 106可被配置成用于存储密码信息。在某些实施例中,vTPM 106可存储私钥和公钥对中的私钥(Rivset-Shamir-Adelman(RSA)密钥对或私钥和公共认证密钥对),其可唯一地标识vTPM 106和/或用这种密钥签名的证书。vTPM 106的密钥可不离开SE 134的边界;当与vTPM106相关联的宾客VM(例如,宾客VM 110)迁移时,vTPM 106可在平台之间携带密码信息。
vTPM 106可包括平台配置寄存器(PCR)136。在某些实施例中,PCR136可被配置成用于存储vRTM 120(以下讨论)和vTPM 106所支持的宾客VM(例如,以下讨论的宾客VM 110)的一个或多个资源之间的完整性测量链的一个或多个完整性测量。当执行特定宾客VM资源的完整性测量时,完整性测量可存储在与该宾客VM资源相关联的特定PCR中。当再次发起完整性测量链时,vTPM 106可(例如,从vRTM 120)接收改变存储在特定PCR中的值的命令。在某些实施例中,这种命令可包括用新完整性测量的密码散列来扩展存储在特定PCR中的值的命令。如在此所使用的,用新值“扩展”现有值可包括连结现有值与新值以及对结果进行散列(例如,使用SHA-1散列)。以此方式,宾客VM资源的完整性测量历史可维持在PCR 136中。在某些实施例中,仅当由MVM 118允许时才可改变存储在一个或多个PCR 136中的值,如下所述。
计算平台100可包括宾客VM 110。在某些实施例中,计算平台100可包括类似宾客VM 110的多个宾客VM;为了容易说明,本公开的大部分将讨论单个宾客VM。宾客VM 110可包括vTPM驱动器114,其可被配置成用于促成宾客VM 110和vTPM 106的宾客接口模块108之间的通信。在某些实施例中,vTPM驱动器114和宾客接口模块108之间的通信可通过VMM104发生。vTPM驱动器114可由可在宾客VM 110上运行的操作系统(OS)112控制。OS 112可控制用于物理和/或虚拟设备(例如,物理和/或虚拟打印机、显示设备或通信设备)的多个其他驱动器。OS 112还可支持多个应用,这些应用可在宾客VM 110上运行,如同宾客VM是隔离的物理机器。在某些实施例中,一个或多个附加VM可在宾客VM 110上运行。如在此所使用的,宾客VM的“资源”可包括在宾客VM上运行的任何模块或由宾客VM支持的其他数据,如驱动器、OS、应用和其他VM。
计算平台100可包括MVM 118。MVM 118可与一个或多个vTPM(诸如vTPM 106)相关联并且可被配置成用于管理该一个或多个vTPM的生命周期。在某些实施例中,MVM 118可存储用于与其相关联的vTPM(例如,vTPM 106)的私钥并且可被配置成用于使用该私钥来为相关联的vTPM对认证证书进行签名,从而使得当其他计算平台请求验证例如宾客VM(诸如宾客VM 110)的资源的安全性时,所签名的证书可用作认证证据。
MVM 118可安置在SE 132中。SE 132可以是不同于SE 134(vTPM 106可安置在其中)的SE。MVM 118可通过vTPM 106的管理接口模块108与vTPM 106进行通信。在某些实施例中,MVM 118和管理接口模块108之间的通信可通过VMM 104进行。如上所述,在某些实施例中,MVM 118可控制可改变vTPM 106的哪个PCR 136(例如,由vRTM 120)。具体地,MVM 118可向vTPM 106提供指示可或可不改变PCR 136中的一个特定PCR的修改符,并且因此向vTPM106提供允许或不允许改变PCR 136中的一个或多个特定PCR的命令。在某些实施例中,vTPM106可仅允许在从MVM 118接收到指示允许这种改变的修改符之后允许改变PCR 136中的一个特定PCR的值。MVM 118仅可提供用于在某些条件下改变PCR值的修改符;例如,当与宾客VM相关联的生命周期事件发生时。在某些实施例中,MVM 118可与vRTM 120进行通信(如下所述)。在某些实施例中,MVM 118和vRTM 120可包括在共同的SE中;在某些这种实施例中,MVM 118可以是vRTM并且包括vRTM 120的功能。在某些实施例中,MVM 118的修改符供应功能可包括在vRTM 120中,并且vRTM 120可经由安全信道向vTPM(诸如vTPM 106)提供修改符。前述实施例可通过仅当由SE 132中的MVM 118(或SE 130中的vRTM 120)允许时才允许修改PCR 136中的值来保护PCR 136不被例如VMM 104中的恶意进程修改。在某些实施例中,MVM 18可与数个支持VM 122中的任一个进行通信(如下所述)。
计算平台100可包括vRTM 120。vRTM 120可被配置成用于充当用于在VMM 104上执行的VM(诸如宾客VM 110)的资源的完整性测量的RTM。在某些实施例中,vRTM 120可被配置成用于发起VM的资源的完整性测量链。完整性测量可包括例如定义VM的资源的机器可读代码的散列。在某些实施例中,vRTM 120可向vTPM 106发布将散列值存储在PCR136中的一个PCR中(例如,存储在PCR 136中的与其机器可读代码被散列的宾客VM资源相关联的一个PCR中)的命令。在某些实施例中,存储散列值的命令可以是用散列值扩展PCR 136中的一个适当的PCR的命令(例如,当vTPM 120在之前发起并命令之前链的完整性测量的存储之后发起另一个测量链时)。
vRTM 120可安置在SE 130中。SE 130可以是不同于SE 132(MVM 118可安置在其中)和SE 134(vTPM 106可安置在其中)的SE。如上所述,计算设备100可被配置成用于执行一个或多个SE(包括SE 130)的完整性测量。在某些实施例中,SE 130(以及因此vRTM 120)的测量可从在与SE 130相关联的测量寄存器中的其初始存储报告出并且扩展到每个vTPM的PCR(诸如vTPM 106的PCR 136)中。在某些实施例中,vRTM 120可经由宾客接口模块108与vTPM 106进行通信。在某些实施例中,vRTM 120和vTPM 106之间的通信可通过VMM 104发生。如上所述,在某些实施例中,vTPM 106可不安置在SE中,并且具体地可安置在vRTM 120所安置在的SE 130外部。
计算平台可包括一个或多个支持VM 122。在某些实施例中,支持VM122可为vTPM(诸如vTPM 106)和宾客VM(诸如宾客VM 110)提供服务。图1中示出的支持宾客VM的示例包括迁移代理VM 124、域构建器VM 126和帮助器VM 128。在某些实施例中,迁移代理VM 124可被配置成用于通过例如管理宾客VM从计算平台100拷贝到宾客VM正被迁移到其上的另一个计算平台以及在宾客VM已经迁移之后删除宾客VM的拷贝,管理宾客VM的迁移(例如,宾客VM110)。在某些实施例中,域构建器VM 126可被配置成用于通过为宾客VM初始化宾客OS、为宾客VM分配存储器和/或其他初始化任务,为宾客VM(例如,宾客VM 110)初始化环境。帮助器VM 128可表示可为宾客VM(例如,宾客VM 110)提供服务(诸如虚拟化驱动器服务)的一个或多个支持VM。在某些实施例中,支持VM 122中的一个或多个可作为vRTM 120和宾客VM 110之间的完整性测量链(以及因此vRTM 120和与vTPM 106相关联的宾客VM的资源(诸如宾客VM 110的资源)之间的完整性测量链)的一部分被测量。在某些实施例中,当vTPM 106未安置在SE中时,vRTM 120所发起的完整性测量链可包括测量vTPM 106本身;当vTPM 106安置在SE中时,vTPM 106所安置在的SE(例如SE 134)的测量可用来证实vTPM 106。
参照图2,提供了根据各实施例用于在SE中的vRTM和宾客VM的资源之间发起完整性测量链的过程200的流程图。可认识到,尽管过程200(以及在此描述的其他过程)的操作以特定顺序安排并一次展示每一个,在各实施例中,可重复、省略或不按次序执行这些操作中的一个或多个。为了说明性目的,过程200的操作可被描述为由计算平台100执行,但是过程200的操作(包括过程200的单独操作)可由计算平台100的任何适当配置的组件或组件组合执行。
过程200可在操作202开始,其中计算平台100可在SE(诸如SE 130)中提供vRTM(诸如vRTM 120)。如上所述,SE可包括计算平台的不可经由位于存储器区外部的执行指令访问的存储器域。在某些实施例中,计算平台100可被配置成用于执行vRTM所安置在的第一SE的完整性测量。
在操作204,计算平台100可在为vRTM所安置在的SE外部提供用于宾客VM(诸如宾客VM 110)的vTPM(诸如vTPM 106)。在某些实施例中,在操作204,计算平台100可在SE(诸如SE 134)中提供vTPM。vTPM可在操作204在其中提供的SE可不同于vTPM在操作202在其中提供的SE。
在操作206,计算平台100可发起(操作202的)vTPM和宾客VM的资源(例如,在宾客VM上运行的应用)之间的完整性测量链。在某些实施例中,宾客VM可安置在vTPM所安置在的SE外部。完整性测量链可包括vTPM的测量,并且可包括在引导或其他初始化序列中在vTPM之前发生的一个或多个支持VM的完整性测量。例如,在某些实施例中,一个或多个支持VM可在第一时刻被实例化,并且使用支持VM所提供的服务的宾客VM可在几周或几个月之后在第二时刻被实例化。在这种实施例中,完整性测量链可包括在第一时刻或第一时刻附近执行的支持VM的完整性测量,以及在第二时刻或第二时刻附近执行的宾客VM的完整性测量。
在操作208,计算平台100可确定是否存在有待为其执行完整性测量的附加宾客VM。如果是,计算平台100可进行到操作204并且为附加宾客VM提供vTPM,并且如上所述那样继续。如果计算平台100在操作208确定不存在有待为其执行完整性测量的附加宾客VM,过程400可就此结束。如上所述,过程400的操作顺序是纯说明性的;例如,在某些实施例中,所有宾客VM的vTPM可并行地或顺序地建立,在此之后,可进行宾客VM资源的完整性测量(再次,并行地或顺序地)。
现在参照图3,提供了根据各实施例用于存储vRTM的完整性测量的过程300的流程图。如以上参照vRTM 120和SE 130所讨论的,在某些实施例中,计算平台100可被配置成用于执行SE(诸如vRTM所安置在的SE)的完整性测量。通过执行包括vRTM的SE的完整性测量并且将这种完整性测量存储在计算平台100中(例如,存储在硬件102、固件或计算平台100的OS和/或VMM 104以其他方式不可访问的位置中),vRTM和宾客VM的资源之间的完整性测量链(例如,如在图2的操作206所发起的)可在计算平台100内在VMM 104之下成根(root)。这种更深的成根可改善完整性测量的可靠性。此外,因为可测量vRTM本身的完整性,有可能的是检测对vRTM的篡改以及因此进一步改善计算平台100的安全性。为了说明性目的,过程300的操作可被描述为由计算平台100执行,但是过程300的操作(包括过程300的单独操作)可由计算平台100的任何适当配置的组件或组件组合执行。
过程300可在操作302开始,其中计算平台100可存储vRTM(例如,vRTM 120)的完整性测量。在某些实施例中,vRTM的完整性测量可由微代码执行,并且计算平台100可将vRTM的完整性测量存储在与vRTM所安置在的SE的微代码(例如与SE 130相关联的微代码)相关联的硬件寄存器中。在某些实施例中,计算平台100还可将完整性测量存储在vTPM 106的PCR 136中的一个PCR中。
在操作304,计算平台100可将数据集封装到在操作302存储的vRTM的完整性测量中。如在此所使用的,“将数据集封装到”完整性测量可以指加密数据集,从而使得仅当完整性测量指示基础测量组件(诸如vRTM)从其原始地固定在SE中起尚未改变时才可解密数据集。在某些实施例中,数据集(诸如密钥)可被封装到vRTM的完整性测量中以便防止解密该数据,除非vRTM的完整性第一次被验证。例如,表示银行账户的口令的数据集可被封装到vRTM的完整性测量中,从而使得仅当vRTM的完整性测量与预期值或初始值相同时才能解密该密码;否则,vRTM可能已经被篡改,并且口令可保持加密。过程300可就此结束。
现在参照图4,提供了根据各实施例用于与在SE中具有vRTM的计算平台(例如,在SE 130中具有vRTM 120的计算平台100)进行通信的过程400的流程图。在某些实施例中,过程400可由希望例如确认vRTM所进行的并且存储在vTPM的完整性测量链的第一计算平台执行,并且第二计算平台的宾客VM的资源指示第二计算平台的宾客VM的资源尚未被篡改。
例如,在某些实施例中,第一计算平台可以是银行或医院服务器,而第二计算平台可包含金融或医疗记录;在第一计算平台与第二计算平台交换敏感信息之前,第一计算平台可能希望验证第二计算平台的特定资源尚未受到危害。在某些实施例中,第一计算平台可能希望验证第二计算平台的vRTM本身尚未受到危害。第一计算平台可以是或包括位于第二计算平台外部的实体(应用或互联网服务器,作为示例),并且可或可不被第二计算平台信任。
在以下讨论过程400,根据在此描述的用于计算平台100的任何实施例,第二计算平台可配置有安全区域中的vRTM。在某些实施例中,第一计算平台可如在此描述计算平台100的那样被配置或者可以是被配置成用于与类似计算平台100的计算平台进行通信的通用计算平台。
过程400可在操作402开始,其中第一计算平台向第二计算平台的处理设备传输命令以报告第二计算平台的包含vRTM的SE(例如,包含计算平台100的vRTM 120的SE 130)的完整性测量。如上所述,SE中的vRTM可被配置作为RTM,用于vRTM和第二计算平台的宾客VM(例如,计算平台100的宾客VM 110)的资源之间的完整性测量链。在某些实施例中,宾客VM可安置在包含vTPM的SE外部。
在操作404,第一计算平台可从第二计算平台接收包含vRTM的SE的完整性测量。在某些实施例中,完整性测量可从第二计算平台的vTPM传输(例如,从vTPM 106的PCR 136中的一个或多个检索)。在某些实施例中,在操作404接收的SE的完整性测量可用与第二计算平台相关联的密钥进行密码签名。例如,该密钥可以是可由信任方(例如,硬件的一个或多个组件的制造商)验证的硬件平台密钥。使用密码签名,第一计算平台可确认完整性测量是从正确的计算平台报告的并且在途中未被篡改。
在操作406,第一计算平台可将SE的完整性测量(在操作404接收)和预期值进行比较。在某些实施例中,预期值可基于定义vRTM的预期机器可读代码集合。例如,预期值可以是定义vRTM的预期机器可读代码集合的散列。如果第一计算平台在操作406确定SE的完整性测量与预期值不匹配,第一计算平台可进行到操作410并且向第一计算平台的另一个组件(例如,安全事件登录软件)、另一个计算平台(例如,安全事件登录服务器)和/或第二计算平台提供失配指示符(例如,以便通知其可能的安全漏洞)。过程400可就此结束。
如果第一计算平台在操作406确定SE的完整性测量与预期值匹配,第一计算平台可进行到操作408并且与第二计算平台的宾客VM的资源进行通信。在某些实施例中,在操作408与第二计算平台的宾客VM的资源进行通信之前,第一计算平台可确定表示vRTM和第二计算平台的宾客VM的资源之间的完整性测量链的数据(例如,该链的完整性测量的一个或多个散列值)是否与预期值匹配,并且可仅当确认匹配时才前进到与第二计算平台的宾客VM的资源进行通信。过程400可就此结束。
现在参照图5,提供了根据各实施例用于修改存储在PCR(诸如任何PCR 136)中的值的过程500的流程图。为了说明性目的,过程500的操作可被描述为由计算平台100执行,但是过程500的操作(包括过程500的单独操作)可由计算平台100的任何适当配置的组件或组件组合执行。
过程500可在操作502开始,其中计算平台100可在计算平台100的第一SE(诸如SE132)中提供MVM(诸如MVM 118)。在操作504,计算平台100可在计算平台100的第二SE(诸如SE 134)中为宾客VM(诸如宾客VM 110)提供vTPM(诸如vTPM 106)。第二SE(操作504)可不同于第一SE(操作502)。在操作506,计算平台100可在计算平台100的第三SE(诸如SE 130)中提供vRTM(诸如vRTM 120),第三SE不同于第一和第二SE。在某些实施例中,在操作502提供的MVM可包括vRTM(例如,vRTM 120的功能),并且因此可不执行操作506。
在操作508,计算平台100可发起vRTM(例如,包括在MVM 118中的vRTM 120或vRTM)和宾客VM的资源之间的完整性测量链。在操作510,计算平台100可在vTPM(在操作504提供)接收改变存储在vTPM的PCR中的值的命令,该PCR与宾客VM的资源相关联。在某些实施例中,改变存储在PCR中的值的命令可响应于在操作508发起的完整性测量链而做出。在某些实施例中,改变存储在PCR中的值的命令可不源自完整性测量,而是源自另一个源(例如,另一个进程)。在某些实施例中,在操作510接收的命令可包括用与PCR相关联的宾客VM资源的完整性测量的密码散列扩展存储在该PCR中的值的指令。在操作510接收的命令可依赖于PCR的配置;例如,某些PCR可仅在vTPM复位时才被初始化为某个值,或者可仅被扩展而不是被设置为任意值。
在操作512,计算平台100可确定是否已经在vTPM从MVM接收到指示允许改变命令(在操作510接收)的修改符。在一些实施例中,MVM和vTPM可在操作512通过安全信道进行通信。由于MVM和vTPM各自安置在安全区域内(并且可因此被验证和信任),用于在两个信任点之间建立安全信道的本领域中已知的多种技术中的任一种可用于在MVM和vTPM之间建立安全信道。在某些实施例中,修改符可表示与PCR相关联的宾客VM的生命周期事件。如果尚未接收到合适的修改符,过程500可结束并且可不对PCR进行改变。如果计算平台100在操作510确定已经接收到修改符,计算平台100可进行到操作514并且改变存储在PCR中的值。过程500可就此结束。
现在参照图6,提供了适用于实践所公开的实施例的示例计算平台600的框图(例如,以上参照图1的计算平台讨论的实施例,以及以上参照图4讨论的第一和第二计算平台)。计算平台600可包括数个计算系统中的任一个或者是其一部分,诸如例如桌上计算机、便携式计算机、平板计算机、服务器、客户机、瘦客户机、蜂窝电话或智能电话。
如所示,计算设备600包括数个处理设备602和系统存储器604。处理设备602可包括一个或多个处理核或其他处理设备。此外,计算平台600可包括大容量存储设备606(诸如固态驱动器、磁盘、硬盘驱动器、致密盘只读存储器(CDROM)等等)、输入输出设备608(诸如显示器、键盘、光标控制、相机、麦克风、GPS接收机、运动检测器等等)和通信接口610(诸如网络接口卡、调制解调器、WiFi设备、蓝牙设备等等)。这些元件可经由表示一个或多个总线的系统总线612耦合到彼此。在多条总线的情况下,它们可由一个或多个总线桥(未示出)桥接。在此描述的技术可用于使计算平台的资源免受通过这些设备或通路中的任何一个或多个引入的漏洞。
这些元件各自可执行本领域已知的其常规功能。具体地,当由对应的处理设备602(在此统称为计算逻辑622)执行时,系统存储器604和大容量存储设备606可用于存储实现图2至图5中任一项的方法或其各部分的编程指令的工作副本和永久副本。各组件可由处理设备602所支持的汇编器指令或可编译到这种指令中的高级语言(诸如例如C)实现。
编程指令的永久副本可在出厂时通过例如机器可访问分布介质(未示出)(诸如致密盘(CD))或通过通信接口610(例如,从分布式服务器(未示出))被放入永久存储设备606中。也就是,具有代理程序的实现的一个或多个分布式介质可用于分布代理和对各计算设备进行编程。元件602-612的构成是已知的,并且因此将不进一步描述。
用于执行上述技术的机器可访问介质(包括非瞬态机器可读介质)、方法、系统和设备是在此公开的实施例的说明性示例。此外,上述交互中的其他设备可被配置成用于执行各种所公开的技术。
示例
示例1A是一种用于在计算平台上发起完整性测量链的方法,该方法包括:在计算平台的第一安全区域中向该计算平台提供vRTM,其中该计算平台被配置成用于执行该第二安全区域的完整性测量;在该第一安全区域外部向该计算平台提供用于宾客VM的vTPM;以及在该计算平台上发起在该vRTM和该宾客VM的资源之间的完整性测量链。
示例1B可包括示例1A所述的主题,并且进一步指定该第一安全区域包括该计算平台的存储器区,经由位于该存储器区外部的所执行指令不能访问该存储器区。
示例1C可包括示例1A-1B中任一项所述的主题,进一步包括在该vTPM中存储在该vRTM和该宾客VM的资源之间的完整性测量链的完整性测量。
示例1D可包括示例1A-1C中任一项所述的主题,并且进一步指定在该第一安全区域外部向该计算平台提供用于宾客VM的vTPM包括在该计算平台的第二安全区域内向该计算平台提供用于宾客VM的vTPM,其中该第二安全区域不同于该第一安全区域。
示例1E可包括示例1D所述的主题,并且进一步指定该宾客VM位于该第二安全区域外部。
示例1F可包括示例1A-1E中任一项所述的主题,并且进一步指定该完整性测量链包括该vTPM的完整性测量。
示例可包括示例1F所述的主题,并且进一步指定该完整性测量链包括向该宾客VM提供服务的支持VM的完整性测量。
示例1H可包括示例1A-1G中任一项所述的主题,并且进一步指定被配置成用于执行该第一安全区域的完整性测量包括将与该第一安全区域相关联的微代码配置成用于执行该第一安全区域的该完整性测量并且将该第一安全区域的该完整性测量存储在硬件寄存器中。
示例1I可包括示例1A-1H中任一项所述的主题,并且进一步指定该vTPM是第一vTPM,该宾客VM是第一宾客VM,并且该方法进一步包括:向该计算平台提供用于该第二宾客VM的第二vTPM;以及在该计算平台上发起该vRTM和该第二宾客VM的资源之间的完整性测量链。
示例1J是一种或多种包括指令的机器可读介质,响应于由计算平台的处理设备执行,该指令致使该计算平台执行如示例1A-1I中任一项所述的方法。
示例1K是一种包括一个或多个处理设备和一个或多个包括指令的机器可读介质的装置,响应于由该一个或多个处理设备执行,该指令致使该装置执行如示例1A-1I中任一项所述的方法。
示例1L是一种包括用于执行示例1A-1I中任一项所述的方法的操作的一个或多个装置的装置。
示例2A是一种用于计算的方法,该方法包括:在计算平台的第一安全区域中向该计算平平台提供MVM;向计算平台提供用于该计算平台的宾客VM的vTPM,该vTPM在该计算平台的不同于该第一安全区域的第二安全区域中提供;在该vTPM处接收改变存储在vTPM的PCR中的值的命令;在该vTPM处从该MVM通过安全信道接收指示允许该命令的修改符;以及在接收到该修改符之后,由该计算平台改变存储在该PCR中的该值。
示例2B可包括示例2A所述的主题,并且进一步指定该修改符表示与该PCR相关联的VM的生命周期事件。
示例2C可包括示例2A-2B中任一项所述的主题,并且进一步指定改变存储在该PCR中的该值的该命令是用与PCR相关联的VM资源的完整性测量的密码散列扩展存储在该PCR中的该值。
示例2D可包括示例2A-2C中任一项所述的主题,并且进一步指定该MVM包括vRTM。
示例2E包括示例2A-2C中任一项所述的主题,并且进一步包括:在该计算平台的第三安全区域中向该计算平台提供vRTM,其中该第三安全区域不同于该第一和第二安全区域;以及在该计算平台上发起该vRTM和该宾客VM的资源之间的完整性测量链。
示例2F是一种或多种包括指令的机器可读介质,响应于由计算平台的处理设备执行,该指令致使该计算平台执行如示例2A-2E中任一项所述的方法。
示例2G是一种包括一个或多个处理设备和一个或多个包括指令的机器可读介质的装置,响应于由该一个或多个处理设备执行,该指令致使该装置执行如示例2A-2E中任一项所述的方法。
示例2H是一种包括用于执行示例2A-2E中任一项所述的方法的操作的一个或多个装置的装置。
示例3A是一种用于接收完整性测量的方法,该方法包括:由第一计算平台向第二计算平台的处理设备传输报告该第二计算平台的安全区域的完整性测量的命令,其中该安全区域包含被配置作为用于该vRTM和布置在该安全区域外部的宾客VM的资源之间的完整性测量链的用于测量的信任根的vRTM;以及由该第一计算平台从该第二计算平台接收该安全区域的完整性测量。
示例3B可包括示例3A所述的主题,并且进一步包括由该第一计算平台将该安全区域的该完整性测量与预期值进行比较。
示例3C可包括示例3B所述的主题,并且进一步包括由该第一计算平台响应于指示该第二安全区域的该完整性测量匹配该预期值的该比较的结果与该宾客VM的该资源通信。
示例3D可包括示例3B-3C中任一项所述的主题,并且进一步指定该预期值基于定义该vRTM的预期机器可读代码集合。
示例3E可包括示例3A-3D中任一项所述的主题,并且进一步指定该安全区域的该完整性测量是用与该计算平台相关联的密钥签名的。
示例3F是一种或多种包括指令的机器可读介质,响应于由计算平台的处理设备执行,该指令致使该计算平台执行如示例3A-3E中任一项所述的方法。
示例3G是一种包括一个或多个处理设备和一个或多个包括指令的机器可读介质的装置,响应于由该一个或多个处理设备执行,该指令致使该装置执行如示例3A-3E中任一项所述的方法。
示例3H是一种包括用于执行示例3A-3E中任一项所述的方法的操作的一个或多个装置的装置。

Claims (22)

1.一种计算装置,包括:
处理器,以及
与所述处理器耦合的存储器,其中指令存储在所述存储器中,其中所述指令将由所述处理器操作以使得所述装置:
在所述装置的安全区域中提供用于测量的虚拟机信任根vRTM;
提供用于所述装置的宾客虚拟机VM的虚拟机信任平台模块vTPM,所述vTPM在所述装置的不同于所述安全区域的第一区域中被提供;
发起在所述vRTM和所述宾客VM的资源之间的完整性测量链;
在所述vTPM处接收改变存储在所述vTPM的平台配置寄存器PCR中的值的命令;以及
响应于指示所述命令被允许的修改符,改变存储在所述PCR中的所述值,其中,所述命令包括利用与所述PCR相关联的VM资源的完整性测量的密码散列来扩展存储在所述PCR中的所述值的命令。
2.如权利要求1所述的计算装置,其中,所述指令将由所述处理器操作以使得所述装置:
在所述装置的第二安全区域中提供管理虚拟机MVM,所述第二安全区域不同于所述安全区域以及所述第一区域,其中,所述修改符在所述vTPM处从所述MVM通过安全信道被接收。
3.如权利要求2所述的计算装置,其中,所述MVM包括用于测量的虚拟机信任根vRTM。
4.如权利要求1所述的计算装置,其中,所述指令将由所述处理器操作以使得所述装置:
确定是否存在第二完整性测量链将被执行的第二宾客VM;以及
当所述确定为肯定时,提供用于所述第二宾客VM的第二vTPM,并发起在所述第二vRTM和所述第二宾客VM的资源之间的所述第二完整性测量链。
5.一种非瞬态机器可读介质,包括指令,所述指令响应于由第一计算平台的处理设备的执行,使得所述第一计算平台:
接收与第二计算平台的安全区域相关联的完整性测量,其中,所述安全区域包含用于测量的虚拟机信任根vRTM作为在所述vRTM和被布置在所述安全区域外部的宾客虚拟机VM的资源之间的完整性测量链的用于测量的信任根;
提供所述安全区域的所述完整性测量与一个或多个预期值之间的比较的结果;
在所述完整性测量与所述一个或多个预期值不匹配时向所述第一计算平台的另一个组件、另一个计算平台和/或所述第二计算平台提供失配指示符;
在所述完整性测量与所述一个或多个预期值匹配时与所述第二计算平台的宾客虚拟机VM的资源进行通信。
6.如权利要求5所述的介质,其中,进一步使得所述第一计算平台:
向所述第二计算平台的处理设备传输报告所述第二计算平台的所述安全区域的完整性测量的命令,并且其中,所述完整性测量链包括所述宾客VM的虚拟机信任平台模块vTPM的一个或多个完整性测量。
7.如权利要求5所述的介质,其中,提供所述比较的结果包括向所述宾客VM的资源提供所述安全区域的所述完整性测量与所述一个或多个预期值之间的匹配的指示。
8.如权利要求5所述的介质,其中,所述一个或多个预期值基于定义所述vRTM的预期机器可读代码集合。
9.如权利要求5所述的介质,其中,所述安全区域的所述完整性测量是用与所述计算平台相关联的密钥签名的。
10.如权利要求5所述的介质,其中,提供所述比较的结果包括仅当所述安全区域的所述完整性测量匹配所述一个或多个预期值时将所述比较的结果通信给所述宾客VM的所述资源。
11.如权利要求5所述的介质,其中,提供所述比较的结果包括指示所述安全区域的所述完整性测量和所述一个或多个预期值之间的失配。
12.一种非瞬态机器可读介质,包括指令,所述指令响应于由计算平台的处理设备的执行,使得所述计算平台:
在所述计算平台的安全区域中提供用于测量的虚拟机信任根vRTM;
提供用于所述计算平台的宾客虚拟机VM的虚拟机信任平台模块vTPM,所述vTPM在所述计算平台的不同于所述安全区域的第一安全区域中被提供;
发起在所述vRTM和所述宾客VM的资源之间的完整性测量链;
在所述vTPM处接收改变存储在所述vTPM的平台配置寄存器PCR中的值的命令;以及
响应于指示所述命令被允许的修改符,改变存储在所述PCR中的所述值,其中,所述命令包括利用与所述PCR相关联的VM资源的完整性测量的密码散列来扩展存储在所述PCR中的所述值的命令。
13.如权利要求12所述的介质,其中,进一步使得所述计算平台:
在所述计算平台的第二安全区域中提供管理虚拟机MVM,所述第二安全区域不同于所述安全区域以及所述第一安全区域,其中,所述修改符在所述vTPM处从所述MVM通过安全信道被接收。
14.如权利要求13所述的介质,其中,所述MVM包括用于测量的虚拟机信任根vRTM。
15.如权利要求12所述的介质,其中,进一步使得所述计算平台:
确定是否存在第二完整性测量链将被执行的第二宾客VM;以及
当所述确定为肯定时,提供用于所述第二宾客VM的第二vTPM,并发起在所述第二vRTM和所述第二宾客VM的资源之间的所述第二完整性测量链。
16.一种用于获得完整性测量的方法,包括:
接收与第二计算平台的安全区域相关联的完整性测量,其中,所述安全区域包含用于测量的虚拟机信任根vRTM作为在所述vRTM和被布置在所述安全区域外部的宾客虚拟机VM的资源之间的完整性测量链的用于测量的信任根;
提供所述安全区域的所述完整性测量与一个或多个预期值之间的比较的结果;
在所述完整性测量与所述一个或多个预期值不匹配时向第一计算平台的另一个组件、另一个计算平台和/或所述第二计算平台提供失配指示符;
在所述完整性测量与所述一个或多个预期值匹配时与所述第二计算平台的宾客虚拟机VM的资源进行通信。
17.如权利要求16所述的方法,进一步包括:
向所述第二计算平台的处理设备传输报告所述第二计算平台的所述安全区域的所述完整性测量的命令,并且其中,所述完整性测量链包括所述宾客虚拟机VM的虚拟机信任平台模块vTPM的一个或多个完整性测量。
18.如权利要求16所述的方法,其中,提供所述比较的结果包括向所述宾客VM的资源提供所述安全区域的所述完整性测量与所述一个或多个预期值之间的匹配的指示。
19.如权利要求16所述的方法,其中,所述一个或多个预期值基于定义所述vRTM的预期机器可读代码集合。
20.如权利要求16所述的方法,其中,所述安全区域的所述完整性测量是用与所述第二计算平台相关联的密钥签名的。
21.如权利要求16所述的方法,其中,提供所述比较的结果包括仅当所述安全区域的所述完整性测量匹配所述一个或多个预期值时将所述比较的结果通信给所述宾客VM的所述资源。
22.如权利要求16所述的方法,其中,提供所述比较的结果包括指示所述安全区域的所述完整性测量和所述一个或多个预期值之间的失配。
CN201810461023.0A 2013-03-06 2013-03-06 用于虚拟机的测量的信任根 Active CN108762887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810461023.0A CN108762887B (zh) 2013-03-06 2013-03-06 用于虚拟机的测量的信任根

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/US2013/029439 WO2014137338A1 (en) 2013-03-06 2013-03-06 Roots-of-trust for measurement of virtual machines
CN201810461023.0A CN108762887B (zh) 2013-03-06 2013-03-06 用于虚拟机的测量的信任根
CN201380072400.7A CN104969234B (zh) 2013-03-06 2013-03-06 用于虚拟机的测量的信任根

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380072400.7A Division CN104969234B (zh) 2013-03-06 2013-03-06 用于虚拟机的测量的信任根

Publications (2)

Publication Number Publication Date
CN108762887A CN108762887A (zh) 2018-11-06
CN108762887B true CN108762887B (zh) 2022-03-11

Family

ID=51489395

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380072400.7A Active CN104969234B (zh) 2013-03-06 2013-03-06 用于虚拟机的测量的信任根
CN201810461023.0A Active CN108762887B (zh) 2013-03-06 2013-03-06 用于虚拟机的测量的信任根

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380072400.7A Active CN104969234B (zh) 2013-03-06 2013-03-06 用于虚拟机的测量的信任根

Country Status (6)

Country Link
US (2) US9053059B2 (zh)
EP (2) EP3869332B1 (zh)
JP (1) JP6055561B2 (zh)
KR (1) KR101717263B1 (zh)
CN (2) CN104969234B (zh)
WO (1) WO2014137338A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494585B2 (en) 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US10579405B1 (en) * 2013-03-13 2020-03-03 Amazon Technologies, Inc. Parallel virtual machine managers
US9819661B2 (en) 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US9497221B2 (en) * 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US10063445B1 (en) * 2014-06-20 2018-08-28 Amazon Technologies, Inc. Detecting misconfiguration during software deployment
US9715597B2 (en) 2014-09-25 2017-07-25 Mcafee, Inc. Data verification using enclave attestation
US10171427B2 (en) 2015-01-29 2019-01-01 WebCloak, LLC Portable encryption and authentication service module
US9667606B2 (en) 2015-07-01 2017-05-30 Cyphermatrix, Inc. Systems, methods and computer readable medium to implement secured computational infrastructure for cloud and data center environments
US10248791B2 (en) 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
US9673982B2 (en) 2015-09-16 2017-06-06 Sprint Communications Company L.P. Efficient hardware trust verification in data communication systems that comprise network interface cards, central processing units, and data memory buffers
US11042643B2 (en) * 2015-12-24 2021-06-22 Intel Corporation Trusted deployment of application containers in cloud data centers
US10528739B2 (en) 2016-04-20 2020-01-07 Sophos Limited Boot security
WO2018054466A1 (en) * 2016-09-22 2018-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Virtualization of a trusted computing base
US10324862B2 (en) * 2016-09-30 2019-06-18 Intel Corporation Supporting oversubscription of guest enclave memory pages
US10528721B2 (en) * 2016-10-20 2020-01-07 Intel Corporation Trusted packet processing for multi-domain separatization and security
US10642972B2 (en) * 2016-10-20 2020-05-05 Intel Corporation Extending packet processing to trusted programmable and fixed-function accelerators
US10819696B2 (en) * 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
EP3659058B1 (en) * 2017-08-11 2023-07-26 Huawei Technologies Co., Ltd. Devices and methods for key attestation with multiple device certificates
US10621350B2 (en) * 2017-10-02 2020-04-14 Microsoft Technology Licensing, Llc System integrity using attestation for virtual trusted platform module
US10587412B2 (en) * 2017-11-07 2020-03-10 International Business Machines Corporation Virtual machine structure
US11113400B1 (en) * 2017-12-26 2021-09-07 Virtuozzo International Gmbh System and method for providing distributed compute platform on untrusted hardware
US10970390B2 (en) * 2018-02-15 2021-04-06 Intel Corporation Mechanism to prevent software side channels
US11093272B2 (en) 2018-06-27 2021-08-17 International Business Machines Corporation Virtual machine allocation and migration between hardware devices by destroying and generating enclaves using transmitted datafiles and cryptographic keys
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN109165079B (zh) * 2018-08-07 2021-07-27 郑州云海信息技术有限公司 基于虚拟化的云数据中心可信平台、信任链构建方法
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11489827B2 (en) * 2018-10-08 2022-11-01 Oracle International Corporation Dedicated network authentication and allocation for dedicated virtual machine host clusters
CN110515699B (zh) * 2019-08-20 2021-09-07 苏州浪潮智能科技有限公司 一种获取虚拟机所在平台可信状态的方法和设备
US11334670B2 (en) 2020-01-28 2022-05-17 Hewlett Packard Enterprise Development Lp Integrity verification for a software stack or part of a software stack
US11604671B2 (en) 2020-03-19 2023-03-14 Red Hat, Inc. Secure virtual machine and peripheral device communication
CN114398156B (zh) * 2022-03-24 2022-09-09 阿里云计算有限公司 数据通道构建方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350044A (zh) * 2008-09-02 2009-01-21 中国科学院软件研究所 一种虚拟环境信任构建方法
CN101473329A (zh) * 2006-04-21 2009-07-01 交互数字技术公司 用于执行可信计算完整性测量报告的设备和方法
CN102244684A (zh) * 2011-07-29 2011-11-16 电子科技大学 基于usbkey的efi可信云链引导方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103771B2 (en) 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7133525B1 (en) * 2002-05-17 2006-11-07 Communication Security Apparatus Corp. Communication security apparatus and method of using same
US20050132367A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management
JP3945708B2 (ja) * 2004-01-23 2007-07-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム、変換処理システム、逆変換処理システム、変換方法、変換プログラム、及び記録媒体
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US20070056033A1 (en) 2005-03-31 2007-03-08 Grawrock David W Platform configuration apparatus, systems, and methods
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US20070234412A1 (en) * 2006-03-29 2007-10-04 Smith Ned M Using a proxy for endpoint access control
US8151262B2 (en) 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
CN101039186B (zh) * 2007-05-08 2010-08-04 中国科学院软件研究所 系统日志的安全审计方法
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
BRPI0924512A2 (pt) * 2009-12-22 2016-03-01 Intel Corp método e aparelho de fornecimento de execução de aplicativos seguros
US20120151209A1 (en) * 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework
WO2012148324A1 (en) * 2011-04-26 2012-11-01 Telefonaktiebolaget Lm Ericsson (Publ) Secure virtual machine provisioning
MY176908A (en) 2011-04-26 2020-08-26 Mimos Berhad An apparatus and method for determining level of integrity
US20140007087A1 (en) 2012-06-29 2014-01-02 Mark Scott-Nash Virtual trusted platform module

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101473329A (zh) * 2006-04-21 2009-07-01 交互数字技术公司 用于执行可信计算完整性测量报告的设备和方法
CN101350044A (zh) * 2008-09-02 2009-01-21 中国科学院软件研究所 一种虚拟环境信任构建方法
CN102244684A (zh) * 2011-07-29 2011-11-16 电子科技大学 基于usbkey的efi可信云链引导方法

Also Published As

Publication number Publication date
US20150286582A1 (en) 2015-10-08
US20140258733A1 (en) 2014-09-11
CN108762887A (zh) 2018-11-06
EP2815349A1 (en) 2014-12-24
CN104969234B (zh) 2018-06-12
JP6055561B2 (ja) 2016-12-27
US9053059B2 (en) 2015-06-09
EP3869332A2 (en) 2021-08-25
WO2014137338A1 (en) 2014-09-12
EP2815349A4 (en) 2015-10-21
EP3869332A3 (en) 2021-11-17
EP2815349B1 (en) 2021-04-21
EP3869332B1 (en) 2023-04-12
JP2016509321A (ja) 2016-03-24
KR101717263B1 (ko) 2017-03-16
KR20150105390A (ko) 2015-09-16
CN104969234A (zh) 2015-10-07
US9678895B2 (en) 2017-06-13

Similar Documents

Publication Publication Date Title
CN108762887B (zh) 用于虚拟机的测量的信任根
CN108351937B (zh) 计算设备
US9698988B2 (en) Management control method, apparatus, and system for virtual machine
US10635821B2 (en) Method and apparatus for launching a device
US9792143B1 (en) Platform secure execution modes
US9690947B2 (en) Processing a guest event in a hypervisor-controlled system
KR101332135B1 (ko) Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들
EP2207121B1 (en) Protecting content on virtualized client platforms
KR20200036732A (ko) 신뢰 컨테이너들의 고속 론칭을 위한 기술들
CN110348204B (zh) 一种代码保护系统、认证方法、装置、芯片及电子设备
US20110246778A1 (en) Providing security mechanisms for virtual machine images
Hunt et al. Confidential computing for OpenPOWER
GB2466071A (en) Associating a Signing key with a Software Component of a Computing Platform
Rocha et al. Defense-in-depth against malicious insiders in the cloud
Yu et al. Obtaining the integrity of your virtual machine in the cloud
Narayanan et al. Remote attestation of SEV-SNP confidential VMs using e-vTPMs
Narayanan et al. Remote attestation of confidential VMs using ephemeral vTPMs
aw Ideler Cryptography as a service in a cloud computing environment
Kaplan Hardware VM Isolation in the Cloud: Enabling confidential computing with AMD SEV-SNP technology
Song et al. TZ-IMA: Supporting Integrity Measurement for Applications with ARM TrustZone
Wang et al. TrustOSV: Building Trustworthy Executing Environment with Commodity Hardware for a Safe Cloud.
Markin et al. Security threat level estimation for untrusted software based on TrustZone technology
Weiß et al. Integrity verification and secure loading of remote binaries for microkernel-based runtime environments
Kaplan Hardware VM Isolation in the Cloud
WO2023059232A1 (en) First node, second node, third node, computing system and methods performed thereby for handling information indicating one or more features supported by a processor

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