迁移虚拟tpm实例以及保留该实例的唯一性和完整性的方法和装置的制作方法

文档序号:6454281阅读:124来源:国知局
专利名称:迁移虚拟tpm实例以及保留该实例的唯一性和完整性的方法和装置的制作方法
技术领域
本发明一般地涉及数据处理领域。具体地,本发明提供一种用于迁移 虚拟可信平台模块实例的计算机实现方法、数据处理系统以及计算枳4呈序产品o背景技术可信计算组(Trusted Computing Group )已定义了用于被称为可信平 台模块(TPM)的硬件模块的功能和协议。这部分石更件向计算机系统提供 安全性和加密功能,例如,非对称密钥生成、解密、加密、签名、将数据 密封和绑定到TPM的状态、在TPM之间迁移密钥、随机数生成、以及散 列功能。TPM还以平台配置寄存器、非易失性存储器区域、以及已存储的 密钥的形式併存状态。许多硬件厂家发布了他们的计算系统,所述计算系统装备了结合在母 版上的TPM,其允许由操作系统(诸如Linux⑧或Windows )对TPM 的广泛使用。随着针对通用的现有硬件来说硬件虛拟化变得可用,对于在可虚拟化 的系统上的可信计算的支持的兴趣正在不断增长。能够在一台机器上运行 多个操作系统将不会留出被保留用于高端服务器的区域,而是将变得广泛 可用。为了支持在虚拟化系统上的每个操作系统的可信计算,虛拟可信平 台模块优选地成为可用,其使得每个这样的操作系统认为它正在与其自己 的私有TPM进4亍交谈。对操作系统的虛拟化支持通过在平台上运行的操作系统之下的附加软 件层而被使能。鉴于操作系统通常直接在硬件上运行,在可虛拟化的系统中,被称为"管理程序(hypervisor)"或"虚拟机监视器,,的层正在实 现虛拟机,在所述虚拟机内可以运行操作系统。管理程序成为系统中的最 低的软件层。现代的虛拟化技术使能了虛拟机从一个平台到另 一个平台的迁移。如 果该虚拟机内的操作系统与虛拟TPM相关联,则期望该虛拟TPM能够将 其状态迁移到新的平台,从而TPM功能在目标平台上可用。发明内容本发明的各种方面描述了一种用于安全地将虚拟TPM的实例从一个 平台迁移到另 一个平台的计算机实现方法和数据处理系统。在迁移过程期 间,虛拟TPM实例的唯一性被保留。还确保了仅虛拟TPM实例的完整的 及未修改的状态被迁移,从而对于忽略或改变虚拟TPM实例状态的尝试 被检测到。被传送的所有状态信息由源平台上的虚拟TPM加密,并且由 目的地平台上的虚拟TPM解密。


在附带的权利要求中阐明了被认为是本发明新颖特性的特征。然而, 通过当结合附图阅读时参考以下示意性实施例的详细描述,将最好地理解 本发明本身以及其优选使用模式、另外的目的和优点,在附图中图1是其中可以实现本发明的示例性方面的数据处理系统网络的图形表示;图2是其中可以实现本发明的示例性方面的数据处理设备的框图; 图3是示出了根据本发明优选实施例的、针对服务器或客户机系统的典型的软件体系结构的框图;图4是描述了根据本发明的示例性实施例的、将虚拟TPM实例迁移到物理上独立的目的地平台的示例的框图;图5是根据本发明的示例性实施例的、描迷将虚拟TPM实例从源平台迁移到目的地平台的高级过程的信息流的图;图6 ^i才艮据本发明的示例性实施例的、用于迁移虛拟TPM实例的信 息流的图;图7是根据本发明的示例性实施例的、用于在多个步骤中导出虛拟 TPM实例的状态信息的信息流的图;图8是根据本发明的示例性实施例的、用于在单个步骤中导出虚拟 TPM实例的状态信息的信息流的图;图9是示出了根据本发明的示例性实施例的、用于处理TPM命令的 ^^的流程图;图10是示出了根据本发明的示例性实施例的、用于处理创建虚拟 TPM实例的命令的^^作的流程图;图11是示出了根据本发明的示例性实施例的、用于处理锁定虚拟 TPM实例的命令的操作的流程图;图12是示出了根据本发明的示例性实施例的、用于处理获得虚拟 TPM实例密钥的命令的^l作的流程图;图13是示出了根据本发明的示例性实施例的、用于处理获得虚拟 TPM实例数据的命令的操作的流程图;图14是示出了根据本发明的示例性实施例的、用于处理删除虛拟 TPM实例的命令的梯:作的流程图;图15是示出了根据本发明的示例性实施例的、用于处理设置虛拟 TPM实例密钥的命令的操作的流程图;图16是示出了根据本发明的示例性实施例的、用于处理设置虛拟 TPM实例数据的命令的操作的流程图;以及图17是示出了根据本发明的示例性实施例的、用于处理解锁虛拟 TPM实例的命令的操作的流程图。
具体实施方式
图1-2被提供作为其中可实现本发明实施例的数据处理环境的示例 性图。应当理解,图1-2仅是示例性的,并且并非意在断言或暗示关于其中可以实现本发明的各方面或实施例的环境的任意限制。在不脱离本发明 的精神和范围的情况下,可以做出对所描述的环境的许多修改。现在参考附图,图l描述了其中可以实现本发明的各方面的数据处理系统网络的图形表示。网络数据处理系统IOO是其中可以实现本发明实施 例的计算机网络。网络数据处理系统100包含网络102,该网络是用于提 供网络数据处理系统100中连接到一起的各个设备和计算机之间的通信链 路的媒介。所述网络102可以包括例如有线、无线通信链路或光缆的连接。 在所描述的示例中,服务器104和服务器106连同存储单元108 —起 连接到网络102。另外,客户机IIO、 112和114也连接到网络102。这些 客户机IIO、 112和114可以是例如个人计算机或网络计算机。在所描述的 示例中,服务器104向客户机110、 112和114提供例如引导文件、操作系 统镜像和应用的数据。客户机110、 112和114在该示例中;Ul务器104 的客户机。网络数据处理系统100可以包括另外的服务器、客户机和其它 未示出的设备。在所描述的示例中,网络数据处理系统100是具有网络102的因特网,和网关的M界集合。在因特网的中心是主节点或主机之间的高速数据通 信线路的骨干,其由用于路由数据和消息的数千个商业、政府、教育和其 它计算机系统组成。当然,网络数据处理系统100可以还^R实现为许多不 同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。图1 意在作为示例,而不是对本发明的不同实施例的体系结构限制。现在参考图2,示出了其中可以实现本发明的各方面的数据处理系统 的框图。数据处理系统200是例如图1中的服务器104或客户机110的计 算机的示例,实现用于本发明实施例的过程的计算机可用代码或指令可以 位于其中。在所描述的示例中,数据处理系统200使用包括北桥和存储器控制器 集线器(NB/MCH )202以及南桥和输"输出(I/O )控制器集线器(SB/ICH) 204的集线器体系结构。处理单元206、主存储器208和图形处理器210被连接到北桥和存储器控制器集线器202。图形处理器210可以通过加速 图形端口 (AGP)连接到北桥和存储器控制器集线器202。在所描述的示例中,LAN适配器212连接到南桥和I/O控制器集线器 204。音频适配器216、键盘和鼠标适配器220、 TPM 222、只读存储器 (ROM) 224、硬盘驱动器(HDD) 226、 CD-ROM驱动器230、通用串 行总线(USB )端口和其它通信端口 232以及PCI/PCIe设备234通过总 线238和总线240连接到南桥和I/O控制器集线器204。 PCI/PCIe i殳备可 以包括例如以太网适配器、内插卡和用于笔记本电脑的PC卡、TPM222。 PCI使用卡总线控制器,而PCIe不使用。ROM224可以是例如闪速二进 制输^/输出系统(BIOS)。石更盘驱动器226和CD-ROM驱动器230通过总线240连接到南桥和 I/O控制器集线器204。硬盘驱动器226和CD-ROM驱动器230可以4吏用 例如集成驱动器电子电路(IDE)或串行高级技术附件(SATA)接口,超 级I/O ( SIO)设备236可以被连接到南桥和I/O控制器集线器204。操作系统运行在处理单元206上,并且协调并提供对图2中的数据处 理系统200中的各个部件的控制。作为客户机,操作系统可以是例如 Microsoft Windows XP ( Microsoft和Windows是孩t软7〉司在美国、其 它国家或这两者中的商标)的可购买到的操作系统。例如JavaTM编程系统 的面向对象编程系统可以结合操作系统运行,并且提供从在数据处理系统 200上执行的Java程序或应用对操作系统的调用(Java是Sun Microsystems公司在美国、其它国家或这两者中的商标)。作为服务器,数据处理系统200可以是例如运行高级交互式执行体 (AIX )操作系统或LINUX操作系统的IBM eServerTM pSeries⑧计算机 系统(eServer、 pSeries和AIX是国际商业机器公司在美国、其它国家或 这两者中的商标,而LINUX是Linus Torvalds美国、其它国家或这两者 中的商标)。数据处理系统200可以是包括处理单元206中的多个处理器 的对称多处理器(SMP)系统。可替换地,单一处理器系统可以祐Z吏用。用于操作系统、面向对象编程系统和应用或程序的指令位于例如硬盘驱动器226的存^i殳备上,并且可以被装载到主存储器208中以由处理单 元206执行。用于本发明的示意性实施例的过程由处理单元206使用计算 机可用程序代码执行,所述计算机可用程序代码可以位于例如主存储器 208、只读存储器224的存储器中,或者一个或更多外围设备226和230 中。本领域的普通技术人员将理解,图1 - 2中的硬件可以取决于实现而改 变。除图1-2中所描述的硬件之外、或取代图1-2中所描述的硬件,可 以使用例如闪速存储器、等价非易失性存储器或光盘驱动器等其它内部硬 件或外围设备。同样,本发明的过程可以被应用于多处理器数据处理系统。在某些示意性示例中,数据处理系统200可以是个人数字助理(PDA ), 其被配置了闪速存储器以提供用于存储操作系统文件和/或用户生成数据 的非易失性存储器。总线系统可以包括一个或多个总线,例如图2中所示的总线238或总 线240。当然,所述总线系统可以使用任意类型的通信结构或体系结构来 实现,所述通信结构或体系结构提供被附接到该结构或体系结构的不同部 件或设备之间的数据传输。通信单元可以包括一个或多个用于传送和接收 数据的设备,例如图2的网络适配器212。存储器可以例如是主存储器208、 只读存储器224、或诸如图2中的北桥和存储器控制器集线器202中找到 的高速緩存。图1 - 2中所描述的示例以及上述示例并未意味着暗示体系结 构的限制。例如,除了采取PDA的形式之外,数据处理系统200还可以是 平板式计算才几、膝上型计算机、或者电话设备。转向图3,根据本发明优选实施例的、针对服务器-客户机系统的典型 的软件体系结构(由标号300 —般指定)被描述。操作系统302被用于向 用户和其它软件提供高级功能。操作系统302可以在图1的服务器1(M或 客户机IIO中实现,用于实现本发明实施例的过程的计算机可用代码或指 令可以位于所述操作系统中。所述操作系统典型地包括BIOS。通信软件 304或者通过直接调用搮作系统功能或者通过间接绕过操作系统以在网络 上访问用于通信的^S更件,经由物理通信链路提供通过外部端口到网络(诸如因特网)的通信。应用编程接口 (API) 306允许系统用户、个人、或软件例程使用标准 兼容接口来调用系统能力,而不用关心如何实现该特定功能。网络访问软 件308表示可用于允许系统访问网络的任意软件。该访问可以是到网络的, 所述网络诸如LAN、 WAN或因特网。通过因特网,此软件可以包括程序, 诸如Web浏览器。应用软件310表示任意数量的软件应用,其被i殳计为通过通信端口对 数据起作用,以提供用户寻求的期望功能。位于此级的应用可以包括用于 处理可由因特网用户访问的数据、视频、图形、照片或文本所必需的应用。 管理程序312是运行在平台上的软件层,所述平台允许操作系统的多个实 例同时运行。TPM是由可信计算组定义的安4H^范。TPM的实现可用作为物理的芯片。TPM提供加密操作,诸如非对称密钥生成、解密、加密、签名、 在TPM之间迁移密钥、以及随机数生成和散列法。TPM还提供对于少量 信息(诸如加密密钥)的安全存储。具有同时运行多个操作系统的能力的计算才几系统将期望扩展对可信计 算的支持,所述支持的方式类似于该计算机系统针对单个操作系统环境可 用的支持。在所述情形中,每个虚拟机需要访问其自身的TPM。出于此申 请的目的,所述TPM被称为虛拟TPM实例,其通过被称为虚拟TPM的 实体而产生。每个操作系统被提供其自身的虚拟TPM实例。在本发明的示例性实 施例中,TPM理解的正常命令集被扩充为使能对于虛拟TPM实例(例如 非易失性RAM(NVRAM)区域)的完整状态的下栽,以及在内部将密钥 保存在文件中,并在另一个支持多实例的虛拟TPM中重新创建虚拟TPM 状态以及在那里恢复操作。此特定扩展使能了虛拟TPM实例以及在虛拟机内运行的操作系统从 一个物理平台向另一个物理平台的迁移。从虚拟TPM实例下载的所有状态被用对称密钥加密。该对称密钥也被下载,但它本身将被可迁移的存储密钥加密。为了在另一系统上重新创建虚拟TPM实例的状态,该可迁移 的存储密钥优选地首先成为可用,以便能够使用以加密形式被安全地保持 的对称密钥。在系统之间的虚拟TPM实例迁移的可能性需要在多级上的 互操作性。首先,虛拟TPM实现应该实现允许虚拟TPM实例的迁移的相 同的扩展命令集。其次,源平台应用正写到文件的虚拟TPM实例状态应 该可以;故目标系统上的工具或应用读取。对于本发明的示例性实施例,假定虚拟TPM实例的层级结构已经被 构造,其中父虚拟TPM实例具有对其子实例的生存周期的控制。父虛拟 TPM实例例如可以创建新的虛拟TPM子实例,以及检索它们的状态信息 或者删除它们。在本发明的示例性实施例中,虚拟TPM实例从源平台4皮下载,并且 其所有的状态信息被源平台上的父虚拟TPM实例使用公共和对称密钥加 密法的混合进行加密。已加密的状态被传送到目标物理平台、被解密,并 且虚拟TPM实例的状态;故重构。在另 一示例性实施例中,通过确保可信平台模块仅可以在单--个目标平台上重新创建,所迁移的虛拟TPM实例的唯一性净皮保留。在另一示 例性实施例中,完整性数据确保仅有所迁移的虛拟TPM实例的完全和未 修改状态可以#皮重新创建。在本发明的另一示例性实施例中,将迁移的虛 拟TPM实例的状态在源平台上被毁坏。在本发明的另一示例性实施例中,对客户机系统的支持被提供。客户 机可以请求迁移虛拟TPM实例。在一示例性实施例中,包括迁移应用的 回复包被发送到客户机。迁移应用需要被安装在源和目的地平台二者之上。 迁移应用是下述程序,其用于将命令发送到父虛拟可信平台模块从而导致 虚拟TPM实例的状态的串行化,以及使得用户能够使用允许下栽虚拟 TPM实例的状态的扩展命令集。在另一示例性实施例中,迁移应用可以包 括用于自动下载虚拟TPM实例的状态的计算机可用程序代码,以及出于 在目的地平台重新创建该状态的目的将该状态传送到目的地平台。在另一示例性实施例中,迁移应用还可以包括用于收集关于客户机系统的信息(包括緩沖器大小)的计算机可用程序代码,以便确定虛拟TPM实例的状态 可以在一个步骤中被下栽还是需要多个步骤。图4是描述了根据本发明的示例性实施例的、将虛拟TPM实例迁移 到物理上独立的目的地平台的示例的框图。图4描述了具有两个物理上分 离的计算机(计算机A 402和计算机B 404 )的系统(由标号400 —般指 示)。计算机A 402包括管理程序406、搮作系统410、 412和414、以及 虛拟TPM 420。虛拟TPM 420是虛拟TPM实例(vTPM 430、 432和434 ) 的宿主。每个虚拟TPM实例关联于一个且仅一个操作系统。系统400示 出了操作系统410和vTPM 432净皮从计算机A 402迁移到计算机B 404。 如箭头所指示的,操作系统410和vTPM 432的状态信息被冻结和存储。 操作系统410和vTPM 432通过管理程序406迁移到计算机B 404的管理 程序408。如图所示,操作系统410和vTPM 432的状态信息被恢复。虛 拟TPM实例vTPM 432被恢复到计算机B 404的虛拟TPM 422上。图5是根据本发明的示例性实施例的、描述将虚拟TPM实例从源平 台迁移到目的地平台的高级过程的信息流的图。虚拟TPM实例迁移的基对称密钥对的迁移。在示例中,源平台上的将迁移虛拟TPM实例的父虚 拟TPM实例将非对称密钥迁移到将成为将迁移虛拟TPM实例在目的地平 台上的父亲的虛拟TPM实例(步骤502)。非对称密钥迁移是TPM规范 的标准特征,并因此是由该标准实现的虛拟TPM实例的能力的一部分。 非对称密钥迁移〗吏得同一密钥对可用于两个父虚拟TPM实例。虚拟TPM迁移进一步基于从源平台上的父虛拟TPM实例将对称密钥 迁移到目的地平台上的父虛拟TPM实例。源平台上的迁移应用从源平台 上的父虚拟TPM实例请求对称密钥(步骤504)。响应于所接收的请求, 源平台上的父虛拟TPM实例用作为所迁移的非对称密钥的一部分的^H^ 来加密所生成的、内部保存的对称密钥,并且将已加密对称密钥返回源平 台上的迁移应用(步骤506)。已加密对称密钥,皮从源平台上的迁移应用传送到目的地平台上的迁移应用(步骤508)。目的地平台上的迁移应用 将已加密对称密钥提交给目的地平台上的父虚拟TPM实例(步骤510)。 已加密对称密钥被用所迁移的非对称密钥的私钥解密,并保持在将接收所 迁移的状态信息的虚拟TPM实例内部(步骤512)。指示出解密成功或失 败的结果代码被目的地平台上的父虛拟TPM实例返回到目的地平台上的 迁移应用(步骤514)。此外,源平台上的将迁移虚拟TPM实例的状态被父虛拟TPM实例使 用对称密钥加密(步骤516 )。接着将迁移虚拟TPM实例的已加密状态信 息净皮传送到目的地平台(步骤518 ),并在父虚拟TPM实例内部4吏用所迁 移的对称密钥来解密(步骤520)。图6是4艮据本发明的示例性实施例的、用于迁移虚拟TPM实例的信 息流的图。所述信息流开始于目的地平台上的迁移应用将命令发送到目的 地平台上的父虛拟TPM实例,以创建用于迁移虛拟TPM实例状态到其中 的实例(步骤602 )。目的地平台上的父虚拟TPM实例将唯一的迁移标识 符返回目的地平台上的迁移应用(步骤604)。目的地平台上的迁移应用 将唯一标识符传送到源平台上的迁移应用(步骤606)。接着源平台上的 迁移应用与源平台上的父虛拟TPM实例通信,以首先锁定虛拟TPM实例 (步骤608 )并接着获得实例密钥(步骤610 )。"锁定,,虚拟TPM实例 的意思是,虛拟TPM实例的状态被冻结,并且该虚拟TPM实例将不再接 受正常的TPM命令。已锁定的虛拟TPM实例将^3L接受与迁移虛拟TPM 实例相关的命令。接着虛拟TPM实例的状态通过源平台上的父虚拟TPM 实例被下载到源平台上的迁移应用(步骤612)。当状态信息被下载时, 将它从将迁移的虛拟TPM实例中删除。源平台上的迁移应用接收作为状 态信息的最后一段的迁移摘要。接下来,源平台上的迁移应用删除源虛拟 TPM实例(步骤614)。源平台上的迁移应用将虚拟TPM实例的状态传 送到目的地平台上的迁移应用(步骤616)。目的地平台上的迁移应用与 父虚拟TPM实例通信并且设置TPM实例密钥(步骤618)。接着虛拟 TPM实例的状态被用于通过目的地平台上的父虛拟TPM实例重新创建虛拟TPM实例(步骤620)。目的地平台上的迁移应用与目的地平台上的父 虚拟TPM实例通信,以解锁实例,同时还传送迁移摘要(步骤622)。图7是根据本发明的示例性实施例的、用于在多个步猓中导出虚拟 TPM实例的状态信息的信息流的图。数据处理系统通常在其緩沖器大小上 具有局限。在某些情形中,在緩冲器大小上的这种局限可以阻止在单一步 骤中下栽虚拟TPM实例的状态。在这样的情形中,虚拟TPM实例的状态 需要在多个步猓中被迁移。所述信息流(由标号700 —般指定)是在多个 步骤中执行图5的步猓518的示意性示例.通信处于源平台上的迁移应用 与将迁移的虚拟TPM实例的父虚拟TPM实例之间,但是所返回的状态是 将迁移的虚拟TPM实例的状态。信息流700开始于确定可用的NVRAM 区域的数量。为了确定哪些NVRAM区域可用,源平台上的迁移应用将命 令GetCapability(NVRAM区域)发送到源平台上的父虚拟TPM实例,并 且源平台上的父虚拟TPM实例通过在将迁移的虚拟TPM实例上可用的 NVRAM区域索引阵列来答复源平台上的迁移应用(步骤702)。接下来, 为了下栽所有NVRAM区域,源平台上的迁移应用发送命令 GetlnstanceData(NVRAM区域"N,,),并且源平台上的父虚拟TPM实例 通过将迁移的虚拟TPM实例的串行化NVRAM区域"N"来答复源平台 上的迁移应用(步骤704)。当每个答复被源平台上的迁移应用所接收时, 该特定段的数据(区域"N")被删除。为了确定哪些拥有者收回 (owner-evict)密钥可用,源平台上的迁移应用发送命令GetCapability(拥 有者收回密钥列^^),并且源平台上的父虚拟TPM实例通过将迁移的虚拟 TPM实例的可用的拥有者收回密钥的列表来答复源平台上的迁移应用(步 骤706)。拥有者收回密钥是当重新启动TPM时仍生存的密钥。接下来, 源平台上的迁移应用通itil送命令GetlnstanceData(拥有者收回密钥K)来 下栽所有的拥有者收回密钥,并且源平台上的父虚拟TPM实例通过将迁 移的虚拟TPM实例的串行化的拥有者收回密钥来答复源平台上的迁移应 用(步骤708)。接着源平台上的迁移应用下栽将迁移的虚拟TPM实例的 所有其它TPM状态信息,图8是根据本发明的示例性实施例的、用于在单个步猓中导出虚拟 TPM实例的状态信息的信息流的图。图8是在单个步躁中执行困5的步骤 518的示意性示例.通过源平台上的迁移应用将命令GetlnstanceData(所有) 发送到源平台上的父虚拟TPM实例,源平台在一个步骤中下栽将迁移的 虚拟TPM实例的所有状态信息,并且源平台上的父虚拟TPM实例进行答 复.图9是示出了M本发明的示例性实施例的、用于处理TPM命令(特 别是与虚拟TPM管理相关的命令)的IMt的流程图。所述操作开始于TPM 等待接收命令(步骤902 )。 一旦命令被接收,TPM确定该命令是否是"创 建TPM实例"命令(步骤904 ),如果该命令是创建TPM实例命令(步 骤904的是输出),则创建虚拟TPM实例,如图IO中更详细解释的,如 果该命令不是创建TPM实例命令(步骤卯4的否输出),则TPM确定该 命令是否是"锁定TPM实例"命令(步骤906).如果该命令是锁定TPM实例命令(步骤906的是输出),则锁定虚 拟TPM实例,如图11中更详细解释的。如果该命令不是锁定TPM实例 命令(步骤卯8的否输出),则TPM确定该命令是否是"获得TPM实例 密钥"命令(步骤908)。如果该命令是获得TPM实例密钥命令(步骤908的是输出),则获 得虚拟TPM实例密钥,如图12中更详细解释的。如果该命令不是获得 TPM实例密钥命令(步稞908的否输出),则TPM确定该命令是否是"获 得TPM实例数据"命令(步骤910)。如果该命令是获得TPM实例数据命令(步骤910的是输出),则获 得虚拟TPM实例数据,如图13中更详细解释的。如果该命令不是获得 TPM实例数据命令(步骤910的否输出),则TPM确定该命令是否是"删 除TPM实例"命令(步骤912 )。如果该命令是删除TPM实例命令(步骤912的是输出),则删除虚 拟TPM实例数据,如图14中更详细解释的。如果该命令不是删除TPM 实例命令(步骤912的否输出),则TPM确定该命令是否是"设置TPM实例密钥"命令(步骤914)。如果该命令是设置TPM实例密钥命令(步骤914的是输出),则设 置虚拟TPM实例密钥,如图15中更详细解释的。如果该命令不是设置 TPM实例密钥命令(步骤914的否输出),则TPM确定该命令是否是"设 置TPM实例数据"命令(步骤916)。如果该命令是设置TPM实例数据命令(步骤916的是输出),则设 置虛拟TPM实例数据,如图16中更详细解释的。如果该命令不是设置 TPM实例数据命令(步骤916的否输出),则TPM确定该命令是否是"解 锁TPM实例"命令(步骤918 )。如果该命令是解锁TPM实例命令(步骤918的是输出),则解锁虛 拟TPM实例,如图17中更详细解释的。如果该命令不是解锁TPM实例 命令(步骤918的否输出),则TPM验证命令的有效性(步骤920 )并且 作为正常TPM命令来处理,以及最终返回步骤902。图IO是示出了根据本发明的示例性实施例的、用于处理创建TPM实 例命令的梯:作的流程图。在本示例中,在目的地平台上创建空的虛拟TPM 实例。所述操作开始于接收创建作为实例P的孩子的实例的命令,其中实 例P是父实例(步骤1002)。接下来,所述操作mt命令的拥有者授权是 否有效(步骤1004 )。如果命令的拥有者授权无效(步骤1004的否输出), 则适当的错误代码被发送作为结果值(步骤1016),并且所述操作返回图 9的步骤卯2,以等待要处理的新命令。如果命令的拥有者授权有效(步骤 1004的是输出),则所述操作确定实例P是否是正处理的虚拟TPM实例 的子孙(步骤1006)。如果实例P不是正处理的虚拟TPM实例的子孙(步骤1006的否输出), 则适当的4綠代码,议送作为结果值(步骤1016),并且所述操作返回图 9的步骤902,以等待要处理的新命令。如果实例P是正处理的虛拟TPM 实例的子孙(步骤1006的是输出),则所述操作确定实例P是否是特4又 实例(步骤1008)。特权实例是具有创建其它的子实例的许可的实例。如果实例P不是特权实例(步骤1008的否输出),则适当的错误代码M送作为结果值(步骤1016),并且所述操作返回图9的步骤卯2, 以等待要处理的新命令。如果实例P是特权实例(步骤1008的是输出), 则所述操作创建作为实例P的孩子的虚拟TPM实例(步骤IOIO)。虛拟 TPM被分配唯一的实例句柄H以及唯一的迁移标识符(步骤IOIO)。将 目的地锁用于实例H (步骤1012 )。当锁已经被使用时,实例H现在将仅 接受与虛拟TPM实例的迁移相关的命令,并由此直到另一虚拟TPM实例 被迁移到它之前、或者它已被解锁之前将被保持为空。唯一的实例句柄H 以及迁移标识符被返回调用者(步骤1014 ),并且所述操作返回图9的步 骤卯2,以等待要处理的新命令。图ll是示出了根据本发明的示例性实施例的、用于处理锁定TPM实 例命令的操作的流程图。所迷操作开始于接收锁定与唯一的迁移标识符相 关联的虚拟TPM实例(实例H)的命令(步骤1102)。接下来,所述操 作^命令的拥有者授权是否有效(步骤1104 )。如果命令的拥有者授权 无效(步骤1104的否输出),则适当的错误代码^Ll送作为结果值(步骤 1120),并且所述操作返回图9的步骤卯2,以等待要处理的新命令。如 果命令的拥有者授权有效(步骤1104的是输出),则所述操作确定实例H 是否是正处理的虚拟TPM实例的子孙(步骤1106 )。如果实例H不是正 处理的虛拟TPM实例的子孙(步骤1106的否输出),则适当的错误代码 被发送作为结果值(步骤1120),并且所述操作返回图9的步骤902,以 等待要处理的新命令。如果实例H是正处理的虛拟TPM实例的子孙(步骤1106的是输出), 则所述操作确定是否使用了目的地锁(步骤1110 )。如果使用了目的地锁 (步骤1110的是输出),则适当的错误代码M送作为结果值(步骤1120 ), 并且所述操作返回图9的步骤卯2,以等待要处理的新命令。如果未使用 目的地锁(步骤1110的否输出),则所述操作将源锁用于实例P,其阻止 实例P接受除了与迁移TPM有关的命令之外的任意TPM命令(步骤 1112)。所述操作将迁移会话初始化为实例H的唯一迁移标识符(步骤 1114)。所述操作接着初始化迁移摘要(步骤1116)。所述迁移摘要是完整性数据的示例,被用于检测所导出的虛拟TPM实例状态的改变。指示 所述操作的成功或失败的结果代码被返回(步骤1118),并且所述操作返 回图9的步骤902,以等待要处理的新命令。图12是示出了根据本发明的示例性实施例的、用于处理获得TPM实 例密钥命令的操作的流程图,所述操作开始于接收通过使用存储密钥S用 于加密而获得虛拟TPM实例(实例H )的实例密钥的命令(步骤1202 )。 接下来,所述操作验证命令的拥有者授权是否有效(步骤1204 )。如果命 令的拥有者授权无效(步骤1204的否输出),则适当的错误代码^^送作 为结果值(步骤1220),并且所述操作返回图9的步骤卯2,以等待要处 理的新命令。如果命令的拥有者授权有效(步骤1204的是输出),则所述 操作确定实例H是否是正处理的虛拟TPM实例的子孙(步骤1206 )。如 果实例H不是正处理的虚拟TPM实例的子孙(步骤1206的否输出),则 适当的错误代码净纹送作为结果值(步骤1220),并且所迷操作返回图9 的步骤902,以等待要处理的新命令。如果实例H是正处理的虚拟TPM实例的子孙(步骤1206的是输出), 则所述操作确定存储密钥S的授权是否有效(步骤1208)。如果存储密钥 S的授权无效(步骤1208的否输出),则适当的4 代码#^送作为结果 值(步骤1220),并且所述^Mt返回图9的步骤902,以等待要处理的新 命令。如果存储密钥S的授权有效(步驟1208的是输出),则在实例H 上,所述操作创建随机对称密钥,并用随机对称密钥来构造对称密钥结构(步骤1210 )。接着在实例H上,所述操作创建将被用作为实例H的HMAC 密钥的随机数(步骤1212 )。所述操作将随机对称密钥存储在实例H上(步 骤1214 )。所述操作接着将HMAC密钥存储在实例H上(步骤1216 )。 在实例H上,所述操作将对称密钥结构和HMAC密钥相并置,并且用密 钥S加密所并置的项目(步骤1218)。所述操作将已加密项目返回调用者(步骤1222),并且所述操作返回图9的步骤902,以等待要处理的新命 令。图13是示出了4艮据^^发明的示例性实施例的、用于处理获得TPM实例数据命令的操作的流程图。所述操作开始于接^虚拟TPM实例(实 例H)获得实例数据的命令(步骤1302)。接下来,所述操作mt命令的 拥有者授权是否有效(步骤1304 )。如果命令的拥有者授权无效(步骤1304 的否输出),则适当的错误代码^JL送作为结果值(步骤1326),并且所 述操作返回图9的步骤卯2,以等待要处理的新命令。如果命令的拥有者 授权有效(步骤1304的是输出),则所述操作确定实例H是否是正处理 的虚拟TPM实例的子孙(步骤1306)。如果实例H不是正处理的虛拟 TPM实例的子孙(步骤1306的否输出),则适当的错误代码^J^送作为 结果值(步骤1326),并且所述操作返回图9的步骤902,以等待要处理 的新命令。如果实例H是正处理的虛拟TPM实例的子孙(步骤1306的是输出), 则所述^作确定实例密钥是否已被设置(步骤1308)。如果实例密钥尚未 被设置(步骤1308的否输出),则适当的,代码^^L送作为结果值(步 骤1326),并且所述操作返回图9的步骤902,以等待要处理的新命令。 如果实例密钥已被设置(步骤1308的是输出),则所述操作确定源锁是否 已被使用(步骤1310)。如果源锁尚未被使用(步骤1310的否输出), 则适当的错误代码被发送作为结果值(步骤1326 ),并且所述操作返回图 9的步骤902,以等待要处理的新命令。如果源锁已被使用(步骤1310的 是输出),则所述操作串行化实例H的已请求数据段(步骤1312 )。所迷 操作使用实例HMAC密钥作为密钥来计算串行化数据上的HMAC (步骤 1314)。所述操作通过用串行化数据的散列来扩展其当前值,而更新迁移 摘要(步骤1316 )。所述操作将HMAC附加到串行化数据(步骤1318 )。 所述操作使用实例密钥加密包括HMAC的串行化数据(步骤1320 )。如 果此数据被确定为已下载信息的最后一块,则所述^作返回迁移摘要(步 骤1322)。所述操作将已加密数据返回调用者(步骤1324),并且所述操 作返回图9的步骤902,以等待要处理的新命令。图14是示出了根据本发明的示例性实施例的、用于处理删除TPM实 例命令的操作的流程图。所述操作开始于接收删除具有唯一句柄H的虚拟TPM实例(实例H)的命令(步骤1402)。接下来,所述操作^命令 的拥有者授权是否有效(步骤1404 )。如果命令的拥有者授权无效(步骤 140<4的否输出),则适当的,代码净嫂送作为结果值(步骤1414 ),并 且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥 有者授权有效(步骤1404的是输出),则所述操作确定实例H是否是正 处理的虚拟TPM实例的子孙(步骤1406 )。如果实例H不是正处理的虛 拟TPM实例的子孙(步骤1406的否输出),则适当的错误代码^L^送作 为结果值(步骤1414),并且所述操作返回图9的步骤902,以等待要处 理的新命令。如果实例H是正处理的虛拟TPM实例的子孙(步骤1406的是输出), 则所述操作确定实例H是否具有任意子孙(步骤1408 )。如果实例H具 有子孙(步骤1408的是输出),则适当的错误代码^^C送作为结果值(步 骤1414),并且所述操作返回图9的步骤卯2,以等待要处理的新命令。 如果实例H没有子孙(步骤1408的否输出),则所述操作删除与实例H 相关联的所有数据(步骤1410 )。所述操作从实例H的直接父亲中删除对 实例H的所有引用(步骤1412),并且所述操作返回图9的步骤卯2,以 等待要处理的新命令。图15是示出了根据本发明的示例性实施例的、用于处理设置TPM实 例密钥命令的操作的流程图。所述操作开始于接收通过使用存储密钥S用 于加密而设置虛拟TPM实例(实例H)的实例密钥的命令(步骤1502)。 接下来,所述操作B命令的拥有者授权是否有效(步骤1504)。如果命 令的拥有者授权无效(步骤1504的否输出),则适当的4^代码M送作 为结果值(步骤1518),并且所述操作返回图9的步骤902,以等待要处 理的新命令。如果命令的拥有者授权有效(步骤1504的是输出),则所述 操作确定实例H是否是正处理的虚拟TPM实例的子孙(步骤1506 )。如 果实例H不是正处理的虛拟TPM实例的子孙(步骤1506的否输出),则 适当的皿代码^Ll送作为结果值(步骤1518),并且所述^^t返回图9 的步骤902,以等待要处理的新命令。如果实例H是正处理的虛拟TPM实例的子孙(步骤1506的是输出), 则所述操作确定存储密钥S的授权是否有效(步骤1508 )。如果存储密钥 S的授权无效(步骤1508的否输出),则适当的,代码净iC^送作为结果 值(步骤1518),并且所述^Ht返回图9的步骤902,以等待要处理的新 命令。如果存储密钥S的授权有效(步骤1508的是输出),则所述^M^f吏 用存储密钥S的私钥来解密给定的已加密项目,并且提取对称密钥结构和 HMAC密钥(步骤1510 )。接着所述操作确定对称密钥结构是否有效(步 骤1512)。如果对称密钥结构无效(步骤1512的否输出),则适当的4晉 误代码净a送作为结果值(步骤1518),并且所述操作返回图9的步骤902, 以等待要处理的新命令。如果对称密钥结构有效(步骤1512的是输出), 则所述操作存储对称密钥作为实例H的状态的一部分(步骤1514)。接着 所述操作存储HMAC密钥作为实例H的状态的一部分(步骤1516 ),并 且所述操作返回图9的步骤902,以等待要处理的新命令。图16是示出了根据本发明的示例性实施例的、用于处理设置TPM实 例数据命令的操作的流程图。所述操作开始于接收i殳置虚拟TPM实例(实例H)的实例数据的命令(步骤1602)。接下来,所述操作 £命令的拥 有者授权是否有效(步骤1604 )。如果命令的拥有者授权无效(步骤1604 的否输出),则适当的错误代码,议送作为结果值(步骤1622),并且所 述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者 授权有效(步骤1604的是输出),则所述操作确定实例H是否是正处理 的虚拟TPM实例的子孙(步骤1606)。如果实例H不是正处理的虚拟 TPM实例的子孙(步骤1606的否输出),则适当的错误代码被发送作为 结果值(步骤1622),并且所述操作返回图9的步骤卯2,以等待要处理 的新命令。如果实例H是正处理的虛拟TPM实例的子孙(步骤1606的是输出), 则所述操作确定实例密钥是否已被设置(步骤1608)。如果实例密钥尚未 被设置(步骤1608的否输出),则适当的错误代码^iC送作为结果值(步 骤1622),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果实例密钥已被设置(步骤1608的是输出),则所述操作确定目的地锁 是否已被4吏用(步骤1610)。如果目的地锁尚未被使用(步骤1610的否 输出),则适当的错误代码^iL送作为结果值(步骤1622),并且所述操 作返回图9的步骤902,以等待要处理的新命令。如果目的地锁已被使用(步骤1610的是输出),则所述操作使用实例密钥解密数据(步骤1612)。 接着所述操作确定在已解密数据中发现的HMAC是否正确(步骤1614 )。 如果在已解密数据中发现的HMAC不正确(步骤1614的否输出),则适 当的错误代码被发送作为结果值(步骤1622 ),并且所述操作返回图9的 步骤902,以等待要处理的新命令。如果在已解密数据中发现的HMAC正 确(步骤1614的是输出),则所述操作确定在已解密数据中发现的唯一迁 移标识符是否正确(步骤1616)。如果在已解密数据中发现的唯一迁移标 识符不正确(步骤1616的否输出),则适当的错误代码^JL送作为结果值(步骤1622),并且所述操作返回图9的步骤902,以等待要处理的新命 令。如果在已解密数据中发现的唯一迁移标识符正确(步骤1616的是输 出),则所述操作通过去串行化已解密的字节流来重新创建实例H的状态(步骤1618)。所迷操作用已解密数据来扩展实例H的迁移摘要(步骤 1620),并且所述操作返回图9的步骤902,以等待要处理的新命令。图17是示出了根据本发明的示例性实施例的、用于处理解锁TPM实 例命令的操作的流程图。所述操作开始于接收解锁与迁移摘要相关联的虚 拟TPM实例(实例H )的命令(步骤1702 )。接下来,所述操作^命 令的拥有者授权是否有效(步骤1704 )。如果命令的拥有者授权无效(步 骤1704的否输出),则适当的4^代码净i^送作为结果值(步骤1716), 并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的 拥有者授权有效(步骤1704的是输出),则所述操作确定实例H是否是 正处理的虛拟TPM实例的子孙(步骤1706 )。如果实例H不是正处理的 虚拟TPM实例的子孙(步骤1706的否输出),则适当的错误代码,皮发送 作为结果值(步骤1716),并且所述操作返回图9的步骤卯2,以等待要 处理的新命令。如果实例H是正处理的虛拟TPM实例的子孙(步骤1706的是输出), 则所述操作确定所传递的迁移摘要和内部迁移摘要是否匹配(步骤1708 )。 如果所传递的迁移摘要和内部迁移摘要不匹配(步骤1708的否输出),则 适当的错误代码,^送作为结果值(步骤1716),并且所述操作返回图9 的步骤902,以等待要处理的新命令。如果所传递的迁移摘要和内部迁移 摘要匹配(步骤1708的是输出),则所述操作清除具有实例H的唯一迁 移标识符的迁移会话(步骤1710)。所述操作解除(disengage)实例H 的目的地锁(步骤1712 )。所述操作解除实例H的源锁(步骤1714 ), 并且所述操作返回图9的步骤902,以等待要处理的新命令。由此,本发明提供了一种用于迁移可信平台模块实例的计算机实现方 法、数据处理系统以及计算机程序产品。所述方法还确保了所迁移的可信 平台模块实例的唯一性和完整性。此外,本发明可采用完全硬件实施例、完全软件实施例、或者结合软 件和硬件单元的实施例的形式。在优选实施例中,本发明用软件实现,所述软件包括但不限于固件、驻留软件、微代码等。此外,本发明可采用可从计算机可用或计算机可读媒体访问的计算机 程序产品的形式,所述媒体提供由计算机或任何指令执行系统使用、或与 计算机或任何指令执行系统相结合使用的程序代码。出于本说明书的目的,计算机可用或计算机可读媒体可以是可包含、存储、传送、传播或传输程 序的任何有形装置,所述程序由指令执行系统、装置或设务使用或与指令 执行系统、装置或设备相结合使用。所述媒体可以是电子的、磁的、光的、电磁的、红外的或半导体系 统(或装置或设备)、或传播媒体。计算机可读媒体的示例包括半导体或固态存储器、磁带、可移除计算才;ut盘、随M取存储器(RAM)、只读存储器(ROM)、硬磁盘、和光盘。光盘的当前示例包括只读存储器 致密盘(CD-ROM)、读/写致密盘(CD-R/W)以及数字视频盘(DVD)。 适于存储和/或执行程序代码的数据处理系统将包括直接地或通过系 统总线间接地耦合于存储器单元的至少一个处理器。存储器单元可以包括在程序代码的实际执行期间使用的局部存储器、海量存储装置、以及高速 援冲存储器,该高速緩冲存储器提供了至少某种程序代码的临时存储以便 减少在执行期间优选地应该从海量存储装置检索代码的次数。输入/输出或I/Oi殳备(包括但不限于键盘、显示器、定点设备等) 可以直接地或通过中间I/O控制器耦合于系统。网络适配器也可以被耦合于系统,以使数据处理系统能通过中间的专 用或公用网络耦合于其它数据处理系统或远程打印机或存储设备。调制解 调器、线缆调制解调器和以太网卡仅仅是当前可用类型的网络适配器中的 少数几种.已经出于说明和描述的目的呈现了本发明的描述,并且其不是意在穷 尽性的或者把本发明限制为所公开的精确形式。对本领域普通技术人员来 说,许多修改和变型是可能的。选择并描述了实施例是为了最好地解释本 发明的原理和实际的应用,以及为了使本领域的其它普通技术人员能够理 解针对各种实施例的本发明,所述实施例具有适合于预期的具体使用的各 种修改。
权利要求
1.一种用于迁移虚拟可信平台模块实例的计算机实现方法,所述计算机实现方法包括通过源平台上的父虚拟可信平台模块实例导出虚拟可信平台模块实例的状态;以及通过目的地平台上的父虚拟可信平台模块实例导入所述虚拟可信平台模块实例的所述状态。
2. 根据权利要求l所述的计算机实现方法,其中所述源平台和目的地 平台在不同的物理平台上。
3. 根据权利要求l所述的计算机实现方法,进一步包括 删除所述源平台上的所述虚拟可信平台模块实例的状态。
4. 根据权利要求1所述的计算机实现方法,其中通过使用基于网^ft 输协议的传送协议,将所述虛拟可信平台模块实例的状态从所述源平台流 动到所述目的地平台。
5. 根据权利要求1所述的计算机实现方法,其中所述虛拟可信平台模 块实例的状态在多个步骤中^皮导出,并且其中所迷虛拟可信平台模块实例 的状态在多个步骤中被导入。
6. 根据权利要求l所迷的计算机实现方法,进一步包括 由所述源平台上的父虚拟可信平台模块实例将完整性数据添加到所述虚拟可信平台模块实例的状态;以及由所述目的地平台上的父虚拟可信平台模块实例验证所述完整性数据。
7. 根据权利要求6所述的计算机实现方法,其中所述完整性数据是迁 移摘要。
8. 根据权利要求7所述的计算机实现方法,进一步包括其中导出所述虚拟可信平台模块实例的状态包括将所迷虛拟可信平 台模块实例的状态的每一段串行化为字节流,其中所述源平台上的父虛拟可信平台模块实例将每个串行化字节流构造为源摘要; 积累所有的源摘要以构造最终的源摘要; 导出所述最终的源摘要;由所述目的地平台上的父虚拟可信平台模块实例接收所述串行化字节 流,其中所述目的地平台上的父虚拟可信平台模块实例将每个串行化字节 流构造为目的地摘要;积累所有的目的地摘要以构造最终的目的地摘要;以及比较所述最终的源摘要和所述最终的目的地摘要。
9. 根据权利要求l所述的计算机实现方法,进一步包括 阻止所述虛拟可信平台模块实例的状态被多个父虛拟可信平台模块实例所导入。
10. 根据权利要求9所述的计算机实现方法,其中阻止所述虛拟可信 平台模块实例的状态被多个父虛拟可信平台模块实例所导入的所述步骤包 括生成唯一迁移标识符;将所述唯一迁移标识符添加到所述可信平台模块实例的状态;以及 由目的地可信平台;f莫块实例mi所述迁移标识符。
11. 根据权利要求10所述的计算机实现方法,其中所迷目的地平台上 的父虚拟可信平台模块实例生成所述唯一迁移标识符,并且所述唯一迁移 标识符被发送到所述源平台上的父虚拟可信平台模块实例,以及其中所述 源平台上的父虚拟可信平台模块实例将所述唯一迁移标识符添加到所迷虛 拟可信平台才莫块实例的状态。
12. 根据权利要求1所述的计算机实现方法,进一步包括 在所述虛拟可信平台模块实例的状态被导出之前,加密所述虛拟可信平台模块实例的状态;以及在所述虛拟可信平台模块实例的状态被导入之后,解密所述虚拟可信 平台模块实例的状态。
13. 根据权利要求12所述的计算机实现方法,其中导出和导入所述虛拟可信平台模块实例的状态的所述步骤包括在所述源平台上的父虛拟可信平台模块实例和所述目的地平台上的父 虛拟可信平台模块实例之间交换对称密钥;用所述对称密钥加密所述源平台上的所迷虚拟可信平台模块实例的状 态;以及用所述对称密钥解密所述目的地平台上的所述虛拟可信平台模块实例 的状态。
14.根据权利要求13所述的计算机实现方法,其中在所述源平台上的 父虚拟可信平台模块实例和所述目的地平台上的父虚拟可信平台模块实例 之间交换对称密钥的所述步骤包括由所述源平台上的父虛拟可信平台模块实例生成随机的对称密钥;使用公钥加密所述随机的对称密钥;以及将已加密的随机的对称密钥导出到所述目的地平台上的父虛拟可信平 台模块实例,其中所述目的地平台上的父虚拟可信平台模块实例通过使用 与所述公钥相关联的私钥来解密已加密的随机的对称密钥。
15,根据权利要求1所述的计算机实现方法,进一步包括将消息^代码附加到所述虛拟可信平台模块实例的状态;以及验证所述消息验证代码。
16. 根据权利要求15所迷的计算机实现方法,进一步包括由所述源平台上的父虚拟可信平台模块实例生成用于所述消息验证代 码的密钥;在所述源平台上的父虛拟可信平台^=莫块和所述目的地平台上的父虛拟 可信平台模块之间交换所述密钥;以及其中所述密钥用于由所述目的地平台上的父虚拟可信平台模块实例对 于所述消息g代码的验证。
17. 才艮据权利要求16所述的计算机实现方法,其中生成用于所述消息验证代码的密钥以及在所述源平台上的父虛拟可信平台模块和所述目的地平台上的父虚拟可信平台模块之间交换所述密钥的所述步骤包括由所述源平台上的父虛拟可信平台模块实例生成mt密钥; 由所述源平台上的父虛拟可信平台模块实例用公钥加密所述验证密 钥;以及由所述目的地平台上的父虛拟可信平台模块实例使用与所述/i^相关 联的私钥来解密所述發汪密钥。
18. 根据权利要求l所迷的计算机实现方法,进一步包括 锁定所述虚拟可信平台模块实例,其中在所述虛拟可信平台模块实例已被锁定之后,所述虚拟可信平台模块实例的状态可以被导出,以及其中 一旦所述虚拟可信平台模块实例已被锁定,则所述虚拟可信平台模块实例 无法纟皮解锁。
19. 根据权利要求l所述的计算机实现方法,进一步包括 锁定所述目的地平台上的子虛拟可信平台才莫块实例,其中在所述目的地平台上的所述子虚拟可信平台模块实例已被锁定之后,所述虚拟可信平 台模块的状态被导入,以及其中除非所述虛拟可信平台模块的全部状态已 被导入,否则所述目的地平台上的所述子虚拟可信平台才莫块实例无法被解 锁。
20. —种包括计算机可用媒体的计算机程序产品,所述计算机可用媒 体包括用于迁移虛拟可信平台模块实例的计算机可用程序代码,所述计算 机程序产品包括用于通过源平台上的父虚拟可信平台模块实例导出虚拟可信平台模块 实例的状态的计算机可用程序代码;以及用于通过目的地平台上的父虛拟可信平台^t块实例导入所述虚拟可信 平台模块实例的所述状态的计算机可用程序代码。
21. 根据权利要求20所述的计算机程序产品,进一步包括用于删除所述源平台上的所述虚拟可信平台模块实例的状态的计算机 可用程序代码。
22. 根据权利要求20所述的计算^f呈序产品,其中用于导出虚拟可信 平台模块实例的状态的所迷计算机可用程序代码包括用于在多个步骤中导出所述虛拟可信平台模块实例的状态的计算机可用程序代码,并且其中用于导入虛拟可信平台模块实例的状态的所述计算机可用程序代码包括 用于在多个步骤中导入所述虚拟可信平台模块实例的状态的计算机可用程 序代码。
23. 根据权利要求20所述的计算机程序产品,进一步包括用于由所述源平台上的父虛拟可信平台模块实例将完整性数据添加到 所述虛拟可信平台模块实例的状态的计算机可用程序代码;以及用于由所述目的地平台上的父虛拟可信平台模块实例验证所述完整性 数据的计算机可用程序代码。
24. 根据权利要求23所述的计算机程序产品,进一步包括 其中所述完整性数据是迁移摘要;其中用于导出虚拟可信平台模块实例的状态的所述计算机可用程序代 码包括用于将所述虚拟可信平台模块实例的状态的每一段串行化为字节 流的计算机可用程序代码,其中所述源平台上的父虚拟可信平台模块实例 将每个串行化字节流构造为源摘要;用于积累所有的源摘要以构造最终的源摘要的计算机可用程序代码;用于导出所迷最终的源摘要的计算机可用程序代码;用于由所述目的地平台上的父虚拟可信平台模块实例接收所述串行化字节流的计算机可用程序代码,其中所述目的地平台上的父虛拟可信平台模块实例将每个串行化字节流构造为目的地摘要;用于积累所有的目的地摘要以构造最终的目的地摘要的计算机可用程序代码;以及用于比较所述最终的源摘要和所述最终的目的地摘要的计算机可用程 序代码。
25. 根据权利要求20所迷的计算机程序产品,进一步包括用于阻止所述虚拟可信平台模块实例的状态被多个父虚拟可信平台模块实例所导入的计算机可用程序代码。
26. 根据权利要求25所述的计算机程序产品,其中用于阻止所述虛拟可信平台模块实例的状态被多个父虛拟可信平台模块实例所导入的所述计算机可用程序代码包括用于生成唯一迁移标识符的计算机可用程序代码;用于将所述唯一迁移标识符添加到所述可信平台模块实例的状态的计 算机可用程序代码;以及用于由目的地可信平台模块实例验证所述迁移标识符的计算机可用程 序代码。
27. 根据权利要求20所述的计算机程序产品,进一步包括用于在所述虚拟可信平台模块实例的状态被导出之前,加密所述虚拟 可信平台模块实例的状态的计算机可用程序代码;以及用于在所述虛拟可信平台模块实例的状态被导入之后,解密所述虚拟 可信平台模块实例的状态的计算机可用程序代码。
28. 根据权利要求27所述的计算机程序产品,其中用于加密所述虛拟 可信平台^f莫块实例的状态的所述计算机可用程序代码和用于解密所述虛拟 可信平台模块实例的状态的所述计算机可用程序代码包括用于由所述源平台上的父虚拟可信平台才莫块实例生成随^l的对称密钥的计算机可用程序代码;用于使用公钥加密所述随机的对称密钥的计算机可用程序代码;用于将已加密的随机的对称密钥导出到所述目的地平台上的父虛拟可信平台模块实例的计算机可用程序代码,其中所述目的地平台上的父虚拟可信平台模块实例通过使用与所述公钥相关联的私钥来解密所述已加密的随机的对称密钥;用于由所迷父虛拟可信平台模块实例用所述随才几的对称密钥加密所述源平台上的所述虛拟可信平台模块实例的状态的计算机可用程序代码;以 及用于由所述父虛拟可信平台4莫块实例用所述随^L的对称密钥解密所述 目的地平台上的所迷虚拟可信平台模块实例的状态的计算机可用程序代 码。
29. 根据权利要求20所述的计算机程序产品,进一步包括用于将消息lHi代码附加到所述虚拟可信平台模块实例的状态的计算 机可用程序代码;以及用于验证所述消息验证代码的计算机可用程序代码。
30. 根据权利要求29所述的计算机可用程序代码,其中用于将消息验 证代码附加到所述虛拟可信平台模块实例的状态的所述计算机可用程序代 码以及用于lHi所述消息^代码的所述计算机可用程序代码包括用于由所述源平台上的父虛拟可信平台模块实例生成發汪密钥的计算 机可用程序代码;用于由所述源平台上的父虛拟可信平台模块实例用乂^加密所述m^密钥的计算机可用程序代码;用于由所述源平台上的父虚拟可信平台模块实例导出所述已加密的验 证密钥的计算机可用程序代码;用于由所述目的地平台上的父虚拟可信平台模块实例导入所述已加密 的验证密钥的计算机可用程序代码;用于由所述目的地平台上的父虛拟可信平台4莫块实例使用与所述7^ 相关联的私钥来解密所述IHi密钥的计算机可用程序代码;用于由所述父虚拟可信平台模块实例使用所述验汪密钥将消息验证代 码附加到所述源平台上的虚拟可信平台模块实例的状态的计算机可用程序 代码;以及用于由所述目的地平台上的父虛拟可信平台模块实例使用所述!Hit密 钥来發^所附加的消息mt代码的计算机可用程序代码。
31. 根据权利要求20所述的计算机程序产品,进一步包括用于锁定所述虚拟可信平台模块实例的计算机可用程序代码,其中在 所述虛拟可信平台模块实例已被锁定之后,所述虚拟可信平台模块实例的 状态被导出,以及其中一旦所迷虚拟可信平台模块实例已被锁定,则所述 虚拟可信平台模块实例无法被解锁。
32. 根据权利要求20所述的计算机程序产品,进一步包括用于锁定所述目的地平台上的子虚拟可信平台模块实例的计算机可用 程序代码,其中在所述目的地平台上的所述子虛拟可信平台模块实例已被 锁定之后,所述虚拟可信平台模块的状态被导入,以及其中除非所述虛拟 可信平台模块的全部状态已被导入,否则所述目的地平台上的所述子虛拟 可信平台模块实例无法被解锁。
33. —种用于迁移虛拟可信平台模块实例的系统,包括 存储设备,其中所述存储设备存储计算机可用程序代码;以及 处理器,其中所述处理器执行所述计算机可用程序代码以通过源平台上的父虚拟可信平台模块实例导出虚拟可信平台模块实例的状态;以及 通过目的地平台上的父虚拟可信平台模块实例导入所述虚拟可信平台模块 实例的所述状态。
34. —种用于迁移虚拟可信平台模块实例的方法,包括 4户机接收迁移虚拟可信平台模块实例的请求;以及将迁移应用传送到客户机,其中所述迁移应用将被安装到源平台和目 的地平台上,并且其中所述迁移应用向父虛拟可信平台模块发送命令用于 串行化所述虛拟可信平台模块实例的状态,以及使能已扩展的可信平台模 块命令集的使用,其中所述已扩展的可信平台模块命令集使能对于虚拟可信平台才莫块实例的完整状态的下载。
全文摘要
呈现了一种用于虚拟化的可信平台模块(430、432、434)的迁移方案。过程能够安全地将虚拟可信平台模块的实例从一个物理平台(402)迁移到另一个(404)。虚拟可信平台模块实例的状态从源虚拟可信平台模块(432)下载,并且所有其状态信息使用公共和对称密钥加密法的混合来加密(612)。已加密的状态被传送到目标物理平台(616)、被解密,并且虚拟可信平台模块实例的状态被重建(620)。
文档编号G06F7/04GK101405694SQ200780009921
公开日2009年4月8日 申请日期2007年3月19日 优先权日2006年3月21日
发明者K·A·高曼, R·赛勒, S·贝格尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1