一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种虚拟机镜像保护方法、相关器件、芯片及电子设备与流程

2022-04-09 06:51:14 来源:中国专利 TAG:


1.本技术实施例涉及虚拟机技术领域,具体涉及一种虚拟机镜像保护方法、相关器件、芯片及电子设备。


背景技术:

2.通过虚拟化技术(virtualization),物理主机可虚拟化出多台虚拟机(virtual machine,vm),从而高效利用物理主机的硬件资源。虚拟化出的虚拟机可在物理内存中分配虚拟机内存空间,每台虚拟机的虚拟机内存空间主要用于任务消耗及支持虚拟化。
3.在虚拟机启动之后,需要通过执行bios(basic input output system,基本输入输出)镜像和加载虚拟机硬盘镜像中的操作系统内核,来实现启动虚拟机操作系统,以便在虚拟机操作系统中部署业务系统。
4.虚拟机硬盘镜像也称为虚拟机镜像,其存储在物理主机的硬盘中,如果不对虚拟机镜像提供安全保护机制,则虚拟机镜像极易被篡改和替换,导致虚拟机内部极易被植入病毒或木马,造成虚拟机数据从内部被窃取或破坏,进而出现业务系统宕机情况。因此,如何对虚拟机镜像提供可靠的安全保护机制,成为了本领域技术人员亟需解决的技术问题。


技术实现要素:

5.有鉴于此,本技术实施例提供一种虚拟机镜像保护方法、相关器件、芯片及电子设备,以对虚拟机镜像提供可靠的安全保护。
6.为实现上述目的,本技术实施例提供如下技术方案。
7.第一方面,本技术实施例提供一种虚拟机镜像保护方法,包括:
8.获取虚拟机加密镜像中的镜像证书;其中,所述虚拟机加密镜像包括加密的镜像证书以及加密的虚拟机镜像文件,所述镜像证书携带所述虚拟机的镜像加密密钥,所述虚拟机镜像文件以所述镜像加密密钥进行加密并保存到硬盘中;
9.解密所述镜像证书,以从所述镜像证书中至少获取到所述虚拟机的镜像加密密钥;
10.至少将所述镜像加密密钥配置到硬盘控制器中,以便虚拟机在对硬盘中的虚拟机镜像文件进行读写时,使得所述硬盘控制器利用密码协处理器,以所述镜像加密密钥对虚拟机镜像文件进行加解密。
11.第二方面,本技术实施例提供一种虚拟机镜像保护方法,包括:
12.至少获取安全处理器配置的虚拟机的镜像加密密钥;所述镜像加密密钥由所述安全处理器从虚拟机加密镜像中的镜像证书中解密得到,所述虚拟机加密镜像包括加密的镜像证书以及加密的虚拟机镜像文件,所述镜像证书携带所述虚拟机的镜像加密密钥,所述虚拟机镜像文件以所述镜像加密密钥进行加密并保存到硬盘中;
13.获取安全处理器设置的数据传输信息,所述数据传输信息用于在虚拟机对硬盘中的虚拟机镜像文件进行读写时,启动虚拟机镜像文件在硬盘与虚拟机内存空间之间的数据
传输;
14.在数据传输过程中,利用密码协处理器,以所述镜像加密密钥对虚拟机镜像文件进行加解密。
15.第三方面,本技术实施例提供一种安全处理器,所述安全处理器被配置为执行如上述第一方面所述的虚拟机镜像保护方法。
16.第四方面,本技术实施例提供一种硬盘控制器,所述硬盘控制器被配置为执行如上述第二方面所述的虚拟机镜像保护方法。
17.第五方面,本技术实施例提供一种芯片,包括如上述第三方面所述的安全处理器,以及如上述第四方面所述的硬盘控制器。
18.第六方面,本技术实施例提供一种电子设备,包括如上述第五方面所述的芯片。
19.本技术实施例提供的虚拟机镜像保护方法,可由机密计算服务器提供虚拟机加密镜像,虚拟机加密镜像携带加密的镜像证书和加密的虚拟机镜像文件,且镜像证书携带对虚拟机镜像文件进行加解密的镜像加密密钥。当机密计算服务器提供的虚拟机加密镜像注入物理主机后,安全处理器可获取到虚拟机加密镜像中的镜像证书,进而安全处理器可对镜像证书进行解密,至少从镜像证书中获取到镜像加密密钥,并至少将镜像加密密钥配置到硬盘控制器中。本技术实施例可实现镜像加密密钥由机密计算服务器提供并且由安全处理器进行解密和配置到硬盘控制器中,避免了用户手动注入镜像加密密钥的过程,减少用户使用复杂度。进而,在虚拟机需要对硬盘中的虚拟机镜像文件进行读写时,硬盘控制器可通过密码协处理器,利用配置的镜像加密密钥,进行虚拟机镜像文件的加解密。本技术实施例可通过密码协处理器,实现对虚拟机镜像文件的加解密,避免了cpu通过执行软件的方式对虚拟机镜像文件进行加解密,降低了cpu的资源开销。
20.本技术实施例提供的虚拟机镜像保护方法可实现镜像加密密钥的自动注入,以及由密码协处理器基于镜像加密密钥实现对虚拟机镜像文件的加解密。同时,由于镜像加密密钥注入时由镜像证书进行保护,因此本技术实施例可通过镜像加密密钥对虚拟机镜像文件的加密保护,以及镜像证书对镜像加密密钥的加密保护,保障虚拟镜像文件的安全可靠性。另外,负责虚拟机镜像文件加密的密码协处理由安全处理器负责调度,且安全处理器固化在芯片内,因此密码协处理器不存在被病毒攻击的可能性,能够进一步保障虚拟机镜像文件在加解密时的安全性。可见,本技术实施例能够通过多重保障手段,实现硬盘中的虚拟机镜像文件的可靠安全保护,并且能够降低用户使用复杂度和cpu资源开销。
附图说明
21.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
22.图1a为加密虚拟化技术的系统架构示意图。
23.图1b为虚拟机内部被植入恶意软件的示例图。
24.图2为虚拟机镜像安全保护方案的流程图。
25.图3为本技术实施例提供的虚拟机镜像保护系统的示意图。
26.图4a为本技术实施例提供的虚拟机镜像保护方法的流程图。
27.图4b为虚拟机加密镜像的数据格式示例图。
28.图5为本技术实施例提供的虚拟机镜像保护方法的另一流程图。
29.图6为本技术实施例提供的设置数据传输信息的流程图。
30.图7为本技术实施例提供的虚拟机镜像保护方法的再一流程图。
具体实施方式
31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
32.随着云计算技术的发展,越来越多的用户开始在云上部署业务系统。云计算通过共享硬件资源并以虚拟机的形式向用户提供服务,由于云计算提供的虚拟化坏境共享硬件资源,因此云环境的安全性不容忽视。基于此,区别于传统虚拟化技术的加密虚拟化技术应运而生,加密虚拟化技术可对虚拟机在物理内存中的虚拟机数据进行加密保护,以在硬件上为云上虚拟机提供内存加密的隔离方案。
33.图1a示例性的示出了加密虚拟化技术的系统架构示意图,如图1a所示,该系统架构可以包括:cpu(central processing unit,中央处理器)110、内存控制器120、物理内存130、硬盘140和安全处理器(platform secure processor,psp)150。
34.其中,cpu110可通过软件形式配置虚拟机管理器111,并通过虚拟化技术虚拟化出多台虚拟机112。该多台虚拟机112可由虚拟机管理器111进行管理,例如由虚拟机管理器111管理虚拟机在物理内存130中的虚拟机内存空间。
35.内存控制器120是控制物理内存130,并且使物理内存130与cpu110之间交换数据的硬件。物理内存130的部分或全部空间可作为为虚拟机分配的虚拟机内存空间,不同虚拟机在物理内存130中可以被分配不同的虚拟机内存空间。
36.硬盘140为计算机体系结构中的存储设备。在本技术实施例中,虚拟机的虚拟机镜像存储在硬盘140,虚拟机运行的虚拟机数据保存在物理内存130分配的虚拟机内存空间中。
37.安全处理器150是加密虚拟化技术专门设置的负责数据安全的处理器。如图1a所示,虚拟机管理器111可配置与安全处理器150相通信的api(application programming interface,应用程序接口)接口,实现虚拟机管理器111与安全处理器150的数据交互。同时,内存控制器120可配置加解密引擎121,加解密引擎121可存储各虚拟机对应的vek(vm encryption key,虚拟机加密密钥),以对各虚拟机在虚拟机内存空间中的虚拟机数据进行加解密,实现对虚拟机数据的安全保护。例如,当虚拟机的虚拟机数据需要读取到虚拟机内存空间中时,加解密引擎121可使用虚拟机对应的vek进行加密,而虚拟机的虚拟机数据需从虚拟机内存空间读出时,加解密引擎121可使用虚拟机对应的vek进行解密。
38.在加密虚拟化技术中,不同的虚拟机可对应不同的vek,并且各个虚拟机对应的vek可由安全处理器150进行分配和管理,并保存在加解密引擎121中。例如,可由运行在安全处理器150中的安全固件完成vek的管理,以此来保证虚拟机内存空间中的虚拟机数据被
加密后只有虚拟机本身能够访问,虚拟机管理器和其他虚拟机均无法访问。
39.进一步需要说明的是,在启动虚拟机时,安全处理器可为虚拟机分配asid(address space id,地址空间标记),asid为虚拟机的地址空间标记;在常规的情况下或者某些实现中,不同的虚拟机拥有不同的asid。安全处理可通过设置虚拟机的虚拟机加密密钥(vek)与虚拟机的asid的绑定关系,以使得不同虚拟机对应不同的vek。
40.加密虚拟化技术虽然为虚拟机在物理内存中的数据提供了加密保护,但是虚拟机镜像作为保存在硬盘140中的文件仍可能存在被篡改和替换的风险。一旦虚拟机镜像被篡改和替换,则虚拟机内部极易被植入病毒、木马等恶意软件,这导致虚拟机数据虽然在物理内存中是加密的,但由于虚拟机内部植入的病毒或木马,虚拟机数据也存在被内部窃取或破坏的可能,进而造成业务系统的宕机。
41.图1b示例性的示出了加密虚拟化技术下,虚拟机内部被植入恶意软件的示例图。如图1b所示,在加密虚拟化技术下,虚拟机11在物理内存中的虚拟机数据01使用虚拟机11相应的vek进行加密保护;虚拟机12在物理内存中的虚拟机数据02使用虚拟机12相应的vek进行加密保护;并且虚拟机数01除虚拟机11能够访问外,虚拟机12、虚拟机管理器、应用程序等均无法访问;同理,虚拟机数据02除虚拟机12能够访问外,虚拟机11、虚拟机管理器、应用程序等均无法访问。虚拟机11在物理内存中的虚拟机数据01虽然实现了安全保护,但是如果虚拟机11在硬盘中的虚拟机镜像011没有施加安全保护机制,则一旦虚拟机镜像011被篡改和替换,那么在虚拟机11的部署过程中,基于被篡改和替换的虚拟机镜像011,虚拟机11内部极易被植入恶意软件,从而造成虚拟机数据011虽然在物理内存实现了加密保护,但会被虚拟机11内部的恶意软件从内部窃取或破坏。
42.可见,在加密虚拟化技术下,为虚拟机镜像施加安全保护机制,显得尤为必要。一种可以选择的虚拟机镜像安全保护方式为:用户提供对虚拟机镜像进行加解密的镜像加密密钥,并在虚拟机启动阶段,由用户手动注入镜像加密密钥;从而在虚拟机镜像文件在硬盘和物理内存进行读写时(虚拟机镜像文件可以视为是虚拟机镜像的文件),cpu利用加密软件,根据镜像加密密钥对虚拟机镜像文件进行加解密,实现虚拟机镜像文件的安全保护。图2示例性的示出了虚拟机镜像安全保护方案的一种流程图。如图2所示,该流程可以包括如下步骤。
43.在步骤s210中,在启动虚拟机时,用户利用安全处理器事先生成的传输密钥,将镜像加密密钥进行加密,加密的镜像加密密钥通过cpu传输给安全处理器。
44.在步骤s211中,安全处理器利用传输密钥,对加密的镜像加密密钥进行解密,将镜像加密密钥拷贝到内存。
45.在步骤s212中,cpu运行vmrun(虚拟机运行)指令,从内存中获取镜像加密密钥。
46.在步骤s213中,cpu调用硬盘密钥服务程序,利用镜像加密密钥对虚拟机镜像文件进行加解密。
47.图2所示流程虽然实现了硬盘中虚拟机镜像文件的加密保护,但是需要用户在虚拟机启动阶段,手动输入用于加解密虚拟机镜像文件的镜像加密密钥,并通过cpu和安全处理器注入内存,这增加了用户使用的复杂度。另外,在虚拟机操作系统内核中,cpu以硬盘密钥服务的程序软件方式对虚拟机镜像文件执行加解密,增加了cpu额外的开销。
48.基于此,本技术实施例进一步提供改进的虚拟机镜像保护方案,以在减少用户的
firmware,开放虚拟机固件)、ovmf的原始度量信息、以及虚拟机加密镜像。
56.机密计算服务器为机密计算服务商的服务器设备,机密计算服务商可以通过机密计算服务器提供虚拟机的ovmf和虚拟机加密镜像。机密计算服务商提供虚拟机的ovmf时,可以事先计算ovmf的原始度量信息,并且一同提供ovmf的原始度量信息。基于此,物理主机的cpu可以从机密计算服务器,下载虚拟机的ovmf、ovmf的原始度量信息和虚拟机加密镜像。ovmf可以视作虚拟机的bios。在云环境下,机密计算服务商例如云服务提供商。在一些实施例中,cpu下载的虚拟机的ovmf、ovmf的原始度量信息和虚拟机加密镜像可保存到硬盘中。
57.在本技术实施例中,虚拟机的虚拟机镜像文件和用于加解密虚拟机镜像文件的镜像加密密钥可由机密计算服务商提供,例如,机密计算服务商提供的虚拟机加密镜像可以携带加密的虚拟机镜像文件以及加密的镜像证书,并且镜像证书中携带镜像加密密钥。由于虚拟机加密镜像中的虚拟机镜像文件和镜像证书均进行了加密,因此虚拟机加密镜像在发送给物理主机的过程中,能够抵御虚拟机加密镜像中的数据被非法篡改。作为可选实现,图4b示例性的示出了虚拟机加密镜像的数据格式示例图。如图4b所示,虚拟机加密镜像可以包括加密的镜像证书和加密的虚拟机镜像文件。其中,镜像证书可以保存在虚拟机加密镜像的头部,镜像证书可以携带用于加密虚拟机镜像文件的镜像加密密钥,进一步的,镜像证书还可以携带机密计算服务商的公钥等信息。在一些实施例中,镜像证书可由物理主机的芯片私钥(例如芯片厂商设置的芯片私钥)进行加密并签名。也就是说,在可能的实现中,虚拟机加密镜像中的虚拟机镜像文件可以通过镜像加密密钥进行加密,而镜像加密密钥可以携带在镜像证书中,并且镜像证书通过芯片私钥进行加密和签名,从而加密的镜像证书和加密的虚拟机镜像文件可结合得到虚拟机加密镜像。
58.进一步的,cpu下载虚拟机的ovmf、ovmf的原始度量信息、和虚拟机加密镜像之后,可以向安全处理器发起虚拟机的启动请求;从而安全处理器可以为虚拟机配置在虚拟机内存空间中的虚拟机加密密钥等。
59.在步骤s411中,cpu将虚拟机的ovmf和ovmf的原始度量信息发送给安全处理器。
60.在步骤s412中,安全处理器将ovmf更新到虚拟机的虚拟机内存空间,并重新计算ovmf的度量信息。
61.在一些实施例中,安全处理器可以基于虚拟机的ovmf,计算ovmf相应的hash(哈希)值,从而得到重新计算的ovmf的度量信息。例如,安全处理器可通过sm3算法,计算ovmf相应的hash值。
62.在步骤s413中,安全处理器将重新计算的ovmf的度量信息与原始度量信息进行比较,以验证ovmf的完整性。
63.安全处理器可基于重新计算的ovmf的度量信息,以及ovmf的原始度量信息,验证ovmf的完整性;通过将重新计算的ovmf的度量信息与原始度量信息进行比较,如果比较结果一致,则验证ovmf完整,如果比较结果不一致,则验证ovmf不完整。在验证ovmf不完整时,本技术实施例可退出流程,而在验证ovmf完整时,本技术实施例可继续执行后续步骤。
64.在进一步的一些实施例中,ovmf的原始度量信息可以由机密计算服务器,以芯片私钥进行加密和签名;在此情况下,安全处理器在验证ovmf的完整性之前,需要利用芯片公钥对原始度量信息进行验签,在原始度量信息验签成功后,安全处理器可获取解密的原始
度量信息,从而基于解密的ovmf的原始度量信息进行ovmf的完整性验证。作为可选实现,安全处理器在重新计算ovmf的度量信息之后,或者,安全处理器在获取到ovmf以及原始度量信息之后,可以利用芯片公钥对原始度量信息进行验签;如果验签失败则退出流程,如果验签成功,则进一步基于验签解密的原始度量信息和重新计算的度量信息,进行ovmf的完整性验证。
65.在一些实施例中,在验签ovmf的原始度量信息时,如果原始度量信息由非法的芯片私钥签名,则安全处理器在使用合法的芯片公钥进行验签时,会存在验签失败的情况,因此安全处理器可以通过合法的芯片公钥对原始度量信息进行验签,以通过验签的成功或失败结果,判断原始度量信息是否经过非法篡改。也就是说,ovmf的原始度量信息经过合法的芯片私钥加密签名,则安全处理器可利用对应的芯片公钥验签,成功解密原始度量信息。
66.在步骤s414中,若安全处理器验证ovmf完整,通知cpu运行虚拟机。
67.在步骤s415中,虚拟机执行ovmf,获取cpu下载的虚拟机加密镜像,从虚拟机加密镜像中获取镜像证书。
68.在步骤s416中,虚拟机通过安全调用,将镜像证书发送给安全处理器。
69.虚拟机运行时,虚拟机首先执行ovmf,完成虚拟机初始化相关操作;虚拟机完成初始化相关操作之后,开始从硬盘读取虚拟机镜像文件;此时,为了对硬盘中的虚拟机镜像文件进行安全保护,虚拟机可获取cpu事先下载的虚拟机加密镜像,并从虚拟机加密镜像中读取镜像证书(例如,从虚拟机加密镜像的头部获取镜像证书)。虚拟机获取的镜像证书可通过安全调用的方式,发送给安全处理器。例如虚拟机可利用内存控制器,以虚拟机相应的虚拟机加密密钥,将镜像证书加密后保存到相应的虚拟机内存空间,从而,安全处理器可从虚拟机内存空间中获取到加密的镜像证书;进而安全处理器可利用内存控制器,以虚拟机相应的虚拟机密钥,对加密的镜像证书进行解密,得到虚拟机以安全调用方式传输的镜像证书。
70.在步骤s417中,安全处理器利用芯片公钥对镜像证书进行验签,并在验签成功后,从镜像证书中至少获取虚拟机的镜像加密密钥。
71.虚拟机加密镜像中的镜像证书,由机密计算服务器通过芯片私钥进行加密并签名;从而安全处理器在获取到镜像证书之后,可利用芯片公钥对镜像证书进行验签解密;如果镜像证书验签失败(说明镜像证书不是以合法的芯片私钥进行签名),则本技术实施例可退出流程;如果镜像证书验签成功(说明镜像证书以合法的芯片私钥进行签名),则安全处理器可从镜像证书中至少获取到镜像加密密钥。在进一步的一些实施例中,安全处理器还可从镜像证书中获取到服务商公钥等信息。
72.在步骤s418中,安全处理器将虚拟机的asid与镜像加密密钥配置到硬盘控制器中,虚拟机的asid与镜像加密密钥设置对应关系。
73.安全处理器在从镜像证书中获取到镜像加密密钥后,可得到用于对虚拟机的虚拟机镜像文件进行加解密的密钥,安全处理器可将虚拟机的镜像加密密钥与asid设置对应关系,并将虚拟机的asid与镜像加密密钥配置到硬盘控制器中。
74.在步骤s419中,虚拟机向安全处理器发送虚拟机镜像文件的读写请求。
75.在一些实施例中,虚拟机可通过安全调用方式,向安全处理器发送虚拟机镜像文件的读写请求。例如,虚拟机可通过内存控制器,将读写请求以虚拟机的虚拟机加密密钥进
行加密,并保存到虚拟机内存空间;从而安全处理器可通过内存控制器,以虚拟机的虚拟机加密密钥从虚拟机内存空间中解密得到读写请求。在一些实施例中,虚拟机需从硬盘读取虚拟机镜像文件到虚拟机内存空间时,虚拟机可发送虚拟机镜像文件的读请求;虚拟机将虚拟机内存空间的虚拟机镜像文件写入到硬盘时,虚拟机可发送虚拟机镜像文件的写请求。
76.在一些实施例中,读写请求可以至少包括读写的内存地址;进一步的,所述读写请求还可以包括读写的数据大小等。
77.在步骤s420中,安全处理器基于读写请求,向硬盘控制器设置dma信息。
78.安全处理器获取到虚拟机对于虚拟机镜像文件的读写请求之后,可基于读写请求,在硬盘控制器中设置虚拟机镜像文件进行dma的dma信息。在一些实施例中,安全处理器可基于虚拟机的asid以及读写请求携带的内存地址,设置所述dma信息。例如,将dma信息设置为进行读写的内存地址和虚拟机的asid。
79.在步骤s421中,硬盘控制器基于dma信息启动dma传输,在dma传输过程中,硬盘控制器通过密码协处理器,利用虚拟机的镜像加密密钥,对虚拟机镜像文件进行加解密。
80.硬盘控制器设置了dma信息之后,可以启动虚拟机镜像文件的dma传输。dma传输可以包括:虚拟机内存空间中的虚拟机镜像文件,以dma方式写入到硬盘;以及,硬盘中的虚拟机镜像文件,以dma方式读取到虚拟机内存空间。由于硬盘中的虚拟机镜像文件以镜像加密密钥进行加密保护,因此在dma传输过程中,本技术实施例需要利用虚拟机的镜像加密密钥,对传输的虚拟机镜像文件进行加解密。区别于cpu通过软件执行虚拟机镜像文件的加解密的方式,在本技术实施例中,硬盘控制器可通过硬件电路的密码协处理器,利用虚拟机的镜像加密密钥,对dma传输的虚拟机镜像文件进行加解密,从而降低cpu的资源开销。
81.在一些实施例中,当虚拟机需从硬盘读取虚拟机镜像文件到虚拟机内存时,硬盘控制器可通过密码协处理器,利用虚拟机的镜像加密密钥,对硬盘中加密的虚拟机镜像文件进行解密,然后解密的虚拟机镜像文件通过dma方式传输到虚拟机的虚拟机内存空间。
82.在进一步的一些实施例中,为兼容加密虚拟化技术,当硬盘控制器将解密的虚拟机镜像文件通过dma方式传输到虚拟机的虚拟机内存空间时,硬盘控制器传输的解密的虚拟机镜像文件,需以虚拟机的虚拟机加密密钥再进行加密,保障保存到虚拟机内存空间中的虚拟机镜像文件是以虚拟机加密密钥进行加密的加密状态。作为可选实现,硬盘控制器在虚拟机镜像文件的dma传输过程中,可将以镜像加密密钥加密的虚拟机镜像文件送入密码协处理器,从而密码协处理器以硬盘中配置的虚拟机的镜像加密密钥,对虚拟机镜像文件进行解密;解密的虚拟机镜像文件可被密码协处理器传输到虚拟机的虚拟机内存空间中,进而内存控制器中的加解密引擎,可基于dma传输过程中dma信息携带的asid,调用相应的虚拟机加密密钥,对虚拟机内存空间中的虚拟机镜像文件再进行加密,保障保存到虚拟机内存空间的虚拟机镜像文件是以虚拟机相应的虚拟机加密密钥进行加密。
83.在另外的一些实施例中,当虚拟机将虚拟机内存空间的虚拟机镜像文件写入到硬盘时,硬盘控制器可通过密码协处理器,利用虚拟机的镜像加密密钥,对从虚拟机内存空间写入硬盘的虚拟机镜像文件进行加密,然后将加密的虚拟机镜像文件保存到硬盘中;从虚拟机内存空间写入硬盘的虚拟机镜像文件可事先以虚拟机相应的虚拟机加密密钥进行解密。作为可选实现,当虚拟机将虚拟机内存空间的虚拟机镜像文件写入到硬盘时,虚拟机可
通过安全处理器的辅助控制,控制内存控制器中的加解密引擎,基于虚拟机的asid绑定的虚拟机加密密钥,对虚拟机内存空间中的虚拟机镜像文件进行解密(虚拟机内存空间中的虚拟机镜像文件为以虚拟机加密密钥进行加密的加密状态);进而,解密的虚拟机镜像文件可通过dma方式从虚拟机内存空间传输到硬盘,从而硬盘控制器可通过密码协处理器,基于虚拟机的镜像加密密钥,对dma传输的虚拟机镜像文件进行加密,保障保存到硬盘中的虚拟机镜像文件是以虚拟机的镜像加密密钥进行加密的加密状态,实现硬盘中虚拟机镜像文件的安全保护。
84.进一步的,在dma传输完毕后,硬盘控制器可发送中断信息给虚拟机,以指示虚拟机镜像文件完成传输(例如虚拟机镜像文件完成读写)。
85.在进一步的一些实施例中,虚拟机操作系统启动之后,本技术实施例可通过安全处理器完成远程认证,以证明当前运行的虚拟机满足安全要求、镜像证书合法等。作为可选实现,远程认证过程可以包括:用户发起内涵随机数的认证请求;虚拟机发送认证请求给安全处理器;安全处理器将内涵随机数作为当前认证的标志,并把ovmf重新计算的度量值、ovmf完整性验证结果、镜像证书以及镜像证书的验签结果,与内涵随机数一起进行度量;进而,安全处理器将度量结果、ovmf重新计算的度量值、ovmf完整性验证结果、镜像证书以及镜像证书的验签结果一同返回给用户,供用户进行确认。进一步的,在认证完成后,虚拟机可从指定数据库获取数据进行虚拟机的机密计算(例如,进行机器学习、深度学习等),并把计算后的模型输出到指定服务器中。
86.本技术实施例提供的虚拟机镜像保护方法,可由机密计算服务器提供虚拟机加密镜像,虚拟机加密镜像携带加密的镜像证书和加密的虚拟机镜像文件,且镜像证书携带对虚拟机镜像文件进行加解密的镜像加密密钥。当机密计算服务器提供的虚拟机加密镜像注入物理主机后,安全处理器可获取到虚拟机加密镜像中的镜像证书,进而安全处理器可对镜像证书进行解密,至少从镜像证书中获取到镜像加密密钥,并至少将镜像加密密钥配置到硬盘控制器中。本技术实施例可实现镜像加密密钥由机密计算服务器提供并且由安全处理器进行解密和配置到硬盘控制器中,避免了用户手动注入镜像加密密钥的过程,减少用户使用复杂度。进而,在虚拟机需要对硬盘中的虚拟机镜像文件进行读写时,硬盘控制器可通过密码协处理器,利用配置的镜像加密密钥,进行虚拟机镜像文件的加解密。本技术实施例可通过密码协处理器,实现对虚拟机镜像文件的加解密,避免了cpu通过执行软件的方式对虚拟机镜像文件进行加解密,降低了cpu的资源开销。
87.本技术实施例提供的虚拟机镜像保护方法可实现镜像加密密钥的自动注入,以及由密码协处理器基于镜像加密密钥实现对虚拟机镜像文件的加解密。同时,由于镜像加密密钥注入时由镜像证书进行保护,因此本技术实施例可通过镜像加密密钥对虚拟机镜像文件的加密保护,以及镜像证书对镜像加密密钥的加密保护,保障虚拟镜像文件的安全可靠性。另外,负责虚拟机镜像文件加密的密码协处理由安全处理器负责调度,且安全处理器固化在芯片内,因此密码协处理器不存在被病毒攻击的可能性,能够进一步保障虚拟机镜像文件在加解密时的安全性。可见,本技术实施例能够通过多重保障手段,实现硬盘中的虚拟机镜像文件的可靠安全保护,并且能够降低用户使用复杂度和cpu资源开销。
88.需要说明的是,图4a所示流程仅是本技术实施例提供的虚拟机镜像保护方法的一种可选流程,图4a所示流程中的部分步骤也可以省略或者由其他方式进行替换。在可能的
一些实施例中,图4a所示流程中ovmf的完整性验证过程可以省略,或者替换为验证虚拟机其他类型的数据;在可能的另一些实施例中,图4a所示流程中的dma传输方式可以替换为其他数据传输方式,例如替换为需要cpu参与的数据传输方式等。在可能的再一些实施例中,本技术实施例也可不基于加密虚拟化的技术环境,例如在传统虚拟化技术下,只要能够保障镜像加密密钥的主动注入、镜像证书对镜像加密密钥的加密保护、以及密码协处理器的加密执行等手段,也可实现硬盘中的虚拟机镜像文件的可靠安全保护,并且降低用户使用复杂度和cpu资源开销。
89.也就是说,图4a所示流程仅是本技术实施例实现镜像加密密钥的主动注入、镜像证书对镜像加密密钥的加密保护、以及密码协处理器的加密执行等技术手段的一种可选实现流程,在使用上述这些技术手段达成虚拟机镜像文件的可靠安全保护,并且降低用户使用复杂度和cpu资源开销的基础上,本技术实施例完全能够延伸出不同的替代或者扩展方案。
90.在上述基础上,从总体实现思路上来说,站在安全处理器的角度,图5示例性的示出了本技术实施例提供的虚拟机镜像保护方法的另一流程图。图5所示流程可由安全处理器执行实现,如图5所示,该流程可以包括如下步骤。
91.在步骤s510中,安全处理器获取虚拟机加密镜像中的镜像证书。
92.其中,所述虚拟机加密镜像包括加密的镜像证书以及加密的虚拟机镜像文件,所述镜像证书携带所述虚拟机的镜像加密密钥,所述虚拟机镜像文件以所述镜像加密密钥进行加密并保存到硬盘中。
93.在一些实施例中,虚拟机加密镜像可由cpu从机密计算服务器下载得到,并在虚拟机运行时,由虚拟机通过安全调用的方式传输给安全处理器。
94.在步骤s511中,安全处理器解密所述镜像证书,以从所述镜像证书中至少获取到所述虚拟机的镜像加密密钥。
95.在一些实施例中,所述镜像证书以芯片私钥进行加密并签名;安全处理器可利用芯片公钥对镜像证书进行验签,从而在所述镜像证书验签成功后,从所述镜像证书中至少获取虚拟机的镜像加密密钥。在进一步的一些实施例中,安全处理器还可在镜像证书验签成功后,从镜像证书中获取到服务商公钥等信息。
96.在可能的替代实施例中,镜像证书并不一定以芯片私钥进行加密并签名,例如安全处理器可与机密计算服务商事先约定对镜像证书进行加解密的密钥,从而机密计算服务商可通过事先约定的密钥,对镜像证书进行加密,进而安全处理器在获取镜像证书后,可通过事先约定的密钥,对镜像证书进行解密。
97.在步骤s512中,安全处理器至少将所述镜像加密密钥配置到硬盘控制器中,以便所述虚拟机在对硬盘中的虚拟机镜像文件进行读写时,使得所述硬盘控制器利用密码协处理器,以所述镜像加密密钥对虚拟机镜像文件进行加解密。
98.在一些实施例中,安全处理器可直接将镜像加密密钥配置到硬盘控制器中,从而虚拟机在对硬盘中的虚拟机镜像文件进行读写时,硬盘控制器可利用密码协处理器,以配置的镜像加密密钥对虚拟机镜像文件进行加解密。
99.在另一些实施例中,安全处理器也可以确定虚拟机的asid,将虚拟机的asid与镜像加密密钥配置到硬盘控制器中,以便虚拟机镜像文件在虚拟机内存空间读出或写入时,
内存控制器能够通过虚拟机的asid,调用相应的虚拟机加密密钥,实现虚拟机镜像文件在虚拟机内存空间读出或写入时的加解密。需要说明的是,安全处理器并不一定需要将虚拟机的asid配置在硬盘控制器中,虚拟机的asid主要是在加密虚拟化技术下实现镜像加密密钥的对应与虚拟机加密密钥的绑定,而本技术实施例也可应用于非内存加密的其他虚拟化场景,此时虚拟机的asid并不必须配置在硬盘控制器。
100.在进一步的一些实施例中,cpu还在下载虚拟机加密镜像时,从机密计算服务器下载虚拟机的ovmf、ovmf的原始度量信息等。从而,安全处理器在获取镜像证书之前,需要对虚拟机的ovmf的完整性进行验证。在一些实施例中,安全处理器可获取cpu下载的虚拟机的ovmf以及ovmf的原始度量信息;重新计算所述ovmf的度量信息;将重新计算的ovmf的度量信息与原始度量信息进行比较,以验证ovmf的完整性。安全处理器在验证ovmf完整时,可通知cpu开始运行虚拟机,从而虚拟机运行时,安全处理器可获取虚拟机传输的镜像证书。
101.需要说明的时,安全处理器验证ovmf的完整性并不是必须手段,例如,cpu可在从机密计算服务器下载虚拟机加密镜像之后,通知安全处理器启动虚拟机,从而安全处理器在为虚拟机配置虚拟机加密密钥之后,可通知cpu运行虚拟机,进而在虚拟机运行时,安全处理器可获取虚拟机传输的镜像证书。
102.在进一步的一些实施例中,如果安全处理器执行ovmf的完整性验证,则在安全处理器验证ovmf的完整性之前,需要先对ovmf的原始度量信息进行验签。作为可选实现,ovmf的原始度量信息可由机密计算服务器以芯片私钥进行加密和签名,从而安全处理器在验证ovmf的完整性之前,需要利用芯片公钥对所述原始度量信息进行验签,在所述原始度量信息验签成功后,获取解密的原始度量信息;进而,安全处理器基于重新计算的ovmf的度量信息与解密的原始度量信息,进行ovmf的完整性验证。当然,ovmf的原始度量信息的验签过程对于本技术实施例并不必须的,例如,本技术实施例也可支持ovmf的原始度量信息不进行加密和签名。
103.在进一步的一些实施例中,安全处理器在硬盘控制器配置虚拟机的镜像加密密钥之后,可获取虚拟机对于虚拟机镜像文件的读写请求,从而为硬盘控制器设置数据传输信息,以便硬盘控制器启动虚拟机镜像文件在硬盘与虚拟机内存空间之间的数据传输。作为可选实现,图6示例性的示出了本技术实施例提供的设置数据传输信息的流程图。图6所示流程可由安全处理器执行实现,如图6所示,该流程可以包括如下步骤。
104.在步骤s610中,安全处理器获取虚拟机发送的虚拟机镜像文件的读写请求。
105.在一些实施例中,所述读写请求可以携带读写的内存地址。在进一步的一些实施例中,所述读写请求还可以携带读写数据的大小。
106.在步骤s611中,安全处理器根据所述读写请求,向硬盘控制器设置数据传输信息。
107.在一些实施例中,安全处理器可以根据读写的内存地址,向硬盘控制器设置虚拟机镜像文件在硬盘与虚拟机内存空间之间进行传输的内存地址。
108.基于硬盘控制器设置的数据传输信息,硬盘控制器可启动虚拟机镜像文件在硬盘与虚拟机内存空间之间的数据传输。作为可选实现,在数据传输过程中,所述硬盘控制器利用密码协处理器,以所述镜像加密密钥对从硬盘读出的虚拟机镜像文件进行解密,以及对写入硬盘的虚拟机镜像文件进行加密,硬盘中虚拟机镜像文件保持以镜像加密密钥进行加密的加密状态。
109.作为可选实现,在加密虚拟化技术下,安全处理器可根据读写请求中的内存地址,以及虚拟机的asdi,向硬盘控制器设置数据传输信息。进而,在数据传输过程中,虚拟机加密密钥用于对读取到虚拟机内存空间的虚拟机镜像文件进行加密,以及对从虚拟机内存空间读出的虚拟机镜像文件进行解密,虚拟机内存空间中的虚拟机镜像文件保持以虚拟机加密密钥进行加密的加密状态。
110.在一些实施例中,上述数据传输信息可以包括dma信息,用于启动虚拟机镜像文件在硬盘与虚拟机内存空间之间的dma传输。当然,本技术实施例并不限于虚拟机镜像文件在硬盘与虚拟机内存空间之间通过dma方式进行传输,也可支持其他传输方式。
111.下面站在硬盘控制器的角度,从总体实现思路上对本技术实施例提供的虚拟机镜像保护方法进行介绍。图7示出了本技术实施例提供的虚拟机镜像保护方法的再一流程图。图7所示流程可由硬盘控制器执行实现,如图7所示,该流程可以包括如下步骤。
112.在步骤s710中,硬盘控制器至少获取安全处理器配置的虚拟机的镜像加密密钥。
113.其中,镜像加密密钥由所述安全处理器从虚拟机加密镜像中的镜像证书中解密得到,虚拟机加密镜像包括加密的镜像证书以及加密的虚拟机镜像文件,镜像证书携带所述虚拟机的镜像加密密钥,虚拟机镜像文件以所述镜像加密密钥进行加密并保存到硬盘中。
114.在步骤s711中,硬盘控制器获取安全处理器设置的数据传输信息。
115.其中,所述数据传输信息用于在虚拟机对硬盘中的虚拟机镜像文件进行读写时,启动虚拟机镜像文件在硬盘与虚拟机内存空间之间的数据传输。
116.在步骤s712中,硬盘控制器在数据传输过程中,利用密码协处理器,以所述镜像加密密钥对虚拟机镜像文件进行加解密。
117.在一些实施例中,硬盘控制器在数据传输过程中,可以利用密码协处理器,以所述镜像加密密钥对从硬盘读出的虚拟机镜像文件进行解密,以及对写入硬盘的虚拟机镜像文件进行加密,硬盘中虚拟机镜像文件保持以镜像加密密钥进行加密的加密状态。
118.在一些实施例中,安全处理器设置的数据传输信息可以包括虚拟机读写虚拟机镜像文件的内存地址,以及虚拟机的asid。基于此,硬盘控制器还可以获取安全处理器配置的虚拟机的asid,配置的虚拟机的asid与虚拟机的镜像加密密钥相对应,且虚拟机的asid与虚拟机在虚拟机内存空间中进行加解密的虚拟机加密密钥相绑定。在数据传输过程中,所述虚拟机加密密钥用于对读取到虚拟机内存空间的虚拟机镜像文件进行加密,以及对从虚拟机内存空间读出的虚拟机镜像文件进行解密,虚拟机内存空间中的虚拟机镜像文件保持以虚拟机加密密钥进行加密的加密状态。
119.在一些实施例中,上述数据传输信息包括dma信息,用于启动dma传输。
120.在进一步的一些实施例中,硬盘控制器在数据传输完毕后,可发送中断信息给虚拟机,以指示虚拟机镜像文件完成传输。
121.本技术实施例提供的方案能够保护虚拟机进行机密计算的环境,防止虚拟机的虚拟机镜像文件被恶意植入病毒或替换计算环境,提高了虚拟机在部署过程中的安全性和性能;并且本技术实施例实现了镜像加密密钥的自动注入,以及由硬件的密码协处理器实现镜像加密密钥的管理和使用,降低了用户使用复杂度和cpu开销,能够为虚拟机提供可靠的执行环境。
122.本技术实施例还提供一种安全处理器,安全处理器被配置为执行如上述说明的安
全处理器角度执行的虚拟机镜像保护方法。
123.本技术实施例还提供一种硬盘控制器,硬盘控制器被配置为执行如上述说明的硬盘控制器角度执行的虚拟机镜像保护方法。
124.本技术实施例还提供一种芯片,该芯片可以包括上述提供的安全处理器,以及上述提供的硬盘控制器。
125.需要说明的是,安全处理器和硬盘控制器的功能可参照前文描述,此处不再展开。在一些实施例中,本技术实施例提供的芯片的结构可以结合图3所示,进一步可以包括cpu、内存控制器、物理内存、硬盘等;芯片中各个器件的功能可以参照前文描述,此处不再展开。
126.本技术实施例还提供一种电子设备,该电子设备例如服务器设备,终端设备等。该电子设备可以包括上述提供的芯片。
127.上文描述了本技术实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本技术实施例披露、公开的实施例方案。
128.虽然本技术实施例披露如上,但本技术并非限定于此。任何本领域技术人员,在不脱离本技术的精神和范围内,均可作各种更动与修改,因此本技术的保护范围应当以权利要求所限定的范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献