CN109756492B - 基于sgx的云平台可信执行方法、装置、设备及介质 - Google Patents
基于sgx的云平台可信执行方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN109756492B CN109756492B CN201811630847.2A CN201811630847A CN109756492B CN 109756492 B CN109756492 B CN 109756492B CN 201811630847 A CN201811630847 A CN 201811630847A CN 109756492 B CN109756492 B CN 109756492B
- Authority
- CN
- China
- Prior art keywords
- etpm
- instance
- trusted
- virtual machine
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明适用信息安全技术领域,提供了一种基于SGX的云平台可信执行方法、装置、设备及介质,该方法包括:用户请求加载相应eTPM实例,在eTPM实例初始化和启动后用户和eTPM实例进行相互认证,认证通过后由eTPM实例解密、度量、启动虚拟机镜像,虚拟机启动后和eTPM实例建立会话,通过eTPM进行密钥相关可信执行,用户需要关闭虚拟机时,发送请求给eTPM实例,由eTPM实例对虚拟机镜像进行加密存储,从而提高了云平台可信执行的安全性。
Description
技术领域
本发明属于信息安全技术领域,尤其涉及一种基于SGX的云平台可信执行方法、装置、设备及介质。
背景技术
云计算技术的高速发展和广泛应用为人们带来极大的便利,同时也对信息安全提出了新的挑战,恶意程序、不可靠的底层云环境等潜在威胁使得近年来云用户数据泄露事件频发,对于信息社会而言,“信息”是至关重要的,云安全保护措施必不可少。
可信计算技术为计算平台增加可信平台模块(TPM,Trusted Platform Module),能够提供软、硬件保护机制,从完整性保护的角度为平台提供保障。将虚拟化技术同可信计算结合,创建虚拟化可信平台模块(vTPM,Virtual Trusted Platform Module),建立可信云平台,是当前的研究热点,vTPM架构通过构建自底而上的信任链与证书链,从而保护云平台和用户端的完整性。
Tal Garfinkel等提出可信结构Terra,构建可信虚拟监控器(TVMM,TrustedVirtual Machine Monitor),但Terra可信基(TCB,Trusted Computing Base)过大且只提供底层保护。Berger等提出了TPM虚拟化的方法,能够将物理TPM映射成多个vTPM,为虚拟机提供完整性保障。Stumpf F提出一种可信虚拟平台构建方案,在功能上实现了vTPM和TPM的绑定以及平台证书链的构建。虽然vTPM架构能够建立vTPM与虚拟机的绑定关系,但其配置文件以明文形式存在,易被篡改和造成信息泄露,并且vTPM实例并没有考虑运行时保护。主流的虚拟化平台包括Xen、KVM都对vTPM具有良好的支持,然而目前的vTPM主要是基于TPM1.2的标准,使得vTPM存在摘要算法(SHA1)安全强度低、密钥的证书种类繁多、管理困难等问题。鹤荣育等人提出面向云用户的μTPM方案,为用户提供策略配置能力,在功能上使得虚拟化TPM实例更适用于云环境,但同样未能提供μTPM的运行时保护。
Intel于2013年在ISCA会议中提出了intel SGX(Software Guard Extension)的概念和原理。Intel SGX是Intel指令集架构(ISA,Instruction Set Architecture)的扩展,主要提供了一些指令用于创建一个可信执行环境(TEE,trusted executionenvironment)Enclave,增强软件的安全性,这种技术将软件的敏感操作和数据封装在一个隔离域enclave中,CPU保护其不受内存攻击,非特权和特权软件都无法访问enclave。严飞等人提出基于SGX的vTPM增强方案vTSE,在KVM平台中将vTPM实例放入隔离域enclave中运行,对非易失性存储文件和vTPM运行时状态提供了保护。但Intel SGX技术最大支持128M的安全内存空间,该方案将vTPM库整体加载入enclave中执行会导致vTPM实例运行数量受限,且未考虑vTPM密钥算法强度低等问题。
因此,目前的vTPM方案存在以下问题:(1)vTPM与VM的绑定关系依靠明文配置文件,易被篡改和攻击;(2)vTPM实例运行时没有内存保护机制,攻击者能够通过内存攻击获取vTPM运行时的敏感数据,从而给vTPM以及用户造成威胁;(3)vTPM数量繁多,其本身的完整性难以在云平台中通过单一的TPM得到度量;(4)vTPM算法安全强度低,密钥和证书种类繁多,管理困难。
发明内容
本发明的目的在于提供一种基于SGX的云平台可信执行方法、装置、设备及介质,旨在解决由于现有技术无法提供一种有效的云平台可信执行方法,导致云平台可信执行不安全的问题。
一方面,本发明提供了一种基于SGX的云平台可信执行方法,所述方法包括下述步骤:
当接收用户发送的加载eTPM实例的执行请求时,通过预设的云平台服务器将所述执行请求发送给所述eTPM实例对应的eTPM外部应用程序,其中,所述eTPM实例包括eTPM外部应用程序和eTPM内部可信库;
通过所述eTPM外部应用程序根据所述执行请求对所述eTPM实例对应的eTPM内部可信库进行初始化;
当检测到所述用户启动与所述eTPM实例对应的用户虚拟机的启动请求时,通过所述eTPM内部可信库通知所述eTPM外部应用程序启动所述用户虚拟机;
当所述用户虚拟机启动后,所述用户虚拟机根据预设的可信库调用接口和外部应用调用接口与所述eTPM实例进行可信交互操作;
当所述eTPM外部应用程序接收到对所述用户虚拟机的关闭请求时,通过所述eTPM外部应用程序关闭所述eTPM内部可信库,并发送关闭验证结果给所述用户,以关闭所述用户虚拟机,完成云平台可信执行过程。
另一方面,本发明提供了一种基于SGX的云平台可信执行装置,所述装置包括:
执行请求发送单元,用于当接收用户发送的加载eTPM实例的执行请求时,通过预设的云平台服务器将所述执行请求发送给所述eTPM实例对应的eTPM外部应用程序,其中,所述eTPM实例包括eTPM外部应用程序和eTPM内部可信库;
eTPM初始化单元,用于通过所述eTPM外部应用程序根据所述执行请求对所述eTPM实例对应的eTPM内部可信库进行初始化;
虚拟机启动单元,用于当检测到所述用户启动与所述eTPM实例对应的用户虚拟机的启动请求时,通过所述eTPM内部可信库通知所述eTPM外部应用程序启动所述用户虚拟机;
可信交互单元,用于当所述用户虚拟机启动后,所述用户虚拟机根据预设的可信库调用接口和外部应用调用接口与所述eTPM实例进行可信交互操作;以及
虚拟机关闭单元,用于当所述eTPM外部应用程序接收到对所述用户虚拟机的关闭请求时,通过所述eTPM外部应用程序关闭所述eTPM内部可信库,并发送关闭验证结果给所述用户,以关闭所述用户虚拟机,完成云平台可信执行过程。
另一方面,本发明还提供了一种计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述基于SGX的云平台可信执行方法所述的步骤。
另一方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于SGX的云平台可信执行方法所述的步骤。
本发明用户请求加载相应eTPM实例,在eTPM实例初始化和启动后用户和eTPM实例进行相互认证,认证通过后由eTPM实例解密、度量、启动虚拟机镜像,虚拟机启动后和eTPM实例建立会话,通过eTPM进行密钥相关可信执行,用户需要关闭虚拟机时,发送请求给eTPM实例,由eTPM实例对虚拟机镜像进行加密存储,从而提高了云平台可信执行的安全性。
附图说明
图1是本发明实施例一提供的基于SGX的云平台可信执行方法的实现流程图;
图2是本发明实施例二提供的基于SGX的云平台可信执行装置的结构示意图;
图3是本发明实施例三提供的基于SGX的云平台可信执行装置的结构示意图;以及
图4是本发明实施例四提供的计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明实施例一提供的基于SGX的云平台可信执行方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在步骤S101中,当接收用户发送的加载eTPM实例的执行请求时,通过预设的云平台服务器将执行请求发送给eTPM实例对应的eTPM外部应用程序,其中,eTPM实例包括eTPM外部应用程序和eTPM内部可信库。
本发明实施例适用于计算设备,例如,个人计算机、服务器等。在本发明实施例中,用户向预设的云平台服务器发送加载指定的eTPM(enclave-TPM)实例的执行请求,该执行请求中包括由预设的会话密钥加密的用户身份证书和预设的随机数,当云平台服务器接收到该执行请求后,云平台服务器将该执行请求发送给eTPM实例对应的eTPM外部应用程序,其中,eTPM实例包括eTPM外部应用程序(eTPM(Untrusted))和eTPM内部可信库(eTPM(Trusted)),eTPM(Untrusted)包括I/O(输入/输出)、逻辑处理等内容,运行于内存隔离域enclave外部,eTPM(Trusted)由敏感代码、敏感数据以及密钥模块等构成,运行于enclave内部。
在通过预设的云平台服务器将所述执行请求发送给所述eTPM实例对应的eTPM外部应用程序之前,优选地,通过SGX平台构建eTPM实例,并根据预设的反映该eTPM实例安全属性等级的安全版本号(SVN,Security Version Number)、用于区分其他enclave程序的产品ID和签名密钥对生成eTPM实例对应的自签名证书(SIGSTRUCT),其中,该自签名证书包含eTPM度量(measurement)属性,该自签名证书还包含经过加密处理的eTPM用户公钥、SVN、产品ID等信息,通过该自签名证书将eTPM实例和对应的用户虚拟机进行身份绑定,从而提高访问eTPM实例的安全性。
在通过该自签名证书将eTPM实例和对应的用户虚拟机进行身份绑定时,优选地,eTPM实例采用基于身份密封的Enclave密封策略将敏感数据进行密封,被密封的敏感数据只能在对应身份标识的eTPM实例中解密,每个eTPM实例具备不同的密封身份,当前eTPM实例无法解密其他用户虚拟机的密封数据,从而实现了eTPM实例和用户敏感数据之间的绑定,使得恶意用户无法通过滥用eTPM实例窃取其他用户敏感数据。
在通过SGX平台构建eTPM实例时,优选地,使用intel提供的SGX可信密码库SGX_tservice构建eTPM实例的多个密码相关模块,以建立基于SGX安全技术的各项安全机制,其中,密码相关模块包括:SHA-256引擎模块、RSA引擎模块、AES引擎模块、验证模块以及I/O通道等,SHA-256引擎模块用于进行哈希计算以产生32字节摘要值作为完整性度量结果,RSA引擎模块用于产生签名和存储密钥的,且支持3072位模数的RSA密钥,AES引擎模块用于通过AES对称算法建立会话,验证模块用于负责对完整性度量结果的验证和报告,I/O通道主要负责eTPM实例与用户的命令和消息交换,以及eTPM(Trusted)和eTPM(Untrusted)的交互,从而简化了传统TPM功能,并提高了密码相关模块中密码算法的安全强度。
在通过自签名证书将eTPM实例和对应的用户虚拟机进行身份绑定之后,优选地,根据eTPM、DomU(非权限域)以及上层应用程序(App)的顺序建立以eTPM实例为信任根的上层平台信任链,并建立以TPM为信任根的底层平台信任链,以根据底层平台信任链,通过TPM对CRTM/BIOS、GRUB、XEN Hypervisor(Xen管理程序)以及Dom0(权限域)进行逐级度量,其中,eTPM实例将TPM底层平台信任链度量结果由eTPM实例内部的验证模块进行验证计算,将验证结果反馈给用户虚拟机,由此进行信任传递,从而避免了用户直接接收底层平台度量数据而造成底层平台隐私泄露的问题。
在步骤S102中,通过eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化。
在本发明实施例中,当eTPM外部应用程序接收到云平台服务器发送的执行请求时,eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化。
在通过eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化时,优选地,过SGX驱动在特权域Dom0中创建一个内存隔离域EPC(Enclave PageCache),该EPC是加密的,并将eTPM(Trusted)载入到该EPC中,再通过CPU对eTPM实例进行身份完整性验证,当验证通过后,通过eTPM(Untrusted)根据执行请求对eTPM(Trusted)进行初始化,从而使得eTPM实例中的敏感信息可以与普通内存空间进行隔离,保护eTPM实例运行过程中敏感信息的机密性。
在通过CPU对eTPM实例进行身份完整性验证时,优选地,CPU对该eTPM实例进行度量,产生256位散列值并存储在MRENCLAVE寄存器中,CPU将MRENCLAVE中的该散列值与该eTPM实例的自签名证书(SIGSTRUCT)中的eTPM度量属性(measurement)进行比较,当比较的结果一致,则表明该eTPM实例对应的eTPM(Trusted)正确载入EPC中,并且该eTPM实例是可信的,从而通过CPU对eTPM实例进行度量和验证能够保证eTPM实例自身的完整性。
在通过eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化之后,优选地,CPU在MRSIGNER寄存器中记录该eTPM实例的自签名证书(SIGSTRUCT)中的eTPM用户公钥对应的散列,以此作为eTPM用户身份,并将MRSIGNER值和自签名证书(SIGSTRUCT)中的产品ID绑定到密封密钥中,以实现只有当eTPM用户身份与MRSIGNER寄存器值相符并具有相同的产品ID才能通过该eTPM实例解封密封的数据,从而实现多用户虚拟机之间的密封密钥不能混用,提高密封数据的安全性。
在通过eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化之后,又一优选地,eTPM(Untrusted)通过预设的可信库调用接口(ECALL)将该执行请求发送给eTPM(Trusted),eTPM(Trusted)通过执行请求中的用户身份证书对用户身份进行验证,并将验证结果和由会话密钥加密的随机数返回给eTPM(Untrusted),eTPM(Untrusted)将该验证结果和随机数转发给平台签署组件QE(Quoting Enclave),QE对验证结果进行认证,并将验证结果转化为quote签名,再对quote签名和由会话密钥加密的随机数用EPID(Enhanced Privacy ID)进行签名,并将EPID签名结果返回给eTPM(Untrusted),再通过eTPM(Untrusted)发送给用户,用户收到该EPID签名结果后可对eTPM实例进行验证,从而实现了用户对eTPM实例的远程认证机制,提高了对用户身份验证以及eTPM实例验证的严密程度。
在步骤S103中,当检测到用户启动与eTPM实例对应的用户虚拟机的启动请求时,通过eTPM内部可信库通知eTPM外部应用程序启动用户虚拟机。
在本发明实施例中,用户向eTPM(Untrusted)请求启动与eTPM实例对应的用户虚拟机,当eTPM(Untrusted)检测到该启动请求时,该启动请求中包含虚拟机镜像(vm.img),eTPM(Untrusted)将该启动请求发送给eTPM(Trusted),eTPM(Trusted)对用户镜像进行解密、度量以及验证,当验证通过后,通过预设的外部应用调用接口(OCALL)通知eTPM(Untrusted)启动用户虚拟机,并转发由会话密钥加密的随机数给虚拟机。
在用户虚拟机启动后,优选地,用户虚拟机发送由会话密钥加密的启动成功信号和随机数给eTPM(Untrusted),eTPM(Untrusted)通过预设的可信库调用接口(ECALL)将该启动成功信号和随机数发送给eTPM(Trusted),eTPM(Trusted)验证该启动成功信号后,结束启动用户虚拟机的启动函数,并返回结果给eTPM(Untrusted),eTPM(Untrusted)进入等待指令的状态,从而降低内存的消耗,进而提高内存利用率。
在步骤S104中,当用户虚拟机启动后,用户虚拟机根据预设的可信库调用接口和外部应用调用接口与eTPM实例进行可信交互操作。
在本发明实施例中,当用户虚拟机启动后,用户虚拟机根据预设的可信库调用接口和外部应用调用接口与eTPM实例进行可信交互操作,具体地,当用户需要使用eTPM实例时,用户通过用户虚拟机发送请求和由会话密钥加密的执行参数给eTPM(Untrusted),eTPM(Untrusted)通过可信库调用接口(ECALL)调用eTPM(Trusted)相关函数,进行可信执行,可信执行期间,eTPM(Trusted)可发出外部应用调用接口(OCALL)至eTPM(Untrusted),进行输入/输出(I/O)等交互操作,从而提高用户与eTPM实例之间可信交互操作的安全性。
在步骤S105中,当eTPM外部应用程序接收到对用户虚拟机的关闭请求时,通过eTPM外部应用程序关闭eTPM内部可信库,并发送关闭验证结果给用户,以关闭用户虚拟机,完成云平台可信执行过程。
在本发明实施例中,当用户准备关闭用户虚拟机时,用户通过用户虚拟机发送关机请求给eTPM(Untrusted),当eTPM(Untrusted)接收到该关闭请求时,eTPM(Untrusted)通过可信库调用接口(ECALL)通知eTPM(Trusted)对虚拟机镜像进行加密,eTPM(Trusted)对虚拟机镜像加密后,返回由会话密钥加密的关闭验证结果给eTPM(Untrusted),eTPM(Untrusted)通过预设的关闭指令对eTPM(Trusted)进行关闭,并发送关闭验证结果给用户,以关闭用户虚拟机,完成云平台可信执行过程。
在本发明实施例中,用户请求加载相应eTPM实例,在eTPM实例初始化和启动后用户和eTPM实例进行相互认证,认证通过后由eTPM实例解密、度量、启动虚拟机镜像,虚拟机启动后和eTPM实例建立会话,通过eTPM进行密钥相关可信执行,用户需要关闭虚拟机时,发送请求给eTPM实例,由eTPM实例对虚拟机镜像进行加密存储,从而提高了云平台可信执行的安全性。
实施例二:
图2示出了本发明实施例二提供的基于SGX的云平台可信执行装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
执行请求发送单元21,用于当接收用户发送的加载eTPM实例的执行请求时,通过预设的云平台服务器将执行请求发送给eTPM实例对应的eTPM外部应用程序,其中,eTPM实例包括eTPM外部应用程序和eTPM内部可信库。
本发明实施例适用于计算设备,例如,个人计算机、服务器等。在本发明实施例中,用户向预设的云平台服务器发送加载指定的eTPM(enclave-TPM)实例的执行请求,该执行请求中包括由预设的会话密钥加密的用户身份证书和预设的随机数,当云平台服务器接收到该执行请求后,云平台服务器将该执行请求发送给eTPM实例对应的eTPM外部应用程序,其中,eTPM实例包括eTPM外部应用程序(eTPM(Untrusted))和eTPM内部可信库(eTPM(Trusted)),eTPM(Untrusted)包括I/O、逻辑处理等内容,运行于内存隔离域enclave外部,eTPM(Trusted)由敏感代码、敏感数据以及密钥模块等构成,运行于enclave内部。
eTPM初始化单元22,用于通过eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化。
在本发明实施例中,当eTPM外部应用程序接收到云平台服务器发送的执行请求时,eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化。
在通过eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化之后,优选地,CPU在MRSIGNER寄存器中记录该eTPM实例的自签名证书(SIGSTRUCT)中的eTPM用户公钥对应的散列,以此作为eTPM用户身份,并将MRSIGNER值和自签名证书(SIGSTRUCT)中的产品ID绑定到密封密钥中,以实现只有当eTPM用户身份与MRSIGNER寄存器值相符并具有相同的产品ID才能通过该eTPM实例解封密封的数据,从而实现多用户虚拟机之间的密封密钥不能混用,提高密封数据的安全性。
在通过eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化之后,又一优选地,eTPM(Untrusted)通过预设的可信库调用接口(ECALL)将该执行请求发送给eTPM(Trusted),eTPM(Trusted)通过执行请求中的用户身份证书对用户身份进行验证,并将验证结果和由会话密钥加密的随机数返回给eTPM(Untrusted),eTPM(Untrusted)将该验证结果和随机数转发给平台签署组件QE(Quoting Enclave),QE对验证结果进行认证,并将验证结果转化为quote签名,再对quote签名和由会话密钥加密的随机数用EPID(Enhanced Privacy ID)进行签名,并将EPID签名结果返回给eTPM(Untrusted),再通过eTPM(Untrusted)发送给用户,用户收到该EPID签名结果后可对eTPM实例进行验证,从而实现了用户对eTPM实例的远程认证机制,提高了对用户身份验证以及eTPM实例验证的严密程度。
虚拟机启动单元23,用于当检测到用户启动与eTPM实例对应的用户虚拟机的启动请求时,通过eTPM内部可信库通知eTPM外部应用程序启动用户虚拟机。
在本发明实施例中,用户向eTPM(Untrusted)请求启动与eTPM实例对应的用户虚拟机,当eTPM(Untrusted)检测到该启动请求时,该启动请求中包含虚拟机镜像(vm.img),eTPM(Untrusted)将该启动请求发送给eTPM(Trusted),eTPM(Trusted)对用户镜像进行解密、度量以及验证,当验证通过后,通过预设的外部应用调用接口(OCALL)通知eTPM(Untrusted)启动用户虚拟机,并转发由会话密钥加密的随机数给虚拟机。
在用户虚拟机启动后,优选地,用户虚拟机发送由会话密钥加密的启动成功信号和随机数给eTPM(Untrusted),eTPM(Untrusted)通过预设的可信库调用接口(ECALL)将该启动成功信号和随机数发送给eTPM(Trusted),eTPM(Trusted)验证该启动成功信号后,结束启动用户虚拟机的启动函数,并返回结果给eTPM(Untrusted),eTPM(Untrusted)进入等待指令的状态,从而降低内存的消耗,进而提高内存利用率。
可信交互单元24,用于当用户虚拟机启动后,用户虚拟机根据预设的可信库调用接口和外部应用调用接口与eTPM实例进行可信交互操作。
在本发明实施例中,当用户虚拟机启动后,用户虚拟机根据预设的可信库调用接口和外部应用调用接口与eTPM实例进行可信交互操作,具体地,当用户需要使用eTPM实例时,用户通过用户虚拟机发送请求和由会话密钥加密的执行参数给eTPM(Untrusted),eTPM(Untrusted)通过可信库调用接口(ECALL)调用eTPM(Trusted)相关函数,进行可信执行,可信执行期间,eTPM(Trusted)可发出外部应用调用接口(OCALL)至eTPM(Untrusted),进行输入/输出(I/O)等交互操作,从而提高用户与eTPM实例之间可信交互操作的安全性。
虚拟机关闭单元25,用于当eTPM外部应用程序接收到对用户虚拟机的关闭请求时,通过eTPM外部应用程序关闭eTPM内部可信库,并发送关闭验证结果给用户,以关闭用户虚拟机,完成云平台可信执行过程。
在本发明实施例中,当用户准备关闭用户虚拟机时,用户通过用户虚拟机发送关机请求给eTPM(Untrusted),当eTPM(Untrusted)接收到该关闭请求时,eTPM(Untrusted)通过可信库调用接口(ECALL)通知eTPM(Trusted)对虚拟机镜像进行加密,eTPM(Trusted)对虚拟机镜像加密后,返回由会话密钥加密的关闭验证结果给eTPM(Untrusted),eTPM(Untrusted)通过预设的关闭指令对eTPM(Trusted)进行关闭,并发送关闭验证结果给用户,以关闭用户虚拟机,完成云平台可信执行过程。
在本发明实施例中,基于SGX的云平台可信执行装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。
实施例三:
图3示出了本发明实施例三提供的基于SGX的云平台可信执行装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
eTPM构建单元31,用于通过SGX平台构建eTPM实例,并根据预设的安全版本号、产品ID和签名密钥对生成eTPM实例对应的自签名证书,其中,自签名证书包含eTPM度量属性;
身份绑定单元32,用于通过自签名证书将eTPM实例和对应的用户虚拟机进行身份绑定;
信任链建立单元33,用于根据eTPM、DomU以及上层应用程序的顺序建立以eTPM实例为信任根的上层平台信任链,并建立以TPM为信任根的底层平台信任链,以根据底层平台信任链,通过TPM对CRTM/BIOS、GRUB、XEN Hypervisor以及Dom0进行逐级度量;
执行请求发送单元34,用于当接收用户发送的加载eTPM实例的执行请求时,通过预设的云平台服务器将执行请求发送给eTPM实例对应的eTPM外部应用程序,其中,eTPM实例包括eTPM外部应用程序和eTPM内部可信库;
eTPM初始化单元35,用于通过eTPM外部应用程序根据执行请求对eTPM实例对应的eTPM内部可信库进行初始化;
虚拟机启动单元36,用于当检测到用户启动与eTPM实例对应的用户虚拟机的启动请求时,通过eTPM内部可信库通知eTPM外部应用程序启动用户虚拟机;
可信交互单元37,用于当用户虚拟机启动后,用户虚拟机根据预设的可信库调用接口和外部应用调用接口与eTPM实例进行可信交互操作;以及
虚拟机关闭单元38,用于当eTPM外部应用程序接收到对用户虚拟机的关闭请求时,通过eTPM外部应用程序关闭eTPM内部可信库,并发送关闭验证结果给用户,以关闭用户虚拟机,完成云平台可信执行过程。
其中,优选地,eTPM初始化单元35包括:
完整性验证单元351,用于将eTPM内部可信库载入到预先创建的内存隔离域中,并通过CPU对eTPM实例进行身份完整性验证;以及
初始化子单元352,用于当验证通过后,通过eTPM外部应用程序根据执行请求对eTPM内部可信库进行初始化。
在本发明实施例中,基于SGX的云平台可信执行装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。具体地,各单元的实施方式可参考前述实施例一的描述,在此不再赘述。
实施例四:
图4示出了本发明实施例四提供的计算设备的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
本发明实施例的计算设备4包括处理器40、存储器41以及存储在存储器41中并可在处理器40上运行的计算机程序42。该处理器40执行计算机程序42时实现上述基于SGX的云平台可信执行方法实施例中的步骤,例如图1所示的步骤S101至S105。或者,处理器40执行计算机程序42时实现上述各装置实施例中各单元的功能,例如图2所示单元21至25的功能。
在本发明实施例中,用户请求加载相应eTPM实例,在eTPM实例初始化和启动后用户和eTPM实例进行相互认证,认证通过后由eTPM实例解密、度量、启动虚拟机镜像,虚拟机启动后和eTPM实例建立会话,通过eTPM进行密钥相关可信执行,用户需要关闭虚拟机时,发送请求给eTPM实例,由eTPM实例对虚拟机镜像进行加密存储,从而提高了云平台可信执行的安全性。
本发明实施例的计算设备可以为个人计算机、服务器。该计算设备4中处理器40执行计算机程序42时实现基于SGX的云平台可信执行方法时实现的步骤可参考前述方法实施例的描述,在此不再赘述。
实施例五:
在本发明实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述基于SGX的云平台可信执行方法实施例中的步骤,例如,图1所示的步骤S101至S105。或者,该计算机程序被处理器执行时实现上述各装置实施例中各单元的功能,例如图2所示单元21至25的功能。
在本发明实施例中,用户请求加载相应eTPM实例,在eTPM实例初始化和启动后用户和eTPM实例进行相互认证,认证通过后由eTPM实例解密、度量、启动虚拟机镜像,虚拟机启动后和eTPM实例建立会话,通过eTPM进行密钥相关可信执行,用户需要关闭虚拟机时,发送请求给eTPM实例,由eTPM实例对虚拟机镜像进行加密存储,从而提高了云平台可信执行的安全性。
本发明实施例的计算机可读存储介质可以包括能够携带计算机程序代码的任何实体或装置、记录介质,例如,ROM/RAM、磁盘、光盘、闪存等存储器。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于SGX的云平台可信执行方法,其特征在于,所述方法包括下述步骤:
当接收用户发送的加载eTPM(enclave Trusted Platform Module)实例的执行请求时,通过预设的云平台服务器将所述执行请求发送给所述eTPM实例对应的eTPM外部应用程序,其中,所述eTPM实例包括eTPM外部应用程序和eTPM内部可信库;
通过所述eTPM外部应用程序根据所述执行请求对所述eTPM实例对应的eTPM内部可信库进行初始化;
当检测到所述用户启动与所述eTPM实例对应的用户虚拟机的启动请求时,通过所述eTPM内部可信库通知所述eTPM外部应用程序启动所述用户虚拟机;
当所述用户虚拟机启动后,所述用户虚拟机根据预设的可信库调用接口和外部应用调用接口与所述eTPM实例进行可信交互操作;
当所述eTPM外部应用程序接收到对所述用户虚拟机的关闭请求时,通过所述eTPM外部应用程序关闭所述eTPM内部可信库,并发送关闭验证结果给所述用户,以关闭所述用户虚拟机,完成云平台可信执行过程。
2.如权利要求1所述的方法,其特征在于,通过预设的云平台服务器将所述执行请求发送给所述eTPM实例对应的eTPM外部应用程序的步骤之前,所述方法还包括:
通过SGX平台构建eTPM实例,并根据预设的安全版本号、产品ID和签名密钥对生成所述eTPM实例对应的自签名证书,其中,所述自签名证书包含eTPM度量属性;
通过所述自签名证书将所述eTPM实例和对应的用户虚拟机进行身份绑定。
3.如权利要求2所述的方法,其特征在于,通过所述自签名证书将所述eTPM实例和对应的用户虚拟机进行身份绑定的步骤之后,所述方法还包括:
根据eTPM、DomU以及上层应用程序的顺序建立以所述eTPM实例为信任根的上层平台信任链,并建立以TPM为信任根的底层平台信任链,以根据所述底层平台信任链,通过所述TPM对CRTM/BIOS、GRUB、XEN Hypervisor以及Dom0进行逐级度量。
4.如权利要求1所述的方法,其特征在于,通过所述eTPM外部应用程序根据所述执行请求对所述eTPM实例对应的eTPM内部可信库进行初始化的步骤,包括:
将所述eTPM内部可信库载入到预先创建的内存隔离域中,并通过CPU对所述eTPM实例进行身份完整性验证;
当验证通过后,通过所述eTPM外部应用程序根据所述执行请求对所述eTPM内部可信库进行初始化。
5.一种基于SGX的云平台可信执行装置,其特征在于,所述装置包括:
执行请求发送单元,用于当接收用户发送的加载eTPM(enclave Trusted PlatformModule)实例的执行请求时,通过预设的云平台服务器将所述执行请求发送给所述eTPM实例对应的eTPM外部应用程序,其中,所述eTPM实例包括eTPM外部应用程序和eTPM内部可信库;
eTPM初始化单元,用于通过所述eTPM外部应用程序根据所述执行请求对所述eTPM实例对应的eTPM内部可信库进行初始化;
虚拟机启动单元,用于当检测到所述用户启动与所述eTPM实例对应的用户虚拟机的启动请求时,通过所述eTPM内部可信库通知所述eTPM外部应用程序启动所述用户虚拟机;
可信交互单元,用于当所述用户虚拟机启动后,所述用户虚拟机根据预设的可信库调用接口和外部应用调用接口与所述eTPM实例进行可信交互操作;以及
虚拟机关闭单元,用于当所述eTPM外部应用程序接收到对所述用户虚拟机的关闭请求时,通过所述eTPM外部应用程序关闭所述eTPM内部可信库,并发送关闭验证结果给所述用户,以关闭所述用户虚拟机,完成云平台可信执行过程。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
eTPM构建单元,用于通过SGX平台构建eTPM实例,并根据预设的安全版本号、产品ID和签名密钥对生成所述eTPM实例对应的自签名证书,其中,所述自签名证书包含eTPM度量属性;以及
身份绑定单元,用于通过所述自签名证书将所述eTPM实例和对应的用户虚拟机进行身份绑定。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
信任链建立单元,用于根据eTPM、DomU以及上层应用程序的顺序建立以所述eTPM实例为信任根的上层平台信任链,并建立以TPM为信任根的底层平台信任链,以根据所述底层平台信任链,通过所述TPM对CRTM/BIOS、GRUB、XEN Hypervisor以及Dom0进行逐级度量。
8.如权利要求5所述的装置,其特征在于,所述eTPM初始化单元包括:
完整性验证单元,用于将所述eTPM内部可信库载入到预先创建的内存隔离域中,并通过CPU对所述eTPM实例进行身份完整性验证;以及
初始化子单元,用于当验证通过后,通过所述eTPM外部应用程序根据所述执行请求对所述eTPM内部可信库进行初始化。
9.一种计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811630847.2A CN109756492B (zh) | 2018-12-28 | 2018-12-28 | 基于sgx的云平台可信执行方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811630847.2A CN109756492B (zh) | 2018-12-28 | 2018-12-28 | 基于sgx的云平台可信执行方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109756492A CN109756492A (zh) | 2019-05-14 |
CN109756492B true CN109756492B (zh) | 2021-05-14 |
Family
ID=66404354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811630847.2A Active CN109756492B (zh) | 2018-12-28 | 2018-12-28 | 基于sgx的云平台可信执行方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109756492B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138799B (zh) * | 2019-05-30 | 2020-07-17 | 东北大学 | 一种基于sgx的安全云存储方法 |
CN111475782B (zh) * | 2020-04-08 | 2022-11-08 | 浙江大学 | 基于sgx软件扩展指令的api密钥保护方法及系统 |
CN111683052A (zh) * | 2020-05-13 | 2020-09-18 | 国网山东省电力公司 | 基于租户身份信息的可信虚拟机vTPM私密信息保护方法、系统 |
EP3989478B1 (en) * | 2020-10-22 | 2023-10-18 | Moxa Inc. | Computing system and device for handling a chain of trust |
CN112395631B (zh) * | 2020-11-27 | 2022-09-20 | 上海交通大学 | 基于sgx技术的安全数据库系统、方法及介质 |
CN113329012B (zh) * | 2021-05-28 | 2022-07-26 | 交叉信息核心技术研究院(西安)有限公司 | 一种可信执行环境的快速认证方法及系统 |
CN114268507B (zh) * | 2021-12-30 | 2023-12-05 | 天翼物联科技有限公司 | 一种基于sgx的网络云安全优化方法、系统及相关介质 |
CN114327791B (zh) * | 2022-03-03 | 2022-06-10 | 阿里云计算有限公司 | 基于虚拟化的可信计算度量方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574415A (zh) * | 2015-12-08 | 2016-05-11 | 中电科华云信息技术有限公司 | 一种基于信任根的虚拟机安全管理方法 |
EP3139268A4 (en) * | 2014-05-26 | 2017-08-16 | Huawei Technologies Co. Ltd. | Virtual trusted platform module function realization method and management device |
CN108733453A (zh) * | 2018-05-11 | 2018-11-02 | 国网信息通信产业集团有限公司 | 可信云平台虚拟可信根实例的操作方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8839363B2 (en) * | 2011-04-18 | 2014-09-16 | Bank Of America Corporation | Trusted hardware for attesting to authenticity in a cloud environment |
-
2018
- 2018-12-28 CN CN201811630847.2A patent/CN109756492B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3139268A4 (en) * | 2014-05-26 | 2017-08-16 | Huawei Technologies Co. Ltd. | Virtual trusted platform module function realization method and management device |
CN105574415A (zh) * | 2015-12-08 | 2016-05-11 | 中电科华云信息技术有限公司 | 一种基于信任根的虚拟机安全管理方法 |
CN108733453A (zh) * | 2018-05-11 | 2018-11-02 | 国网信息通信产业集团有限公司 | 可信云平台虚拟可信根实例的操作方法及系统 |
Non-Patent Citations (4)
Title |
---|
"VTPM: Virtualizing the trusted platform module";Stefan Berger;《https://www.researchgate.net/publication/228701767》;20060731;全文 * |
"一种可信虚拟平台底层环境验证方案";孙浩男;《计算机应用与软件》;20180831;全文 * |
"云计算下虚拟环境安全的关键技术研究";武少杰;《中国优秀硕士学位论文全文数据库》;20140615;全文 * |
"基于虚拟机的云计算可信安全技术研究基于虚拟机的云计算可信安全技术研究基于虚拟机的云计算可信安全技术研究基于虚拟机的云计算可信安全技术研究";季涛;《万方》;20140122;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109756492A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756492B (zh) | 基于sgx的云平台可信执行方法、装置、设备及介质 | |
Wang et al. | Enabling security-enhanced attestation with Intel SGX for remote terminal and IoT | |
CN105745661B (zh) | 对权限管理的内容的基于策略的受信任的检测 | |
CN103069428B (zh) | 不可信云基础设施中的安全虚拟机引导 | |
Danev et al. | Enabling secure VM-vTPM migration in private clouds | |
KR100737628B1 (ko) | 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션 | |
CN105718807B (zh) | 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法 | |
Alder et al. | Migrating SGX enclaves with persistent state | |
KR20040094724A (ko) | 멀티-토큰 실 및 실 해제 | |
US11436305B2 (en) | Method and system for signing an artificial intelligence watermark using implicit data | |
US11727115B2 (en) | Secured computer system | |
Ménétrey et al. | An exploratory study of attestation mechanisms for trusted execution environments | |
WO2016045458A1 (zh) | 一种安全控制方法及网络设备 | |
Fan et al. | An improved vTPM-VM live migration protocol | |
US11775692B2 (en) | Method and system for encrypting data using a kernel | |
Noubir et al. | Trusted code execution on untrusted platforms using Intel SGX | |
US10192047B2 (en) | Provisioning of identity information | |
Pop et al. | Secure migration of WebAssembly-based mobile agents between secure enclaves | |
Khan et al. | A protocol for preventing insider attacks in untrusted infrastructure-as-a-service clouds | |
Hao et al. | Trusted block as a service: Towards sensitive applications on the cloud | |
Brasser et al. | Softer Smartcards: Usable Cryptographic Tokens with Secure Execution | |
CN105933123A (zh) | 一种kvm虚拟机通信方法 | |
Xiang et al. | Dynamic measurement protocol in infrastructure as a service | |
Severinsen | Secure programming with intel sgx and novel applications | |
US11537689B2 (en) | Method and system for signing an artificial intelligence watermark using a kernel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |