本技术涉及计算机技术、信息安全,具体涉及一种结合虚拟可信平台模块技术与amd sev技术的可信机密虚拟机系统的实现方法。
背景技术:
1、随着计算机网络技术的迅猛发展,传统的本地计算模式难以满足日益增长的数据处理需求,越来越多的应用部署到云环境中。其中云虚拟机技术也被逐渐广泛应用。通过在云计算环境中为用户启动一台虚拟机,能够有效实现不同用户或不同工作负载的隔离。现有的安全方案多集中于保护静态数据,但在执行过程中,数据仍面临诸多安全威胁。针对以上问题,amd sev(secure encrypted virtualization)技术借助可信执行环境(trustedexecution environment,tee)提出了机密虚拟机(confidential virtual machine,cvm)的概念,这对于解决云计算虚拟化中的安全问题,提供了一种可行的方案,这也使得用户在云端部署虚拟机并上载机密数据进行运算成为了可能。但是,尽管cvm技术被广泛应用,但其内部用户工作负载的安全性并非绝对保障。在虚拟机初始化阶段,存在攻击者或不可信虚拟机管理程序注入恶意程序的风险,这直接威胁用户数据的保密性和完整性,增加数据泄露或窃取的可能性。这种风险不仅削弱了用户对cvm的信任,也抑制了用户将关键任务迁移到云端的意愿。为实现cvm对用户工作负载的有效保护,远程认证其可信性至关重要。amdsev技术提供了一种解决方案,通过度量和远程认证机制,使用户能够基于度量值验证cvm的可信度。然而,sev技术的度量范围限于cvm的初始化状态,若在启动或运行过程中遭遇恶意代码注入,其可信性将可能被破坏。
技术实现思路
1、鉴于上述问题,本发明提出一种结合虚拟可信平台模块技术与amd sev技术的可信机密虚拟机(cvm)系统的实现方法,该方法解决目前基于amd sev技术的机密虚拟机缺乏可信认证方案的问题,并且基于可信计算的工作负载可以无缝集成到该系统中,以支持基于可信计算的负载安全、高效的执行。
2、提供一种结合虚拟可信平台模块技术与amd sev技术的可信机密虚拟机(cvm)系统的实现方法,所述方法步骤包括:
3、步骤1,在用户信任的实体中部署tr-manager组件;
4、步骤2,在云节点中部署cn-tpmcvm组件,并初始化可信的虚拟可信平台模块;
5、步骤3,使用tr-manager和cn-tpmcvm组件可信启动amd sev机密虚拟机并生成完整的可信链。
6、进一步的,针对在用户信任的实体中部署tr-manager组件,步骤如下:
7、1)用户信任的实体对tr-manager进行静态度量,在安全的存储空间中存储度量值供用户远程认证;
8、2)创建一个新的密钥对作为根密钥:mrkpriv和mrkpub,由用户信任的实体的根密钥签名;
9、3)用户信任的实体请求证书颁发机构为mrkpriv和mrkpub颁发证书;
10、4)初始化两个特殊的存储结构:tpm-list和vm-list;
11、5)打开两个网络端口接收来自用户和来自虚拟可信平台模块的命令与响应。
12、进一步的,针对在云节点中部署cn-tpmcvm组件的过程,步骤如下:
13、1)tr-manager首先为cn-tpmcvm生成一个tpm-list表项,然后tr-manager创建并存储cn-tpmcvm根密钥对,并使用用户信任的实体的根密钥进行签名,然后请求证书颁发机构颁发证书;
14、2)tr-manager验证云节点的机密环境的证书链(amd sev的证书链);
15、3)tr-manager生成并存储tls密钥对和度量密钥,并请求ca颁发证书;
16、4)tr-manager创建一个cn-tpmcvm的最小化虚拟机镜像,并在其中嵌入tls密钥对和证书;
17、5)tr-manager创建一个虚拟机镜像密钥来加密该镜像并将镜像发送给云节点,启动cn-tpmcvm;
18、6)tr-manager获取并验证cn-tpmcvm的初始化度量值,并将其存储在tpm-list表项中;
19、7)tr-manager通过amd秘密注入方案将镜像密钥和度量密钥发送给cn-tpmcvm,cn-tpmcvm解密镜像并继续引导过程;
20、8)cn-tpmcvm中的cn-cdriver组件持续度量启动过程,使用度量密钥加密后传输给tr-manager;
21、9)tr-manager存储初始化测量并不断扩展引导度量;
22、10)tr-manager验证并将最终的引导度量存储在tpm-list表项中;
23、11)tr-manager启用tls密钥对,与cn-tpmcvm建立安全通信通道;
24、12)tr-manager将cn-tpmcvm的根密钥对和证书部署到cn-tpmcvm中。
25、进一步的,针对所述初始化可信的虚拟可信平台模块的过程,步骤如下:
26、1)cn-tpmcvm创建一个新的虚拟可信平台模块背书密钥对和一个证书;
27、2)cn-tpmcvm使用该组件的根密钥对虚拟可信平台模块背书密钥进行签名;
28、3)cn-tpmcvm为虚拟可信平台模块初始化一个计数器,并将计数器设置为0;
29、4)cn-tpmcvm为虚拟可信平台模块开放端口,准备接收命令。
30、进一步的,针对使用tr-manager和cn-tpmcvm组件可信启动amd sev机密虚拟机并生成完整的可信链,步骤如下:
31、1)tr-manager从需要启动的amd sev cvm的vm-list表项中获取虚拟机镜像,发送给虚拟化环境启动cvm;
32、2)tr-manager通过与云节点中的amd固件通信获取并验证cvm的初始化测量值;
33、3)tr-manager从该cvm对应的vm-list中获取并发送专属于该cvm的密钥(vm key)和tpm状态文件(tpm state file)给cn-tpmcvm;
34、4)tr-manager为本次启动过程生成虚拟可信平台模块和cvm中的cn-cdriver组件之间的会话密钥。然后,密钥通过两个安全通道分别发送给虚拟可信平台模块和cvm;
35、5)cn-tpmcvm使用vm key对tpm state file进行解密,并将解密后的文件发送给cn-tpmcvm中初始化的虚拟可信平台模块;
36、6)cn-tpmcvm请求tr-manager使用vm key计算cn-tpmcvm的启动度量值的hmac结果,即hmac(cn-tpmcvm启动度量值;vm key),并将结果扩展到虚拟可信平台模块的平台配置寄存器0(pcr0)中;
37、7)虚拟可信平台模块将cvm的初始化度量值扩展到pcr0中;
38、8)继续启动过程,虚拟可信平台模块将启动测量扩展到相应的pcr中。
39、本技术实施例的有益效果如下:
40、本技术实施例通过在用户信任的实体中部署的tr-manager组件,在不可信的云节点中部署cn-tpmcvm组件并托管用户可信赖的虚拟可信平台模块,为用户在云平台中部署可信的amd sev cvm,并构建cvm的完整可信链以及提供可信计算能力,确保用户在验证可信链后信任该cvm并可以利用本实施例提供的可信计算能力无缝的在cvm中部署基于可信计算的应用。由此,本技术实施例安全高效的实现了一种结合虚拟可信平台模块技术与amdsev技术的可信机密虚拟机(cvm)系统。
41、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
1.一种结合虚拟可信平台模块技术与amd sev技术的可信机密虚拟机系统的实现方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述在用户信任的实体中部署tr-manager组件,包括:
3.如权利要求1所述的方法,其特征在于,所述在云节点中部署cn-tpmcvm组件,并初始化可信的虚拟可信平台模块,所述方法包括:
4.如权利要求1所述的方法,其特征在于,所述使用tr-manager和cn-tpmcvm组件可信启动amd sev机密虚拟机并生成完整的可信链,所述方法包括:
5.一种结合虚拟可信平台模块技术与amd sev技术的可信机密虚拟机(cvm)系统,其特征在于,所述系统包括:
6.如权利要求5所述的系统,其特征在于,所述运行在用户信任的实体中的tr-manager组件,包括:
7.如权利要求5所述的系统,其特征在于,所述运行在不可信的云节点中的cn-tpmcvm组件,包括:
8.如权利要求5所述的系统,其特征在于,所述运行在cn-tpmcvm和用户的cvm的uefi和系统内核中的cn-cdriver组件,包括:
