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

文档序号:8207744阅读:来源:国知局
的不同操作而从该点处产生差异)来继续操作。
[0052] 例如,在回滚的情况下,源虚拟机410正在操作,在某一时刻拍摄源虚拟机状态 411的快照。在源虚拟机410正在操作时,可能拍摄许多这样的快照。现在,假定用户决定 将源虚拟机410回滚到与快照相对应的先前时间。在这种情况下,克隆方法300将在表示 源虚拟机410的先前在该时刻点捕捉的状态的源虚拟机状态411上执行。在这种情况下, 源虚拟机410将不再操作,但目标虚拟机420会作为源虚拟机410的经回滚版本而继续。
[0053] 或者,克隆方法400可以在源虚拟机410的当前状态上执行。在这种情况下,在这 样的复制发生时,源虚拟机410被暂停,且当前虚拟机状态被捕捉,从而造成源虚拟机状态 411。该克隆方法发生,造成目标虚拟机状态421,它具有被修改成基于目标虚拟机420的新 身份的背书分层结构。因而,在这种情况下,在复制发生之后,源虚拟机410以源虚拟机状 态411开始继续操作,并且目标虚拟机420使用目标虚拟机状态421来开始操作。
[0054] 图5示出了其中源虚拟机510被克隆两次的过程500。源虚拟机510在时刻TO 开始操作。随后,在时刻T1,源虚拟机510被克隆以形成第一目标虚拟机511。从时刻T1, 目标虚拟机511可开始操作。还从时刻T1,源虚拟机510继续操作,直至时刻T2。在时刻 T2,源虚拟机510再次被克隆以形成第二目标虚拟机512。因此,多个目标虚拟机可从单个 源虚拟机克隆,无论是在同一时刻还是不同时刻。例如,作为替换方案,目标虚拟机511和 512两者都可在时刻Tl从源虚拟机510来克隆。此外,在图5中,注意,在一个实施例中,源 虚拟机510可从时刻T2继续操作,但在回滚的情况下,回滚使得源虚拟机510在时刻T2之 后的继续执行被放弃,以有利于经由目标虚拟机512的继续执行。同样,注意,因为方法300 被应用,所以这两个目标虚拟机中的每一个的可信执行环境的背书分层结构将基于它们各 自的身份。
[0055] 图6示出了其中源虚拟机610被克隆以创建目标虚拟机611并且随后该目标虚拟 机611变成用于第二目标虚拟机612的另一克隆的源虚拟机的过程600。源虚拟机610在 时刻TO开始操作。随后,在时刻T1,源虚拟机610被克隆以形成第一目标虚拟机611。从 时刻T1,目标虚拟机611可开始操作,直至时刻T2。在时刻T2,目标虚拟机611被克隆以形 成第二目标虚拟机612。因此,目标虚拟机的克隆也是可能的。注意,源虚拟机610可从时 刻Tl继续操作,但在回滚的情况下,回滚可使得源虚拟机610在时刻Tl之后的继续执行被 放弃,以有利于经由目标虚拟机611的继续执行。类似地,目标虚拟机611可从时刻T2继 续操作,但在回滚的情况下,回滚可使得目标虚拟机611在时刻T2之后的继续执行被放弃, 以有利于经由目标虚拟机612的继续执行。
[0056] 图7示出了用于允许执行方法300的可信执行环境的生成和结构的特定体系结构 700。这一特定实现可以使用例如由可信计算组织指定的TPM版本2. 0。在该标准中,种子 值701可被馈送到密钥导出功能702以生成背书密钥703,背书密钥703被包含在可信执行 环境710的背书分层结构内。
[0057] 背书密钥703包括可被用来代表可信执行环境所服务的虚拟机(或其经认证的用 户)签署新声明的签署部分704。例如,签署部分704可以是背书密钥703的私有部分。背 书密钥703还包括可被用来验证由可信执行环境服务器所服务的虚拟机(或其经认证的用 户)做出的先前声明的验证部分705。
[0058] TPM版本2. 0允许将策略附加到对背书密钥的使用上。在图7中,策略706被分 派给背书密钥703的签署部分704的使用。具体而言,签署部分704在以下条件下被启用: 相关联的虚拟机的身份尚未从形成背书分层结构的基础的身份改变。例如,在图4A的示例 中,背书密钥的签署部分415以作为背书分层结构414的基础的对应虚拟机(S卩,源虚拟机 410)的身份为条件。因为执行环境412是用基于源虚拟机410的身份的背书分层结构来创 建的,所以签署部分415被启用。然而,在图4B中,因为签署部分425是签署部分415的副 本,所以签署部分425不被启用,直至该签署部分被修改成基于目标虚拟机的新身份,如参 考图4C所示出和描述的。
[0059] 在一些实施例中,背书分层结构是否基于虚拟机的身份的证据是用持久存储器 711中的值(例如,PCR值)并用单调计数器712来提供的。在可信执行环境710被复制作 为虚拟机的克隆的一部分时,PCR 711的值也将保持不变。然而,结合复制操作,与仍然与 源虚拟机相关联的PCR 711的值相比,与目标虚拟机相关联的PCR 711的值被更改。例如, PCR 711值可按与克隆有关的信息能从新值导出的方式来更改。因而,任何给定虚拟机的 PCR 711可被引用以查看创建该给定虚拟机的克隆历史。
[0060] 替换地或补充地,背书分层结构是否基于虚拟机的身份的证据是使用可信执行的 持久单调计数器712的值来提供的。例如,结合复制操作,计数器712可被递增。因而,与源 虚拟机状态中的计数器712相比,目标虚拟机状态内的计数器712将递增1。因而,PCR值 711和计数器712可将任何克隆的虚拟机唯一地标识为具有与源虚拟机相比不同的身份。 同样结合复制操作,绑定到新PCR值711和新计数器值712的新背书密钥被创建。这允许 在背书密钥上建立的背书分层结构基于新身份。在一个实施例中,新背书密钥的创建是通 过创建在原始源虚拟机被创建时发出主证书的主密钥来执行的。这一主证书可被用来验证 目标虚拟机确实是源虚拟机的克隆,从而允许管理程序确信地向目标虚拟机发出新背书密 钥。
[0061] 因而,描述了一种机制,所述机制用于允许虚拟机使用可信执行环境(如,基于软 件的可信平台模块)来操作,同时允许虚拟机被克隆、回滚以及迀移,而不会不利地影响可 信执行环境所提供的安全性。
[0062] 参考图2,可信执行环境被示为在同一主机计算系统200上操作。然而,本文描述 的原理不限于与虚拟机的位置相比的可信执行环境的位置。作为示例,可信执行环境可以 是例如基于云的可信执行环境,如在下文描述的。
[0063] 图8示出了可在其中采用本文所描述的原理的环境800。具体地,环境800包括多 个客户端计算系统801 (在下文被称为"客户端801")。客户端801中的每一个可以是例如 虚拟机,如图2的虚拟机210。本文描述的原理允许至少一些本地可信执行环境功能通过网 络803从客户端卸载到系统810中。这是违反直觉的,因为传统上TPM模块在本地可信执 行环境级操作并且因而物理地绑定到客户端。在图8的情形中,多个客户端能够将TPM功 能卸载到系统810中。网络803的一个示例是因特网,但是本文描述的原理还可应用于其 它网络,诸如可能是企业网络。
[0064] TPM的功能通过使系统810仿真受保护区域及其不可读取性的特征来卸载。例如, 传统TPM具有包括在TPM外部无法被读取的数据的受保护区域,而系统810具有针对每一 实体的受保护区域,并且该受保护区域从系统外部或者从账户外部无法读取,除了安全处 理器813能够读取之外。由于系统810不容易遭到破坏而藉此允许另一实体读取受保护数 据,因此系统810在造成对发现受保护区域的内容的严重障碍方面提供了本地可信执行环 境安全的等效物。
[0065] 此外,安全处理器813可以用本地TPM通常将对可信执行环境命令作出响应的相 同方式来对这些可信执行环境命令作出响应。例如,安全处理器813可以对密钥和/或受 保护数据集执行密码和/或安全处理。这允许对TPM的许多功能进行仿真。如果客户端被 毁坏,TPM在系统810中仍然可用,并且因而从TPM生成的密钥和其它数据(诸如与TPM相 关联的单调计数器、非易失性RAM内容等)仍然可以使用。
[0066] 在图8中,存在示出的六个客户端80IA到80IF。然而,省略号80IG表示本文描述 的原理不受到连接到系统810的客户端801的特定数量的限制。可能存在少至一个客户端, 但也可能存在很多个客户端,尤其在网络803是因特网和/或系统810是云计算环境的情 况下。此外,客户端801的数量可以随着时间而改变。例如,如果系统810是云计算环境, 则客户端801的数量可以每秒或每分钟地变化。
[0067] 在该描述和下面的权利要求书中,"云计算"被定义为用于允许对可配置计算资源 (例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。"云计算"的定 义不限于可从这样的模型(在被合适地部署时)中获得的任何其他多个优点。
[0068] 例如,云计算当前被用于市场,以便提供对可配置计算资源的共享池的普遍存在 且方便的按需访问。此外,可配置计算资源的共享池可经由虚拟化而被快速地供应,并可利 用低管理努力或服务提供商干预来发布,并随后因此被缩放。
[0069] 云计算模型可由各种特性组成,诸如按需自服务、广泛网络访问、资源池、快速灵 活性、测定的服务等。云计算模型还可形成各种服务模型,诸如例如软件即服务(SaaS)、平 台即服务(PaaS)以及基础结构即服务(IaaS)。云计算模型还可以使用不同的部署模型来 部署,诸如私
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1