一种热迁移的方法、装置及电子设备制造方法及图纸

技术编号:27205820 阅读:25 留言:0更新日期:2021-01-31 12:28
本发明专利技术提供了一种热迁移的方法、装置及电子设备,其中,该方法包括:预先设置第一扩展指令集和第一迁移密钥寄存器;生成源迁移主密钥,并基于存储指令将源迁移主密钥存入至第一迁移密钥寄存器中;基于飞地资源搬出指令读取源迁移主密钥,对待迁移飞地内存页进行加密处理,并搬出加密后的待迁移飞地内存页;将迁移数据发送至目标主机。该技术方案利用存储指令将迁移主密钥存储到安全可信的迁移密钥寄存器中,避免迁移主密钥被泄露;之后利用该飞地资源搬出指令,基于迁移主密钥对待迁移飞地内存页进行加密处理,能够保证飞地内存中数据的安全性,且使得虚拟管理器也有权将加密后待迁移飞地内存页发送至目标主机,从而实现飞地内存页的热迁移。存页的热迁移。存页的热迁移。

【技术实现步骤摘要】
一种热迁移的方法、装置及电子设备


[0001]本专利技术涉及热迁移
,具体而言,涉及一种热迁移的方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]Intel的SGX(Software Guard Extensions,软件防护扩展)是实现在第六代CPU之后的一组扩展指令集。SGX着眼于提供一个为用户应用程序提供可信的执行环境,为了达到这一目标,SGX使得应用程序在一段位于Enclave(飞地)地址空间中能够开辟一段受保护的内存空间,该内存空间一般称为EPC(Enclave Page Cache,飞地页缓存)。
[0003]然而,将SGX应用到云计算中存在一个具有挑战性的问题:现有SGX VMM(Virtual Machine Manager,虚拟机管理器,一种具有较高特权的软件)不提供实时迁移(也叫热迁移,live migration)。通常,在托管迁移中,源VMM将整个VM(Virtual Machin,虚拟机)的内存页传输到目标VMM,直到不同物理机器(源主机和目标主机)中的VM是一致的。然后,目标VMM启动迁移的VM,源VMM停止VM。为此,对于启用SGX的VM的托管动态迁移VMM应该将enclave内存页传输到目的地宿主。
[0004]然而,VMM不能像往常一样传输enclave页,因为SGX阻止VMM直接访问PRM(Preserved Random Memory,预留随机存储器)。英特尔公司2016年官方的SGX开发者指南提供了跨平台迁移enclave数据的指南,但该指南不能应用于迁移除enclave数据之外的其他enclave页,不能有效实现热迁移。

技术实现思路

[0005]为解决现有存在的技术问题,本专利技术实施例提供一种热迁移的方法、装置、电子设备及计算机可读存储介质。
[0006]第一方面,本专利技术实施例提供了一种热迁移的方法,包括:
[0007]预先设置第一扩展指令集,并新增第一迁移密钥寄存器,所述第一扩展指令集包括存储指令和飞地资源搬出指令;
[0008]根据与目标主机之间的通信消息生成源迁移主密钥,并基于所述存储指令将所述源迁移主密钥存入至所述第一迁移密钥寄存器中;
[0009]基于所述飞地资源搬出指令读取所述第一迁移密钥寄存器中的所述源迁移主密钥,根据所述源迁移主密钥对待迁移飞地内存页进行加密处理,并基于所述飞地资源搬出指令搬出加密后的所述待迁移飞地内存页;
[0010]将迁移数据发送至所述目标主机,所述迁移数据包括加密后的所述待迁移飞地内存页。
[0011]第二方面,本专利技术实施例还提供了一种热迁移的方法,包括:
[0012]预先设置第二扩展指令集,并新增第二迁移密钥寄存器,所述第二扩展指令集包括存储指令和飞地资源加载指令;
[0013]根据与源主机之间的通信消息生成目标迁移主密钥,并基于所述存储指令将所述目标迁移主密钥存入至所述第二迁移密钥寄存器中;
[0014]获取到所述源主机发送的迁移数据,基于所述飞地资源加载指令读取所述第二迁移密钥寄存器中的所述目标迁移主密钥;所述迁移数据包括加密后的所述源主机的待迁移飞地内存页;
[0015]根据所述目标迁移主密钥对所述迁移数据进行解密处理,提取并存储所述待迁移飞地内存页。
[0016]第三方面,本专利技术实施例还提供了一种热迁移的装置,包括:
[0017]第一预设模块,用于预先设置第一扩展指令集,并新增第一迁移密钥寄存器,所述第一扩展指令集包括存储指令和飞地资源搬出指令;
[0018]源迁移主密钥处理模块,用于根据与目标主机之间的通信消息生成源迁移主密钥,并基于所述存储指令将所述源迁移主密钥存入至所述第一迁移密钥寄存器中;
[0019]资源搬出模块,用于基于所述飞地资源搬出指令读取所述第一迁移密钥寄存器中的所述源迁移主密钥,根据所述源迁移主密钥对待迁移飞地内存页进行加密处理,并基于所述飞地资源搬出指令搬出加密后的所述待迁移飞地内存页;
[0020]发送模块,用于将迁移数据发送至所述目标主机,所述迁移数据包括加密后的所述待迁移飞地内存页。
[0021]第四方面,本专利技术实施例还提供了一种热迁移的装置,包括:
[0022]第二预设模块,用于预先设置第二扩展指令集,并新增第二迁移密钥寄存器,所述第二扩展指令集包括存储指令和飞地资源加载指令;
[0023]目标迁移主密钥处理模块,根据与源主机之间的通信消息生成目标迁移主密钥,并基于所述存储指令将所述目标迁移主密钥存入至所述第二迁移密钥寄存器中;
[0024]资源加载模块,用于获取到所述源主机发送的迁移数据,基于所述飞地资源加载指令读取所述第二迁移密钥寄存器中的所述目标迁移主密钥;所述迁移数据包括加密后的所述源主机的待迁移飞地内存页;根据所述目标迁移主密钥对所述迁移数据进行解密处理,提取并存储所述待迁移飞地内存页。
[0025]第五方面,本专利技术实施例提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现上述任意一项所述的热迁移的方法中的步骤。
[0026]第六方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的热迁移的方法中的步骤。
[0027]本专利技术实施例提供的热迁移的方法、装置、电子设备及计算机可读存储介质,通过设置迁移密钥寄存器和包含存储指令、飞地资源搬出指令的指令扩展集,利用存储指令将迁移主密钥存储到安全可信的迁移密钥寄存器中,避免迁移主密钥被泄露;之后利用该飞地资源搬出指令,基于迁移主密钥对待迁移飞地内存页进行加密处理,并搬出。由于搬出的待迁移飞地内存页是经过加密的,能够保证飞地内存中数据的安全性,且使得虚拟管理器也有权将加密后待迁移飞地内存页发送至目标主机,从而实现飞地内存页的热迁移。该方式在实现热迁移的同时,能够保证数据安全性;且该方式适用于所有类型的飞地内存页,能
够实现完整迁移。
附图说明
[0028]为了更清楚地说明本专利技术实施例或
技术介绍
中的技术方案,下面将对本专利技术实施例或
技术介绍
中所需要使用的附图进行说明。
[0029]图1示出了本专利技术实施例所提供的热迁移的方法的流程图;
[0030]图2示出了本专利技术实施例所提供的热迁移的方法的另一流程图;
[0031]图3示出了本专利技术实施例所提供的迁移主密钥的生成过程示意图;
[0032]图4示出了本专利技术实施例所提供的主机的框架结构示意图;
[0033]图5示出了本专利技术实施例所提供的热迁移的方法的整体流程图;
[0034]图6示出了本专利技术实施例所提供的热迁移的装置的一种结构示意图;
[0035]图7示出了本专利技术实施例所提供的热迁移的装置的另一种结构示意图;
[0036]图8示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种热迁移的方法,其特征在于,包括:预先设置第一扩展指令集,并新增第一迁移密钥寄存器,所述第一扩展指令集包括存储指令和飞地资源搬出指令;根据与目标主机之间的通信消息生成源迁移主密钥,并基于所述存储指令将所述源迁移主密钥存入至所述第一迁移密钥寄存器中;基于所述飞地资源搬出指令读取所述第一迁移密钥寄存器中的所述源迁移主密钥,根据所述源迁移主密钥对待迁移飞地内存页进行加密处理,并基于所述飞地资源搬出指令搬出加密后的所述待迁移飞地内存页;将迁移数据发送至所述目标主机,所述迁移数据包括加密后的所述待迁移飞地内存页。2.根据权利要求1所述的方法,其特征在于,所述根据与目标主机之间的通信消息生成源迁移主密钥,包括:生成源密钥交换消息msg
S
,并执行本地认证生成源报告REPORT
S
;将所述源报告REPORT
S
发送至本地的引用飞地QE
S
,在所述源报告REPORT
S
有效时接收所述引用飞地QE
S
返回的源引用结构体QUOTE
S
;将所述源密钥交换消息msg
S
和所述源引用结构体QUOTE
S
发送至目标主机;接收所述目标主机反馈的目标密钥交换消息msg
D
和目标引用结构体QUOTE
D
,在所述目标引用结构体QUOTE
D
有效时,根据所述源密钥交换消息msg
S
和所述目标密钥交换消息msg
D
生成源迁移主密钥。3.根据权利要求1所述的方法,其特征在于,SGX飞地控制结构体中设有迁移属性,且只有待迁移飞地有权更改所述迁移属性的属性值;在所述基于所述存储指令将所述源迁移主密钥存入至所述第一迁移密钥寄存器中之前,所述方法还包括:将所述迁移属性的属性值修改为允许存储;在所述迁移属性的属性值为允许存储时,基于所述存储指令将所述源迁移主密钥存入至所述第一迁移密钥寄存器中。4.根据权利要求1所述的方法,其特征在于,所述根据所述源迁移主密钥对待迁移飞地内存页进行加密处理,包括:根据所述源迁移主密钥生成源迁移密钥MK
S
和源初始向量IV
S
,且MK
S
=KDF(MMK
S
,C
MK
),IV
S
=KDF(MMK
S
,C
IV
);其中,MMK
S
为源迁移主密钥,C
MK
为迁移密钥常数,C
IV
为初始向量常数,KDF(
·
)表示密钥生成函数;根据所述源迁移密钥和所述源初始向量对待迁移飞地内存页进行加密处理。5.根据权利要求1所述的方法,其特征在于,在所述将迁移数据发送至所述目标主机之前,还包括:在本地的不可信内存中为所述待迁移飞地内存页和与所述待迁移飞地内存页相对应的页面加密元数据分别分配相应的第一地址和第二地址;将加密后的所述待迁移飞地内存页存入至所述第一地址,将所述页面加密元数据存入至所述第二地址,并根据加密后的所述待迁移飞地内存页和加密后的所述页面加密元数据生成迁移数据。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述第一扩展指令集还包括:飞地资源加载指令;所述方法还包括:根据与其他主机之间的通信消息生成目标迁移主密钥,并基于所述存储指令将所述目标迁移主密钥存入至所述第一迁移密钥寄存器中;获取到所述其他主机发送的迁移数据,基于所述飞地资源加载指令读取所述第二迁移密钥寄存器中的所述目标迁移主密钥;所述迁移数据包括加密后的所述其他主机的待迁移飞地内存页;根据所述目标迁移主密钥对所述其他主机发送的迁移数据进行解密处理,提取并存储所述其他主机的待迁移飞地内存页。7.一种热迁移的方法,其特征在于,包括:预先设置第二扩展指令集,并新增第二迁移密钥寄存器,所述第二扩展指令集包括存储指令和飞地资源加载指令;根据与源主机之间的通信消息生成目标迁移主密钥,并基于所述存储指令将所述目标迁移主密钥存入至所述第二迁移密钥寄存器中;获取到所述源主机发送的迁移数据,基于所述飞地资源加载指令读取所述第二迁移密钥寄存器中的所述目标迁移主密...

【专利技术属性】
技术研发人员:吴良顺
申请(专利权)人:卓尔智联武汉研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1