一种密码服务虚拟机动态安全迁移方法及系统转让专利

申请号 : CN202210728437.1

文献号 : CN115189928B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 包宇欢李竞舟付春辉沙辉杰吴昊

申请人 : 中国人民解放军战略支援部队信息工程大学

摘要 :

本发明涉及信息安全技术领域,公开一种密码服务虚拟机动态安全迁移方法及系统,该方法包括:步骤1:迁移开始前,源宿主机向目的宿主机发送密码服务虚拟机迁移请求;步骤2:迁移请求通过后,迁移双方进行身份认证;步骤3:若身份认证通过,则迁移双方进行实体完整性验证;步骤4:当实体完整性验证完成后,迁移双方进行数据传输;步骤5:数据传输完成后,迁移双方进行原子性验证,若验证通过,则迁移成功,若验证不通过,则迁移失败,重新进行迁移。本发明既保证了敏感内存页的安全迁移,又解决了使用密钥回收的方法无法实现动态迁移的问题。

权利要求 :

1.一种密码服务虚拟机动态安全迁移方法,其特征在于,包括:

步骤1:迁移开始前,源宿主机向目的宿主机发送密码服务虚拟机迁移请求;

步骤2:迁移请求通过后,迁移双方进行身份认证;

步骤3:若身份认证通过,则迁移双方进行实体完整性验证;

步骤4:当实体完整性验证完成后,迁移双方进行数据传输;

步骤5:数据传输完成后,迁移双方进行原子性验证,若验证通过,则迁移成功,若验证不通过,则迁移失败,重新进行迁移;

在所述步骤1之前,还包括:

构建源宿主机的信任目的宿主机白名单;

所述步骤1包括:

向源宿主机发出密码服务虚拟机迁移命令,源宿主机收到迁移命令后,查询信任目的宿主机白名单,若目的宿主机在所述白名单中,则源宿主机向目的宿主机发出密码服务虚拟机迁移请求;若目的宿主机不在所述白名单中,则源宿主机拒绝迁移命令;

目的宿主机监听收到迁移请求后,判断迁移请求是否合法,若合法,则同意其迁移请求,返回迁移同意应答给源主机;若不合法,则拒绝迁移请求;

所述步骤4中,数据传输的过程为:

源宿主机对所需发送的内存页进行划分,携带密码信息的为敏感内存页,其余为普通内存页,敏感内存页使用密钥进行加密,加密完成后,采取基于区块链的敏感内存页传输方法进行发送,除了第一个区块外,其它区块均存储有前一个区块的哈希值,同时加密用的密钥使用秘密共享的方式分割成两份,通过两条安全信道进行发送,一份通过源宿主机和目的宿主机之间的安全信道直接发送给目的宿主机,一份发送给共享存储,由共享存储通过共享存储和目的宿主机之间的安全信道转发给目的宿主机;普通内存页的发送采用正常安全强度,正常开销的安全传输机制。

2.根据权利要求1所述的一种密码服务虚拟机动态安全迁移方法,其特征在于,在所述步骤2包括:源宿主机在收到目的宿主机的迁移同意应答后,进行身份认证,源宿主机向目的宿主机发送自己的数字证书,目的宿主机收到源宿主机的证书,向可信第三方TTP验证源宿主机的证书,验证成功后,将自己的数字证书发送给源宿主机,源宿主机收到目的宿主机的证书后,向TTP验证目的宿主机的证书,认证成功后转入信道协商;

源宿主机和目的宿主机使用IPsec协议进行信道协商,源宿主机产生一个对称密钥Kenc,使用身份认证中获取的目的宿主机的证书,从中提取目的宿主机的公钥,使用目的宿主机的公钥加密对称密钥传送给目的宿主机;目的宿主机收到密文后,使用自己的公钥解密,获取一个对称密钥Kmac。

3.根据权利要求2所述的一种密码服务虚拟机动态安全迁移方法,其特征在于,所述步骤3包括:在进行完整性认证的过程中,源宿主机和目的宿主机分别计算各自的度量值,使用信道协商中协商的密钥Kenc和Kmac进行加密发送给对方,双方对度量值进行解密后,将度量值发送给TTP,由TTP根据收到的度量值和本地存储的度量值进行比较,若相同,则完整性验证通过,若不相同则完整性验证不通过,TTP将完整性验证结果返回给源宿主机和目的宿主机。

4.根据权利要求1所述的一种密码服务虚拟机动态安全迁移方法,其特征在于,所述基于区块链的敏感内存页传输方法包括:除了第一个携带敏感内存页的报文以外,其余携带敏感内存页的报文均存储前一个携带敏感内存页报文的哈希值。

5.根据权利要求1所述的一种密码服务虚拟机动态安全迁移方法,其特征在于,所述步骤5包括:源宿主机估计迁移过程中的传输速度,当剩余的数据量能在一个可设定的迁移时间内完成时,源宿主机密码服务虚拟机关闭,继续传输剩余的数据量给目的宿主机,在传输完成和目的宿主机完成对报文的解密后,目的宿主机根据收到的内存页建立新的密码服务虚拟机,成功建立后,向源宿主机发送虚拟机删除请求,源宿主机接到请求后删除本地的密码服务虚拟机,并将结果返回给目的宿主机,目的宿主机根据返回结果,若源宿主机成功删除则启动本地的密码服务虚拟机开始提供服务,若目的宿主机的虚拟机建立失败,则将结果返回给源宿主机,同时删除目的宿主机有关的迁移数据。

6.一种密码服务虚拟机动态安全迁移系统,其特征在于,包括:

迁移请求发出模块,用于迁移开始前,源宿主机向目的宿主机发送密码服务虚拟机迁移请求;

身份认证模块,用于迁移请求通过后,迁移双方进行身份认证;

实体完整性验证模块,用于若身份认证通过,则迁移双方进行实体完整性验证;

数据传输模块,用于当实体完整性验证完成后,迁移双方进行数据传输;

原子性验证模块,用于数据传输完成后,迁移双方进行原子性验证,若验证通过,则迁移成功,若验证不通过,则迁移失败,重新进行迁移;

还包括:

白名单构建模块,用于构建源宿主机的信任目的宿主机白名单;

进一步地,所述迁移请求发出模块具体用于:

向源宿主机发出密码服务虚拟机迁移命令,源宿主机收到迁移命令后,查询信任目的宿主机白名单,若目的宿主机在所述白名单中,则源宿主机向目的宿主机发出密码服务虚拟机迁移请求;若目的宿主机不在所述白名单中,则源宿主机拒绝迁移命令;

进一步地,所述数据传输模块具体用于:

源宿主机对所需发送的内存页进行划分,携带密码信息的为敏感内存页,其余为普通内存页,敏感内存页使用密钥进行加密,加密完成后,采取基于区块链的敏感内存页传输方法进行发送,除了第一个区块外,其它区块均存储有前一个区块的哈希值,同时加密用的密钥使用秘密共享的方式分割成两份,通过两条安全信道进行发送,一份通过源宿主机和目的宿主机之间的安全信道直接发送给目的宿主机,一份发送给共享存储,由共享存储通过共享存储和目的宿主机之间的安全信道转发给目的宿主机;普通内存页的发送采用正常安全强度,正常开销的安全传输机制。

说明书 :

一种密码服务虚拟机动态安全迁移方法及系统

技术领域

[0001] 本发明涉及信息安全技术领域,尤其涉及一种密码服务虚拟机动态安全迁移方法及系统。

背景技术

[0002] 在云计算的运用场景中,为达到负载均衡等目的,密码服务虚拟机的动态迁移变的越来越频繁。现有动态迁移协议比较简单,现有的虚拟机迁移系统没有虚拟机迁移的节点认证,不能保证虚拟机迁移的源节点和目标节点的状态安全可信。同时缺乏数据传输保护,无法处理虚拟机迁移过程中出现的中间人攻击等威胁,迁移过程中传输的数据是不安全的。而且现有的虚拟机动态迁移系统没有对虚拟机的原子性保护,容易产生安全隐患。如在迁移过程中,攻击者可以对正在迁移的通道和数据流进行监测,从而获得想要的有价值信息。现有动态迁移系统没有为密码服务虚拟机设置专门的迁移协议,若是需要迁移密码服务虚拟机就将其当成普通的虚拟机进行迁移。然而密码服务虚拟机在动态迁移的过程中,需要迁移的内存数据和密码信息(如密钥)高度敏感,极具价值,因此密码服务虚拟机在迁移过程中的安全性要求更高。一旦密码服务虚拟机被成功攻击,享受密码服务虚拟机的服务的所有云应用平台都将受到安全威胁。密码服务虚拟机是为应用云平台提供密码服务的,所以在密码服务虚拟机迁移完成后,还需解决目的宿主机的密码服务虚拟机与应用云平台重新建立安全连接的问题。
[0003] 现有的虚拟机动态迁移技术,只考虑到了普通的虚拟机的动态迁移,普通的虚拟机中存储的信息大多敏感程度不高,如果受到了攻击,造成的威胁仅仅是对本虚拟机。而密码服务虚拟机是为其他虚拟机提供密码服务的,如果密码服务虚拟机受到了攻击,其提供密码服务的虚拟机也会受到安全威胁,而且密码服务虚拟机中存储的密码信息(如密钥和密码应用程序),一旦被窃取,那么受其服务的虚拟机的所有行为将再无安全可言。所以现有的虚拟机动态迁移技术,不能够对密码服务虚拟机提供足够的安全保护(迁移中的数据容易遭到攻击,目标机缺少完整性验证,缺少访问控制等)。现有的技术(公开号CN 108718316 A)提出的对密钥(密码信息的一种)的迁移,采用的方法是在迁移时利用密钥管理系统回收密钥,完成密码设备信息的绑定后,再由密钥管理系统重新为绑定的新密码设备注入密钥,这种方法不适用于动态迁移,只适用于静态迁移,因为动态迁移要求的是在迁移的过程中不间断地向外提供服务,而将密钥回收后,在迁移的过程中无法向外提供服务。
现有的密码信息迁移方案只考虑到了密钥的迁移,而对于密码服务虚拟机而言,密码信息包含的信息更加广泛,包括密钥,密码应用程序以及包含上述两种信息的内存页。

发明内容

[0004] 本发明针对现有的虚拟机动态迁移技术,不能够对密码服务虚拟机提供足够的安全保护的问题,提出一种密码服务虚拟机动态安全迁移方法及系统,保证了密码服务虚拟机在动态迁移过程的安全。
[0005] 为了实现上述目的,本发明采用以下技术方案:
[0006] 本发明一方面提出一种密码服务虚拟机动态安全迁移方法,包括:
[0007] 步骤1:迁移开始前,源宿主机向目的宿主机发送密码服务虚拟机迁移请求;
[0008] 步骤2:迁移请求通过后,迁移双方进行身份认证;
[0009] 步骤3:若身份认证通过,则迁移双方进行实体完整性验证;
[0010] 步骤4:当实体完整性验证完成后,迁移双方进行数据传输;
[0011] 步骤5:数据传输完成后,迁移双方进行原子性验证,若验证通过,则迁移成功,若验证不通过,则迁移失败,重新进行迁移。
[0012] 进一步地,在所述步骤1之前,还包括:
[0013] 构建源宿主机的信任目的宿主机白名单。
[0014] 进一步地,所述步骤1包括:
[0015] 向源宿主机发出密码服务虚拟机迁移命令,源宿主机收到迁移命令后,查询信任目的宿主机白名单,若目的宿主机在所述白名单中,则源宿主机向目的宿主机发出密码服务虚拟机迁移请求;若目的宿主机不在所述白名单中,则源宿主机拒绝迁移命令;
[0016] 目的宿主机监听收到迁移请求后,判断迁移请求是否合法,若合法,则同意其迁移请求,返回迁移同意应答给源主机;若不合法,则拒绝迁移请求。
[0017] 进一步地,在所述步骤2包括:
[0018] 源宿主机在收到目的宿主机的迁移同意应答后,进行身份认证,源宿主机向目的宿主机发送自己的数字证书,目的宿主机收到源宿主机的证书,向可信第三方TTP验证源宿主机的证书,验证成功后,将自己的数字证书发送给源宿主机,源宿主机收到目的宿主机的证书后,向TTP验证目的宿主机的证书,认证成功后转入信道协商;
[0019] 源宿主机和目的宿主机使用IPsec协议进行信道协商,源宿主机产生一个对称密钥Kenc,使用身份认证中获取的目的宿主机的证书,从中提取目的宿主机的公钥,使用目的宿主机的公钥加密对称密钥传送给目的宿主机;目的宿主机收到密文后,使用自己的公钥解密,获取一个对称密钥Kmac。
[0020] 进一步地,所述步骤3包括:
[0021] 在进行完整性认证的过程中,源宿主机和目的宿主机分别计算各自的度量值,使用信道协商中协商的密钥Kenc和Kmac进行加密发送给对方,双方对度量值进行解密后,将度量值发送给TTP,由TTP根据收到的度量值和本地存储的度量值进行比较,若相同,则完整性验证通过,若不相同则完整性验证不通过,TTP将完整性验证结果返回给源宿主机和目的宿主机。
[0022] 进一步地,所述步骤4中,数据传输的过程为:
[0023] 源宿主机对所需发送的内存页进行划分,携带密码信息的为敏感内存页,其余为普通内存页,敏感内存页使用密钥进行加密,加密完成后,采取基于区块链的敏感内存页传输方法进行发送,同时加密用的密钥使用秘密共享的方式分割成两份,一份直接发送给目的宿主机,一份发送给共享存储,由共享存储转发给目的宿主机。
[0024] 进一步地,所述基于区块链的敏感内存页传输方法包括:
[0025] 除了第一个携带敏感内存页的报文以外,其余携带敏感内存页的报文均存储前一个携带敏感内存页报文的哈希值。
[0026] 进一步地,所述步骤5包括:
[0027] 源宿主机估计迁移过程中的传输速度,当剩余的数据量能在一个可设定的迁移时间内完成时,源宿主机密码服务虚拟机关闭,继续传输剩余的数据量给目的宿主机,在传输完成和目的宿主机完成对报文的解密后,目的宿主机根据收到的内存页建立新的密码服务虚拟机,成功建立后,向源宿主机发送虚拟机删除请求,源宿主机接到请求后删除本地的密码服务虚拟机,并将结果返回给目的宿主机,目的宿主机根据返回结果,若源宿主机成功删除则启动本地的密码服务虚拟机开始提供服务,若目的宿主机的虚拟机建立失败,则将结果返回给源宿主机,同时删除目的宿主机有关的迁移数据。
[0028] 本发明另一方面提出一种密码服务虚拟机动态安全迁移系统,包括:
[0029] 迁移请求发出模块,用于迁移开始前,源宿主机向目的宿主机发送密码服务虚拟机迁移请求;
[0030] 身份认证模块,用于迁移请求通过后,迁移双方进行身份认证;
[0031] 实体完整性验证模块,用于若身份认证通过,则迁移双方进行实体完整性验证;
[0032] 数据传输模块,用于当实体完整性验证完成后,迁移双方进行数据传输;
[0033] 原子性验证模块,用于数据传输完成后,迁移双方进行原子性验证,若验证通过,则迁移成功,若验证不通过,则迁移失败,重新进行迁移。
[0034] 进一步地,还包括:
[0035] 白名单构建模块,用于构建源宿主机的信任目的宿主机白名单。
[0036] 进一步地,所述迁移请求发出模块具体用于:
[0037] 向源宿主机发出密码服务虚拟机迁移命令,源宿主机收到迁移命令后,查询信任目的宿主机白名单,若目的宿主机在所述白名单中,则源宿主机向目的宿主机发出密码服务虚拟机迁移请求;若目的宿主机不在所述白名单中,则源宿主机拒绝迁移命令;
[0038] 目的宿主机监听收到迁移请求后,判断迁移请求是否合法,若合法,则同意其迁移请求,返回迁移同意应答给源主机;若不合法,则拒绝迁移请求。
[0039] 进一步地,在所述身份认证模块具体用于:
[0040] 源宿主机在收到目的宿主机的迁移同意应答后,进行身份认证,源宿主机向目的宿主机发送自己的数字证书,目的宿主机收到源宿主机的证书,向可信第三方TTP验证源宿主机的证书,验证成功后,将自己的数字证书发送给源宿主机,源宿主机收到目的宿主机的证书后,向TTP验证目的宿主机的证书,认证成功后转入信道协商;
[0041] 源宿主机和目的宿主机使用IPsec协议进行信道协商,源宿主机产生一个对称密钥Kenc,使用身份认证中获取的目的宿主机的证书,从中提取目的宿主机的公钥,使用目的宿主机的公钥加密对称密钥传送给目的宿主机;目的宿主机收到密文后,使用自己的公钥解密,获取一个对称密钥Kmac。
[0042] 进一步地,所述实体完整性验证模块具体用于:
[0043] 在进行完整性认证的过程中,源宿主机和目的宿主机分别计算各自的度量值,使用信道协商中协商的密钥Kenc和Kmac进行加密发送给对方,双方对度量值进行解密后,将度量值发送给TTP,由TTP根据收到的度量值和本地存储的度量值进行比较,若相同,则完整性验证通过,若不相同则完整性验证不通过,TTP将完整性验证结果返回给源宿主机和目的宿主机。
[0044] 进一步地,所述数据传输模块具体用于:
[0045] 源宿主机对所需发送的内存页进行划分,携带密码信息的为敏感内存页,其余为普通内存页,敏感内存页使用密钥进行加密,加密完成后,采取基于区块链的敏感内存页传输方法进行发送,同时加密用的密钥使用秘密共享的方式分割成两份,一份直接发送给目的宿主机,一份发送给共享存储,由共享存储转发给目的宿主机。
[0046] 进一步地,所述基于区块链的敏感内存页传输方法包括:
[0047] 除了第一个携带敏感内存页的报文以外,其余携带敏感内存页的报文均存储前一个携带敏感内存页报文的哈希值。
[0048] 进一步地,所述原子性验证模块具体用于:
[0049] 源宿主机估计迁移过程中的传输速度,当剩余的数据量能在一个可设定的迁移时间内完成时,源宿主机密码服务虚拟机关闭,继续传输剩余的数据量给目的宿主机,在传输完成和目的宿主机完成对报文的解密后,目的宿主机根据收到的内存页建立新的密码服务虚拟机,成功建立后,向源宿主机发送虚拟机删除请求,源宿主机接到请求后删除本地的密码服务虚拟机,并将结果返回给目的宿主机,目的宿主机根据返回结果,若源宿主机成功删除则启动本地的密码服务虚拟机开始提供服务,若目的宿主机的虚拟机建立失败,则将结果返回给源宿主机,同时删除目的宿主机有关的迁移数据。
[0050] 与现有技术相比,本发明具有的有益效果:
[0051] 本发明提出一种密码服务虚拟机动态安全迁移方法及系统,可以保证密码服务虚拟机在动态迁移过程的安全。通过建立安全会话,保护数据传输通道,迁移原子性判定,共享存储,本地密码服务虚拟机删除和目的宿主机密码服务虚拟机启动来实现密码服务虚拟机在动态迁移中的安全保护。本发明实现了源宿主机和目的宿主机之间的有效验证,给迁移提供了访问控制,对传输通道进行了保护,还包括对迁移数据的保护,对迁移双方的完整性验证。在这其中,重点有三点,一是基于安全等级对需要传输的内存页进行安全等级划分,不同安全等级的内存页采用不同的安全机制,从而在保证在尽量缩短动态迁移时间的基础上保护数据的传输。二是基于区块链进行敏感内存页的传输,通过对哈希值的利用,进一步增加攻击者篡改传输中的敏感内存页的难度。三是采取秘密共享的方式对动态迁移过程中传输的敏感内存页进行保护。既保证了敏感内存页的安全迁移,又解决了使用密钥回收的方法无法实现动态迁移的问题。

附图说明

[0052] 图1为本发明实施例一种密码服务虚拟机动态安全迁移方法的流程图;
[0053] 图2为本发明实施例一种密码服务虚拟机动态安全迁移方法的数据传输流程图;
[0054] 图3为区块链示意图;
[0055] 图4为本发明实施例一种密码服务虚拟机动态安全迁移系统架构示意图。

具体实施方式

[0056] 为了便于理解,对本发明的具体实施方式中出现的部分名词作以下解释说明:
[0057] 密码服务虚拟机:通过密码机与虚拟化技术的结合,扩充密码运算能力,将密码运算能力进行细粒度的划分,在一台物理密码机上提供多台密码服务虚拟机,每台虚拟机可以为应用系统提供密钥管理,密码运算等密码服务。
[0058] 下面结合附图和具体的实施例对本发明做进一步的解释说明:
[0059] 如图1所示,一种密码服务虚拟机动态安全迁移方法,包括:
[0060] 步骤1:迁移开始前,源宿主机向目的宿主机发送密码服务虚拟机迁移请求;
[0061] 步骤2:迁移请求通过后,迁移双方进行身份认证;
[0062] 步骤3:若身份认证通过,则迁移双方进行实体完整性验证;
[0063] 步骤4:当实体完整性验证完成后,迁移双方进行数据传输;
[0064] 步骤5:数据传输完成后,迁移双方进行原子性验证,若验证通过,则迁移成功,若验证不通过,则迁移失败,重新进行迁移。
[0065] 进一步地,在所述步骤1之前,还包括:
[0066] 构建源宿主机的信任目的宿主机白名单。
[0067] 进一步地,所述步骤1包括:
[0068] 向源宿主机发出密码服务虚拟机迁移命令,源宿主机收到迁移命令后,查询信任目的宿主机白名单,若目的宿主机在所述白名单中,则源宿主机向目的宿主机发出密码服务虚拟机迁移请求;若目的宿主机不在所述白名单中,则源宿主机拒绝迁移命令;
[0069] 目的宿主机监听收到迁移请求后,判断迁移请求是否合法,若合法,则同意其迁移请求,返回迁移同意应答给源主机;若不合法,则拒绝迁移请求。
[0070] 进一步地,在所述步骤2包括:
[0071] 源宿主机在收到目的宿主机的迁移同意应答后,进行身份认证,源宿主机向目的宿主机发送自己的数字证书,目的宿主机收到源宿主机的证书,向可信第三方TTP验证源宿主机的证书,验证成功后,将自己的数字证书发送给源宿主机,源宿主机收到目的宿主机的证书后,向TTP验证目的宿主机的证书,认证成功后转入信道协商;
[0072] 源宿主机和目的宿主机使用IPsec协议进行信道协商,源宿主机产生一个对称密钥Kenc,使用身份认证中获取的目的宿主机的证书,从中提取目的宿主机的公钥,使用目的宿主机的公钥加密对称密钥传送给目的宿主机;目的宿主机收到密文后,使用自己的公钥解密,获取一个对称密钥Kmac。
[0073] 进一步地,所述步骤3包括:
[0074] 在进行完整性认证的过程中,源宿主机和目的宿主机分别计算各自的度量值,使用信道协商中协商的密钥Kenc和Kmac进行加密发送给对方,双方对度量值进行解密后,将度量值发送给TTP,由TTP根据收到的度量值和本地存储的度量值进行比较,若相同,则完整性验证通过,若不相同则完整性验证不通过,TTP将完整性验证结果返回给源宿主机和目的宿主机。
[0075] 具体地,所述步骤1、步骤2和步骤3可以归为建立安全会话环节,建立安全会话环节具体包括:
[0076] (1)发出迁移请求
[0077] 密码服务虚拟机是虚拟化系统中一种特殊的信息资产,存在发生不期望事件而造成损害的潜在可能性,在其动态迁移的过程中面临多种多样的安全隐患,缺少足够的访问控制是其中一个重大的安全隐患,例如允许未经授权的用户启动和迁移密码服务虚拟机。攻击者可以通过启动大量密码服务虚拟机迁移到一个目的宿主机上,耗费目的宿主机资源使其拒绝服务,当其他密码服务虚拟机存在动态迁移的需求时,可能就无法找到合适的目的宿主机。
[0078] 自动或手工向源宿主机发出迁移命令(迁移命令会告诉源宿主机迁移的时间,迁移的目的宿主机等信息)。源宿主机收到迁移命令后,查询信任目的宿主机白名单(只允许密码服务虚拟机向在白名单中的目的宿主机迁移),若目的宿主机在白名单中,则向目的宿主机发出迁移请求;若目的宿主机不在白名单中,则拒绝迁移命令。
[0079] 目的宿主机监听收到迁移请求后,判断请求是否合法,若合法,则同意其迁移请求,返回结果给源宿主机;若不合法,则拒绝迁移请求。
[0080] (2)身份认证(使用预先共享密钥进行身份认证和密钥协商)
[0081] 虽然动态迁移的目的宿主机存在于源主机的白名单中,但是白名单的更新可能存在滞后性,并不能保证目的宿主机的安全。因为攻击者可能通过将自己伪造成动态迁移的目的宿主机,使得密码服务虚拟机迁移到被攻击者控制的宿主机,导致客户的密码服务虚拟机被控制,进而进行一些威胁客户信息安全的操作。所以必须实现源宿主机和目的宿主机之间的有效验证,保证虚拟机迁移出发点的预期目的地和实际目的地一致。源宿主机在收到目的宿主机的迁移同意应答后,进行身份认证。源宿主机向目的宿主机发送自己的数字证书,目的宿主机收到源宿主机的证书,向可信第三方TTP验证源宿主机的证书,验证成功后,将自己的数字证书发送给源宿主机,源宿主机收到目的宿主机的证书,向TTP验证目的宿主机的证书,认证成功后转入信道协商。
[0082] (3)协商信道
[0083] 在虚拟机进行迁移的动态过程中必须采用强有力的保障措施,攻击者通过对正在迁移的通道进行监测,获得动态迁移过程中虚拟机储存系统中的资源,从而获得有价值的虚拟机信息,达到对迁移数据的劫持目的。本发明使用IPsec协议对信道进行保护,所以信道的协商无需协商算法只需协商密钥,密钥的协商依托对方证书中的公钥进行传输。源宿主机产生一个对称密钥Kenc,使用身份认证中获取的目的宿主机的证书,从中提取对方的公钥,使用目的宿主机的公钥加密对称密钥传送给目的宿主机,目的宿主机收到密文后,使用自己的公钥解密,得到一个对称密钥Kmac。至此双方都获得了一个对称密钥Kenc和Kmac。
[0084] (4)实体完整性验证(使用第三方TTP进行实体完整性验证)
[0085] 目的宿主机可能带有恶意软件、木马、恶意代码等。如果源宿主机和目的宿主机只相互认证了身份,而没有相互认证完整性,那么攻击者可以只需成功攻击二者(源宿主机和目的宿主机)之中的一个,就可以借助动态迁移攻击迁移中的另一方。在本发明中使用度量值,度量的核心程序通过扫描数据产生信息摘要,信息摘要是当前机器运行状态的快照。所述度量值用于进行完整性认证,且由TTP存储。在进行完整性认证的过程中,源宿主机和目的宿主机分别计算自己的度量值,使用信道协商中协商的密钥Kenc和Kmac进行加密发送给对方。双方对度量值进行解密后,将度量值发送给TTP,由TTP根据收到的度量值和本地存储的度量值进行比较,若相同,则完整性验证通过,若不相同则完整性验证不通过,TTP将完整性验证结果返回给源宿主机和目的宿主机。若完整性验证通过,返回结果后,转入数据传输。
[0086] 进一步地,如图2所示,所述步骤4中,数据传输的过程为:
[0087] 源宿主机对所需发送的内存页进行划分,携带密码信息的为敏感内存页,其余为普通内存页,敏感内存页使用密钥进行加密,加密完成后,采取基于区块链的敏感内存页传输方法进行发送,同时加密用的密钥使用秘密共享的方式分割成两份,一份直接发送给目的宿主机,一份发送给共享存储,由共享存储转发给目的宿主机。
[0088] 进一步地,所述基于区块链的敏感内存页传输方法包括:
[0089] 除了第一个携带敏感内存页的报文以外,其余携带敏感内存页的报文均存储前一个携带敏感内存页报文的哈希值。
[0090] 具体地,所述步骤4包括:
[0091] 密码服务虚拟机的动态迁移,通过迁移密码服务虚拟机运行的内存页来实现,迁移过程中实现密码服务不中断。密码服务虚拟机的动态迁移过程中传输的数据分为两部分,分别是普通内存页的传输和敏感内存页的传输,敏感内存页就是携带密钥和密码应用程序信息的内存页。本发明实现的密码服务虚拟机的动态迁移,既要给敏感内存页更强的安全防护,又要缩短动态迁移时间。对敏感内存页给予更强的安全防护,就是要保证敏感内存页的机密性和完整性。使用加密的方法保证携带敏感内存页的报文(以下简称敏感报文)在传输过程中的机密性,密码算法的选择可以选择SM4等强度足够的分组密码算法,密钥的产生可以通过硬件产生足够长度的随机乱数。一切秘密寓于密钥,需要将密钥安全地发送给目的宿主机,本发明基于秘密共享的方式,将会话密钥拆分为二,分别由源宿主机和共享存储通过不同的安全信道(源宿主机和目的宿主机之间的安全信道,共享存储和目的宿主机之间的安全信道)发送至目的宿主机,目的宿主机收到二者发来的密钥后才能解开源宿主机发送的加密敏感报文。将会话密钥拆分为二,通过两条安全信道进行发送,可以保证在一条安全信道被攻破的情况下,保证敏感报文的安全。作为一种可实施方式,源宿主机和目的宿主机之间的安全信道是在6.2协商信道中建立的,共享存储和目的宿主机之间的安全信道是预先建立的。具体方法如下:
[0092] 源宿主机使用密钥完成对敏感报文的加密后,将此密钥采用(k,n)门限方案实现秘密分割,将密钥分拆成两个片段。具体方法是构造一个t‑1次拉格朗日插值多项式F(x),Ft‑1(x)=a0+a1x+…+at‑1x ,F(x)为返回地址。计算f(1),f(2),这样可以得到2个份额[i,f(i)]。只有同时获得2个及以上份额,才能还原出该多项式。利用秘密共享机制可以进一步提高密钥的安全性。对密钥完成分割后,将其中的一个份额和目的宿主机的身份发送给共享存储,共享存储接收此密钥份额后,通过和目的宿主机预先建立的安全信道将此份额发送给目的宿主机。
[0093] 基于区块链的方法保护敏感内存页的完整性。一般的完整性保护机制是计算每一条报文的哈希值,并将每一条报文的哈希值单独发送给收方,接收方在接收到报文后计算哈希值与之后收到的哈希值比较,若相同,则完整性验证通过,证明该条报文没有被篡改,但是对于攻击者而言,篡改单条报文后篡改该条报文的哈希值相对容易,所以本发明采用基于区块链的方法保护传输携带敏感内存页的报文(以下简称敏感报文)的哈希值。具体方法如下:图3表示区块链的概念示意图。除了第一个区块外,其它区块均存储有前一个区块的哈希值。这意味着,如果攻击者要篡改区块链上任何一个区块,那么就必须篡改该区块之后所有区块,使得每个区块的完整性摘要值仍然与前一个区块完整性摘要值相符。同时,系统内仍然在不断产生新的区块,所以攻击者不但要篡改原有的后续区块,还必须篡改新增加的区块。
[0094] 将区块链的方法引入敏感报文的传输,除了第一个敏感报文以外,其余敏感报文均存储前一个报文的哈希值(源宿主机完成对敏感内存页的加密后,计算其哈希值,并将此哈希值与下一条敏感报文密文一起哈希)。这意味着,如果攻击者要篡改报文链上任何一个报文,那么就必须篡改该报文之后所有报文,使得每个报文的完整性摘要值仍然与前一个报文完整性摘要值相符。同时,迁移的过程仍在继续(密码服务虚拟机的动态安全迁移的过程是,当迁移发起后,源宿主机上的密码服务虚拟机继续运行,同时接收加密内存页后将加密内存页发送给目的宿主机,源宿主机监控并记录下已被传输的内存页的所有修改,并在所有的内存页传输完成后,传输这些已经被修改的内存页),新的敏感报文仍在不断产生并被源宿主机发送,所以攻击者不但要篡改原有的后续报文,还必须篡改新增加的报文。
[0095] 采用以上数据传输的安全机制,极大地提高了安全强度,但是开销也有所增加,要在尽量保证动态迁移的时间上保证密码服务虚拟机动态迁移的安全性,为此,本发明基于安全等级对内存页的等级进行划分,不同等级的内存页采取不同安全强度,不同计算开销的安全措施。携带有密码信息的内存页为敏感内存页,即高安全等级的内存页,其余内存页为普通内存页,即低安全等级的内存页。
[0096] 普通内存页的发送采用正常安全强度,正常开销的安全传输机制,敏感内存页采用基于区块链的完整性保护机制保护传输过程的完整性,采用秘密共享保证传输的机密性。数据传输完成后,转入原子性判定。
[0097] 进一步地,所述步骤5包括:
[0098] 迁移无论成功与否,迁移虚拟机所拥有的数据和状态都应该是唯一的,迁移成功要删除源宿主机的所有虚拟机的数据,迁移失败则要将目的宿主机的数据删除,防止产生密码服务虚拟机隐私信息泄露的安全问题。具体方法如下:
[0099] 源宿主机估计迁移过程中的传输速度,当剩余的数据量能在一个可设定的迁移时间内完成时,源主机密码服务虚拟机将会关闭(这个关闭的时间极短,用户感受不到,所以依旧可以称之为不中断服务),继续传输剩余的数据量给目的主机。在传输完成和目的宿主机完成对报文的解密后,目的宿主机根据收到的内存页建立起新的密码服务虚拟机,成功建立后,向源宿主机发送密码服务虚拟机删除请求后,源宿主机接到请求后删除本地的密码服务虚拟机,并将结果返回给目的宿主机,目的宿主机根据返回结果,若源宿主机成功删除则启动本地的密码服务虚拟机开始提供服务。若目的宿主机的虚拟机建立失败,则将结果返回给源宿主机,同时删除目的宿主机有关的迁移数据。
[0100] 若是数据没有完成传输,目的宿主机在超过规定时间后仍然没有接收到后续数据,也没有接收到源宿主机的数据传输完成告知,则删除已经接收到的内存页。
[0101] 在上述实施例的基础上,如图4所示,本发明另一方面提出一种密码服务虚拟机动态安全迁移系统,包括:
[0102] 迁移请求发出模块,用于迁移开始前,源宿主机向目的宿主机发送密码服务虚拟机迁移请求;
[0103] 身份认证模块,用于迁移请求通过后,迁移双方进行身份认证;
[0104] 实体完整性验证模块,用于若身份认证通过,则迁移双方进行实体完整性验证;
[0105] 数据传输模块,用于当实体完整性验证完成后,迁移双方进行数据传输;
[0106] 原子性验证模块,用于数据传输完成后,迁移双方进行原子性验证,若验证通过,则迁移成功,若验证不通过,则迁移失败,重新进行迁移。
[0107] 进一步地,还包括:
[0108] 白名单构建模块,用于构建源宿主机的信任目的宿主机白名单。
[0109] 进一步地,所述迁移请求发出模块具体用于:
[0110] 向源宿主机发出密码服务虚拟机迁移命令,源宿主机收到迁移命令后,查询信任目的宿主机白名单,若目的宿主机在所述白名单中,则源宿主机向目的宿主机发出密码服务虚拟机迁移请求;若目的宿主机不在所述白名单中,则源宿主机拒绝迁移命令;
[0111] 目的宿主机监听收到迁移请求后,判断迁移请求是否合法,若合法,则同意其迁移请求,返回迁移同意应答给源主机;若不合法,则拒绝迁移请求。
[0112] 进一步地,在所述身份认证模块具体用于:
[0113] 源宿主机在收到目的宿主机的迁移同意应答后,进行身份认证,源宿主机向目的宿主机发送自己的数字证书,目的宿主机收到源宿主机的证书,向可信第三方TTP验证源宿主机的证书,验证成功后,将自己的数字证书发送给源宿主机,源宿主机收到目的宿主机的证书后,向TTP验证目的宿主机的证书,认证成功后转入信道协商;
[0114] 源宿主机和目的宿主机使用IPsec协议进行信道协商,源宿主机产生一个对称密钥Kenc,使用身份认证中获取的目的宿主机的证书,从中提取目的宿主机的公钥,使用目的宿主机的公钥加密对称密钥传送给目的宿主机;目的宿主机收到密文后,使用自己的公钥解密,获取一个对称密钥Kmac。
[0115] 进一步地,所述实体完整性验证模块具体用于:
[0116] 在进行完整性认证的过程中,源宿主机和目的宿主机分别计算各自的度量值,使用信道协商中协商的密钥Kenc和Kmac进行加密发送给对方,双方对度量值进行解密后,将度量值发送给TTP,由TTP根据收到的度量值和本地存储的度量值进行比较,若相同,则完整性验证通过,若不相同则完整性验证不通过,TTP将完整性验证结果返回给源宿主机和目的宿主机。
[0117] 进一步地,所述数据传输模块具体用于:
[0118] 源宿主机对所需发送的内存页进行划分,携带密码信息的为敏感内存页,其余为普通内存页,敏感内存页使用密钥进行加密,加密完成后,采取基于区块链的敏感内存页传输方法进行发送,同时加密用的密钥使用秘密共享的方式分割成两份,一份直接发送给目的宿主机,一份发送给共享存储,由共享存储转发给目的宿主机。
[0119] 进一步地,所述基于区块链的敏感内存页传输方法包括:
[0120] 除了第一个敏感内存页报文以外,其余敏感内存页报文均存储前一个敏感内存页报文的哈希值。
[0121] 进一步地,所述原子性验证模块具体用于:
[0122] 源宿主机估计迁移过程中的传输速度,当剩余的数据量能在一个可设定的迁移时间内完成时,源宿主机密码服务虚拟机关闭,继续传输剩余的数据量给目的宿主机,在传输完成和目的宿主机完成对报文的解密后,目的宿主机根据收到的内存页建立新的密码服务虚拟机,成功建立后,向源宿主机发送虚拟机删除请求,源宿主机接到请求后删除本地的密码服务虚拟机,并将结果返回给目的宿主机,目的宿主机根据返回结果,若源宿主机成功删除则启动本地的密码服务虚拟机开始提供服务,若目的宿主机的虚拟机建立失败,则将结果返回给源宿主机,同时删除目的宿主机有关的迁移数据。
[0123] 综上,本发明提出一种密码服务虚拟机动态安全迁移方法及系统,可以保证密码服务虚拟机在动态迁移过程的安全。通过建立安全会话,保护数据传输通道,迁移原子性判定,共享存储,本地密码服务虚拟机删除和目的宿主机密码服务虚拟机启动来实现密码服务虚拟机在动态迁移中的安全保护。本发明实现了源宿主机和目的宿主机之间的有效验证,给迁移提供了访问控制,对传输通道进行了保护,还包括对迁移数据的保护,对迁移双方的完整性验证。在这其中,重点有三点,一是基于安全等级对需要传输的内存页进行安全等级划分,不同安全等级的内存页采用不同的安全机制,从而在保证在尽量缩短动态迁移时间的基础上保护数据的传输。二是基于区块链进行敏感内存页的传输,通过对哈希值的利用,进一步增加攻击者篡改传输中的敏感内存页的难度。三是采取秘密共享的方式对动态迁移过程中传输的敏感内存页进行保护。既保证了敏感内存页的安全迁移,又解决了使用密钥回收的方法无法实现动态迁移的问题。
[0124] 以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。