CN112364343A - 虚拟机监控器秘密的保护方法、装置和电子设备 - Google Patents
虚拟机监控器秘密的保护方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112364343A CN112364343A CN202011280930.9A CN202011280930A CN112364343A CN 112364343 A CN112364343 A CN 112364343A CN 202011280930 A CN202011280930 A CN 202011280930A CN 112364343 A CN112364343 A CN 112364343A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- machine monitor
- encrypted data
- platform module
- trusted platform
- 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.)
- Granted
Links
Images
Classifications
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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
- 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/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提出了一种虚拟机监控器秘密的保护方法、装置和电子设备,其中,上述虚拟机监控器秘密的保护方法中,Host OS kernel从initramfs中加载虚拟机监控器,度量虚拟机监控器的完整性,将完整性度量值扩展到TPM的寄存器中,之后在任何用户态应用执行之前启动虚拟机监控器;虚拟机监控器在TPM的非易失存储器中查找加密数据;如果查找到,则虚拟机监控器读取所述加密数据,使用TPM的寄存器中的所述完整性度量值,对所述加密数据进行解封操作,获得秘密,并将所述秘密保存在所述虚拟机监控器的内存中;所述虚拟机监控器扩展常数到TPM的寄存器中,掩盖TPM的寄存器中的所述完整性度量值。
Description
【技术领域】
本说明书实施例涉及互联网技术领域,尤其涉及一种虚拟机监控器秘密的保护方法、装置和电子设备。
【背景技术】
虚拟化是云计算的基础支撑技术,而虚拟机监控器(hypervisor,或者virtualmachine monitor,VMM)是实现硬件虚拟化功能和虚拟机(Virtual Machine,VM)管理的核心部件。虚拟机监控器通常需要维护一些秘密(secrets),包括代表自身身份的签名密钥对,或者用于为虚拟机监控器之上的可信执行环境(trusted execution environment,TEE)派生密钥的秘密随机数等。这些秘密一般需要进行持久化存储,以允许虚拟机监控器在重启后能够保持原来的状态,持续地提供业务服务。可信平台模块(Trusted PlatformModule,TPM)提供基于平台配置寄存器(Platform Configuration Register,PCR)的封装(seal)/解封(unseal)功能,使用TPM内的一个私钥对数据进行加密并提供完整性保护。封装操作允许虚拟机监控器将秘密与某个(或者某几个)代表虚拟机监控器自身完整性状态的PCR封装到一起。在虚拟机监控器希望恢复这些秘密时,TPM只有在封装时使用的PCR寄存器的值与这些寄存器的当前值完全相同时,才会解封出这些数据。这确保了虚拟机监控器只有在正确的完整性状态下才能恢复自己以前封装的秘密。
但在存在恶意应用的场景中,TPM封装机制本身并不能保证只有虚拟机监控器才能解封其秘密。由于TPM PCR是对所有软件共享的,且PCR的值也无法保密,恶意应用可以解封出虚拟机监控器的秘密。恶意应用可以在虚拟机监控器的完整性度量值被扩展到PCR之后,调用TPM的解封命令,使用当前PCR中的正确的虚拟机监控器的完整性度量值来解封虚拟机监控器的秘密。恶意应用也可以在虚拟机监控器的完整性度量值扩展到PCR之前,向PCR中扩展数据,使得PCR中的值正好与虚拟机监控器的完整性度量值完全一致,然后调用TPM的解封命令去恢复以前虚拟机监控器封装的秘密。恶意应用如果能够恢复虚拟机监控器的秘密,就可以实现对虚拟机监控器身份的冒充,或者威胁虚拟机监控器之上运行的TEE产生的数据的机密性。
因此,需要提供一种对虚拟机监控器秘密(hypervisor秘密)进行保护的方案,以确保虚拟机监控器秘密的机密性。
【发明内容】
本说明书实施例提供了一种虚拟机监控器秘密的保护方法、装置和电子设备,以防止恶意应用恢复虚拟机监控器封装的秘密,确保虚拟机监控器秘密的机密性。
第一方面,本说明书实施例提供一种虚拟机监控器秘密的保护方法,包括:主机操作系统内核从临时文件系统中加载虚拟机监控器,度量所述虚拟机监控器的完整性,将所述虚拟机监控器的完整性度量值扩展到可信平台模块的寄存器中,之后在任何用户态应用执行之前启动所述虚拟机监控器;所述虚拟机监控器在所述可信平台模块的非易失存储器中查找加密数据;如果查找到,则所述虚拟机监控器读取所述加密数据;所述虚拟机监控器使用所述可信平台模块的寄存器中的所述完整性度量值,对所述加密数据进行解封操作,获得秘密,并将所述秘密保存在所述虚拟机监控器的内存中;所述虚拟机监控器扩展常数到所述可信平台模块的寄存器中,掩盖所述可信平台模块的寄存器中的所述完整性度量值。
上述虚拟机监控器秘密的保护方法从时间维度将不同软件部件对TPM PCR的使用划分成不同的阶段。使用TPM PCR的软件部件在一个阶段结束时,扩展常数到PCR中,以掩盖PCR中的值,使得其他软件部件在下一个阶段无法使用当前阶段的PCR值,从而阻止其它部件unseal当前软件部件的秘密,确保虚拟机监控器秘密的机密性。
其中一种可能的实现方式中,所述虚拟机监控器在可信平台模块的非易失存储器中查找加密数据之后,还包括:如果所述虚拟机监控器在可信平台模块的非易失存储器中未查找到所述加密数据,则所述虚拟机监控器产生秘密,将所述秘密保存到所述虚拟机监控器的内存中;将所述秘密与所述可信平台模块的寄存器中的所述完整性度量值进行封装,获得加密数据;将所述加密数据保存到所述可信平台模块的非易失存储器中;扩展常数到所述可信平台模块的寄存器中,掩盖所述可信平台模块的寄存器中的所述完整性度量值。
其中一种可能的实现方式中,所述将所述加密数据保存到所述可信平台模块的非易失存储器中包括:所述虚拟机监控器获取所述加密数据的长度;从所述可信平台模块的非易失存储器中分配所述加密数据的存储空间,所述存储空间的大小大于或等于所述加密数据的长度;将所述加密数据保存到所述存储空间中。
第二方面,本说明书实施例提供一种虚拟机监控器秘密的保护装置,包括:主机操作系统内核模块,用于从临时文件系统中加载虚拟机监控器,度量所述虚拟机监控器的完整性,将所述虚拟机监控器的完整性度量值扩展到可信平台模块的寄存器中,之后在任何用户态应用执行之前启动所述虚拟机监控器;所述虚拟机监控器,用于在所述可信平台模块的非易失存储器中查找加密数据;如果查找到,则读取所述加密数据,使用所述可信平台模块的寄存器中的所述完整性度量值,对所述加密数据进行解封操作,获得秘密,并将所述秘密保存在所述虚拟机监控器的内存中;以及扩展常数到所述可信平台模块的寄存器中,掩盖所述可信平台模块的寄存器中的所述完整性度量值。
其中一种可能的实现方式中,所述虚拟机监控器,还用于在可信平台模块的非易失存储器中查找加密数据之后,如果未查找到所述加密数据,则产生秘密,将所述秘密保存到所述虚拟机监控器的内存中,将所述秘密与所述可信平台模块的寄存器中的所述完整性度量值进行封装,获得加密数据;将所述加密数据保存到所述可信平台模块的非易失存储器中;以及扩展常数到所述可信平台模块的寄存器中,掩盖所述可信平台模块的寄存器中的所述完整性度量值。
其中一种可能的实现方式中,所述虚拟机监控器,具体用于获取所述加密数据的长度,从所述可信平台模块的非易失存储器中分配所述加密数据的存储空间,所述存储空间的大小大于或等于所述加密数据的长度;以及将所述加密数据保存到所述存储空间中。
第三方面,本说明书实施例提供一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
第四方面,本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。
应当理解的是,本说明书实施例的第二~四方面与本说明书实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
【附图说明】
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书一个实施例提供的虚拟机监控器秘密的保护方法的实现架构图;
图2为本说明书一个实施例提供的虚拟机监控器秘密的保护方法的流程图;
图3为本说明书一个实施例提供的虚拟机监控器秘密的保护装置的结构示意图;
图4为本说明书一个实施例提供的电子设备的结构示意图。
【具体实施方式】
为了更好的理解本说明书的技术方案,下面结合附图对本说明书实施例进行详细描述。
应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。
目前计算机系统一般使用TPM度量软件系统和部件的完整性,并把部件的完整性度量值扩展到PCR中。此时PCR中的值,是代表了软件部件或者系统完整性的完整性度量值。例如计算机系统启动时,主机操作系统内核(host operating system kernel,Host OSkernel)可以度量虚拟机监控器代码和数据的完整性,将得到的完整性度量值扩展到PCR中,此时在PCR中的值是虚拟机监控器的完整性度量值。为了保护软件部件的秘密,TPM提供了seal/unseal机制,使用只有TPM知道的密钥对软件的秘密数据提供机密性和完整性保护。软件在调用TPM的seal命令时,可以指定一组PCR,将这组PCR的值与秘密数据一起seal。这组PCR记录了在执行seal时软件部件或系统的完整性度量值,将来unseal时这些寄存器的值需要与seal时这些寄存器的值完全相同,TPM才会成功unseal软件的秘密数据。由于seal时使用的密钥只有TPM知道,所以只有同一块TPM硬件才有可能unseal以前seal的秘密数据。
一个TPM PCR(PCR 0-15)通常是对系统上所有的软件部件共享的,任何软件部件都可以读取和扩展(extend)该寄存器。这造成了在某些情况下计算机系统上的其它软件部件也可以unseal以前某个特定部件seal的秘密数据。例如假设计算机系统上有A、B和C 3个软件部件,其中B和C是可信的,A是不可信的且包含某些恶意逻辑,A有能力在B启动之前或者之后运行。假设现在C在启动B时,对B进行完整性度量并扩展度量值到PCR13。B开始执行后,使用PCR13 seal了自己的秘密。在此场景下,A可以发起两种攻击去窃取B的秘密。首先,A可以等待B的完整性度量值被扩展到PCR 13之后,调用TPM的unseal命令,利用PCR13中B的正确的完整性度量值去unseal B的秘密。其次,A也可以在下次计算机系统启动时,抢在B启动之前,扩展PCR13使其值与B的完整性度量值相同,然后调用TPM unseal命令可以成功unseal B以前seal的秘密。
目前业界主要有三种类型的虚拟机监控器。类型1(也称为类型I)虚拟机监控器直接运行在主机的硬件上来控制硬件和管理虚拟机,典型代表是Xen。这种虚拟机监控器的加载和运行不依赖于另外一个Host OS kernel,因此一般由启动加载器(Boot Loader)加载,并且独立运行。由于这种虚拟机监控器的加载不依赖于Host OS kernel,所以通常需要自己负责主机硬件初始化等工作,因而代码规模庞大,功能结构复杂,运行效率也不高。
类型2(也称类型II)虚拟机监控器运行在操作系统环境下,依赖于Host OSkernel进行加载和运行,其代表是Linux KVM或VMware 5.5以前版本等。类型2虚拟机监控器由于可以依赖Host OS kernel进行主机硬件初始化,所以自身代码规模相对较小,功能架构清晰,运行效率高。这种虚拟机监控器由于在运行时也需要依赖于Host OS kernel,因此在基于这种虚拟机监控器构建安全系统时很难保持较小的可信计算基(trustedcomputing base,TCB),因为Host OS kernel与虚拟机监控器都会进入TCB。
类型1.5虚拟机监控器,通常依赖于Host OS kernel进行加载,但一旦运行起来可以完全摆脱对Host OS kernel的依赖并虚拟化Host OS,典型代表是jailhouse。类型1.5虚拟机监控器由于无需自己负责硬件初始化,可以保持相对较小的代码规模和清晰的功能结构。另外,由于这种虚拟机监控器在运行时可以不依赖于并且可以虚拟化Host OS,因此基于这种虚拟机监控器构建的安全系统可以保持相对比较小的TCB。
在基于TPM实施类型1.5虚拟机监控器的可信启动过程中,Host OS kernel被认为是可信的,因为其完整性可以很容易地(由Boot Loader)进行度量。虚拟机监控器的完整性可以由Host OS进行度量并扩展到PCR,所以其也被认为是可信的。虚拟机监控器在启动过程中,可以产生秘密并与自己的完整性度量值一起seal保存。Host OS上的应用软件由于数目众多,且运行顺序不固定,难以进行有效的完整性度量,所以被认为是不可信的,可能含有恶意代码逻辑。Host OS上的恶意应用软件可以对hypervisor seal的秘密发起攻击。具体地,Host OS上的恶意应用可以在类型1.5虚拟机监控器的完整性度量值扩展到PCR之后,调用TPM unseal命令去unseal虚拟机监控器seal的秘密。另外,Host OS上的恶意应用可以抢在虚拟机监控器启动之前,扩展将来用于存储虚拟机监控器完整性度量值的PCR,使其值与虚拟机监控器完整性度量值相同,然后调用TPM unseal命令去unseal虚拟机监控器以前seal的秘密。这些攻击源于PCR在可信软件部件(Host OS kernel和虚拟机监控器)和非可信软件部件(Host OS上的应用软件)之间的共享。非可信软件部件也可以使用和操纵可信软件部件使用的TPM PCR,在某些场景下会导致可信软件部件seal的秘密的机密性的丧失。
针对该问题,现有的一种方案为TPM Locality:
TPM设备支持将接口寄存器从空间上划分成多个Locality,分别对应不同的地址范围。通过控制对这些地址范围的访问权限,可以限制不同的软件部件使用不同的TPMLocality。例如:可以让虚拟机监控器使用Locality 2去seal自己的秘密,并且阻止HostOS访问Locality 2。这样Host OS上的应用就无法unseal虚拟机监控器的秘密。目前TPM规范支持Locality 0-4,这是一种从空间的维度对TPM PCR进行划分和使用分配的方法。
这种方法的优势是:可以防止Host OS应用unseal虚拟机监控器seal产生的秘密,安全性好。
但是,该方案受到硬件平台的限制而难以实施。在Intel x86平台上,TPMLocality 1-4的地址空间被芯片组封锁,用于供可信执行技术(trusted executiontechnology,TXT)使用。在不使用TXT的情况下,虚拟机监控器无法使用Locality 1-4。即使使用TXT加载虚拟机监控器也存在两个问题:第一,开启TXT会给主机管理员引起较大的安全管理和配置负担;其次,虚拟机监控器的加载流流程也需要进行很大的修改才能使用TXT。
现有的另一种方案是在虚拟机监控器中实现虚拟的TPM设备:
虚拟机监控器将物理TPM保留给自己使用,阻止Host OS访问物理TPM的寄存器。同时为了满足Host OS kernel以及应用对TPM的使用需求,虚拟机监控器通过软件实现一个虚拟的TPM设备,并提供接口给Host OS使用。
这种方法的优势:可以防止Host OS应用unseal虚拟机监控器seal产生的秘密,安全性好。
但是这种方案会增大虚拟机监控器的代码规模。虚拟机监控器通过软件实现一个虚拟的TPM设备,需要很大的代码量,实现的代价较高。在虚拟机监控器中加入大量的虚拟TPM的代码,可能会引入新的安全漏洞,危及虚拟机监控器以及整个软件系统的安全性。
现有的再一种方案是在虚拟机监控器中解析和拦截Host OS对物理TPM特定PCR的使用:
虚拟机监控器保留某些特定的PCR寄存器给自己使用。在虚拟机监控器中解析所有来自Host OS的访问TPM的命令,识别其要访问的PCR寄存器,拦截那些访问保留的PCR的命令。
这种方案的优势是可以防止Host OS应用unseal虚拟机监控器seal产生的秘密,安全性好。
但是这种方案会增大虚拟机监控器的代码规模。TPM命令众多,参数结构复杂。虚拟机监控器解析来自Host OS的访问TPM的命令,需要很大的代码量,实现的代价较高。在虚拟机监控器中加入大量的新代码,可能会引入新的安全漏洞,危及虚拟机监控器以及整个软件系统的安全性。
基于以上问题,本说明书实施例提供了一种虚拟机监控器秘密的保护方法,从时间维度将不同软件部件对TPM PCR的使用划分成不同的阶段。使用TPM PCR的软件部件在一个阶段结束时,扩展常数到PCR中,以掩盖PCR中的值,使得其他软件部件在下一个阶段无法使用当前阶段的PCR值,以阻止其它部件unseal当前软件部件的秘密。本说明书实施例提供的方法具有如下优势:
1)无需在虚拟机监控器引入大量代码,不增大TCB。本说明书实施例提供的方法无需虚拟化TPM设备或者解析TPM命令,可以通过很少量代码就能实现。这可以避免增大虚拟机监控器的代码规模,并且显著降低了引入新的安全漏洞的风险;
2)安全性强。本说明书实施例提供的方法确保虚拟机监控器先于Host OS的应用获得PCR的使用权。虚拟机监控器在使用PCR中的完整性度量值unseal秘密之后,通过扩展常数到PCR中,掩盖PCR中的完整性度量值,可以有效防止Host OS上的应用恢复虚拟机监控器的秘密;
3)平台适应性强。本说明书实施例提供的方法只依赖于TPM本身的工作机制,不受X86平台上对TPM Locality限制的影响,可以在各种硬件平台(X86,ARM)上工作。
本说明书实施例提供的虚拟机监控器秘密的保护方法的核心技术思路是从时间维度把对TPM PCR的使用划分成先后2个阶段,使得虚拟机监控器在第1个阶段获得对PCR中自身完整性度量值的使用权,完成seal或unseal自己的秘密,将后继需要使用的秘密放到自己的内存中,然后通过扩展常数到PCR中掩盖自己的完整性度量值,使得Host OS的应用无法在第2个阶段使用PCR中的虚拟机监控器的完整性度量值,阻止Host OS应用unseal虚拟机监控器seal的秘密。为了确保虚拟机监控器可以在第1个阶段自己需要后继使用的秘密,本说明书实施例将虚拟机监控器seal产生的加密数据写到TPM的非易失存储器(non-volatile memory,NV)中,并在虚拟机监控器启动后从TPM NV中读取加密数据并进行unseal。
对于Type 1.5的虚拟机监控器,本说明书实施例要求其在任何Host OS应用运行前完成加载。一种可行的方法是从临时文件系统(initramfs)中通过一个内核模块(kernelmodule)去加载虚拟机监控器,在计算机系统进入用户空间之前完成虚拟机监控器的启动;另外一种可行的方法是,把虚拟机监控器放到Host OS kernel的镜像(image)中,并使得kernel在启动完成后直接加载虚拟机监控器。这些方法都能确保虚拟机监控器在任何HostOS应用运行之前完成加载。本说明书实施例对虚拟机监控器的加载方式不作限定,只要虚拟机监控器可以在任何Host OS应用运行前完成加载即可。
图1为本说明书一个实施例提供的虚拟机监控器秘密的保护方法的实现架构图,如图1所示,无论是从initramfs中通过kernel module,还是从kernel image中通过kernel自身,虚拟机监控器的加载总是通过Host OS kernel完成的。因此,虚拟机监控器的加载只能在Host OS kernel加载完成之后才能进行。同时,无论是哪种情况,虚拟机监控器的加载必定在任何Host OS上的应用执行之前。由此从对TPM PCR使用的角度,本说明书实施例把虚拟机监控器加载完成之前定义为第一阶段,把虚拟机监控器加载完成之后定义为第二阶段。在第一阶段,Host OS kernel启动完成之后,会度量虚拟机监控器的完整性并将虚拟机监控器的完整性度量值扩展到PCR 13中,然后加载虚拟机监控器。虚拟机监控器在加载过程中,会使用PCR 13来seal和unseal秘密,并把seal产生的加密数据写入TPM NV中,把unseal出来的秘密放到自己的内存中。完成了秘密的seal和unseal之后,虚拟机监控器会扩展一个常数到PCR 13中,掩盖PCR 13中的虚拟机监控器的完整性度量值。此时第一阶段结束。在第二阶段,Host OS应用获得对TPM PCR的使用权。
在第一阶段,虚拟机监控器会从TPM NV中读取加密数据以进行unseal,unseal出来的秘密会放到虚拟机监控器的内存中。由于虚拟机监控器的内存是隔离的,Host OSkernel和应用都不能访问虚拟机监控器内存中的秘密,所以这样存放秘密是安全的。虚拟机监控器所有的seal和unseal操作都在第一阶段完成,此时PCR13中的值是虚拟机监控器的完整性度量值。在第一阶段,虚拟机监控器完成秘密的seal和unseal后,会扩展一个常数到PCR13中以掩盖PCR13中的虚拟机监控器的完整性度量值。这个常数可以是选定的一个固定值,如0xff..ffl(16进制的重复的l个ff,长度l与寄存器按照字节数计算的长度相同)。TPM只允许通过扩展操作去修改PCR的值。当扩展值V到寄存器中后,寄存器的值变成Hash(M+V),其中Hash是哈希操作,“+”是比特串连接操作,M是寄存器原来的值。假设虚拟机监控器的完整性度量值为N,则扩展N到PCR13之后,PCR13中的值为Hash(0x00l+N),其中0x00l代表寄存器长度的0(寄存器0-15在系统启动时被重置为0x00l)。在扩展常数C到PCR13之后,PCR13的值变为Hash(Hash(0x00l+N)+C)。
由于虚拟机监控器在任何Host OS应用运行之前完成加载,任何Host OS应用对PCR13的读取和操纵都发生在第二阶段。进入第二阶段之后,PCR13中的值已经被掩盖,任何应用都无法直接使用PCR13中的值去unseal虚拟机监控器seal的秘密。如果有恶意应用希望把PCR13中的值恢复到扩展常数到该寄存器之前的值,该恶意应用需要计算X满足Hash(Hash(Hash(0x00l+N)+C)+X)=Hash(0x00l+N),由于Hash函数的单向性保证,这在计算上是不可行的。所以进入第二阶段后,任何Host OS应用都无法unseal虚拟机监控器的秘密。第二阶段中,Host OS应用仍然可以继续使用PCR 13去seal和unseal自己的数据,但此时PCR13中的值已不是虚拟机监控器的完整性度量值。
图2为本说明书一个实施例提供的虚拟机监控器秘密的保护方法的流程图,如图2所示,上述虚拟机监控器秘密的保护方法可以包括:
步骤202,主机操作系统内核(Host OS kernel)从临时文件系统(initramfs)中加载虚拟机监控器,度量上述虚拟机监控器的完整性,将上述虚拟机监控器的完整性度量值扩展到TPM的寄存器中,之后在任何用户态应用执行之前启动上述虚拟机监控器。
步骤204,虚拟机监控器在上述TPM的非易失存储器中查找加密数据。如果查找到,则执行步骤206;如果虚拟机监控器在TPM的非易失存储器中未查找到上述加密数据,则执行步骤212。
步骤206,虚拟机监控器读取上述加密数据。
步骤208,虚拟机监控器使用TPM的寄存器中的上述完整性度量值,对上述加密数据进行解封(unseal)操作,获得秘密,并将上述秘密保存在上述虚拟机监控器的内存中。
步骤210,虚拟机监控器扩展常数到TPM的寄存器中,掩盖TPM的寄存器中的上述完整性度量值。
步骤212,虚拟机监控器产生秘密,将上述秘密保存到上述虚拟机监控器的内存中。
步骤214,将上述秘密与TPM的寄存器中的上述完整性度量值进行封装(seal),获得加密数据。
步骤216,将上述加密数据保存到TPM的非易失存储器中。
其中,TPM的非易失存储器可以为TPM的NV。
具体地,将上述加密数据保存到TPM的非易失存储器中可以为:虚拟机监控器获取上述加密数据的长度,从可信平台模块的非易失存储器中分配上述加密数据的存储空间,上述存储空间的大小大于或等于所述加密数据的长度;最后将上述加密数据保存到上述存储空间中。
步骤218,扩展常数到TPM的寄存器中,掩盖TPM的寄存器中的上述完整性度量值。
具体地,Host OS kernel从initramfs中加载hypervisor,度量上述hypervisor的完整性,将上述hypervisor的完整性度量值扩展到PCR13中,之后在任何用户态应用执行之前启动上述hypervisor。
然后,hypervisor在TPM NV中查找加密数据。
如果查找到,则hypervisor从TPM NV中读取上述加密数据,然后hypervisor调用TPM unseal命令,使用PCR13中的hypervisor完整性度量值unseal出秘密。之后,hypervisor把秘密保存自己的内存中,供后续使用。
接下来,hypervisor扩展常数到PCR 13中,掩盖其中的hypervisor完整性度量值,此后对PCR的使用进入第二阶段。Host OS的应用可以继续扩展PCR 13,或者使用PCR13seal或者unseal自己的数据,但无法使用原来PCR13中的hypervisor完整性度量值。
而如果hypervisor在TPM NV中查找加密数据之后,hypervisor并未在TPM NV中查找到加密数据,那么hypervisor加载过程中产生秘密,如代表自己身份的签名密钥对或者用于为TEE派生密钥的机密随机数。产生的秘密被保存到hypervisor的内存中,供hypervisor后继使用。
然后,hypervisor调用TPM的seal命令,把产生的秘密与PCR 13的值seal到一起,得到加密数据。hypervisor从TPM NV中分配一块存储空间,大小等于加密数据的长度,之后,hypervisor将加密数据写入到TPM NV中。
接下来,hypervisor扩展常数到PCR 13中,掩盖其中的hypervisor的完整性度量值,此后对PCR的使用进入第二阶段。Host OS的应用可以继续扩展PCR 13,或者使用PCR13seal或者unseal自己的数据,但无法使用原来PCR 13中的hypervisor完整性度量值。
本说明书实施例中,hypervisor在任何Host OS应用运行之前完成加载。一方面,hypervisor加载时,任何磁盘文件系统等系统服务都尚未开始运行。另一方面,hypervisor需要尽早地unseal出自己的秘密,否则会产生攻击窗口。如果hypervisor使用磁盘文件系统存储加密数据,hypervisor尽管可以先行启动,但必须等到磁盘文件系统就绪后,才能读取加密数据并执行unseal。这样就无法从时间的维度,将PCR的使用划分成2个阶段。这会带来安全隐患,导致安全攻击。
文件系统就绪时,很多系统服务和应用都已经开始运行,恶意应用可以抢在hypervisor执行unseal操作之前,利用PCR 13中的hypervisor完整性度量值,unseal出hypervisor的秘密。由此可见,使用TPM NV存储hypervisor seal产生的加密数据对于方案的安全性是必须的。
于是,本说明书实施例在hypervisor首次启动时,使用一个固定的index从TPM NV中分配一块存储空间,大小与加密数据的大小相同。然后,hypervisor可以向分配的存储空间中写入加密数据。后继启动时,hypervisor从NV中读取加密数据,并unseal出需要的秘密,放入自己的内存。这样hypervisor无需等待磁盘文件系统就绪,可以尽早地seal和unseal秘密。
由于TPM seal得到的加密数据本身就带有机密性和完整性保护,所以TPM NV上的存储空间本身并不需要安全保护。hypervisor可以通过检测指定index的NV条目是否存在,决定是否是首次启动。
上述虚拟机监控器秘密的保护方法从时间维度将不同软件部件对TPM PCR的使用划分成不同的阶段。使用TPM PCR的软件部件在一个阶段结束时,扩展常数到PCR中,以掩盖PCR中的值,使得其他软件部件在下一个阶段无法使用当前阶段的PCR值,从而阻止其它部件unseal当前软件部件的秘密,确保虚拟机监控器秘密的机密性。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图3为本说明书一个实施例提供的虚拟机监控器秘密的保护装置的结构示意图,如图3所示,上述虚拟机监控器秘密的保护装置可以包括:主机操作系统内核模块31和虚拟机监控器32;
其中,主机操作系统内核模块31,用于从临时文件系统中加载虚拟机监控器,度量上述虚拟机监控器的完整性,将上述虚拟机监控器的完整性度量值扩展到可信平台模块的寄存器中,之后在任何用户态应用执行之前启动上述虚拟机监控器;
虚拟机监控器32,用于在可信平台模块的非易失存储器中查找加密数据;如果查找到,则读取上述加密数据,使用可信平台模块的寄存器中的完整性度量值,对上述加密数据进行解封操作,获得秘密,并将上述秘密保存在虚拟机监控器的内存中;以及扩展常数到可信平台模块的寄存器中,掩盖上述可信平台模块的寄存器中的完整性度量值。
进一步地,虚拟机监控器32,还用于在可信平台模块的非易失存储器中查找加密数据之后,如果未查找到上述加密数据,则产生秘密,将上述秘密保存到虚拟机监控器的内存中,将上述秘密与上述可信平台模块的寄存器中的完整性度量值进行封装,获得加密数据;将上述加密数据保存到可信平台模块的非易失存储器中;以及扩展常数到上述可信平台模块的寄存器中,掩盖上述可信平台模块的寄存器中的上述完整性度量值。
本实施例中,虚拟机监控器32,具体用于获取上述加密数据的长度,从可信平台模块的非易失存储器中分配上述加密数据的存储空间,上述存储空间的大小大于或等于上述加密数据的长度;以及将上述加密数据保存到上述存储空间中。
图3所示实施例提供的虚拟机监控器秘密的保护装置可用于执行本说明书图2所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图4为本说明书一个实施例提供的电子设备的结构示意图,如图4所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本说明书图2所示实施例提供的虚拟机监控器秘密的保护方法。
其中,上述电子设备可以为云服务器。
图4示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图4显示的电子设备仅仅是一个示例,不应对本说明书实施例的功能和使用范围带来任何限制。
如图4所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420,存储器430,以及连接不同组件(包括存储器430、通信接口420和处理单元410)的通信总线440。
通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,或者使用多种总线结构中的任意总线结构的局域总线。举例来说,通信总线440可以包括但不限于工业标准体系结构(industry standardarchitecture,ISA)总线,微通道体系结构(micro channel architecture,MAC)总线,增强型ISA总线、视频电子标准协会(video electronics standards association,VESA)局域总线以及外围组件互连(peripheral component interconnection,PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory,RAM)和/或高速缓存存储器。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本说明书图2所示实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书图2所描述的实施例中的功能和/或方法。
处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本说明书图2所示实施例提供的虚拟机监控器秘密的保护方法。
本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书图2所示实施例提供的虚拟机监控器秘密的保护方法。
上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(read only memory,ROM)、可擦式可编程只读存储器(erasable programmable read onlymemory,EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radio frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localarea network,LAN)或广域网(wide area network,WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、无线手持设备、平板电脑(tablet computer)、手机、MP3播放器、MP4播放器等。
在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (8)
1.一种虚拟机监控器秘密的保护方法,包括:
主机操作系统内核从临时文件系统中加载虚拟机监控器,度量所述虚拟机监控器的完整性,将所述虚拟机监控器的完整性度量值扩展到可信平台模块的寄存器中,之后在任何用户态应用执行之前启动所述虚拟机监控器;
所述虚拟机监控器在所述可信平台模块的非易失存储器中查找加密数据;
如果查找到,则所述虚拟机监控器读取所述加密数据;
所述虚拟机监控器使用所述可信平台模块的寄存器中的所述完整性度量值,对所述加密数据进行解封操作,获得秘密,并将所述秘密保存在所述虚拟机监控器的内存中;
所述虚拟机监控器扩展常数到所述可信平台模块的寄存器中,掩盖所述可信平台模块的寄存器中的所述完整性度量值。
2.根据权利要求1所述的方法,其中,所述虚拟机监控器在可信平台模块的非易失存储器中查找加密数据之后,还包括:
如果所述虚拟机监控器在可信平台模块的非易失存储器中未查找到所述加密数据,则所述虚拟机监控器产生秘密,将所述秘密保存到所述虚拟机监控器的内存中;
将所述秘密与所述可信平台模块的寄存器中的所述完整性度量值进行封装,获得加密数据;
将所述加密数据保存到所述可信平台模块的非易失存储器中;
扩展常数到所述可信平台模块的寄存器中,掩盖所述可信平台模块的寄存器中的所述完整性度量值。
3.根据权利要求2所述的方法,其中,所述将所述加密数据保存到所述可信平台模块的非易失存储器中包括:
所述虚拟机监控器获取所述加密数据的长度;
从所述可信平台模块的非易失存储器中分配所述加密数据的存储空间,所述存储空间的大小大于或等于所述加密数据的长度;
将所述加密数据保存到所述存储空间中。
4.一种虚拟机监控器秘密的保护装置,包括:
主机操作系统内核模块,用于从临时文件系统中加载虚拟机监控器,度量所述虚拟机监控器的完整性,将所述虚拟机监控器的完整性度量值扩展到可信平台模块的寄存器中,之后在任何用户态应用执行之前启动所述虚拟机监控器;
所述虚拟机监控器,用于在所述可信平台模块的非易失存储器中查找加密数据;如果查找到,则读取所述加密数据,使用所述可信平台模块的寄存器中的所述完整性度量值,对所述加密数据进行解封操作,获得秘密,并将所述秘密保存在所述虚拟机监控器的内存中;以及扩展常数到所述可信平台模块的寄存器中,掩盖所述可信平台模块的寄存器中的所述完整性度量值。
5.根据权利要求4所述的装置,其中,
所述虚拟机监控器,还用于在可信平台模块的非易失存储器中查找加密数据之后,如果未查找到所述加密数据,则产生秘密,将所述秘密保存到所述虚拟机监控器的内存中,将所述秘密与所述可信平台模块的寄存器中的所述完整性度量值进行封装,获得加密数据;将所述加密数据保存到所述可信平台模块的非易失存储器中;以及扩展常数到所述可信平台模块的寄存器中,掩盖所述可信平台模块的寄存器中的所述完整性度量值。
6.根据权利要求5所述的装置,其中,
所述虚拟机监控器,具体用于获取所述加密数据的长度,从所述可信平台模块的非易失存储器中分配所述加密数据的存储空间,所述存储空间的大小大于或等于所述加密数据的长度;以及将所述加密数据保存到所述存储空间中。
7.一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至3任一所述的方法。
8.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至3任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011280930.9A CN112364343B (zh) | 2020-11-16 | 2020-11-16 | 虚拟机监控器秘密的保护方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011280930.9A CN112364343B (zh) | 2020-11-16 | 2020-11-16 | 虚拟机监控器秘密的保护方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112364343A true CN112364343A (zh) | 2021-02-12 |
CN112364343B CN112364343B (zh) | 2022-05-06 |
Family
ID=74515009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011280930.9A Active CN112364343B (zh) | 2020-11-16 | 2020-11-16 | 虚拟机监控器秘密的保护方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112364343B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625484A (zh) * | 2022-03-31 | 2022-06-14 | 苏州浪潮智能科技有限公司 | 虚拟化实现方法、装置、电子设备、介质及arm平台 |
CN115033302A (zh) * | 2022-05-27 | 2022-09-09 | 天翼云科技有限公司 | 一种安全加固方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2972853A1 (en) * | 2013-03-12 | 2016-01-20 | Intel Corporation | Layered virtual machine integrity monitoring |
CN105930199A (zh) * | 2016-04-14 | 2016-09-07 | 浪潮集团有限公司 | 一种虚拟机监控器本地完整性检测的系统及实现方法 |
US20170024563A1 (en) * | 2006-12-29 | 2017-01-26 | Intel Corporation | Methods and Apparatus for Remeasuring A Virtual Machine Monitor |
CN107545184A (zh) * | 2017-08-17 | 2018-01-05 | 大唐高鸿信安(浙江)信息科技有限公司 | 云主机的可信度量系统及方法 |
CN107861793A (zh) * | 2017-11-08 | 2018-03-30 | 浪潮(北京)电子信息产业有限公司 | 虚拟硬件平台启动方法、装置、设备及计算机存储介质 |
CN109669734A (zh) * | 2017-10-13 | 2019-04-23 | 百度(美国)有限责任公司 | 用于启动设备的方法和装置 |
CN110046505A (zh) * | 2019-04-28 | 2019-07-23 | 联想(北京)有限公司 | 容器安全加固方法、系统及存储介质 |
-
2020
- 2020-11-16 CN CN202011280930.9A patent/CN112364343B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170024563A1 (en) * | 2006-12-29 | 2017-01-26 | Intel Corporation | Methods and Apparatus for Remeasuring A Virtual Machine Monitor |
EP2972853A1 (en) * | 2013-03-12 | 2016-01-20 | Intel Corporation | Layered virtual machine integrity monitoring |
CN105930199A (zh) * | 2016-04-14 | 2016-09-07 | 浪潮集团有限公司 | 一种虚拟机监控器本地完整性检测的系统及实现方法 |
CN107545184A (zh) * | 2017-08-17 | 2018-01-05 | 大唐高鸿信安(浙江)信息科技有限公司 | 云主机的可信度量系统及方法 |
CN109669734A (zh) * | 2017-10-13 | 2019-04-23 | 百度(美国)有限责任公司 | 用于启动设备的方法和装置 |
CN107861793A (zh) * | 2017-11-08 | 2018-03-30 | 浪潮(北京)电子信息产业有限公司 | 虚拟硬件平台启动方法、装置、设备及计算机存储介质 |
CN110046505A (zh) * | 2019-04-28 | 2019-07-23 | 联想(北京)有限公司 | 容器安全加固方法、系统及存储介质 |
Non-Patent Citations (1)
Title |
---|
王晓龙等: "基于动态信任根的虚拟机监控器动态完整性度量架构", 《计算机应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625484A (zh) * | 2022-03-31 | 2022-06-14 | 苏州浪潮智能科技有限公司 | 虚拟化实现方法、装置、电子设备、介质及arm平台 |
CN115033302A (zh) * | 2022-05-27 | 2022-09-09 | 天翼云科技有限公司 | 一种安全加固方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112364343B (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11200080B1 (en) | Late load technique for deploying a virtualization layer underneath a running operating system | |
EP2973179B1 (en) | Dynamically loaded measured environment for secure code launch | |
US8321931B2 (en) | Method and apparatus for sequential hypervisor invocation | |
CN110348252B (zh) | 基于信任区的操作系统和方法 | |
CN109918919B (zh) | 认证变量的管理 | |
US9489512B2 (en) | Trustzone-based integrity measurements and verification using a software-based trusted platform module | |
US8875295B2 (en) | Memory introspection engine for integrity protection of virtual machines | |
KR100692346B1 (ko) | 시스템 완전성 및 레거시 환경 에뮬레이션을 제공하기위한 방법 | |
US10255088B2 (en) | Modification of write-protected memory using code patching | |
US8327415B2 (en) | Enabling byte-code based image isolation | |
US20200409740A1 (en) | Systems, methods, and media for trusted hypervisors | |
CN111858004A (zh) | 基于tee扩展的计算机安全世界实时应用动态加载方法及系统 | |
CN112035272A (zh) | 进程间通信的方法、装置以及计算机设备 | |
US9824225B1 (en) | Protecting virtual machines processing sensitive information | |
CN112364343B (zh) | 虚拟机监控器秘密的保护方法、装置和电子设备 | |
US10489185B2 (en) | Hypervisor-assisted approach for locating operating system data structures based on attribute matching | |
US20210103669A1 (en) | Secured interprocess communication | |
US20180267818A1 (en) | Hypervisor-assisted approach for locating operating system data structures based on notification data | |
Vahidi et al. | VETE: Virtualizing the Trusted Execution Environment | |
CN111966470B (zh) | 虚拟机监控器的加载方法、装置和电子设备 | |
Cheng et al. | Guardian: Hypervisor as security foothold for personal computers | |
US20230031974A1 (en) | Enabling spi firmware updates at runtime | |
US11513825B2 (en) | System and method for implementing trusted execution environment on PCI device | |
WO2018054466A1 (en) | Virtualization of a trusted computing base | |
Cai et al. | ALTEE: Constructing Trustworthy Execution Environment for Mobile App Dynamically |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40045952 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |