一种虚拟可信平台模块vTPM的可信执行方法和装置的制造方法

文档序号:9631741阅读:304来源:国知局
一种虚拟可信平台模块vTPM的可信执行方法和装置的制造方法
【技术领域】
[0001]本发明涉及电子技术领域,尤其涉及一种虚拟可信平台模块νΤΡΜ的可信执行方法和装置。
【背景技术】
[0002]由于虚拟化技术具有合理的资源共享、良好的隔离机制、易维护和低成本等优点,因而虚拟化技术得到了应用广泛,但虚拟机技术也面临着诸如数据安全存储、敏感信息保护和完整性度量等问题。可信计算技术的目标是为计算机系统建立安全验证体系,嵌入到物理设备主板上的TPM (Trusted Platform Module,可信平台模块)可以为计算机系统提供基于硬件的可信度量、可信证明和可信封装等安全功能。因此,将虚拟化与可信计算相结合,是技术发展的必然结果。其中,vTPM(Virtual Trusted Platform Module,虚拟可信平台模块)是TPM虚拟化的一种实现方式,它为运行在主机上的多个虚拟机提供可信计算功能,并可以借助νΤΡΜ获取虚拟机的完整性度量信息,实现虚拟机数据的安全存储,以解决硬件虚拟化快速发展带来的安全问题。
[0003]不同虚拟化方式下的νΤΡΜ实现方式不同。图1是Xen做准虚拟化中的νΤΡΜ的架构示意图,图2是KVM(Kernel-based Virtual Machine,开源的系统虚拟化)中的νΤΡΜ的架构示意图。创建带νΤΡΜ的虚拟机时,νΤΡΜ模拟器为每个新创建的虚拟机创建并分配一个νΤΡΜ实例,创建流程如下:(1)新建虚拟机时,首先判断收到的命令是否要求创建带νΤΡΜ的虚拟机,若不要求,则进行正常虚拟机创建流程;(2)若要求创建带νΤΡΜ的虚拟机,则解析此命令后将创建νΤΡΜ实例的请求转发给νΤΡΜ模拟器;(3) νΤΡΜ模拟器创建新νΤΡΜ实例,为其分配保存永久性信息的NVRAM (Non-Volatile Random Access Memory,非易失性随机访问存储器)文件和运行νΤΡΜ的内存空间;(4)将新建的νΤΡΜ实例与新建的虚拟机绑定,使之一一对应;(5)继续创建虚拟机的其它步骤,至虚拟机创建完成。
[0004]在现有技术方案中,如图3所示,图3是一种基于固件的可信平台模块TPM(fTPM)架构图。fTPM可以确保安全代码执行时被隔离,以防止各种各样的潜在安全违背,在实现隔离时无需使用专用安全处理器硬件。一般而言,fTPM首先在操作系统引导环境中通过从系统固件或固件可访问的存储器中读取fTPM,并且将fTPM置于设备的受保护的只读存储器中来实例化,一旦被实例化,fTPM就启用隔离操作以确保安全代码执行。具体地,fTPM被置于受保护的只读存储器,使得该设备能够使用诸如体系结构的TrustZoneTM扩展类的硬件、安全原语(类似处理器体系结构)以及基于这些体系结构的设备,从而在fTPM内提供安全执行隔离,而无需对现有设备进行硬件修改。
[0005]但是,目前TPM的发展还不支持硬件虚拟化,当前的νΤΡΜ都是基于软件实现,如TPM Emulator、libtpms库等,它们未受到硬件保护,易受攻击。在Xen架构的νΤΡΜ服务端运行在特权级domainO中时,具有管理员权限的攻击者可能利用domainO的特权获得对主机上其它虚拟机对应的νΤΡΜ内存的访问权,篡改或删除其数据或代码,从而破坏相应虚拟机的信任基础。硬件ΤΡΜ的密钥相关计算过程之所以可信,是因为它们都在封闭的硬件内部执行,不会被泄露和篡改;但软件实现的νΤΡΜ的密钥产生与加解密过程都在主机内存中实现,如图4所示,νΤΡΜ模拟器和νΤΡΜ实例的内存中被植入恶意代码时,密钥就可能被泄露出去,这就造成了极大的安全问题。因此如何保护不可信系统环境中νΤΡΜ执行过程的可信性以及保证νΤΡΜ内存中密钥相关计算过程的安全性,是一个亟需解决的问题。

【发明内容】

[0006]本申请提供一种虚拟可信平台模块νΤΡΜ的可信执行方法和装置。可以提高在不可信系统环境中νΤΡΜ执行过程的可信性以及保证νΤΡΜ内存中密钥相关计算过程的安全性。
[0007]第一方面,本申请的实施例提供一种虚拟可信平台模块νΤΡΜ的可信执行方法,方法包括:
[0008]在操作系统中运行有第一 νΤΡΜ模拟器,首先操作系统将SGX模块加载到操作系统中,然后第一 νΤΡΜ模拟器向加载到操作系统中的SGX模块发送第一创建请求,SGX模块接收到第一创建请求之后,根据第一创建请求建立第一内存保护区域enclave,并且生成第一通信秘钥,最后在第一内存保护区域enclave创建成功之后,在其中执行第一 νΤΡΜ模拟器的程序代码,从而来实现第二 νΤΡΜ模拟器,并且第二 νΤΡΜ模拟器可以使用之前生成得到的第一通信秘钥对SGX模块后续转发的数据解密。从而利用SGX模块以及内存保护区域enclave的硬件保护功能实现了 νΤΡΜ模拟器与不可信操作系统的安全隔离,保证了 νΤΡΜ模拟器的计算安全性。
[0009]在一个可能的设计中,虚拟机管理器在创建第一虚拟机VM时触发创建νΤΡΜ实例的命令,然后使用第一通信秘钥对创建νΤΡΜ实例的命令进行加密,并将加密后的创建νΤΡΜ实例的命令发送给SGX模块,SGX模块接收到加密后的创建νΤΡΜ实例的命令之后,将其转发给在所述第一 enclave中运行的第二 νΤΡΜ模拟器;
[0010]第二 νΤΡΜ模拟器接收到加密后的创建νΤΡΜ实例的命令之后,使用第一通信秘钥对创建νΤΡΜ实例的命令进行解密,并且根据创建νΤΡΜ实例的命令向SGX模块发送第二创建请求,SGX模块接收到第二创建请求之后,创建与第二创建请求指定νΤΡΜ实例对应的第二 enclave,从而在创建的第二 enclave中执行νΤΡΜ实例的程序代码,进而来实现与第一VM所对应的νΤΡΜ实例。在此创建过程中,第二创建请求指定的νΤΡΜ实例与创建νΤΡΜ实例的命令指定的第一 VM对应。从而利用SGX模块以及内存保护区域enclave的硬件保护功能实现了 νΤΡΜ实例与不可信操作系统的安全隔离,保证了 νΤΡΜ实例的计算安全性。
[0011]在另一个可能的设计中,第一 VM与在第二 enclave运行的νΤΡΜ实例之间通信的数据均经过SGX模块中间转发,SGX模块生成第二通信秘钥,第一 VM与在第二 enclave运行的νΤΡΜ实例之间通信的数据均使用生成的第二通信秘钥进行加密或者解密。
[0012]第二方面,本申请的实施例提供一种虚拟可信平台模块νΤΡΜ的可信执行方法,方法包括:
[0013]首先第一虚拟机VM触发νΤΡΜ实例通信指令,并使用第二通信秘钥对发νΤΡΜ实例通信指令进行加密,然后将经过加密的通信指令发送给SGX模块,SGX模块接收到通信指令之后,将经过加密的通信指令转发给νΤΡΜ实例,最后νΤΡΜ实例接收SGX模块转发的已加密的通信指令,并使用第二通信秘钥对经过加密的通信指令进行解密,进而执行通信命令。
[0014]第三方面,本申请的实施例提供一种虚拟可信平台模块νΤΡΜ的可信执行方法,方法包括:
[0015]首先第一虚拟机VM接收用户触发的通信命令,并使用第二通信秘钥对通信命令进行加密,然后将经过加密的通信指令发送给SGX模块,SGX模块接收到经过加密的通信指令之后,将经过加密的通信指令转发给νΤΡΜ实例,在νΤΡΜ实例接收到SGX模块转发的经过加密的通信指令之后,νΤΡΜ实例使用第二通信秘钥对经过加密的通信指令进行解密,并且执行通信命令,在执行通信命令确定执行结果之后,使用第二通信秘钥对执行结果进行加密,最后向SGX模块发送经过加密的执行结果;SGX模块接收经过加密的执行结果,并将其转发给第一 VM,最后第一 VM接收到经过加密的执行结果之后,使用第二通信秘钥对经过加密的执行结果进行解密,并得到执行结果。从而利用构建νΤΡΜ实例的内存保护区域enclave时生成的秘钥加密通信数据,通过SGX模块构建的安全信道传递加密信息,实现了虚拟机VM与对应νΤΡΜ实例进行通信数据时与不可信操作系统的安全隔离,保证了 VM与νΤΡΜ实例通信的安全性。
[0016]第四方面,本申请的实施例提供一种虚拟可信平台模块νΤΡΜ的可信执行装置,操作系统加载SGX模块,操作系统运行有第一 νΤΡΜ模拟器,装置包括:
[0017]操作系统运行的第一 νΤΡΜ模拟器,用于向SGX模块发送第一创建请求,SGX模块接收到第一创建请求之后,根据第一创建请求建立第一内存保护区域enclave,并且生成第一通信秘钥,最后在第一内存保护区域enclave创建成功之后,在其中执行第一 νΤΡΜ模拟器的程序代码,从而来实现第二 νΤΡΜ模拟器,并且第二 νΤΡΜ模拟器可以使用之前生成得到的第一通信秘钥对SGX模块后续转发的数据解密。从而利用SGX模块以及内存保护区域enclave的硬件保护功能实现了 νΤΡΜ模拟器与不可信操作系统的安全
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1