CN117453343A - 虚拟机度量、机密计算认证方法、设备、系统及存储介质 - Google Patents
虚拟机度量、机密计算认证方法、设备、系统及存储介质 Download PDFInfo
- Publication number
- CN117453343A CN117453343A CN202311332315.1A CN202311332315A CN117453343A CN 117453343 A CN117453343 A CN 117453343A CN 202311332315 A CN202311332315 A CN 202311332315A CN 117453343 A CN117453343 A CN 117453343A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- secure virtual
- secure
- measurement result
- information
- 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.)
- Pending
Links
- 238000005259 measurement Methods 0.000 title claims abstract description 261
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000004364 calculation method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 47
- 238000000691 measurement method Methods 0.000 claims abstract description 14
- 239000003999 initiator Substances 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 31
- 230000000977 initiatory effect Effects 0.000 claims description 22
- 239000003795 chemical substances by application Substances 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 6
- 230000001737 promoting effect Effects 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 241001026509 Kata Species 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012252 genetic analysis Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种虚拟机度量、机密计算认证方法、设备、系统及存储介质,其中虚拟机度量方法包括:在创建安全虚拟机的过程中,安全处理器对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果;其中,安全虚拟机部署于机密计算服务端设备,安全处理器通过创建安全虚拟机,以完成安全虚拟机的启动;在安全虚拟机的运行过程中,安全处理器对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果;其中,启动度量结果和程序运行度量结果用于机密计算环境认证,机密计算环境以安全虚拟机为单位构建。本申请实施例可以提升虚拟机度量的结果全面性,为提升机密计算认证的全面性提供基础。
Description
技术领域
本申请实施例涉及机密计算技术领域,具体涉及一种虚拟机度量、机密计算认证方法、设备、系统及存储介质。
背景技术
机密计算是一种在受信任的硬件基础上,结合固件和软件构建密态、隔离、可认证的机密计算环境,保证机密计算环境内数据机密性、完整性、代码完整性以及运算过程机密性的计算模式。机密计算在金融数据融合、区块链智能合约、基因分析、云服务等场景下具有广泛应用。为保障机密计算的安全性,需要对机密计算环境的合法性进行认证,认证机密计算环境的合法性称为机密计算环境认证(简称机密计算认证)。
机密计算认证可以通过认证机密计算环境的身份信息实现,在以虚拟机构建机密计算环境的情况下,机密计算环境的身份信息可以通过虚拟机度量实现;虚拟机度量是指对虚拟机的信息进行度量,以得到度量结果。因此,如何提供虚拟机度量方案,以提升虚拟机度量的结果全面性,从而为提升机密计算认证的全面性提供基础,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种虚拟机度量、机密计算认证方法、设备、系统及存储介质,以提升虚拟机度量的结果全面性,从而为提升机密计算认证的全面性提供基础。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种虚拟机度量方法,应用于安全处理器,所述安全处理器设置于机密计算服务端设备,所述方法包括:
在创建安全虚拟机的过程中,对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果;其中,安全虚拟机部署于机密计算服务端设备,安全处理器通过创建安全虚拟机,以完成安全虚拟机的启动;
在安全虚拟机的运行过程中,对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果;
其中,所述启动度量结果和所述程序运行度量结果用于机密计算环境认证,机密计算环境以安全虚拟机为单位构建。
第二方面,本申请实施例提供一种机密计算认证方法,应用于机密计算服务端设备,所述方法包括:
获取远程证明发起端设备发送的报告请求;
响应于所述报告请求,生成证明报告,并将安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中;其中,安全虚拟机部署于机密计算服务端设备,机密计算环境以安全虚拟机为单位构建;
将所述证明报告发送给远程证明发起端设备,以用于认证机密计算环境的合法性。
第三方面,本申请实施例提供一种机密计算认证方法,应用于远程证明服务端设备,所述方法包括:
获取远程证明发起端设备发送的证明报告,所述证明报告携带有机密计算环境的身份信息,所述机密计算环境的身份信息携带有安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果;其中,安全虚拟机部署于机密计算服务端设备,机密计算环境以安全虚拟机为单位构建;
认证证明报告中的机密计算环境的身份信息是否合法,生成机密计算环境的认证结果;
将认证结果发送给远程证明发起端设备。
第四方面,本申请实施例提供一种机密计算服务端设备,包括:安全处理器、主机系统软件、以及安全虚拟机;
所述主机系统软件,用于在安全虚拟机启动时,调用安全处理器创建安全虚拟机;以及,在安全虚拟机完成启动时,调用安全虚拟机的运行指令,以使得安全虚拟机运行;其中,安全处理器通过创建安全虚拟机,以完成安全虚拟机的启动;
所述安全虚拟机,用于在运行过程中,加载用于运行应用程序的程序运行相关信息,并且向安全处理器发送通知命令;
所述安全处理器,用于在创建安全虚拟机的过程中,受主机系统软件的调用,对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果;以及在安全虚拟机的运行过程中,基于安全虚拟机的通知命令,对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果;
其中,所述启动度量结果和所述程序运行度量结果用于机密计算环境认证,机密计算环境以安全虚拟机为单位构建。
第五方面,本申请实施例提供一种机密计算服务端设备,包括:安全处理器以及安全虚拟机,其中,机密计算环境以安全虚拟机为单位构建;
所述安全虚拟机,用于接收远程证明发起端设备发送给机密计算服务端设备的报告请求,将所述报告请求转发给安全处理器;以及,接收安全处理器发送的证明报告,将证明报告发送给远程证明发起端设备,以用于认证机密计算环境的合法性;
所述安全处理器,用于响应于所述报告请求,生成证明报告,并将安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中;将所述证明报告发送给所述安全虚拟机。
第六方面,本申请实施例提供一种机密计算系统,包括:远程证明发起端设备、机密计算服务端设备和远程证明服务端设备;
其中,所述远程证明发起端设备为具有机密计算认证需求的参与角色所对应的电子设备;
所述机密计算服务端设备为机密计算服务端所对应的电子设备,机密计算服务端包括机密计算服务提供方和/或机密计算平台提供方;所述机密计算服务端设备被配置为执行如上述第一方面所述的虚拟机度量方法,或者,如上述第二方面所述的机密计算认证方法;
所述远程证明服务端设备为可信实体所对应的电子设备,所述远程证明服务端设备被配置为执行如上述第三方面所述的机密计算认证方法。
第七方面,本申请实施例提供一种存储介质,所述存储介质存储有一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如上述第一方面所述的虚拟机度量方法,或者,如上述第二方面所述的机密计算认证方法,或者,如上述第三方面所述的机密计算认证方法。
本申请实施例提供的虚拟机度量方法可由安全处理器执行,在机密计算环境以安全虚拟机为单位构建的情况下,安全处理器可以通过创建安全虚拟机,以完成安全虚拟机的启动,从而在安全处理器创建安全虚拟机的过程中,安全处理器可以对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果;在安全虚拟机启动后,安全虚拟机进入运行阶段,在安全虚拟机的运行过程中,安全虚拟机可以通过加载用于运行应用程序的程序运行相关信息,从而实现应用程序在安全虚拟机的运行;进而,安全处理器可以在安全虚拟机的运行过程中,对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果。
可见,在本申请实施例中,安全处理器可以在创建安全虚拟机的过程中,确定安全虚拟机启动时的启动度量结果,以及在安全虚拟机的运行过程中,确定安全虚拟机运行时的程序运行度量结果,提升虚拟机度量的结果全面性。安全处理器所确定的启动度量结果和程序运行度量结果可用于机密计算环境认证,为机密计算环境认证能够认证安全虚拟机的合法性、以及安全虚拟机运行的应用程序的合法性提供基础,从而为提升机密计算认证的全面性提供基础。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为机密计算的参与角色的示例图。
图2为机密计算系统的示例图。
图3为机密计算服务端设备的架构示例图。
图4为本申请实施例提供的虚拟机度量方法的流程图。
图5为本申请实施例提供的虚拟机度量方法的另一流程图。
图6为本申请实施例提供的机密计算认证方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解机密计算,图1示例性的示出了机密计算的参与角色的示例图,如图1所示,机密计算的参与角色主要分为机密计算服务提供方、机密计算平台提供方、算法提供方、数据提供方和计算结果需求方。
其中,机密计算服务提供方主要负责提供机密计算服务,机密计算服务提供方也提供机密计算服务的管理功能,例如支持算法程序的录入与发布。
机密计算平台提供方主要负责提供机密计算环境所依赖的可信软硬件、以及机密计算服务提供方所使用的接口(比如集成在机密计算平台内部的信任根、可信执行环境等),并建立实现完整的度量存储报告机制。
算法提供方主要负责提供需要在机密计算环境中运行的算法程序,算法程序与计算结果需求方的需求描述相符。
数据提供方主要负责提供机密计算的计算数据。
计算结果需求方主要负责提供计算需求给机密计算服务提供方或者直接使用机密计算平台执行机密计算,以获得相应的计算结果;计算结果需求方提供的计算需求例如需要运行的算法程序、算法程序运行时需要计算的计算数据等。
机密计算的每个参与角色可以由一个或多个实体(实体例如个人或机构)担任,针对不同的机密计算服务和部署模式,上述多个参与角色中的部分参与角色也可以由同一实体担任。
机密计算需要建立参与角色之间的相互信任,如果参与角色之间不能建立所需的信任关系,则存在计算结果不可信、算力被错误使用、数据权益被侵害等风险。基于此,机密计算服务提供方和/或机密计算平台提供方,需要向其他参与角色证明机密计算环境的合法性,即进行机密计算认证,以证明机密计算环境可被信任。
为便于理解,图2示例性的示出了机密计算系统的示例图,如图2所示,机密计算系统可以包括:机密计算服务端设备210、远程证明发起端设备220、以及远程证明服务端设备230。
机密计算服务端设备210可以是机密计算服务端所对应的电子设备,机密计算服务端可以包括机密计算服务提供方和/或机密计算平台提供方。电子设备的形式例如服务器设备等。
远程证明发起端设备220可以是具有机密计算认证需求的参与角色所对应的电子设备。例如,算法提供方、数据提供方、计算结果需求方所对应的电子设备。
远程证明发起端设备220在具有机密计算认证需求时,可以向机密计算服务端设备210发起要求证明报告的报告请求。例如,算法提供方在提供算法程序之前,需要认证机密计算环境的合法性,此时,算法提供方可以通过远程证明发起端设备,向机密计算服务端设备发起报告请求。又例如,数据提供方在提供计算数据之前,需要认证机密计算环境的合法性,此时,数据提供方可以通过远程证明发起端设备,向机密计算服务端设备发起报告请求。再例如,计算结果需求方在提供计算需求之前,需要认证机密计算环境的合法性,此时,计算结果需求方可以通过远程证明发起端设备,向机密计算服务端设备发起报告请求。
机密计算服务端设备210在获得远程证明发起端设备220发起的报告请求后,可以将携带机密计算环境的身份信息的证明报告,反馈给远程证明发起端设备220;进而,远程证明发起端设备220可以将携带证明报告的认证请求,传递给远程证明服务端设备230。
远程证明服务端设备230可以是认证机密计算环境的身份信息是否合法的电子设备。例如,远程证明服务端设备230可以对证明报告进行认证(比如认证证明报告携带的机密计算环境的身份信息是否合法),以得出机密计算认证的认证结果,并将认证结果反馈回远程证明发起端设备220。
远程证明服务端设备230可以是可选的可信实体(例如第三方可信实体)所对应的电子设备。在一些实现中,远程证明发起端设备220和远程证明服务端设备230也可以相集成,例如集成为远端设备。
通过上文介绍可以看出,机密计算认证用于认证机密计算环境的合法性,是机密计算必备的功能之一。并且机密计算认证通过认证证明报告的方式实现,例如,通过认证证明报告携带的机密计算环境的身份信息是否合法,以得出机密计算认证的认证结果。
随着虚拟化技术的发展,机密计算服务端设备可以利用虚拟化技术虚拟化出多台虚拟机,以高效利用机密计算服务端设备的硬件资源。虚拟化出的虚拟机可在机密计算服务端设备的内存中分配虚拟机内存,每台虚拟机的虚拟机内存主要用于任务消耗及支持虚拟化。出于对虚拟机内存的安全保护,安全虚拟化技术应运而生;通过安全虚拟化技术可对部分或所有虚拟机的虚拟机内存进行加密,而且不同虚拟机的虚拟机内存通过不同的虚拟机密钥进行加密,即使主机系统软件也无法访问虚拟机密钥,从而防止虚拟机的虚拟机内存中的数据被非法访问和篡改,提升虚拟机数据的安全性。
为便于理解,基于安全虚拟化技术,图3示例性的示出了机密计算服务端设备的架构示例图,如图3所示,机密计算服务端设备可以包括:处理器310,内存控制器320,内存330和安全处理器340。
处理器310例如CPU(Central Processing Unit,中央处理器),处理器310可通过软件形式配置主机系统软件311,主机系统软件例如VMM(Virtual Machine Monitor,虚拟机监视器);并且处理器310可以通过虚拟化技术虚拟化出多台虚拟机312,该多台虚拟机可由主机系统软件(例如VMM)进行内存管理,比如由VMM管理虚拟机在内存330中分配的虚拟机内存。
内存控制器320是控制内存330,并且使内存330与处理器310之间交换数据的硬件。内存330的部分或全部空间可作为为虚拟机分配的虚拟机内存。
安全处理器340是安全虚拟化技术设置的负责数据安全的处理器;主机系统软件(例如VMM)可配置与安全处理器相通信的API(Application Programming Interface,应用程序编程接口),实现主机系统软件与安全处理器间的数据交互。同时,内存控制器320可配置加解密引擎321,加解密引擎321可存储对虚拟机内存进行加解密的虚拟机密钥,并且不同虚拟机的虚拟机内存使用不同的虚拟机密钥进行加解密。
在安全虚拟化技术中,安全处理器340可以为虚拟机分配和管理虚拟机密钥,从而安全处理器340可通过加解密引擎321使用虚拟机的虚拟机密钥,对在虚拟机的虚拟机内存中读、写的数据进行加解密,以实现虚拟机的数据安全隔离。
需要说明的是,安全虚拟化技术可以为虚拟化的所有虚拟机均配置虚拟机密钥,也可以为虚拟化的部分虚拟机配置虚拟机密钥。其中,配置虚拟机密钥,并且虚拟机内存被加密保护的虚拟机可称为安全虚拟机,即具有虚拟机密钥进行数据加密保护的虚拟机可称为安全虚拟机,而未配置虚拟机密钥的虚拟机可称为普通虚拟机。
基于安全虚拟化技术和机密计算技术,机密计算服务端设备可以以安全虚拟机为单位构建机密计算环境,例如,以安全虚拟机为单位构建TEE(Trusted ExecutionEnvironment,可信执行环境),TEE可以视为是机密计算环境的一种示例。在此情况下,可以通过度量安全虚拟机,来得到安全虚拟机的度量结果,从而将安全虚拟机的度量结果携带在机密计算环境的身份信息中,进而机密计算认证可以通过认证安全虚拟机的度量结果是否合法,以实现认证机密计算环境的身份信息是否合法,从而得出机密计算认证的认证结果。
在以安全虚拟机为单位构建机密计算环境的情况下,虽然可以通过认证安全虚拟机的度量结果是否合法来实现机密计算认证,但是安全虚拟机的度量结果的合法性表示的是安全虚拟机的身份合法性,并不能够表示安全虚拟机运行的应用程序的合法性(安全虚拟机运行的应用程序可以实现算法提供方等参与角色提供的算法程序),这导致机密计算认证的全面性较低,不能满足数据提供方等参与角色对于计算数据的隐私计算等场景的安全性要求。在计算数据的隐私计算场景下,计算数据例如数据提供方提供的隐私数据等。
在一个示例中,机密计算环境可以通过运行应用程序(运行在机密计算环境中的应用程序可以称为机密计算程序),以实现算法提供方提供的算法程序;从而,在以安全虚拟机为单位构建机密计算环境的情况下,安全虚拟机可以运行应用程序,以实现算法提供方提供的算法程序。然而,数据提供方和算法提供方可能是不同的实体,数据提供方需要在认证算法程序是合法的情况下,才会提供计算数据;也就是说,在证明安全虚拟机运行的应用程序是合法,不会泄露数据的情况下,数据提供方才会提供计算数据。此时,如果单纯以安全虚拟机的度量结果进行机密计算认证,则不能够证明安全虚拟机运行的应用程序的合法性,从而难以获得数据提供方的信任,导致难以满足数据提供方等参与角色对于计算数据的隐私计算等场景的安全性要求。
基于机密计算服务端设备以安全虚拟机为单位构建机密计算环境,本申请实施例可以通过认证安全虚拟机以及安全虚拟机运行的应用程序的合法性,实现机密计算认证,从而提升机密计算认证的全面性,进而为提升机密计算的安全性提供基础。
基于上述思路,本申请的发明人考虑在机密计算服务端设备提供的证明报告中携带机密计算环境的身份信息,并且机密计算环境的身份信息携带安全虚拟机启动时的启动度量结果、以及安全虚拟机运行时的程序运行度量结果,从而通过安全虚拟机启动时的启动度量结果、以及安全虚拟机运行时的程序运行度量结果,实现认证安全虚拟机以及安全虚拟机运行的应用程序的合法性,提升机密计算认证的全面性。
需要说明的是,安全虚拟机运行的应用程序并无法在安全虚拟机启动时确定,这是因为机密计算服务端设备的硬盘中可能同时存在多个操作系统和多个应用程序,只有在安全虚拟机运行并加载操作系统后,才能确定安全虚拟机从硬盘动态加载并运行的应用程序(也就是说,安全虚拟机对于应用程序的加载是动态的)。基于此,本申请实施例提供新型的虚拟机度量方案,在安全虚拟机启动时,确定安全虚拟机启动时的启动度量结果,在安全虚拟机运行时,确定安全虚拟机运行时的程序运行度量结果,以提升虚拟机度量的结果全面性。进而,在进行机密计算认证时,本申请实施例可以将安全虚拟机启动时的启动度量结果、以及安全虚拟机运行时的程序运行度量结果携带在机密计算环境的身份信息中,并且机密计算环境的身份信息携带在证明报告中,以实现较为全面的进行机密计算认证。
作为可选实现,本申请实施例可以通过机密计算服务端设备中的安全虚拟机、安全处理器、主机系统软件之间的交互,实现在安全虚拟机启动的阶段,确定安全虚拟机的启动度量结果,以及在安全虚拟机运行的阶段,确定安全虚拟机运行时的程序运行度量结果,从而提升虚拟机度量的结果全面性。
作为可选实现,图4示例性的示出了本申请实施例提供的虚拟机度量方法的可选流程图,参照图4,该方法流程可以包括如下步骤。
在步骤S410中,在安全虚拟机启动时,主机系统软件调用安全处理器创建安全虚拟机。
安全虚拟机是配置有虚拟机密钥,且虚拟机内存被加密保护的虚拟机,基于安全虚拟机的虚拟机密钥由安全处理器进行分配和管理,在安全虚拟机启动时,安全处理器可以通过对安全虚拟机的固件信息进行加密,并且加密后的固件信息加载到安全虚拟机的虚拟机内存中,以实现创建安全虚拟机。也就是说,安全处理器可以通过创建安全虚拟机,来完成安全虚拟机的启动。例如,在安全虚拟机启动时,安全处理器可以利用加解密引擎,以安全虚拟机对应的虚拟机密钥,对安全虚拟机的固件信息进行加密,并且加密后的固件信息加载到安全虚拟机的虚拟机内存中,从而通过创建安全虚拟机,完成安全虚拟机的启动。
作为可选实现,在安全虚拟机启动时,主机系统软件(例如VMM)可以通过调用安全处理器的发起创建安全虚拟机的相关命令,从而调用安全处理器启动安全虚拟机、调用安全处理器对安全虚拟机的固件信息进行加密,并且加密后的固件信息加载到安全虚拟机的虚拟机内存中,以通过创建安全虚拟机,完成安全虚拟机的启动。
在进一步的可选实现中,安全处理器的发起创建安全虚拟机的相关命令可以包括:发起启动安全虚拟机的命令(LAUNCH START命令)、发起更新安全虚拟机数据的命令(LAUNCH UPDATE DATA命令)、和发起完成安全虚拟机创建的命令(LAUNCH FINISH命令)。在安全虚拟机启动时,主机系统软件(例如VMM)可以依次调用安全处理器的LAUNCH START命令、LAUNCH UPDATE DATA命令和LAUNCH FINISH命令,以实现调用安全处理器创建安全虚拟机,完成安全虚拟机的启动。
在一个示例中,主机系统软件可以通过调用安全处理器的LAUNCH START命令,以向安全处理器通知安全虚拟机开始启动。主机系统软件可以通过调用安全处理器的LAUNCHUPDATE DATA命令,以通知安全处理器对安全虚拟机的固件信息进行加密,并且加密后的固件信息加载到安全虚拟机的虚拟机内存中。主机系统软件可以通过调用安全处理器的LAUNCH FINISH命令,以使得安全处理器完成启动安全虚拟机。
在步骤S411中,安全处理器在创建安全虚拟机的过程中,对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果。
安全处理器通过创建安全虚拟机可以完成安全虚拟机的启动,从而安全处理器可以在创建安全虚拟机的过程中,度量安全虚拟机,实现确定安全虚拟机启动时所度量的结果,得到启动度量结果。
作为可选实现,安全处理器在创建安全虚拟机的过程中,可以调取安全虚拟机的固件信息并进行加密,从而在安全处理器调取安全虚拟机的固件信息时,安全处理器可以对安全虚拟机的固件信息进行度量,得到安全虚拟机的固件信息的度量值,作为启动度量结果。例如,安全处理器的LAUNCH UPDATE DATA命令可以用于通知安全处理器对安全虚拟机的固件信息进行加密,并且加密后的固件信息加载到安全虚拟机的虚拟机内存中;从而,安全处理器在检测到主机系统软件调用LAUNCH UPDATE DATA命令时,可以响应于LAUNCHUPDATE DATA命令,调取安全虚拟机的固件信息,并对安全虚拟机的固件信息进行加密;从而,在安全处理器调取安全虚拟机的固件信息时,安全处理器可以对安全虚拟机的固件信息进行度量,得到安全虚拟机的固件信息的度量值,作为启动度量结果。
作为可选实现,在本申请实施例中,对信息进行度量可以视为是使用度量算法对信息进行度量值计算,度量值可以视为是度量结果的一种表达。可选的,度量算法可以通过摘要算法实现,相应的,信息的度量值可以是信息的摘要值;例如,使用摘要算法对信息进行摘要计算,所得到的摘要值可以作为度量值使用。进一步的,在可选实现中,摘要算法可以通过哈希算法实现,相应的,信息的摘要值可以是信息的哈希值;例如,使用哈希算法对信息进行哈希计算,所得到的哈希值可以作为摘要值使用,从而得到信息的度量值。
在一个实现示例中,SM3算法作为一种密码杂凑算法,可用于数字签名和验证;本申请实施例可以将SM3算法作为哈希算法的一种示例,从而安全处理器可以使用SM3算法对信息进行度量,得到信息的度量值。
基于上述对于度量的解释,作为可选实现,安全处理器可以在创建安全虚拟机的过程中,使用度量算法对安全虚拟机的固件信息进行度量,得到安全虚拟机的固件信息的度量值,作为安全虚拟机启动时的启动度量结果。例如,安全处理器可以使用SM3算法对安全虚拟机的固件信息进行度量,得到安全虚拟机的固件信息的度量值。当然,本申请实施例也可支持其他形式的度量算法,并不限于SM3算法。在可选实现中,安全虚拟机的固件信息可以例如安全虚拟机的固件文件。
在步骤S412中,在安全虚拟机启动完成后,主机系统软件调用安全虚拟机的运行指令。
在安全虚拟机完成启动后,主机系统软件(例如VMM)可以调用安全虚拟机的运行指令,从而使得安全虚拟机运行。可选的,安全虚拟机的运行指令例如安全虚拟机的虚拟机运行指令(VM RUN指令)。在一个示例中,主机系统软件可以调用安全虚拟机的虚拟机运行指令(VM RUN指令),以使得安全虚拟机运行固件代码,从而实现安全虚拟机的运行。
在步骤S413中,在安全虚拟机的运行过程中,安全虚拟机在加载用于运行应用程序的程序运行相关信息时,通知安全处理器更新程序运行相关信息。
基于主机系统软件调用的安全虚拟机的运行指令(例如VM RUN指令),安全虚拟机可以进入运行阶段,例如安全虚拟机可以运行固件代码。作为可选实现,在安全虚拟机运行的过程中,安全虚拟机可以加载用于运行应用程序的程序运行相关信息,当安全虚拟机加载用于运行应用程序的程序运行相关信息时,为使得安全处理器能够对程序运行相关信息进行度量,安全虚拟机可以通知安全处理器更新程序运行相关信息,从而使得安全处理器可以对安全虚拟机用于运行应用程序的程序运行相关信息进行度量。例如,在安全虚拟机加载程序运行相关信息时,安全虚拟机可以向安全处理器发送通知命令,通知命令用于通知安全处理器更新安全虚拟机加载的程序运行相关信息,以便安全处理器度量安全虚拟机加载的程序运行相关信息。
作为可选实现,本申请实施例可以为安全虚拟机的固件增加固件接口,以便安全虚拟机加载用于运行应用程序的程序运行相关信息时,安全虚拟机可以通过固件接口,调用安全处理器的通知命令,以实现向安全处理器发送通知命令,从而通知安全处理器更新程序运行相关信息,使得安全处理器可以对程序运行相关信息进行度量。例如,安全虚拟机可以通过固件接口,调用安全处理器的启动加载数据命令(LAUNCH LOAD DATA命令),以通知安全处理器更新程序运行相关信息。也就是说,启动加载数据命令可以视为是通知命令的一种形式,例如,通知命令为安全虚拟机通过安全虚拟机的固件接口所调用的安全处理器的启动加载数据命令。
用于运行应用程序的程序运行相关信息可以是与应用程序运行相关的信息,例如,应用程序运行所依赖的信息(例如应用程序运行所依赖的系统信息)、以及应用程序的信息。作为可选实现,在安全虚拟机的运行过程中,安全虚拟机用于运行应用程序的程序运行相关信息可以包括:安全虚拟机依次加载的程序运行相关信息,其中,下一次加载的程序运行相关信息,依赖于上一次加载的程序运行相关信息进行加载。例如,在安全虚拟机加载应用程序之前,安全虚拟机需要依次加载系统信息,进而在完成系统信息的依次加载后,安全虚拟机再加载应用程序的信息(应用程序的信息例如应用程序的文件信息)。相应的,在安全虚拟机的运行过程中,安全虚拟机依次加载的程序运行相关信息可以包括:安全虚拟机加载应用程序之前所依次加载的系统信息、以及安全虚拟机加载的应用程序的信息。
在一些实施例中,安全虚拟机作为具有操作系统、能够运行应用程序的机密计算环境,安全虚拟机运行固件之后,固件可以检测硬盘,从硬盘中动态加载并运行安全虚拟机的操作系统内核;安全虚拟机的操作系统内核加载完成并开始运行后,操作系统内核加载应用程序加载器(APP Loader);应用程序加载器加载完成并运行后,应用程序加载器动态的加载应用程序并运行。
在此基础上,作为可选实现,应用程序加载器可以集成在安全虚拟机的initramfs中。也就是说,在本申请实施例中,安全虚拟机的固件代码运行后,固件加载操作系统内核;操作系统内核加载完成并开始运行后,内核运行并加载initramfs,initramfs中集成有应用程序加载器,应用程序加载器加载应用程序并运行,以实现安全虚拟机运行应用程序。
需要说明的是,安全虚拟机的initramfs为安全虚拟机的初始RAM(Random AccessMemory,随机存取存储器)文件系统。initramfs是硬盘文件系统挂载之前,操作系统内核使用的文件系统;initramfs作为独立的文件,其主要功能是完成操作系统内核初始化流程,比如,在安全虚拟机运行流程中,操作系统内核完成初始化之后会挂载硬盘,此时可以从initramfs切换到硬盘的文件系统,从而后续能够使得虚拟机运行硬盘中的应用程序。也就是说,在安全虚拟机加载硬盘文件系统之前,initramfs允许安全虚拟机的操作系统内核进行一些必要的初始化工作,例如,加载驱动程序、配置系统、挂载硬盘文件系统等。
本申请实施例将应用程序加载器集成在initramfs中,可以保证应用程序加载器的安全性,从而安全虚拟机可通过initramfs中的应用程序加载器提供的接口运行应用程序,保障本申请实施例在度量应用程序的相关信息时的安全性。
在initramfs集成应用程序加载器的情况下,作为可选实现,安全虚拟机加载应用程序之前所依次加载的系统信息可以包括:安全虚拟机加载的操作系统内核的信息(例如操作系统内核的文件信息)、操作系统内核加载的initramfs的信息(例如initramfs的文件信息);相应的,安全虚拟机加载的应用程序的信息可以包括:initramfs中的应用程序加载器所加载的应用程序的信息(例如应用程序的文件信息)。
在一个实现示例中,安全虚拟机在运行固件代码之后,固件在加载操作系统内核的信息时,安全虚拟机可以调用安全处理器的命令(例如通过固件接口,调用安全处理器的LAUNCH LOAD DATA命令),通知安全处理器更新操作系统内核的信息;安全虚拟机的操作系统内核在加载initramfs的信息时,安全虚拟机可以调用安全处理器的命令(例如通过固件接口,调用安全处理器的LAUNCH LOAD DATA命令),通知安全处理更新initramfs的信息;安全虚拟机的initramfs中集成的应用程序加载器在加载应用程序的信息时,安全虚拟机可以调用安全处理器的命令(例如通过固件接口,调用安全处理器的LAUNCH LOAD DATA命令),通知安全处理更新应用程序的信息。
在另一些实施例中,安全虚拟机运行的应用程序可以通过容器封装,也就是说,容器作为封装应用程序的一种轻量级技术,可以将应用程序及其依赖项打包为独立的单元,以便在不同平台和环境中进行部署、运行和管理。在一个示例中,容器例如kata容器;相比于传统容器,kata容器能够提供更强的安全隔离特性,例如,网络、输入/输出和内存的隔离。
在应用程序通过容器封装的情况下,应用程序的信息可以通过容器的信息进行表达(容器的信息例如容器镜像的信息,比如容器镜像的文件信息)。相应的,容器agent(代理)可以作为应用程序加载器的一种形式,容器agent例如kata agent;其中,容器agent(例如kata agent)负责在虚拟机内部管理容器(例如kata容器)的生命周期。进一步的,为保障加载容器的容器agent的安全性,容器agent可以集成在initramfs中。基于此,安全虚拟机加载应用程序之前所依次加载的系统信息可以包括:安全虚拟机加载的操作系统内核的信息、操作系统内核加载的initramfs的信息,initramfs集成有容器agent;相应的,安全虚拟机加载的应用程序的信息可以包括:initramfs中的容器agent所加载的容器的信息(例如容器镜像的文件信息)。
在一个实现示例中,安全虚拟机在运行固件代码之后,固件在加载操作系统内核的信息时,安全虚拟机可以调用安全处理器的命令(例如通过固件接口,调用安全处理器的LAUNCH LOAD DATA命令),通知安全处理器更新操作系统内核的信息;安全虚拟机的操作系统内核在加载initramfs的信息时,安全虚拟机可以调用安全处理器的命令(例如通过固件接口,调用安全处理器的LAUNCH LOAD DATA命令),通知安全处理器更新initramfs的信息;安全虚拟机的initramfs中集成的容器agent在加载容器的信息时,安全虚拟机可以调用安全处理器的命令(例如通过固件接口,调用安全处理器的LAUNCH LOAD DATA命令),通知安全处理器更新容器的信息。
在步骤S414中,安全处理器对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果。
作为可选实现,安全虚拟机在运行时,可以依次加载程序运行相关信息,从而安全处理器可以在安全虚拟机依次加载程序运行相关信息的过程中,对安全虚拟机每次加载的程序运行相关信息进行度量,以得到安全虚拟机运行时的程序运行度量结果;其中,所述程序运行度量结果结合有安全虚拟机每次加载的程序运行相关信息的度量结果。
在一些实施例中,本申请实施例可以对每次加载的程序运行相关信息分别进行度量,并将每次加载的程序运行相关信息的度量结果进行结合,从而得到程序运行度量结果。例如,在安全虚拟机每加载一次程序运行相关信息时,对加载的程序运行相关信息进行度量,进而在安全虚拟机加载完成程序运行相关信息时,将各次加载的程序运行相关信息的度量结果进行结合,得到程序运行度量结果。
在另一些实施例中,安全处理器可以对安全虚拟机依次加载的程序运行相关信息进行迭代的度量,从而得到安全虚拟机运行时的程序运行度量结果。对依次加载的程序运行相关信息进行迭代的度量是指:在每次加载程序运行相关信息时,度量该程序运行相关信息,并且将该程序运行相关信息的度量结果与已得到的度量结果进行结合度量。
在一个示例中,以对两次加载的程序运行相关信息进行迭代度量为例,在第一次加载程序运行相关信息时,可以对第一次加载的程序运行相关信息进行度量,得到第一次加载的程序运行相关信息的度量结果;在第二次加载程序运行相关信息时,可以对第二次加载的程序运行相关信息进行度量,并将第二次加载的程序运行相关信息度量结果与已得到的度量结果(例如已得到的第一次加载的程序运行相关信息的度量结果)进行结合度量。
需要说明的是,对于操作系统内核的信息、initramfs的信息、应用程序的信息等程序运行相关信息而言,程序运行相关信息是作为独立的文件存在(例如操作系统内核的信息、initramfs的信息、应用程序的信息是分别作为独立的文件),因此在依次加载程序运行相关信息的过程中,为体现依次加载的程序运行相关信息整体的度量结果,本申请实施例可以对依次加载的程序运行相关信息进行迭代的度量,从而使用下一次加载的程序运行相关信息的度量结果,更新已得到的度量结果。
作为对安全虚拟机依次加载的程序运行相关信息进行迭代的度量的可选实现,在安全虚拟机当前加载的程序运行相关信息为首次加载的程序运行相关信息时(首次加载的程序运行相关信息例如操作系统内核的信息),安全处理器可以将当前加载的程序运行相关信息的度量结果,作为当前加载所对应的度量结果;
在安全虚拟机当前加载的程序运行相关信息为非首次加载的程序运行相关信息时,安全处理器可以将当前加载的程序运行相关信息的度量结果,与上一次加载所对应的度量结果进行结合度量,得到当前加载所对应的度量结果;
从而,最后一次加载所对应的度量结果作为安全虚拟机运行时的程序运行度量结果。
一方面,作为可选实现,基于系统信息可以包括安全虚拟机加载的操作系统内核的信息、操作系统内核加载的initramfs的信息(initramfs集成应用程序加载器),安全处理器可以在安全虚拟机通知更新操作系统内核的信息时,对操作系统内核的信息进行度量,从而确定操作系统内核的度量结果;安全处理器可以在安全虚拟机通知更新initramfs的信息时,对initramfs的信息进行度量,从而确定initramfs的度量结果,并将initramfs的度量结果与操作系统内核的度量结果进行结合度量,得到中间度量结果;安全处理器可以在安全虚拟机通知更新应用程序的信息时,对应用程序的信息进行度量,从而确定应用程序的度量结果,并将应用程序的度量结果与中间度量结果进行结合度量,得到安全虚拟机运行时的程序运行度量结果。
相应的,安全虚拟机运行时的程序运行度量结果为:中间度量结果与应用程序的度量结果结合度量之后,所得到的度量结果;其中,中间度量结果为操作系统内核的度量结果与initramfs的度量结果结合度量之后,所得到的度量结果。
另一方面,作为可选实现,在应用程序通过容器封装的情况下,基于系统信息可以包括安全虚拟机加载的操作系统内核的信息、操作系统内核加载的initramfs的信息(initramfs集成容器agent),安全处理器可以在安全虚拟机通知更新操作系统内核的信息时,对操作系统内核的信息进行度量,从而确定操作系统内核的度量结果;安全处理器可以在安全虚拟机通知更新initramfs的信息时,对initramfs的信息进行度量,从而确定initramfs的度量结果,并将initramfs的度量结果与操作系统内核的度量结果进行结合度量,得到中间度量结果;安全处理器可以在安全虚拟机通知更新容器的信息时,对容器的信息进行度量(例如对容器的镜像信息进行度量),从而确定容器的度量结果,并将容器的度量结果与中间度量结果进行结合度量,得到安全虚拟机运行时的程序运行度量结果。
相应的,安全虚拟机运行时的程序运行度量结果为:中间度量结果与容器的度量结果结合度量之后,所得到的度量结果。
在进一步的可选实现中,安全处理器在得到安全虚拟机启动时的启动度量结果、以及安全虚拟机运行时的程序运行度量结果后,可以保存启动度量结果和程序运行度量结果;例如,将启动度量结果和程序运行度量结果保存到安全处理器的固件中。进而,在需要进行机密计算认证时,安全处理器可以将保存的启动度量结果和程序运行度量结果更新到证明报告中,以使得启动度量结果和程序运行度量结果可用于机密计算环境认证。
本申请实施例提供的虚拟机度量方法可由安全处理器执行,在机密计算环境以安全虚拟机为单位构建的情况下,安全处理器可以通过创建安全虚拟机,以完成安全虚拟机的启动,从而在安全处理器创建安全虚拟机的过程中,安全处理器可以对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果;在安全虚拟机启动后,安全虚拟机进入运行阶段,在安全虚拟机的运行过程中,安全虚拟机可以通过加载用于运行应用程序的程序运行相关信息,从而实现应用程序在安全虚拟机的运行;进而,安全处理器可以在安全虚拟机的运行过程中,对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果。
可见,在本申请实施例中,安全处理器可以在创建安全虚拟机的过程中,确定安全虚拟机启动时的启动度量结果,以及在安全虚拟机的运行过程中,确定安全虚拟机运行时的程序运行度量结果,提升虚拟机度量的结果全面性。安全处理器所确定的启动度量结果和程序运行度量结果可用于机密计算环境认证,为机密计算环境认证能够认证安全虚拟机的合法性、以及安全虚拟机运行的应用程序的合法性提供基础,从而为提升机密计算认证的全面性提供基础。
以安全虚拟机依次加载操作系统内核、initramfs、应用程序为例,作为可选实现,图5示例性的示出了本申请实施例提供的虚拟机度量方法的另一可选流程图,参照图5,该方法流程可以包括如下步骤。
在步骤S510中,主机系统软件调用安全处理器的LAUNCH START命令。
在步骤S511中,主机系统软件调用安全处理器的LAUNCH UPDATE DATA命令。
在步骤S512中,安全处理器利用SM3算法计算安全虚拟机的固件信息的度量值,得到安全虚拟机启动时的启动度量结果。
安全处理器基于LAUNCH UPDATE DATA命令,可以调取安全虚拟机的固件信息,对安全虚拟机的固件信息进行加密,并且加密后的固件信息加载到安全虚拟机的虚拟机内存,以实现创建安全虚拟机。在上述过程中,安全处理器可对调取的安全虚拟机的固件信息进行度量,例如,使用SM3算法计算安全虚拟机的固件信息的度量值,从而得到安全虚拟机启动时的启动度量结果。在一个示例中,设启动度量结果为d1,则d1=SM3(安全虚拟机的固件信息)。
在步骤S513中,主机系统软件调用安全处理器的LAUNCH FINISH命令。
在步骤S514中,主机系统软件调用安全虚拟机的VM RUN指令。
在步骤S515中,安全虚拟机的固件加载操作系统内核的信息。
在步骤S516中,安全虚拟机调用安全处理器的LAUNCH LOAD DATA命令,通知安全处理器更新操作系统内核的信息。
在步骤S517中,安全处理器使用SM3算法计算操作系统内核的信息的度量值,得到操作系统内核的度量值。
在一个实现示例中,设操作系统内核的度量值为d21,则d21=SM3(操作系统内核的信息)。
在步骤S518中,安全虚拟机的操作系统内核加载initramfs的信息。
在步骤S519中,安全虚拟机调用安全处理器的LAUNCH LOAD DATA命令,通知安全处理器更新initramfs的信息。
在步骤S520中,安全处理器使用SM3算法计算initramfs的信息的度量值,得到initramfs的度量值,使用SM3算法计算initramfs的度量值与操作系统内核的度量值的度量值,得到中间度量值。
在一个实现示例中,设initramfs的度量值为d22,则d22=SM3(initramfs的信息)。进一步的,中间度量值可以表示为:SM3(d21,d22),即SM3(SM3(操作系统内核的信息),SM3(initramfs的信息))。
在步骤S521中,安全虚拟机的initramfs中集成的应用程序加载器,加载应用程序的信息。
在步骤S522中,安全虚拟机调用安全处理器的LAUNCH LOAD DATA命令,通知安全处理器更新应用程序的信息。
在步骤S523中,安全处理器使用SM3算法计算应用程序的信息的度量值,得到应用程序的度量值,使用SM3算法计算应用程序的度量值与中间度量值的度量值,得到程序运行度量结果。
在一个实现示例中,设应用程序的度量值为d23,则d23=SM3(应用程序的信息)。进一步的,设程序运行度量结果为d2,则d2可以表示为:SM3(中间度量值,SM3(应用程序的信息)),即SM3(SM3(SM3(操作系统内核的信息),SM3(initramfs的信息)),SM3(应用程序的信息))。
可以看出,在对安全虚拟机依次加载的程序运行相关信息进行迭代的度量的过程中,安全处理器是使用当前加载的程序运行相关信息的度量结果,与已得到的度量结果进行结合度量,从而实现更新已得到的度量结果;进而基于最后一次加载的程序运行相关信息的度量结果,更新已得到的度量结果后,可得到程序运行度量结果。
作为替代实现,在应用程序通过容器封装的情况下,步骤S521至步骤S523可以替代为:安全虚拟机的initramfs中集成的容器agent,加载容器的信息;安全虚拟机调用安全处理器的LAUNCH LOAD DATA命令,通知安全处理器更新容器的信息;安全处理器使用SM3算法计算容器的信息的度量值,得到容器的度量值,使用SM3算法计算容器的度量值与中间度量值的度量值,得到程序运行度量结果。在一个实现示例中,程序运行度量结果d2可以表示为:SM3(中间度量值,SM3(容器的信息)),即SM3(SM3(SM3(操作系统内核的信息),SM3(initramfs的信息)),SM3(容器的信息))。
在进一步的可选实现中,安全虚拟机在运行应用程序时,应用程序可能会加载配置信息,本申请实施例也可以结合考虑配置信息的度量结果,来确定程序运行度量结果。例如,在安全虚拟机运行应用程序时,如果应用程序加载了配置信息,则安全处理器可以对配置信息进行度量(比如,安全虚拟机可以在应用程序加载配置信息时,调用安全处理器的LAUNCH LOAD DATA命令,通知安全处理器更新配置信息,从而安全处理器可对配置信息进行度量),得到配置信息的度量结果;进而,将配置信息的度量结果与已得到的程序运行度量结果进行结合度量,得到更新后的程序运行度量结果。更新后的程序运行度量结果可以替代已得到的程序运行度量结果,用于机密计算环境认证;比如,更新后的程序运行度量结果替代已得到的程序运行度量结果,并结合启动度量结果,用于在机密计算环境认证时,认证机密计算环境的合法性。
基于上述说明,进一步结合图5所示,图5所示流程还可以包括以下步骤。
在步骤S524中,安全虚拟机的应用程序加载配置信息。
在步骤S525中,安全虚拟机调用安全处理器的LAUNCH LOAD DATA命令,通知安全处理器更新配置信息。
在步骤S526中,安全处理器使用SM3算法计算配置信息的度量值,使用SM3算法计算配置信息的度量值与已得到的程序运行度量结果的度量值,得到更新后的程序运行度量结果。
在一个实现示例中,设配置信息的度量值为d24,则d24=SM3(配置信息)。进一步的,更新后的程序运行度量结果可以表示为d2(更新),d2(更新)=SM3(d2,SM3(配置信息))。在进一步的可选实现中,更新后的程序运行度量结果和启动度量结果可保存在安全处理器的固件中。
需要说明的是,在上述图5所示流程中,安全虚拟机在调用安全处理器的LAUNCHLOAD DATA命令,通知安全处理器更新相关信息时,可以通过安全虚拟机的固件接口实现。例如,在安全虚拟机的固件中增加与LAUNCH LOAD DATA命令相应的固件接口,从而在安全虚拟机加载程序运行相关信息时,安全虚拟机可以通过LAUNCH LOAD DATA命令相应的固件接口,调用安全处理器的LAUNCH LOAD DATA,以通知安全处理器更新安全虚拟机加载的程序运行相关信息,使得安全处理器度量安全虚拟机加载的程序运行相关信息。
需要说明的是,应用程序的信息表示的是应用程序的文件信息,应用程序的文件信息用于文件的管理、版本控制、构建和部署过程中的文件操作等,而应用程序加载的配置信息用于在应用程序运行时加载并应用相应的配置,控制应用程序的行为和特性。因此,在以安全虚拟机为单位构建机密计算环境的情况下,至少需要通过应用程序的文件信息的度量结果,来认证应用程序的合法性。结合考虑应用程序运行后所加载的配置信息,来得到程序运行度量结果,可以使得应用程序的度量更为全面,从而进一步提升虚拟机度量结果的全面性。
本申请实施例还提供一种机密计算认证方法,在机密计算服务端设备的安全处理器确定启动度量结果和程序运行度量结果后,如果机密计算服务端设备获取到远程证明发起端设备的报告请求,则机密计算服务端设备可以将启动度量结果和程序运行度量结果携带在机密计算环境的身份信息中,从而向远程证明发起端设备提供证明报告。作为可选实现,图6示例性的示出了本申请实施例提供的机密计算认证方法的可选流程图,如图6所示,该流程可以包括如下步骤。
在步骤S610中,远程证明发起端设备向机密计算服务端设备发送报告请求。
相应的,机密计算服务端设备可以获取到报告请求。作为可选实现,为防止重放攻击,远程证明发起端设备可以在报告请求中携带随机数。
在进一步的可选实现中,远程证明发起端设备可以是数据提供方所对应的电子设备,机密计算服务端设备可以先向远程证明发起端设备请求计算数据,从而远程证明发起端设备可以基于机密计算服务端设备对于计算数据的请求,要求机密计算服务端设备证明机密计算环境的合法性,进而向机密计算服务端设备发送报告请求。
在步骤S611中,机密计算服务端设备响应于报告请求,生成证明报告,并将安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中。
作为可选实现,启动度量结果和程序运行度量结果可以基于本申请实施例提供的虚拟机度量方法得到。
在步骤S612中,机密计算服务端设备将证明报告发送给远程证明发起端设备。
机密计算服务端设备在获取到报告请求后,可以生成证明报告,并且在证明报告中填入随机数(报告请求中携带的随机数)、机密计算环境的身份信息(例如TEE的身份信息)。在本申请实施例中,机密计算服务端设备可以将安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中,从而使得机密计算认证可以认证安全虚拟机的合法性,以及安全虚拟机运行的应用程序的合法性。
在进一步的可选实现中,机密计算服务端设备可以使用运行机密计算环境的芯片的芯片私钥,对证明报告进行签名;进而,将签名后的证明报告发送给远程证明发起端设备。需要说明的是,运行机密计算环境(例如TEE)的芯片可以包含有芯片私钥,不同芯片的芯片私钥不同。
在可选实现中,在以安全虚拟机构建机密计算环境的情况下,报告请求可以由机密计算服务端设备的安全虚拟机接收,从而安全虚拟机可以将报告请求转发给机密计算服务端设备的安全处理器;安全处理器可以生成证明报告,并将保存的启动度量结果和程序运行度量结果(例如安全处理器的固件中保存的启动度量结果和程序运行度量结果),更新到证明报告所携带的机密计算环境的身份信息中;进而,安全处理器可以将证明报告反馈给安全虚拟机,由安全虚拟机将证明报告发送给远程证明发起端设备。
在一个实现示例中,安全处理器在接收到安全虚拟机转发的报告请求后,可以生成证明报告,并且在证明报告中填入随机数、机密计算环境的身份信息;同时,将安全处理器的固件中保存的启动度量结果和程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中;进而,安全处理器使用运行机密计算环境的芯片的芯片私钥,对证明报告进行签名;安全处理器将签名后的证明报告反馈给安全虚拟机,由安全虚拟机将签名后的证明报告发送给远程证明发起端设备。
在步骤S613中,远程证明发起端设备将证明报告发送给远程证明服务端设备。
在步骤S614中,远程证明服务端设备认证证明报告中的机密计算环境的身份信息是否合法,生成机密计算环境的认证结果。
在可选实现中,基于机密计算环境的身份信息携带的启动度量结果,远程证明服务端设备可以认证安全虚拟机是否合法;例如,在认证启动度量结果不合法时,视为安全虚拟机的身份不合法。基于机密计算环境的身份信息携带的程序运行度量结果,远程证明服务端设备可以认证安全虚拟机运行的应用程序是否合法;例如,在认证程序运行度量结果不合法时,视为安全虚拟机运行的应用程序不合法。如果认证安全虚拟机和安全虚拟机运行的应用程序均合法,则视为机密计算环境的身份信息合法,从而机密计算环境的认证结果可以指示机密计算环境合法。如果认证安全虚拟机或者安全虚拟机运行的应用程序不合法,则视为机密计算环境的身份信息不合法,从而机密计算环境的认证结果可以指示机密计算环境不合法。
作为实现示例,安全虚拟机不合法可以是安全虚拟机加载的固件信息不合法。在一个实现示例中,安全虚拟机运行的应用程序不合法可能是安全虚拟机加载的操作系统内核、操作系统内核加载的initramfs、initramfs集成的应用程序加载器所加载的应用程序中的至少一项不合法。在另一个实现示例中,在以容器封装应用程序的情况下,安全虚拟机运行的应用程序不合法还可能是安全虚拟机加载的操作系统内核、操作系统内核加载的initramfs、initramfs集成的容器agent加载的容器中的至少一项不合法。在进一步的实现示例中,如果程序运行度量结果结合有应用程序的配置信息,也可能是应用程序加载的配置信息不合法,导致程序运行度量结果不合法。
需要说明的是,远程证明服务端设备可以通过设置机密计算环境的合法身份信息,以认证证明报告中的机密计算环境的身份信息是否合法;比如,通过比对机密计算环境的合法身份信息,与证明报告中的机密计算环境的身份信息是否一致,以认证证明报告中的机密计算环境的身份信息是否合法。作为可选实现,远程证明服务端设备可以设置合法的启动度量结果、以及合法的程序运行度量结果,从而通过比对合法的启动度量结果、与证明报告中的启动度量结果是否一致,以实现认证证明报告中的启动度量结果是否合法;并且,通过比对合法的程序运行度量结果、与证明报告中的程序运行度量结果是否一致,以实现认证证明报告中的程序运行度量结果是否合法。
作为可选实现,远程证明服务端设备可以基于安全虚拟机合法的固件信息,预先确定合法的启动度量结果,并配置在机密计算环境的合法身份信息列表中;同时,远程证明服务端设备可以基于应用程序合法的程序运行相关信息,预先确定合法的程序运行度量结果,并配置在机密计算环境的合法身份信息列表中。例如,远程证明服务器端设备可以基于合法的操作系统内核的信息、合法的initramfs的信息、合法的应用程序的信息等,确定合法的程序运行度量结果,并配置在机密计算环境的合法身份信息列表中。进而,在远程证明服务端设备需要认证证明报告中的启动度量结果、程序运行度量结果是否合法时,可以从合法身份信息列表中获取合法的启动度量结果和合法的程序运行度量结果进行比对。
在进一步的可选实现中,如果证明报告携带有随机数,并且证明报告被芯片的私钥签名,则远程证明服务端设备可以使用芯片的公钥(运行机密计算环境的芯片的公钥),判断证明报告是否验签通过;如果证明报告验签通过,则进一步检查证明报告携带的随机数是否与报告请求携带的随机数一致(即检查证明报告携带的随机数,是否与远程证明发起端设备发送的随机数一致),如果随机数一致,则视为证明报告是针对远程证明发起端设备所发起的报告请求而生成,从而远程证明服务端设备可以认证证明报告中的机密计算环境的身份信息是否合法。需要说明的是,如果证明报告验签未通过,或者随机数比对不一致,则取消进入认证证明报告中的机密计算环境的身份信息是否合法的步骤,即取消执行步骤S614。
在步骤S615中,远程证明服务端设备将认证结果发送给远程证明发起端设备。
在进一步的可选实现中,远程证明发起端设备在认证结果指示机密计算环境合法时,可以将计算数据提供给机密计算服务端设备。如果认证结果指示机密计算环境不合法,则远程证明发起端设备拒绝将计算数据提供给机密计算服务端设备;进一步的,远程证明发起端设备可以向机密计算服务端设备提供拒绝信息,并且通过拒绝信息指示:因机密计算环境不合法而拒绝提供计算数据。
在一些实施例中,远程证明发起端设备和远程证明服务端设备也可以相集成,例如集成为远端设备。可选的,远端设备可以通过程序形式的远端程序,以执行前文提及的远程证明发起端设备的操作流程、以及远程证明服务端设备的操作流程。
本申请实施例提供的机密计算认证方法,在以安全虚拟机为单位构建机密计算环境的情况下,可以在证明报告的机密计算环境的身份信息中携带安全虚拟机启动时的启动度量结果、安全虚拟机运行时的程序运行度量结果,从而使得机密环境认证可以在安全虚拟机的维度、以及安全虚拟机运行的应用程序的维度进行,通过认证安全虚拟机的合法性以及安全虚拟机运行的应用程序的合法性,实现机密计算环境的合法性认证,提升了机密计算认证的全面性,能够适应于计算数据的隐私计算等场景的安全性要求。
本申请实施例还提供一种机密计算服务端设备,用于实现安全虚拟机的度量。作为可选实现,结合图3所示,该机密计算服务端设备可以包括:安全处理器、主机系统软件、以及安全虚拟机;
主机系统软件,用于在安全虚拟机启动时,调用安全处理器创建安全虚拟机;以及,在安全虚拟机完成启动时,调用安全虚拟机的运行指令,以使得安全虚拟机运行;其中,安全处理器通过创建安全虚拟机,以完成安全虚拟机的启动;
安全虚拟机,用于在运行过程中,加载用于运行应用程序的程序运行相关信息,并且向安全处理器发送通知命令;
安全处理器,用于在创建安全虚拟机的过程中,受主机系统软件的调用,对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果;以及在安全虚拟机的运行过程中,基于安全虚拟机的通知命令,对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果;
其中,所述启动度量结果和所述程序运行度量结果用于机密计算环境认证,机密计算环境以安全虚拟机为单位构建。
在度量安全虚拟机的可选实现中,安全处理器、主机系统软件、以及安全虚拟机的更为详细的介绍可以参照前文相应部分的描述,此处不再赘述。
本申请实施例还提供一种机密计算服务端设备,用于机密计算环境的认证。作为可选实现,该机密计算服务端设备可以包括:安全处理器、以及安全虚拟机;
安全虚拟机,用于接收远程证明发起端设备发送给机密计算服务端设备的报告请求,将所述报告请求转发给安全处理器;以及,接收安全处理器发送的证明报告,将证明报告发送给远程证明发起端设备,以用于认证机密计算环境的合法性;
安全处理器,用于响应于所述报告请求,生成证明报告,并将安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中;将所述证明报告发送给所述安全虚拟机。
作为可选实现,所述报告请求携带有随机数;所述安全处理器,还用于将所述随机数携带在所述证明报告中,以及,在将证明报告发送给安全虚拟机之前,使用运行机密计算环境的芯片的芯片私钥,对证明报告进行签名。
在机密计算认证的可选实现中,安全处理器、以及安全虚拟机的更为详细的介绍可以参照前文相应部分的描述,此处不再赘述。
本申请实施例还提供一种机密计算系统,结合图2所示,该机密计算系统可以包括:远程证明发起端设备、机密计算服务端设备和远程证明服务端设备;
其中,远程证明发起端设备为具有机密计算认证需求的参与角色所对应的电子设备;
机密计算服务端设备为机密计算服务端所对应的电子设备,机密计算服务端包括机密计算服务提供方和/或机密计算平台提供方;所述机密计算服务端设备可以被配置为执行本申请实施例提供的虚拟机度量方法,或者,被配置为执行如本申请实施例提供的机密计算认证方法;
所述远程证明服务端设备为可信实体所对应的电子设备,所述远程证明服务端设备被配置为执行本申请实施例提供的机密计算认证方法。
需要说明的是,由机密计算服务端设备执行的虚拟机度量方法的内容,可以参照前文相应部分的描述,此处不再赘述;由机密计算服务端设备执行的机密计算认证方法的内容,可以参照前文相应部分的描述,此处不再赘述;由远程证明服务端设备执行的机密计算认证方法的内容,可以参照前文相应部分的描述,此处不再赘述。
本申请实施例还提供一种存储介质,该存储介质可以存储一条或多条计算机可执行指令,该一条或多条计算机可执行指令被执行时,可以实现本申请实施例提供的虚拟机度量方法,或者,本申请实施例提供的机密计算认证方法。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (29)
1.一种虚拟机度量方法,其特征在于,应用于安全处理器,所述安全处理器设置于机密计算服务端设备,所述方法包括:
在创建安全虚拟机的过程中,对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果;其中,安全虚拟机部署于机密计算服务端设备,安全处理器通过创建安全虚拟机,以完成安全虚拟机的启动;
在安全虚拟机的运行过程中,对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果;
其中,所述启动度量结果和所述程序运行度量结果用于机密计算环境认证,机密计算环境以安全虚拟机为单位构建。
2.根据权利要求1所述的方法,其特征在于,还包括:
在安全虚拟机加载程序运行相关信息时,获取安全虚拟机发送的通知命令,所述通知命令用于通知安全处理器更新安全虚拟机加载的程序运行相关信息,以便安全处理器度量安全虚拟机加载的程序运行相关信息。
3.根据权利要求2所述的方法,其特征在于,所述通知命令为安全虚拟机通过安全虚拟机的固件接口所调用的安全处理器的启动加载数据命令。
4.根据权利要求1所述的方法,其特征在于,所述安全虚拟机用于运行应用程序的程序运行相关信息包括:安全虚拟机依次加载的程序运行相关信息,其中,下一次加载的程序运行相关信息,依赖于上一次加载的程序运行相关信息进行加载。
5.根据权利要求4所述的方法,其特征在于,所述对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果包括:
在安全虚拟机依次加载程序运行相关信息的过程中,对安全虚拟机每次加载的程序运行相关信息进行度量,以得到安全虚拟机运行时的程序运行度量结果;其中,所述程序运行度量结果结合有安全虚拟机每次加载的程序运行相关信息的度量结果。
6.根据权利要求5所述的方法,其特征在于,所述在安全虚拟机依次加载程序运行相关信息的过程中,对安全虚拟机每次加载的程序运行相关信息进行度量,以得到安全虚拟机运行时的程序运行度量结果包括:
在安全虚拟机依次加载程序运行相关信息的过程中,对安全虚拟机依次加载的程序运行相关信息进行迭代的度量,得到安全虚拟机运行时的程序运行度量结果。
7.根据权利要求6所述的方法,其特征在于,所述在安全虚拟机依次加载程序运行相关信息的过程中,对安全虚拟机依次加载的程序运行相关信息进行迭代的度量,得到安全虚拟机运行时的程序运行度量结果包括:
在安全虚拟机当前加载的程序运行相关信息为首次加载的程序运行相关信息时,将当前加载的程序运行相关信息的度量结果,作为当前加载所对应的度量结果;
在安全虚拟机当前加载的程序运行相关信息为非首次加载的程序运行相关信息时,将当前加载的程序运行相关信息的度量结果,与上一次加载所对应的度量结果进行结合度量,得到当前加载所对应的度量结果;
其中,最后一次加载所对应的度量结果作为安全虚拟机运行时的程序运行度量结果。
8.根据权利要求4-7任一项所述的方法,其特征在于,所述安全虚拟机依次加载的程序运行相关信息包括:安全虚拟机加载应用程序之前所依次加载的系统信息、以及安全虚拟机加载的应用程序的信息。
9.根据权利要求8所述的方法,其特征在于,所述安全虚拟机加载应用程序之前所依次加载的系统信息包括:安全虚拟机加载的操作系统内核的信息,以及操作系统内核加载的初始RAM文件系统的信息。
10.根据权利要求9所述的方法,其特征在于,所述初始RAM文件系统集成有应用程序加载器;所述安全虚拟机加载的应用程序的信息为,所述应用程序加载器加载的应用程序的信息;
所述安全虚拟机运行时的程序运行度量结果为:中间度量结果与应用程序的度量结果进行结合度量之后,所得到的度量结果;其中,所述中间度量结果为操作系统内核的度量结果与初始RAM文件系统的度量结果进行结合度量之后,所得到的度量结果。
11.根据权利要求9所述的方法,其特征在于,所述应用程序通过容器封装;所述初始RAM文件系统集成有容器代理;所述安全虚拟机加载的应用程序的信息为,所述容器代理加载的容器的信息;
所述安全虚拟机运行时的程序运行度量结果为:中间度量结果与容器的度量结果进行结合度量之后,所得到的度量结果;其中,所述中间度量结果为操作系统内核的度量结果与初始RAM文件系统的度量结果进行结合度量之后,所得到的度量结果。
12.根据权利要求1所述的方法,其特征在于,所述在创建安全虚拟机的过程中,对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果包括:
在创建安全虚拟机的过程中,对安全虚拟机的固件信息进行度量,得到安全虚拟机的固件信息的度量结果,作为所述启动度量结果。
13.根据权利要求12所述的方法,其特征在于,所述在创建安全虚拟机的过程中,对安全虚拟机的固件信息进行度量包括:
获取主机系统软件调用的安全处理器的发起更新安全虚拟机数据的命令,所述发起更新安全虚拟机数据的命令用于通知安全处理器对安全虚拟机的固件信息进行加密,并且加密后的固件信息加载到安全虚拟机的虚拟机内存中;
响应于所述发起更新安全虚拟机数据的命令,在调取安全虚拟机的固件信息时,对安全虚拟机的固件信息进行度量。
14.根据权利要求1-7任一项,或者,9-13任一项所述的方法,其特征在于,还包括:
在安全虚拟机运行应用程序时,如果应用程序加载配置信息,则对配置信息进行度量,得到配置信息的度量结果;将配置信息的度量结果与已得到的程序运行度量结果进行结合度量,得到更新后的程序运行度量结果;
其中,更新后的程序运行度量结果替代已得到的程序运行度量结果,用于机密计算环境认证。
15.根据权利要求1所述的方法,其特征在于,还包括:
将所述启动度量结果和所述程序运行度量结果保存在安全处理器的固件中。
16.一种机密计算认证方法,其特征在于,应用于机密计算服务端设备,所述方法包括:
获取远程证明发起端设备发送的报告请求;
响应于所述报告请求,生成证明报告,并将安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中;其中,安全虚拟机部署于机密计算服务端设备,机密计算环境以安全虚拟机为单位构建;
将所述证明报告发送给远程证明发起端设备,以用于认证机密计算环境的合法性。
17.根据权利要求16所述的方法,其特征在于,所述将安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中包括:
通过机密计算服务端设备的安全处理器,将安全处理器的固件中保存的启动度量结果和程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中。
18.根据权利要求16或17所述的方法,其特征在于,所述报告请求携带有随机数;所述方法还包括:
将所述随机数携带在所述证明报告中;
在将所述证明报告发送给远程证明发起端设备之前,使用运行机密计算环境的芯片的芯片私钥,对证明报告进行签名。
19.根据权利要求16或17所述的方法,其特征在于,所述方法还包括:
在获取远程证明发起端设备发送的报告请求之前,向远程证明发起端设备请求计算数据;
在将所述证明报告发送给远程证明发起端设备之后,如果机密计算环境的认证结果指示机密计算环境合法,则获取远程证明发起端设备提供的计算数据。
20.一种机密计算认证方法,其特征在于,应用于远程证明服务端设备,所述方法包括:
获取远程证明发起端设备发送的证明报告,所述证明报告携带有机密计算环境的身份信息,所述机密计算环境的身份信息携带有安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果;其中,安全虚拟机部署于机密计算服务端设备,机密计算环境以安全虚拟机为单位构建;
认证证明报告中的机密计算环境的身份信息是否合法,生成机密计算环境的认证结果;
将认证结果发送给远程证明发起端设备。
21.根据权利要求20所述的方法,其特征在于,所述认证证明报告中的机密计算环境的身份信息是否合法包括:
基于所述启动度量结果,认证安全虚拟机是否合法,以及,基于所述程序运行度量结果,认证安全虚拟机运行的应用程序是否合法;
如果认证安全虚拟机和安全虚拟机运行的应用程序均合法,则机密计算环境的身份信息合法;
如果认证安全虚拟机或者安全虚拟机运行的应用程序不合法,则机密计算环境的身份信息不合法。
22.根据权利要求21所述的方法,其特征在于,所述安全虚拟机不合法包括:安全虚拟机加载的固件信息不合法;
所述安全虚拟机运行的应用程序不合法包括:
安全虚拟机加载的操作系统内核、操作系统内核加载的初始RAM文件系统、初始RAM文件系统中集成的应用程序加载器所加载的应用程序中的至少一项不合法;
或者,安全虚拟机加载的操作系统内核、操作系统内核加载的初始RAM文件系统、初始RAM文件系统中集成的容器代理所加载的容器中的至少一项不合法,其中,安全虚拟机运行的应用程序通过容器封装。
23.根据权利要求22所述的方法,其特征在于,所述安全虚拟机运行的应用程序不合法还包括:
应用程序加载的配置信息不合法。
24.根据权利要求20所述的方法,其特征在于,所述证明报告携带有随机数,并且所述证明报告被芯片的私钥签名,所述芯片为机密计算服务端设备中运行机密计算环境的芯片;所述方法还包括:
在执行所述认证证明报告中的机密计算环境的身份信息是否合法的步骤之前,使用芯片的公钥,判断证明报告是否验签通过;
如果证明报告验签通过,则检查证明报告携带的随机数是否与远程证明发起端设备要求证明报告时所发送的随机数相一致;
如果随机数相一致,则进入所述认证证明报告中的机密计算环境的身份信息是否合法的步骤;
其中,如果证明报告验签未通过,或者随机数不一致,则取消执行所述认证证明报告中的机密计算环境的身份信息是否合法的步骤。
25.一种机密计算服务端设备,其特征在于,包括:安全处理器、主机系统软件、以及安全虚拟机;
所述主机系统软件,用于在安全虚拟机启动时,调用安全处理器创建安全虚拟机;以及,在安全虚拟机完成启动时,调用安全虚拟机的运行指令,以使得安全虚拟机运行;其中,安全处理器通过创建安全虚拟机,以完成安全虚拟机的启动;
所述安全虚拟机,用于在运行过程中,加载用于运行应用程序的程序运行相关信息,并且向安全处理器发送通知命令;
所述安全处理器,用于在创建安全虚拟机的过程中,受主机系统软件的调用,对安全虚拟机进行度量,确定安全虚拟机启动时的启动度量结果;以及在安全虚拟机的运行过程中,基于安全虚拟机的通知命令,对安全虚拟机用于运行应用程序的程序运行相关信息进行度量,确定安全虚拟机运行时的程序运行度量结果;
其中,所述启动度量结果和所述程序运行度量结果用于机密计算环境认证,机密计算环境以安全虚拟机为单位构建。
26.一种机密计算服务端设备,其特征在于,包括:安全处理器以及安全虚拟机,其中,机密计算环境以安全虚拟机为单位构建;
所述安全虚拟机,用于接收远程证明发起端设备发送给机密计算服务端设备的报告请求,将所述报告请求转发给安全处理器;以及,接收安全处理器发送的证明报告,将证明报告发送给远程证明发起端设备,以用于认证机密计算环境的合法性;
所述安全处理器,用于响应于所述报告请求,生成证明报告,并将安全虚拟机启动时的启动度量结果和安全虚拟机运行时的程序运行度量结果,更新到证明报告所携带的机密计算环境的身份信息中;将所述证明报告发送给所述安全虚拟机。
27.根据权利要求26所述的机密计算服务端设备,其特征在于,所述报告请求携带有随机数;所述安全处理器,还用于将所述随机数携带在所述证明报告中,以及,在将证明报告发送给安全虚拟机之前,使用运行机密计算环境的芯片的芯片私钥,对证明报告进行签名。
28.一种机密计算系统,其特征在于,包括:远程证明发起端设备、机密计算服务端设备和远程证明服务端设备;
其中,所述远程证明发起端设备为具有机密计算认证需求的参与角色所对应的电子设备;
所述机密计算服务端设备为机密计算服务端所对应的电子设备,机密计算服务端包括机密计算服务提供方和/或机密计算平台提供方;所述机密计算服务端设备被配置为执行如权利要求1-15任一项所述的虚拟机度量方法,或者,如权利要求16-19任一项所述的机密计算认证方法;
所述远程证明服务端设备为可信实体所对应的电子设备,所述远程证明服务端设备被配置为执行如权利要求20-24任一项所述的机密计算认证方法。
29.一种存储介质,其特征在于,所述存储介质存储有一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如权利要求1-15任一项所述的虚拟机度量方法,或者,如权利要求16-19任一项所述的机密计算认证方法,或者,如权利要求20-24任一项所述的机密计算认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311332315.1A CN117453343A (zh) | 2023-10-13 | 2023-10-13 | 虚拟机度量、机密计算认证方法、设备、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311332315.1A CN117453343A (zh) | 2023-10-13 | 2023-10-13 | 虚拟机度量、机密计算认证方法、设备、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117453343A true CN117453343A (zh) | 2024-01-26 |
Family
ID=89584589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311332315.1A Pending CN117453343A (zh) | 2023-10-13 | 2023-10-13 | 虚拟机度量、机密计算认证方法、设备、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453343A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742898A (zh) * | 2024-02-20 | 2024-03-22 | 南湖实验室 | 一种新型机密计算应用层度量方法及其系统 |
-
2023
- 2023-10-13 CN CN202311332315.1A patent/CN117453343A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742898A (zh) * | 2024-02-20 | 2024-03-22 | 南湖实验室 | 一种新型机密计算应用层度量方法及其系统 |
CN117742898B (zh) * | 2024-02-20 | 2024-05-31 | 南湖实验室 | 一种新型机密计算应用层度量方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113438289B (zh) | 基于云计算的区块链数据处理方法及装置 | |
US8856544B2 (en) | System and method for providing secure virtual machines | |
CN112468473B (zh) | 可信应用程序的远程证明方法及装置、电子设备 | |
US10382195B2 (en) | Validating using an offload device security component | |
US9871821B2 (en) | Securely operating a process using user-specific and device-specific security constraints | |
US9288155B2 (en) | Computer system and virtual computer management method | |
US9626512B1 (en) | Validating using an offload device security component | |
US8560857B2 (en) | Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable program | |
US8925055B2 (en) | Device using secure processing zone to establish trust for digital rights management | |
TWI598814B (zh) | 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法 | |
US9413538B2 (en) | Cryptographic certification of secure hosted execution environments | |
US12045355B2 (en) | Cryptographic trust enabled devices of cybersecurity systems | |
US10243739B1 (en) | Validating using an offload device security component | |
CN111262889B (zh) | 一种云服务的权限认证方法、装置、设备及介质 | |
US10211985B1 (en) | Validating using an offload device security component | |
CN112236770A (zh) | 数据处理 | |
CN117453343A (zh) | 虚拟机度量、机密计算认证方法、设备、系统及存储介质 | |
CN109150811B (zh) | 一种实现可信会话的方法及装置、计算设备 | |
CN116680687A (zh) | 数据处理方法、装置、设备和存储介质 | |
JP6741236B2 (ja) | 情報処理装置 | |
JP5288173B2 (ja) | プラットフォーム完全性検証システム及び方法 | |
Achemlal et al. | Building trust in virtualized networks | |
CN118504005A (zh) | 密钥管理方法、装置、片上系统、计算设备及存储介质 |
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 |