CN113342473A - 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 - Google Patents
数据处理方法、安全虚拟机的迁移方法及相关装置、架构 Download PDFInfo
- Publication number
- CN113342473A CN113342473A CN202110722202.7A CN202110722202A CN113342473A CN 113342473 A CN113342473 A CN 113342473A CN 202110722202 A CN202110722202 A CN 202110722202A CN 113342473 A CN113342473 A CN 113342473A
- Authority
- CN
- China
- Prior art keywords
- data
- virtual machine
- memory
- page
- physical address
- 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.)
- Granted
Links
- 238000013508 migration Methods 0.000 title claims abstract description 128
- 230000005012 migration Effects 0.000 title claims abstract description 128
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000003672 processing method Methods 0.000 title claims abstract description 38
- 238000012545 processing Methods 0.000 claims abstract description 38
- 230000005540 biological transmission Effects 0.000 claims description 112
- 230000008569 process Effects 0.000 claims description 26
- 238000012795 verification Methods 0.000 claims description 20
- 238000002955 isolation Methods 0.000 claims description 18
- 230000001360 synchronised effect Effects 0.000 claims description 14
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 10
- 238000007726 management method Methods 0.000 claims description 6
- 238000000547 structure data Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 28
- 238000005516 engineering process Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种数据处理方法、安全虚拟机的迁移方法及相关装置、架构,所述数据处理方法包括:配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常,以使主机操作系统基于发生写入异常的gpa更新脏页位图;在产生写入异常时,处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;获取脏页的gpa和预设存储空间的存储地址,所述预设存储空间允许所述VMM访问;其中,所述脏页的gpa基于更新后的脏页位图确定;查询所述脏页的gpa对应的主机物理地址;将对应所述主机物理地址的内存数据存储至所述预设存储空间,能够实现的安全虚拟机的迁移。
Description
技术领域
本发明实施例涉及虚拟机技术领域,具体涉及一种数据处理方法、安全虚拟机的迁移方法及相关装置、架构。
背景技术
随着信息技术的发展,特别是云计算技术的发展与普及,使得越来越多的客户把业务系统部署在云端。虚拟化技术作为一种应用于云端的计算机技术,可通过主机虚拟化出多台虚拟机(Virtual Machine,VM),以实现对主机的硬件资源的高效利用。
安全虚拟机是一种具有较高安全性的虚拟机,通过配置与普通内存相隔离的安全隔离内存,保障其内的数据安全。同时,安全虚拟机的嵌套页表由安全硬件维护,可以避免主机操作系统或虚拟机管理器等获取安全虚拟机的数据访问信息,进一步保障安全虚拟机的信息安全。
在一些特定的场景下,运行在云端的虚拟机具有迁移需求,例如,在云计算服务商对物理服务器进行维护时,需要将待维护的服务器上的虚拟机迁移至另外一服务器,或者,在客户提出迁移要求时,需要将虚拟机从当前平台迁移到另外的平台上。然而,针对具有隔离安全内存的安全虚拟机的迁移,仍是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种数据处理方法、安全虚拟机的迁移方法及相关装置、架构,能够实现安全虚拟机的迁移。
为实现上述目的,本发明实施例提供如下技术方案:
在本发明的一个实施例中,提供了一种数据处理方法,应用于安全处理器,包括:
配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常,以使主机操作系统基于发生写入异常的虚拟物理地址更新脏页位图;
在产生写入异常时,处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
获取脏页的虚拟物理地址和预设存储空间的存储地址,所述预设存储空间允许虚拟机管理器访问;其中,所述脏页的虚拟物理地址基于更新后的脏页位图确定;
查询所述脏页的虚拟物理地址对应的主机物理地址;
将对应所述主机物理地址的内存数据存储至所述预设存储空间。
可选的,所述配置安全虚拟机,包括:
配置安全虚拟机的嵌套页表的权限为只读,使所述安全虚拟机向内存页面写入数据时,产生缺页异常。
可选的,所述处理所述写入异常,以使所述安全虚拟机向内存页面写入数据,包括:
将所述虚拟物理地址对应的页表项的权限修改为可写,以使所述安全虚拟机向内存页面写入数据。
可选的,产生写入异常的虚拟物理地址对应的是内存页为大页,所述将所述虚拟物理地址对应的页表项的权限修改为可写,包括:
拆分所述大页为默认小页;
将所述虚拟物理地址对应的默认小页的页表项权限修改为可写;
其中,所述默认小页为内存管理单元使用的最小页面,所述大页是所述默认小页的整数倍。
可选的,所述查询所述脏页的虚拟物理地址对应的主机物理地址的步骤之后,还包括:标记所述主机物理地址对应的内存页面的属性,所述内存页面的属性指示所述内存页面为安全隔离内存或普通内存;
在所述将对应所述主机物理地址的内存数据存储至所述预设存储空间的步骤中,还包括:将所述属性信息作为虚拟物理地址信息,存储至所述预设存储空间。
可选的,所述安全虚拟机的内存数据为采用第一虚拟机密钥加密的加密数据,所述将对应所述主机物理地址的内存数据存储至所述预设存储空间,包括:
指示密码协处理器,采用第一虚拟机密钥对所述主机物理地址对应的内存数据进行解密;
指示密码协处理器,采用传输加密密钥对解密后的内存数据进行加密;
将采用传输加密密钥加密后的内存数据存储至所述预设存储空间。
可选的,所述指示密码协处理器,采用传输加密密钥对解密后的内存数据进行加密之后,所述将采用传输加密密钥加密后的内存数据存储至所述预设存储空间之前,还包括:
指示密码协处理器,采用传输完整性密钥计算加密后的内存数据的完整性校验数据;
所述将采用传输加密密钥加密后的内存数据存储至所述预设存储空间的步骤中,还包括,将加密后的内存数据的完整性校验数据存储至所述预设存储空间。
可选的,所述将对应所述主机物理地址的内存数据存储至所述预设存储空间之后,还包括:
在所述安全虚拟机的宕机阶段,将所述安全虚拟机的处理器状态数据存储至所述预设存储空间。
可选的,所述安全虚拟机的处理器状态数据包括物理内存页面数据、安全代码控制信息结构数据、安全虚拟机控制块数据和虚拟机控制块掩码数据中的至少一个状态数据。
可选的,所述将所述安全虚拟机的处理器状态数据存储至所述预设存储空间,包括:
从所述安全虚拟机的上下文获取相应的处理器状态数据;
指示密码协处理器,采用传输加密密钥对所述处理器状态数据进行加密;
将加密后的处理器状态数据存储至所述预设存储空间。
可选的,所述指示密码协处理器,采用传输加密密钥对所述处理器状态数据进行加密之后,所述将加密后的处理器状态数据存储至所述预设存储空间之前,还包括:
指示密码协处理器,采用传输完整性密钥计算加密后的处理器状态数据的完整性校验数据;
所述将加密后的处理器状态数据存储至所述预设存储空间的步骤中,还包括,将加密后的处理器状态数据的完整性校验数据存储至所述预设存储空间。
在本发明的一个实施例中,还提供了一种数据处理方法,应用于主机操作系统,包括
获取虚拟机管理器同步的脏页位图;
指示安全处理器配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常;
根据所述安全虚拟机产生写入异常的虚拟物理地址,更新所述脏页位图,并指示安全处理器处理所述写入异常,以使安全虚拟机向内存页面写入数据;
将更新后的脏页位图同步至虚拟机管理器。
可选的,所述指示安全处理器配置安全虚拟机,包括:
指示安全处理器配置安全虚拟机的嵌套页表的权限为只读,使所述安全虚拟机向内存页面写入数据时,产生缺页异常。
可选的,所述指示安全处理器处理所述写入异常,以使所述安全虚拟机向内存页面写入数据,包括:
指示安全处理器将所述虚拟物理地址对应的页表项的权限修改为可写,以使所述安全虚拟机向内存页面写入数据。
可选的,所述获取虚拟机管理器同步的脏页位图的步骤之后,所述指示安全处理器配置安全虚拟机的步骤之前,还包括:
刷新安全虚拟机的缓存。
可选的,所述虚拟机管理器同步的脏页位图具体为虚拟机管理器重置后的脏页位图。
在本发明的另一个实施例中,还提供了一种安全虚拟机的迁移方法,应用于虚拟机管理器,包括:
获取更新后的脏页位图;
基于所述更新后的脏页位图,确定安全虚拟机产生的脏页的虚拟物理地址;其中,所述安全虚拟机被配置为向内存页面写入数据时,产生所述写入异常,脏页位图基于发生写入异常的虚拟物理地址进行更新;
发送所述脏页虚拟物理地址和预设存储空间的存储地址至所述安全处理器;其中,所述预设存储空间允许所述虚拟机管理器访问;
在安全处理器将所述脏页的虚拟物理地址对应的内存数据存储至所述预设存储空间后,将所述内存数据发送至目标主机;
将所述脏页位图同步至本机的主机操作系统。
可选的,所述安全处理器为多个,所述发送所述脏页的虚拟物理地址和预设存储空间的存储地址至所述安全处理器,包括:
为不同的安全处理器分配不同的脏页的虚拟物理地址;
将脏页的虚拟物理地址和预设存储空间发送至为其分配的安全处理器。
可选的,所述将所述脏页位图同步至本机的主机操作系统,包括:
重置所述脏页位图;
将重置后的脏页位图同步至所述主机操作系统。
可选的,所述基于所述更新后的脏页位图,确定安全虚拟机产生的脏页的虚拟物理地址的步骤之后,所述发送所述脏页虚拟物理地址和预设存储空间的存储地址至所述安全处理器之前,还包括:
判断当前脏页数目是否小于阈值;
若是,停止所述安全虚拟机的运行;若否,继续运行所述安全虚拟机。
可选的,所述停止所述安全虚拟机的运行之后,还包括:
在所述安全虚拟机的宕机阶段,向安全处理器发送状态数据迁移请求,以使所述安全处理器将所述安全虚拟机的处理器状态数据存储至所述预设存储空间。
可选的,所述安全虚拟机的迁移启动时,所述更新后的脏页位图处于初始状态,用于指示所述安全虚拟机的所有内存页面均为脏页。
在本发明的又一个实施例中,还提供了一种安全虚拟机的迁移方法,应用于接收数据的目标主机,包括:
接收安全虚拟机的内存数据,并将所述内存数据存储至临时存储空间;
根据所述内存数据,获取对应所述内存数据的虚拟物理地址信息;
根据所述虚拟物理地址信息,为所述内存数据分配内存,并建立与所述虚拟物理地址信息对应的嵌套页表;
根据所述嵌套页表,将所述内存数据保存至对应的内存页面。
可选的,所述根据所述嵌套页表,将所述内存数据保存至对应的内存页面,包括:
指示密码协处理器,采用传输加密密钥对所述内存数据进行解密;
指示密码协处理器,采用第二虚拟机密钥对解密后的内存数据进行加密;
查询所述嵌套页表,将采用第二虚拟机密钥加密后的内存数据存储至对应的内存页面。
可选的,所述指示密码协处理器,采用传输加密密钥对内存数据进行解密之前,还包括:
指示密码协处理器,采用传输完整性密钥计算所述临时存储空间的内存数据的完整性校验数据;
根据所述完整性校验数据,验证所述内存数据的完整性。
可选的,所述虚拟物理地址信息中记录所述内存数据的虚拟物理地址在源主机对应的内存页面的属性,所述内存页面的属性指示所述内存页面为安全隔离内存或普通内存。
可选的,基于不同的虚拟物理地址信息,同步执行所述根据所述虚拟物理地址信息,为所述内存数据分配内存,并建立与所述虚拟物理地址信息对应的嵌套页表的步骤。
可选的,所述安全处理器根据所述嵌套页表,将所述内存数据保存至对应的内存页面之后,还包括:
接收加密后的所述安全虚拟机的处理器状态数据,所述加密后的处理器状态数据具有完整性校验数据;
基于传输完整性密钥执行所述加密后的处理器状态数据的完整性校验;
若校验成功,采用传输加密密钥解密所述加密后的处理器状态数据。
在本发明的一个实施例中,还提供了一种数据处理装置,包括:
异常配置模块,用于配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常;
异常处理模块,用于在产生写入异常时,处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
信息获取模块,用于获取脏页的虚拟物理地址和预设存储空间的存储地址,所述预设存储空间允许虚拟机管理器访问;其中,所述脏页的虚拟物理地址基于更新后的脏页位图确定;
页表查询模块,用于查询所述脏页的虚拟物理地址对应的主机物理地址;
数据存储模块,用于将对应所述主机物理地址的内存数据存储至所述预设存储空间。
在本发明的另一个实施例中,还提供了一种数据处理装置,包括:
第一位图获取模块,用于获取虚拟机管理器同步的脏页位图;
配置指示模块,用于指示安全处理器配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常;
位图更新模块,用于根据所述安全虚拟机产生写入异常的虚拟物理地址,更新所述脏页位图,并指示安全处理器处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
第一位图同步模块,用于将更新后的脏页位图同步至虚拟机管理器。
在本发明的又一个实施例中,还提供了一种迁移装置,包括:
第二位图获取模块,用于获取更新后的脏页位图;
地址确定模块,用于基于更新后的脏页位图,确定安全虚拟机产生的脏页的虚拟物理地址;其中,所述安全虚拟机被配置为向内存页面写入数据时,产生所述写入异常,所述脏页位图基于发生写入异常的虚拟物理地址进行更新;
信息发送模块,用于发送所述脏页虚拟物理地址和预设存储空间的存储地址至所述安全处理器;其中,所述预设存储空间允许所述虚拟机管理器访问;
数据发送模块,用于在安全处理器将所述脏页的虚拟物理地址对应的内存数据存储至所述预设存储空间后,将所述内存数据发送至目标主机;
第二位图同步模块,用于将所述脏页位图同步至主机操作系统。
在本发明的一个实施例中,还提供了一种安全处理器,所述安全处理器可执行,实现上述的数据处理方法的程序。
在本发明的另一个实施例中,还提供了一种主机操作系统,所述主机操作系统可执行,实现上述的数据处理方法的程序。
在本发明的又一个实施例中,还提供了一种虚拟机管理器,所述虚拟机管理器可执行,实现上述的安全虚拟机的迁移方法的程序。
在本发明的一个实施例中,还提供了一种计算机架构,包括:
上述的安全处理器、上述的主机操作系统,以及,上述的虚拟机管理器。
在本发明的另一个实施例中,还提供了一种计算机架构,所述计算机架构可执行,实现上述的安全虚拟机的迁移方法的程序。
在本发明的又一个实施例中,还提供了一种计算机架构,包括:
虚拟机管理器,用于接收安全虚拟机的内存数据,将所述内存数据存储至临时存储空间,并且,根据所述内存数据,获取对应所述内存数据的虚拟物理地址信息,并将所述虚拟物理地址信息发送至安全处理器;
安全处理器,用于根据所述虚拟物理地址信息,为所述内存数据分配内存,建立与所述虚拟物理地址信息对应的嵌套页表,并且,根据所述嵌套页表,将所述内存数据保存至对应的内存页面。
本发明实施例提供了一种数据处理方法、安全虚拟机的迁移方法及相关装置、架构,所述数据处理方法包括:配置所述安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常,以使主机操作系统基于发生写入异常的虚拟物理地址(下称gpa)更新脏页位图;在产生写入异常时,处理所述写入异常,以使安全虚拟机向内存页面写入数据;获取脏页的gpa和预设存储空间的存储地址,所述预设存储空间允许虚拟机管理器(下称VMM)访问;其中,所述脏页的gpa基于更新后的脏页位图确定;查询所述脏页的gpa对应的主机物理地址;将对应所述主机物理地址的内存数据存储至所述预设存储空间。
可以看出,本发明实施例通过配置安全虚拟机写入数据时产生的写入异常确定脏页的gpa,并由安全处理器基于脏页的gpa将脏页的内存数据存储至允许VMM访问的预设存储空间,从而使得VMM能够直接从预设存储空间执行脏页的内存数据的迁移,进而实现安全虚拟机的迁移。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为基于虚拟化技术的云服务可选架构图;
图2为本发明实施例提供的计算机架构示意图;
图3为本发明实施例提供的一种计算机架构的可选示意图;
图4为本发明实施例提供的一种普通虚拟机的迁移进程示意图;
图5为本发明实施例提供的安全虚拟机的迁移方法流程示意图;
图6为本发明实施例提供的一个脏页位图的可选示例图;
图7为本发明实施例提供的另一数据迁移方法的可选流程图;
图8为本发明实施例提供的一种形成加密迁移环境的可选流程图;
图9为本发明实施例提供的数据处理装置的可选框图;
图10为本发明实施例提供的数据处理装置的另一可选框图;
图11为本发明实施例提供的数据处理装置的又一可选框图;
图12为本发明实施例提供的数据处理装置的可选框图;
图13为本发明实施例提供的数据处理装置的另一可选框图;
图14为本发明实施例提供的迁移装置的可选框图;
图15为本发明实施例提供的迁移装置的另一可选框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
虚拟化技术可应用于多种场景,特别的,随着云服务的发展,虚拟化技术在云服务这一场景中得到了越来越广泛的应用;为便于理解虚拟化技术,下面以基于虚拟化技术的云服务为例,对虚拟化技术进行介绍。
参照图1所示基于虚拟化技术的云服务可选架构,该云服务架构可以包括:云主机101,网络201,用户301至30n;
其中,云主机101为云服务提供方(如云服务厂商)部署在网络侧的用于提供云服务的主机设备(主机设备的形式可以是服务器);基于不同用户的需求,云主机可通过虚拟化技术为不同用户创建一台或多台虚拟机,例如,用户可以根据业务需求,请求云主机为用户创建适应其业务需求的多台虚拟机,从而用户可以在属于其的多台虚拟机上分别运行应用,以通过多台虚拟机运行的应用来协作完成用户特定的业务;
网络201可以认为是互联网,或者其他形式的具有通信功能的网络,云主机与用户之间通过网络实现通信和数据传输,本发明实施例并不限制网络200的具体网络形式;
用户301至30n为使用云服务的注册用户,其数量可以为多个,本发明实施例并不限制n的具体数值;在云服务场景下,每一个用户可以在云主机中拥有属于其的一台或多台虚拟机,以利用属于用户的虚拟机来完成用户特定的业务。
作为一种可选示例,图2~图3示出了云主机的计算机架构的可选示意图,如图2所示,虚拟化环境的系统架构可以包括:CPU(Central Processing Unit,中央处理器)核心1,内存控制器2,内存3和安全处理器(PSP,Platform Secure Processor)4;
其中,CPU核心1可通过运行在其内的主机操作系统10配置虚拟机管理器11,并通过虚拟化技术虚拟化出多台虚拟机12,该多台虚拟机可由虚拟机管理器(VMM,VirtualMachine Monitor)11进行内存管理,在虚拟机12的迁移过程中,虚拟机管理器11还可以进行虚拟机的数据迁移。
内存控制器2是控制内存3,并且使内存3与CPU核心1之间交换数据的硬件;在典型的计算机系统中,内存控制器2负责处理内存访问请求,对于内存访问请求,内存控制器2可检测缓存是否记录内存访问请求对应的地址,若是,则从缓存读取该地址相应的数据,否则,遍历内存的页表查找该地址并读取该地址相应的数据。其中,在内存的页表中,记录有虚拟机虚拟地址到主机物理地址的映射关系。
安全处理器4是安全虚拟化技术专门设置的负责虚拟机数据安全的处理器,密码协处理器21是内存控制器中用于实现对内存空间进行加解密的器件;其中,安全处理器4可为不同虚拟机分配不同的虚拟机密钥,并将虚拟机的虚拟机密钥存储在内存控制器2的密码协处理器21中,密码协处理器21基于存储的虚拟机密钥,对虚拟机的虚拟机内存空间进行加解密,避免物理主机、虚拟机管理器11对虚拟机的数据访问和篡改,保障虚拟机的数据安全。
为进一步从硬件的角度保障虚拟机的数据安全,还可进一步配置通过硬件隔离出的安全隔离内存31。参考图3示出的系统架构示意图,内存3中包括普通内存30和安全隔离内存31,安全隔离内存仅允许为其分配的虚拟机访问,不允许物理主机、虚拟机管理器11访问。其中,分配有安全隔离内存的虚拟机可称为安全虚拟机,未分配安全隔离内存的虚拟机可称为普通虚拟机。在图3中,以虚拟机12a为安全虚拟机,以虚拟机12b为普通虚拟机为例示出。安全处理器可为虚拟机分配安全隔离内存,并维护安全虚拟机12a的嵌套页表,从而可以避免主机操作系统、虚拟机管理器等获取安全隔离内存的使用情况,降低虚拟机被攻击的风险。
普通虚拟机12b的内存数据的迁移,可以基于脏页的迁移实现。其中,脏页为内存数据中被修改的页面。参考图4所示的一种普通虚拟机迁移进程示意图,在具体的数据迁移过程中,可以在第一轮迁移时将普通虚拟机的所有内存标记为以图4所示的脏页a示出,由源主机(下称主机)的主机操作系统和虚拟机管理器将相应的内存数据发送给目标主机。其中,在迁移过程中,普通虚拟机仍处于运行状态,从而仍会产生脏页,在图4所示的示例中,第一轮迁移时,普通虚拟机运行产生脏页b,因此,可以循环执行多轮脏页的迁移,直到剩余的脏页数目小于设定的脏页阈值,并将剩余的脏页在普通虚拟机的宕机时间内发送至目标主机。在图4所示的示例中,第二轮迁移可以传输第一轮迁移过程中产生的脏页b,第三轮迁移传输第二轮迁移过程中产生的脏页c,在脏页c的脏页数目小于设定的脏页阈值时,可以在普通虚拟机的宕机时间内基于第三轮迁移将脏页c发送至目标主机。
然而,由于安全虚拟机中的安全隔离内存的嵌套页表由安全处理器维护,主机操作系统没有读取安全虚拟机的嵌套页表的权限,从而无法确定脏页内存的主机物理地址,并且,主机操作系统和虚拟机管理器没有访问安全隔离内存的权限,使得虚拟机管理器也无法获取脏页内存的数据,进而造成了安全虚拟机的迁移无法实现。
基于此,本发明实施例提供了一种数据处理方法、安全虚拟机的迁移方法及相关装置、架构,所述数据处理方法包括:配置所述安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常,以使主机操作系统基于发生写入异常的虚拟物理地址(guestphysical address,也称为客户机物理地址,下称gpa)更新脏页位图;在产生写入异常时,处理所述写入异常,以使安全虚拟机向内存页面写入数据;以及,获取虚拟机管理器(下称VMM)发送的脏页gpa和预设存储空间的存储地址,所述预设存储空间允许所述VMM访问;其中,所述脏页gpa基于更新后的脏页位图确定;查询所述脏页的gpa对应的主机物理地址;将对应所述主机物理地址的内存数据存储至所述预设存储空间。
可以看出,本发明实施例通过配置安全虚拟机写入数据时产生的写入异常确定脏页的gpa,并由安全处理器基于脏页的gpa将脏页的内存数据存储至允许VMM访问的预设存储空间,从而使得VMM能够直接从预设存储空间执行脏页的内存数据的迁移,进而实现安全虚拟机的迁移。
并且,可以看出,在本发明实施例中,主机操作系统和VMM层面均是基于安全虚拟机的gpa信息执行相应的步骤,从而避免了主机操作系统和VMM层面获取gpa对应的主机物理地址(host physical address,下称hpa),保障了脏页数据的迁移过程中安全虚拟机的数据安全。
为迁移安全虚拟机的脏页内存的数据,本发明实施例提供一种数据处理方法,所述方法用于将安全虚拟机中的脏页内存的数据存储在一VMM可访问的存储空间内,从而使得相应的脏页数据可以被VMM传输至目标主机。在一个可选的示例中,参照图2~3所示的系统架构可选示意图,本发明实施例提供了一种安全虚拟机的迁移方法,参考图5示出的安全虚拟机的迁移方法流程示意图,所述安全虚拟机的迁移方法基于源主机的角度进行说明,所述安全虚拟机的迁移方法包括:
步骤S10:安全处理器配置所述安全虚拟机,使所述安全虚拟机向内存页面写入脏页数据时,产生写入异常;
在所述安全虚拟机的迁移启动后,通过通过配置所述安全虚拟机产生写入异常,以记录安全虚拟机的迁移过程中产生的脏页。可以理解的是,在产生写入异常时,主机操作系统可获取相应的异常信息,从而可以确定写入数据的内存页面的gpa,进而可以基于该gpa确定安全虚拟机中的脏页。
其中,主机操作系统可以指示安全处理器配置所述安全虚拟机,使所述安全虚拟机向内存页面写入脏页数据时,产生写入异常,安全处理器在接收到所述指示信息(例如相应的指令)后,执行所述配置。
在一个可选的示例中,所述写入异常可以为基于缺页导致的缺页异常,例如,在嵌套页表中删除虚拟机物理地址与主机物理地址的映射关系,使得每次执行数据写入时,均会产生缺页异常。或者,所述写入异常还可以基于权限限制导致的缺页异常,例如,在嵌套页表中变更页表项的权限为只读,从而使得每次执行数据写入时,同样会产生缺页异常。在本示例中,以基于权限限制导致的缺页异常为例进行说明。
具体的,所述安全处理器可以一轮迁移进程开始启动时,基于主机操作系统的指示,配置所述安全虚拟机的嵌套页表的权限为只读,从而在安全虚拟机想要将数据写入内存页面时,会出现缺页异常,而操作系统可以则基于该缺页异常的异常信息,获取写入了数据的内存页面的gpa。
需要说明的是,在配置所述安全虚拟机的嵌套页表的权限为只读前,主机操作系统可以首先刷新所述安全虚拟机的缓存,将缓存中的数据写入内存,以将上一轮中的脏页数据完全写入内存,避免多轮数据迁移之间产生数据遗漏。
步骤S11:VMM同步安全虚拟机的脏页位图至主机操作系统;
脏页位图是存储有脏页标记的一数据序列,脏页标记用于标示对应的内存页面是否为脏页。脏页位图可以是二进制序列,例如,若为虚拟机分配了512KB内存,每个内存页的大小为4KB,则该内存页的数目为512/4=128,从而虚拟机对应一个包含128位的脏页位图,参考图6所示的一个脏页位图的可选示例图,每一位指示一个内存页,对应该位的数值为脏页标记,可选的,可设置数值1表明对应该位的内存页为脏页,数值0表明对应该位的内存页不为脏页,因此,在该示例中,若脏页位图的第一位为1,则代表第一个内存页为脏页;若脏页位图的第二位为0,则代表第二个内存页不为脏页。
需要说明的是,脏页位图是针对默认小页设置的,默认小页是MMU(MemoryManagement Unit,内存管理单元)使用的最小页面,与主机操作系统设置相关,默认小页是相对于大页而言的,大页的数据量可以是默认小页的数据量的倍数,大页通常是将整数个默认小页合并得到的。例如,若默认小页的数据量是4KB,则可以将512个默认小页合并为2MB的大页。
需要说明的是,在脏页的内存数据由源主机传输至目标主机的过程(下称脏页传输)中,安全虚拟机仍处于运行状态,因此,脏页传输可以通过多轮传输实现,参考图4所示的数据迁移流程,后一轮脏页传输用于传输在前一轮脏页传输的时间段内,安全虚拟机运行所产生的脏页,从而在安全虚拟机不停机的背景下,进行大部分的脏页传输,直至未传输的剩余脏页数目小于设定的脏页阈值时,通过短暂停机实现剩余脏页的传输。
VMM在一轮脏页传输的开启时刻,可以将重置后的脏页位图同步给主机操作系统,进而在后续用于基于主机操作系统对脏页位图的更新,记录在该轮脏页传输过程中产生的脏页,进而传输这些脏页。可以理解的是,在后续每轮的脏页传输开始时,VMM已确定上一轮的脏页已传输至目标主机,从而,VMM可以将脏页位图重置,例如,将脏页位图中的各位都置0,从而基于后续更新后的脏页位图确定对应在该轮脏页传输中哪些页面为脏页。在本步骤中,VMM同步至主机操作系统的脏页位图可以为重置后的脏页位图。
步骤S12:主机操作系统根据所述安全虚拟机产生写入异常的gpa,更新所述脏页位图,并指示安全处理器处理所述写入异常,以使安全虚拟机向内存页面写入数据;
基于产生的写入异常,主机操作系统可以获取所述安全虚拟机产生写入异常的gpa,从而可以进一步根据所述安全虚拟机产生写入异常的gpa,更新所述脏页位图,从而记录安全虚拟机的脏页对应的gpa。
可以理解的是,在产生写入异常时,需要进一步指示安全处理器处理所述写入异常,从而使安全虚拟机向内存页面写入数据。
具体的,在写入异常时,主机操作系统可以指示安全处理器将产生写入异常的gpa对应的页表项的权限修改为可写,以使所述安全虚拟机向内存页面写入数据。
步骤S13:安全处理器处理所述写入异常,以使安全虚拟机向内存页面写入数据;
具体的,在产生写入异常时,在获取主机操作系统的指示后,将产生写入异常的gpa对应的页表项的权限修改为可写。
在一个可选的示例中,若产生写入异常的gpa对应的是内存页为大页,则拆分所述大页为默认小页,并将写入异常的gpa对应的默认小页的页表项权限修改为可写;所述默认小页为内存管理单元使用的最小页面。所述大页是所述默认小页的整数倍。
示例的,在一轮脏页传输启动时,安全处理器可以配置安全虚拟机的嵌套页表的权限为只读,从而,在安全虚拟机该轮的脏页传输过程中,安全虚拟机运行需要在内存中写入数据时(即产生脏页时),嵌套页表的只读状态会使得系统产生嵌套缺页异常。相应的,主机操作系统可以基于异常信息,记录该缺页异常对应的gpa。同时,基于嵌套页表的维护由安全处理器执行,主机操作系统可以进一步配置为,在嵌套缺页异常产生时,将异常gpa发送给psp,从而由psp将对应该gpa的页表项修改为可写权限。也就是说,在安全虚拟机在内存页面写入内存数据产生脏页数据时,对应脏页的gpa可以由主机操作系统获取并记录。
同时,可以理解的是,在下一轮脏页传输启动时,本轮迁移产生的脏页对应的页表项已经修改为可写权限,从而,安全处理器在下一轮传输启动时,再次配置安全虚拟机的嵌套页表的权限为只读。
步骤S14:主机操作系统将更新的脏页位图同步至VMM;
在一轮脏页迁移结束时,主机操作系统记录了本轮脏页迁移的时间段内,安全虚拟机中写入了数据的内存页面(即脏页)的gpa,并基于该gpa更新了脏页位图,进而可以基于数据传输通道,将更新后的脏页位图同步至VMM。
需要说明的是,在第一轮脏页传输时,默认安全虚拟机的所有内存页面均为脏页,从而使VMM传输安全虚拟机的所有内存页面内的数据;而后续轮次的脏页传输,则针对安全虚拟机在迁移过程中产生的脏页进行传输。因此,在第一轮脏页传输时,即所述安全虚拟机的迁移启动时,可以设置所述更新后的脏页位图处于初始状态,该初始状态用于指示安全虚拟机的所有内存页面均为脏页。从而,主机操作系统可以将初始状态下的所述更新后的脏页位图同步至VMM。
相应的,VMM可以获取更新后的脏页位图。
步骤S15:VMM基于更新后的脏页位图,确定安全虚拟机产生的脏页的gpa;
通过获取的更新后的脏页位图,可以使VMM基于更新后的脏页位图,确定安全虚拟机产生的脏页的gpa。
步骤S16:VMM发送所述脏页的gpa和预设存储空间的存储地址至所述安全处理器;
通过发送所述脏页的gpa至所述安全处理器,可以使安全处理器基于所述脏页的gpa确定脏页的hpa;而发送预设存储空间的存储地址至所述安全处理器,则可以使脏页数据首先迁移至该预设存储空间,基于预设存储空间允许所述VMM访问,从而使得VMM可以将脏页数据从所述预设存储空间迁移至目标主机。其中,所述预设存储空间可以为内存中的一个或多个内存块。
相应的,在VMM发送所述脏页的gpa和预设存储空间的存储地址时,安全处理器可以获取VMM发送的脏页的gpa和预设存储空间的存储地址。
步骤S17:安全处理器查询所述脏页的gpa对应的主机物理地址;
基于安全虚拟机的嵌套页表由安全处理器维护,在安全处理器获取所述脏页的gpa后,可以基于嵌套页表,查询对应的主机物理地址。
需要说明的是,分配给安全虚拟机的内存,可以全部为安全隔离内存,也可以部分为安全隔离内存,部分为普通内存。在安全虚拟机的内存同时包括安全隔离内存和普通内存时,可以进一步通过安全处理器基于主机物理地址进行区分。在一个可选的示例中,安全处理器还可以进一步在查询所述脏页的gpa对应的主机物理地址之后,标记所述主机物理地址对应的内存页面的属性,所述内存页面的属性指示所述内存页面为安全隔离内存或普通内存,并将该属性信息作为gpa信息,与gpa对应主机物理地址的内存数据一并存储至预设存储空间,并在后续步骤中发送至目标主机。
通过区分安全隔离内存和普通内存,可以在脏页数据传输至目标主机后,由目标主机基于不同的属性,将相应的数据对应存储至目标主机的不同属性的内存页面中。
步骤S18:安全处理器将对应所述主机物理地址的内存数据存储至所述预设存储空间;
在安全虚拟机中的内存数据为加密数据时,安全处理器可以指示密码协处理器,对所述主机物理地址的内存数据进行解密。其中,在密码协处理器中,可以保存用于对安全虚拟机的内存数据进行加解密的第一虚拟机密钥,从而,可以指示密码协处理器,采用第一虚拟机密钥对所述主机物理地址对应的内存数据进行解密。
同时,为保证数据在传输过程的安全,还可以在迁移准备阶段生成传输加密密钥和传输完整性密钥,并使传输的数据基于传输加密密钥和传输完整性密钥进行加解密和完整性验证,从而为源主机(即本示例的主机)和目标主机之间建立一条可信的加密传输通道,在主机与目标主机之间形成加密迁移环境。其中,所述加密传输通道的数据传输,基于源主机中的传输加密密钥进行数据的加密,目标主机中的传输加密密钥进行数据的解密实现。具体的,所述源主机中的安全处理器可以指示密码协处理器采用传输加密密钥对内存数据进行加密,所述目标主机中的安全处理器可以指示密码协处理器采用传输加密密钥对内存数据进行解密。
需要说明的是,所述源主机的传输加密密钥和目标主机的传输加密密钥可以为相对应的密钥对,从而可以实现数据的加解密。
在一个可选的示例中,所述加密传输通道的数据传输,还进行传输数据的完整性校验。其中,源主机和目标主机中还预先存储用于数据传输的传输完整性密钥以进行数据的完整性校验。具体的,所述源主机中的安全处理器可以指示密码协处理器采用传输完整性密钥计算加密后的内存数据的完整性校验数据,所述目标主机中的安全处理器可以指示密码协处理器执行相应的计算,以验证内存数据的完整性校验数据。
其中,加密后的内存数据的完整性校验数据与所述加密后的内存数据同时被存储至预设存储空间。
需要说明的是,所述内存数据对应的gpa信息同时存储至预设存储空间。
在本示例的主机(即源主机)的安全处理器进行数据加密和存储至预设存储空间的过程中,为加快安全处理器的处理速度,可以采用多个安全处理器并行处理相应的数据。
在一个可选的示例中,SOC内可以集成有多个安全处理器,如4个或8个等,在执行步骤S16时,可以基于不同的安全处理器分配不同的gpa,进而不同的安全处理器基于各自分配的gpa,执行嵌套页表的查询、内存数据的加密、内存数据的完整性校验数据的计算和内存数据在预设存储空间的存储等。具体的,虚拟机管理器为不同的安全处理器分配不同的脏页的虚拟物理地址;并进一步将脏页的虚拟物理地址和预设存储空间发送至为其分配的安全处理器。
步骤S19:VMM将所述内存数据发送至目标主机。
在安全处理器将内存数据存储至预设存储空间后,VMM具有访问该预设存储空间的权限,从而可以从所述预设存储空间中读取相应的内存数据。
其中,在所述内存数据被加密时,VMM则可以读取预设存储空间中的加密的内存数据。在所述内存数据同时带有完整性校验数据时,则可以同时读取所述完整性校验数据,并将所述加密的内存数据和所述内存数据的完整性校验数据发送至目标主机。
VMM完成所述内存数据的传输后,表明本轮的脏页内存数据已经传输完毕,可以执行后续流程(例如下一轮脏页传输)。相应的,若需要执行下一轮脏页传输,可以重新执行步骤S11,将脏页位图同步至本机的主机操作系统,以记录下一轮脏页传输时,安全虚拟机产生的脏页。可选的,可以由VMM重置所述脏页位图,并将重置后的脏页位图同步至所述主机操作系统。
需要说明的是,在本发明实施例中,主机操作系统和VMM层面均是基于安全虚拟机的gpa信息执行相应的步骤,从而避免了主机操作系统和VMM层面获取gpa对应的hpa,保障了脏页迁移过程中安全虚拟机的数据安全。
在一个可选的示例中,还进一步公开了另一计算机架构和数据迁移方法,其中,所述计算机架构可以参考图2所示的计算机架构示意图,所述数据迁移方法则基于目标主机的角度,用于在源主机的VMM将所述内存数据发送至目标主机后接收并存储相应的内存数据,参考图7所示的另一数据迁移方法的可选流程图,所述方法包括:
步骤S30:VMM接收安全虚拟机的内存数据,并将所述内存数据存储至临时存储空间;
其中,所述目标主机在接收源主机VMM发送的内存数据后,可以将源主机VMM发送的内存数据保存在所述目标主机VMM可访问的临时存储空间内。其中,该临时存储空间可以为内存中的一个或多个内存块。
步骤S31:VMM根据所述内存数据,获取对应所述内存数据的gpa信息,并将内存数据的gpa信息所述发送至安全处理器;
其中,所述gpa信息中记录所述内存数据的gpa在源主机对应的内存页面的属性,所述内存页面的属性指示所述内存页面为安全隔离内存或普通内存,从而可以确定gpa对应的内存数据存储在安全隔离内存还是普通内存,进而基于该gpa信息执行在目标主机的内存分配。
步骤S32:安全处理器根据所述gpa信息,为所述内存数据分配内存,并建立与所述gpa信息对应的嵌套页表;
在获取相应的gpa信息后,安全处理器可以基于该gpa信息为安全虚拟机分配内存(包括安全隔离内存和普通内存),并基于gpa信息和分配的内存建立嵌套页表,从而为内存数据的gpa和目标主机的hpa建立映射关系。
需要说明的是,在普通虚拟机的迁移过程中,基于普通虚拟机的嵌套页表并不需要安全处理器来维护,从而,普通虚拟机并不需要执行本步骤。
步骤S33:安全处理器根据所述嵌套页表,将内存数据保存至对应的内存页面;
其中,安全处理器具有最高的访问权限,从而可以将所述内存数据从临时存储空间转移至对应的内存页面。
在源主机采用传输加密密钥对所述内存数据进行加密的示例中,目标主机的安全处理器可以进一步基于与源主机协商得到的传输加密密钥对所述内存数据进行解密。
并且,为进一步提高安全虚拟机的安全性,安全处理器还可以进一步采用对应安全虚拟机的第二虚拟机密钥对解密后的内存数据进行加密。
安全处理器获取VMM存储在临时存储空间的内存数据后,可以基于预设的传输完整性密钥进行计算,验证内存数据的完整性。在校验成功时,进一步执行内存数据的解密,在校验失败时,则说明数据被篡改,执行异常退出,使目标主机退出本次迁移。
安全处理器可以基于预设的传输加密密钥进行内存数据的解密,进而查询所述嵌套页表,将采用第二虚拟机密钥加密后的内存数据存储至对应的内存页面。具体的,查询所述嵌套页表,获取gpa对应的hpa,并将加密后的内存数据存储至对应hpa的内存页面。
在一个可选的示例中,目标主机的SOC内可以集成有多个安全处理器,如4个或8个等,在执行步骤S33时,可以由VMM基于不同的安全处理器分配不同gpa信息,进而不同的安全处理器执行相应gpa的校验、解密和数据存储,从而基于不同的虚拟物理地址信息,同步执行所述根据所述虚拟物理地址信息,为所述内存数据分配内存,并建立与所述虚拟物理地址信息对应的嵌套页表的步骤。在一个示例中,VMM可以平均分配所述gpa至多个安全处理器。
在一个可选的示例中,在目标主机完成一轮内存数据的迁移后,源主机的主机操作系统将更新后的脏页位图同步至VMM后,还进一步基于所述更新后的脏页位图,判断当前脏页数目是否小于阈值。若是,则停止安全虚拟机的运行,执行步骤S15~步骤S19将内存数据发送至目标主机,并进一步执行步骤S30~步骤S33,将剩余的内存数据存储至目标主机对应的内存页面。若否,则继续运行所述安全虚拟机,并执行新一轮的数据迁移。
其中,所述阈值可以为主机操作系统默认设置的数值,也可以为安全虚拟机的用户设置的数值,对应于安全虚拟机需要宕机的时间,本领域技术人员可以基于本发明公开的方案进行适当的设置。
在一个可选的示例中,在所述安全虚拟机的脏页内存迁移结束后,还进一步进行安全虚拟机的处理器状态数据的迁移。其中,所述处理器状态数据包括CPU寄存器(即物理内存页面,VMSA,Virtual Machine Save Area)数据,MSR(模型相关寄存器,Model-Specific Register)数据、AVIC(高级虚拟中断控制器)数据、SCCS(安全代码控制信息结构)数据、安全VMCB(虚拟机控制块,Virtual Machine Control Block)数据和VMCB MASK(VMCB掩码)数据等。所述处理器状态数据的迁移在所述安全虚拟机的宕机阶段执行。
其中,源主机VMM可以迁移CPU的MSR寄存器数据和AVIC数据至目标主机的VMM,而基于VMSA数据、SCCS数据、安全VMCB数据和VMCB MASK数据的迁移,则可以基于安全处理器实现,以提高数据迁移的安全性。
具体的,源主机VMM可以向PSP发送状态数据迁移请求,所述状态数据迁移请求用于请求PSP执行包括VMSA数据、SCCS数据、安全VMCB数据和VMCB MASK数据中的至少一个状态数据的迁移,基于所述状态数据迁移请求,安全处理器可以将所述处理器状态数据存储至所述预设存储空间,并由VMM将预设存储空间的处理器状态数据发送至目标主机。
可选的,所述安全处理器还可以执行处理器状态数据的加密。为提高数据迁移速度,源主机VMM可以在SOC包括多个安全处理器时,所述多个安全处理器还可以并行执行所述状态数据的加密。
源主机的PSP在获取所述状态数据迁移请求后,可以执行安全虚拟机的处理器状态数据的加密。具体的,PSP可以从安全虚拟机的上下文获取相应的处理器状态数据,并指示CCP(密码协处理器)采用传输加密密钥对所述处理器状态数据进行加密,进而将加密后的。可选的,PSP还可以进一步指示CCP生成对应所述处理器状态数据的完整性校验数据,以实现对处理器状态数据的完整性校验。
源主机的VMM在所述处理器状态数据加密后,可以将加密后的处理器状态数据发送至目标主机,并由目标主机的安全处理器执行后的处理器状态数据的解密。在具有对应所述处理器状态数据的完整性校验数据时,源主机的VMM还进一步将所述完整性校验数据发送至目标主机。对应的,目标主机在接收到所述加密后的处理器状态数据后,在具有对应所述处理器状态数据的完整性校验数据时,首先基于传输完整性密钥执行处理器状态数据的完整性校验,在校验失败时,退出所述迁移,并在源主机启动所述安全虚拟机,在校验成功后,则基于传输加密密钥执行解密所述处理器状态数据。具体的,所述PSP计算所述处理器状态数据的完整性校验数据,并与接收的完整性校验数据进行比对,在比对一致时,则校验成功,在比对不一致时,则校验失败。校验成功后,PSP可以指示CCP利用预设的密钥执行处理器状态数据的解密。
可选的,所述目标主机VMM还可以在SOC包括多个安全处理器时,所述多个安全处理器还可以并行执行所述状态数据的解密,提高数据迁移速度。
在一个可选示例中,在进行数据迁移之前,首先可以为数据迁移提供加密的迁移环境。具体的,在迁移准备阶段,为源主机和目标主机之间建立一条可信的加密传输通道,防止数据在传输过程中被读取或篡改,保证源主机和目标主机之间的数据传输完整可靠。
参照图2~3所示的系统架构可选示意图,基于图8所示的形成加密迁移环境的可选流程图,所述流程包括:
步骤S40:源主机的主机操作系统获取目标主机的安全验证信息;
其中,所述安全验证信息可以为目标主机的证书链信息,例如,包括平台资格证书、平台密钥交换证书和芯片证书等。可选的,所述安全验证信息可以由用户输入,也可以基于其他的可信硬件导入。
步骤S41:源主机的安全处理器校验所述安全验证信息;
在主机操作系统获取所述安全验证信息后,可以发送至安全处理器,由安全处理器利用自身保存的密钥信息对所述安全验证信息进行验签校验。若校验失败,则说明目标主机非法,存在安全隐患,执行步骤S47,若校验成功,执行步骤S42;
步骤S42:源主机的安全处理器生成传输会话数据并加密所述传输会话数据;
所述传输会话数据至少包括传输加密密钥和完整性校验密钥,从而实现传输数据的加密和完整性校验。
在一个可选的示例中,所述传输会话数据还可以进一步包括初始向量等密钥信息,从而提高数据传输的安全性。
进一步的,安全处理器还可以进一步加密所述传输会话数据,例如,利用平台密钥交换证书中的公钥对传输会话数据进行加密,并生成用于校验传输会话数据完整性的完整性校验数据。
步骤S43:源主机的主机操作系统发送加密后的传输会话数据至目标主机;
可选的,在目标主机内具有安全处理器时,主机操作系统可以基于密钥交换协议,发送所述传输会话数据至目标主机,目标主机则进一步将所述传输会话数据转发至其内的安全处理器。
其中,在所述传输会话数据被加密时,主机操作系统可以将加密后的传输会话数据发送至目标主机;在所述传输会话数据同时带有用于校验传输会话数据完整性的完整性校验数据,主机操作系统同时将用于校验传输会话数据完整性的完整性校验数据发送至目标主机。
步骤S44:目标主机的安全处理器验证并解密所述传输会话数据;
目标主机的安全处理器可以解密所述传输会话数据,从而获取传输会话数据中的密钥信息。其中,在传输会话数据同时带有用于校验传输会话数据完整性的完整性校验数据时,可以在解密所述传输会话数据前,对所述传输会话数据进行完整性校验,在校验失败时,认为传输会话数据被破坏,存在安全隐患,执行步骤S47;在校验成功时,解密所述会话传输数据。
步骤S45:源主机的主机操作系统发送所述安全虚拟机的存储空间配置信息至所述目标主机;
所述存储空间配置信息为配置给安全虚拟机的存储空间的硬件信息,包括内存的启示地址、长度,内存的属性(安全隔离内存、普通内存)等。其中,所述存储空间配置信息可以包括设置于SOC外的内存的硬件信息,也可以包括设置与SOC上的存储设备的硬件信息。
步骤S46:目标主机基于所述存储空间配置信息,为所述安全虚拟机分配存储空间;
目标主机在接收到所述存储空间配置信息后,可以为所述安全虚拟机进行存储空间的分配,从而在接收到传输数据后,基于传输数据的信息将传输数据存储至相应的存储空间。
需要说明的是,在进行传输数据的存储过程中,传输数据在目标主机的存储位置与安全虚拟机在源主机的中的存储位置具有对应关系,以使安全虚拟机在迁移后仍基于相同的数据环境运行。
步骤S47:源主机的主机操作系统退出本次迁移;
在主机操作系统认为存在安全隐患时,可以执行退出本次迁移,以保障安全虚拟机的数据安全。
可以理解的是,基于所述传输会话数据中的密钥信息,可以实现数据传输的加解密,从而,为主机与目标主机的数据传输建立一条可信的加密传输通道,在主机与目标主机间形成加密迁移环境。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
下面从安全处理器的角度,对本申请实施例提供的数据处理装置进行介绍,下文描述的数据处理装置可以认为是,安全处理器为实现本申请实施例提供的数据处理方法,所需设置的功能模块;下文描述的数据处理装置的内容,可与上文描述的方法内容相互对应参照。
在可选实现中,图9示出了本申请实施例提供的数据处理装置的可选框图,该数据处理装置可应用于安全处理器,如图9所示,该数据处理装置可以包括:
异常配置模块100,用于配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常;
异常处理模块110,用于在产生写入异常时,处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
信息获取模块120,用于获取脏页的虚拟物理地址和预设存储空间的存储地址,所述预设存储空间允许所述虚拟机管理器访问;其中,所述脏页的虚拟物理地址基于更新后的脏页位图确定;
页表查询模块130,用于查询所述脏页的虚拟物理地址对应的主机物理地址;
数据存储模块140,用于将对应所述主机物理地址的内存数据存储至所述预设存储空间。
可选的,所述异常配置模块100用于配置安全虚拟机,包括:配置所述安全虚拟机的嵌套页表的权限为只读,使所述安全虚拟机向内存页面写入数据时,产生缺页异常。
可选的,所述异常处理模块110用于处理所述写入异常,以使所述安全虚拟机向内存页面写入数据,包括:将所述虚拟物理地址对应的页表项的权限修改为可写,以使所述安全虚拟机向内存页面写入数据。
可选的,产生写入异常的虚拟物理地址对应的是内存页为大页,所述异常处理模块110用于将所述虚拟物理地址对应的页表项的权限修改为可写,包括:拆分所述大页为默认小页;将所述虚拟物理地址对应的默认小页的页表项权限修改为可写;其中,所述默认小页为内存管理单元使用的最小页面,所述大页是所述默认小页的整数倍。
可选的,参考图10示出的本申请实施例提供的数据处理装置的另一可选框图,所述数据处理装置还包括:
属性标记模块150,用于标记所述主机物理地址对应的内存页面的属性,所述内存页面的属性指示所述内存页面为安全隔离内存或普通内存;
所述数据存储模块140,还用于将所述属性信息作为虚拟物理地址信息,存储至所述预设存储空间。
可选的,所述安全虚拟机的内存数据为采用第一虚拟机密钥加密的加密数据,所述数据存储模块140,用于将对应所述主机物理地址的内存数据存储至所述预设存储空间,包括:
指示密码协处理器,采用第一虚拟机密钥对所述主机物理地址对应的内存数据进行解密;
指示密码协处理器,采用传输加密密钥对解密后的内存数据进行加密;
将采用传输加密密钥加密后的内存数据存储至所述预设存储空间。
可选的,所述数据存储模块140,还用于:
指示密码协处理器,采用传输完整性密钥计算加密后的内存数据的完整性校验数据;
将加密后的内存数据的完整性校验数据存储至所述预设存储空间。
可选的,参考图11示出的本申请实施例提供的数据处理装置的又一可选框图,所述数据处理装置还包括:
状态数据存储模块160,用于在所述安全虚拟机的宕机阶段,将所述安全虚拟机的处理器状态数据存储至所述预设存储空间。
可选的,所述安全虚拟机的处理器状态数据包括物理内存页面数据、安全代码控制信息结构数据、安全虚拟机控制块数据和虚拟机控制块掩码数据中的至少一个状态数据。
可选的,所述状态数据存储模块160,用于将所述安全虚拟机的处理器状态数据存储至所述预设存储空间,包括:
从所述安全虚拟机的上下文获取相应的处理器状态数据;
指示密码协处理器,采用传输加密密钥对所述处理器状态数据进行加密;
将加密后的处理器状态数据存储至所述预设存储空间。
可选的,所述状态数据存储模块160,还用于:
指示密码协处理器,采用传输完整性密钥计算加密后的处理器状态数据的完整性校验数据;
将加密后的处理器状态数据的完整性校验数据存储至所述预设存储空间。
下面从主机操作系统的角度,对本申请实施例提供的数据处理装置进行介绍,下文描述的数据处理装置可以认为是,主机操作系统为实现本申请实施例提供的数据处理方法,所需设置的功能模块;下文描述的数据处理装置的内容,可与上文描述的方法内容相互对应参照。
在可选实现中,图12示出了本申请实施例提供的数据处理装置的可选框图,该数据处理装置可应用于主机操作系统,如图12所示,该数据处理装置可以包括:
第一位图获取模块200,用于获取虚拟机管理器同步的脏页位图;
配置指示模块210,用于指示安全处理器配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常;
位图更新模块220,用于根据所述安全虚拟机产生写入异常的虚拟物理地址,更新所述脏页位图,并指示安全处理器处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
第一位图同步模块230,用于将更新后的脏页位图同步至虚拟机管理器。
可选的,所述配置指示模块210,用于指示安全处理器配置安全虚拟机,包括:指示安全处理器配置所述安全虚拟机的嵌套页表的权限为只读,使所述安全虚拟机向内存页面写入数据时,产生缺页异常。
可选的,所述位图更新模块220,用于指示安全处理器处理所述写入异常,以使所述安全虚拟机向内存页面写入数据,包括:指示安全处理器将所述虚拟物理地址对应的页表项的权限修改为可写,以使所述安全虚拟机向内存页面写入数据。
可选的,参考图13示出的本申请实施例提供的数据处理装置的另一可选框图,所述数据处理装置还包括:
缓存刷新模块240,用于刷新安全虚拟机的缓存。
可选的,所述虚拟机管理器同步的脏页位图具体为虚拟机管理器重置后的脏页位图。
下面从虚拟机管理器的角度,对本申请实施例提供的迁移装置进行介绍,下文描述的迁移装置可以认为是,虚拟机管理器为实现本申请实施例提供的迁移方法,所需设置的功能模块;下文描述的迁移装置的内容,可与上文描述的方法内容相互对应参照。
在可选实现中,图14示出了本申请实施例提供的迁移装置的可选框图,该迁移装置可应用于虚拟机管理器,如图14所示,该迁移装置可以包括:
第二位图获取模块300,用于获取更新后的脏页位图;
地址确定模块310,用于基于更新后的脏页位图,确定安全虚拟机产生的脏页的虚拟物理地址;其中,所述安全虚拟机被配置为向内存页面写入数据时,产生所述写入异常,所述脏页位图基于发生写入异常的虚拟物理地址进行更新;
信息发送模块320,用于发送所述脏页虚拟物理地址和预设存储空间的存储地址至所述安全处理器;其中,所述预设存储空间允许所述虚拟机管理器访问;
数据发送模块330,用于在安全处理器将所述脏页的虚拟物理地址对应的内存数据存储至所述预设存储空间后,将所述内存数据发送至目标主机;
第二位图同步模块340,用于将所述脏页位图同步至本机的主机操作系统。
可选的,所述安全处理器为多个,所述信息发送模块320,用于发送所述脏页的虚拟物理地址和预设存储空间的存储地址至所述安全处理器,包括:
为不同的安全处理器分配不同的脏页的虚拟物理地址;
将脏页的虚拟物理地址和预设存储空间发送至为其分配的安全处理器。
可选的,所述第二位图同步模块340,用于将所述脏页位图同步至本机的主机操作系统,包括:
重置所述脏页位图;
将重置后的脏页位图同步至所述主机操作系统。
可选的,图15示出了本申请实施例提供的迁移装置的另一可选框图,该迁移装置可应用于虚拟机管理器,如图15所示,该迁移装置还包括:
脏页数目判断模块350,用于判断当前脏页数目是否小于阈值;若是,停止所述安全虚拟机的运行;若否,继续运行所述安全虚拟机。
可选的,该迁移装置还包括:
状态迁移请求模块360,用于在所述安全虚拟机的宕机阶段,向安全处理器发送状态数据迁移请求,以使所述安全处理器将所述安全虚拟机的处理器状态数据存储至所述预设存储空间。
可选的,所述安全虚拟机的迁移启动时,所述更新后的脏页位图处于初始状态,用于指示安全虚拟机的所有内存页面均为脏页。
本申请实施例还提供一种安全处理器,该安全处理器可执行本申请实施例提供的数据处理方法的程序,具体内容可参照上文相应部分的描述,此处不再进一步展开介绍。
本申请实施例还提供一种主机操作系统,该主机操作系统可执行本申请实施例提供的数据处理方法的程序,具体内容可参照上文相应部分的描述,此处不再进一步展开介绍。
本申请实施例还提供一种虚拟机管理器,该虚拟机管理器可执行本申请实施例提供的安全虚拟机的迁移方法的程序,具体内容可参照上文相应部分的描述,此处不再进一步展开介绍。
本申请实施例还提供一种计算机架构,该计算机架构例如云主机,该计算机架构可以包括上述源主机中的安全处理器、主机操作系统和虚拟机管理器,该虚拟机管理器的可选结构可如图2~3所示,此处不再进一步展开介绍。
本申请实施例还提供一种计算机架构,该计算机架构例如云主机,该计算机架构可以包括上述目标主机中的安全处理器、主机操作系统和虚拟机管理器,该虚拟机管理器的可选结构可如图2~3所示,该计算机架构可执行本申请实施例提供的目标主机的安全虚拟机的迁移方法的程序,具体内容可参照上文相应部分的描述,此处不再进一步展开介绍。
本发明实施例提供的数据处理方法、安全虚拟机的迁移方法及相关装置、架构,所述数据处理方法包括:配置所述安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常,以使主机操作系统基于发生写入异常的虚拟物理地址(下称gpa)更新脏页位图;在产生写入异常时,处理所述写入异常,以使安全虚拟机向内存页面写入数据;获取脏页的gpa和预设存储空间的存储地址,所述预设存储空间允许虚拟机管理器(下称VMM)访问;其中,所述脏页的gpa基于更新后的脏页位图确定;查询所述脏页的gpa对应的主机物理地址;将对应所述主机物理地址的内存数据存储至所述预设存储空间。
可以看出,本发明实施例通过配置安全虚拟机写入数据时产生的写入异常确定脏页的gpa,并由安全处理器基于脏页的gpa将脏页的内存数据存储至允许VMM访问的预设存储空间,从而使得VMM能够直接从预设存储空间执行脏页的内存数据的迁移,进而实现安全虚拟机的迁移。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可做各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (34)
1.一种数据处理方法,其特征在于,应用于安全处理器,包括:
配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常,以使主机操作系统基于发生写入异常的虚拟物理地址更新脏页位图;
在产生写入异常时,处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
获取脏页的虚拟物理地址和预设存储空间的存储地址,所述预设存储空间允许虚拟机管理器访问;其中,所述脏页的虚拟物理地址基于更新后的脏页位图确定;
查询所述脏页的虚拟物理地址对应的主机物理地址;
将对应所述主机物理地址的内存数据存储至所述预设存储空间。
2.根据权利要求1所述的数据处理方法,其特征在于,所述配置安全虚拟机,包括:
配置安全虚拟机的嵌套页表的权限为只读,使所述安全虚拟机向内存页面写入数据时,产生缺页异常。
3.根据权利要求2所述的数据处理方法,其特征在于,所述处理所述写入异常,以使所述安全虚拟机向内存页面写入数据,包括:
将所述虚拟物理地址对应的页表项的权限修改为可写,以使所述安全虚拟机向内存页面写入数据。
4.根据权利要求3所述的数据处理方法,其特征在于,产生写入异常的虚拟物理地址对应的是内存页为大页,所述将所述虚拟物理地址对应的页表项的权限修改为可写,包括:
拆分所述大页为默认小页;
将所述虚拟物理地址对应的默认小页的页表项权限修改为可写;
其中,所述默认小页为内存管理单元使用的最小页面,所述大页是所述默认小页的整数倍。
5.根据权利要求1所述的数据处理方法,其特征在于,所述查询所述脏页的虚拟物理地址对应的主机物理地址的步骤之后,还包括:标记所述主机物理地址对应的内存页面的属性,所述内存页面的属性指示所述内存页面为安全隔离内存或普通内存;
在所述将对应所述主机物理地址的内存数据存储至所述预设存储空间的步骤中,还包括:将所述属性信息作为虚拟物理地址信息,存储至所述预设存储空间。
6.根据权利要求1所述的数据处理方法,其特征在于,所述安全虚拟机的内存数据为采用第一虚拟机密钥加密的加密数据,所述将对应所述主机物理地址的内存数据存储至所述预设存储空间,包括:
指示密码协处理器,采用第一虚拟机密钥对所述主机物理地址对应的内存数据进行解密;
指示密码协处理器,采用传输加密密钥对解密后的内存数据进行加密;
将采用传输加密密钥加密后的内存数据存储至所述预设存储空间。
7.根据权利要求6所述的数据处理方法,其特征在于,所述指示密码协处理器,采用传输加密密钥对解密后的内存数据进行加密之后,所述将采用传输加密密钥加密后的内存数据存储至所述预设存储空间之前,还包括:
指示密码协处理器,采用传输完整性密钥计算加密后的内存数据的完整性校验数据;
所述将采用传输加密密钥加密后的内存数据存储至所述预设存储空间的步骤中,还包括,将加密后的内存数据的完整性校验数据存储至所述预设存储空间。
8.根据权利要求1所述的数据处理方法,其特征在于,所述将对应所述主机物理地址的内存数据存储至所述预设存储空间之后,还包括:
在所述安全虚拟机的宕机阶段,将所述安全虚拟机的处理器状态数据存储至所述预设存储空间。
9.根据权利要求8所述的数据处理方法,其特征在于,所述安全虚拟机的处理器状态数据包括物理内存页面数据、安全代码控制信息结构数据、安全虚拟机控制块数据和虚拟机控制块掩码数据中的至少一个状态数据。
10.根据权利要求8所述的数据处理方法,其特征在于,所述将所述安全虚拟机的处理器状态数据存储至所述预设存储空间,包括:
从所述安全虚拟机的上下文获取相应的处理器状态数据;
指示密码协处理器,采用传输加密密钥对所述处理器状态数据进行加密;
将加密后的处理器状态数据存储至所述预设存储空间。
11.根据权利要求10所述的数据处理方法,其特征在于,所述指示密码协处理器,采用传输加密密钥对所述处理器状态数据进行加密之后,所述将加密后的处理器状态数据存储至所述预设存储空间之前,还包括:
指示密码协处理器,采用传输完整性密钥计算加密后的处理器状态数据的完整性校验数据;
所述将加密后的处理器状态数据存储至所述预设存储空间的步骤中,还包括,将加密后的处理器状态数据的完整性校验数据存储至所述预设存储空间。
12.一种数据处理方法,其特征在于,应用于主机操作系统,包括
获取虚拟机管理器同步的脏页位图;
指示安全处理器配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常;
根据所述安全虚拟机产生写入异常的虚拟物理地址,更新所述脏页位图,并指示安全处理器处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
将更新后的脏页位图同步至虚拟机管理器。
13.根据权利要求12所述的数据处理方法,其特征在于,所述指示安全处理器配置安全虚拟机,包括:
指示安全处理器配置安全虚拟机的嵌套页表的权限为只读,使所述安全虚拟机向内存页面写入数据时,产生缺页异常。
14.根据权利要求13所述的数据处理方法,其特征在于,所述指示安全处理器处理所述写入异常,以使所述安全虚拟机向内存页面写入数据,包括:
指示安全处理器将所述虚拟物理地址对应的页表项的权限修改为可写,以使所述安全虚拟机向内存页面写入数据。
15.根据权利要求12所述的数据处理方法,其特征在于,所述获取虚拟机管理器同步的脏页位图的步骤之后,所述指示安全处理器配置安全虚拟机的步骤之前,还包括:
刷新安全虚拟机的缓存。
16.根据权利要求12所述的数据处理方法,其特征在于,所述虚拟机管理器同步的脏页位图具体为虚拟机管理器重置后的脏页位图。
17.一种安全虚拟机的迁移方法,其特征在于,应用于虚拟机管理器,包括:
获取更新后的脏页位图;
基于所述更新后的脏页位图,确定安全虚拟机产生的脏页的虚拟物理地址;其中,所述安全虚拟机被配置为向内存页面写入数据时,产生所述写入异常,脏页位图基于发生写入异常的虚拟物理地址进行更新;
发送所述脏页虚拟物理地址和预设存储空间的存储地址至所述安全处理器;其中,所述预设存储空间允许所述虚拟机管理器访问;
在安全处理器将所述脏页的虚拟物理地址对应的内存数据存储至所述预设存储空间后,将所述内存数据发送至目标主机;
将脏页位图同步至本机的主机操作系统。
18.根据权利要求17所述的迁移方法,其特征在于,所述安全处理器为多个,所述发送所述脏页的虚拟物理地址和预设存储空间的存储地址至所述安全处理器,包括:
为不同的安全处理器分配不同的脏页的虚拟物理地址;
将脏页的虚拟物理地址和预设存储空间发送至为其分配的安全处理器。
19.根据权利要求17所述的迁移方法,其特征在于,所述将脏页位图同步至本机的主机操作系统,包括:
重置所述脏页位图;
将重置后的脏页位图同步至所述主机操作系统。
20.根据权利要求17所述的迁移方法,其特征在于,所述基于所述更新后的脏页位图,确定安全虚拟机产生的脏页的虚拟物理地址的步骤之后,所述发送所述脏页虚拟物理地址和预设存储空间的存储地址至所述安全处理器之前,还包括:
判断当前脏页数目是否小于阈值;
若是,停止所述安全虚拟机的运行;若否,继续运行所述安全虚拟机。
21.根据权利要求20所述的迁移方法,其特征在于,所述停止所述安全虚拟机的运行之后,还包括:
在所述安全虚拟机的宕机阶段,向安全处理器发送状态数据迁移请求,以使所述安全处理器将所述安全虚拟机的处理器状态数据存储至所述预设存储空间。
22.根据权利要求17所述的迁移方法,其特征在于,所述安全虚拟机的迁移启动时,所述更新后的脏页位图处于初始状态,用于指示安全虚拟机的所有内存页面均为脏页。
23.一种安全虚拟机的迁移方法,其特征在于,应用于接收数据的目标主机,包括:
接收安全虚拟机的内存数据,并将所述内存数据存储至临时存储空间;
根据所述内存数据,获取对应所述内存数据的虚拟物理地址信息;
根据所述虚拟物理地址信息,为所述内存数据分配内存,并建立与所述虚拟物理地址信息对应的嵌套页表;
根据所述嵌套页表,将所述内存数据保存至对应的内存页面。
24.根据权利要求23所述的迁移方法,其特征在于,所述根据所述嵌套页表,将所述内存数据保存至对应的内存页面,包括:
指示密码协处理器,采用传输加密密钥对所述内存数据进行解密;
指示密码协处理器,采用第二虚拟机密钥对解密后的内存数据进行加密;
查询所述嵌套页表,将采用第二虚拟机密钥加密后的内存数据存储至对应的内存页面。
25.根据权利要求24所述的迁移方法,其特征在于,所述指示密码协处理器,采用传输加密密钥对内存数据进行解密之前,还包括:
指示密码协处理器,采用传输完整性密钥计算所述内存数据的完整性校验数据;
根据所述完整性校验数据,验证所述内存数据的完整性。
26.根据权利要求23所述的迁移方法,其特征在于,所述虚拟物理地址信息中记录所述内存数据的虚拟物理地址在源主机对应的内存页面的属性,所述内存页面的属性指示所述内存页面为安全隔离内存或普通内存。
27.根据权利要求23所述的迁移方法,其特征在于,基于不同的虚拟物理地址信息,同步执行所述根据所述虚拟物理地址信息,为所述内存数据分配内存,并建立与所述虚拟物理地址信息对应的嵌套页表的步骤。
28.根据权利要求23所述的迁移方法,其特征在于,所述根据所述嵌套页表,将所述内存数据保存至对应的内存页面之后,还包括:
接收加密后的所述安全虚拟机的处理器状态数据,所述加密后的处理器状态数据具有完整性校验数据;
基于传输完整性密钥执行所述处理器状态数据的完整性校验;
若校验成功,采用传输加密密钥解密所述加密后的处理器状态数据。
29.一种数据处理装置,其特征在于,包括:
异常配置模块,用于配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常,以使主机操作系统基于发生写入异常的虚拟物理地址更新脏页位图;
异常处理模块,用于在产生写入异常时,处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
信息获取模块,用于获取脏页的虚拟物理地址和预设存储空间的存储地址,所述预设存储空间允许虚拟机管理器访问;其中,所述脏页的虚拟物理地址基于更新后的脏页位图确定;
页表查询模块,用于查询所述脏页的虚拟物理地址对应的主机物理地址;
数据存储模块,用于将对应所述主机物理地址的内存数据存储至所述预设存储空间。
30.一种数据处理装置,其特征在于,包括:
第一位图获取模块,用于获取虚拟机管理器同步的脏页位图;
配置指示模块,用于指示安全处理器配置安全虚拟机,使所述安全虚拟机向内存页面写入数据时,产生写入异常;
位图更新模块,用于根据所述安全虚拟机产生写入异常的虚拟物理地址,更新所述脏页位图,并指示安全处理器处理所述写入异常,以使所述安全虚拟机向内存页面写入数据;
第一位图同步模块,用于将更新后的脏页位图同步至虚拟机管理器。
31.一种迁移装置,其特征在于,包括:
第二位图获取模块,用于获取更新后的脏页位图;
地址确定模块,用于基于更新后的脏页位图,确定安全虚拟机产生的脏页的虚拟物理地址;其中,所述安全虚拟机被配置为向内存页面写入数据时,产生所述写入异常,所述脏页位图基于发生写入异常的虚拟物理地址进行更新;
信息发送模块,用于发送所述脏页虚拟物理地址和预设存储空间的存储地址至所述安全处理器;其中,所述预设存储空间允许所述虚拟机管理器访问;
数据发送模块,用于在安全处理器将所述脏页的虚拟物理地址对应的内存数据存储至所述预设存储空间后,将所述内存数据发送至目标主机;
第二位图同步模块,用于将所述脏页位图同步至本机的主机操作系统。
32.一种计算机架构,其特征在于,包括:
安全处理器,所述安全处理器可执行,实现权利要求1-11任一项所述的数据处理方法的程序;
主机操作系统,所述主机操作系统可执行,实现权利要求12-16任一项所述的数据处理方法的程序;
以及,虚拟机管理器,所述虚拟机管理器可执行,实现权利要求17-22任一项所述的安全虚拟机的迁移方法的程序。
33.一种计算机架构,其特征在于,所述计算机架构可执行,实现权利要求23-28任一项所述的安全虚拟机的迁移方法的程序。
34.一种计算机架构,其特征在于,包括:
虚拟机管理器,用于接收安全虚拟机的内存数据,将所述内存数据存储至临时存储空间,并且,根据所述内存数据,获取对应所述内存数据的虚拟物理地址信息,并将所述虚拟物理地址信息发送至安全处理器;
安全处理器,用于根据所述虚拟物理地址信息,为所述内存数据分配内存,建立与所述虚拟物理地址信息对应的嵌套页表,并且,根据所述嵌套页表,将所述内存数据保存至对应的内存页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110722202.7A CN113342473B (zh) | 2021-06-28 | 2021-06-28 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110722202.7A CN113342473B (zh) | 2021-06-28 | 2021-06-28 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342473A true CN113342473A (zh) | 2021-09-03 |
CN113342473B CN113342473B (zh) | 2024-01-19 |
Family
ID=77481230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110722202.7A Active CN113342473B (zh) | 2021-06-28 | 2021-06-28 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342473B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108454A (zh) * | 2023-04-06 | 2023-05-12 | 支付宝(杭州)信息技术有限公司 | 内存页面管理方法及装置 |
CN116450286A (zh) * | 2023-03-13 | 2023-07-18 | 中诚华隆计算机技术有限公司 | 一种安全芯片配置方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108037980A (zh) * | 2018-01-02 | 2018-05-15 | 腾讯科技(深圳)有限公司 | 控制执行虚拟机热迁移的方法、装置和可读存储介质 |
CN111966468A (zh) * | 2020-08-28 | 2020-11-20 | 海光信息技术有限公司 | 用于直通设备的方法、系统、安全处理器和存储介质 |
CN112099905A (zh) * | 2020-08-26 | 2020-12-18 | 海光信息技术股份有限公司 | 虚拟机脏页获取方法、装置、电子设备及可读存储介质 |
CN112241310A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 页表管理、信息获取方法、处理器、芯片、设备及介质 |
CN112241305A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 |
CN112433817A (zh) * | 2020-11-27 | 2021-03-02 | 海光信息技术股份有限公司 | 信息配置方法、直接存储访问方法及相关装置 |
CN112464221A (zh) * | 2019-09-09 | 2021-03-09 | 北京奇虎科技有限公司 | 内存访问行为的监控方法及系统 |
-
2021
- 2021-06-28 CN CN202110722202.7A patent/CN113342473B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108037980A (zh) * | 2018-01-02 | 2018-05-15 | 腾讯科技(深圳)有限公司 | 控制执行虚拟机热迁移的方法、装置和可读存储介质 |
CN112464221A (zh) * | 2019-09-09 | 2021-03-09 | 北京奇虎科技有限公司 | 内存访问行为的监控方法及系统 |
CN112099905A (zh) * | 2020-08-26 | 2020-12-18 | 海光信息技术股份有限公司 | 虚拟机脏页获取方法、装置、电子设备及可读存储介质 |
CN111966468A (zh) * | 2020-08-28 | 2020-11-20 | 海光信息技术有限公司 | 用于直通设备的方法、系统、安全处理器和存储介质 |
CN112241310A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 页表管理、信息获取方法、处理器、芯片、设备及介质 |
CN112241305A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 |
CN112433817A (zh) * | 2020-11-27 | 2021-03-02 | 海光信息技术股份有限公司 | 信息配置方法、直接存储访问方法及相关装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450286A (zh) * | 2023-03-13 | 2023-07-18 | 中诚华隆计算机技术有限公司 | 一种安全芯片配置方法及设备 |
CN116450286B (zh) * | 2023-03-13 | 2023-08-15 | 中诚华隆计算机技术有限公司 | 一种安全芯片配置方法及设备 |
CN116108454A (zh) * | 2023-04-06 | 2023-05-12 | 支付宝(杭州)信息技术有限公司 | 内存页面管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113342473B (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10013274B2 (en) | Migrating virtual machines to perform boot processes | |
JP6414863B2 (ja) | 仮想化システムにおける暗号復号方法および装置、およびシステム | |
US10262130B2 (en) | System and method for providing cryptographic operation service in virtualization environment | |
US9317316B2 (en) | Host virtual machine assisting booting of a fully-encrypted user virtual machine on a cloud environment | |
US10091001B2 (en) | Autonomous private key recovery | |
CN112433817B (zh) | 信息配置方法、直接存储访问方法及相关装置 | |
KR20160097892A (ko) | 가상화 기반의 보안 서비스 제공 장치 및 제공 방법 | |
CN113342473B (zh) | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 | |
US20180081824A1 (en) | Generating memory dumps | |
CN114117412A (zh) | 一种基于可信技术的虚拟加密机平台及其创建方法 | |
EP4332810A1 (en) | Method for realizing virtualized trusted platform module, and secure processor and storage medium | |
CN116724309A (zh) | 设备和通信方法 | |
JP2002182560A (ja) | 暗号処理機能を備えた情報サーバ装置 | |
CN111858094B (zh) | 一种数据复制粘贴方法、系统及电子设备 | |
CN111683052A (zh) | 基于租户身份信息的可信虚拟机vTPM私密信息保护方法、系统 | |
US20230066427A1 (en) | Distributed trusted platform module key management protection for roaming data | |
CN116450281A (zh) | 访问处理方法、虚拟机标识配置方法、芯片及计算机设备 | |
CN109525396B (zh) | 一种身份秘钥的处理方法、装置和服务器 | |
CN108449358B (zh) | 基于云的低延时安全计算方法 | |
CN113485790B (zh) | 一种虚拟机的重启方法、迁移方法和相关设备 | |
EP4332763A1 (en) | Secured peripheral device communication via bridge device in virtualized computer system | |
US20230267214A1 (en) | Virtual trusted platform module implementation method and related apparatus | |
US20240039700A1 (en) | Secured peripheral device communication in virtualized computer system | |
CN113343265B (zh) | 一种密钥配置方法、装置和相关设备 | |
CN116820680A (zh) | 一种安全虚拟机的迁移方法及相关装置、系统 |
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 |