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

文档序号:9631741阅读:来源:国知局
隔离,保证了 νΤΡΜ模拟器的计算安全性。
[0018]在一个可能的设计中,第二 νΤΡΜ模拟器,用于接收SGX模块转发的创建νΤΡΜ实例的命令,创建νΤΡΜ实例的命令由虚拟机管理器在创建第一虚拟机VM时触发、并使用所述第一通信秘钥加密、再向SGX模块发送;
[0019]第二 νΤΡΜ模拟器,还用于使用第一通信秘钥对创建νΤΡΜ实例的命令解密,并且根据创建νΤΡΜ实例的命令向SGX模块发送第二创建请求,SGX模块接收到第二创建请求之后,创建与第二创建请求指定νΤΡΜ实例对应的第二 enclave,从而在创建的第二 enclave中执行νΤΡΜ实例的程序代码,进而来实现与第一 VM所对应的νΤΡΜ实例。在此创建过程中,第二创建请求指定的νΤΡΜ实例与创建νΤΡΜ实例的命令指定的第一 VM对应。从而利用SGX模块以及内存保护区域enclave的硬件保护功能实现了 νΤΡΜ实例与不可信操作系统的安全隔离,保证了 νΤΡΜ实例的计算安全性。
[0020]在另一个可能的设计中,第一 VM与在第二 enclave运行的νΤΡΜ实例之间通信的数据均经过SGX模块中间转发,SGX模块生成第二通信秘钥,第一 VM与在第二 enclave运行的νΤΡΜ实例之间通信的数据均使用生成的第二通信秘钥进行加密或者解密。
[0021]第五方面,本申请的实施例提供一种虚拟可信平台模块νΤΡΜ的可信执行装置,装置包括:
[0022]首先第一虚拟机VM用于触发νΤΡΜ实例通信指令,并且使用第二通信秘钥对然后将经过加密的通信指令发给SGX模块,SGX模块用于接收到通信指令,将经过加密的通信指令转发给νΤΡΜ实例,最后νΤΡΜ实例用于接收SGX模块转发的已加密的通信指令,并使用第二通信秘钥对经过加密的通信指令进行解密,进而执行通信命令。
[0023]第六方面,本申请的实施例提供一种虚拟可信平台模块νΤΡΜ的可信执行装置,装置包括:
[0024]首先第一虚拟机VM用于接收用户触发的通信命令,并且使用第二通信秘钥对通信命令进行加密,然后将经过加密的通信指令发送给SGX模块,SGX模块接收到经过加密的通信指令之后,将经过加密的通信指令转发给νΤΡΜ实例,νΤΡΜ实例用于接收SGX模块转发的经过加密的通信指令,并使用第二通信秘钥对经过加密的所述通信指令进行解密、并且执行通信命令,在执行通信命令确定执行结果之后,使用第二通信秘钥对执行结果进行加密、最后向SGX模块发送经过加密的执行结果;SGX模块接收经过加密的经过加密的执行结果,并将其转发给第一 VM,最后第一 VM接收到经过加密的执行结果之后,使用第二通信秘钥对经过加密的执行结果进行解密,并得到执行结果。从而利用构建νΤΡΜ实例的内存保护区域enclave时生成的秘钥加密通信数据,通过SGX模块构建的安全信道传递加密信息,实现了虚拟机VM与对应νΤΡΜ实例进行通信数据时与不可信操作系统的安全隔离,保证了 VM与ντΡΜ实例通信的安全性。
[0025]第七方面,本申请的实施例提供了一种计算机设备,计算机设备包括处理器和存储器,处理器与存储器通过总线连接;
[0026]存储器用于存储计算机执行指令,当所述计算机设备运行时,处理器执行存储器存储的计算机执行指令,计算机设备执行上述任一项虚拟可信平台模块νΤΡΜ的可信执行方法。
【附图说明】
[0027]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028]图1是现有技术方案中一种Xen做准虚拟化中的νΤΡΜ的架构示意图;
[0029]图2是现有技术方案中一种开源的系统虚拟化KVM中的νΤΡΜ的架构示意图;
[0030]图3是现有技术方案中一种基于固件的可信平台模块ΤΡΜ架构图;
[0031]图4是现有技术方案中一种νΤΡΜ模拟器和νΤΡΜ实例的不可信系统环境示意图;
[0032]图5是本发明实施例提出的一种虚拟可信平台模块νΤΡΜ的可信执行方法的流程示意图;
[0033]图6是本发明实施例提供的一种νΤΡΜ模拟器的内存保护区域enclave的构建示意图;
[0034]图7是本发明实施例提供的一种SGX模块与应用程序的交互示意图;
[0035]图8是本发明实施例提供的一种内存保护区域enclave的结构示意图;
[0036]图9是本发明另一实施例提出的一种虚拟可信平台模块νΤΡΜ的可信执行方法的流程示意图;
[0037]图10是本发明实施例提供的一种νΤΡΜ实例的内存保护区域enclave的构建示意图;
[0038]图11是本发明又一实施例提出的一种虚拟可信平台模块νΤΡΜ的可信执行方法的流程示意图;
[0039]图12是本发明实施例提供的一种虚拟机VM与对应νΤΡΜ实例进行通信时的示意图;
[0040]图13是本发明又一实施例提供的一种虚拟可信平台模块νΤΡΜ的可信执行方法的示意图;
[0041]图14是本发明实施例提供的一种虚拟可信平台模块νΤΡΜ的可信执行装置的结构示意图;
[0042]图15是本发明实施例提供的一种计算机设备的结构示意图。
【具体实施方式】
[0043]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]请参考图5,图5是本发明实施例提出的一种虚拟可信平台模块νΤΡΜ的可信执行方法的流程示意图。如图所示,所述方法包括:
[0045]S501,所述操作系统运行的第一 νΤΡΜ模拟器向所述SGX模块发送第一创建请求,使得所述SGX模块根据所述第一创建请求建立第一内存保护区域enclave,生成第一通信秘钥,以便在所述第一 enclave中执行所述第一 νΤΡΜ模拟器的程序代码来实现第二 νΤΡΜ模拟器。
[0046]S502,所述第二 νΤΡΜ模拟器使用所述第一通信秘钥对所述SGX模块后续转发的数据解密。
[0047]如图6所示,CPU支持Intel SGX架构,在装置系统初始化时,首先操作系统可以将CPU中的SGX模块载入操作系统中,启动运行第一 νΤΡΜ模拟器。此时虚拟机管理器(具有虚拟机最高管理权限)可以为第一 νΤΡΜ模拟器创建模拟器证书,该模拟器证书为根据第一νΤΡΜ模拟器的Hash值以及服务器硬件公钥生成得到的第一 νΤΡΜ模拟器的身份标志。然后第一 νΤΡΜ模拟器向SGX模块申请创建νΤΡΜ模拟器的第一内存保护区域enclave,SGX模块收到创建命令之后执行创建命令,分配第一内存保护区域enclave,并将第一 νΤΡΜ模拟器的程序代码载入第一内存保护区域enClaVe,CPU可以将载入第一内存保护区域enclave的程序代码与预先提供的程序代码进行比较以确定载入的第一 νΤΡΜ模拟器的程序代码的完整性,最后在第一内存保护区域enclave执行第一 νΤΡΜ模拟器的程序代码来实现第二 νΤΡΜ模拟器。另外,SGX模块根据所述第一创建请求建立所述第一内存保护区域enclave之后,可以创建第一通信秘钥,第二 νΤΡΜ模拟器可以使用第一通信秘钥对所述SGX模块后续转发的数据解密。其中,第一 νΤΡΜ模拟器和第二 νΤΡΜ模拟器可以单独运行,也可以协同运行执行相关的通信命令。
[0048]需要说明的是,SGX模块是对CPU架构的一种扩展,为应用程序的安全执行提供硬件保护。这种扩展允许用户模式的应用程序在应用程序的虚拟地址空间内创建一块内存保护区域enclave,其中,结合加密技术和内存的硬件隔离技术,硬件为enclave提供机密性和完整性保护,使之既能对抗恶意特权软件,如能对抗被入侵的主机操作系统或恶意虚拟机监视器的攻击,又能抵抗对内存的物理攻击,如内存探测等。SGX模块对Intel架构指令集和内存访问方式做出一些修改,以允许进程创建一块受保护的内存区域enclave,enclave可保护运行于其中的程序代码不受恶意特权代码和硬件攻击的侵害。如图7所示,图7是一种SGX模块与应用程序的交互示意图。其中,enclave具有如下特征:(1)具有自己的代码和数据;(2)提供机密性保护;(3)提供完整性保护;(4)具有可控的入口点;(5)支持多线程;(6)对应用程序内存具有最高访问权限。如图8所示,图8是一种内存保护区域enclave的结构示意图。其中,TCS(Thread Control Structure)保存着进入或退
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1