CN101405694A - 迁移虚拟tpm实例以及保留该实例的唯一性和完整性的方法和装置 - Google Patents
迁移虚拟tpm实例以及保留该实例的唯一性和完整性的方法和装置 Download PDFInfo
- Publication number
- CN101405694A CN101405694A CN200780009921.2A CN200780009921A CN101405694A CN 101405694 A CN101405694 A CN 101405694A CN 200780009921 A CN200780009921 A CN 200780009921A CN 101405694 A CN101405694 A CN 101405694A
- Authority
- CN
- China
- Prior art keywords
- platform module
- module instance
- trusted platform
- virtual trusted
- father
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
呈现了一种用于虚拟化的可信平台模块(430、432、434)的迁移方案。过程能够安全地将虚拟可信平台模块的实例从一个物理平台(402)迁移到另一个(404)。虚拟可信平台模块实例的状态从源虚拟可信平台模块(432)下载,并且所有其状态信息使用公共和对称密钥加密法的混合来加密(612)。已加密的状态被传送到目标物理平台(616)、被解密,并且虚拟可信平台模块实例的状态被重建(620)。
Description
技术领域
本发明一般地涉及数据处理领域。具体地,本发明提供一种用于迁移虚拟可信平台模块实例的计算机实现方法、数据处理系统以及计算机程序产品。
背景技术
可信计算组(Trusted Computing Group)已定义了用于被称为可信平台模块(TPM)的硬件模块的功能和协议。这部分硬件向计算机系统提供安全性和加密功能,例如,非对称密钥生成、解密、加密、签名、将数据密封和绑定到TPM的状态、在TPM之间迁移密钥、随机数生成、以及散列功能。TPM还以平台配置寄存器、非易失性存储器区域、以及已存储的密钥的形式保存状态。
随着针对通用的现有硬件来说硬件虚拟化变得可用,对于在可虚拟化的系统上的可信计算的支持的兴趣正在不断增长。能够在一台机器上运行多个操作系统将不会留出被保留用于高端服务器的区域,而是将变得广泛可用。为了支持在虚拟化系统上的每个操作系统的可信计算,虚拟可信平台模块优选地成为可用,其使得每个这样的操作系统认为它正在与其自己的私有TPM进行交谈。
对操作系统的虚拟化支持通过在平台上运行的操作系统之下的附加软件层而被使能。鉴于操作系统通常直接在硬件上运行,在可虚拟化的系统中,被称为“管理程序(hypervisor)”或“虚拟机监视器”的层正在实现虚拟机,在所述虚拟机内可以运行操作系统。管理程序成为系统中的最低的软件层。
现代的虚拟化技术使能了虚拟机从一个平台到另一个平台的迁移。如果该虚拟机内的操作系统与虚拟TPM相关联,则期望该虚拟TPM能够将其状态迁移到新的平台,从而TPM功能在目标平台上可用。
发明内容
本发明的各种方面描述了一种用于安全地将虚拟TPM的实例从一个平台迁移到另一个平台的计算机实现方法和数据处理系统。在迁移过程期间,虚拟TPM实例的唯一性被保留。还确保了仅虚拟TPM实例的完整的及未修改的状态被迁移,从而对于忽略或改变虚拟TPM实例状态的尝试被检测到。被传送的所有状态信息由源平台上的虚拟TPM加密,并且由目的地平台上的虚拟TPM解密。
附图说明
在附带的权利要求中阐明了被认为是本发明新颖特性的特征。然而,通过当结合附图阅读时参考以下示意性实施例的详细描述,将最好地理解本发明本身以及其优选使用模式、另外的目的和优点,在附图中:
图1是其中可以实现本发明的示例性方面的数据处理系统网络的图形表示;
图2是其中可以实现本发明的示例性方面的数据处理设备的框图;
图3是示出了根据本发明优选实施例的、针对服务器或客户机系统的典型的软件体系结构的框图;
图4是描述了根据本发明的示例性实施例的、将虚拟TPM实例迁移到物理上独立的目的地平台的示例的框图;
图5是根据本发明的示例性实施例的、描述将虚拟TPM实例从源平台迁移到目的地平台的高级过程的信息流的图;
图6是根据本发明的示例性实施例的、用于迁移虚拟TPM实例的信息流的图;
图7是根据本发明的示例性实施例的、用于在多个步骤中导出虚拟TPM实例的状态信息的信息流的图;
图8是根据本发明的示例性实施例的、用于在单个步骤中导出虚拟TPM实例的状态信息的信息流的图;
图9是示出了根据本发明的示例性实施例的、用于处理TPM命令的操作的流程图;
图10是示出了根据本发明的示例性实施例的、用于处理创建虚拟TPM实例的命令的操作的流程图;
图11是示出了根据本发明的示例性实施例的、用于处理锁定虚拟TPM实例的命令的操作的流程图;
图12是示出了根据本发明的示例性实施例的、用于处理获得虚拟TPM实例密钥的命令的操作的流程图;
图13是示出了根据本发明的示例性实施例的、用于处理获得虚拟TPM实例数据的命令的操作的流程图;
图14是示出了根据本发明的示例性实施例的、用于处理删除虚拟TPM实例的命令的操作的流程图;
图15是示出了根据本发明的示例性实施例的、用于处理设置虚拟TPM实例密钥的命令的操作的流程图;
图16是示出了根据本发明的示例性实施例的、用于处理设置虚拟TPM实例数据的命令的操作的流程图;以及
图17是示出了根据本发明的示例性实施例的、用于处理解锁虚拟TPM实例的命令的操作的流程图。
具体实施方式
图1-2被提供作为其中可实现本发明实施例的数据处理环境的示例性图。应当理解,图1-2仅是示例性的,并且并非意在断言或暗示关于其中可以实现本发明的各方面或实施例的环境的任意限制。在不脱离本发明的精神和范围的情况下,可以做出对所描述的环境的许多修改。
现在参考附图,图1描述了其中可以实现本发明的各方面的数据处理系统网络的图形表示。网络数据处理系统100是其中可以实现本发明实施例的计算机网络。网络数据处理系统100包含网络102,该网络是用于提供网络数据处理系统100中连接到一起的各个设备和计算机之间的通信链路的媒介。所述网络102可以包括例如有线、无线通信链路或光缆的连接。
在所描述的示例中,服务器104和服务器106连同存储单元108一起连接到网络102。另外,客户机110、112和114也连接到网络102。这些客户机110、112和114可以是例如个人计算机或网络计算机。在所描述的示例中,服务器104向客户机110、112和114提供例如引导文件、操作系统镜像和应用的数据。客户机110、112和114在该示例中是服务器104的客户机。网络数据处理系统100可以包括另外的服务器、客户机和其它未示出的设备。
在所描述的示例中,网络数据处理系统100是具有网络102的因特网,其代表使用传输控制协议/因特网协议(TCP/IP)协议组来相互通信的网络和网关的全世界集合。在因特网的中心是主节点或主机之间的高速数据通信线路的骨干,其由用于路由数据和消息的数千个商业、政府、教育和其它计算机系统组成。当然,网络数据处理系统100可以还被实现为许多不同类型的网络,例如内联网、局域网(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设备可以包括例如以太网适配器、内插卡和用于笔记本电脑的PC卡、TPM 222。PCI使用卡总线控制器,而PCIe不使用。ROM 224可以是例如闪速二进制输入/输出系统(BIOS)。
硬盘驱动器226和CD-ROM驱动器230通过总线240连接到南桥和I/O控制器集线器204。硬盘驱动器226和CD-ROM驱动器230可以使用例如集成驱动器电子电路(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备236可以被连接到南桥和I/O控制器集线器204。
操作系统运行在处理单元206上,并且协调并提供对图2中的数据处理系统200中的各个部件的控制。作为客户机,操作系统可以是例如 XP(Microsoft和Windows是微软公司在美国、其它国家或这两者中的商标)的可购买到的操作系统。例如JavaTM编程系统的面向对象编程系统可以结合操作系统运行,并且提供从在数据处理系统200上执行的Java程序或应用对操作系统的调用(Java是SunMicrosystems公司在美国、其它国家或这两者中的商标)。
作为服务器,数据处理系统200可以是例如运行高级交互式执行体操作系统或LINUX操作系统的IBM eServerTM 计算机系统(eServer、pSeries和AIX是国际商业机器公司在美国、其它国家或这两者中的商标,而LINUX是Linus Torvalds美国、其它国家或这两者中的商标)。数据处理系统200可以是包括处理单元206中的多个处理器的对称多处理器(SMP)系统。可替换地,单一处理器系统可以被使用。
用于操作系统、面向对象编程系统和应用或程序的指令位于例如硬盘驱动器226的存储设备上,并且可以被装载到主存储器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的服务器104或客户机110中实现,用于实现本发明实施例的过程的计算机可用代码或指令可以位于所述操作系统中。所述操作系统典型地包括BIOS。通信软件304或者通过直接调用操作系统功能或者通过间接绕过操作系统以在网络上访问用于通信的硬件,经由物理通信链路提供通过外部端口到网络(诸如因特网)的通信。
应用编程接口(API)306允许系统用户、个人、或软件例程使用标准兼容接口来调用系统能力,而不用关心如何实现该特定功能。网络访问软件308表示可用于允许系统访问网络的任意软件。该访问可以是到网络的,所述网络诸如LAN、WAN或因特网。通过因特网,此软件可以包括程序,诸如Web浏览器。
应用软件310表示任意数量的软件应用,其被设计为通过通信端口对数据起作用,以提供用户寻求的期望功能。位于此级的应用可以包括用于处理可由因特网用户访问的数据、视频、图形、照片或文本所必需的应用。管理程序312是运行在平台上的软件层,所述平台允许操作系统的多个实例同时运行。
TPM是由可信计算组定义的安全规范。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实例从源平台被下载,并且其所有的状态信息被源平台上的父虚拟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实例将非对称密钥迁移到将成为将迁移虚拟TPM实例在目的地平台上的父亲的虚拟TPM实例(步骤502)。非对称密钥迁移是TPM规范的标准特征,并因此是由该标准实现的虚拟TPM实例的能力的一部分。非对称密钥迁移使得同一密钥对可用于两个父虚拟TPM实例。
虚拟TPM迁移进一步基于从源平台上的父虚拟TPM实例将对称密钥迁移到目的地平台上的父虚拟TPM实例。源平台上的迁移应用从源平台上的父虚拟TPM实例请求对称密钥(步骤504)。响应于所接收的请求,源平台上的父虚拟TPM实例用作为所迁移的非对称密钥的一部分的公钥来加密所生成的、内部保存的对称密钥,并且将已加密对称密钥返回源平台上的迁移应用(步骤506)。已加密对称密钥被从源平台上的迁移应用传送到目的地平台上的迁移应用(步骤508)。目的地平台上的迁移应用将已加密对称密钥提交给目的地平台上的父虚拟TPM实例(步骤510)。已加密对称密钥被用所迁移的非对称密钥的私钥解密,并保持在将接收所迁移的状态信息的虚拟TPM实例内部(步骤512)。指示出解密成功或失败的结果代码被目的地平台上的父虚拟TPM实例返回到目的地平台上的迁移应用(步骤514)。
此外,源平台上的将迁移虚拟TPM实例的状态被父虚拟TPM实例使用对称密钥加密(步骤516)。接着将迁移虚拟TPM实例的已加密状态信息被传送到目的地平台(步骤518),并在父虚拟TPM实例内部使用所迁移的对称密钥来解密(步骤520)。
图6是根据本发明的示例性实施例的、用于迁移虚拟TPM实例的信息流的图。所述信息流开始于目的地平台上的迁移应用将命令发送到目的地平台上的父虚拟TPM实例,以创建用于迁移虚拟TPM实例状态到其中的实例(步骤602)。目的地平台上的父虚拟TPM实例将唯一的迁移标识符返回目的地平台上的迁移应用(步骤604)。目的地平台上的迁移应用将唯一标识符传送到源平台上的迁移应用(步骤606)。接着源平台上的迁移应用与源平台上的父虚拟TPM实例通信,以首先锁定虚拟TPM实例(步骤608)并接着获得实例密钥(步骤610)。“锁定”虚拟TPM实例的意思是,虚拟TPM实例的状态被冻结,并且该虚拟TPM实例将不再接受正常的TPM命令。已锁定的虚拟TPM实例将仅接受与迁移虚拟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区域,源平台上的迁移应用发送命令GetInstanceData(NVRAM区域“N”),并且源平台上的父虚拟TPM实例通过将迁移的虚拟TPM实例的串行化NVRAM区域“N”来答复源平台上的迁移应用(步骤704)。当每个答复被源平台上的迁移应用所接收时,该特定段的数据(区域“N”)被删除。为了确定哪些拥有者收回(owner-evict)密钥可用,源平台上的迁移应用发送命令GetCapability(拥有者收回密钥列表),并且源平台上的父虚拟TPM实例通过将迁移的虚拟TPM实例的可用的拥有者收回密钥的列表来答复源平台上的迁移应用(步骤706)。拥有者收回密钥是当重新启动TPM时仍生存的密钥。接下来,源平台上的迁移应用通过发送命令GetInstanceData(拥有者收回密钥K)来下载所有的拥有者收回密钥,并且源平台上的父虚拟TPM实例通过将迁移的虚拟TPM实例的串行化的拥有者收回密钥来答复源平台上的迁移应用(步骤708)。接着源平台上的迁移应用下载将迁移的虚拟TPM实例的所有其它TPM状态信息。
图8是根据本发明的示例性实施例的、用于在单个步骤中导出虚拟TPM实例的状态信息的信息流的图。图8是在单个步骤中执行图5的步骤518的示意性示例。通过源平台上的迁移应用将命令GetInstanceData(所有)发送到源平台上的父虚拟TPM实例,源平台在一个步骤中下载将迁移的虚拟TPM实例的所有状态信息,并且源平台上的父虚拟TPM实例进行答复。
图9是示出了根据本发明的示例性实施例的、用于处理TPM命令(特别是与虚拟TPM管理相关的命令)的操作的流程图。所述操作开始于TPM等待接收命令(步骤902)。一旦命令被接收,TPM确定该命令是否是“创建TPM实例”命令(步骤904)。如果该命令是创建TPM实例命令(步骤904的是输出),则创建虚拟TPM实例,如图10中更详细解释的。如果该命令不是创建TPM实例命令(步骤904的否输出),则TPM确定该命令是否是“锁定TPM实例”命令(步骤906)。
如果该命令是锁定TPM实例命令(步骤906的是输出),则锁定虚拟TPM实例,如图11中更详细解释的。如果该命令不是锁定TPM实例命令(步骤908的否输出),则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。
图10是示出了根据本发明的示例性实施例的、用于处理创建TPM实例命令的操作的流程图。在本示例中,在目的地平台上创建空的虚拟TPM实例。所述操作开始于接收创建作为实例P的孩子的实例的命令,其中实例P是父实例(步骤1002)。接下来,所述操作验证命令的拥有者授权是否有效(步骤1004)。如果命令的拥有者授权无效(步骤1004的否输出),则适当的错误代码被发送作为结果值(步骤1016),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者授权有效(步骤1004的是输出),则所述操作确定实例P是否是正处理的虚拟TPM实例的子孙(步骤1006)。
如果实例P不是正处理的虚拟TPM实例的子孙(步骤1006的否输出),则适当的错误代码被发送作为结果值(步骤1016),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果实例P是正处理的虚拟TPM实例的子孙(步骤1006的是输出),则所述操作确定实例P是否是特权实例(步骤1008)。特权实例是具有创建其它的子实例的许可的实例。
如果实例P不是特权实例(步骤1008的否输出),则适当的错误代码被发送作为结果值(步骤1016),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果实例P是特权实例(步骤1008的是输出),则所述操作创建作为实例P的孩子的虚拟TPM实例(步骤1010)。虚拟TPM被分配唯一的实例句柄H以及唯一的迁移标识符(步骤1010)。将目的地锁用于实例H(步骤1012)。当锁已经被使用时,实例H现在将仅接受与虚拟TPM实例的迁移相关的命令,并由此直到另一虚拟TPM实例被迁移到它之前、或者它已被解锁之前将被保持为空。唯一的实例句柄H以及迁移标识符被返回调用者(步骤1014),并且所述操作返回图9的步骤902,以等待要处理的新命令。
图11是示出了根据本发明的示例性实施例的、用于处理锁定TPM实例命令的操作的流程图。所述操作开始于接收锁定与唯一的迁移标识符相关联的虚拟TPM实例(实例H)的命令(步骤1102)。接下来,所述操作验证命令的拥有者授权是否有效(步骤1104)。如果命令的拥有者授权无效(步骤1104的否输出),则适当的错误代码被发送作为结果值(步骤1120),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者授权有效(步骤1104的是输出),则所述操作确定实例H是否是正处理的虚拟TPM实例的子孙(步骤1106)。如果实例H不是正处理的虚拟TPM实例的子孙(步骤1106的否输出),则适当的错误代码被发送作为结果值(步骤1120),并且所述操作返回图9的步骤902,以等待要处理的新命令。
如果实例H是正处理的虚拟TPM实例的子孙(步骤1106的是输出),则所述操作确定是否使用了目的地锁(步骤1110)。如果使用了目的地锁(步骤1110的是输出),则适当的错误代码被发送作为结果值(步骤1120),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果未使用目的地锁(步骤1110的否输出),则所述操作将源锁用于实例P,其阻止实例P接受除了与迁移TPM有关的命令之外的任意TPM命令(步骤1112)。所述操作将迁移会话初始化为实例H的唯一迁移标识符(步骤1114)。所述操作接着初始化迁移摘要(步骤1116)。所述迁移摘要是完整性数据的示例,被用于检测所导出的虚拟TPM实例状态的改变。指示所述操作的成功或失败的结果代码被返回(步骤1118),并且所述操作返回图9的步骤902,以等待要处理的新命令。
图12是示出了根据本发明的示例性实施例的、用于处理获得TPM实例密钥命令的操作的流程图。所述操作开始于接收通过使用存储密钥S用于加密而获得虚拟TPM实例(实例H)的实例密钥的命令(步骤1202)。接下来,所述操作验证命令的拥有者授权是否有效(步骤1204)。如果命令的拥有者授权无效(步骤1204的否输出),则适当的错误代码被发送作为结果值(步骤1220),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者授权有效(步骤1204的是输出),则所述操作确定实例H是否是正处理的虚拟TPM实例的子孙(步骤1206)。如果实例H不是正处理的虚拟TPM实例的子孙(步骤1206的否输出),则适当的错误代码被发送作为结果值(步骤1220),并且所述操作返回图9的步骤902,以等待要处理的新命令。
如果实例H是正处理的虚拟TPM实例的子孙(步骤1206的是输出),则所述操作确定存储密钥S的授权是否有效(步骤1208)。如果存储密钥S的授权无效(步骤1208的否输出),则适当的错误代码被发送作为结果值(步骤1220),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果存储密钥S的授权有效(步骤1208的是输出),则在实例H上,所述操作创建随机对称密钥,并用随机对称密钥来构造对称密钥结构(步骤1210)。接着在实例H上,所述操作创建将被用作为实例H的HMAC密钥的随机数(步骤1212)。所述操作将随机对称密钥存储在实例H上(步骤1214)。所述操作接着将HMAC密钥存储在实例H上(步骤1216)。在实例H上,所述操作将对称密钥结构和HMAC密钥相并置,并且用密钥S加密所并置的项目(步骤1218)。所述操作将已加密项目返回调用者(步骤1222),并且所述操作返回图9的步骤902,以等待要处理的新命令。
图13是示出了根据本发明的示例性实施例的、用于处理获得TPM实例数据命令的操作的流程图。所述操作开始于接收从虚拟TPM实例(实例H)获得实例数据的命令(步骤1302)。接下来,所述操作验证命令的拥有者授权是否有效(步骤1304)。如果命令的拥有者授权无效(步骤1304的否输出),则适当的错误代码被发送作为结果值(步骤1326),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者授权有效(步骤1304的是输出),则所述操作确定实例H是否是正处理的虚拟TPM实例的子孙(步骤1306)。如果实例H不是正处理的虚拟TPM实例的子孙(步骤1306的否输出),则适当的错误代码被发送作为结果值(步骤1326),并且所述操作返回图9的步骤902,以等待要处理的新命令。
如果实例H是正处理的虚拟TPM实例的子孙(步骤1306的是输出),则所述操作确定实例密钥是否已被设置(步骤1308)。如果实例密钥尚未被设置(步骤1308的否输出),则适当的错误代码被发送作为结果值(步骤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)。如果命令的拥有者授权无效(步骤1404的否输出),则适当的错误代码被发送作为结果值(步骤1414),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者授权有效(步骤1404的是输出),则所述操作确定实例H是否是正处理的虚拟TPM实例的子孙(步骤1406)。如果实例H不是正处理的虚拟TPM实例的子孙(步骤1406的否输出),则适当的错误代码被发送作为结果值(步骤1414),并且所述操作返回图9的步骤902,以等待要处理的新命令。
如果实例H是正处理的虚拟TPM实例的子孙(步骤1406的是输出),则所述操作确定实例H是否具有任意子孙(步骤1408)。如果实例H具有子孙(步骤1408的是输出),则适当的错误代码被发送作为结果值(步骤1414),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果实例H没有子孙(步骤1408的否输出),则所述操作删除与实例H相关联的所有数据(步骤1410)。所述操作从实例H的直接父亲中删除对实例H的所有引用(步骤1412),并且所述操作返回图9的步骤902,以等待要处理的新命令。
图15是示出了根据本发明的示例性实施例的、用于处理设置TPM实例密钥命令的操作的流程图。所述操作开始于接收通过使用存储密钥S用于加密而设置虚拟TPM实例(实例H)的实例密钥的命令(步骤1502)。接下来,所述操作验证命令的拥有者授权是否有效(步骤1504)。如果命令的拥有者授权无效(步骤1504的否输出),则适当的错误代码被发送作为结果值(步骤1518),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者授权有效(步骤1504的是输出),则所述操作确定实例H是否是正处理的虚拟TPM实例的子孙(步骤1506)。如果实例H不是正处理的虚拟TPM实例的子孙(步骤1506的否输出),则适当的错误代码被发送作为结果值(步骤1518),并且所述操作返回图9的步骤902,以等待要处理的新命令。
如果实例H是正处理的虚拟TPM实例的子孙(步骤1506的是输出),则所述操作确定存储密钥S的授权是否有效(步骤1508)。如果存储密钥S的授权无效(步骤1508的否输出),则适当的错误代码被发送作为结果值(步骤1518),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果存储密钥S的授权有效(步骤1508的是输出),则所述操作使用存储密钥S的私钥来解密给定的已加密项目,并且提取对称密钥结构和HMAC密钥(步骤1510)。接着所述操作确定对称密钥结构是否有效(步骤1512)。如果对称密钥结构无效(步骤1512的否输出),则适当的错误代码被发送作为结果值(步骤1518),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果对称密钥结构有效(步骤1512的是输出),则所述操作存储对称密钥作为实例H的状态的一部分(步骤1514)。接着所述操作存储HMAC密钥作为实例H的状态的一部分(步骤1516),并且所述操作返回图9的步骤902,以等待要处理的新命令。
图16是示出了根据本发明的示例性实施例的、用于处理设置TPM实例数据命令的操作的流程图。所述操作开始于接收设置虚拟TPM实例(实例H)的实例数据的命令(步骤1602)。接下来,所述操作验证命令的拥有者授权是否有效(步骤1604)。如果命令的拥有者授权无效(步骤1604的否输出),则适当的错误代码被发送作为结果值(步骤1622),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者授权有效(步骤1604的是输出),则所述操作确定实例H是否是正处理的虚拟TPM实例的子孙(步骤1606)。如果实例H不是正处理的虚拟TPM实例的子孙(步骤1606的否输出),则适当的错误代码被发送作为结果值(步骤1622),并且所述操作返回图9的步骤902,以等待要处理的新命令。
如果实例H是正处理的虚拟TPM实例的子孙(步骤1606的是输出),则所述操作确定实例密钥是否已被设置(步骤1608)。如果实例密钥尚未被设置(步骤1608的否输出),则适当的错误代码被发送作为结果值(步骤1622),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果实例密钥已被设置(步骤1608的是输出),则所述操作确定目的地锁是否已被使用(步骤1610)。如果目的地锁尚未被使用(步骤1610的否输出),则适当的错误代码被发送作为结果值(步骤1622),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果目的地锁已被使用(步骤1610的是输出),则所述操作使用实例密钥解密数据(步骤1612)。接着所述操作确定在已解密数据中发现的HMAC是否正确(步骤1614)。如果在已解密数据中发现的HMAC不正确(步骤1614的否输出),则适当的错误代码被发送作为结果值(步骤1622),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果在已解密数据中发现的HMAC正确(步骤1614的是输出),则所述操作确定在已解密数据中发现的唯一迁移标识符是否正确(步骤1616)。如果在已解密数据中发现的唯一迁移标识符不正确(步骤1616的否输出),则适当的错误代码被发送作为结果值(步骤1622),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果在已解密数据中发现的唯一迁移标识符正确(步骤1616的是输出),则所述操作通过去串行化已解密的字节流来重新创建实例H的状态(步骤1618)。所述操作用已解密数据来扩展实例H的迁移摘要(步骤1620),并且所述操作返回图9的步骤902,以等待要处理的新命令。
图17是示出了根据本发明的示例性实施例的、用于处理解锁TPM实例命令的操作的流程图。所述操作开始于接收解锁与迁移摘要相关联的虚拟TPM实例(实例H)的命令(步骤1702)。接下来,所述操作验证命令的拥有者授权是否有效(步骤1704)。如果命令的拥有者授权无效(步骤1704的否输出),则适当的错误代码被发送作为结果值(步骤1716),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果命令的拥有者授权有效(步骤1704的是输出),则所述操作确定实例H是否是正处理的虚拟TPM实例的子孙(步骤1706)。如果实例H不是正处理的虚拟TPM实例的子孙(步骤1706的否输出),则适当的错误代码被发送作为结果值(步骤1716),并且所述操作返回图9的步骤902,以等待要处理的新命令。
如果实例H是正处理的虚拟TPM实例的子孙(步骤1706的是输出),则所述操作确定所传递的迁移摘要和内部迁移摘要是否匹配(步骤1708)。如果所传递的迁移摘要和内部迁移摘要不匹配(步骤1708的否输出),则适当的错误代码被发送作为结果值(步骤1716),并且所述操作返回图9的步骤902,以等待要处理的新命令。如果所传递的迁移摘要和内部迁移摘要匹配(步骤1708的是输出),则所述操作清除具有实例H的唯一迁移标识符的迁移会话(步骤1710)。所述操作解除(disengage)实例H的目的地锁(步骤1712)。所述操作解除实例H的源锁(步骤1714),并且所述操作返回图9的步骤902,以等待要处理的新命令。
由此,本发明提供了一种用于迁移可信平台模块实例的计算机实现方法、数据处理系统以及计算机程序产品。所述方法还确保了所迁移的可信平台模块实例的唯一性和完整性。
此外,本发明可采用完全硬件实施例、完全软件实施例、或者结合软件和硬件单元的实施例的形式。在优选实施例中,本发明用软件实现,所述软件包括但不限于固件、驻留软件、微代码等。
此外,本发明可采用可从计算机可用或计算机可读媒体访问的计算机程序产品的形式,所述媒体提供由计算机或任何指令执行系统使用、或与计算机或任何指令执行系统相结合使用的程序代码。出于本说明书的目的,计算机可用或计算机可读媒体可以是可包含、存储、传送、传播或传输程序的任何有形装置,所述程序由指令执行系统、装置或设备使用或与指令执行系统、装置或设备相结合使用。
所述媒体可以是:电子的、磁的、光的、电磁的、红外的或半导体系统(或装置或设备)、或传播媒体。计算机可读媒体的示例包括:半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘、和光盘。光盘的当前示例包括:只读存储器致密盘(CD-ROM)、读/写致密盘(CD-R/W)以及数字视频盘(DVD)。
适于存储和/或执行程序代码的数据处理系统将包括:直接地或通过系统总线间接地耦合于存储器单元的至少一个处理器。存储器单元可以包括在程序代码的实际执行期间使用的局部存储器、海量存储装置、以及高速缓冲存储器,该高速缓冲存储器提供了至少某种程序代码的临时存储以便减少在执行期间优选地应该从海量存储装置检索代码的次数。
输入/输出或I/O设备(包括但不限于:键盘、显示器、定点设备等)可以直接地或通过中间I/O控制器耦合于系统。
网络适配器也可以被耦合于系统,以使数据处理系统能通过中间的专用或公用网络耦合于其它数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡仅仅是当前可用类型的网络适配器中的少数几种。
已经出于说明和描述的目的呈现了本发明的描述,并且其不是意在穷尽性的或者把本发明限制为所公开的精确形式。对本领域普通技术人员来说,许多修改和变型是可能的。选择并描述了实施例是为了最好地解释本发明的原理和实际的应用,以及为了使本领域的其它普通技术人员能够理解针对各种实施例的本发明,所述实施例具有适合于预期的具体使用的各种修改。
Claims (34)
1.一种用于迁移虚拟可信平台模块实例的计算机实现方法,所述计算机实现方法包括:
通过源平台上的父虚拟可信平台模块实例导出虚拟可信平台模块实例的状态;以及
通过目的地平台上的父虚拟可信平台模块实例导入所述虚拟可信平台模块实例的所述状态。
2.根据权利要求1所述的计算机实现方法,其中所述源平台和目的地平台在不同的物理平台上。
3.根据权利要求1所述的计算机实现方法,进一步包括:
删除所述源平台上的所述虚拟可信平台模块实例的状态。
4.根据权利要求1所述的计算机实现方法,其中通过使用基于网络传输协议的传送协议,将所述虚拟可信平台模块实例的状态从所述源平台流动到所述目的地平台。
5.根据权利要求1所述的计算机实现方法,其中所述虚拟可信平台模块实例的状态在多个步骤中被导出,并且其中所述虚拟可信平台模块实例的状态在多个步骤中被导入。
6.根据权利要求1所述的计算机实现方法,进一步包括:
由所述源平台上的父虚拟可信平台模块实例将完整性数据添加到所述虚拟可信平台模块实例的状态;以及
由所述目的地平台上的父虚拟可信平台模块实例验证所述完整性数据。
7.根据权利要求6所述的计算机实现方法,其中所述完整性数据是迁移摘要。
8.根据权利要求7所述的计算机实现方法,进一步包括:
其中导出所述虚拟可信平台模块实例的状态包括:将所述虚拟可信平台模块实例的状态的每一段串行化为字节流,其中所述源平台上的父虚拟可信平台模块实例将每个串行化字节流构造为源摘要;
积累所有的源摘要以构造最终的源摘要;
导出所述最终的源摘要;
由所述目的地平台上的父虚拟可信平台模块实例接收所述串行化字节流,其中所述目的地平台上的父虚拟可信平台模块实例将每个串行化字节流构造为目的地摘要;
积累所有的目的地摘要以构造最终的目的地摘要;以及
比较所述最终的源摘要和所述最终的目的地摘要。
9.根据权利要求1所述的计算机实现方法,进一步包括:
阻止所述虚拟可信平台模块实例的状态被多个父虚拟可信平台模块实例所导入。
10.根据权利要求9所述的计算机实现方法,其中阻止所述虚拟可信平台模块实例的状态被多个父虚拟可信平台模块实例所导入的所述步骤包括:
生成唯一迁移标识符;
将所述唯一迁移标识符添加到所述可信平台模块实例的状态;以及
由目的地可信平台模块实例验证所述迁移标识符。
11.根据权利要求10所述的计算机实现方法,其中所述目的地平台上的父虚拟可信平台模块实例生成所述唯一迁移标识符,并且所述唯一迁移标识符被发送到所述源平台上的父虚拟可信平台模块实例,以及其中所述源平台上的父虚拟可信平台模块实例将所述唯一迁移标识符添加到所述虚拟可信平台模块实例的状态。
12.根据权利要求1所述的计算机实现方法,进一步包括:
在所述虚拟可信平台模块实例的状态被导出之前,加密所述虚拟可信平台模块实例的状态;以及
在所述虚拟可信平台模块实例的状态被导入之后,解密所述虚拟可信平台模块实例的状态。
13.根据权利要求12所述的计算机实现方法,其中导出和导入所述虚拟可信平台模块实例的状态的所述步骤包括:
在所述源平台上的父虚拟可信平台模块实例和所述目的地平台上的父虚拟可信平台模块实例之间交换对称密钥;
用所述对称密钥加密所述源平台上的所述虚拟可信平台模块实例的状态;以及
用所述对称密钥解密所述目的地平台上的所述虚拟可信平台模块实例的状态。
14.根据权利要求13所述的计算机实现方法,其中在所述源平台上的父虚拟可信平台模块实例和所述目的地平台上的父虚拟可信平台模块实例之间交换对称密钥的所述步骤包括:
由所述源平台上的父虚拟可信平台模块实例生成随机的对称密钥;
使用公钥加密所述随机的对称密钥;以及
将已加密的随机的对称密钥导出到所述目的地平台上的父虚拟可信平台模块实例,其中所述目的地平台上的父虚拟可信平台模块实例通过使用与所述公钥相关联的私钥来解密已加密的随机的对称密钥。
15.根据权利要求1所述的计算机实现方法,进一步包括:
将消息验证代码附加到所述虚拟可信平台模块实例的状态;以及
验证所述消息验证代码。
16.根据权利要求15所述的计算机实现方法,进一步包括:
由所述源平台上的父虚拟可信平台模块实例生成用于所述消息验证代码的密钥;
在所述源平台上的父虚拟可信平台模块和所述目的地平台上的父虚拟可信平台模块之间交换所述密钥;以及
其中所述密钥用于由所述目的地平台上的父虚拟可信平台模块实例对于所述消息验证代码的验证。
17.根据权利要求16所述的计算机实现方法,其中生成用于所述消息验证代码的密钥以及在所述源平台上的父虚拟可信平台模块和所述目的地平台上的父虚拟可信平台模块之间交换所述密钥的所述步骤包括:
由所述源平台上的父虚拟可信平台模块实例生成验证密钥;
由所述源平台上的父虚拟可信平台模块实例用公钥加密所述验证密钥;以及
由所述目的地平台上的父虚拟可信平台模块实例使用与所述公钥相关联的私钥来解密所述验证密钥。
18.根据权利要求1所述的计算机实现方法,进一步包括:
锁定所述虚拟可信平台模块实例,其中在所述虚拟可信平台模块实例已被锁定之后,所述虚拟可信平台模块实例的状态可以被导出,以及其中一旦所述虚拟可信平台模块实例已被锁定,则所述虚拟可信平台模块实例无法被解锁。
19.根据权利要求1所述的计算机实现方法,进一步包括:
锁定所述目的地平台上的子虚拟可信平台模块实例,其中在所述目的地平台上的所述子虚拟可信平台模块实例已被锁定之后,所述虚拟可信平台模块的状态被导入,以及其中除非所述虚拟可信平台模块的全部状态已被导入,否则所述目的地平台上的所述子虚拟可信平台模块实例无法被解锁。
20.一种包括计算机可用媒体的计算机程序产品,所述计算机可用媒体包括用于迁移虚拟可信平台模块实例的计算机可用程序代码,所述计算机程序产品包括:
用于通过源平台上的父虚拟可信平台模块实例导出虚拟可信平台模块实例的状态的计算机可用程序代码;以及
用于通过目的地平台上的父虚拟可信平台模块实例导入所述虚拟可信平台模块实例的所述状态的计算机可用程序代码。
21.根据权利要求20所述的计算机程序产品,进一步包括:
用于删除所述源平台上的所述虚拟可信平台模块实例的状态的计算机可用程序代码。
22.根据权利要求20所述的计算机程序产品,其中用于导出虚拟可信平台模块实例的状态的所述计算机可用程序代码包括:用于在多个步骤中导出所述虚拟可信平台模块实例的状态的计算机可用程序代码,并且其中用于导入虚拟可信平台模块实例的状态的所述计算机可用程序代码包括:用于在多个步骤中导入所述虚拟可信平台模块实例的状态的计算机可用程序代码。
23.根据权利要求20所述的计算机程序产品,进一步包括:
用于由所述源平台上的父虚拟可信平台模块实例将完整性数据添加到所述虚拟可信平台模块实例的状态的计算机可用程序代码;以及
用于由所述目的地平台上的父虚拟可信平台模块实例验证所述完整性数据的计算机可用程序代码。
24.根据权利要求23所述的计算机程序产品,进一步包括:
其中所述完整性数据是迁移摘要;
其中用于导出虚拟可信平台模块实例的状态的所述计算机可用程序代码包括:用于将所述虚拟可信平台模块实例的状态的每一段串行化为字节流的计算机可用程序代码,其中所述源平台上的父虚拟可信平台模块实例将每个串行化字节流构造为源摘要;
用于积累所有的源摘要以构造最终的源摘要的计算机可用程序代码;
用于导出所述最终的源摘要的计算机可用程序代码;
用于由所述目的地平台上的父虚拟可信平台模块实例接收所述串行化字节流的计算机可用程序代码,其中所述目的地平台上的父虚拟可信平台模块实例将每个串行化字节流构造为目的地摘要;
用于积累所有的目的地摘要以构造最终的目的地摘要的计算机可用程序代码;以及
用于比较所述最终的源摘要和所述最终的目的地摘要的计算机可用程序代码。
25.根据权利要求20所述的计算机程序产品,进一步包括:
用于阻止所述虚拟可信平台模块实例的状态被多个父虚拟可信平台模块实例所导入的计算机可用程序代码。
26.根据权利要求25所述的计算机程序产品,其中用于阻止所述虚拟可信平台模块实例的状态被多个父虚拟可信平台模块实例所导入的所述计算机可用程序代码包括:
用于生成唯一迁移标识符的计算机可用程序代码;
用于将所述唯一迁移标识符添加到所述可信平台模块实例的状态的计算机可用程序代码;以及
用于由目的地可信平台模块实例验证所述迁移标识符的计算机可用程序代码。
27.根据权利要求20所述的计算机程序产品,进一步包括:
用于在所述虚拟可信平台模块实例的状态被导出之前,加密所述虚拟可信平台模块实例的状态的计算机可用程序代码;以及
用于在所述虚拟可信平台模块实例的状态被导入之后,解密所述虚拟可信平台模块实例的状态的计算机可用程序代码。
28.根据权利要求27所述的计算机程序产品,其中用于加密所述虚拟可信平台模块实例的状态的所述计算机可用程序代码和用于解密所述虚拟可信平台模块实例的状态的所述计算机可用程序代码包括:
用于由所述源平台上的父虚拟可信平台模块实例生成随机的对称密钥的计算机可用程序代码;
用于使用公钥加密所述随机的对称密钥的计算机可用程序代码;
用于将已加密的随机的对称密钥导出到所述目的地平台上的父虚拟可信平台模块实例的计算机可用程序代码,其中所述目的地平台上的父虚拟可信平台模块实例通过使用与所述公钥相关联的私钥来解密所述已加密的随机的对称密钥;
用于由所述父虚拟可信平台模块实例用所述随机的对称密钥加密所述源平台上的所述虚拟可信平台模块实例的状态的计算机可用程序代码;以及
用于由所述父虚拟可信平台模块实例用所述随机的对称密钥解密所述目的地平台上的所述虚拟可信平台模块实例的状态的计算机可用程序代码。
29.根据权利要求20所述的计算机程序产品,进一步包括:
用于将消息验证代码附加到所述虚拟可信平台模块实例的状态的计算机可用程序代码;以及
用于验证所述消息验证代码的计算机可用程序代码。
30.根据权利要求29所述的计算机可用程序代码,其中用于将消息验证代码附加到所述虚拟可信平台模块实例的状态的所述计算机可用程序代码以及用于验证所述消息验证代码的所述计算机可用程序代码包括:
用于由所述源平台上的父虚拟可信平台模块实例生成验证密钥的计算机可用程序代码;
用于由所述源平台上的父虚拟可信平台模块实例用公钥加密所述验证密钥的计算机可用程序代码;
用于由所述源平台上的父虚拟可信平台模块实例导出所述已加密的验证密钥的计算机可用程序代码;
用于由所述目的地平台上的父虚拟可信平台模块实例导入所述已加密的验证密钥的计算机可用程序代码;
用于由所述目的地平台上的父虚拟可信平台模块实例使用与所述公钥相关联的私钥来解密所述验证密钥的计算机可用程序代码;
用于由所述父虚拟可信平台模块实例使用所述验证密钥将消息验证代码附加到所述源平台上的虚拟可信平台模块实例的状态的计算机可用程序代码;以及
用于由所述目的地平台上的父虚拟可信平台模块实例使用所述验证密钥来验证所附加的消息验证代码的计算机可用程序代码。
31.根据权利要求20所述的计算机程序产品,进一步包括:
用于锁定所述虚拟可信平台模块实例的计算机可用程序代码,其中在所述虚拟可信平台模块实例已被锁定之后,所述虚拟可信平台模块实例的状态被导出,以及其中一旦所述虚拟可信平台模块实例已被锁定,则所述虚拟可信平台模块实例无法被解锁。
32.根据权利要求20所述的计算机程序产品,进一步包括:
用于锁定所述目的地平台上的子虚拟可信平台模块实例的计算机可用程序代码,其中在所述目的地平台上的所述子虚拟可信平台模块实例已被锁定之后,所述虚拟可信平台模块的状态被导入,以及其中除非所述虚拟可信平台模块的全部状态已被导入,否则所述目的地平台上的所述子虚拟可信平台模块实例无法被解锁。
33.一种用于迁移虚拟可信平台模块实例的系统,包括:
存储设备,其中所述存储设备存储计算机可用程序代码;以及
处理器,其中所述处理器执行所述计算机可用程序代码以:通过源平台上的父虚拟可信平台模块实例导出虚拟可信平台模块实例的状态;以及通过目的地平台上的父虚拟可信平台模块实例导入所述虚拟可信平台模块实例的所述状态。
34.一种用于迁移虚拟可信平台模块实例的方法,包括:
从客户机接收迁移虚拟可信平台模块实例的请求;以及
将迁移应用传送到客户机,其中所述迁移应用将被安装到源平台和目的地平台上,并且其中所述迁移应用向父虚拟可信平台模块发送命令用于串行化所述虚拟可信平台模块实例的状态,以及使能已扩展的可信平台模块命令集的使用,其中所述已扩展的可信平台模块命令集使能对于虚拟可信平台模块实例的完整状态的下载。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/385,965 US7444670B2 (en) | 2006-03-21 | 2006-03-21 | Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance |
US11/385,965 | 2006-03-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101405694A true CN101405694A (zh) | 2009-04-08 |
Family
ID=38523021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780009921.2A Pending CN101405694A (zh) | 2006-03-21 | 2007-03-19 | 迁移虚拟tpm实例以及保留该实例的唯一性和完整性的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (3) | US7444670B2 (zh) |
EP (1) | EP2008174A4 (zh) |
JP (1) | JP2009530743A (zh) |
CN (1) | CN101405694A (zh) |
WO (1) | WO2007109212A2 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819545A (zh) * | 2010-04-09 | 2010-09-01 | 济南银泉科技有限公司 | 一种利用虚拟化技术实现平台迁移的方法 |
CN101984631A (zh) * | 2010-11-05 | 2011-03-09 | 北京世纪互联工程技术服务有限公司 | 一种Xen虚拟机安全动态迁移方法 |
CN103503364A (zh) * | 2011-04-01 | 2014-01-08 | 英特尔公司 | 跨平台的应用程序使用连续性 |
CN104113574A (zh) * | 2013-04-19 | 2014-10-22 | 中国科学院计算技术研究所 | 一种广域网可信虚拟机的安全迁移方法及系统 |
CN104969180A (zh) * | 2013-03-05 | 2015-10-07 | 英特尔公司 | 与来自主机中央处理单元和操作系统的干扰和控制隔离的用户授权和存在检测 |
CN105493067A (zh) * | 2013-09-26 | 2016-04-13 | 英特尔Ip公司 | 应用上下文转移框架和协议 |
CN107392030A (zh) * | 2017-07-28 | 2017-11-24 | 浪潮(北京)电子信息产业有限公司 | 一种检测虚拟机启动安全的方法及装置 |
CN109062662A (zh) * | 2018-07-12 | 2018-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟可信根迁移方法、系统及电子设备和存储介质 |
CN109308417A (zh) * | 2017-07-27 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 基于可信计算的解锁方法及装置 |
CN109783474A (zh) * | 2019-01-08 | 2019-05-21 | 北京工业大学 | 虚拟可信根实例及其自身状态数据的安全迁移方法 |
CN113032818A (zh) * | 2021-05-27 | 2021-06-25 | 北京国电通网络技术有限公司 | 任务加密方法、装置、电子设备和计算机可读介质 |
CN114938275A (zh) * | 2022-07-21 | 2022-08-23 | 国开启科量子技术(北京)有限公司 | 使用量子密钥迁移虚拟机的方法、装置、介质和设备 |
Families Citing this family (74)
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 |
US7805375B2 (en) * | 2005-08-22 | 2010-09-28 | Microsoft Corporation | Digital license migration from first platform to second platform |
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 |
US8108668B2 (en) * | 2006-06-26 | 2012-01-31 | Intel Corporation | Associating a multi-context trusted platform module with distributed platforms |
US8290164B2 (en) * | 2006-07-31 | 2012-10-16 | Lenovo (Singapore) Pte. Ltd. | Automatic recovery of TPM keys |
US8522018B2 (en) * | 2006-08-18 | 2013-08-27 | Fujitsu Limited | Method and system for implementing a mobile trusted platform module |
US8015408B2 (en) * | 2006-09-14 | 2011-09-06 | Interdigital Technology Corporation | Trust evaluation for a mobile software agent on a trusted computing platform |
US7925890B2 (en) * | 2006-10-23 | 2011-04-12 | Harris Corporation | Network centered recovery process for cryptographic processing modules |
US8385551B2 (en) * | 2006-12-22 | 2013-02-26 | Telefonaktiebolaget L M Ericsson (Publ) | Highly available cryptographic key storage (HACKS) |
US9112681B2 (en) * | 2007-06-22 | 2015-08-18 | Fujitsu Limited | Method and apparatus for secure information transfer to support migration |
US8032741B2 (en) * | 2007-08-22 | 2011-10-04 | Intel Corporation | Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM) |
US8064605B2 (en) | 2007-09-27 | 2011-11-22 | Intel Corporation | Methods and apparatus for providing upgradeable key bindings for trusted platform modules |
US8249257B2 (en) | 2007-09-28 | 2012-08-21 | Intel Corporation | Virtual TPM keys rooted in a hardware TPM |
US8208637B2 (en) * | 2007-12-17 | 2012-06-26 | Microsoft Corporation | Migration of computer secrets |
US7392403B1 (en) | 2007-12-19 | 2008-06-24 | International Business Machines Corporation | Systems, methods and computer program products for high availability enhancements of virtual security module servers |
US9047468B2 (en) * | 2007-12-28 | 2015-06-02 | Intel Corporation | Migration of full-disk encrypted virtualized storage between blade servers |
US8631217B2 (en) * | 2008-02-26 | 2014-01-14 | International Business Machines Corporation | Apparatus, system, and method for virtual machine backup |
US8364983B2 (en) * | 2008-05-08 | 2013-01-29 | Microsoft Corporation | Corralling virtual machines with encryption keys |
US8321926B1 (en) * | 2008-12-02 | 2012-11-27 | Lockheed Martin Corporation | System and method of protecting a system that includes unprotected computer devices |
US8738932B2 (en) * | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
US8359386B2 (en) * | 2009-04-16 | 2013-01-22 | Dell Products, Lp | System and method of migrating virtualized environments |
US8732451B2 (en) * | 2009-05-20 | 2014-05-20 | Microsoft Corporation | Portable secure computing network |
US8250379B2 (en) * | 2009-10-13 | 2012-08-21 | Microsoft Corporation | Secure storage of temporary secrets |
US8621202B2 (en) * | 2010-02-11 | 2013-12-31 | Cisco Technology, Inc. | Externally managed security and validation processing device |
US20110202765A1 (en) * | 2010-02-17 | 2011-08-18 | Microsoft Corporation | Securely move virtual machines between host servers |
CA2694500C (en) * | 2010-02-24 | 2015-07-07 | Diversinet Corp. | Method and system for secure communication |
US8375437B2 (en) * | 2010-03-30 | 2013-02-12 | Microsoft Corporation | Hardware supported virtualized cryptographic service |
JP5567414B2 (ja) | 2010-06-30 | 2014-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法 |
US8694777B2 (en) * | 2010-08-13 | 2014-04-08 | International Business Machines Corporation | Securely identifying host systems |
US8352749B2 (en) | 2010-12-17 | 2013-01-08 | Google Inc. | Local trusted services manager for a contactless smart card |
US9691055B2 (en) | 2010-12-17 | 2017-06-27 | Google Inc. | Digital wallet |
AU2013222020B2 (en) * | 2010-12-17 | 2013-10-31 | Google Llc | Local trusted services manager for a contactless smart card |
US8807440B1 (en) | 2010-12-17 | 2014-08-19 | Google Inc. | Routing secure element payment requests to an alternate application |
US8335921B2 (en) | 2010-12-17 | 2012-12-18 | Google, Inc. | Writing application data to a secure element |
WO2012093924A1 (en) * | 2011-01-07 | 2012-07-12 | Mimos Berhad | System and method to provide trusted platform module (tpm) functionalities on a remote server for multiple users |
US9176766B2 (en) | 2011-07-06 | 2015-11-03 | Microsoft Technology Licensing, Llc | Configurable planned virtual machines |
JP2013058006A (ja) * | 2011-09-07 | 2013-03-28 | Fuji Xerox Co Ltd | 情報処理装置及び情報処理プログラム |
US8255687B1 (en) | 2011-09-15 | 2012-08-28 | Google Inc. | Enabling users to select between secure service providers using a key escrow service |
US8171525B1 (en) | 2011-09-15 | 2012-05-01 | Google Inc. | Enabling users to select between secure service providers using a central trusted service manager |
US8313036B1 (en) | 2011-09-16 | 2012-11-20 | Google Inc. | Secure application directory |
EP2807599B1 (en) * | 2012-01-23 | 2020-03-25 | Citrix Systems, Inc. | Storage encryption |
US8385553B1 (en) | 2012-02-28 | 2013-02-26 | Google Inc. | Portable secure element |
US8429409B1 (en) | 2012-04-06 | 2013-04-23 | Google Inc. | Secure reset of personal and service provider information on mobile devices |
US9317689B2 (en) * | 2012-06-15 | 2016-04-19 | Visa International Service Association | Method and apparatus for secure application execution |
US8954965B2 (en) * | 2012-08-03 | 2015-02-10 | Microsoft Corporation | Trusted execution environment virtual machine cloning |
US9507586B2 (en) * | 2012-10-05 | 2016-11-29 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Virtual machine based controller and upgrade mechanism |
EP3014507B1 (en) | 2013-06-27 | 2018-04-04 | Intel Corporation | Continuous multi-factor authentication |
US20150113285A1 (en) * | 2013-10-18 | 2015-04-23 | International Business Machines Corporation | Multiple application platform owner keys in a secure object computer system |
US10223538B1 (en) * | 2013-11-12 | 2019-03-05 | Amazon Technologies, Inc. | Preventing persistent storage of cryptographic information |
US9231923B1 (en) * | 2013-11-12 | 2016-01-05 | Amazon Technologies, Inc. | Secure data destruction in a distributed environment using key protection mechanisms |
US9519498B2 (en) | 2013-12-24 | 2016-12-13 | Microsoft Technology Licensing, Llc | Virtual machine assurances |
US10389709B2 (en) * | 2014-02-24 | 2019-08-20 | Amazon Technologies, Inc. | Securing client-specified credentials at cryptographically attested resources |
US9652631B2 (en) | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9407636B2 (en) | 2014-05-19 | 2016-08-02 | Intel Corporation | Method and apparatus for securely saving and restoring the state of a computing platform |
US9864874B1 (en) * | 2014-05-21 | 2018-01-09 | Amazon Technologies, Inc. | Management of encrypted data storage |
CN103995732B (zh) | 2014-05-26 | 2017-02-22 | 华为技术有限公司 | 一种虚拟可信平台模块功能实现方法和管理设备 |
US10229272B2 (en) | 2014-10-13 | 2019-03-12 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
US9584317B2 (en) | 2014-10-13 | 2017-02-28 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
GB2531770A (en) * | 2014-10-30 | 2016-05-04 | Ibm | Confidential Extracting System Internal Data |
US9519787B2 (en) | 2014-11-14 | 2016-12-13 | Microsoft Technology Licensing, Llc | Secure creation of encrypted virtual machines from encrypted templates |
IN2015CH01317A (zh) * | 2015-03-18 | 2015-04-10 | Wipro Ltd | |
US9509500B2 (en) | 2015-03-31 | 2016-11-29 | Here Global B.V. | Method and apparatus for migrating encrypted data |
US10846115B1 (en) * | 2015-08-10 | 2020-11-24 | Amazon Technologies, Inc. | Techniques for managing virtual instance data in multitenant environments |
US10073964B2 (en) | 2015-09-25 | 2018-09-11 | Intel Corporation | Secure authentication protocol systems and methods |
US10318723B1 (en) * | 2016-11-29 | 2019-06-11 | Sprint Communications Company L.P. | Hardware-trusted network-on-chip (NOC) and system-on-chip (SOC) network function virtualization (NFV) data communications |
US10771439B2 (en) * | 2017-06-28 | 2020-09-08 | Microsoft Technology Licensing, Llc | Shielded networks for virtual machines |
US10621350B2 (en) | 2017-10-02 | 2020-04-14 | Microsoft Technology Licensing, Llc | System integrity using attestation for virtual trusted platform module |
CN109165080A (zh) * | 2018-08-10 | 2019-01-08 | 云宏信息科技股份有限公司 | 虚拟机在线迁移过程内存数据的保护方法、装置及物理机 |
US11086932B1 (en) | 2020-03-18 | 2021-08-10 | Amazon Technologies, Inc. | Asset-level management of media recording in cloud DVR systems |
US20220214903A1 (en) * | 2021-01-06 | 2022-07-07 | Baidu Usa Llc | Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment |
US20220407693A1 (en) * | 2021-06-21 | 2022-12-22 | Saul Troen | Method and device for secure communication |
US11924336B1 (en) * | 2021-06-25 | 2024-03-05 | Amazon Technologies, Inc. | Cryptographic artifact generation using virtualized security modules |
US20230066427A1 (en) * | 2021-08-27 | 2023-03-02 | Microsoft Technology Licensing, Llc | Distributed trusted platform module key management protection for roaming data |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692193A (en) * | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
US6944300B2 (en) * | 2001-06-22 | 2005-09-13 | International Business Machines Corporaton | Method for migrating a base chip key from one computer system to another |
US7243230B2 (en) * | 2001-11-16 | 2007-07-10 | Microsoft Corporation | Transferring application secrets in a trusted operating system environment |
US7095859B2 (en) * | 2002-03-18 | 2006-08-22 | Lenovo (Singapore) Pte. Ltd. | Managing private keys in a free seating environment |
US7313679B2 (en) * | 2003-10-17 | 2007-12-25 | Intel Corporation | Extended trusted computing base |
US7590867B2 (en) * | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
US7099477B2 (en) * | 2004-10-21 | 2006-08-29 | International Business Machines Corporation | Method and system for backup and restore of a context encryption key for a trusted device within a secured processing system |
US7636442B2 (en) * | 2005-05-13 | 2009-12-22 | Intel Corporation | Method and apparatus for migrating software-based security coprocessors |
US7913250B2 (en) * | 2005-11-16 | 2011-03-22 | Microsoft Corporation | Automated state migration while deploying an operating system |
US20110010518A1 (en) * | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
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 |
US8522018B2 (en) * | 2006-08-18 | 2013-08-27 | Fujitsu Limited | Method and system for implementing a mobile trusted platform module |
-
2006
- 2006-03-21 US US11/385,965 patent/US7444670B2/en not_active Expired - Fee Related
-
2007
- 2007-03-19 CN CN200780009921.2A patent/CN101405694A/zh active Pending
- 2007-03-19 WO PCT/US2007/006773 patent/WO2007109212A2/en active Application Filing
- 2007-03-19 EP EP07753405A patent/EP2008174A4/en not_active Withdrawn
- 2007-03-19 JP JP2009501480A patent/JP2009530743A/ja active Pending
-
2008
- 2008-05-02 US US12/114,133 patent/US8020204B2/en not_active Expired - Fee Related
-
2011
- 2011-07-22 US US13/189,418 patent/US8356347B2/en not_active Expired - Fee Related
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819545B (zh) * | 2010-04-09 | 2012-07-25 | 济南银泉科技有限公司 | 一种利用虚拟化技术实现平台迁移的方法 |
CN101819545A (zh) * | 2010-04-09 | 2010-09-01 | 济南银泉科技有限公司 | 一种利用虚拟化技术实现平台迁移的方法 |
CN101984631A (zh) * | 2010-11-05 | 2011-03-09 | 北京世纪互联工程技术服务有限公司 | 一种Xen虚拟机安全动态迁移方法 |
CN103503364B (zh) * | 2011-04-01 | 2016-11-09 | 英特尔公司 | 跨平台的应用程序使用连续性 |
CN103503364A (zh) * | 2011-04-01 | 2014-01-08 | 英特尔公司 | 跨平台的应用程序使用连续性 |
CN104969180A (zh) * | 2013-03-05 | 2015-10-07 | 英特尔公司 | 与来自主机中央处理单元和操作系统的干扰和控制隔离的用户授权和存在检测 |
CN104113574B (zh) * | 2013-04-19 | 2017-04-12 | 中国科学院计算技术研究所 | 一种广域网可信虚拟机的安全迁移方法及系统 |
CN104113574A (zh) * | 2013-04-19 | 2014-10-22 | 中国科学院计算技术研究所 | 一种广域网可信虚拟机的安全迁移方法及系统 |
CN105493067A (zh) * | 2013-09-26 | 2016-04-13 | 英特尔Ip公司 | 应用上下文转移框架和协议 |
CN109308417A (zh) * | 2017-07-27 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 基于可信计算的解锁方法及装置 |
CN107392030A (zh) * | 2017-07-28 | 2017-11-24 | 浪潮(北京)电子信息产业有限公司 | 一种检测虚拟机启动安全的方法及装置 |
CN109062662A (zh) * | 2018-07-12 | 2018-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟可信根迁移方法、系统及电子设备和存储介质 |
CN109783474A (zh) * | 2019-01-08 | 2019-05-21 | 北京工业大学 | 虚拟可信根实例及其自身状态数据的安全迁移方法 |
CN109783474B (zh) * | 2019-01-08 | 2020-08-21 | 北京工业大学 | 虚拟可信根实例及其自身状态数据的安全迁移方法 |
CN113032818A (zh) * | 2021-05-27 | 2021-06-25 | 北京国电通网络技术有限公司 | 任务加密方法、装置、电子设备和计算机可读介质 |
CN114938275A (zh) * | 2022-07-21 | 2022-08-23 | 国开启科量子技术(北京)有限公司 | 使用量子密钥迁移虚拟机的方法、装置、介质和设备 |
CN114938275B (zh) * | 2022-07-21 | 2022-10-14 | 国开启科量子技术(北京)有限公司 | 使用量子密钥迁移虚拟机的方法、装置、介质和设备 |
Also Published As
Publication number | Publication date |
---|---|
US8356347B2 (en) | 2013-01-15 |
US20070226786A1 (en) | 2007-09-27 |
JP2009530743A (ja) | 2009-08-27 |
US20110283352A1 (en) | 2011-11-17 |
WO2007109212A2 (en) | 2007-09-27 |
US7444670B2 (en) | 2008-10-28 |
EP2008174A4 (en) | 2010-09-01 |
WO2007109212A3 (en) | 2008-09-25 |
US20090328145A1 (en) | 2009-12-31 |
EP2008174A2 (en) | 2008-12-31 |
US8020204B2 (en) | 2011-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101405694A (zh) | 迁移虚拟tpm实例以及保留该实例的唯一性和完整性的方法和装置 | |
CN109313690B (zh) | 自包含的加密引导策略验证 | |
CN108076057B (zh) | 一种基于区块链的数据保全系统及方法 | |
JP6665113B2 (ja) | 継続的な所有者アクセスを伴う、暗号化された仮想マシンの安全なトランスポート | |
CN101803327B (zh) | 用于管理网络文件的方法和设备 | |
CN102855452B (zh) | 基于加密组块的快速数据加密策略遵从 | |
US10498712B2 (en) | Balancing public and personal security needs | |
US11115208B2 (en) | Protecting sensitive information from an authorized device unlock | |
US6986041B2 (en) | System and method for remote code integrity in distributed systems | |
CN100547598C (zh) | 基于对称密钥加密保存和检索数据 | |
JP4818868B2 (ja) | 仮想端末を利用した検疫ネットワークシステム、仮想端末を検疫する方法、及び、仮想端末を検疫するためのプログラム | |
US11398906B2 (en) | Confirming receipt of audit records for audited use of a cryptographic key | |
US20120213370A1 (en) | Secure management and personalization of unique code signing keys | |
US8667278B2 (en) | Information processing apparatus and data transmission method of information processing apparatus | |
US11405201B2 (en) | Secure transfer of protected application storage keys with change of trusted computing base | |
JP2024500822A (ja) | 鍵インストール方法、システム、装置、機器及びコンピュータプログラム | |
EP3539010B1 (en) | Balancing public and personal security needs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090408 |