首页> 中国专利> 一种虚拟机迁移方法、系统及虚拟机迁入端和迁出端

一种虚拟机迁移方法、系统及虚拟机迁入端和迁出端

摘要

本发明提供了一种虚拟机迁移方法、系统及虚拟机迁入端和迁出端,该虚拟机迁移方法应用于虚拟机迁入端时,包括:接收虚拟机迁出端发送的虚拟机迁移请求;根据虚拟机迁移请求形成迁移密钥;通过虚拟机迁出端的公钥对迁移密钥进行加密并进行签名,形成签名加密密钥;将签名加密密钥发送给虚拟机迁出端;接收虚拟机迁出端发送的加密虚拟机数据,其中,加密虚拟机数据由虚拟机迁出端对签名加密密钥进行签名验证通过后,通过解密获得的迁移密钥对待迁移虚拟机的数据进行加密形成;根据迁移密钥对加密虚拟机数据进行解密,获取待迁移虚拟机的数据,完成对待迁移虚拟机的迁移。本方案能够提高虚拟机迁移的安全性。

著录项

  • 公开/公告号CN106341228A

    专利类型发明专利

  • 公开/公告日2017-01-18

    原文格式PDF

  • 申请/专利权人 广东浪潮大数据研究有限公司;

    申请/专利号CN201610971335.7

  • 发明设计人 曹永超;

    申请日2016-11-01

  • 分类号H04L9/08(20060101);H04L9/32(20060101);H04L29/06(20060101);G06F9/455(20060101);G06F9/48(20060101);

  • 代理机构37100 济南信达专利事务所有限公司;

  • 代理人李世喆

  • 地址 510640 广东省广州市天河区黄埔大道西平云路163号A塔9层自编01单元

  • 入库时间 2023-06-19 01:27:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-04

    授权

    授权

  • 2017-02-15

    实质审查的生效 IPC(主分类):H04L9/08 申请日:20161101

    实质审查的生效

  • 2017-01-18

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别涉及一种虚拟机迁移方法、系统及虚拟机迁入段和迁出端。

背景技术

虚拟机迁移是云服务平台具备的基本功能,迁移的基本过程为将虚拟机从云平台上的一台服务器迁移至另一台服务器。通过虚拟机的迁移,当虚拟机所在的服务器发生故障无法继续支持虚拟机运行时,可以将虚拟机迁移到其他的服务器上,以使虚拟机继续对用户的业务数据进行处理,提高云服务平台的可靠性。为了保证虚拟机迁移过程中数据的安全性,一般在虚拟机迁移过程中需要对虚拟机数据进行加密。

目前,在对虚拟机进行迁移时,由虚拟机迁入端产生迁移密钥,通过虚拟机迁出端的公钥对迁移密钥加密后发送给虚拟机迁出端,虚拟机迁出端通过解密获得迁移密钥后,通过迁移密钥对虚拟机数据进行加密,将加密后的虚拟机数据发送给虚拟机迁入端,以将虚拟机迁移至虚拟机迁入端。

针对于目前对虚拟机进行迁移的方法,中间人可以拦截虚拟机迁入端发出的加密后的迁移密钥,由于虚拟机迁出端的公钥是公开的,因而中间人可以伪造迁移密钥发送给虚拟机迁出端,虚拟机迁出端将根据伪造的迁移密钥对虚拟机数据进行加密,这样中间人拦截到通过伪造的迁移密钥进行加密后的虚拟机数据,便可以对虚拟机数据进行解密,造成虚拟机数据的泄露。因而,针对于目前对虚拟机进行迁移的方法,由于容易造成虚拟机数据的泄露,因而虚拟机迁移的安全性较低。

发明内容

本发明实施例提供了一种虚拟机迁移方法、系统及虚拟机迁入段和迁出端,能够提高虚拟机迁移的安全性。

本发明实施例提供了虚拟机迁移的方法,应用于虚拟机迁入端,包括:

接收虚拟机迁出端发送的虚拟机迁移请求;

根据所述虚拟机迁移请求形成迁移密钥;

通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密并进行签名,形成签名加密密钥;

将所述签名加密密钥发送给所述虚拟机迁出端;

接收所述虚拟机迁出端发送的加密虚拟机数据,其中,所述加密虚拟机数据由所述虚拟机迁出端对所述签名加密密钥进行签名验证通过后,通过解密获得的所述迁移密钥对待迁移虚拟机的数据进行加密形成;

根据所述迁移密钥对所述加密虚拟机数据进行解密,获取所述待迁移虚拟机的数据,完成对所述待迁移虚拟机的迁移。

优选地,

所述通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密并进行签名,形成签名加密密钥,包括:

通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密,形成对应的加密密钥;

通过所述虚拟机迁入端的私钥对所述加密密钥进行签名,形成所述签名加密密钥。

优选地,

所述通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密并进行签名,形成签名加密密钥,包括:

通过所述虚拟机迁出端的公钥及所述虚拟机迁入端的私钥,利用同一个签名加密函数对所述迁移密钥进行加密及签名处理,形成所述签名加密密钥;其中,在所述签名加密密钥中,签名字段位于加密字段的头部、中部或尾部。

本发明实施例还提供了一种虚拟机迁移的方法,应用于虚拟机迁出端,包括:

向虚拟机迁入端发送虚拟机迁移请求;

接收与所述虚拟机迁移请求相对应的签名加密密钥;

对所述签名加密密钥进行签名验证,以判断所述签名加密密钥是否由所述虚拟机迁入端形成;

如果是,通过与所述虚拟机迁出端的公钥相对应的私钥对所述签名加密密钥进行解密,获得迁移密钥;

通过所述迁移密钥对待迁移虚拟机的数据进行加密,形成加密虚拟机数据;

将所述加密虚拟机数据发送给所述虚拟机迁入端。

优选地,

所述对所述签名加密密钥进行签名验证,判断所述签名加密密钥是否由所述虚拟机迁入端形成,包括:

判断所述签名加密密钥的签名是否与所述虚拟机迁入端的私钥相对应目标签名相同,如果是,判定所述签名加密密钥由所述虚拟机迁入端形成,否则判定所述签名加密密钥不是由所述虚拟机迁入端形成。

优选地,

所述待迁移虚拟机的数据包括:待迁移虚拟机的操作系统数据、待迁移虚拟机上所运行的应用程序数据及用户数据中的任意一个或多个。

本发明实施例还提供了一种虚拟机迁入端,包括:第一接收单元、第一发送单元、第一加密单元及第一解密单元;

所述第一接收单元,用于接收虚拟机迁出端发送的虚拟机迁移请求;以及接收所述虚拟机迁出端发送的加密虚拟机数据,其中,所述加密虚拟机数据由所述虚拟机迁出端对所述第一加密单元形成的所述签名加密密钥进行签名验证通过后,通过解密获得的所述迁移密钥对待迁移虚拟机的数据进行加密形成;

所述第一加密单元,用于根据所述第一单元接收到的所述虚拟机迁移请求形成迁移密钥,以及通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密并进行签名,形成签名加密密钥;

所述第一发送单元,用于将所述第一加密单元形成的所述签名加密密钥发送给所述虚拟机迁出端;

所述第一解密单元,用于根据所述第一加密单元形成的所述迁移密钥对所述第一接收单元接收到的所述加密虚拟机数据进行解密,获取所述待迁移虚拟机的数据,完成对所述待迁移虚拟机的迁移。

优选地,

所述第一加密单元包括:加密子单元及签名子单元;

所述加密子单元,用于通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密,形成对应的加密密钥;

所述签名子单元,用于通过所述虚拟机迁入端的私钥对所述加密子单元形成的所述加密密钥进行签名,形成所述签名加密密钥。

优选地,

所述第一加密单元包括:运算子单元;

所述运算子单元,用于通过所述虚拟机迁出端的公钥及所述虚拟机迁入端的私钥,利用同一个签名加密函数对所述迁移密钥进行加密及签名处理,形成所述签名加密密钥;其中,在所述签名加密密钥中,签名字段位于加密字段的头部、中部或尾部。

本发明实施例还提供了一种虚拟机迁出端,包括:第二发送单元、第二接收单元、验证单元、第二解密单元及第二加密单元;

所述第二发送单元,用于向虚拟机迁入端发送虚拟机迁移请求;以及将所述第二加密单元形成的加密虚拟机数据发送给所述虚拟机迁入端;

所述第二接收单元,用于接收与所述第二发送单元发送的所述虚拟机迁移请求相对应的签名加密密钥;

所述验证单元,用于对所述第二接收单元接收到的所述签名加密密钥进行签名验证,以判断所述签名加密密钥是否由所述虚拟机迁入端形成;

所述第二解密单元,用于根据所述验证单元的验证结果,如果是,通过与所述虚拟机迁出端的公钥相对应的私钥对所述签名加密密钥进行解密,获得迁移密钥;

所述第二加密单元,用于通过所述第二解密单元获得的所述迁移密钥对待迁移虚拟机的数据进行加密,形成加密虚拟机数据。

优选地,

所述验证单元,用于判断所述签名加密密钥的签名是否与所述虚拟机迁入端的私钥相对应目标签名相同,如果是,判定所述签名加密密钥由所述虚拟机迁入端形成,否则判定所述签名加密密钥不是由所述虚拟机迁入端形成。

本发明实施例还提供了一种虚拟机迁移系统,包括:上述实施例提供的任意一种虚拟机迁入端以及上述实施例提供的任意一种虚拟机迁出端。

本发明实施例提供了一种虚拟机迁移方法、系统及虚拟机迁入端和迁出端,在接收到虚拟机迁出端发送的虚拟机迁移请求后,形成迁移密钥;通过虚拟机迁出端的公钥对迁移密钥进行加密及签名形成签名加密密钥,并将签名加密密钥发送给虚拟机迁出端;当虚拟机迁出端对签名加密密钥进行签名验证通过后,虚拟机迁出端从签名加密密钥中解密出迁移密钥,通过迁移密钥对待迁移虚拟机的数据进行加密形成加密虚拟机数据;接收到虚拟机迁出端发送的加密虚拟机数据后,根据迁移密钥对加密虚拟机数据进行解密,获得待迁移虚拟机的数据,完成对待迁移虚拟机的迁移。由于发送给虚拟机迁出端的签名加密密钥经过签名处理,而中间人无法伪造该签名处理,因而虚拟机迁出端通过对签名加密密钥进行签名验证,可以判断签名解密密钥是否由虚拟机迁入端形成,如果是说明迁移密钥不是中间人伪造的,通过该迁移密钥对待迁移虚拟机的数据进行加密后中间人无法进行解密,只有拥有该迁移密钥的虚拟机迁入端能够解密。因而,能够避免虚拟机数据的泄露,提高了该虚拟机迁移方法的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种应用于虚拟机迁入端的虚拟机迁移方法的流程图;

图2是本发明一个实施例提供的一种应用于虚拟机迁出端的虚拟机迁移方法的流程图;

图3是本发明一个实施例提供的一种虚拟机迁入端的示意图;

图4是本发明一个实施例提供的一种第一加密单元的示意图;

图5是本发明一个实施例提供的一种虚拟机迁出端的示意图;

图6是本发明一个实施例提供的一种虚拟机迁移系统的示意图;

图7是本发明一个实施例提供的一种虚拟机迁移方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种虚拟机迁移的方法,应用于虚拟机迁入端,该方法可以包括以下步骤:

步骤101:接收虚拟机迁出端发送的虚拟机迁移请求;

步骤102:根据所述虚拟机迁移请求形成迁移密钥;

步骤103:通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密并进行签名,形成签名加密密钥;

步骤104:将所述签名加密密钥发送给所述虚拟机迁出端;

步骤105:接收所述虚拟机迁出端发送的加密虚拟机数据,其中,所述加密虚拟机数据由所述虚拟机迁出端对所述签名加密密钥进行签名验证通过后,通过解密获得的所述迁移密钥对待迁移虚拟机的数据进行加密形成;

步骤106:根据所述迁移密钥对所述加密虚拟机数据进行解密,获取所述待迁移虚拟机的数据,完成对所述待迁移虚拟机的迁移。

本发明实施例提供了一种应用于虚拟机迁入端的虚拟机迁移方法,在接收到虚拟机迁出端发送的虚拟机迁移请求后,形成迁移密钥;通过虚拟机迁出端的公钥对迁移密钥进行加密及签名形成签名加密密钥,并将签名加密密钥发送给虚拟机迁出端;当虚拟机迁出端对签名加密密钥进行签名验证通过后,虚拟机迁出端从签名加密密钥中解密出迁移密钥,通过迁移密钥对待迁移虚拟机的数据进行加密形成加密虚拟机数据;接收到虚拟机迁出端发送的加密虚拟机数据后,根据迁移密钥对加密虚拟机数据进行解密,获得待迁移虚拟机的数据,完成对待迁移虚拟机的迁移。由于发送给虚拟机迁出端的签名加密密钥经过签名处理,而中间人无法伪造该签名处理,因而虚拟机迁出端通过对签名加密密钥进行签名验证,可以判断签名解密密钥是否由虚拟机迁入端形成,如果是说明迁移密钥不是中间人伪造的,通过该迁移密钥对待迁移虚拟机的数据进行加密后中间人无法进行解密,只有拥有该迁移密钥的虚拟机迁入端能够解密。因而,能够避免虚拟机数据的泄露,提高了该虚拟机迁移方法的安全性。

在本发明一个实施例中,根据加密和签名的顺序,对迁移密钥进行加密处理和签名处理可以包括以下两种不同的形式:

形式一:首先对迁移密钥进行加密处理,然后对加密处理后的迁移密钥进行签名处理;

形式二:同时对迁移密钥进行加密及签名处理。

下面针对上述两种形式,分别对迁移密钥进的处理过程进行说明:

针对于形式一,

首先调用相应的加密算法,通过虚拟机迁出端的公钥对迁移密钥进行加密处理,形成加密密钥;然后调用相应的签名算法,通过虚拟机迁入端的私钥对加密密钥进行签名处理,形成对应的签名加密密钥。

具体地,

由于虚拟机迁出端的公钥是公开的,通过虚拟机迁出端的公钥对迁移密钥进行加密形成加密密钥,虚拟机迁出端能够通过与其公钥相对应的私钥对加密密钥进行解密,从而获得迁移密钥,以便通过迁移密钥对待迁移虚拟机的数据进行加密;

由于虚拟机迁入端的私钥是非公开的,通过虚拟机迁入端的私钥对加密密钥进行签名形成签名加密密钥;中间人截获虚拟机迁入端发送给虚拟机迁出端的签名加密密钥后,由于其无法获取虚拟机迁入端的私钥,所以无法伪造出能够通过虚拟机迁出端签名验证的签名,因而无法伪造迁移密钥以对虚拟机数据进行窃取。

针对于形式二,

调用一个签名加密函数,通过虚拟机迁出端的公钥及虚拟机迁入端的私钥,对迁移密钥进行加密处理及签名处理,形成签名加密密钥;在所形成的签名加密密钥中,签名字段可以位于加密字段的头部、中部或尾部中的任意部位。

具体地,

通过一个签名加密函数,该签名加密函数能够利用虚拟机迁出端的公钥对迁移密钥进行加密,同时还可以利用虚拟机迁入端的私钥对迁移密钥进行签名;通过该签名加密函数对迁移密钥进行同步的加密处理和签名处理,加密处理和签名处理完成后形成签名加密密钥,由于签名处理和加密处理的逻辑次序不同,在所形成的签名加密密钥中签名字段可以位于加密字段的头部、中部或尾部中的任意部位。

相对于形式一而言,由于对迁移密钥的加密处理和签名处理同时进行,因而可以提高对迁移密钥进行处理的效率,进而提高对虚拟机进行迁移的效率。

如图2所示,本发明一个实施例提供了一种虚拟机迁移的方法,应用于虚拟机迁出端,该方法可以包括以下步骤:

步骤201:向虚拟机迁入端发送虚拟机迁移请求;

步骤202:接收与所述虚拟机迁移请求相对应的签名加密密钥;

步骤203:对所述签名加密密钥进行签名验证,以判断所述签名加密密钥是否由所述虚拟机迁入端形成,如果是,执行步骤204,否则结束当前流程;

步骤204:通过与所述虚拟机迁出端的公钥相对应的私钥对所述签名加密密钥进行解密,获得迁移密钥;

步骤205:通过所述迁移密钥对待迁移虚拟机的数据进行加密,形成加密虚拟机数据;

步骤206:将所述加密虚拟机数据发送给所述虚拟机迁入端。

本发明实施例提供了一种应用于虚拟机迁出端的虚拟机迁移方法,当虚拟机迁出端需要迁移虚拟机时,向虚拟机迁入端发送虚拟机迁移请求,并接收与虚拟机迁移请求相对应的签名加密密钥;首先对签名加密密钥进行签名验证,判断签名加密密钥是否由虚拟机迁入端形成,如果否,结束当前流程,如果是进而通过虚拟机迁出端的私钥对签名加密密钥进行解密,获得迁移密钥;通过迁移密钥对待迁移虚拟机的数据进行加密后发送给虚拟机迁入端,完成虚拟机的迁移。在通过迁移密钥对待迁移虚拟机的数据进行加密之前,首先对签名加密密钥进行签名验证,由于中间人无法伪造出与虚拟机迁入端相同的签名,当中间人伪造迁移密钥时将导致签名加密密钥无法通过签名验证,进而虚拟机迁出端不会根据伪造的迁移密钥对虚拟机数据进行加密并传输,从而能够避免虚拟机数据的泄露,提高虚拟机迁移的安全性。

在本发明一个实施例中,在对签名加密密钥进行签名验证时,将签名加密密钥的签名与预设的目标签名进行比较,其中目标签名与虚拟机迁入端的私钥向对应,如果签名加密密钥的签名与目标签名相同,则判断签名加密密钥是由虚拟机迁入端形成的,如果签名加密密钥的签名与目标签名不同,则判断签名加密密钥不是由虚拟机迁入端形成的。

具体地,

签名加密密钥的签名是由虚拟机迁入端根据其私钥形成的,由于虚拟机迁入端的私钥是非公开的,因而中间人无法对虚拟机迁入端的签名进行伪造;由于虚拟机迁入端的签名无法伪造,当中间人伪造迁移密钥时将导致签名加密密钥无法通过签名验证,相应地虚拟机迁出端不会根据伪造的迁移密钥对虚拟机数据进行加密并发送,从而能够避免虚拟机数据的泄露。

在进行签名验证时,将签名加密密钥的签名与目标签名进行对比,目标签名与虚拟机迁入端的私钥相对应。虽然目标签名与虚拟机迁入端的私钥相对应,但是虚拟机迁出端无法通过目标签名获得虚拟机迁入端的私钥,这样可以保证虚拟机迁入端的私钥的安全性,进一步提高虚拟机迁移的安全性,并能过保证虚拟机的安全性。

在本发明一个实施例中,待迁移虚拟机的数据包括:待迁移虚拟机的操作系统数据、待迁移虚拟机上所运行的应用程序数据及用户数据中的任意一个或多个。

具体地,

待迁移虚拟机的数据包括操作系统数据、应用程序数据及用户数据,通过对这些数据进行加密,可以保证待迁移虚拟机各个部分的数据都不会被泄露,从而能够保证虚拟机数据的完整性。一方面,可以防止用户数据及应用程序数据被篡改或泄露给用户带来的威胁,另一方面,可以防止中间人对操作系统数据进行篡改导致虚拟机运行异常给用户带来的不变。

如图3所示,本发明一个实施例提供了一种虚拟机迁入端,包括:第一接收单元301、第一加密单元302、第一发送单元303及第一解密单元304;

所述第一接收单元301,用于接收虚拟机迁出端发送的虚拟机迁移请求;以及接收所述虚拟机迁出端发送的加密虚拟机数据,其中,所述加密虚拟机数据由所述虚拟机迁出端对所述第一加密单元302形成的所述签名加密密钥进行签名验证通过后,通过解密获得的所述迁移密钥对待迁移虚拟机的数据进行加密形成;

所述第一加密单元302,用于根据所述第一接收单元301接收到的所述虚拟机迁移请求形成迁移密钥,以及通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密并进行签名,形成签名加密密钥;

所述第一发送单元303,用于将所述第一加密单元302形成的所述签名加密密钥发送给所述虚拟机迁出端;

所述第一解密单元304,用于根据所述第一加密单元302形成的所述迁移密钥对所述第一接收单元301接收到的所述加密虚拟机数据进行解密,获取所述待迁移虚拟机的数据,完成对所述待迁移虚拟机的迁移。

在本发明一个实施例中,如图4所示,第一加密单元302包括:加密子单元3021及签名子单元3022;

所述加密子单元3021,用于通过所述虚拟机迁出端的公钥对所述迁移密钥进行加密,形成对应的加密密钥;

所述签名子单元3022,用于通过所述虚拟机迁入端的私钥对所述加密子单元3021形成的所述加密密钥进行签名,形成所述签名加密密钥。

在本发明一个实施例中,第一加密单元302可以包括运算子单元;

所述运算子单元,用于通过所述虚拟机迁出端的公钥及所述虚拟机迁入端的私钥,利用同一个签名加密函数对所述迁移密钥进行加密及签名处理,形成所述签名加密密钥;其中,在所述签名加密密钥中,签名字段位于加密字段的头部、中部或尾部。

需要说明的是,上述虚拟机迁入端内的各单元之间的信息交互、执行过程等内容,由于与上述应用于虚拟机迁入端的虚拟机迁移方法实施例基于同一构思,具体内容可参见上述应用于虚拟机迁入端的虚拟机迁移方法实施例中的叙述,此处不再赘述。

如图5所示,本发明一个实施例提供了一种虚拟机迁出端,包括:第二发送单元501、第二接收单元502、验证单元503、第二解密单元504及第二加密单元505;

所述第二发送单元501,用于向虚拟机迁入端发送虚拟机迁移请求;以及将所述第二加密单元505形成的加密虚拟机数据发送给所述虚拟机迁入端;

所述第二接收单元502,用于接收与所述第二发送单元501发送的所述虚拟机迁移请求相对应的签名加密密钥;

所述验证单元503,用于对所述第二接收单元502接收到的所述签名加密密钥进行签名验证,以判断所述签名加密密钥是否由所述虚拟机迁入端形成;

所述第二解密单元504,用于根据所述验证单元503的验证结果,如果是,通过与所述虚拟机迁出端的公钥相对应的私钥对所述签名加密密钥进行解密,获得迁移密钥;

所述第二加密单元505,用于通过所述第二解密单元504获得的所述迁移密钥对待迁移虚拟机的数据进行加密,形成加密虚拟机数据。

在本发明一个实施例中,所述验证单元503用于判断所述签名加密密钥的签名是否与所述虚拟机迁入端的私钥相对应目标签名相同,如果是,判定所述签名加密密钥由所述虚拟机迁入端形成,否则判定所述签名加密密钥不是由所述虚拟机迁入端形成。

需要说明的是,上述虚拟机迁出端内的各单元之间的信息交互、执行过程等内容,由于与上述应用于虚拟机迁出端的虚拟机迁移方法实施例基于同一构思,具体内容可参见上述应用于虚拟机迁出端的虚拟机迁移方法实施例中的叙述,此处不再赘述。

如图6所示,本发明一个实施例提供了一种虚拟机迁移系统,包括:本发明实施例提供的任意一种虚拟机迁入端601以及本发明实施例提供的任意一种虚拟机迁出端602。

下面结合图3所示的虚拟机迁入端,图5所示的虚拟机迁出端及图6所示的虚拟机迁移系统,对本发明实施例提供的虚拟机迁移方法作进一步详细说明,如图7所示,该方法可以包括以下步骤:

步骤701:虚拟机迁出端形成虚拟机迁移请求,并将形成的虚拟机迁移请求发送给虚拟机迁出端。

在本发明一个实施例中,当虚拟机迁出端需要对运行与其上的虚拟机进行迁出时,虚拟机迁出端形成虚拟机迁移请求,并将所形成的虚拟机迁移请求发送给虚拟机迁入端。

例如,作为虚拟机迁出端的服务器A需要将运行于其上的虚拟机1迁出,服务器A形成对应于虚拟机1的虚拟机迁移请求1,并将虚拟机迁移请求1发送给作为虚拟机迁入端的服务器B。

步骤702:虚拟机迁入端根据虚拟机迁移请求随机形成迁移密钥。

在本发明一个实施例中,虚拟机迁入端在接收到虚拟机迁出端发送的虚拟机迁移请求后,随机形成一个迁移密钥。

例如,服务器B在接收到服务器A发送的虚拟机迁移请求1后,随机形成一个迁移密钥symkey。

步骤703:虚拟机迁入端对迁移密钥加密及签名,形成签名加密密钥,并将形成的签名加密密钥发送给虚拟机迁出端。

在本发明一个实施例中,虚拟机迁入端随机形成迁移密钥后,通过虚拟机迁出端的公钥对迁移密钥进行加密,并通过虚拟机迁入端的私钥对迁移密钥进行签名,形成相应的签名加密密钥,并将形成的签名加密密钥发送给虚拟机迁出端。

例如,服务器B在随机形成迁移密钥symkey后,调用签名加密函数,通过服务器A的公钥Public_A对迁移密钥symkey进行加密处理,通过服务器B的私钥Private_B对迁移密钥symkey进行签名处理,形成签名加密密钥(cipher,sign)。具体过程可以为:(cipher,sign)=RSA_Signcrypt(Public_A,Private_B,symkey),其中加密算法为公钥加密算法RSA。在获得签名加密密钥(cipher,sign)后,将签名加密密钥(cipher,sign)发送给服务器A。

步骤704:虚拟机迁出端判断签名加密密钥是否由虚拟机迁入端形成,如果是,执行步骤705,否则结束当前流程。

在本发明一个实施例中,虚拟机迁出端在向虚拟机迁入端发送虚拟机迁移请求后,实时接收与所发送的虚拟机迁移请求相对应的签名加密密钥;当虚拟机迁出端接收到与虚拟机迁移请求相对应的签名加密密钥后,对签名加密密钥进行签名验证,判断签名加密密钥的签名是否与对应于虚拟机迁入端私钥的目标签名相同,如果是,判定签名加密密钥是由虚拟机迁入端形成的,相应地执行步骤705,否则结束当前流程。

例如,服务器A在接收到对应于虚拟机迁移请求1的签名加密密钥(cipher,sign')后,调用相应的签名验证函数status=RSA_Verify(Public_A,sign')对签名加密密钥(cipher,sign')的签名sign'进行签名验证,如果status==SUCCESS,说明服务器A接收到的签名加密密钥(cipher,sign')为服务器B发送的签名加密密钥(cipher,sign),相应地执行步骤705;如果status==FAILED,说明服务器A接收到的签名加密密钥(cipher,sign')不是服务器B发送的签名加密密钥(cipher,sign),而是中间人伪造的签名加密密钥,相应地结束当前流程。

步骤705:虚拟机迁出端对签名加密密钥进行解密,获得迁移密钥。

在本发明一个实施例中,虚拟机迁出端在确定签名加密密钥是由虚拟机迁入端所发送之后,通过与之公钥相对应的私钥对签名加密密钥进行解密,获得迁移密钥。

例如,服务器A的公钥为Public_A,服务器A通过签名验证判定签名加密密钥(cipher,sign')是服务器B发送的签名加密密钥(cipher,sign)后,通过与公钥Public_A相对应的私钥Private_A对加密密钥cipher进行解密,获得迁移密钥symkey,解密过程通过RSA解密算法进行,具体过程为symkey=RSA_Decrypt(Private_A,cipher)。

步骤706:虚拟机迁出端通过迁移密钥对待迁移虚拟机的数据进行加密,形成加密虚拟机数据,并将加密虚拟机数据发送给虚拟机迁入端。

在本发明一个实施例中,虚拟机迁出端获得迁移密钥后,通过迁移密钥对待迁出虚拟机的数据进行加密,被加密的数据包括待迁移虚拟机的操作系统数据、待迁移虚拟机上运行的应用程序数据以及用户数据,形成加密虚拟机数据,将形成的加密虚拟机数据发送给虚拟机迁入端。

例如,服务器A通过迁移密钥symkey对虚拟机1的数据进行加密,形成加密虚拟机数据后发送给服务器B。其中,对虚拟机1的数据进行加密的过程可以采用RSA加密算法。

步骤707:虚拟机迁入端通过迁移密钥对加密虚拟机数据进行解密,获得待迁移虚拟机的数据,完成虚拟机的迁移。

在本发明一个实施例中,虚拟机迁入端接收到虚拟机迁出端发送的加密虚拟机数据后,通过迁移密钥对加密虚拟机数据进行解密,获得待迁移虚拟机的数据,在虚拟机迁入端上对待迁移虚拟机进行运行,完成虚拟机的迁移。

例如,服务器B在接收到服务器A发送的加密虚拟机数据后,通过迁移密钥symkey对加密虚拟机数据进行解密,获得虚拟机1的数据,在服务器B上对虚拟机1进行运行。至此,虚拟机1从服务器A迁移到了服务器B上,完成了虚拟机1的迁移。

本发明实施例提供的各个实施例,至少具有如下有益效果:

1、在本发明实施例中,在接收到虚拟机迁出端发送的虚拟机迁移请求后,形成迁移密钥;通过虚拟机迁出端的公钥对迁移密钥进行加密及签名形成签名加密密钥,并将签名加密密钥发送给虚拟机迁出端;当虚拟机迁出端对签名加密密钥进行签名验证通过后,虚拟机迁出端从签名加密密钥中解密出迁移密钥,通过迁移密钥对待迁移虚拟机的数据进行加密形成加密虚拟机数据;接收到虚拟机迁出端发送的加密虚拟机数据后,根据迁移密钥对加密虚拟机数据进行解密,获得待迁移虚拟机的数据,完成对待迁移虚拟机的迁移。由于发送给虚拟机迁出端的签名加密密钥经过签名处理,而中间人无法伪造该签名处理,因而虚拟机迁出端通过对签名加密密钥进行签名验证,可以判断签名解密密钥是否由虚拟机迁入端形成,如果是说明迁移密钥不是中间人伪造的,通过该迁移密钥对待迁移虚拟机的数据进行加密后中间人无法进行解密,只有拥有该迁移密钥的虚拟机迁入端能够解密。因而,能够避免虚拟机数据的泄露,提高了该虚拟机迁移方法的安全性。

2、在本发明实施例中,虚拟机迁入端在对迁移密钥进行加密和签名处理时,可以通过同一个函数完成迁移密钥的加密和签名,相对于先加密后签名的方式,加密处理和签名处理同时进行,可以提高对迁移密钥进行处理的效率,进而可以提高对虚拟机进行迁移的效率。

3、在本发明实施例中,待迁移虚拟机的数据包括操作系统数据、应用程序数据及用户数据,通过对这些数据进行加密,可以保证待迁移虚拟机各个部分的数据都不会被泄露,从而能够保证虚拟机数据的完整性。一方面,可以防止用户数据及应用程序数据被篡改或泄露给用户带来的威胁,另一方面,可以防止中间人对操作系统数据进行篡改导致虚拟机运行异常给用户带来的不变。

4、在本发明实施例中,通过虚拟机迁入端的私钥对随机形成的迁移密钥进行签名处理,由于虚拟机迁入端的私钥为非公开的,因而中间人无法在伪造迁移密钥后对迁移密钥增加与虚拟机迁入端相同的签名,因而虚拟机迁出端能够分辨出所接收到的迁移密钥是否来至虚拟机迁入端,保证对虚拟机数据进行加密的有效性,能够有效防范中间人的攻击,提高虚拟机迁移的安全性。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号