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

文档序号:9631741阅读:来源:国知局
述SGX模块创建与所述第二创建请求指定νΤΡΜ实例对应的第二 enclave,以便在所述第二 enclave执行所述νΤΡΜ实例的程序代码来实现与所述第一 VM所对应的νΤΡΜ实例。
[0069]如图10所示,虚拟机管理器在创建第一虚拟机VM时触发创建νΤΡΜ实例的命令,然后使用第一通信秘钥对创建νΤΡΜ实例的命令进行加密,并将加密后的创建νΤΡΜ实例的命令发送给SGX模块,SGX模块接收到加密后的创建νΤΡΜ实例的命令之后,将其转发给在所述νΤΡΜ模拟器的第一 enclave中运行的第二 νΤΡΜ模拟器,第二 νΤΡΜ模拟器接收到创建ντΡΜ实例的命令之后,第二 νΤΡΜ模拟器使用所述第一通信秘钥对所述创建νΤΡΜ实例的命令解密,并且向载入操作系统中的SGX模块发送第二创建请求,SGX模块收到第二创建请求之后,建立所述νΤΡΜ实例的内存保护区域enclave,并将νΤΡΜ实例的程序代码载入所述νΤΡΜ实例的内存保护区域enclave,CPU可以将载入内存保护区域enclave的程序代码与预先提供的程序代码进行比较以确定载入的νΤΡΜ实例的程序代码的完整性,最后在内存保护区域enclave执行所述νΤΡΜ实例的程序代码。另外,第一 VM与在第二 enclave运行的vTPM实例之间通信的数据均经过SGX模块中间转发,SGX模块生成第二通信秘钥,第一VM与在第二 enclave运行的vTPM实例之间通信的数据均使用生成的第二通信秘钥进行加密或者解密。从而利用SGX模块以及内存保护区域enclave的硬件保护功能实现了 vTPM实例与不可信操作系统的安全隔离,保证了 νΤΡΜ实例的计算安全性。
[0070]需要说明的是,νΤΡΜ实例与对应的虚拟机VM绑定,并与对应虚拟机VM的生命周期保持一致,νΤΡΜ实例与虚拟机VM之间的信息传递通过SGX模块进行加密通信,并利用enclave指令实现。
[0071 ] 如图14所示,本发明实施例中的装置还可以包括vTPM实例,所述νΤΡΜ实例具体用于:
[0072]接收SGX模块转发的已加密的所述通信指令,所述通信指令由第一虚拟机VM触发、并使用第二通信秘钥对所述通信命令进行加密、再向SGX模块发送;使用所述第二通信秘钥对经过加密的所述通信指令进行解密,执行所述通信命令。
[0073]具体实现中,如图12所示,首先第一虚拟机VM触发νΤΡΜ实例通信指令,并且使用第二通信秘钥对然后将经过加密的通信指令发给SGX模块,SGX模块接收到通信指令之后,将经过加密的通信指令转发给νΤΡΜ实例,最后νΤΡΜ实例接收SGX模块转发的已加密的通信指令;在νΤΡΜ实例接收到已加密的通信指令之后,νΤΡΜ实例使用第二通信秘钥对经过加密的通信指令进行解密,进而执行通信命令。
[0074]如图14所示,本发明实施例中的装置还可以包括第一虚拟机VM,第一虚拟机VM具体用于:
[0075]接收用户触发的通信命令,使用第二通信秘钥对所述通信命令进行加密,并将经过加密的所述通信指令发送给SGX模块,以便所述SGX模块将经过加密的所述通信指令转发给νΤΡΜ实例,使得所述vTPM实例使用所述第二通信秘钥对经过加密的所述通信指令进行解密、执行所述通信命令、使用所述第二通信秘钥对执行结果加密、向所述SGX模块发送经过加密的所述执行结果;
[0076]使用所述第二通信秘钥对经过加密的所述执行结果进行解密,并得到所述执行结果Ο
[0077]具体的,如图12所示,首先第一虚拟机VM接收用户触发的通信命令,并且使用第二通信秘钥对通信命令进行加密,然后将经过加密的通信指令发送给SGX模块,SGX模块接收到经过加密的通信指令之后,将经过加密的通信指令转发给νΤΡΜ实例,在νΤΡΜ实例接收SGX模块转发的经过加密的通信指令之后,νΤΡΜ实例使用第二通信秘钥对经过加密的所述通信指令进行解密、并且执行通信命令,在执行通信命令确定执行结果之后,使用第二通信秘钥对执行结果进行加密、最后向SGX模块发送经过加密的执行结果;SGX模块接收经过加密的经过加密的执行结果,并将其转发给第一 VM,最后第一 VM接收到经过加密的执行结果之后,使用第二通信秘钥对经过加密的执行结果进行解密,并得到执行结果。从而利用构建vTPM实例的内存保护区域enclave时生成的秘钥加密通信数据,通过SGX模块构建的安全信道传递加密信息,实现了虚拟机VM与对应vTPM实例进行通信数据时与不可信操作系统的安全隔离,保证了 VM与νΤΡΜ实例通信的安全性。
[0078]请继续参考图15,为本发明计算机设备的一实施例结构示意图。如图15所示,该计算机设备包括处理器1501和接口电路1502,图中还给出了存储器1503和总线1504,该处理器1501、接口电路1502和存储器1503通过总线1504连接并完成相互间的通信。
[0079]其中,处理器1501用于:
[0080]向所述SGX模块发送第一创建请求,使得所述SGX模块根据所述第一创建请求建立第一内存保护区域enclave,生成第一通信秘钥,以便在所述第一 enclave中执行所述第一 vTPM模拟器的程序代码来实现第二 νΤΡΜ模拟器;
[0081]使用所述第一通信秘钥对所述SGX模块后续转发的数据解密。
[0082]可选的,处理器1501还用于:
[0083]接收所述SGX模块转发的创建νΤΡΜ实例的命令,所述创建νΤΡΜ实例的命令由所述虚拟机管理器在创建第一虚拟机VM时触发、并使用所述第一通信秘钥加密、再向所述SGX模块发送;
[0084]使用所述第一通信秘钥对所述创建νΤΡΜ实例的命令解密,根据所述创建νΤΡΜ实例的命令向所述SGX模块发送第二创建请求,所述第二创建请求指定的νΤΡΜ实例与所述创建νΤΡΜ实例的命令指定的第一 VM对应,使得所述SGX模块创建与所述第二创建请求指定vTPM实例对应的第二 enclave,以便在所述第二 enclave执行所述vTPM实例的程序代码来实现与所述第一 VM所对应的νΤΡΜ实例。
[0085]可选的,所述SGX模块生成第二通信秘钥,以便所述第一 VM与在所述第二 enclave运行的所述vTPM实例之间通信的数据均经过所述SGX模块中间转发,所述第一 VM与在所述第二 enclave运行的所述vTPM实例之间通信的数据均使用所述第二通信秘钥加密/解處
I_L| ο
[0086]其中,处理器1501还用于:
[0087]接收SGX模块转发的已加密的通信指令,所述通信指令由第一虚拟机VM触发、并使用第二通信秘钥对所述通信命令进行加密、再向SGX模块发送;
[0088]使用所述第二通信秘钥对经过加密的所述通信指令进行解密,执行所述通信命令。
[0089]其中,处理器1501还用于:
[0090]接收用户触发的通信命令,使用第二通信秘钥对所述通信命令进行加密,并将经过加密的所述通信指令发送给SGX模块,以便所述SGX模块将经过加密的所述通信指令转发给vTPM实例,使得所述vTPM实例使用所述第二通信秘钥对经过加密的所述通信指令进行解密、执行所述通信命令、使用所述第二通信秘钥对执行结果加密、向所述SGX模块发送经过加密的所述执行结果;
[0091]使用所述第二通信秘钥对经过加密的所述执行结果进行解密,并得到所述执行结果Ο
[0092]需要说明的是,这里的处理器1501可以是一个处理元件,也可以是多个处理元件的统称。例如,该处理元件可以是中央处理器(Central Processing Unit,CPU),也可以是特定集成电路(Applicat1n Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnalprocessor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。
[0093]存储器1503可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或应用程序运行装置运行所需要参数、数据等。且存储器1503可以包括随机存储器(RAM),也可以包括非易失性存储器(non-volatile memory),例如磁盘存储器,闪存(Flash)等。
[0094]总线1504 可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、夕卜部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。该总线1504可以分为地址总线、数据总线、控制总线等。为便于表示,图
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1