在主机服务器之间安全地移动虚拟机的制作方法

文档序号:6354798阅读:382来源:国知局
专利名称:在主机服务器之间安全地移动虚拟机的制作方法
技术领域
本发明涉及虚拟机,更具体地,涉及在主机服务器之间安全地移动虚拟机的方法和系统。
背景技术
为了扩展能够在计算机系统上运行的操作系统和应用程序的数量,开发了一个技术领域,其中被称为主机的给定计算机将包括允许该主计算机模拟其它计算设备配置的模拟器程序。主计算机既能够运行为其自身的硬件而配置的软件,也能够运行为具有不同硬件配置的计算机所配置的软件。当在主计算机系统上模拟客计算机系统时,该客计算机系统被称为“虚拟机”,因为该客计算机系统仅作为可能不同于本机的某个具体硬件配置的操作的软件表示而存在于主计算机系统中。虚拟机为在该虚拟机上运行的软件提供模拟的硬件配置。虚拟机管理系统(有时称为虚拟机监视程序或管理程序)经常被用于管理一个或多个虚拟机以使得多个虚拟机能够同时在单个计算设备上运行。虚拟机管理系统直接在本机硬件上运行并且通过向虚拟机展示用于访问底层硬件的接口来虚拟化机器的资源。主操作系统和虚拟机管理系统可在同一物理硬件上并排地运行。为了清楚起见,将使用缩写VMM 来表示虚拟机管理系统的所有具体产物。虚拟机(VM)相对于物理机的诸多优点之一是能够快捷和廉价地创建同一虚拟机的多个实例。虚拟机对底层硬件的抽象提供了灵活的资源分配并且促进了将虚拟机从一个主机移动(或“迁移”)到另一主机的能力。能够将虚拟机快捷、简便地从一个主机迁移到另一主机对于例如“负载平衡”系统、执行硬件或软件升级、或者处理灾难恢复而言是有用的。更具体地,如果虚拟机要求比主机上可用的处理能力更多的处理能力,则它可以被移动到具有额外能力的另一主机上。 另外,如果主机需要硬件维护或软件升级,则虚拟机可以临时从一个物理机迁移到另一物理机,由此允许第一个物理机被拆卸并升级。类似地,在灾难恢复的情况中,数据中心的所有虚拟机能够被迁移到不处于危害中的另一数据中心并当威胁过去以后再被迁移回来。此外,虚拟机有助于简便地将公司或企业工作卸载到主控的数据中心上,从而减少对于维护和升级资源的需求。在所有情况下,这使得例如关键的商业应用能够维持工作和运行而不被中断并且用户甚至不知晓这一中断。

发明内容
虚拟机硬盘驱动器可以安全地迁移或分布。用于对虚拟硬盘驱动器加密的密钥可基于主控该虚拟硬盘驱动器的系统上的硬件设备的唯一值或由该唯一值来保护。因此,密钥的副本由独立于主控系统的服务所保护。密钥的受保护副本随后被分布到被指定为接收虚拟硬盘驱动器的一个或多个目标系统。密钥的受保护副本能够通过对目标系统的用户进行认证而在目标系统上恢复。因而,密钥能够被用于对虚拟硬盘驱动器解密以在第二计算设备上使用。在一个示例中,第一计算设备上的硬件设备包括受信任的平台模块。典型地,虚拟硬盘驱动器包含客操作系统和应用程序。优选地,密钥保护机制包括加密。


当结合附图进行阅读时,可以更好地理解以上概述以及以下对较佳实施例的详细说明。出于说明本发明的目的,在附图中示出本发明的示例性构造;然而,本发明不局限于所公开的具体方法和手段。在附图中图1是表示了在其中可以结合本发明各方面的计算机系统的框图;图2示出了用于计算机系统中的模拟的操作环境的硬件和软件体系结构的逻辑
堆叠;图3示出了虚拟化的计算系统;图4示出了虚拟硬盘驱动器迁移到另一计算设备;图5示出了将驱动器绑定到计算设备;图6示出了受信任的虚拟系统;图7示出了用于虚拟硬盘驱动器的授权迁移的流程图。
具体实施例方式以具体细节对有创造性的发明主题进行描述以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其它当前或未来技术按照其它方式来具体化,以包括与本文中所描述的组合类似的不同的组合。本发明的许多实施例可在计算机上执行。图1及以下讨论旨在提供可在其中实现本发明的合适计算环境的简要概括描述。尽管并非所需,但本发明将在诸如程序模块等由诸如客户机工作站或服务器等计算设备执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务的例程、程序、对象、组件、数据结构等等。本领域的技术人员可以理解,本发明方法可以使用其它计算机系统配置来实现,包括手持式设备、多处理器、基于微处理器或可编程消费电子产品、网络PC、小型机、大型计算机等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。现在参照图1,描绘了示例性通用计算系统。该通用计算系统可包括常规的计算机20等,它包括通用处理单元21、系统存储器22和将包括系统存储器在内的各种系统组件耦合到处理单元21的系统总线23。系统总线23可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。系统存储器能包括只读存储器(ROM) M和随机存取存储器(RAM) 25。基本输入 /输出系统26 (BIOS)存储在ROM M中,其包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。计算机20还可包括用于对硬盘(未示出)进行读写的硬盘驱动器27,用于对可移动磁盘四进行读写的磁盘驱动器28,以及用于对可移动光盘31,如 ⑶ROM或其它光介质进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器观和光盘驱动器30被示为分别通过硬盘驱动器接口 32、磁盘驱动器接口 33和光盘驱动器接口 34来连接到系统总线23。驱动器及其相关联的计算机可读介质为计算机20提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。虽然这里描述的示例性环境采用硬盘、可移动磁盘四和可移动光盘31,但本领域技术人员理解,在该示例性操作环境中也能使用可存储能由计算机访问的数据的其它类型计算机可读介质,如盒式磁带、闪存卡、数字视频盘、柏努利(Bernoulli)盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等。通常,这些计算机可读存储介质能够被用于一些实施例中来存储实现本公开的各方面的处理器可执行指令。取决于具体的物理实现方式,服务器可包括受信任的平台模块30 (即本领域中所称的TPM)。TPM 30和处理单元21中的一个或多个,以及系统存储器22能够被物理地放置于一处,诸如在单个芯片上。在这种情况下,系统总线23的一部分或全部可以部分地仅仅是单芯片结构中的硅路径,并且其在图1中的表示也仅仅是出于说明目的的方便记号。TPM 30可包括用于对提供给它的信息进行加密和解密的加密密钥,并且还存储值以使得这些值可通过TPM 30自身的硬件设计来保护。传统地,TPM 30包括一组初始的不可变的公共和私有加密密钥,该组密钥可以用已知的和已创建的方法来用于获取一次性的公共和私有加密密钥。TPM 30还典型地具有存储在TPM 30内的TPM专用密钥,TPM专用密钥可包括任何这类私钥和公钥集合,并且不意图表示任何具体的密钥集合。另外,TPM 30可包括平台配置寄存器(PCR),其可安全地存储处理单元21通过系统总线23提供给TPM 30 的数据。在一些实施例中,只有由处理单元21执行的特定代码被允许向TPM 30发送数据, 这将会修改存储在PCR中的值。可在硬盘、磁盘四、光盘31、R0M对或肌11 25上存储多个程序模块,包括操作系统 35、一个或多个应用程序36、其它程序模块37和程序数据38。用户可以通过诸如键盘40 和定点设备42之类的输入设备向计算机20中输入命令和信息。其它输入设备(未示出) 可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备常通过耦合到系统总线的串行端口接口 46连接到通用处理单元21,但也可通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。显示器47或其他类型的显示设备也可经由诸如视频适配器48等接口连接至系统总线23。除显示器47以外,计算机通常包括如扬声器和打印机等其它外围输出设备(未示出)。图1的示例性系统还包括主适配器55、小型计算机系统接口 (SCSI)总线56和连接到SCSI总线56的外部存储设备62。计算机20可使用至一个或多个远程计算机,如远程计算机49的逻辑连接在网络化环境中操作。远程计算机49可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常可包括以上对个人计算机20描述的许多或所有元件,虽然在图1中只示出存储器存储设备50。图1所描绘的逻辑连接可以包括局域网(LAN) 51和广域网(WAN)52。这样的网络环境常见于办公室、企业范围计算机网络、内联网和因特网。当在LAN联网环境中使用时,计算机20可通过网络接口或适配器53连接至LAN 51。当在WAN联网环境中使用时,计算机20通常可包括调制解调器M或用于通过诸如因特网等广域网52建立通信的其它手段。或为内置或为外置的调制解调器M可经由串行端口接口 46连接到系统总线23。在网络化环境中,相对于计算机20所描述的程序模块或其部分可被储存在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。虽然可构想本发明的许多实施例尤其适用于计算机化的系统,然而在本说明中不意味着将本发明限于那些实施例。图2是表示用于计算机系统中的模拟的操作环境的硬件和软件体系结构的配置的图。模拟程序94运行在主操作系统和/或硬件体系结构92上。模拟程序94模拟客硬件体系结构96和客操作系统98。接着,软件应用程序100运行在客操作系统98上。在图 2的模拟的操作环境中,由于模拟程序94的操作,即使软件应用程序100被设计为在通常与该主控操作系统及硬件体系结构92不兼容的操作系统上运行,软件应用程序100也可在计算系统90上运行。现参见图3,其描绘了能被用于本公开的实施例中的计算机系统的高级框图。如图所示,计算机20 (例如,如上所述的计算机系统)可包括物理硬件设备,诸如例如硬盘驱动器(诸如图1中的27)等存储设备208、网络接口控制器(NIC) 53、图形处理单元234(诸如伴随图1中的视频适配器48)、至少一个逻辑处理器212(例如,图1中的处理单元21)、随机存取存储器(RAM) 25以及受信任的平台模块(TPM) 30。本领域技术人员能够理解,尽管示出了一个逻辑处理器,但在其他实施例中,计算机20可具有多个逻辑处理器,例如每一处理器有多个执行核,和/或各自可具有多个执行核的多个处理器。继续图3的描述,示出了管理程序202,其在本领域中也可被称为虚拟机监视程序,或更一般地被称为虚拟机管理器。所描绘的实施例中的管理程序202包括用于控制并仲裁对计算机20的硬件的访问的可执行指令。广泛而言,管理程序202可以生成称为分区的执行环境,如子分区1到子分区 N(其中N是大于1的整数)。在各实施例中,子分区可被认为是管理程序202所支持的基本隔离单元,即,每一子分区可被映射到在管理程序202和/或父分区的控制下的一组硬件资源,例如存储器、设备、逻辑处理器周期等。在各实施例中,管理程序202可以是独立的软件产品、操作系统的一部分、嵌入在主板的固件中、专用集成电路、或其组合。在该示出的示例配置中继续图2的描述,计算机20包括可被配置成通过使用虚拟化服务提供器228 (VSP)为在子分区I-N中执行的客操作系统提供资源的父分区204。在该示例体系结构中,父分区204可以门控(gate)对底层硬件的访问。广泛而言,VSP 2 可被用于通过虚拟化服务客户机(VSC)对硬件资源的接口进行复用。每一子分区可包括诸如虚拟处理器230到232的虚拟处理器,客操作系统220到222可管理并调度线程在该虚拟处理器上执行。一般而言,虚拟处理器230到232是提供具有特定架构的物理处理器的表示的可执行指令以及相关联的状态信息。例如,一个虚拟机可具有带有英特尔x86处理器特性的虚拟处理器,而另一虚拟处理器可具有PowerPC处理器的特性。本例中的虚拟处理器可被映射到计算机系统的逻辑处理器,使得实现虚拟处理器的指令将受到逻辑处理器的支持。由此,在这些示例实施例中,多个虚拟处理器可同时执行,同时例如另一逻辑处理器正在执行管理程序指令。一般而言,分区中的虚拟处理器和各种VSC的组合可被认为是虚拟机。一般而言,客操作系统220到222可包括任何操作系统,如来自微软 、苹果 、开源社区等的操作系统。客操作系统可包括用户/内核操作模式,并且可具有能包括调度器、 存储器管理器等的内核。每一客操作系统220到222可具有相关联的文件系统,该文件系统上存储有诸如电子商务服务器、电子邮件服务器等应用以及客操作系统本身。客操作系统220-222可调度线程来在虚拟处理器230-232上执行,并且可实现此类应用的实例。图4是示出了图3所示的系统的两个实例的框图,在本发明的较佳实施例中,这两个系统实例连接到公共的外部存储以在虚拟机环境中执行虚拟硬盘驱动器迁移。更具体地,图4的连网的系统包括第一系统,第一系统包括具有计算机硬件20、管理程序202 以及进一步包括虚拟硬盘驱动器(VHD) 122的VM A 108。另外,图4的连网的系统包括第二系统,第二系统包括计算机硬件20'、管理程序202'以及进一步包括VHD 122'的VM A' 108',其中VM A' 108'和VHD 122'表示通过将VM A 108从管理程序202主动地、 动态地迁移到管理程序202'而得到的VM A 108和VHD 122的复制品。如本领域的技术人员所知晓并理解的,VHD是虚拟机为客操作系统模拟的虚拟化的设备,逻辑上等同于物理硬盘驱动器设备。(如此处所用的,术语“硬盘”、“硬盘驱动器” 可互换使用。)在图4中,VM A 108包括例如虚拟机为客操作系统A(例如,图3中的客操作系统220)模拟为硬盘驱动器“C: ” (未示出)的VHD 122。VHD 122由存储设备208 (参见图3)的文件系统所维护。在这一实施例中,VHD 122被实现为存储设备208上的物理硬盘驱动器上的单个数据文件——文件128。当然,如本领域的技术人员可了解并容易理解的,这些VHD表示可位于数个文件中,并且可跨独立的硬盘驱动器或独立的计算机系统,或者它们也可以是除文件以外的其它东西(例如,数据库中的表、数据库、有源存储器的块, 等等)。另外,VHD是广泛使用的描述虚拟机文件格式的术语。虚拟机VHD典型地将整个虚拟机软件栈包含在单个文件中,其中虚拟机软件栈包括操作系统、应用程序以及盘卷。根据本发明的一个方面,密码服务402可被用于协助VHD的迁移,以防止如下文更全面描述的非授权迁移。对于企业来说拥有许多个VHD的库也不是不普遍的。VHD可被部署在驻留在跨数据中心和/或商业位置的不同物理服务器上的VMM上。这一能力是动态IT环境的重要方面。VHD和库也暴露于安全性危胁下,无论是由于具有企业IT基础架构访问权限的流氓IT 管理员或者是由于落在企业设定以外的非法副本。VHD副本可在具有适当的VMM软件的非授权系统上引导。当企业将其IT工作扩展至“边缘”共同位置数据中心或者那些由主控服务厂商运作的数据中心时,风险会增加。在这样的环境中,主公司的职员具有对运行各种 VHD的物理服务器的授权的访问权。很难针对这些损害VHD安全性的职员进行防护,由此将企业暴露在知识产权窃贼面前。安全性风险限制了主控和云计算的广泛使用。在因任何理由而需要将VM A从主服务器20迁移到主服务器20'的情况下,VHD可以被从一个主机转移到另一主机或从库转移到计算设备,并随后在新计算设备上被引导。 图4示出了 VHD 122如何从存储设备IM转移到存储设备124'的示例。在这之后,VHD 122'的另一个实例被引导以经由计算机硬件20和计算机硬件20'之间的标准网络连接来在管理程序202'上创建VM A'的实例。在这个示例中,与VHD 122关联的文件系统和磁盘文件存在于计算机硬件20的物理硬盘驱动器上。因此,为了将管理程序202的VM A 108迁移到管理程序202'的VM A 108',整个盘内容必须通过例如两者之间的网络连接来转移。在将VHD从一个服务器移动到另一服务器的过程中还涉及额外的复杂性。例如, 由于VHD包含在另一平台上实例化计算系统的副本并运行所需的全部信息,这就引发了安全性担心。具体来说,在一些情况下,可能需要复制包含虚拟机操作系统映像的VHD或者将其挂载为数据卷以用于内容检索或修改。然而,这些过程可以按授权或非授权的方式执行。 为了针对非授权使用进行防护,可将全面地配置且运作的虚拟机作为加密VHD来分发。在分发之前,可使用密码技术临时禁用虚拟硬盘驱动器中的操作系统。在这种情况下,用户在第一次尝试引导操作系统时会被提示输入一次性使用的经授权的恢复密码。引导过程不会成功,直到这一恢复过程成功完成。成功引导的虚拟机可使用虚拟化软件所展示的平台硬件支持的安全性设备(例如,受信任的平台模块)来重新密封该虚拟机。因此,防止了虚拟硬盘驱动器内的软件在非授权的物理服务器上执行。如以上所提到的,本领域中已知的TPM —般具有在制造时创建且不能被更改的背书密钥。TPM还具有所有者口令和用于实现加密存储的存储根密钥。存储根密钥是在系统运行之后创建的,并可随后从BIOS中清除。图5示出了 TPM 30如何被用于对存储设备 208进行加密。TPM 30包含存储在TPM内的存储根密钥(SRK)。SRK对卷主密钥(volume master key,VMK)进行密封(即通过加密)。卷主密钥是用于对全卷加密密钥(full volume encryption key, FVEK)进行加密的密钥。FVEK是用于对存储设备208的操作系统卷进行加密的密钥。由于FVEK和VMK都是被独立加密的,它们可以存储在系统卷的明文部分中。 明文系统卷包括主引导记录、引导管理器和引导实用程序。卷的其余部分作为单个文件被加密。如可以从以上描述中理解的,由于加密被绑回具有在制造时嵌入的加密密钥的 TPM,被加密的驱动器被绑定于特定硬件的特定TPM。如果尝试将加密的卷移动到不同硬件, 则SRK将不能匹配。因此,由于VMK受源系统中的TPM的密钥所保护(例如被加密)而受到保护的VMK和FVEK均不能被恢复,并且防止了非授权使用。结果,由于需要VMK和FVEK 来对VHD进行解密和加密,可类似地防止VHD的非授权使用。TPM 502还可被用于确保在引导过程中存在来自硬件设备20的信任链。通常, 信任过程链从底至上对硬件和软件的每一组件(从裸机、到固件、到操作系统、以及应用程序)进行确认。为了启动信任链,处理器必须处于已知状态、运行已知代码。从这一初始条件,状态的每个变化都检查先前状态是否有效。作为初始事项,用已知的安全引导过程来引导的系统通过针对TPM密钥检查BIOS来启动。例如,BIOS执行散列函数并将该值与所存储的并用TPM密钥签署的已知值相比较。如果BIOS被验证,则随后可检查主引导记录并确保其对于散列函数而言是经确认的,主引导记录随后用从TPM获取的密钥来对操作系统进行解密。该过程的每一步骤确保该过程的下一步骤被确认。在虚拟机系统的情况下,可采用类似的过程。TPM被用于对BIOS散列加密,这沿着信任链经由受信任的管理程序并随后到达受信任的父分区。受信任的父分区随后被用于确保子分区是可信任的等等。如图6中所示,在这一过程之后,计算机系统20具有受信任的管理程序202和受信任的分区204。受信任的分区为子分区提供TPM密钥存储提供器 (TPMKSP) 226服务,使得子分区具有虚拟化的TPM密钥的访问权,该虚拟化的TPM密钥通过信任链被绑回TPM 30。这一过程确保TPM虚拟化不能被欺骗并且不从底层TPM 30脱离。 如果TPM 30可以通过虚拟化被欺骗,则VHD自身可与虚拟TPM—起被移动并且信任链将会断裂。然而,通过确保存在经过硬件TPM的信任链,VHD也可被确保与底层硬件绑定。因而, 可以防止VHD被移动并且在非授权机器上重新启动,因为新硬件上的TPM不能被用于对虚拟机操作系统或数据卷解密(在它们是通过TPM加密的情况下)。除此以外,每个虚拟机中的操作系统还可测量该虚拟机中的操作系统的引导路径。例如,通过存储引导的某些方面的散列,例如虚拟硬盘驱动器的引导记录的加载等。使用密钥将这一信息安全地保存(密封)到安全性硬件设备(例如,TPM)中。一旦这一过程完成,虚拟机中的操作系统只能够在该主服务器上引导,即它要求可从硬件安全性设备获得引导测量和密钥信息。根据本发明的一个方面,促进了 VHD的授权移动。为此,可使用恢复口令机制来在目标系统上解密VEK。一旦VEK被恢复,可在新的底层硬件上通过FVEK解密VHD,无论是整体解密或部分解密,这视需要而定。可选地,VHD能以明文移动,但是信任链的各方面仍会防止VHD的非授权移动。例如,VM被锁定到主服务器,当VHD被移动至另一主服务器时,该VM的VHD文件被复制到目的地主服务器。这时,该VM中的操作系统不能引导,因为该VM中的安全性服务不能访问来自目的地(或目标)主服务器上的硬件安全性设备的引导测量和密钥信息。为了允许授权迁移,恢复口令服务将需要通过用户的认证来取代(override)缺失的引导测量信息。随后将在目标系统上采用新的引导测量信息,并将其用于通过将该信息存储在目的地服务器上的安全性设备中来将VHD锁定到目的地系统。VHD的这一次级安全性和加密可独立或组合地使用,以确保VHD不能以非授权的方式移动或迁移。当VHD被迁移到不同的计算设备时,如上所述,与原先的TPM相关联的加密密钥不能用于对VHD译码,因为加密密钥(VEK)被采用保护机制所密封,例如,通过TPM的SRK来加密。因而,VHD不能在非授权硬件上操作。为了解决这一问题,除了通过源系统的TPM保护(例如加密)的VEK之外,密钥的另外的副本可通过服务来加密并与VHD —起提供,或与 VHD分开地分发。在这种情形下,VEK密钥可通过接收来自服务的解密口令来恢复。对于授权的用户,VHD在新计算设备上的引导会引发对恢复口令的请求。恢复口令随后通过密码服务被提供给用户,该恢复口令被用于恢复VEK的另外的副本。在这之后,VEK被恢复并用于对FVEK解密。这两者均可被储存在目标系统的TPM中并用于对VHD进行解密。一旦VEK 被解密,VEK可通过目标的SRK重新加密,并且通过存储在TPM中来绑定到目标系统。图7提供了有关VHD迁移期间的认证的附加细节。最初,在710,提示用户输入凭证。随后通过主分区上的密钥管理服务对凭证进行检查。在步骤712,密钥管理服务对该用户进行认证。密钥管理系统能够例如通过网络(参见图4)与密码服务进行通信。在714, 密钥管理服务提供用于VM中的操作系统的恢复口令,该恢复口令被用于对由该恢复口令保护的VEK的副本进行解密。在716,这允许引导过程在VM中继续。操作系统随后在VM中重新密封,并例如通过TPM被绑定到新硬件。在VHD被重新密封之后,密钥管理服务可随后指令源移除曾被用于访问该VHD的密钥。这将防止密钥被访问并被用于将VHD输出到非授权系统,而VHD将在目标系统上保持被加密。除了上述实施例,可在目标系统上对整个VHD进行解密,并在目标系统上重新加密。在这种情况下,可基于目标系统的TPM生成新密钥并由此将新密钥与目标系统绑定。此处所述的各种系统、方法和技术可使用硬件或软件或两者的适当组合来实现。 由此,本发明的方法和装置或其特定方面或部分可采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现本发明的装置。在程序代码在可编程计算机上执行的情形中,计算机一般包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。一个或多个程序优选地以高级过程或面向对象编程语言实现以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。本发明的方法和装置也可以具体化为通过某种传输介质,比如通过电线或电缆、 光纤或任何其它形式的传输来传输的程序代码的形式,其中,当程序代码由诸如EPR0M、门阵列、可编程逻辑器件(PLD)、客户计算机、录像机等机器接收、加载并执行时,该机器成为用于实现本发明的装置。当在通用处理器上实现时,该程序代码与处理器相结合以提供一种用于执行本发明的索引功能的独特装置。尽管已结合各个附图的优选实施方式对本发明进行了描述,但是可以理解,可以使用其它类似的实施方式或可以对所描述的实施方式进行修改或添加以实现本发明的相同功能而不背离本发明。例如,虽然本发明的示例性实施例是在模拟个人计算机的功能的数字设备的上下文中所描述的,本领域的技术人员能够认识到本发明不限于这些数字设备,本发明可应用于任何数量的已知或新兴计算设备或环境,诸如游戏控制台、手持式计算机、便携式计算机等,无论有线或者无线,并且可以应用于通过通信网络并且跨网络交互的任何数量的这类计算设备。此外,应当强调,可构想包括手持式设备操作系统以及其他专用硬件/软件接口系统的各种计算机平台,尤其当无线联网设备的数量继续增长时。因此,本发明不应局限于任何单个实施方式,而应根据所附权利要求书的广度和范围来解释。最后,此处所描述的各公开实施例可适于在其它处理器体系结构、基于计算机的系统、或系统虚拟化中使用,且在此所做的公开明确地预期了这些实施例,并且因此,本发明不应限于此处所描述的具体实施例而应被更广泛地解释。类似的,用于除处理器虚拟化之外的合成指令的使用也被本公开所揭示,并且除处理器虚拟化之外的任何这类合成指令的使用应当广泛地理解为落入此处所进行的公开内。
权利要求
1.一种用于迁移虚拟硬盘驱动器的方法,包括存储用于确保使用对于第一计算设备唯一的硬件安全性机制将虚拟硬盘驱动器绑定于该第一计算设备的信息;将所述虚拟硬盘驱动器转移到目标系统,其中所述虚拟硬盘驱动器通过所述目标系统的经认证的用户来恢复,并且其中所述虚拟硬盘驱动器被绑定于对于所述目标系统唯一的硬件安全性机制。
2.如权利要求1所述的方法,其特征在于,还包括通过对所述虚拟硬盘驱动器进行加密并且将密钥存储在所述硬件安全性设备中来将所述虚拟硬盘驱动器绑定于所述第一计算设备;以及还包括将所述密钥的受保护副本发送给所述目标系统。
3.如权利要求2所述的方法,其特征在于,还包括向服务器认证所述用户,所述服务器为用户提供用于恢复所述密钥的受保护副本以对所述虚拟硬盘驱动器进行解密的口令。
4.如权利要求1所述的方法,其特征在于,对于所述第一计算设备唯一的硬件机制包括受信任的平台模块。
5.如权利要求1所述的方法,其特征在于,所述虚拟硬盘驱动器包括客操作系统和应用程序。
6.如权利要求2所述的方法,其特征在于,还包括独立于加密的虚拟硬盘驱动器来发送所述密钥的至少一个受保护副本。
7.如权利要求1所述的方法,其特征在于,还包括通过测量虚拟机的引导路径并且将该信息存储在所述第一计算设备的硬件安全性设备中来将所述虚拟硬盘驱动器绑定于所述第一计算设备。
8.一种用于迁移虚拟硬盘驱动器的系统,包括包括至少一个处理器的计算设备;与所述计算设备通信的硬件设备,所述硬件设备具有唯一值;当系统运行时与所述计算设备通信的存储器,所述存储器上存储有计算机指令,当所述计算机指令由所述处理器执行时,使得将加密的虚拟硬盘驱动器发送到第二计算系统;基于所述硬件设备的唯一值对用于对所述虚拟硬盘驱动器进行加密的密钥进行保护;用第二密钥保护机制对所述密钥的至少一个副本进行保护;以及将所述密钥的所述至少一个副本发送给目标系统,在所述目标系统,所述密钥的该至少一个副本由所述目标系统的经认证的用户恢复,其中所述密钥被用于对所述虚拟硬盘驱动器进行解密以用于所述第二计算设备上。
9.如权利要求8所述的系统,其特征在于,所述保护包括加密。
10.如权利要求8所述的系统,其特征在于,所述用户向服务器认证,所述服务器向所述用户提供用于访问所述密钥的口令。
11.如权利要求8所述的系统,其特征在于,所述硬件设备包括受信任的平台模块。
12.如权利要求8所述的系统,其特征在于,所述虚拟硬盘驱动器上存储有至少一个客操作系统和应用程序。
13.如权利要求8所述的系统,其特征在于,还包括存储在所述存储器上的计算机指令,当所述计算机指令由所述处理器执行时,独立于加密的虚拟硬盘驱动器来发送所述密钥的至少一个受保护副本。
14.一种其上存储有计算机指令的计算机可读存储介质,所述计算机指令在由计算设备执行时引起虚拟硬盘驱动器的迁移,所述计算机指令包括用于引起以下动作的指令将加密的虚拟硬盘驱动器发送到第二计算系统;基于所述硬件设备的唯一值对用于对所述虚拟硬盘驱动器进行加密的密钥进行保护;用第二密钥保护机制对所述密钥的至少一个副本进行保护;以及将所述密钥的所述至少一个副本发送给目标系统,在所述目标系统,所述密钥的该至少一个副本由所述目标系统的经认证的用户恢复,其中所述密钥被用于对所述虚拟硬盘驱动器进行解密以用于所述第二计算设备上。
15.如权利要求14所述的计算机可读存储介质,其特征在于,所述保护包括加密。
16.如权利要求14所述的计算机可读存储介质,其特征在于,所述用户向服务器认证, 所述服务器向所述用户提供用于访问所述密钥的口令。
17.如权利要求14所述的计算机可读存储介质,其特征在于,所述硬件设备包括受信任的平台模块。
18.如权利要求14所述的计算机可读存储介质,其特征在于,所述虚拟硬盘驱动器上至少存储有客操作系统和应用程序。
19.如权利要求14所述的计算机可读存储介质,其特征在于,还包括用于引起独立于加密的虚拟硬盘驱动器来发送所述密钥的至少一个受保护副本的计算机指令。
全文摘要
本发明涉及在主机服务器之间安全地移动虚拟机的方法和系统。虚拟硬盘驱动器以至少部分加密的文件形式被移动到不同的计算设备。密钥以受保护的形式来提供给该不同的计算设备,并且该不同的计算设备上的用户可通过认证来访问该受保护的密钥。例如,用户可向服务器认证。由于客操作系统由源计算设备上的加密设备加密,虚拟硬盘驱动器可用该密钥的副本来解密。
文档编号G06F9/455GK102163266SQ201110043169
公开日2011年8月24日 申请日期2011年2月16日 优先权日2010年2月17日
发明者O·T·乌雷彻, S·N·麦格雷恩, S·沃巴 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1