可信执行环境虚拟机克隆的制作方法

文档序号:8207744阅读:423来源:国知局
可信执行环境虚拟机克隆的制作方法
【专利说明】可信执行环境虚拟机克隆
[0001] 背景
[0002] 可信平台模块(即"TPM")是与计算设备的常规操作环境隔离的可信执行环境。 通常,TPM以物理上绑定到计算设备的芯片形式来实现。常规计算环境可以通过接口(该 接口的一个示例是基于TPM的服务(即"TBS"))与TPM通信。
[0003] TPM提供各种功能,最常用的包括密码密钥生成、策略驱动的密钥使用、密封存储 以及证明。TPM具有被称为"受保护区域"的存储器区域,该"受保护区域"包含无法从TPM 外部读取的数据,但是可以使用这些数据来执行操作。一些数据是不可改变的,并且因而由 正在执行的操作读取(但不被改变),而一些数据是可改变的并且可以通过这些操作来改 变。注意,读取数据的是在TPM内部正在执行的操作。受保护数据在TPM外部是不可读的。
[0004] 因而,TPM具有执行操作的操作组件,以及保留不能够在TPM外部被读取的受保护 数据的存储器组件。TPM的操作速度受限于TPM内硬件的能力。同样,受保护区域的大小受 限于TPM内的空间。
[0005] 概述
[0006] 本文描述的至少一个实施例涉及其状态包括可信执行环境(如,基于软件的可信 平台模块)的虚拟机的克隆。为了克隆虚拟机,源虚拟机的虚拟机状态被复制以制定要与 目标虚拟机相关联的目标虚拟机状态。目标虚拟机是源虚拟机状态的克隆,并且因此在存 在存储分层结构的情况下,可信执行环境的存储分层结构在源虚拟机和目标虚拟机中可以 是相同的。然而,因为目标虚拟机的身份与源虚拟机的身份不同,所以目标虚拟机状态的背 书分层结构被更改,使得它基于目标虚拟机的身份而非源虚拟机。
[0007] 克隆可被执行以针对任何目的,诸如,举例而言,复制源虚拟机以使得两个虚拟机 可从该点处继续操作。或者,克隆可被执行以为源虚拟机状态建立回滚(rolled back)状 态。因此,克隆和回滚(虚拟化的两个关键操作)可在可信执行环境的环境中实现,所述可 信执行环境由于在可信执行环境中进行克隆所呈现的困难而抵抗虚拟化。在一个实施例 中,主机计算系统上的每一虚拟机具有相关联的基于软件的可信执行环境,从而允许虚拟 机连同其可信执行环境一起迀移。因而,本文描述的原理允许可信执行环境被虚拟化。
[0008] 提供本概述是为了以简化的形式介绍将在以下【具体实施方式】中进一步描述的概 念选择。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮 助判定所要求保护的主题的范围。
【附图说明】
[0009] 为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通 过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其 范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
[0010] 图1示出可用于采用本文描述的各实施例并且包括管理级和本地可信执行环境 级的示例计算系统;
[0011] 图2示出运行多个虚拟机的主机计算系统,所述虚拟机中的一些具有它们自己的 可信执行环境;
[0012] 图3示出用于在具有可信执行环境的那些虚拟机的环境中克隆源虚拟机以形成 目标虚拟机的方法的流程图;
[0013] 图4A示出其中存在与源虚拟机相关联的可信执行环境的情形;
[0014] 图4B示出其中源虚拟机的可信执行环境被复制以创建目标虚拟机的可信执行环 境的情形;
[0015] 图4C示出了其中目标虚拟机的可信执行环境的背书分层结构被修改成基于目标 虚拟机的身份的情形;
[0016] 图5示出了其中源虚拟机被克隆两次以形成两个目标虚拟机的过程;
[0017] 图6示出了其中源虚拟机被克隆以创建目标虚拟机并且随后该目标虚拟机变成 用于另一克隆的源虚拟机的过程;
[0018] 图7示出了用于允许执行图3的方法的可信执行环境的生成和结构的特定体系结 构;
[0019] 图8示出了其中多个客户端其中的一些利用通过网络的与系统的可信平台模块 (TPM)接口的环境;
[0020] 图9将受保护数据集抽象地示为包括不可改变数据和可改变数据;以及
[0021] 图10示出了用于管理可信执行环境命令的方法的流程图。
【具体实施方式】
[0022] 根据本文描述的至少一个实施例,描述了虚拟机的克隆。虚拟机包括可信执行环 境,诸如基于软件的可信平台模块。为了克隆虚拟机,源虚拟机的虚拟机状态被复制以制定 要与目标虚拟机相关联的目标虚拟机状态。目标虚拟机是源虚拟机状态的克隆,并且因而 针对源虚拟机状态和目标虚拟机状态中的可信执行环境的可信执行环境的存储分层结构 可以是相同的。然而,因为目标虚拟机的身份与源虚拟机的身份不同,所以目标虚拟机状态 的背书分层结构被更改,使得它基于目标虚拟机的身份而非源虚拟机。
[0023] 在一些实施例中,向每一虚拟机提供它自己的可迀移的基于软件的可信执行环 境。因而,本文描述的至少一些实施例通过允许虚拟机连同可信执行环境一起被克隆、回滚 以及迀移,允许可信执行环境的虚拟化。
[0024] 计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设 备(诸如智能电话)、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常 规上不被认为是计算系统的设备(诸如腕带手表、厨房电器、汽车、医疗植入设备等)。在本 说明书以及权利要求书中,术语"计算系统"被广义地定义为包括任何设备或系统(或其组 合),该设备或系统包含至少一个物理有形的处理器以及其上能含有可由处理器执行的计 算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统 的性质和形式。
[0025] 如此处所使用的那样,术语"模块"或"组件"可以指在计算系统上执行的软件对 象或例程。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的 对象或进程(例如,作为分开的线程)。
[0026] 这里描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括 诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。这里描述 的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算 机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介 质。存储计算机可执行指令或数据的计算机可读介质是物理存储介质。承载计算机可执行 指令或数据的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可 包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
[0027] 计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他 磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由 通用或专用计算机访问的任何其他介质。
[0028] "网络"被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设 备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、 或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介 质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且 可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读 介质的范围内。
[0029] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程 序代码装置可从传输介质自动转移到计算机存储介质(或者相反)。例如,通过网络或数 据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,"NIC")内 的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机 存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介 质的计算机系统组件中。
[0030] 计算机可执行指令包括,当在处理器处执行时使通用计算机、专用计算机、或专用 处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代 码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专 用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或 动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0031] 本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络 计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息 处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型 计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。
[0032] 在本说明书和权利要求书中,"设备"被定义为不是分布式的任何计算系统。然而, 本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬 连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环 境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1