CN106610863B - 虚拟机可信迁移方法及装置 - Google Patents
虚拟机可信迁移方法及装置 Download PDFInfo
- Publication number
- CN106610863B CN106610863B CN201510688110.6A CN201510688110A CN106610863B CN 106610863 B CN106610863 B CN 106610863B CN 201510688110 A CN201510688110 A CN 201510688110A CN 106610863 B CN106610863 B CN 106610863B
- Authority
- CN
- China
- Prior art keywords
- target
- instance
- stpm
- virtual machine
- host
- 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.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种虚拟机可信迁移方法及装置,属于虚拟机技术领域。所述方法包括:源主机向目的主机发送迁移请求,以使目的主机进行迁移响应;当源主机接收到目的主机返回的迁移响应时,基于目标虚拟机中加载的sTPM实例的明文、迁移响应中携带的迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文;源主机将签章文件的密文和目标sTPM实例的密文发送给目的主机,以使目的主机建立目标sTPM实例与目的主机的硬件TPM之间的可信链;当源主机接收到目的主机发送的虚拟机迁移响应时,将目标虚拟机的虚拟机实例动态迁移到目的主机上,以使目的主机建立目标虚拟机与目标sTPM实例之间的可信链。本发明提高了目标虚拟机的可信迁移效率。
Description
技术领域
本发明涉及虚拟机技术领域,特别涉及一种虚拟机可信迁移方法及装置。
背景技术
随着虚拟机技术的快速发展,虚拟机的使用越来越广泛,这些虚拟机可以安装在物理主机上,且一个物理主机上可以安装多个虚拟机。为了实现物理主机的维护、升级或者动态负载均衡,可以将该物理主机上安装的虚拟机迁移到其它物理主机上,此时,该虚拟机所在的物理主机可以称为源主机,其它物理主机可以称为目的主机。而为了防止源主机将安装的虚拟机迁移到目的主机的过程中发生数据泄露等不安全事件,需要保证目的主机运行环境的安全性,以及保证迁移过程中该虚拟机的完整性和机密性,也即是,需要对该虚拟机进行可信迁移。
目前,提供了一种基于XEN平台的虚拟机可信迁移方法,具体为:在XEN平台所在的每个物理主机上设置有一个可信管理虚拟机以及多个客户虚拟机,可信管理虚拟机上部署有可信平台模块(英文:Trusted Platform Module,简称:TPM)驱动和虚拟可信平台模块(英文:Virtual Trusted Platform Module,简称:vTPM)管理器,vTPM管理器负责为该多个客户虚拟机生成vTPM实例,并通过每个客户虚拟机的vTPM实例保证每个客户虚拟机与可信管理虚拟机之间的可信链。而当某一客户虚拟机从源主机向目的主机迁移时,源主机将该客户虚拟机对应的vTPM实例静态迁移到目的主机上,再将该客户虚拟机动态迁移到目的主机上,之后,目的主机将该客户虚拟机对应的vTPM实例添加到目标主机的vTPM管理器中,以建立该vTPM实例与目的主机的可信管理虚拟机之间的可信链,进而通过目的主机的TPM驱动,建立该vTPM实例与该客户虚拟机之间的通信,以建立该vTPM实例和该客户虚拟机之间的可信链,从而实现该客户虚拟机的可信迁移。
而由于迁移过程中,目的主机的可信管理虚拟机不仅要将vTPM实例添加到vTPM管理器中,还要建立vTPM实例与客户虚拟机之间的可信链,从而导致可信管理虚拟机的实现机制比较复杂,降低了客户虚拟机的可信迁移效率。
发明内容
为了提高虚拟机的可信迁移效率,本发明实施例提供了一种虚拟机可信迁移方法及装置。所述技术方案如下:
第一方面,提供了一种虚拟机可信迁移方法,所述方法包括:
源主机向目的主机发送迁移请求,所述迁移请求中携带目标虚拟机的迁移信息,以使所述目的主机基于所述迁移信息进行迁移响应,所述迁移响应中携带迁移身份码;
当所述源主机接收到所述目的主机返回的所述迁移响应时,基于所述目标虚拟机中加载的目标sTPM实例的明文、所述迁移身份码和所述源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文;
所述源主机将所述签章文件的密文和所述目标sTPM实例的密文发送给所述目的主机,以使所述目的主机基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链;
当所述源主机接收到所述目的主机发送的虚拟机迁移响应时,将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上,以使所述目的主机基于所述虚拟机实例建立所述目标虚拟机与所述目标sTPM实例之间的可信链。
其中,在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且快速建立了目标虚拟机在目的主机上的可信性,进而恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
需要说明的是,迁移身份码为目的主机预先建立的临时sTPM实例的哈希值,迁移身份码与临时sTPM实例唯一对应。
还需要说明的是,硬件TPM为满足TPM规范的硬件实现,硬件TPM用于保证源主机的物理环境的可信性,另外,sTPM为满足TPM规范的软件实现,也即是sTPM借助软件模块来实现TPM功能。再者,sTPM实例是sTPM的文件表现形式,sTPM实例中保存有sTPM的状态信息,sTPM实例与sTPM唯一对应。
结合第一方面,在上述第一方面的第一种可能的实现方式中,所述源主机基于所述目标虚拟机对应的目标sTPM实例的明文、所述迁移身份码和所述源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文,包括:
所述源主机生成所述目标sTPM实例的描述文件;
所述源主机基于所述描述文件和所述迁移身份码,生成签章文件;
所述源主机基于所述签章文件的明文、所述目标sTPM实例的明文和所述源主机的私钥,生成所述签章文件的密文和所述目标sTPM实例的密文。
在另一种可能的实现方式中,所述源主机基于所述签章文件的明文、所述目标sTPM实例的明文和所述源主机的私钥,生成所述签章文件的密文和所述目标sTPM实例的密文,包括:
所述源主机基于所述签章文件的明文,对所述目标sTPM实例的明文进行加密,得到所述目标sTPM实例的密文;所述源主机基于所述源主机的私钥,对所述签章文件的明文进行加密,得到所述签章文件的密文。
由于签章文件是基于迁移身份码和描述文件生成的,因此,用签章文件的明文对目标sTPM实例的明文进行加密,可以加强保密性。
结合第一方面或第一方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述源主机基于所述目标虚拟机中加载的目标软件可信平台模块sTPM实例的明文、所述迁移身份码和所述源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文之前,还包括:
所述源主机对所述目标虚拟机中加载的目标sTPM实例进行备份;
所述源主机对所述目标虚拟机中加载的目标sTPM实例进行卸载。
其中,源主机对目标sTPM实例进行备份,可以使源主机在进行目标sTPM实例的迁移时,通过备份的目标sTPM实例保证目标虚拟机的可信性,以维持目标虚拟机的运行状态,实现目标虚拟机上业务的连续性。
又由于sTPM借助软件模块来实现TPM功能,而sTPM实例为sTPM的文件表现形式,因此sTPM实例可以作为一个整体,简单方便地在物理主机上进行卸载,也就使得sTPM实例具有较高的使用和迁移的灵活性。
结合第一方面或第一方面的第一种可能的实现方式,在上述第一方面的第三种可能的实现方式中,所述源主机基于所述目标虚拟机中加载的目标sTPM实例的明文、所述迁移身份码和所述源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文之前,还包括:
所述源主机向证书认证CA管理中心发送密钥获取请求,所述密钥获取请求中携带所述源主机的数字证书,以使所述CA管理中心基于所述源主机的数字证书返回所述源主机的私钥;
所述源主机接收所述CA管理中心返回的所述源主机的私钥。
其中,CA管理中心在向源主机发送源主机的私钥时,还可以将源主机的公钥在CA管理中心中进行公布,以使目的主机可以在CA管理中心中获取源主机的公钥,从而可以对源主机向目的主机发送的加密文件进行解密。
需要说明的是,CA管理中心是证书授权机构,用于对称加密密钥的分发、身份认证、信息的完整性检验和交易防抵赖等,是安全电子信息交换的核心。
结合第一方面,在上述第一方面的第四种可能的实现方式中,所述源主机将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上之后,还包括:
当所述源主机接收到所述目的主机发送的删除请求时,删除备份的目标sTPM实例和所述目标虚拟机的虚拟机实例。
其中,当目的主机完成目标虚拟机迁移之后,目的主机可以向源主机发送删除请求,使源主机基于该删除请求,删除备份的目标sTPM实例和目标虚拟机的虚拟机实例,以节省源主机上的存储空间,减轻源主机的负载。
第二方面,提供了一种虚拟机可信迁移方法,所述方法包括:
当目的主机接收到源主机发送的迁移请求时,基于所述迁移请求中携带的目标虚拟机的迁移信息,向所述源主机发送迁移响应,所述迁移响应中携带迁移身份码,以使所述源主机基于所述迁移身份码返回签章文件的密文和所述目标虚拟机中加载的目标软件可信平台模块sTPM实例的密文;
当所述目的主机接收到所述源主机发送的所述签章文件的密文和所述目标sTPM实例的密文时,基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链;
在所述目的主机建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链之后,向所述源主机发送虚拟机迁移响应,以使所述源主机将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上;
当所述目的主机接收到所述源主机动态迁移的所述目标虚拟机的虚拟机实例时,基于所述虚拟机实例,建立所述目标虚拟机与所述目标sTPM实例之间的可信链。
其中,在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且快速建立了目标虚拟机在目的主机上的可信性,进而恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
结合第二方面,在上述第二方面的第一种可能的实现方式中,所述目的主机基于所述迁移请求中携带的目标虚拟机的迁移信息,向所述源主机发送迁移响应,包括:
所述目的主机基于所述迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例;
所述目的主机对所述临时sTPM实例进行哈希运算,得到所述临时sTPM实例的哈希值;
所述目的主机将所述临时sTPM实例的哈希值确定为迁移身份码;
所述目的主机向所述源主机发送迁移响应,所述迁移响应中携带所述迁移身份码。
结合第二方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述目的主机基于所述迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例,包括:
所述目的主机基于所述迁移请求中携带的目标虚拟机的迁移信息,判断是否接受所述虚拟机的迁移;
当所述目的主机接受所述虚拟机的迁移时,建立临时sTPM实例。
其中,目的主机可以基于自身的资源状况判断是否接受目标虚拟机的迁移,以避免当目标虚拟机迁移到目的主机上时,目的主机上的业务负载超出目的主机的业务负载极限,导致目标虚拟机不能正常运行。
结合第二方面,在上述第二方面的第三种可能的实现方式中,所述目的主机基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与目的主机的硬件TPM之间的可信链,包括:
所述目的主机基于所述源主机的公钥,对所述签章文件的密文进行解密,得到所述签章文件的明文,所述源主机的公钥为所述目的主机从证书认证CA管理中心中获取得到;
所述目的主机对所述签章文件的明文进行解析,得到描述文件和迁移身份码;
所述目的主机基于所述签章文件的明文,对所述目标sTPM实例的密文进行解密,得到所述目标sTPM实例的明文;
所述目的主机基于所述描述文件、所述迁移身份码和所述目标sTPM实例的明文,建立所述目标sTPM实例与目的主机的硬件TPM之间的可信链。
由于CA管理中心中公布了源主机的公钥,因此,目的主机可以在CA管理中心中获取源主机的公钥,并基于源主机的公钥,对签章文件的密文进行解密。
结合第二方面的第三种可能的实现方式,在上述第二方面的第四种可能的实现方式中,所述目的主机基于所述描述文件、所述迁移身份码和所述目标sTPM实例的明文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链,包括:
所述目的主机基于所述迁移身份码,对所述签章文件的新鲜性进行验证;
如果所述签章文件的新鲜性验证通过,则所述目的主机基于所述描述文件和所述目标sTPM实例的明文,对所述目标sTPM实例的完整性进行验证,所述描述文件中包括所述目标sTPM实例的哈希值;
如果所述目标sTPM实例的完整性验证通过,则所述目的主机基于所述目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
所述目的主机将所述描述文件中包括的哈希值存储在所述临时度量列表中;
所述目的主机基于所述目的主机的指定寄存器,对所述临时度量列表进行密封,以建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链。
其中,目的主机基于迁移身份码,对该签章文件的新鲜性进行验证,可以避免除源主机之外的其它物理主机将sTPM实例迁移到目的主机上。
而目的主机基于描述文件和目标sTPM实例的明文,对目标sTPM实例的完整性进行验证,可以当目标sTPM实例在迁移时发生数据泄露而变得不完整时,终止目标sTPM实例的迁移,有效避免黑客的攻击。
结合第二方面的第四种可能的实现方式,在上述第二方面的第五种可能的实现方式中,所述目的主机基于所述描述文件和所述目标sTPM实例的明文,对所述目标sTPM实例的完整性进行验证,包括:
所述目的主机基于所述目标sTPM实例的明文,确定所述目标sTPM实例的哈希值;
如果确定的哈希值与所述描述文件中包括的哈希值相同,则所述目的主机确定所述目标sTPM实例的完整性验证通过,否则,所述目的主机确定所述目标sTPM实例的完整性验证不通过。
结合第二方面,在上述第二方面的第六种可能的实现方式中,所述目的主机向所述源主机发送虚拟机迁移响应之前,还包括:
所述目的主机建立空白虚拟机;
相应地,所述目的主机基于所述虚拟机实例,建立所述目标虚拟机与所述目标sTPM实例之间的可信链,包括:
所述目的主机将所述目标虚拟机的虚拟机实例存储到所述空白虚拟机中,得到所述目的主机上的目标虚拟机;
所述目的主机基于所述虚拟机实例,将所述目标sTPM实例加载到所述目标虚拟机中。
由于sTPM借助软件模块来实现TPM功能,而sTPM实例为sTPM的文件表现形式,因此sTPM实例可以作为一个整体,简单方便地在物理主机上进行加载,也就使得sTPM实例具有较高的使用和迁移的灵活性。
结合第二方面的第六种可能的实现方式,在上述第二方面的第七种可能的实现方式中,所述目的主机基于所述虚拟机实例,将所述目标sTPM实例加载到所述目标虚拟机中,包括:
所述目的主机基于所述虚拟机实例,从存储的虚拟机实例与sTPM实例之间的对应关系中,获取对应的sTPM实例;
所述目的主机确定获取的sTPM实例的哈希值;
所述目的主机基于所述目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
所述目的主机从所述临时度量列表中,获取所述目标sTPM实例的哈希值;
所述目的主机基于确定的哈希值与获取的哈希值,对所述获取的sTPM实例的完整性进行验证;
如果所述获取的sTPM实例的完整性验证通过,则所述目的主机将所述获取的sTPM实例确定为所述目标sTPM实例,并加载到所述目标虚拟机中。
由于当目的主机的基础环境发生变化时,指定寄存器也会发生变化,而此时源主机将不能对密封后的度量列表进行解密封,因此,目的主机通过对度量列表进行密封以及解密封的操作,不仅保证了度量列表的可信性,也间接验证了目的主机的基础环境的可信性。
结合第二方面的第七种可能的实现方式,在上述第二方面的第八种可能的实现方式中,所述目的主机基于所述虚拟机实例,建立所述目标虚拟机与所述目标sTPM实例之间的可信链之前,还包括:
所述目的主机将所述目标虚拟机的虚拟机实例和所述目标sTPM实例,存储到所述虚拟机实例与sTPM实例之间的对应关系中。
由于sTPM可以为虚拟机提供TPM功能,且sTPM实例与sTPM唯一对应,虚拟机实例与虚拟机唯一对应,因此,可以通过虚拟机实例与sTPM实例的对应关系,实现sTPM与虚拟机之间的可信链,并且可以有效地避免sTPM被另一个虚拟机读取而发生安全信息泄漏。
结合第二方面的第七种可能的实现方式,在上述第二方面的第九种可能的实现方式中,所述目的主机从所述临时度量列表中,获取所述目标sTPM实例的哈希值之后,还包括:
所述目的主机基于所述目的主机的指定寄存器,对所述临时度量列表进行密封。
第三方面,提供了一种虚拟机可信迁移装置,所述装置包括:
第一发送模块,用于向目的主机发送迁移请求,所述迁移请求中携带目标虚拟机的迁移信息,以使所述目的主机基于所述迁移信息进行迁移响应,所述迁移响应中携带迁移身份码;
生成模块,用于当接收到所述目的主机返回的所述迁移响应时,基于所述目标虚拟机中加载的目标软件可信平台模块sTPM实例的明文、所述迁移身份码和源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文;
第二发送模块,用于将所述签章文件的密文和所述目标sTPM实例的密文发送给所述目的主机,以使所述目的主机基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链;
迁移模块,用于当接收到所述目的主机发送的虚拟机迁移响应时,将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上,以使所述目的主机基于所述虚拟机实例建立所述目标虚拟机与所述目标sTPM实例之间的可信链。
其中,在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且快速建立了目标虚拟机在目的主机上的可信性,进而恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
结合第三方面,在上述第三方面的第一种可能的实现方式中,所述生成模块包括:
第一生成单元,用于生成所述目标sTPM实例的描述文件;
第二生成单元,用于基于所述描述文件和所述迁移身份码,生成签章文件;
第三生成单元,用于基于所述签章文件的明文、所述目标sTPM实例的明文和所述源主机的私钥,生成所述签章文件的密文和所述目标sTPM实例的密文。
在另一种可能的实现方式中,所述第三生成单元包括:
第一加密子单元,用于基于所述签章文件的明文,对所述目标sTPM实例的明文进行加密,得到所述目标sTPM实例的密文;
第二加密子单元,用于基于所述源主机的私钥,对所述签章文件的明文进行加密,得到所述签章文件的密文。
由于签章文件是基于迁移身份码和描述文件生成的,因此,用签章文件的明文对目标sTPM实例的明文进行加密,可以加强保密性。
结合第三方面或第三方面的第一种可能实现方式,在上述第三方面的第二种可能的实现方式中,所述装置还包括:
备份模块,用于对所述目标虚拟机中加载的目标sTPM实例进行备份;
卸载模块,用于对所述目标虚拟机中加载的目标sTPM实例进行卸载。
其中,源主机对目标sTPM实例进行备份,可以使源主机在进行目标sTPM实例的迁移时,通过备份的目标sTPM实例保证目标虚拟机的可信性,以维持目标虚拟机的运行状态,实现目标虚拟机上业务的连续性。
其中,源主机对目标sTPM实例进行备份,可以使源主机在进行目标sTPM实例的迁移时,通过备份的目标sTPM实例保证目标虚拟机的可信性,以维持目标虚拟机的运行状态,实现目标虚拟机上业务的连续性。
又由于sTPM借助软件模块来实现TPM功能,而sTPM实例为sTPM的文件表现形式,因此sTPM实例可以作为一个整体,简单方便地在物理主机上进行卸载,也就使得sTPM实例具有较高的使用和迁移的灵活性。
结合第三方面或第三方面的第一种可能的实现方式,在上述第三方面的第三种可能的实现方式中,所述装置还包括:
第三发送模块,用于向证书认证CA管理中心发送密钥获取请求,所述密钥获取请求中携带所述源主机的数字证书,以使所述CA管理中心基于所述源主机的数字证书返回所述源主机的私钥;
接收模块,用于接收所述CA管理中心返回的所述源主机的私钥。
其中,CA管理中心在向源主机发送源主机的私钥时,还可以将源主机的公钥在CA管理中心中进行公布,以使目的主机可以在CA管理中心中获取源主机的公钥,从而可以对源主机向目的主机发送的加密文件进行解密。
结合第三方面,在上述第三方面的第四种可能的实现方式中,所述装置还包括:
删除模块,用于当接收到所述目的主机发送的删除请求时,删除备份的目标sTPM实例和所述目标虚拟机的虚拟机实例。
其中,当目的主机完成目标虚拟机迁移之后,目的主机可以向源主机发送删除请求,使源主机基于该删除请求,删除备份的目标sTPM实例和目标虚拟机的虚拟机实例,以节省源主机上的存储空间,减轻源主机的负载。
第四方面,提供了一种虚拟机可信迁移装置,所述装置包括:
第一发送模块,用于当接收到源主机发送的迁移请求时,基于所述迁移请求中携带的目标虚拟机的迁移信息,向所述源主机发送迁移响应,所述迁移响应中携带迁移身份码,以使所述源主机基于所述迁移身份码返回签章文件的密文和所述目标虚拟机中加载的目标软件可信平台模块sTPM实例的密文;
第一建立模块,用于当接收到所述源主机发送的所述签章文件的密文和所述目标sTPM实例的密文时,基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与目的主机的硬件TPM之间的可信链;
第二发送模块,用于在建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链之后,向所述源主机发送虚拟机迁移响应,以使所述源主机将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上;
第二建立模块,用于当接收到所述源主机动态迁移的所述目标虚拟机的虚拟机实例时,基于所述虚拟机实例,建立所述目标虚拟机与所述目标sTPM实例之间的可信链。
其中,在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且快速建立了目标虚拟机在目的主机上的可信性,进而恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
结合第四方面,在上述第四方面的第一种可能的实现方式中,所述第一发送模块包括:
第一建立单元,用于基于所述迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例;
运算单元,用于对所述临时sTPM实例进行哈希运算,得到所述临时sTPM实例的哈希值;
确定单元,用于将所述临时sTPM实例的哈希值确定为迁移身份码;
发送单元,用于向所述源主机发送迁移响应,所述迁移响应中携带所述迁移身份码。
结合第四方面的第一种可能的实现方式,在上述第四方面的第二种可能的实现方式中,所述第一建立单元包括:
判断子单元,用于基于所述迁移请求中携带的目标虚拟机的迁移信息,判断是否接受所述虚拟机的迁移;
建立子单元,用于当接受所述虚拟机的迁移时,建立临时sTPM实例。
其中,目的主机可以基于自身的资源状况判断是否接受目标虚拟机的迁移,以避免当目标虚拟机迁移到目的主机上时,目的主机上的业务负载超出目的主机的业务负载极限,导致目标虚拟机不能正常运行。
结合第四方面,在上述第四方面的第三种可能的实现方式中,所述第一建立模块包括:
第一解密单元,用于基于所述源主机的公钥,对所述签章文件的密文进行解密,得到所述签章文件的明文,所述源主机的公钥为所述目的主机从证书认证CA管理中心中获取得到;
解析单元,用于对所述签章文件的明文进行解析,得到描述文件和迁移身份码;
第二解密单元,用于基于所述签章文件的明文,对所述目标sTPM实例的密文进行解密,得到所述目标sTPM实例的明文,;
第二建立单元,用于基于所述描述文件、所述迁移身份码和所述目标sTPM实例的明文,建立所述目标sTPM实例与目的主机的硬件TPM之间的可信链。
由于CA管理中心中公布了源主机的公钥,因此,目的主机可以在CA管理中心中获取源主机的公钥,并基于源主机的公钥,对签章文件的密文进行解密。
结合第四方面的第三种可能的实现方式,在上述第四方面的第四种可能的实现方式中,所述第二建立单元包括:
第一验证子单元,用于基于所述迁移身份码,对所述签章文件的新鲜性进行验证;
第二验证子单元,用于如果所述签章文件的新鲜性验证通过,则基于所述描述文件和所述目标sTPM实例的明文,对所述目标sTPM实例的完整性进行验证,所述描述文件中包括所述目标sTPM实例的哈希值;
第一解密封子单元,用于如果所述目标sTPM实例的完整性验证通过,则基于所述目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
存储子单元,用于将所述描述文件中包括的哈希值存储在所述临时度量列表中;
第一密封子单元,用于基于所述目的主机的指定寄存器,对所述临时度量列表进行密封,以建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链。
其中,目的主机基于迁移身份码,对该签章文件的新鲜性进行验证,可以避免除源主机之外的其它物理主机将sTPM实例迁移到目的主机上。
而目的主机基于描述文件和目标sTPM实例的明文,对目标sTPM实例的完整性进行验证,可以当目标sTPM实例在迁移时发生数据泄露而变得不完整时,终止目标sTPM实例的迁移,有效避免黑客的攻击。
结合第四方面的第四种可能的实现方式,在上述第四方面的第五种可能的实现方式中,所述第二验证子单元包括:
第一确定子单元,用于基于所述目标sTPM实例的明文,确定所述目标sTPM实例的哈希值;
第二确定子单元,用于如果确定的哈希值与所述描述文件中包括的哈希值相同,则确定所述目标sTPM实例的完整性验证通过,否则,确定所述目标sTPM实例的完整性验证不通过。
结合第四方面,在上述第四方面的第六种可能的实现方式中,所述装置还包括:
第三建立模块,用于建立空白虚拟机;
相应地,基于第二建立模块包括:
第一存储单元,用于将所述目标虚拟机的虚拟机实例存储到所述空白虚拟机中,得到所述目的主机上的目标虚拟机;
加载单元,用于基于所述虚拟机实例,将所述目标sTPM实例加载到所述目标虚拟机中。
由于sTPM借助软件模块来实现TPM功能,而sTPM实例为sTPM的文件表现形式,因此sTPM实例可以作为一个整体,简单方便地在物理主机上进行加载,也就使得sTPM实例具有较高的使用和迁移的灵活性。
结合第四方面的第六种可能的实现方式,在上述第四方面的第七种可能的实现方式中,所述加载单元包括:
第一获取子单元,用于基于所述虚拟机实例,从存储的虚拟机实例与sTPM实例之间的对应关系中,获取对应的sTPM实例;
第三确定子单元,用于确定获取的sTPM实例的哈希值;
第二解密封子单元,用于基于所述目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
第二获取子单元,用于从所述临时度量列表中,获取所述目标sTPM实例的哈希值;
第三验证子单元,用于基于确定的哈希值与获取的哈希值,对所述获取的sTPM实例的完整性进行验证;
第四确定子单元,用于如果所述获取的sTPM实例的完整性验证通过,则将所述获取的sTPM实例确定为所述目标sTPM实例,并加载到所述目标虚拟机中。
由于当目的主机的基础环境发生变化时,指定寄存器也会发生变化,而此时源主机将不能对密封后的度量列表进行解密封,因此,目的主机通过对度量列表进行密封以及解密封的操作,不仅保证了度量列表的可信性,也间接验证了目的主机的基础环境的可信性。
结合第四方面的第七种可能的实现方式,在上述第四方面的第八种可能的实现方式中,所述装置还包括:
存储模块,用于将所述目标虚拟机的虚拟机实例和所述目标sTPM实例,存储到所述虚拟机实例与sTPM实例之间的对应关系中。
由于sTPM可以为虚拟机提供TPM功能,且sTPM实例与sTPM唯一对应,虚拟机实例与虚拟机唯一对应,因此,可以通过虚拟机实例与sTPM实例的对应关系,实现sTPM与虚拟机之间的可信链,并且可以有效地避免sTPM被另一个虚拟机读取而发生安全信息泄漏。
结合第四方面的第七种可能的实现方式,在上述第四方面的第九种可能的实现方式中,所述加载单元还包括:
第二密封子单元,用于基于所述目的主机的指定寄存器,对所述临时度量列表进行密封。
在本发明实施例中,源主机基于目标虚拟机中加载的目标sTPM实例的明文、目的主机发送的迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文,并将签章文件的密文和目标sTPM实例的密文发送给目的主机,使目的主机建立目标sTPM实例与目的主机的硬件TPM之间的可信链,之后,目的主机再将目标虚拟机的虚拟机实例动态迁移到目的主机上,使目的主机基于虚拟机实例建立目标虚拟机与目标sTPM实例之间的可信链,以完成目标虚拟机的迁移,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,快速建立了目标虚拟机在目的主机上的可信性,以恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的提供的一种物理主机的结构示意图;
图2是本发明实施例的提供的一种虚拟机的可信迁移方法的流程图;
图3是本发明实施例的提供的另一种虚拟机的可信迁移方法的流程图;
图4是本发明实施例的提供的又一种虚拟机的可信迁移方法的流程图;
图5是本发明实施例提供的第一种虚拟机可信迁移装置的结构示意图;
图6是本发明实施例提供的一种生成模块的结构示意图;
图7是本发明实施例提供的一种第三生成单元的结构示意图;
图8是本发明实施例提供的另一种生成模块的结构示意图;
图9是本发明实施例提供的第二种虚拟机可信迁移装置的结构示意图;
图10是本发明实施例提供的第三种虚拟机可信迁移装置的结构示意图;
图11是本发明实施例提供的第四种虚拟机可信迁移装置的结构示意图;
图12是本发明实施例提供的一种第一发送模块的结构示意图;
图13是本发明实施例提供的一种第一建立单元的结构示意图;
图14是本发明实施例提供的一种第一建立模块的结构示意图;
图15是本发明实施例提供的一种第二建立单元的结构示意图;
图16是本发明实施例提供的一种第二验证子单元的结构示意图;
图17是本发明实施例提供的第五种虚拟机可信迁移装置的结构示意图;
图18是本发明实施例提供的一种第二建立模块的结构示意图;
图19是本发明实施例提供的一种加载单元的结构示意图;
图20是本发明实施例提供的第六种虚拟机可信迁移装置的结构示意图;
图21是本发明实施例提供的另一种加载单元的结构示意图;
图22是本发明实施例提供的第七种虚拟机可信迁移装置的结构示意图;
图23是本发明实施例提供的第八种虚拟机可信迁移装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种物理主机的结构示意图,参见图1,该物理主机主要包括硬件层的硬件TPM、虚拟机监视器(英文:Virtual Machine Monitor,简称VMM)、TPM管理中心以及多个虚拟机等。物理主机上安装有多个虚拟机,该多个虚拟机的每个虚拟机上安装有驱动,该驱动保存有该虚拟机的配置信息,该驱动对应该虚拟机上的多个应用程序(英文:Application,简称:app),且该多个虚拟机是基于物理主机的硬件TPM建立的,硬件TPM是具有可信性的处理芯片,在硬件TPM和该多个虚拟机之间设置有TPM管理中心,TPM管理中心上维护有一个度量列表,该度量列表用于存储多个软件可信平台模块(英文:Software Trusted Platform Module,简称:sTPM)实例对应的多个哈希值,该多个sTPM实例与该多个虚拟机一一对应,用于保证该多个虚拟机的可信性。其中,VMM为管理虚拟机的平台,例如可以为KVM平台。
图2是本发明实施例提供的一种虚拟机的可信迁移方法的流程图。参见图2,该方法用于源主机中,包括:
步骤201:源主机向目的主机发送迁移请求,迁移请求中携带目标虚拟机的迁移信息,以使目的主机基于迁移信息进行迁移响应,迁移响应中携带迁移身份码。
步骤202:当源主机接收到目的主机返回的迁移响应时,基于目标虚拟机中加载的目标软件可信平台模块sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文。
步骤203:源主机将签章文件的密文和目标sTPM实例的密文发送给目的主机,以使目的主机基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
步骤204:当源主机接收到目的主机发送的虚拟机迁移响应时,将目标虚拟机的虚拟机实例动态迁移到目的主机上,以使目的主机基于虚拟机实例建立目标虚拟机与目标sTPM实例之间的可信链。
在本发明实施例中,源主机基于目标虚拟机中加载的目标sTPM实例的明文、目的主机发送的迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文,并将签章文件的密文和目标sTPM实例的密文发送给目的主机,使目的主机建立目标sTPM实例与目的主机的硬件TPM之间的可信链,之后,目的主机再将目标虚拟机的虚拟机实例动态迁移到目的主机上,使目的主机基于虚拟机实例建立目标虚拟机与目标sTPM实例之间的可信链,以完成目标虚拟机的迁移,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,快速建立了目标虚拟机在目的主机上的可信性,以恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
可选地,源主机基于目标虚拟机对应的目标sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文,包括:
源主机生成目标sTPM实例的描述文件;
源主机基于描述文件和迁移身份码,生成签章文件;
源主机基于签章文件的明文、目标sTPM实例的明文和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文。
可选地,源主机基于签章文件的明文、目标sTPM实例的明文和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文,包括:
源主机基于签章文件的明文,对目标sTPM实例的明文进行加密,得到目标sTPM实例的密文;
源主机基于源主机的私钥,对签章文件的明文进行加密,得到签章文件的密文。
可选地,源主机基于目标虚拟机中加载的目标软件可信平台模块sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文之前,还包括:
源主机对目标虚拟机中加载的目标sTPM实例进行备份;
源主机对目标虚拟机中加载的目标sTPM实例进行卸载。
可选地,源主机基于目标虚拟机中加载的目标sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文之前,还包括:
源主机向证书认证CA管理中心发送密钥获取请求,密钥获取请求中携带源主机的数字证书,以使CA管理中心基于源主机的数字证书返回源主机的私钥;
源主机接收CA管理中心返回的源主机的私钥。
可选地,源主机将目标虚拟机的虚拟机实例动态迁移到目的主机上之后,还包括:
当源主机接收到目的主机发送的删除请求时,删除备份的目标sTPM实例和目标虚拟机的虚拟机实例。
上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。
图3是本发明实施例提供的一种虚拟机的可信迁移方法的流程图。参见图1,该方法用于目的主机中,包括:
步骤301:当目的主机接收到源主机发送的迁移请求时,基于迁移请求中携带的目标虚拟机的迁移信息,向源主机发送迁移响应,迁移响应中携带迁移身份码,以使源主机基于迁移身份码返回签章文件的密文和目标虚拟机中加载的目标软件可信平台模块sTPM实例的密文。
步骤302:当目的主机接收到源主机发送的签章文件的密文和目标sTPM实例的密文时,基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
步骤303:在目的主机建立目标sTPM实例与目的主机的硬件TPM之间的可信链之后,向源主机发送虚拟机迁移响应,以使源主机将目标虚拟机的虚拟机实例动态迁移到目的主机上。
步骤304:当目的主机接收到源主机动态迁移的目标虚拟机的虚拟机实例时,基于虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链。
在本发明实施例中,源主机基于目的主机发送的迁移身份码返回签章文件的密文和目标虚拟机中加载的目标sTPM实例的密文,目的主机基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链,并在接收到源主机动态迁移的目标虚拟机的虚拟机实例时,基于虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链,完成目标虚拟机的迁移,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,快速建立了目标虚拟机在目的主机上的可信性,以恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
可选地,目的主机基于迁移请求中携带的目标虚拟机的迁移信息,向源主机发送迁移响应,包括:
目的主机基于迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例;
目的主机对临时sTPM实例进行哈希运算,得到临时sTPM实例的哈希值;
目的主机将临时sTPM实例的哈希值确定为迁移身份码;
目的主机向源主机发送迁移响应,迁移响应中携带迁移身份码。
可选地,目的主机基于迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例,包括:
目的主机基于迁移请求中携带的目标虚拟机的迁移信息,判断是否接受虚拟机的迁移;
当目的主机接受虚拟机的迁移时,建立临时sTPM实例。
可选地,目的主机基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链,包括:
目的主机基于源主机的公钥,对签章文件的密文进行解密,得到签章文件的明文,源主机的公钥为目的主机从证书认证CA管理中心中获取得到;
目的主机对签章文件的明文进行解析,得到描述文件和迁移身份码;
目的主机基于签章文件的明文,对目标sTPM实例的密文进行解密,得到目标sTPM实例的明文;
目的主机基于描述文件、迁移身份码和目标sTPM实例的明文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
可选地,目的主机基于描述文件、迁移身份码和目标sTPM实例的明文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链,包括:
目的主机基于迁移身份码,对签章文件的新鲜性进行验证;
如果签章文件的新鲜性验证通过,则目的主机基于描述文件和目标sTPM实例的明文,对目标sTPM实例的完整性进行验证,描述文件中包括目标sTPM实例的哈希值;
如果目标sTPM实例的完整性验证通过,则目的主机基于目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
目的主机将描述文件中包括的哈希值存储在临时度量列表中;
目的主机基于目的主机的指定寄存器,对临时度量列表进行密封,以建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
可选地,目的主机基于描述文件和目标sTPM实例的明文,对目标sTPM实例的完整性进行验证,包括:
目的主机基于目标sTPM实例的明文,确定目标sTPM实例的哈希值;
如果确定的哈希值与描述文件中包括的哈希值相同,则目的主机确定目标sTPM实例的完整性验证通过,否则,目的主机确定目标sTPM实例的完整性验证不通过。
可选地,目的主机向源主机发送虚拟机迁移响应之前,还包括:
目的主机建立空白虚拟机;
相应地,目的主机基于虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链,包括:
目的主机将目标虚拟机的虚拟机实例存储到空白虚拟机中,得到目的主机上的目标虚拟机;
目的主机基于虚拟机实例,将目标sTPM实例加载到目标虚拟机中。
可选地,目的主机基于虚拟机实例,将目标sTPM实例加载到目标虚拟机中,包括:
目的主机基于虚拟机实例,从存储的虚拟机实例与sTPM实例之间的对应关系中,获取对应的sTPM实例;
目的主机确定获取的sTPM实例的哈希值;
目的主机基于目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
目的主机从临时度量列表中,获取目标sTPM实例的哈希值;
目的主机基于确定的哈希值与获取的哈希值,对获取的sTPM实例的完整性进行验证;
如果获取的sTPM实例的完整性验证通过,则目的主机将获取的sTPM实例确定为目标sTPM实例,并加载到目标虚拟机中。
可选地,目的主机基于虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链之前,还包括:
目的主机将目标虚拟机的虚拟机实例和目标sTPM实例,存储到虚拟机实例与sTPM实例之间的对应关系中。
可选地,目的主机从临时度量列表中,获取目标sTPM实例的哈希值之后,还包括:
目的主机基于目的主机的指定寄存器,对临时度量列表进行密封。
上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。
图4是本发明实施例提供的一种虚拟机的可信迁移方法的流程图。参见图4,该方法包括:
步骤401:源主机向目的主机发送迁移请求,该迁移请求中携带目标虚拟机的迁移信息。
当源主机为了实现自身的维护、升级或者动态负载均衡时,源主机需要将自身安装的虚拟机迁移到其它物理主机上,此时,可以将其它物理主机称为目的主机,之后,该源主机可以向目的主机发送迁移请求,该迁移请求用于请求将源主机上的目标虚拟机和该目标虚拟机对应的业务迁移到目的主机上。
其中,迁移信息是指目标虚拟机的属性信息和目标虚拟机上运行的业务信息,例如,该迁移信息可以包括目标虚拟机的大小、目标虚拟机运行时所需的内存等等,本发明实施例对此不做具体限定。
进一步地,在本发明实施例中,当源主机或者目的主机上每新建立一个虚拟机时,都需要对自身进行可信环境初始化,以源主机为例,可信环境初始化是指需要建立源主机上的可信运行环境,由于源主机的硬件TPM是可信的,因此,建立源主机上的可信运行环境的操作可以为:源主机建立自身包括的硬件TPM与该虚拟机的sTPM之间的可信链,并建立该虚拟机的sTPM与该虚拟机之间的可信链。
由于源主机的硬件TPM是可信的,因此,可以通过硬件TPM与sTPM之间的可信链,保证sTPM的可信性,而当sTPM可信时,又可以通过sTPM与虚拟机之间的可信链,保证源主机上安装的虚拟机的可信性,从而保证源主机运行环境的可信性。
需要说明的是,硬件TPM为满足TPM规范的硬件实现,硬件TPM用于保证源主机的物理环境的可信性,例如,硬件TPM可以为满足TPM规范的安全芯片等等,本发明实施例对此不做具体限定。另外,sTPM为满足TPM规范的软件实现,也即是sTPM借助软件模块来实现TPM功能。
其中,源主机建立硬件TPM与sTPM的可信链时,源主机可以在硬件TPM与sTPM之间设置一个TPM管理中心,并在该TPM管理中心中建立一个度量列表,该度量列表由TPM管理中心进行维护,而由于源主机中安装的多个虚拟机分别对应一个sTPM实例,也即是,在源主机的本地会存储多个sTPM实例,对于本地存储的多个sTPM实例中的每个sTPM实例,源主机可以对该sTPM实例进行哈希运算,得到该sTPM实例的哈希值,并将该sTPM实例的哈希值存储在度量列表中。
由于硬件TPM是可信的,因此,硬件TPM可以对TPM管理中心进行安全度量,从而保证TPM管理中心的可信性,而当TPM管理中心可信时,TPM管理中心中维护的度量列表也是可信的,从而度量列表中存储的sTPM实例的哈希值也是可信的,而由于sTPM实例的哈希值与sTPM实例唯一对应,sTPM实例又与sTPM唯一对应,因此,可以保证sTPM的可信性。
其中,源主机通过在硬件TPM和sTPM之间设置一个度量列表,在保证了硬件TPM与sTPM的可信性的同时实现了二者之间松散耦合,该松散耦合是指两者之间是通过一定的消息架构来进行通信,因此,源主机可以通过多级信任过程,建立TPM与sTPM的可信链,实现sTPM对硬件TPM的可信复用。
需要说明的是,sTPM实例是sTPM的文件表现形式,sTPM实例中保存有sTPM的状态信息,sTPM实例与sTPM唯一对应。另外,sTPM的状态信息可以为sTPM的文件***、内存状态等运行信息,本发明实施例对此不做具体限定。
还需要说明的是,哈希运算是指将任意长度的二进制值映射为固定长度的较小二进制值,该较小二进制值称为哈希值,哈希值是一段数据唯一且极其紧凑的数值表示形式,也即是,每个sTPM实例都有其唯一且对应的哈希值。另外,源主机对sTPM实例进行哈希运算的过程可以参考相关技术,本发明实施例对此不进行详细阐述。
进一步地,源主机将sTPM实例的哈希值存储在度量列表之后,还可以通过硬件TPM中的指定寄存器对该度量列表进行密封,并清除密封前的度量列表,在TPM管理中心中只保留密封后的度量列表。其中,指定寄存器可以预先设置,例如,该指定寄存器可以为平台配置寄存器(英文:Platform Configuration Register,简称:PCR),当然,还可以是其它的寄存器,本发明实施例对此不做具体限定。
进一步地,当源主机通过指定寄存器对该度量列表进行密封时,源主机还可以通过指定寄存器中的指定位对该度量列表进行密封,指定位也可以预先设置,例如,指定位可以为该指定寄存器中的前八位PCR0-PCR7,本发明实施例同样对此不做具体限定。
其中,由于密封操作和解密封操作所使用的指定寄存器中的指定位上的数值必须相同,因此,当源主机通过指定寄存器中的指定位对度量列表进行密封时,源主机可以将指定位上的数值进行存储。而当源主机对密封后的度量列表进行解密封时,源主机需要获取当前时间该指定寄存器中指定位上的数值,并将获取的指定位上的数值与存储的指定位上的数值进行比较,当两者相同时,源主机才能对密封后的度量列表进行解密封。
需要说明的是,由于当源主机的基础环境发生变化时,指定位上的数值也会发生变化,而此时源主机将不能对密封后的度量列表进行解密封,因此,源主机通过对度量列表进行密封以及解密封的操作,不仅保证了度量列表的可信性,也间接验证了源主机的基础环境的可信性。其中,源主机的基础环境可以包括源主机中被保护的程序、代码等等,本发明实施例对此不做具体限定。
另外,源主机通过指定寄存器的指定位对度量列表进行密封时,源主机可以利用相关加密算法进行密封,例如,源主机可以利用哈希运算消息认证码(英文:Hash-basedMessage Authentication Code,简称:HMAC)算法、安全哈希算法(英文:Secure HashAlgorithm,简称:SHA1)等加密算法进行密封,本发明实施例对此不做具体限定。
其中,源主机建立sTPM与虚拟机之间的可信链时,源主机可以通过源主机上设置的TPM管理中心创建虚拟机实例,当该虚拟机为可信虚拟机时,TPM管理中心建立与该虚拟机对应的sTPM实例,并将该虚拟机实例与该sTPM实例,存储到虚拟机实例与sTPM实例的对应关系中。
需要说明的是,虚拟机实例是虚拟机的文件表现形式,虚拟机实例中保存有虚拟机的状态信息,虚拟机实例与虚拟机唯一对应。另外,虚拟机的状态信息可以为虚拟机的文件***、内存状态等运行信息,本发明实施例对此不做具体限定。另外,可信虚拟机是指虚拟机中部署有TPM驱动。再者,虚拟机实例与sTPM实例的对应关系由TPM管理中心进行维护。
由于sTPM可以为虚拟机提供TPM功能,且sTPM实例与sTPM唯一对应,虚拟机实例与虚拟机唯一对应,因此,可以通过虚拟机实例与sTPM实例的对应关系,实现sTPM与虚拟机之间的可信链,并且可以有效地避免sTPM被另一个虚拟机读取而发生安全信息泄漏。
需要说明的是,目的主机上每新建立一个虚拟机时,对自身进行可信环境初始化的操作与步骤401中源主机对自身进行可信环境初始化的操作相类似,本发明实施例在此不做赘述。
步骤402:当目的主机接收到源主机发送的迁移请求时,基于迁移请求中携带的目标虚拟机的迁移信息,向源主机发送迁移响应,迁移响应中携带迁移身份码。
具体地,目的主机基于迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例;对该临时sTPM实例进行哈希运算,得到该临时sTPM实例的哈希值;将该临时sTPM实例的哈希值确定为迁移身份码;向源主机发送迁移响应,该迁移响应中携带迁移身份码。
需要说明的是,临时sTPM实例为目的主机随机建立的sTPM实例。
其中,目的主机基于迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例时,目的主机基于迁移请求中携带的目标虚拟机的迁移信息,判断是否接受目标虚拟机的迁移,当接受目标虚拟机的迁移时,建立临时sTPM实例。
由于目的主机上的资源有限,因此目的主机所能承受的业务负载也是有限的,而为了避免当目标虚拟机迁移到目的主机上时,目的主机上的业务负载超出目的主机的业务负载极限,导致目标虚拟机不能正常运行,目的主机需要先基于自身的资源状况判断是否接受目标虚拟机的迁移。例如,当该迁移信息包括目标虚拟机运行时所需的内存时,目的主机可以获取自身剩余的内存容量,并基于该剩余的内存容量,判断是否接受目标虚拟机的迁移,当目的主机剩余的内存容量大于目标虚拟机运行时所需的内存时,目的主机接受目标虚拟机的迁移,否则,目的主机不接受目标虚拟机的迁移,从而保证目标虚拟机迁移到目的主机后可以正常运行。
步骤403:当源主机接收到目的主机返回的迁移响应时,源主机基于目标虚拟机中加载的目标sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文。
具体地,源主机生成目标sTPM实例的描述文件,该描述文件中包括目标sTPM实例的哈希值;基于该描述文件和迁移身份码,生成签章文件;基于签章文件的明文、目标sTPM实例的明文和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文。
需要说明的是,目标sTPM实例的描述文件与目标sTPM实例唯一对应。
其中,源主机基于描述文件和迁移身份码,生成签章文件时,源主机可以基于该描述文件中包括的哈希值和迁移身份码,按照指定格式生成签章文件。其中,该指定格式可以预先设置,例如,指定格式为“哈希值#迁移身份码”,描述文件中包括的哈希值为E8C636D,迁移身份码为86378BF,则可以按照指定格式,基于该描述文件中包括的哈希值与迁移身份码,生成的签章文件为E8C636D#86378BF。当然,目的主机也可以以其它方式生成签章文件,只要保证目的主机在接收到签章文件时,可以基于该签章文件,解析出描述文件和迁移身份码即可。
其中,源主机基于签章文件的明文、目标sTPM实例的明文和源主机的私钥,生成该签章文件的密文和目标sTPM实例的密文时,源主机可以基于签章文件的明文,对目标sTPM实例的明文进行加密,得到目标sTPM实例的密文;基于源主机的私钥,对签章文件的明文进行加密,得到该签章文件的密文。
另外,源主机可以利用相关加密算法对目标sTPM实例的明文以及对签章文件的明文进行加密,例如,源主机可以利用高级加密标准(英文:Advanced Encryption Standard简称:AES)算法、数字签名算法(英文:Digital Signature Algorithm,简称:DSA)等加密算法对目标sTPM实例的明文以及对签章文件的明文进行加密,本发明实施例对此不做具体限定。
进一步地,源主机基于目标虚拟机中加载的目标sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文之前,源主机可以对目标虚拟机中加载的目标sTPM实例进行备份,之后,源主机对目标虚拟机中加载的目标sTPM实例进行卸载。
为了保证在迁移过程中源主机的目标虚拟机上业务的运行连续性,在源主机卸载目标虚拟机中加载的目标sTPM实例以进行目标sTPM实例的迁移之前,源主机需要对目标sTPM实例进行备份,从而使源主机可以在进行目标sTPM实例的迁移时,通过备份的目标sTPM实例保证目标虚拟机的可信性,以维持目标虚拟机的运行状态,实现目标虚拟机上业务的连续性。
需要说明的是,由于sTPM借助软件模块来实现TPM功能,而sTPM实例为sTPM的文件表现形式,因此sTPM实例可以作为一个整体,在物理主机上进行卸载。例如,可以将该sTPM实例保存在通用串行总线(英文:Universal Serial Bus,简称:USB)设备中,由于USB设备具有可插拔性,从而可以通过断开USB设置,以卸载sTPM实例,当然,sTPM实例还可以以其它方式在物理主机上进行卸载,本发明实施例对此不做具体限定。
进一步地,源主机基于目标虚拟机中加载的目标sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文之前,源主机还可以向证书认证(英文:Certificate Authority,简称:CA)管理中心发送密钥获取请求,该密钥获取请求中携带源主机的数字证书,使CA管理中心基于源主机的数字证书返回源主机的私钥。
由于源主机需要基于源主机的私钥,对签章文件的明文进行加密,因此,源主机需要向CA管理中心请求源主机的私钥,具体地,源主机可以向CA管理中心发送密钥获取请求,当CA管理中心接收到该密钥获取请求时,可以基于密钥获取请求中携带的源主机的数字证书,对源主机的身份的真实性进行验证,当CA管理中心确认源主机的身份真实时,CA管理中心向源主机发送源主机的私钥。
需要说明的是,CA管理中心在向源主机发送源主机的私钥时,还可以将源主机的公钥在CA管理中心中进行公布,以使目的主机可以在CA管理中心中获取源主机的公钥,从而可以对源主机向目的主机发送的加密文件进行解密。
还需要说明的是,CA管理中心是证书授权机构,用于对称加密密钥的分发、身份认证、信息的完整性检验和交易防抵赖等,是安全电子信息交换的核心。
步骤404:源主机将签章文件的密文和目标sTPM实例的密文发送给目的主机。
源主机将签章文件的密文和目标sTPM实例的密文发送给目的主机时,由于签章文件中含有迁移身份码,而目标sTPM实例又是通过签章文件加密的,因此,在进行目标sTPM实例的迁移时,目标sTPM实例的迁移是与迁移身份码绑定的,由于迁移身份码是目的主机产生的,因此,可以有效避免目标sTPM实例迁移到目的主机之外的其它物理主机上。
需要说明的是,由于sTPM实例用于保证虚拟机的可信性,因此,在进行目标虚拟机的可信迁移时,需要先将目标虚拟机对应的目标sTPM实例进行迁移。
步骤405:当目的主机接收到源主机发送的签章文件的密文和目标sTPM实例的密文时,基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
具体地,目的主机基于源主机的公钥,对签章文件的密文进行解密,得到该签章文件的明文,源主机的公钥为目的主机从CA管理中心中获取得到;对该签章文件的明文进行解析,得到描述文件和迁移身份码;基于该签章文件的明文,对目标sTPM实例的密文进行解密,得到目标sTPM实例的明文;基于该描述文件、迁移身份码和目标sTPM实例的明文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
需要说明的是,由于CA管理中心中公布了源主机的公钥,因此,目的主机可以在CA管理中心中获取源主机的公钥,并基于源主机的公钥,对签章文件的密文进行解密。
其中,目的主机基于该描述文件、迁移身份码和目标sTPM实例的明文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链可以包括如下步骤(1)-(5):
(1)、目的主机基于迁移身份码,对签章文件的新鲜性进行验证。
由于迁移身份码为目的主机预先建立的临时sTPM实例的哈希值,迁移身份码与临时sTPM实例唯一对应,因此,目的主机可以基于迁移身份码,检验签章文件中解析出的迁移身份码与临时sTPM实例的迁移身份码是否相同,如果相同,则确定该签章文件的新鲜性验证通过,而由于源主机是通过签章文件加密目标sTPM实例,因此,也可以间接确定接收到的目标sTPM实例具有新鲜性,新鲜性是指接收到的目标sTPM实例为经目的主机同意迁移的源主机迁移的目标sTPM实例,如果不相同,则目的主机终止目标sTPM实例的迁移,从而可以避免除源主机之外的其它物理主机将sTPM实例迁移到目的主机上。
(2)、如果该签章文件的新鲜性验证通过,则目的主机基于该描述文件和目标sTPM实例的明文,对目标sTPM实例的完整性进行验证,该描述文件中包括目标sTPM实例的哈希值。
具体地,如果该签章文件的新鲜性验证通过,则目的主机基于目标sTPM实例的明文,确定目标sTPM实例的哈希值,如果确定的哈希值与该描述文件中包括的哈希值相同,则确定目标sTPM实例的完整性验证通过,否则,确定目标sTPM实例的完整性验证不通过。
由于每个sTPM实例都有其对应且唯一的哈希值,而描述文件中包括的哈希值是源主机对目标sTPM实例进行哈希运算得到,因此,目的主机可以先确定接收到的目标sTPM实例的哈希值,并将确定的哈希值与描述文件中包括的哈希值进行比较,如果相同,则确定接收的目标sTPM实例是完整的,如果不相同,则确定接收到的目标sTPM实例是不完整的,此时目的主机终止目标sTPM实例的迁移,从而可以当目标sTPM实例在迁移时发生数据泄露而变得不完整时,通过终止目标sTPM实例的迁移,有效避免黑客的攻击。
需要说明的是,该描述文件中不仅可以包括目标sTPM实例的哈希值,当然,该描述文件中还可以包括与目标sTPM实例唯一对应的其它内容,本发明实施例对此不做具体限定
(3)、如果目标sTPM实例的完整性验证通过,则目的主机基于目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表。
具体地,如果目标sTPM实例的完整性验证通过,则目的主机获取当前时间该指定寄存器的指定位上的数值,判断获取的指定位上的数值与密封该度量列表时所使用的指定位上的数值是否相同,当获取的指定位上的数值与密封该度量列表时所使用的指定位上的数值相同时,基于获取的指定位上的数值,对存储的度量列表进行解密封,否则,不对存储的度量列表进行解密封。
需要说明的是,指定寄存器为目的主机对度量列表进行密封时的寄存器。
(4)、目的主机将该描述文件中包括的哈希值存储在该临时度量列表中。
由于描述文件中包括的哈希值为目标sTPM实例的哈希值,目标sTPM实例的哈希值与目标sTPM实例唯一对应。因此,目的主机可将描述文件中包括的哈希值存储在临时度量列表中,通过临时度量列表的可信性保证目标sTPM实例的可信性。
(5)、目的主机基于目的主机的指定寄存器,对临时度量列表进行密封,以建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
由于硬件TPM可以保证TPM管理中心的可信性,而TPM管理中心可以保证存储的度量列表的可信性,由于临时度量列表为对存储的度量列表解密封后得到,因此,临时度量列表也具有可信性。而当目的主机将目标sTPM实例的哈希值存储在临时度量列表中时,目的主机可以通过该临时度量列表的可信性保证目标sTPM实例的哈希值的可信性,由于目标sTPM实例的哈希值与目标sTPM实例唯一对应,因此,可以通过目标sTPM实例的哈希值的可信性保证目标sTPM实例的可信性,从而当目的主机基于目的主机的指定寄存器,对该临时度量列表进行密封后,可以完成目标sTPM实例与目的主机的硬件TPM之间的可信链的建立。
步骤406:目的主机在建立目标sTPM实例与目的主机的硬件TPM之间的可信链之后,向源主机发送虚拟机迁移响应。
当目的主机完成目标sTPM实例的迁移后,目的主机可以向源主机发送虚拟机迁移响应,以表明可以开始将目标虚拟机动态迁移到目的主机上。
进一步地,目的主机向源主机发送虚拟机迁移响应之前,目的主机还可以建立空白虚拟机。
具体地,为了保证该空白虚拟机能够运行目标虚拟机所运行的业务,目的主机可以从迁移请求中获取目标虚拟机的大小,并基于目标虚拟机的大小,建立空白虚拟机,使该空白虚拟机的大小大于或等于目标虚拟机的大小。
需要说明的是,在目标虚拟机的动态迁移完成之前,目的主机都将控制该空白虚拟机处于停止状态。
步骤407:当源主机接收到目的主机发送的虚拟机迁移响应时,将目标虚拟机的虚拟机实例动态迁移到目的主机上。
需要说明的是,动态迁移是指在迁移目标虚拟机的虚拟机实例的过程中,源主机的目标虚拟机上的业务可以继续运行,也即是,源主机的目标虚拟机提供的服务并不中断。源主机将目标虚拟机的虚拟机实例动态迁移到目的主机上的过程可以参考相关技术,本发明实施例在此不进行详细阐述。
另外,源主机还可以查询目标虚拟机的虚拟机实例的动态迁移进度,当源主机查询到目标虚拟机的虚拟机实例的动态迁移没有完成时,源主机控制自身安装的目标虚拟机处于运行状态,当源主机查询到目标虚拟机的虚拟机实例的动态迁移已经完成时,源主机可以控制自身安装的目标虚拟机处于停止状态。
步骤408:当目的主机接收到源主机动态迁移的目标虚拟机的虚拟机实例时,基于目标虚拟机的虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链。
具体地,目的主机将目标虚拟机的虚拟机实例存储到空白虚拟机中,得到目的主机上的目标虚拟机;基于源主机动态迁移的目标虚拟机的虚拟机实例,将目标sTPM实例加载到目标虚拟机中。
需要说明的是,目的主机将目标虚拟机的虚拟机实例存储到空白虚拟机时,目的主机可以基于目标虚拟机的虚拟机实例配置该空白虚拟机,使该空白虚拟机可以运行目标虚拟机所运行的业务,提供目标虚拟机所提供的服务,从而得到目的主机上的目标虚拟机。
其中,目的主机基于源主机动态迁移的目标虚拟机的虚拟机实例,将目标sTPM实例加载到目标虚拟机中的操作可以为:目的主机基于目标虚拟机的虚拟机实例,从存储的虚拟机实例与sTPM实例之间的对应关系中,获取对应的sTPM实例;确定获取的sTPM实例的哈希值;基于目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;从该临时度量列表中,获取目标sTPM实例的哈希值;基于确定的哈希值与获取的哈希值,对获取的sTPM实例的完整性进行验证;如果获取的sTPM实例的完整性验证通过,则将获取的sTPM实例确定为目标sTPM实例,并加载到目标虚拟机中。
由于目标sTPM实例用于保证目标虚拟机的可信性,因此,目标虚拟机和目标sTPM实例必须同时使用,因而当启动目标虚拟机时,需要加载目标虚拟机对应的sTPM实例,而在加载该sTPM实例时,需要对该sTPM实例的完整性进行验证,当该sTPM实例的完整性验证通过时,目的主机进行加载操作,否则,目的主机终止加载操作。
其中,目的主机对目标sTPM实例的完整性进行验证的过程与上述步骤405中的步骤(2)类似,本发明实施例在此不再进行赘述。
需要说明的是,由于sTPM借助软件模块来实现TPM功能,而sTPM实例为sTPM的文件表现形式,因此sTPM实例可以作为一个整体,在物理主机上进行加载。例如,可以将目标sTPM实例保存在USB设备中,当虚拟机动态迁移完成后,目的主机可以连接该USB设备,以USB驱动方式加载目标sTPM实例,从而可以快速建立目标虚拟机与目标sTPM实例之间的可信链。同时,由于sTPM实例可以作为一个整体,简单方便的在物理主机上进行加载和卸载,因此,sTPM实例具有较高的使用和迁移的灵活性。
还需要说明的是,当目的主机关闭虚拟机时,目的主机需要退出该虚拟机对应sTPM实例,而在目的主机退出该虚拟机对应的sTPM实例时,目的主机可以对该sTPM实例进行哈希运算,得到该sTPM实例的哈希值,并将该哈希值更新到度量列表中,从而保证度量列表的实时性和可信性。
进一步地,目的主机基于源主机动态迁移的虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链之前,目的主机还可以将目标虚拟机的虚拟机实例和目标sTPM实例,存储到虚拟机实例与sTPM实例之间的对应关系中。
更进一步地,目的主机从临时度量列表中,获取目标sTPM实例的哈希值之后,目的主机还可以基于目的主机的指定寄存器,对临时度量列表进行密封。
需要说明的是,当目的主机建立目标虚拟机与目标sTPM实例之间的可信链,也即是完成目标虚拟机的迁移之后,目的主机可以控制目标虚拟机处于运行状态,继续运行业务,且目的主机还可以向源主机发送删除请求,使源主机基于该删除请求,删除备份的目标sTPM实例和目标虚拟机的虚拟机实例,以节省源主机上的存储空间,减轻源主机的负载。
还需要说明的是,源主机删除备份的目标sTPM实例和目标虚拟机的虚拟机实例时,源主机可以基于目标虚拟机的虚拟机实例,从存储的虚拟机实例与sTPM实例的对应关系中,获取目标sTPM实例,并将该对应关系中的目标sTPM实例和目标虚拟机的虚拟机实例进行删除,之后,源主机删除备份的目标sTPM实例,从而可以保证源主机上sTPM实例和虚拟机实例的一致性。
本发明实施例中,源主机向目的主机发送迁移请求,目的主机基于迁移请求,向源主机发送迁移响应,以进行目标虚拟机的可信迁移,源主机将目标虚拟机对应的目标sTPM实例进行备份,并将目标sTPM实例静态迁移到目的主机上,而在目的主机已经具有可信运行环境的基础上,目的主机通过目的主机上的度量列表,可以快速建立目标sTPM实例与目的主机的硬件TPM之间的可信链,之后,目的主机向源主机发送虚拟机迁移响应,源主机将目标虚拟机的虚拟机实例动态迁移到目的主机上,目的主机可以简单方便地加载目标sTPM实例,快速建立目标虚拟机与目标sTPM实例之间的可信链,从而快速建立了目标虚拟机在目的主机上的可信性,以恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率,并且由于目标sTPM实例可以简单方便的在源主机和目的主机上进行卸载和加载,因此,也提高了sTPM实例使用和迁移的灵活性。
图5是本发明实施例提供的一种虚拟机可信迁移装置的结构示意图。参见图5,该装置包括:
第一发送模块501,用于向目的主机发送迁移请求,迁移请求中携带目标虚拟机的迁移信息,以使目的主机基于迁移信息进行迁移响应,迁移响应中携带迁移身份码;
生成模块502,用于当接收到目的主机返回的迁移响应时,基于目标虚拟机中加载的目标软件可信平台模块sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文;
第二发送模块503,用于将签章文件的密文和目标sTPM实例的密文发送给目的主机,以使目的主机基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链;
迁移模块504,用于当接收到目的主机发送的虚拟机迁移响应时,将目标虚拟机的虚拟机实例动态迁移到目的主机上,以使目的主机基于虚拟机实例建立目标虚拟机与目标sTPM实例之间的可信链。
可选地,如图6所示,该生成模块502包括:
第一生成单元5021,用于生成目标sTPM实例的描述文件;
第二生成单元5022,用于基于描述文件和迁移身份码,生成签章文件;
第三生成单元5023,用于基于签章文件的明文、目标sTPM实例的明文和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文。
可选地,如图7所示,该第三生成单元5023包括:
第一加密子单元50231,用于基于签章文件的明文,对目标sTPM实例的明文进行加密,得到目标sTPM实例的密文;
第二加密子单元50232,用于基于源主机的私钥,对签章文件的明文进行加密,得到签章文件的密文。
可选地,如图8所示,该装置还包括:
备份模块505,用于对目标虚拟机中加载的目标sTPM实例进行备份;
卸载模块506,用于对目标虚拟机中加载的目标sTPM实例进行卸载。
可选地,如图9所示,该装置还包括:
第三发送模块507,用于向证书认证CA管理中心发送密钥获取请求,密钥获取请求中携带源主机的数字证书,以使CA管理中心基于源主机的数字证书返回源主机的私钥;
接收模块508,用于接收CA管理中心返回的源主机的私钥。
可选地,如图10所示,该装置还包括:
删除模块509,用于当接收到目的主机发送的删除请求时,删除备份的目标sTPM实例和目标虚拟机的虚拟机实例。
在本发明实施例中,源主机基于目标虚拟机中加载的目标sTPM实例的明文、目的主机发送的迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文,并将签章文件的密文和目标sTPM实例的密文发送给目的主机,使目的主机建立目标sTPM实例与目的主机的硬件TPM之间的可信链,之后,目的主机再将目标虚拟机的虚拟机实例动态迁移到目的主机上,使目的主机基于虚拟机实例建立目标虚拟机与目标sTPM实例之间的可信链,以完成目标虚拟机的迁移,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,快速建立了目标虚拟机在目的主机上的可信性,以恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
图11是本发明实施例提供的一种虚拟机可信迁移装置的结构示意图。参见图11,该装置包括:
第一发送模块601,用于当接收到源主机发送的迁移请求时,基于迁移请求中携带的目标虚拟机的迁移信息,向源主机发送迁移响应,迁移响应中携带迁移身份码,以使源主机基于迁移身份码返回签章文件的密文和目标虚拟机中加载的目标软件可信平台模块sTPM实例的密文;
第一建立模块602,用于当接收到源主机发送的签章文件的密文和目标sTPM实例的密文时,基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链;
第二发送模块603,用于在建立目标sTPM实例与目的主机的硬件TPM之间的可信链之后,向源主机发送虚拟机迁移响应,以使源主机将目标虚拟机的虚拟机实例动态迁移到目的主机上;
第二建立模块604,用于当接收到源主机动态迁移的目标虚拟机的虚拟机实例时,基于虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链。
可选地,如图12所示,该第一发送模块601包括:
第一建立单元6011,用于基于迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例;
运算单元6012,用于对临时sTPM实例进行哈希运算,得到临时sTPM实例的哈希值;
确定单元6013,用于将临时sTPM实例的哈希值确定为迁移身份码;
发送单元6014,用于向源主机发送迁移响应,迁移响应中携带迁移身份码。
可选地,如图13所示,该第一建立单元6011包括:
判断子单元60111,用于基于迁移请求中携带的目标虚拟机的迁移信息,判断是否接受虚拟机的迁移;
建立子单元60112,用于当接受虚拟机的迁移时,建立临时sTPM实例。
可选地,如图14所示,该第一建立模块602包括:
第一解密单元6021,用于基于源主机的公钥,对签章文件的密文进行解密,得到签章文件的明文,源主机的公钥为目的主机从证书认证CA管理中心中获取得到;
解析单元6022,用于对签章文件的明文进行解析,得到描述文件和迁移身份码;
第二解密单元6023,用于基于签章文件的明文,对目标sTPM实例的密文进行解密,得到目标sTPM实例的明文;
第二建立单元6024,用于基于描述文件、迁移身份码和目标sTPM实例的明文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
可选地,如图15所示,该第二建立单元6024包括:
第一验证子单元60241,用于基于迁移身份码,对签章文件的新鲜性进行验证;
第二验证子单元60242,用于如果签章文件的新鲜性验证通过,则基于描述文件和目标sTPM实例的明文,对目标sTPM实例的完整性进行验证,该描述文件中包括目标sTPM实例的哈希值;
第一解密封子单元60243,用于如果目标sTPM实例的完整性验证通过,则基于目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
存储子单元60244,用于将描述文件中包括的哈希值存储在临时度量列表中;
第一密封子单元60245,用于基于目的主机的指定寄存器,对临时度量列表进行密封,以建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
可选地,如图16所示,该第二验证子单元60242包括:
第一确定子单元602421,用于基于目标sTPM实例的明文,确定目标sTPM实例的哈希值;
第二确定子单元602424,用于如果确定的哈希值与描述文件中包括的哈希值相同,则确定目标sTPM实例的完整性验证通过,否则,确定目标sTPM实例的完整性验证不通过。
可选地,如图17所示,该装置还包括:
第三建立模块605,用于建立空白虚拟机;
相应地,如图18所示,该第二建立模块604包括:
第一存储单元6041,用于将目标虚拟机的虚拟机实例存储到空白虚拟机中,得到目的主机上的目标虚拟机;
加载单元6042,用于基于虚拟机实例,将目标sTPM实例加载到目标虚拟机中。
可选地,如图19所示,该加载单元6042包括:
第一获取子单元60421,用于基于虚拟机实例,从存储的虚拟机实例与sTPM实例之间的对应关系中,获取对应的sTPM实例;
第三确定子单元60422,用于确定获取的sTPM实例的哈希值;
第二解密封子单元60423,用于基于目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
第二获取子单元60424,用于从临时度量列表中,获取目标sTPM实例的哈希值;
第三验证子单元60425,用于基于确定的哈希值与获取的哈希值,对获取的sTPM实例的完整性进行验证;
第四确定子单元60426,用于如果获取的sTPM实例的完整性验证通过,则将获取的sTPM实例确定为目标sTPM实例,并加载到目标虚拟机中。
可选地,如图20所示,该装置还包括:
存储模块606,用于将目标虚拟机的虚拟机实例和目标sTPM实例,存储到虚拟机实例与sTPM实例之间的对应关系中。
可选地,如图21所示,该加载单元6042还包括:
第二密封子单元60427,用于基于目的主机的指定寄存器,对临时度量列表进行密封。
在本发明实施例中,源主机基于目的主机发送的迁移身份码返回签章文件的密文和目标虚拟机中加载的目标sTPM实例的密文,目的主机基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链,并在接收到源主机动态迁移的目标虚拟机的虚拟机实例时,基于虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链,完成目标虚拟机的迁移,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,快速建立了目标虚拟机在目的主机上的可信性,以恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
需要说明的是:上述实施例提供的虚拟机可信迁移装置在虚拟机可信迁移时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟机可信迁移的装置与虚拟机可信迁移的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图22是本发明实施例提供的一种虚拟机可信迁移装置结构示意图,参见图22,该装置包括发射机2201、接收机2202、存储器2203、处理器2204和通信总线2205,包括:
存储器2203,用于存储消息和数据;
发射机2201,用于向目的主机发送迁移请求,迁移请求中携带目标虚拟机的迁移信息,以使目的主机基于迁移信息进行迁移响应,迁移响应中携带迁移身份码;
处理器2204,用于当接收到目的主机返回的迁移响应时,基于目标虚拟机中加载的目标软件可信平台模块sTPM实例的明文、迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文;
发射机2201,还用于将签章文件的密文和目标sTPM实例的密文发送给目的主机,以使目的主机基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链;
处理器2204,用于当接收到目的主机发送的虚拟机迁移响应时,将目标虚拟机的虚拟机实例动态迁移到目的主机上,以使目的主机基于虚拟机实例建立目标虚拟机与目标sTPM实例之间的可信链。
可选地,处理器2204还用于:
生成目标sTPM实例的描述文件;
基于描述文件和迁移身份码,生成签章文件;
基于签章文件的明文、目标sTPM实例的明文和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文。
可选地,处理器2204还用于:
基于签章文件的明文,对目标sTPM实例的明文进行加密,得到目标sTPM实例的密文;
基于源主机的私钥,对签章文件的明文进行加密,得到签章文件的密文。
可选地,处理器2204还用于:
对目标虚拟机中加载的目标sTPM实例进行备份;
对目标虚拟机中加载的目标sTPM实例进行卸载。
可选地,发射机2201还用于:
向证书认证CA管理中心发送密钥获取请求,密钥获取请求中携带源主机的数字证书,以使CA管理中心基于源主机的数字证书返回源主机的私钥。
可选地,接收机2202还用于:
接收CA管理中心返回的源主机的私钥。
可选地,处理器2204还用于:
当接收到目的主机发送的删除请求时,删除备份的目标sTPM实例和目标虚拟机的虚拟机实例。
其中,处理器2204可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。这些指令可以通过其中的处理器以配合实现及控制,用于执行本发明实施例揭示的方法。上述处理器还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(application specific integrated circuit)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
其中,上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
另外,虚拟机可信迁移装置的各个硬件组件通过通信总线2205耦合在一起,其中通信总线2205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明,在图22中将各种总线都标为通信总线2205。
本装置实施例中提供的一种虚拟机可信迁移装置,可以集成在第二服务器网元设备中,应用于方法实施例附图2所示的场景中,实现虚拟机可信迁移装置的功能。虚拟机可信迁移装置可以实现的其他附加功能、以及与其他网元设备的交互过程,请参照方法实施例中对虚拟机可信迁移装置的描述,在这里不再赘述。
在本发明实施例中,源主机基于目标虚拟机中加载的目标sTPM实例的明文、目的主机发送的迁移身份码和源主机的私钥,生成签章文件的密文和目标sTPM实例的密文,并将签章文件的密文和目标sTPM实例的密文发送给目的主机,使目的主机建立目标sTPM实例与目的主机的硬件TPM之间的可信链,之后,目的主机再将目标虚拟机的虚拟机实例动态迁移到目的主机上,使目的主机基于虚拟机实例建立目标虚拟机与目标sTPM实例之间的可信链,以完成目标虚拟机的迁移,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,快速建立了目标虚拟机在目的主机上的可信性,以恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
图23是本发明实施例提供的一种虚拟机可信迁移装置结构示意图,参见图23,该装置包括发射机2301、接收机2302、存储器2303、处理器2304和通信总线2305,包括:
存储器2303,用于存储消息和数据;
发射机2301,用于当接收到源主机发送的迁移请求时,基于迁移请求中携带的目标虚拟机的迁移信息,向源主机发送迁移响应,迁移响应中携带迁移身份码,以使源主机基于迁移身份码返回签章文件的密文和目标虚拟机中加载的目标软件可信平台模块sTPM实例的密文;
处理器2304,用于当接收到源主机发送的签章文件的密文和目标sTPM实例的密文时,基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链;
发射机2301,用于在建立目标sTPM实例与目的主机的硬件TPM之间的可信链之后,向源主机发送虚拟机迁移响应,以使源主机将目标虚拟机的虚拟机实例动态迁移到目的主机上;
处理器2304,用于当接收到源主机动态迁移的目标虚拟机的虚拟机实例时,基于虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链。
可选地,处理器2304还用于:
基于迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例;
对临时sTPM实例进行哈希运算,得到临时sTPM实例的哈希值;
将临时sTPM实例的哈希值确定为迁移身份码;
向源主机发送迁移响应,迁移响应中携带迁移身份码。
可选地,处理器2304还用于:
基于迁移请求中携带的目标虚拟机的迁移信息,判断是否接受虚拟机的迁移;
当接受虚拟机的迁移时,建立临时sTPM实例。
可选地,处理器2304还用于:
基于源主机的公钥,对签章文件的密文进行解密,得到签章文件的明文,源主机的公钥为目的主机从CA管理中心中获取得到;
对签章文件的明文进行解析,得到描述文件和迁移身份码;
基于签章文件的明文,对目标sTPM实例的密文进行解密,得到目标sTPM实例的明文;
基于描述文件、迁移身份码和目标sTPM实例的明文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
可选地,处理器2304还用于:
基于迁移身份码,对签章文件的新鲜性进行验证;
如果签章文件的新鲜性验证通过,则基于描述文件和目标sTPM实例的明文,对目标sTPM实例的完整性进行验证,该描述文件中包括目标sTPM实例的哈希值;
如果目标sTPM实例的完整性验证通过,则基于目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
将描述文件中包括的哈希值存储在临时度量列表中;
基于目的主机的指定寄存器,对临时度量列表进行密封,以建立目标sTPM实例与目的主机的硬件TPM之间的可信链。
可选地,处理器2304还用于:
基于目标sTPM实例的明文,确定目标sTPM实例的哈希值;
如果确定的哈希值与描述文件中包括的哈希值相同,则确定目标sTPM实例的完整性验证通过,否则,确定目标sTPM实例的完整性验证不通过。
可选地,处理器2304还用于:
建立空白虚拟机;
相应地,处理器2304还用于:
将目标虚拟机的虚拟机实例存储到空白虚拟机中,得到目的主机上的目标虚拟机;
基于虚拟机实例,将目标sTPM实例加载到目标虚拟机中。
可选地,处理器2304还用于:
基于虚拟机实例,从存储的虚拟机实例与sTPM实例之间的对应关系中,获取对应的sTPM实例;
确定获取的sTPM实例的哈希值;
基于目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
从临时度量列表中,获取目标sTPM实例的哈希值;
基于确定的哈希值与获取的哈希值,对获取的sTPM实例的完整性进行验证;
如果获取的sTPM实例的完整性验证通过,则将获取的sTPM实例确定为目标sTPM实例,并加载到目标虚拟机中。
可选地,存储器2303还用于:
将目标虚拟机的虚拟机实例和目标sTPM实例,存储到虚拟机实例与sTPM实例之间的对应关系中。
可选地,处理器2304还用于:
基于目的主机的指定寄存器,对临时度量列表进行密封。
其中,处理器2304可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。这些指令可以通过其中的处理器以配合实现及控制,用于执行本发明实施例揭示的方法。上述处理器还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(application specific integrated circuit)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
其中,上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
另外,虚拟机可信迁移装置的各个硬件组件通过通信总线2305耦合在一起,其中通信总线2305除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明,在图23中将各种总线都标为通信总线2305。
本装置实施例中提供的一种虚拟机可信迁移装置,可以集成在第二服务器网元设备中,应用于方法实施例附图3所示的场景中,实现虚拟机可信迁移装置的功能。虚拟机可信迁移装置可以实现的其他附加功能、以及与其他网元设备的交互过程,请参照方法实施例中对虚拟机可信迁移装置的描述,在这里不再赘述。
在本发明实施例中,源主机基于目的主机发送的迁移身份码返回签章文件的密文和目标虚拟机中加载的目标sTPM实例的密文,目的主机基于签章文件的密文和目标sTPM实例的密文,建立目标sTPM实例与目的主机的硬件TPM之间的可信链,并在接收到源主机动态迁移的目标虚拟机的虚拟机实例时,基于虚拟机实例,建立目标虚拟机与目标sTPM实例之间的可信链,完成目标虚拟机的迁移,不仅保证了目标sTPM实例和目标虚拟机在迁移前后的一致性和可用性,而且在目的主机已经具有可信运行环境的基础上,通过建立目的主机上的硬件TPM与目标sTPM实例之间的可信链,以及建立目标sTPM实例与目标虚拟机之间的可信链,快速建立了目标虚拟机在目的主机上的可信性,以恢复目的主机上目标虚拟机的运行,提高了目标虚拟机的可信迁移效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (30)
1.一种虚拟机可信迁移方法,其特征在于,所述方法包括:
源主机向目的主机发送迁移请求,所述迁移请求中携带目标虚拟机的迁移信息,以使所述目的主机基于所述迁移信息进行迁移响应,所述迁移响应中携带迁移身份码;
当所述源主机接收到所述目的主机返回的所述迁移响应时,基于所述目标虚拟机中加载的目标sTPM实例的明文、所述迁移身份码和所述源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文;
所述源主机将所述签章文件的密文和所述目标sTPM实例的密文发送给所述目的主机,以使所述目的主机基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链;
当所述源主机接收到所述目的主机发送的虚拟机迁移响应时,将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上,以使所述目的主机基于所述虚拟机实例建立所述目标虚拟机与所述目标sTPM实例之间的可信链。
2.如权利要求1所述的方法,其特征在于,所述源主机基于所述目标虚拟机对应的目标sTPM实例的明文、所述迁移身份码和所述源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文,包括:
所述源主机生成所述目标sTPM实例的描述文件;
所述源主机基于所述描述文件和所述迁移身份码,生成签章文件;
所述源主机基于所述签章文件的明文、所述目标sTPM实例的明文和所述源主机的私钥,生成所述签章文件的密文和所述目标sTPM实例的密文。
3.如权利要求1或2所述的方法,其特征在于,所述源主机基于所述目标虚拟机中加载的目标软件可信平台模块sTPM实例的明文、所述迁移身份码和所述源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文之前,还包括:
所述源主机对所述目标虚拟机中加载的目标sTPM实例进行备份;
所述源主机对所述目标虚拟机中加载的目标sTPM实例进行卸载。
4.如权利要求1或2所述的方法,其特征在于,所述源主机基于所述目标虚拟机中加载的目标sTPM实例的明文、所述迁移身份码和所述源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文之前,还包括:
所述源主机向CA管理中心发送密钥获取请求,所述密钥获取请求中携带所述源主机的数字证书,以使所述CA管理中心基于所述源主机的数字证书返回所述源主机的私钥;
所述源主机接收所述CA管理中心返回的所述源主机的私钥。
5.如权利要求1所述的方法,其特征在于,所述源主机将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上之后,还包括:
当所述源主机接收到所述目的主机发送的删除请求时,删除备份的目标sTPM实例和所述目标虚拟机的虚拟机实例。
6.一种虚拟机可信迁移方法,其特征在于,所述方法包括:
当目的主机接收到源主机发送的迁移请求时,基于所述迁移请求中携带的目标虚拟机的迁移信息,向所述源主机发送迁移响应,所述迁移响应中携带迁移身份码,以使所述源主机基于所述迁移身份码返回签章文件的密文和所述目标虚拟机中加载的目标sTPM实例的密文;
当所述目的主机接收到所述源主机发送的所述签章文件的密文和所述目标sTPM实例的密文时,基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链;
在所述目的主机建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链之后,向所述源主机发送虚拟机迁移响应,以使所述源主机将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上;
当所述目的主机接收到所述源主机动态迁移的所述目标虚拟机的虚拟机实例时,基于所述虚拟机实例,建立所述目标虚拟机与所述目标sTPM实例之间的可信链。
7.如权利要求6所述的方法,其特征在于,所述目的主机基于所述迁移请求中携带的目标虚拟机的迁移信息,向所述源主机发送迁移响应,包括:
所述目的主机基于所述迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例;
所述目的主机对所述临时sTPM实例进行哈希运算,得到所述临时sTPM实例的哈希值;
所述目的主机将所述临时sTPM实例的哈希值确定为迁移身份码;
所述目的主机向所述源主机发送迁移响应,所述迁移响应中携带所述迁移身份码。
8.如权利要求7所述的方法,其特征在于,所述目的主机基于所述迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例,包括:
所述目的主机基于所述迁移请求中携带的目标虚拟机的迁移信息,判断是否接受所述虚拟机的迁移;
当所述目的主机接受所述虚拟机的迁移时,建立临时sTPM实例。
9.如权利要求6所述的方法,其特征在于,所述目的主机基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链,包括:
所述目的主机基于所述源主机的公钥,对所述签章文件的密文进行解密,得到所述签章文件的明文,所述源主机的公钥为所述目的主机从证书认证CA管理中心中获取得到;
所述目的主机对所述签章文件的明文进行解析,得到描述文件和迁移身份码;
所述目的主机基于所述签章文件的明文,对所述目标sTPM实例的密文进行解密,得到所述目标sTPM实例的明文;
所述目的主机基于所述描述文件、所述迁移身份码和所述目标sTPM实例的明文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链。
10.如权利要求9所述的方法,其特征在于,所述目的主机基于所述描述文件、所述迁移身份码和所述目标sTPM实例的明文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链,包括:
所述目的主机基于所述迁移身份码,对所述签章文件的新鲜性进行验证;
如果所述签章文件的新鲜性验证通过,则所述目的主机基于所述描述文件和所述目标sTPM实例的明文,对所述目标sTPM实例的完整性进行验证,所述描述文件中包括所述目标sTPM实例的哈希值;
如果所述目标sTPM实例的完整性验证通过,则所述目的主机基于所述目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
所述目的主机将所述描述文件中包括的哈希值存储在所述临时度量列表中;
所述目的主机基于所述目的主机的指定寄存器,对所述临时度量列表进行密封,以建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链。
11.如权利要求10所述的方法,其特征在于,所述目的主机基于所述描述文件和所述目标sTPM实例的明文,对所述目标sTPM实例的完整性进行验证,包括:
所述目的主机基于所述目标sTPM实例的明文,确定所述目标sTPM实例的哈希值;
如果确定的哈希值与所述描述文件中包括的哈希值相同,则所述目的主机确定所述目标sTPM实例的完整性验证通过,否则,所述目的主机确定所述目标sTPM实例的完整性验证不通过。
12.如权利要求6所述的方法,其特征在于,所述目的主机向所述源主机发送虚拟机迁移响应之前,还包括:
所述目的主机建立空白虚拟机;
相应地,所述目的主机基于所述虚拟机实例,建立所述目标虚拟机与所述目标sTPM实例之间的可信链,包括:
所述目的主机将所述目标虚拟机的虚拟机实例存储到所述空白虚拟机中,得到所述目的主机上的目标虚拟机;
所述目的主机基于所述虚拟机实例,将所述目标sTPM实例加载到所述目标虚拟机中。
13.如权利要求12所述的方法,其特征在于,所述目的主机基于所述虚拟机实例,将所述目标sTPM实例加载到所述目标虚拟机中,包括:
所述目的主机基于所述虚拟机实例,从存储的虚拟机实例与sTPM实例之间的对应关系中,获取对应的sTPM实例;
所述目的主机确定获取的sTPM实例的哈希值;
所述目的主机基于所述目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
所述目的主机从所述临时度量列表中,获取所述目标sTPM实例的哈希值;
所述目的主机基于确定的哈希值与获取的哈希值,对所述获取的sTPM实例的完整性进行验证;
如果所述获取的sTPM实例的完整性验证通过,则所述目的主机将所述获取的sTPM实例确定为所述目标sTPM实例,并加载到所述目标虚拟机中。
14.如权利要求13所述的方法,其特征在于,所述目的主机基于所述虚拟机实例,建立所述目标虚拟机与所述目标sTPM实例之间的可信链之前,还包括:
所述目的主机将所述目标虚拟机的虚拟机实例和所述目标sTPM实例,存储到虚拟机实例与sTPM实例之间的对应关系中。
15.如权利要求13所述的方法,其特征在于,所述目的主机从所述临时度量列表中,获取所述目标sTPM实例的哈希值之后,还包括:
所述目的主机基于所述目的主机的指定寄存器,对所述临时度量列表进行密封。
16.一种虚拟机可信迁移装置,其特征在于,所述装置包括:
第一发送模块,用于向目的主机发送迁移请求,所述迁移请求中携带目标虚拟机的迁移信息,以使所述目的主机基于所述迁移信息进行迁移响应,所述迁移响应中携带迁移身份码;
生成模块,用于当接收到所述目的主机返回的所述迁移响应时,基于所述目标虚拟机中加载的目标sTPM实例的明文、所述迁移身份码和源主机的私钥,生成签章文件的密文和所述目标sTPM实例的密文;
第二发送模块,用于将所述签章文件的密文和所述目标sTPM实例的密文发送给所述目的主机,以使所述目的主机基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链;
迁移模块,用于当接收到所述目的主机发送的虚拟机迁移响应时,将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上,以使所述目的主机基于所述虚拟机实例建立所述目标虚拟机与所述目标sTPM实例之间的可信链。
17.如权利要求16所述的装置,其特征在于,所述生成模块包括:
第一生成单元,用于生成所述目标sTPM实例的描述文件;
第二生成单元,用于基于所述描述文件和所述迁移身份码,生成签章文件;
第三生成单元,用于基于所述签章文件的明文、所述目标sTPM实例的明文和所述源主机的私钥,生成所述签章文件的密文和所述目标sTPM实例的密文。
18.如权利要求16或17所述的装置,其特征在于,所述装置还包括:
备份模块,用于对所述目标虚拟机中加载的目标sTPM实例进行备份;
卸载模块,用于对所述目标虚拟机中加载的目标sTPM实例进行卸载。
19.如权利要求16或17所述的装置,其特征在于,所述装置还包括:
第三发送模块,用于向CA管理中心发送密钥获取请求,所述密钥获取请求中携带所述源主机的数字证书,使所述CA管理中心基于所述源主机的数字证书返回所述源主机的私钥;
接收模块,用于接收所述CA管理中心返回的所述源主机的私钥。
20.如权利要求16所述的装置,其特征在于,所述装置还包括:
删除模块,用于当接收到所述目的主机发送的删除请求时,删除备份的目标sTPM实例和所述目标虚拟机的虚拟机实例。
21.一种虚拟机可信迁移装置,其特征在于,所述装置包括:
第一发送模块,用于当接收到源主机发送的迁移请求时,基于所述迁移请求中携带的目标虚拟机的迁移信息,向所述源主机发送迁移响应,所述迁移响应中携带迁移身份码,以使所述源主机基于所述迁移身份码返回签章文件的密文和所述目标虚拟机中加载的目标sTPM实例的密文;
第一建立模块,用于当接收到所述源主机发送的所述签章文件的密文和所述目标sTPM实例的密文时,基于所述签章文件的密文和所述目标sTPM实例的密文,建立所述目标sTPM实例与目的主机的硬件TPM之间的可信链;
第二发送模块,用于在建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链之后,向所述源主机发送虚拟机迁移响应,以使所述源主机将所述目标虚拟机的虚拟机实例动态迁移到所述目的主机上;
第二建立模块,用于当接收到所述源主机动态迁移的所述目标虚拟机的虚拟机实例时,基于所述虚拟机实例,建立所述目标虚拟机与所述目标sTPM实例之间的可信链。
22.如权利要求21所述的装置,其特征在于,所述第一发送模块包括:
第一建立单元,用于基于所述迁移请求中携带的目标虚拟机的迁移信息,建立临时sTPM实例;
运算单元,用于对所述临时sTPM实例进行哈希运算,得到所述临时sTPM实例的哈希值;
确定单元,用于将所述临时sTPM实例的哈希值确定为迁移身份码;
发送单元,用于向所述源主机发送迁移响应,所述迁移响应中携带所述迁移身份码。
23.如权利要求22所述的装置,其特征在于,所述第一建立单元包括:
判断子单元,用于基于所述迁移请求中携带的目标虚拟机的迁移信息,判断是否接受所述虚拟机的迁移;
建立子单元,用于当接受所述虚拟机的迁移时,建立临时sTPM实例。
24.如权利要求21所述的装置,其特征在于,所述第一建立模块包括:
第一解密单元,用于基于所述源主机的公钥,对所述签章文件的密文进行解密,得到所述签章文件的明文,所述源主机的公钥为所述目的主机从证书认证CA管理中心中获取得到;
解析单元,用于对所述签章文件的明文进行解析,得到描述文件和迁移身份码;
第二解密单元,用于基于所述签章文件的明文,对所述目标sTPM实例的密文进行解密,得到所述目标sTPM实例的明文;
第二建立单元,用于基于所述描述文件、所述迁移身份码和所述目标sTPM实例的明文,建立所述目标sTPM实例与目的主机的硬件TPM之间的可信链。
25.如权利要求24所述的装置,其特征在于,所述第二建立单元包括:
第一验证子单元,用于基于所述迁移身份码,对所述签章文件的新鲜性进行验证;
第二验证子单元,用于如果所述签章文件的新鲜性验证通过,则基于所述描述文件和所述目标sTPM实例的明文,对所述目标sTPM实例的完整性进行验证,所述描述文件中包括所述目标sTPM实例的哈希值;
第一解密封子单元,用于如果所述目标sTPM实例的完整性验证通过,则基于所述目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
存储子单元,用于将所述描述文件中包括的哈希值存储在所述临时度量列表中;
第一密封子单元,用于基于所述目的主机的指定寄存器,对所述临时度量列表进行密封,以建立所述目标sTPM实例与所述目的主机的硬件TPM之间的可信链。
26.如权利要求25所述的装置,其特征在于,所述第二验证子单元包括:
第一确定子单元,用于基于所述目标sTPM实例的明文,确定所述目标sTPM实例的哈希值;
第二确定子单元,用于如果确定的哈希值与所述描述文件中包括的哈希值相同,则确定所述目标sTPM实例的完整性验证通过,否则,确定所述目标sTPM实例的完整性验证不通过。
27.如权利要求21所述的装置,其特征在于,所述装置还包括:
第三建立模块,用于建立空白虚拟机;
相应地,基于第二建立模块包括:
第一存储单元,用于将所述目标虚拟机的虚拟机实例存储到所述空白虚拟机中,得到所述目的主机上的目标虚拟机;
加载单元,用于基于所述虚拟机实例,将所述目标sTPM实例加载到所述目标虚拟机中。
28.如权利要求27所述的装置,其特征在于,所述加载单元包括:
第一获取子单元,用于基于所述虚拟机实例,从存储的虚拟机实例与sTPM实例之间的对应关系中,获取对应的sTPM实例;
第三确定子单元,用于确定获取的sTPM实例的哈希值;
第二解密封子单元,用于基于所述目的主机的指定寄存器,对存储的度量列表进行解密封,得到临时度量列表;
第二获取子单元,用于从所述临时度量列表中,获取所述目标sTPM实例的哈希值;
第三验证子单元,用于基于确定的哈希值与获取的哈希值,对所述获取的sTPM实例的完整性进行验证;
第四确定子单元,用于如果所述获取的sTPM实例的完整性验证通过,则将所述获取的sTPM实例确定为所述目标sTPM实例,并加载到所述目标虚拟机中。
29.如权利要求28所述的装置,其特征在于,所述装置还包括:
存储模块,用于将所述目标虚拟机的虚拟机实例和所述目标sTPM实例,存储到虚拟机实例与sTPM实例之间的对应关系中。
30.如权利要求28所述的装置,其特征在于,所述加载单元还包括:
第二密封子单元,用于基于所述目的主机的指定寄存器,对所述临时度量列表进行密封。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510688110.6A CN106610863B (zh) | 2015-10-21 | 2015-10-21 | 虚拟机可信迁移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510688110.6A CN106610863B (zh) | 2015-10-21 | 2015-10-21 | 虚拟机可信迁移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106610863A CN106610863A (zh) | 2017-05-03 |
CN106610863B true CN106610863B (zh) | 2020-01-10 |
Family
ID=58611290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510688110.6A Active CN106610863B (zh) | 2015-10-21 | 2015-10-21 | 虚拟机可信迁移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106610863B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121592A (zh) * | 2017-12-20 | 2018-06-05 | 浪潮(北京)电子信息产业有限公司 | 基于Qemu动态迁移vTPM数据的方法及装置 |
CN108155988A (zh) * | 2017-12-22 | 2018-06-12 | 浪潮(北京)电子信息产业有限公司 | 一种保护密钥的迁移方法、装置、设备及可读存储介质 |
CN108804203B (zh) * | 2018-06-15 | 2019-06-21 | 四川大学 | 基于标签的vTPM私密信息保护方法 |
CN109684044A (zh) * | 2019-01-03 | 2019-04-26 | 北京工业大学 | 静态迁移过程中虚拟机与vTPCM的绑定方法 |
CN111800285B (zh) * | 2019-04-08 | 2024-04-09 | 阿里巴巴集团控股有限公司 | 实例迁移方法和装置以及电子设备 |
CN110515700B (zh) * | 2019-08-23 | 2022-03-22 | 北京浪潮数据技术有限公司 | 一种虚拟机迁移方法、***、装置及可读存储介质 |
CN113810193B (zh) * | 2020-06-11 | 2023-03-28 | ***通信有限公司研究院 | 虚拟可信根的迁移方法及相关设备 |
CN111966458A (zh) * | 2020-08-10 | 2020-11-20 | 国网四川省电力公司信息通信公司 | 一种虚拟云桌面的安全管理方法 |
CN112099909B (zh) * | 2020-08-27 | 2021-06-11 | 海光信息技术股份有限公司 | 一种虚拟机内存度量方法、装置、处理器芯片及*** |
CN112860380A (zh) * | 2021-03-04 | 2021-05-28 | 中国科学院信息工程研究所 | 一种基于内置安全芯片的虚拟机可信迁移方法 |
CN112882799A (zh) * | 2021-03-04 | 2021-06-01 | 中国科学院信息工程研究所 | 一种基于内置安全芯片的虚拟机可信迁移*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937357A (zh) * | 2009-07-01 | 2011-01-05 | 华为技术有限公司 | 一种虚拟机迁移决策方法、装置及*** |
CN103139221A (zh) * | 2013-03-07 | 2013-06-05 | 中国科学院软件研究所 | 一种可信虚拟平台及其构建方法、平台之间数据迁移方法 |
CN104113574A (zh) * | 2013-04-19 | 2014-10-22 | 中国科学院计算技术研究所 | 一种广域网可信虚拟机的安全迁移方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924560B2 (en) * | 2010-11-29 | 2014-12-30 | At&T Intellectual Property I, L.P. | Optimized game server relocation environment |
US8924720B2 (en) * | 2012-09-27 | 2014-12-30 | Intel Corporation | Method and system to securely migrate and provision virtual machine images and content |
-
2015
- 2015-10-21 CN CN201510688110.6A patent/CN106610863B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937357A (zh) * | 2009-07-01 | 2011-01-05 | 华为技术有限公司 | 一种虚拟机迁移决策方法、装置及*** |
CN103139221A (zh) * | 2013-03-07 | 2013-06-05 | 中国科学院软件研究所 | 一种可信虚拟平台及其构建方法、平台之间数据迁移方法 |
CN104113574A (zh) * | 2013-04-19 | 2014-10-22 | 中国科学院计算技术研究所 | 一种广域网可信虚拟机的安全迁移方法及*** |
Non-Patent Citations (2)
Title |
---|
一种基于XEN平台的可信虚拟机迁移协议;刘明芳等;《计算机安全》;20130620(第3期);第13-18页 * |
一种虚拟可信计算平台框架的设计与实现;何帆;《中国优秀硕士学位论文全文数据库信息科技辑》;20091115(第11期);第I138-85页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106610863A (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106610863B (zh) | 虚拟机可信迁移方法及装置 | |
US10171432B2 (en) | Systems to implement security in computer systems | |
US9735962B1 (en) | Three layer key wrapping for securing encryption keys in a data storage system | |
US9698988B2 (en) | Management control method, apparatus, and system for virtual machine | |
JP6408598B2 (ja) | 暗号でアテストされたリソースでのクライアントに指定されたクレデンシャルの保護 | |
EP3540626B1 (en) | Enclave launch and authentication | |
TWI632797B (zh) | 雲端式網路服務之硬體安全模組的安全備份系統與方法 | |
US9716710B2 (en) | Technologies for virtualized access to security services provided by a converged manageability and security engine | |
US20160028551A1 (en) | Systems and methods for hardware security module as certificate authority for network-enabled devices | |
US20150229619A1 (en) | Trusted execution within a distributed computing system | |
US10255089B2 (en) | Self-deleting virtual machines | |
CN104836784B (zh) | 一种信息处理方法、客户端和服务器 | |
CN108418817B (zh) | 一种加密方法及装置 | |
US10230738B2 (en) | Procedure for platform enforced secure storage in infrastructure clouds | |
CN111310213A (zh) | 一种业务数据保护方法、装置、设备及可读存储介质 | |
CN113785548A (zh) | 用于实施数据中心中的有效载荷安全性策略的证明服务 | |
CN113986470A (zh) | 一种用户无感知的虚拟机批量远程证明方法 | |
EP3720042B1 (en) | Method and device for determining trust state of tpm, and storage medium | |
US10459722B2 (en) | Device, system, and method for secure supervisor system calls | |
US11805109B1 (en) | Data transfer encryption offloading using session pairs | |
CN113711532A (zh) | 分布式或云计算***信息 | |
CN113810193B (zh) | 虚拟可信根的迁移方法及相关设备 | |
US11784978B2 (en) | Method for establishing remote work environment to ensure security of remote work user terminal and apparatus using the same | |
US20240256649A1 (en) | Method for implementing virtualized trusted platform module, secure processor and storage medium | |
US20230267214A1 (en) | Virtual trusted platform module implementation method and related apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |