CN104520869A - 可信执行环境虚拟机克隆 - Google Patents

可信执行环境虚拟机克隆 Download PDF

Info

Publication number
CN104520869A
CN104520869A CN201380041313.5A CN201380041313A CN104520869A CN 104520869 A CN104520869 A CN 104520869A CN 201380041313 A CN201380041313 A CN 201380041313A CN 104520869 A CN104520869 A CN 104520869A
Authority
CN
China
Prior art keywords
virtual machine
source virtual
machine state
target virtual
identity
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.)
Granted
Application number
CN201380041313.5A
Other languages
English (en)
Other versions
CN104520869B (zh
Inventor
M·F·诺瓦克
A·J·雷曼
M·尼斯特伦
S·汤姆
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN104520869A publication Critical patent/CN104520869A/zh
Application granted granted Critical
Publication of CN104520869B publication Critical patent/CN104520869B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

具有可信执行环境(诸如基于软件的可信平台模块)的虚拟机的克隆。为了克隆虚拟机,源虚拟机的虚拟机状态被复制以制定要与目标虚拟机相关联的目标虚拟机状态。目标虚拟机是源虚拟机状态的克隆,并且因而针对源虚拟机状态和目标虚拟机状态中的可信执行环境的存储分层结构可以是相同的。然而,因为目标虚拟机的身份与源虚拟机的身份不同,所以目标虚拟机状态的背书分层结构被更改,使得它基于目标虚拟机的身份而非源虚拟机。

Description

可信执行环境虚拟机克隆
背景
可信平台模块(即“TPM”)是与计算设备的常规操作环境隔离的可信执行环境。通常,TPM以物理上绑定到计算设备的芯片形式来实现。常规计算环境可以通过接口(该接口的一个示例是基于TPM的服务(即“TBS”))与TPM通信。
TPM提供各种功能,最常用的包括密码密钥生成、策略驱动的密钥使用、密封存储以及证明。TPM具有被称为“受保护区域”的存储器区域,该“受保护区域”包含无法从TPM外部读取的数据,但是可以使用这些数据来执行操作。一些数据是不可改变的,并且因而由正在执行的操作读取(但不被改变),而一些数据是可改变的并且可以通过这些操作来改变。注意,读取数据的是在TPM内部正在执行的操作。受保护数据在TPM外部是不可读的。
因而,TPM具有执行操作的操作组件,以及保留不能够在TPM外部被读取的受保护数据的存储器组件。TPM的操作速度受限于TPM内硬件的能力。同样,受保护区域的大小受限于TPM内的空间。
概述
本文描述的至少一个实施例涉及其状态包括可信执行环境(如,基于软件的可信平台模块)的虚拟机的克隆。为了克隆虚拟机,源虚拟机的虚拟机状态被复制以制定要与目标虚拟机相关联的目标虚拟机状态。目标虚拟机是源虚拟机状态的克隆,并且因此在存在存储分层结构的情况下,可信执行环境的存储分层结构在源虚拟机和目标虚拟机中可以是相同的。然而,因为目标虚拟机的身份与源虚拟机的身份不同,所以目标虚拟机状态的背书分层结构被更改,使得它基于目标虚拟机的身份而非源虚拟机。
克隆可被执行以针对任何目的,诸如,举例而言,复制源虚拟机以使得两个虚拟机可从该点处继续操作。或者,克隆可被执行以为源虚拟机状态建立回滚(rolled back)状态。因此,克隆和回滚(虚拟化的两个关键操作)可在可信执行环境的环境中实现,所述可信执行环境由于在可信执行环境中进行克隆所呈现的困难而抵抗虚拟化。在一个实施例中,主机计算系统上的每一虚拟机具有相关联的基于软件的可信执行环境,从而允许虚拟机连同其可信执行环境一起迁移。因而,本文描述的原理允许可信执行环境被虚拟化。
提供本概述是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念选择。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助判定所要求保护的主题的范围。
附图说明
为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
图1示出可用于采用本文描述的各实施例并且包括管理级和本地可信执行环境级的示例计算系统;
图2示出运行多个虚拟机的主机计算系统,所述虚拟机中的一些具有它们自己的可信执行环境;
图3示出用于在具有可信执行环境的那些虚拟机的环境中克隆源虚拟机以形成目标虚拟机的方法的流程图;
图4A示出其中存在与源虚拟机相关联的可信执行环境的情形;
图4B示出其中源虚拟机的可信执行环境被复制以创建目标虚拟机的可信执行环境的情形;
图4C示出了其中目标虚拟机的可信执行环境的背书分层结构被修改成基于目标虚拟机的身份的情形;
图5示出了其中源虚拟机被克隆两次以形成两个目标虚拟机的过程;
图6示出了其中源虚拟机被克隆以创建目标虚拟机并且随后该目标虚拟机变成用于另一克隆的源虚拟机的过程;
图7示出了用于允许执行图3的方法的可信执行环境的生成和结构的特定体系结构;
图8示出了其中多个客户端其中的一些利用通过网络的与系统的可信平台模块(TPM)接口的环境;
图9将受保护数据集抽象地示为包括不可改变数据和可改变数据;以及
图10示出了用于管理可信执行环境命令的方法的流程图。
具体实施方式
根据本文描述的至少一个实施例,描述了虚拟机的克隆。虚拟机包括可信执行环境,诸如基于软件的可信平台模块。为了克隆虚拟机,源虚拟机的虚拟机状态被复制以制定要与目标虚拟机相关联的目标虚拟机状态。目标虚拟机是源虚拟机状态的克隆,并且因而针对源虚拟机状态和目标虚拟机状态中的可信执行环境的可信执行环境的存储分层结构可以是相同的。然而,因为目标虚拟机的身份与源虚拟机的身份不同,所以目标虚拟机状态的背书分层结构被更改,使得它基于目标虚拟机的身份而非源虚拟机。
在一些实施例中,向每一虚拟机提供它自己的可迁移的基于软件的可信执行环境。因而,本文描述的至少一些实施例通过允许虚拟机连同可信执行环境一起被克隆、回滚以及迁移,允许可信执行环境的虚拟化。
计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备(诸如智能电话)、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备(诸如腕带手表、厨房电器、汽车、医疗植入设备等)。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能含有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。
如此处所使用的那样,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
这里描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。这里描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令或数据的计算机可读介质是物理存储介质。承载计算机可执行指令或数据的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动转移到计算机存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。
在本说明书和权利要求书中,“设备”被定义为不是分布式的任何计算系统。然而,本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可被存储在计算系统的存储器中。
图1示出了计算系统100的示例。计算系统100表示包括可信执行环境的物理机。本文描述的原理提供虚拟机的环境中的可信执行环境。然而,因为可信执行环境传统上被用于物理机,所以图1被包括以描述可信执行环境的原理。
计算系统100包括管理域110(即“管理级”)和本地可信执行环境域120(即“本地可信执行环境级”)。管理域110包括处理器111和主存储器112。主存储器112经由处理器111的使用可供计算系统100的管理员访问。主存储器112可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。
本地可信执行环境域120甚至无法直接由人类管理员访问。本地可信执行环境域120包括可信平台模块(TPM)121,可信平台模块(TPM)121包括密码功能122和受保护区域123。如果存在直接访问TPM内容的任何可能的方法,则该方法将会涉及实际上物理地将TPM分片或以其它方式将TPM分解并且使用复杂设备来物理地检查内容。因而,本地可信执行环境域120的内容是安全的。受保护区域123包括在TPM外部无法读取的至少一些内容。然而,密码功能122能够使用受保护区域123的内容来操作。受保护区域包括不可改变数据123A和可改变数据123B。这两种类型的数据都能够由密码功能122读取。然而,仅可改变数据123B能够被密码功能122写入。
不可改变数据的一个示例是背书密钥,其充当TPM的通行证,从而提供TPM身份的制造商级安全性。此外,由于常规TPM物理地附连于计算系统,背书密钥还安全地标识了计算系统100,并且因而可以充当计算系统100的信任基础。
可改变数据的示例包括其它密钥、单调计数器、以及非易失性存储器。其它密钥可以应处理器111的请求来构造。单调计数器在被处理器111请求时或者响应于某些事件(诸如使系统上电)而递增。密钥可以是可迁移的或者不可迁移的。可迁移密钥可以在具有正确授权的任何TPM中使用,而不可迁移密钥仅可在TPM 121中使用。
计算系统100包括用于在处理器111与TPM 121中间进行通信的接口130。常规接口130的一个示例是基于TPM的服务模块(TBS),基于TPM的服务模块(TBS)将来自处理器111的TPM命令提供给TPM 121,并且如果合适,将密码处理的结果(当然不包括TPM 121的内容)返回给处理器111。
计算系统100表示具有可信执行环境的物理机。另一方面,图2示出了运行多个虚拟机的主机计算系统200(此后简称为“主机”),该多个虚拟机中的一些具有它们自己的可信执行环境。主机200被示为操作三个虚拟机210,包括虚拟机210A、210B以及210C。然而,省略号210D表示本文描述的原理不受主机200上运行的虚拟机的数量的限制。
虚拟机210A和210B中的一些具有它们自己的可信执行环境。例如,虚拟机210A具有相关联的可信执行环境211A,且虚拟机210B具有相关联的可信执行环境211B。虚拟机210C不具有可信执行环境,以示出本文所描述的原理不限于所有虚拟机各自具有它们自己的可信执行环境的环境,只要至少一个虚拟机具有其自己的可信执行环境即可。
可信执行环境211A和211B各自由管理程序220以可信执行环境不可由相应虚拟机直接可读的方式以软件实现。或者,如前面参考图8到10所述,可信执行环境可由管理程序220外部的云服务来实现。比较图1和2,虚拟机210A和可信执行环境211A的组合仿真了图1的计算系统100,其中管理域110由虚拟机210A来仿真,并且其中可信执行环境域120由受管理程序220管理的基于软件的可信执行环境211A来仿真。同样地,虚拟机210B和可信执行环境211B的组合也仿真了图1的计算系统100,其中管理域110由虚拟机210B来仿真,并且其中可信执行环境域120由受管理程序220管理的基于软件的可信执行环境211B来仿真。
在操作期间,虚拟机210各自仿真完全可操作的计算系统,该计算系统包括至少一个操作系统并且也许还包括一个或多个其他应用。每个虚拟机被分派特定的客户端,并且负责支持该客户端的桌面环境。在一些情况下,诸如在虚拟机是虚拟服务器时,虚拟机可被分派给一个或多个客户端。虚拟机生成桌面镜像或其他表示桌面的当前状态的呈现指令,并接着将该镜像或指令传送到客户端以供桌面的呈现。
在用户与客户端处的桌面进行交互时,用户输入从客户端被传送到虚拟机。虚拟机处理用户输入,并且如果合适,则改变桌面状态。如果桌面状态中这样的改变将导致在所呈现的桌面中的改变,则虚拟机更镜像或呈现指令(如果合适的话),并将经更改的图像或呈现的指令传送到客户端计算系统以供合适的呈现。从用户的角度而言,就好像客户端计算系统自身在执行桌面处理。
除了管理可信执行环境211A和211B之外,管理程序220使用从虚拟机210的角度来看被抽象的物理资源230来仿真虚拟机210的虚拟资源。管理程序220还提供虚拟机210之间的适当的隔离。因此,从任何给定的虚拟机的角度来看,管理程序220提供该虚拟机正与物理资源对接的错觉,即便该虚拟机仅仅与物理资源的表象(例如,虚拟资源)对接,而不是直接与物理资源对接。因而,管理程序220在虚拟机210和物理资源230之间起调解作用。在图2中,物理资源230被抽象地表示为包括资源230A到230F。物理资源230的示例包括处理容量、存储器、盘空间、网络带宽、媒体驱动器等等。
图3示出用于在具有可信执行环境的那些虚拟机的环境中克隆源虚拟机以形成目标虚拟机的方法300的流程图;方法300可由例如图2的主机计算系统200来执行。例如,假定主机200要克隆虚拟机210A。方法300可以在关于图4A到4C示出的情形(或状态)序列的环境中执行,并且因而将频繁参考图4A到4C以及图2来描述图3。
访问源虚拟机的源虚拟机状态(动作301)。例如,在图4A的情形400A中,访问源虚拟机410的源虚拟机状态411。源虚拟机状态411包括至少具有背书分层结构414但还可具有存储分层结构413的可信执行环境412。存储分层结构413可由虚拟机用来访问存储(例如,所存储的数据和/或代码)。背书分层结构414具有签署部分415,这允许源虚拟机或其经认证的用户签署声明。背书分层结构414基于源虚拟机410的身份。在一个实施例中,背书分层结构414的签署部分415只在源虚拟机410的可信执行环境412中存在背书分层结构的情况下被启用。在其中图2的虚拟机210A要被克隆的示例中,虚拟机410是虚拟机210A的示例,且可信执行环境412是可信执行环境211A的示例。
接着,源虚拟机状态被复制以制定目标虚拟机状态(动作302)。例如,参考图4B的情形400B,源虚拟机状态411被复制(如箭头401所表示的),以制定目标虚拟机状态421。目标虚拟机状态421包括目标可信执行环境422,这可以是源可信执行环境412的副本。目标可信执行环境422包括存储分层结构423和背书分层结构424,存储分层结构423可以是源可信执行环境412中的存储分层结构413的副本,背书分层结构424可以是源可信执行环境412中的背书分层结构414的副本。
然而,目标背书分层结构中的签署部分425作为所述复制的结果而被禁用(如表示签署部分的框425的左下角中的“x”所表示的)。这是因为目标背书分层结构425是源背书分层结构415的副本,源背书分层结构415基于源虚拟机410的身份而非基于目标虚拟机420。
方法300随后包括修改目标虚拟机状态,使得目标虚拟机状态的背书分层结构基于目标虚拟机的身份而非源虚拟机(动作303)。例如,状态4C的情形400C中,注意,签署部分425已被更改为部分425'。然而,该框左下角中的“x”已被移除以反映背书分层结构424现在基于目标虚拟机420的身份而非源虚拟机410。因此,签署部分425’现在被启用以代表目标虚拟机420和/或其经认证的用户来签署。注意,因为签署部分425’被改变,所以包含签署部分425’的那些部分也被示为已改变。例如,背书分层结构424变成背书分层结构424’,目标可信执行环境422变成目标可信执行环境422’,且目标虚拟机状态421变成目标虚拟机状态421’。
这一克隆操作可被用来回滚虚拟机410的状态,或复制虚拟机410,使得副本410和420两者初始地基于相同的虚拟机状态(尽管这些状态将可能由于在每一虚拟机410和420上执行的不同操作而从该点处产生差异)来继续操作。
例如,在回滚的情况下,源虚拟机410正在操作,在某一时刻拍摄源虚拟机状态411的快照。在源虚拟机410正在操作时,可能拍摄许多这样的快照。现在,假定用户决定将源虚拟机410回滚到与快照相对应的先前时间。在这种情况下,克隆方法300将在表示源虚拟机410的先前在该时刻点捕捉的状态的源虚拟机状态411上执行。在这种情况下,源虚拟机410将不再操作,但目标虚拟机420会作为源虚拟机410的经回滚版本而继续。
或者,克隆方法400可以在源虚拟机410的当前状态上执行。在这种情况下,在这样的复制发生时,源虚拟机410被暂停,且当前虚拟机状态被捕捉,从而造成源虚拟机状态411。该克隆方法发生,造成目标虚拟机状态421,它具有被修改成基于目标虚拟机420的新身份的背书分层结构。因而,在这种情况下,在复制发生之后,源虚拟机410以源虚拟机状态411开始继续操作,并且目标虚拟机420使用目标虚拟机状态421来开始操作。
图5示出了其中源虚拟机510被克隆两次的过程500。源虚拟机510在时刻T0开始操作。随后,在时刻T1,源虚拟机510被克隆以形成第一目标虚拟机511。从时刻T1,目标虚拟机511可开始操作。还从时刻T1,源虚拟机510继续操作,直至时刻T2。在时刻T2,源虚拟机510再次被克隆以形成第二目标虚拟机512。因此,多个目标虚拟机可从单个源虚拟机克隆,无论是在同一时刻还是不同时刻。例如,作为替换方案,目标虚拟机511和512两者都可在时刻T1从源虚拟机510来克隆。此外,在图5中,注意,在一个实施例中,源虚拟机510可从时刻T2继续操作,但在回滚的情况下,回滚使得源虚拟机510在时刻T2之后的继续执行被放弃,以有利于经由目标虚拟机512的继续执行。同样,注意,因为方法300被应用,所以这两个目标虚拟机中的每一个的可信执行环境的背书分层结构将基于它们各自的身份。
图6示出了其中源虚拟机610被克隆以创建目标虚拟机611并且随后该目标虚拟机611变成用于第二目标虚拟机612的另一克隆的源虚拟机的过程600。源虚拟机610在时刻T0开始操作。随后,在时刻T1,源虚拟机610被克隆以形成第一目标虚拟机611。从时刻T1,目标虚拟机611可开始操作,直至时刻T2。在时刻T2,目标虚拟机611被克隆以形成第二目标虚拟机612。因此,目标虚拟机的克隆也是可能的。注意,源虚拟机610可从时刻T1继续操作,但在回滚的情况下,回滚可使得源虚拟机610在时刻T1之后的继续执行被放弃,以有利于经由目标虚拟机611的继续执行。类似地,目标虚拟机611可从时刻T2继续操作,但在回滚的情况下,回滚可使得目标虚拟机611在时刻T2之后的继续执行被放弃,以有利于经由目标虚拟机612的继续执行。
图7示出了用于允许执行方法300的可信执行环境的生成和结构的特定体系结构700。这一特定实现可以使用例如由可信计算组织指定的TPM版本2.0。在该标准中,种子值701可被馈送到密钥导出功能702以生成背书密钥703,背书密钥703被包含在可信执行环境710的背书分层结构内。
背书密钥703包括可被用来代表可信执行环境所服务的虚拟机(或其经认证的用户)签署新声明的签署部分704。例如,签署部分704可以是背书密钥703的私有部分。背书密钥703还包括可被用来验证由可信执行环境服务器所服务的虚拟机(或其经认证的用户)做出的先前声明的验证部分705。
TPM版本2.0允许将策略附加到对背书密钥的使用上。在图7中,策略706被分派给背书密钥703的签署部分704的使用。具体而言,签署部分704在以下条件下被启用:相关联的虚拟机的身份尚未从形成背书分层结构的基础的身份改变。例如,在图4A的示例中,背书密钥的签署部分415以作为背书分层结构414的基础的对应虚拟机(即,源虚拟机410)的身份为条件。因为执行环境412是用基于源虚拟机410的身份的背书分层结构来创建的,所以签署部分415被启用。然而,在图4B中,因为签署部分425是签署部分415的副本,所以签署部分425不被启用,直至该签署部分被修改成基于目标虚拟机的新身份,如参考图4C所示出和描述的。
在一些实施例中,背书分层结构是否基于虚拟机的身份的证据是用持久存储器711中的值(例如,PCR值)并用单调计数器712来提供的。在可信执行环境710被复制作为虚拟机的克隆的一部分时,PCR 711的值也将保持不变。然而,结合复制操作,与仍然与源虚拟机相关联的PCR 711的值相比,与目标虚拟机相关联的PCR 711的值被更改。例如,PCR 711值可按与克隆有关的信息能从新值导出的方式来更改。因而,任何给定虚拟机的PCR 711可被引用以查看创建该给定虚拟机的克隆历史。
替换地或补充地,背书分层结构是否基于虚拟机的身份的证据是使用可信执行的持久单调计数器712的值来提供的。例如,结合复制操作,计数器712可被递增。因而,与源虚拟机状态中的计数器712相比,目标虚拟机状态内的计数器712将递增1。因而,PCR值711和计数器712可将任何克隆的虚拟机唯一地标识为具有与源虚拟机相比不同的身份。同样结合复制操作,绑定到新PCR值711和新计数器值712的新背书密钥被创建。这允许在背书密钥上建立的背书分层结构基于新身份。在一个实施例中,新背书密钥的创建是通过创建在原始源虚拟机被创建时发出主证书的主密钥来执行的。这一主证书可被用来验证目标虚拟机确实是源虚拟机的克隆,从而允许管理程序确信地向目标虚拟机发出新背书密钥。
因而,描述了一种机制,所述机制用于允许虚拟机使用可信执行环境(如,基于软件的可信平台模块)来操作,同时允许虚拟机被克隆、回滚以及迁移,而不会不利地影响可信执行环境所提供的安全性。
参考图2,可信执行环境被示为在同一主机计算系统200上操作。然而,本文描述的原理不限于与虚拟机的位置相比的可信执行环境的位置。作为示例,可信执行环境可以是例如基于云的可信执行环境,如在下文描述的。
图8示出了可在其中采用本文所描述的原理的环境800。具体地,环境800包括多个客户端计算系统801(在下文被称为“客户端801”)。客户端801中的每一个可以是例如虚拟机,如图2的虚拟机210。本文描述的原理允许至少一些本地可信执行环境功能通过网络803从客户端卸载到系统810中。这是违反直觉的,因为传统上TPM模块在本地可信执行环境级操作并且因而物理地绑定到客户端。在图8的情形中,多个客户端能够将TPM功能卸载到系统810中。网络803的一个示例是因特网,但是本文描述的原理还可应用于其它网络,诸如可能是企业网络。
TPM的功能通过使系统810仿真受保护区域及其不可读取性的特征来卸载。例如,传统TPM具有包括在TPM外部无法被读取的数据的受保护区域,而系统810具有针对每一实体的受保护区域,并且该受保护区域从系统外部或者从账户外部无法读取,除了安全处理器813能够读取之外。由于系统810不容易遭到破坏而藉此允许另一实体读取受保护数据,因此系统810在造成对发现受保护区域的内容的严重障碍方面提供了本地可信执行环境安全的等效物。
此外,安全处理器813可以用本地TPM通常将对可信执行环境命令作出响应的相同方式来对这些可信执行环境命令作出响应。例如,安全处理器813可以对密钥和/或受保护数据集执行密码和/或安全处理。这允许对TPM的许多功能进行仿真。如果客户端被毁坏,TPM在系统810中仍然可用,并且因而从TPM生成的密钥和其它数据(诸如与TPM相关联的单调计数器、非易失性RAM内容等)仍然可以使用。
在图8中,存在示出的六个客户端801A到801F。然而,省略号801G表示本文描述的原理不受到连接到系统810的客户端801的特定数量的限制。可能存在少至一个客户端,但也可能存在很多个客户端,尤其在网络803是因特网和/或系统810是云计算环境的情况下。此外,客户端801的数量可以随着时间而改变。例如,如果系统810是云计算环境,则客户端801的数量可以每秒或每分钟地变化。
在该描述和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其他多个优点。
例如,云计算当前被用于市场,以便提供对可配置计算资源的共享池的普遍存在且方便的按需访问。此外,可配置计算资源的共享池可经由虚拟化而被快速地供应,并可利用低管理努力或服务提供商干预来发布,并随后因此被缩放。
云计算模型可由各种特性组成,诸如按需自服务、广泛网络访问、资源池、快速灵活性、测定的服务等。云计算模型还可形成各种服务模型,诸如例如软件即服务(SaaS)、平台即服务(PaaS)以及基础结构即服务(IaaS)。云计算模型还可以使用不同的部署模型来部署,诸如私有云、社区云、公共云和混合云等。在该描述和权利要求书中,“云计算环境”是其中采用了云计算的环境。
一些客户端801可包括TPM,而一些客户端可以不包括TPM。例如,在图8的情形中,客户端801A具有TPM 802A,客户端801B具有TPM 802B,而客户端801E具有客户端802E。包括客户端801C、801D或801F的其它客户端不具有TPM。TPM的存在允许将TPM的一些机器特定的功能(诸如提供与机器相关联的可信事件历史的能力)如下文所说明地进行卸载,即便本地客户端TPM可能无法完全作为TPM来运作。然而,即便没有TPM,一些TPM功能仍然可以如下所述地进行卸载。
系统810包括接收模块811,接收模块811接收由客户端801发出的可信执行环境命令。通常使用TPM软件接口(诸如TBS)被发到TPM的可信执行环境命令取而代之被截取,并且指派到系统810以藉此由接收模块811接收。例如,客户端801A到801F将这些可信执行环境命令指派为由对应的箭头805A到805F所表示的。每一可信执行环境命令是用于对与发出命令的实体相对应的安全环境(例如,密钥或数据)进行操作的命令。系统包括安全处理器813,安全处理器813响应于由接收模块811接收到可信执行环境命令来执行密码和安全功能。
系统810还包括账户管理模块812,账户管理模块812包括多个受保护账户821。在图8中,账户包括三个账户821A、821B和821C,但省略号821D表示可以存在由系统810管理的任何数目的账户。每一个账户对应于客户端801中的一个或多个客户端,并且包括对应于每一客户端的受保护数据集。每一受保护数据集仿真TPM的受保护区域对于每个客户端而言看起来将是如何。然而,由于受保护数据集不受TPM的较小区域的限制,因此受保护数据集可以大得多,可能在兆字节、千兆字节或万亿字节的范围内。
在图8中,账户821A具有对应于客户端801A的受保护数据集822A。账户821B具有对应于客户端801B的受保护数据集822B,以及对应于客户端801C的受保护数据集822C。账户821B的各个客户端由点划线框涵盖。账户821C具有对应于客户端801D的受保护数据集822D,对应于客户端801E的受保护数据集822E,以及对应于客户端801F的受保护数据集822F。账户821C的各个客户端由虚线框涵盖。
受保护数据集822在它们的内容在系统的上下文外部无法读取并且可能在对应的账户外部无法读取(除了可能由安全处理器813读取之外)的意义上是“受保护”的。在一个实施例中,安全处理器813的一个实例是在账户的上下文内部运行。在该情形中,将会在账户821A内部存在安全处理器813,在账户821B内部存在另一安全处理器813,并且在账户821C内部存在另一安全处理器813。
每一数据集仿真在TPM不存在存储器限制的情况下对应的客户端801可能在其TPM中具有什么的示例。例如,图9示出了包括不可改变数据901和可改变数据902的特定数据集900。例如,不可改变数据901包括背书密钥911,其是不可迁移的。不可改变数据901还包括可迁移密钥912以及其它不可改变数据913。可改变数据902包括可迁移密钥921、不可迁移密钥922、单调计数器923、以及非易失性存储器924。
所有的数据集900如上所提及地受保护。然而,不可改变数据901无法被改变,即便是安全处理器813也无法改变它。可改变数据902可以改变,但仅响应于安全处理器813的执行。背书密钥911是不可迁移密钥,因为其仅能在对应于数据集的账户内部使用。然而,可迁移密钥912可以在账户外部使用,但仅能在阻止对可迁移密钥不受阻碍地读取的受保护环境(诸如在另一TPM或另一类似配置的账户内)下进行。不可改变数据901还可包括其它数据913。可改变数据902也可具有可迁移和不可迁移密钥,诸如可迁移密钥921和不可迁移密钥922。可改变数据902还可包括单调计数器,单调计数器响应于递增的请求和/或响应于另一事件(诸如打开机器的电源)而不可逆地递增。可改变数据902还可包括非易失性存储器。
可任选地,每一受保护账户821A到821C可以进一步包括对应的账户级数据集823A到823C。例如,账户821A具有帐户级数据集823A,账户821B具有账户级数据集823B,而账户821C具有账户级数据集823C。每一账户级数据集不特定于与该账户相关联的任何实体,而是通用于该账户自身。作为一个示例,使用现有的TPM通信协议,可以将上级PCR(诸如PCR 24及以上)用于这样的账户级数据。
作为一个示例,假定账户821B对应于特定用户,账户级数据集823B可列出用户口令。账户级数据集823B还可用于记录与账户相关联的不可改变事件。例如,账户级数据集823B可以存储操作系统中高敏感度功能(诸如账户和会话管理)的记录。此外,能够将账户绑定到其它可信平台模块(TPM)属性(例如像PCR)允许向用户隐式证明系统是被成功认证并且是可操作的。作为另一示例,用户可以存储用户向其注册的许可序列。再一次,这一序列可以是不可改变的,并且可能使用可从中数学地导出许可序列的单个条目来作出。在该情形中,如果出现关于用户是否具有对特定产品的许可证的问题,则该用户可能具体地知道答案。
相应地,本文所描述的是一种将受保护区域的内容的有保证的不可改变性通过网络(诸如在云计算环境中)从本地TPM卸载到服务的有效方式。这通过截取从客户端处理器向TPM发出的可信执行环境命令,并且通过网络将它们重定向到具有能够解读可信执行环境命令的安全处理器以及针对包括要受保护的数据的每一客户端的数据集的系统来完成。
这保护了本地可信执行环境层的安全性,因为要破坏受保护区域(例如数据集)将是极度困难的或不可能的,实质上要求破坏系统810以便访问受保护数据。由于系统810可能是相当复杂且具有高安全级,破坏系统810将是极度困难的或不可能的。该难度或不可能性甚至可能超过试图破坏客户端机器自身上的客户端TPM的难度或不可能性。相应地,保护了本地可信执行环境安全性。尽管信息可以从客户端传达到系统810,但这些信息仅仅是可信执行环境命令,而非数据集中受保护的实际数据。相应地,即便有人能够读取这些话务,受保护数据仍然是受保护的。在某一实施例中,如果客户端处理器和系统810之间存在信任关系,则甚至网络话务都可以被加密。在存在与毫无障碍地传送命令相关联的安全问题的情形中,这可能是有帮助的。这样的信任关系可以例如在供应客户端的时候被引导。
作为一种附加益处,由于存储器空间不再受限于小的芯片,可用存储器的量可显著增加。此外,由于处理能力不再受限于小型TPM芯片,密码过程可以被更高效得多地执行和/或变得更复杂。同样,由于受保护区域不再物理耦合至客户端,如果客户端被毁坏,使用来自受保护区域的数据构造的密钥仍然可以使用。
在描述其它方面之前,本文将进一步描述与处理可信执行环境命令相关联的一般处理流程。具体地,图10示出了用于处理可信执行环境命令的方法1000的流程图。作为一个示例,可信执行环境命令可以是任何TPM命令,无论是否符合任何现有协议(诸如TPM版本2.0)或者是否符合促进与本地可信执行环境层的通信的将来TPM协议或任何协议。方法1000的一些动作由客户端(例如客户端801A)执行,如图10的右侧栏中标题“客户端”下方所示。其它动作由系统810执行,如图10的中间栏中标题“系统”下方所示。其它动作由安全处理器813执行,如图10的左侧栏中标题“TPM”下方所示。
该过程当客户端发出可信执行环境命令时开始(动作1001)。作为指派到客户端上的本地TPM的替换或者补充,可信执行环境命令被截取(动作1002),并且指派到系统(动作1003)。
系统接着接收到可信执行环境命令(动作1011),标识与发出该可信执行环境命令的客户端相关联的账户(动作1012),标识与该客户端相关联的数据集(动作1013),以及标识要执行的操作(动作1014)。安全处理器随后被指令执行操作(动作1015),并且安全处理器随后对标识出的账户的标识出的数据集执行操作(动作1021)。
尚未提及的TPM的功能之一依赖于检测对应客户端的电力循环的能力。这是TPM在对应客户端内绑定并且硬连线到客户端的电源的原因之一,因为这样TPM能够检测电源的丢失以及电源的恢复。检测电力循环的原因之一在于使得TPM能够在经历电源丢失和恢复之际重置受保护数据内的一些数据。在一些情形中,一些机器专用的数据在TPM内的可靠性依赖于知晓电力循环。
应当在电力循环之际被重置的数据的一个示例是平台事件日志。在典型的TPM中,事件日志被表示为单个条目。只要感兴趣的新事件发生(例如,加载了一段软件,或者开始执行了一段软件),该事件与先前的条目串接、散列、并且随后作为该条目的新值被存储。如果以保留来自旧条目的信息(即先前事件)的方式来完成这些操作,则可以数学地求解该条目以回放在平台上发生的事件序列。由此,能够证明平台完整性。
然而,由于系统810没有物理地绑定到任何客户端801而是取而代之通过网络进行通信,使系统810确定各个客户端801中的任一个客户端是否经历电力循环是困难的。然而,如果客户端的确具有TPM,则该TPM可追踪刚好够推断已经发生电力循环的信息。甚至在给定可信执行环境命令可能未被给予本地TPM而是取而代之被截取并且指派给系统810从而本地客户端TPM无法完全运转的情况下,这也是可能的。例如,在图8中,客户端801A被示为包括TPM 802A,客户端801B被示为包括TPM 802B,而客户端801E被示为包括TPM 802E。
在此情形中,账户管理模块812和/或系统810作为整体可以通过与安装在该客户端中的本地客户端TPM进行通信(例如,在客户端802A的情形中与TPM 801A进行通信)来检测给定客户端已经被重新引导。例如,系统810可以从客户端801A接收指示已经发生动力循环的加密陈述。存在能够发生这一操作的若干方式。
在第一示例中,系统810和本地客户端TPM可以通信,以使得系统810接收到在电力循环之际将被重置的与寄存器相关联的PCR值。系统810随后将系统处的受保护数据中的PCR的当前值与本地客户端TPM中的PCR值作比较,并且可以推断是否已经发生了电力循环。
在第二示例中,本地客户端TPM可以在客户端每次通电之际建立短暂密钥,并且随后与客户端处理器协商关于使用这一短暂密钥以便通信。系统810知晓这一短暂密钥,因为它追踪通信。如果系统810检测到它不再能够理解通信,则该短暂密钥一定已经改变,从而暗示客户端经历了电力循环。
在一替换实施例中,系统810的电力循环甚至可以在系统810上没有TPM的情况下被检测到。例如,这可以通过具有能够监视客户端系统的电力循环的系统监视器来完成。这一系统监视器的一个非限制示例是的系统中央虚拟机监视器(即SCVMM)。
只要新的客户端被添加到账户,系统810就可以将受保护数据添加到给定账户。例如,当检测到与特定账户的通信并且该通信或多或少指示了该通信来自未经识别的客户端时,则可以将新的数据集添加到该账户。因而,例如,假定客户端使用加密密钥来与系统通信,如果使用未经识别的加密密钥的通信到达,则可能已经添加了新的客户端。同样地,在对应客户端不再在账户上操作之后,可以删除该账户的受保护数据集。例如,可能存在垃圾收集动作,其中在某一时间段(可能几年)内未被使用的受保护数据集从账户删除。
策略模块814可用于取决于关于对应于客户端的受保护数据集的一个或多个数据字段是否满足准则来允许客户端作出的动作。替换地或附加地,策略模块814可用于取决于关于账户级数据集的一个或多个数据字段是否满足准则来允许与账户相关联的任何客户端作出的动作。结合与受保护数据集相关联的存储器与本地TPM相比可被显著扩充的事实,这能够实现极多的可能性。
例如,假定给定客户端的受保护数据集包括客户端的恢复状态的整个映像(例如,操作系统、任何标准应用、标准配置设置等)。如果该客户端被丢失或破坏,账户上的另一客户端可以访问该映像并且将该映像安装到新的客户端上(假定满足某些策略),该策略旨在受保护以免不正确地获得客户端的恢复状态。或者,密钥可被保持在受保护数据集中,并且该密钥保护其他位置处的恢复状态。在这种情况下,只在策略被满足的情况下才使得密钥可被访问。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (10)

1.一种用于克隆具有相关联的可信执行环境的源虚拟机状态以制定目标虚拟机状态的方法,所述方法包括:
访问具有身份的源虚拟机的源虚拟机状态的动作,所述源虚拟机状态包括至少具有背书分层结构的可信执行环境,所述背书分层结构基于所述源虚拟机的身份;
复制所述源虚拟机状态以制定要与目标虚拟机相关联的目标虚拟机状态的动作,所述目标虚拟机具有与所述源虚拟机的身份不同的身份,其中所复制的背书分层结构的签署部分被禁用;以及
修改所述目标虚拟机状态使得所述目标虚拟机状态的背书分层结构基于所述目标虚拟机的身份的动作。
2.根据权利要求1所述的方法,其特征在于,所述源虚拟机状态表示在先前时间状态时的虚拟机状态,其中所述克隆被执行以执行所述源虚拟机的回滚,使得所述目标虚拟机能作为所述源虚拟机的经回滚版本来继续,并使得所述源虚拟机自身不再操作。
3.根据权利要求1所述的方法,其特征在于,所述源虚拟机状态表示所述源虚拟机的暂停状态,使得在所述克隆之后,所述源虚拟机以所述源虚拟机状态开始来继续操作,并使得所述目标虚拟机使用所述目标虚拟机状态来开始操作。
4.根据权利要求1所述的方法,其特征在于,所述背书分层结构的签署部分的启用是以相关联的虚拟机的身份没有从形成所述背书分层结构的基础的身份改变为条件的。
5.根据权利要求1所述的方法,其特征在于,所述源虚拟机状态是第一源虚拟机状态,所述目标虚拟机是第一目标虚拟机,并且所述目标虚拟机状态是第一目标虚拟机状态,所述方法进一步包括:
在所述源虚拟机从所述第一源虚拟机状态继续操作之后访问所述源虚拟机的第二源虚拟机状态的动作,所述第二源虚拟机状态还包括基于所述源虚拟机的身份的背书分层结构;
复制所述第二源虚拟机状态以制定要与第二目标虚拟机相关联的第二目标虚拟机状态的动作,所述第二目标虚拟机具有与所述源虚拟机的身份不同的身份,其中复制到所述第二目标虚拟机状态的背书分层结构的签署部分被禁用;以及
修改所述第二目标虚拟机状态使得所述第二目标虚拟机状态的背书分层结构基于所述第二目标虚拟机的身份的动作。
6.根据权利要求1所述的方法,其特征在于,所述源虚拟机是第一源虚拟机,所述目标虚拟机是第二源虚拟机,所述方法进一步包括:
在所述第二源虚拟机从所述第一目标虚拟机状态继续操作之后访问所述第二源虚拟机的第二源虚拟机状态的动作,所述第二源虚拟机状态还包括基于所述第二源虚拟机的身份的背书分层结构;
复制所述第二源虚拟机状态以制定要与第二目标虚拟机相关联的第二目标虚拟机状态的动作,所述第二目标虚拟机具有与所述第二源虚拟机的身份不同的身份,其中复制到所述第二目标虚拟机状态的背书分层结构的签署部分被禁用;以及
修改所述第二目标虚拟机状态使得所述第二目标虚拟机状态的背书分层结构基于所述第二目标虚拟机的身份的动作。
7.根据权利要求1所述的方法,其特征在于,所述可信执行环境是基于软件的可信执行环境。
8.根据权利要求1所述的方法,其特征在于,所述可信执行环境至少部分地存在于云计算环境中。
9.根据权利要求1所述的方法,其特征在于,为存在于所述目标虚拟机状态内的可信执行环境创建新背书密钥。
10.一种包括在其上具有计算机可执行指令的一个或多个计算机存储介质的计算机程序产品,当所述计算机可执行指令由计算系统的一个或多个处理器执行时,使得所述计算系统作为克隆组件,所述克隆组件执行以下操作:
检测源虚拟机的克隆要发生的动作;
响应于检测,访问具有身份的源虚拟机的源虚拟机状态的动作,所述源虚拟机状态包括具有背书分层结构的可信执行环境,所述背书分层结构基于所述源虚拟机的身份;
复制所访问的源虚拟机状态以制定要与目标虚拟机相关联的目标虚拟机状态的动作,所述目标虚拟机具有与所述源虚拟机的身份不同的身份;
确保至少所述背书分层结构的签署部分在复制之前被启用但在复制之后被临时禁用的动作;
以所述背书分层结构的所复制的签署部分在所述目标虚拟机上被再次启用的方式创建绑定到所复制的背书分层结构的新背书密钥的动作;以及
修改所述目标虚拟机状态使得所述目标虚拟机状态的背书分层结构基于所述目标虚拟机的身份的动作。
CN201380041313.5A 2012-08-03 2013-08-01 可信执行环境虚拟机克隆 Active CN104520869B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/566,250 US8954965B2 (en) 2012-08-03 2012-08-03 Trusted execution environment virtual machine cloning
US13/566,250 2012-08-03
PCT/US2013/053109 WO2014022604A1 (en) 2012-08-03 2013-08-01 Trusted execution environment virtual machine cloning

Publications (2)

Publication Number Publication Date
CN104520869A true CN104520869A (zh) 2015-04-15
CN104520869B CN104520869B (zh) 2017-10-17

Family

ID=48986236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380041313.5A Active CN104520869B (zh) 2012-08-03 2013-08-01 可信执行环境虚拟机克隆

Country Status (5)

Country Link
US (1) US8954965B2 (zh)
EP (1) EP2880589B1 (zh)
CN (1) CN104520869B (zh)
BR (1) BR112015002347B1 (zh)
WO (1) WO2014022604A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003893A (zh) * 2016-02-03 2017-08-01 华为技术有限公司 虚拟机备份方法、备份装置及宿主机
CN107533478A (zh) * 2015-07-31 2018-01-02 慧与发展有限责任合伙企业 计算机系统的迁移

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202062B2 (en) * 2010-12-21 2015-12-01 International Business Machines Corporation Virtual machine validation
US9275240B2 (en) * 2013-07-09 2016-03-01 Hua Zhong University Of Science Technology Synchronized virtual trusted platform modules (VTPM) and virtual machine (VM) rollbacks
US9633210B2 (en) 2013-09-13 2017-04-25 Microsoft Technology Licensing, Llc Keying infrastructure
US20160019081A1 (en) * 2014-07-21 2016-01-21 Vmware,Inc. Viewing a snapshot of a virtual machine
US9612859B2 (en) 2014-07-21 2017-04-04 Vmware, Inc. Comparing states of a virtual machine
US11635979B2 (en) * 2014-07-21 2023-04-25 Vmware, Inc. Modifying a state of a virtual machine
CN105446793B (zh) * 2014-08-28 2018-08-28 国际商业机器公司 迁移虚拟资产的方法和设备
US10097513B2 (en) 2014-09-14 2018-10-09 Microsoft Technology Licensing, Llc Trusted execution environment extensible computing device interface
US9882929B1 (en) * 2014-09-30 2018-01-30 Palo Alto Networks, Inc. Dynamic selection and generation of a virtual clone for detonation of suspicious content within a honey network
CN105183546A (zh) * 2015-08-12 2015-12-23 北京因特信安软件科技有限公司 基于可信资源池的虚拟机安全迁移方法
US11398906B2 (en) * 2016-11-10 2022-07-26 Brickell Cryptology Llc Confirming receipt of audit records for audited use of a cryptographic key
US11405201B2 (en) * 2016-11-10 2022-08-02 Brickell Cryptology Llc Secure transfer of protected application storage keys with change of trusted computing base
US11416604B2 (en) 2017-09-25 2022-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Enclave handling on an execution platform
US11416605B2 (en) 2018-03-27 2022-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Trusted execution environment instances licenses management
US11704442B2 (en) 2018-03-27 2023-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Instance handling of a trusted execution environment
US11586847B1 (en) * 2019-11-26 2023-02-21 Amazon Technologies, Inc. Experiment management service
US11271907B2 (en) 2019-12-19 2022-03-08 Palo Alto Networks, Inc. Smart proxy for a large scale high-interaction honeypot farm
US11265346B2 (en) 2019-12-19 2022-03-01 Palo Alto Networks, Inc. Large scale high-interactive honeypot farm
US11888972B2 (en) 2020-02-26 2024-01-30 Red Hat, Inc. Split security for trusted execution environments
US11630683B2 (en) 2020-02-26 2023-04-18 Red Hat, Inc. Low latency launch for trusted execution environments
US11442767B2 (en) 2020-02-27 2022-09-13 Hewlett Packard Enterprise Development Lp Virtual serial ports for virtual machines
US11640312B2 (en) 2020-02-27 2023-05-02 Hewlett Packard Enterprise Development Lp System reset using a controller
US11544096B2 (en) 2020-02-27 2023-01-03 Hewlett Packard Enterprise Development Lp Virtual trusted platform modules
US11620411B2 (en) 2020-03-24 2023-04-04 Red Hat, Inc. Elastic launch for trusted execution environments
CN111597226B (zh) * 2020-04-26 2023-06-16 北京百度网讯科技有限公司 数据挖掘系统、方法、装置、电子设备及存储介质
US11611431B2 (en) 2020-07-01 2023-03-21 Red Hat, Inc. Network bound encryption for recovery of trusted execution environments
US11671412B2 (en) 2020-07-01 2023-06-06 Red Hat, Inc. Network bound encryption for orchestrating workloads with sensitive data
US11741221B2 (en) * 2020-07-29 2023-08-29 Red Hat, Inc. Using a trusted execution environment to enable network booting
CN113407299B (zh) * 2021-05-14 2023-08-29 海光信息技术股份有限公司 防止虚拟机恶意回滚的方法、装置及电子设备
US11924336B1 (en) * 2021-06-25 2024-03-05 Amazon Technologies, Inc. Cryptographic artifact generation using virtualized security modules
US12013954B2 (en) * 2022-03-31 2024-06-18 Intel Corporation Scalable cloning and replication for trusted execution environments
US20230334144A1 (en) * 2022-04-19 2023-10-19 Microsoft Technology Licensing, Llc Provisioning a security component from a cloud host to a guest virtual resource unit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444670B2 (en) * 2006-03-21 2008-10-28 International Business Machines Corporation Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance
US20090113109A1 (en) * 2007-10-26 2009-04-30 Vmware, Inc. Using Virtual Machine Cloning To Create a Backup Virtual Machine in a Fault Tolerant System
CN101488173A (zh) * 2009-01-15 2009-07-22 北京交通大学 支持零宕机的可信虚拟域启动文件完整性度量的方法
US20120110574A1 (en) * 2010-11-03 2012-05-03 Agarwal Sumit Kumar Methods and systems to clone a virtual machine instance

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8074262B2 (en) 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US9135444B2 (en) 2006-10-19 2015-09-15 Novell, Inc. Trusted platform module (TPM) assisted data center management
US8151262B2 (en) 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US20090204964A1 (en) 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
EP2238535A4 (en) 2007-12-20 2011-03-09 Virtual Computer Inc SYSTEMS AND METHODS FOR VIRTUAL COMPUTER MANAGEMENT
US8259948B2 (en) 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
US8032942B2 (en) * 2007-12-31 2011-10-04 Intel Corporation Configuration of virtual trusted platform module
US9559842B2 (en) 2008-09-30 2017-01-31 Hewlett Packard Enterprise Development Lp Trusted key management for virtualized platforms
GB2464966B (en) 2008-10-31 2012-08-29 Hewlett Packard Development Co Policy enforcement in trusted platforms
US8387045B2 (en) 2009-03-12 2013-02-26 International Business Machines Corporation Cloning image creation using virtual machine environment
US8375221B1 (en) * 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
US9250969B2 (en) * 2011-08-30 2016-02-02 At&T Intellectual Property I, L.P. Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory
US9244717B2 (en) * 2012-03-29 2016-01-26 Vmware, Inc. Method and system for visualizing linked clone trees

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444670B2 (en) * 2006-03-21 2008-10-28 International Business Machines Corporation Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance
US20090113109A1 (en) * 2007-10-26 2009-04-30 Vmware, Inc. Using Virtual Machine Cloning To Create a Backup Virtual Machine in a Fault Tolerant System
CN101488173A (zh) * 2009-01-15 2009-07-22 北京交通大学 支持零宕机的可信虚拟域启动文件完整性度量的方法
US20120110574A1 (en) * 2010-11-03 2012-05-03 Agarwal Sumit Kumar Methods and systems to clone a virtual machine instance

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107533478A (zh) * 2015-07-31 2018-01-02 慧与发展有限责任合伙企业 计算机系统的迁移
CN107003893A (zh) * 2016-02-03 2017-08-01 华为技术有限公司 虚拟机备份方法、备份装置及宿主机
CN107003893B (zh) * 2016-02-03 2019-11-12 华为技术有限公司 虚拟机备份方法、备份装置及宿主机

Also Published As

Publication number Publication date
US8954965B2 (en) 2015-02-10
WO2014022604A1 (en) 2014-02-06
EP2880589A1 (en) 2015-06-10
EP2880589B1 (en) 2018-09-19
US20140040890A1 (en) 2014-02-06
CN104520869B (zh) 2017-10-17
BR112015002347A8 (pt) 2021-06-01
BR112015002347A2 (pt) 2017-07-04
BR112015002347B1 (pt) 2022-03-15

Similar Documents

Publication Publication Date Title
CN104520869B (zh) 可信执行环境虚拟机克隆
US11601432B2 (en) Rolling security platform
CN110915166B (zh) 区块链
CN105184154B (zh) 一种在虚拟化环境中提供密码运算服务的系统和方法
Laan IT Infrastructure Architecture-Infrastructure Building Blocks and Concepts Third Edition
CN107003866A (zh) 来自加密模板的加密虚拟机的安全创建
US10530752B2 (en) Efficient device provision
US11356445B2 (en) Data access interface for clustered devices
CN104471584A (zh) 对受保护数据集进行基于网络的管理
CN113260993B (zh) 虚拟平台系统的安全部署和操作
US10621055B2 (en) Adaptive data recovery for clustered data devices
US10402549B1 (en) Systems and methods for creating validated identities for dependent users
CN104731892A (zh) 一种集中式文件服务系统的拟态防篡改方法
Chang et al. Assessment of In‐Cloud Enterprise Resource Planning System Performed in a Virtual Cluster
CN110413370A (zh) 用于实现依赖原始设备映射盘的虚拟机的数据备份的方法和系统
CN117852094A (zh) 一种云硬盘备份的完整性校验方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170801

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant