CN116126477A - 计算设备中访问tpm的方法和计算设备 - Google Patents

计算设备中访问tpm的方法和计算设备 Download PDF

Info

Publication number
CN116126477A
CN116126477A CN202310376985.7A CN202310376985A CN116126477A CN 116126477 A CN116126477 A CN 116126477A CN 202310376985 A CN202310376985 A CN 202310376985A CN 116126477 A CN116126477 A CN 116126477A
Authority
CN
China
Prior art keywords
tpm
virtual machine
state
access
machine monitor
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
Application number
CN202310376985.7A
Other languages
English (en)
Other versions
CN116126477B (zh
Inventor
刘双
陈洲
张绪峰
闫守孟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202310376985.7A priority Critical patent/CN116126477B/zh
Publication of CN116126477A publication Critical patent/CN116126477A/zh
Application granted granted Critical
Publication of CN116126477B publication Critical patent/CN116126477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

本说明书实施例中提供了一种计算设备中访问TPM的方法和计算设备,该计算设备中部署有虚拟机监控器和至少一个虚拟机。在至少一个虚拟机中存在第一虚拟机期望访问TPM的情况下,该第一虚拟机可以向虚拟机监控器对应的提供请求访问TPM的第一通知消息;虚拟机监控器可以响应于所述第一通知消息,确定TPM是否已被锁定,并在TPM未被锁定的情况下锁定TPM,使得TPM仅允许被第一虚拟机访问,并向第一虚拟机返回第一决策消息;第一虚拟机可以响应于该第一决策信息,开始对TPM进行第一访问操作,并在结束第一访问操作后向虚拟机监控器提供第二通知消息;虚拟机监控器可以响应于第二通知消息,解除对TPM的锁定。

Description

计算设备中访问TPM的方法和计算设备
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及一种计算设备中访问可信赖平台模块(trusted platform module,TPM)的方法和计算设备。
背景技术
TPM可以作为硬件可信根,真实记录计算设备中关键启动模块的启动时状态,以及记录计算设备中核心功能模块的运行时状态。TPM已经被广泛的应用到包括虚拟机(virtual machine,VM)和虚拟机监控器(virtual machine monitor,VMM;或称为hypervisor)的虚拟化技术解决方案中,以期加强虚拟机和虚拟机监控器的安全性。
希望有一种新的技术方案,以期实现在确保计算设备中部署的虚拟机监控器和至少一个虚拟机能够串行访问TPM的情况下,使得虚拟机能够更加高效的完成访问TPM。
发明内容
本说明书一个或多个实施例中提供了一种计算设备中访问TPM的方法和计算设备,可以实现在确保计算设备中部署的虚拟机监控器和至少一个虚拟机能够串行访问TPM的情况下,使得虚拟机能够更加高效的完成访问TPM。
第一方面,提供了一种计算设备中访问TPM的方法,所述计算设备中部署有虚拟机监控器和至少一个虚拟机。所述方法包括:所述虚拟机监控器从所述至少一个虚拟机中的第一虚拟机,接收请求访问所述TPM的第一通知消息;所述虚拟机监控器响应于所述第一通知消息,确定所述TPM是否已被锁定;所述虚拟机监控器在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述第一虚拟机访问,并向所述第一虚拟机返回第一决策消息,使得所述第一虚拟机开始对所述TPM进行第一访问操作;所述虚拟机监控器从所述第一虚拟机接收第二通知消息,所述第二通知消息由所述第一虚拟机在结束所述第一访问操作后发起;所述虚拟机监控器响应于所述第二通知消息,解除对所述TPM的锁定。
在一种可能的实施方式中,所述方法还包括:所述虚拟监控器在开始访问所述TPM之前,确定所述TPM是否已被锁定;所述虚拟机监控器在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述虚拟机监控器访问;所述虚拟机监控器访问所述TPM;所述虚拟机监控器在结束访问所述TPM后,解除对所述TPM的锁定。
在一种可能的实施方式中,所述虚拟机监控器中配置有与所述TPM对应的状态机,所述状态机的当前状态包括第一状态或第二状态,所述第一状态用于指示所述TPM已被锁定,所述第二状态用于指示所述TPM未被锁定。其中,所述锁定所述TPM包括:将所述状态机的当前状态置为第一状态;所述解除对所述TPM的锁定包括:将所述状态机的当前状态置为第二状态。
在一种可能的实施方式中,所述第一虚拟机配置有TPM原生驱动和TPM代理驱动;所述方法还包括:所述TPM代理驱动获取对所述TPM的访问请求,根据所述访问请求向所述虚拟机监控器提供所述第一通知消息,所述访问请求由所述第一虚拟机中的第一应用程序发起;所述TPM代理驱动响应于从所述虚拟机监控器接收的所述第一决策消息,向所述TPM原生驱动提供所述访问请求;所述TPM原生驱动根据所述访问请求执行所述第一访问操作;所述TPM代理驱动在所述TPM原生驱动结束所述第一访问操作后,向所述虚拟机监控器提供所述第二通知消息。
在一种可能的实施方式中,所述TPM代理驱动获取对所述TPM的访问请求,包括:所述TPM代理驱动通过劫持所述TPM原生驱动中用于访问所述TPM的目标访问方法,获得所述第一应用程序通过调用所述目标访问方法而发起的所述访问请求。
第二方面,提供了一种计算设备,所述计算设备中部署有虚拟机监控器和至少一个虚拟机,所述虚拟机监控器包括:消息接收单元,配置为从所述至少一个虚拟机中的第一虚拟机,接收请求访问所述TPM的第一通知消息;状态管理单元,配置为响应于所述第一通知消息,确定所述TPM是否已被锁定;所述状态管理单元,还配置为在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述第一虚拟机访问;消息发送单元,配置为在所述TPM未被锁定的情况下,向所述第一虚拟机返回第一决策消息,使得所述第一虚拟机开始对所述TPM进行第一访问操作;所述消息接收单元,还配置为从所述第一虚拟机接收第二通知消息,所述第二通知消息由所述第一虚拟机在结束所述第一访问操作后发起;所述状态管理单元,还配置为响应于所述第二通知消息,解除对所述TPM的锁定。
在一种可能的实施方式中,所述虚拟机监控器还包括访问管理单元;其中,所述状态管理单元,还配置为在所述虚拟监控器开始访问所述TPM之前,确定所述TPM是否已被锁定;所述状态管理单元,还配置为在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述虚拟机监控器访问;所述访问管理单元,配置为访问所述TPM;所述状态管理单元,还配置为在所述虚拟机监控器结束访问所述TPM后,解除对所述TPM的锁定。
在一种可能的实施方式中,所述虚拟机监控器中配置有与所述TPM对应的状态机,所述状态机的当前状态包括第一状态或第二状态,所述第一状态用于指示所述TPM已被锁定,所述第二状态用于指示所述TPM未被锁定;其中,所述状态管理单元,具体配置为将所述状态机的当前状态 置为第一状态;所述状态管理单元,具体配置为将所述状态机的当前状态置为第二状态。
在一种可能的实施方式中,所述第一虚拟机配置有TPM原生驱动和TPM代理驱动;其中,所述TPM代理驱动,配置为获取对所述TPM的访问请求,并根据所述访问请求向所述虚拟机监控器提供所述第一通知消息,所述访问请求由所述第一虚拟机中的第一应用程序发起;所述TPM代理驱动,还配置为响应于从所述虚拟机监控器接收的所述第一决策消息,向所述TPM原生驱动提供所述访问请求;所述TPM原生驱动,配置为根据所述访问请求执行所述第一访问操作;所述TPM代理驱动,还配置为在所述TPM原生驱动结束所述第一访问操作后,向所述虚拟机监控器提供所述第二通知消息。
在一种可能的实施方式中,所述TPM代理驱动,具体配置为通过劫持所述TPM原生驱动中用于访问所述TPM的目标访问方法,获得所述第一应用程序通过调用所述目标访问方法而发起的所述访问请求。
通过本说明书一个或多个实施例中提供的方法及计算设备,在至少一个虚拟机中存在第一虚拟机期望访问TPM的情况下,该第一虚拟机可以向虚拟机监控器对应的提供请求访问TPM的第一通知消息;虚拟机监控器可以响应于所述第一通知消息,确定TPM是否已被锁定,在TPM未被锁定的情况下锁定TPM,使得TPM仅允许被第一虚拟机访问,并向第一虚拟机返回第一决策消息;第一虚拟机可以响应于该第一决策信息,开始对TPM进行第一访问操作,并在结束第一访问操作后向虚拟机监控器提供第二通知消息;虚拟机监控器可以响应于第二通知消息,解除对TPM的锁定。如此,实现在确保计算设备中部署的虚拟机监控器和至少一个虚拟机能够串行访问TPM的情况下,虚拟机能够直接访问TPM而无需陷入到虚拟机监控器,可以更加高效的完成访问TPM。此外,虚拟机监控器无需模拟完整模拟TPM的功能,实现方式简单、执行效率高而且并不会对虚拟机监控器的安全性造成负面影响。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书实施例中提供的一种计算设备的结构示意图之一;
图2为示例性提供的一种在计算设备中访问TPM的方法的流程图之一;
图3为示例性提供的一种在计算设备中访问TPM的方法的流程图之二;
图4为本说明书实施例中提供的一种计算设备的结构示意图之二。
具体实施方式
下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。
TPM是计算设备中与主机系统相隔离的系统部件,基于标准的规范接口与计算设备的主机系统交互。TPM可以是具有加密功能的安全微控制器,旨在提供涉及加解密密钥的基本安全功能,通常基于提供专用物理资源的TPM来实现,例如可以实现为单一独立的TPM芯片,部分技术场景中也可以实现为在处理器中永久独立的TPM计算单元或者临时分配的TPM计算单元。其中TPM芯片作为可信计算平台的核心部件,其是包含有密码运算部件和存储部件等多个功能部件的系统级芯片,通常集成在计算设备的主板上,通过计算设备的硬件总线与计算设备中的其他功能部件进行通信。
TPM可以生成密钥,实现对密钥的存储和身份验证、高速进行数据加密和还原等等。TPM作为保护计算设备中基本输入输出系统(basic input output system,BIOS)和操作系统(Operating System,OS)不被修改的辅助处理器,可以通过可信计算组织(trustedcomputing group,TCG)软件栈(TCG Software Stack,TSS)与TPM的结合来构建跨平台与软硬件系统的可信计算体系结构。在此基础上,基于包含TPM芯片在内的各种可能的TPM,可以开发出用于实现唯一身份识别、系统登录加密、文件夹加密、网络通讯加密等各个环节的安全应用程序,安全应用程序通过访问TPM实现相关功能。
TPM已经被广泛的应用到虚拟化技术解决方案中,通过TPM来加强部署在计算设备中的虚拟机(包括虚拟机中的应用程序或其它核心功能模块)和虚拟机监控器(包括虚拟机监控器中的核心功能模块)的安全性。更具体地说,TPM可以作为计算设备的硬件可信根,真实记录计算设备中关键启动模块的启动时状态,记录计算设备中核心功能模块的运行时状态,以利保证相关模块在启动和运行阶段的安全性。其中,TCG规范中要求在计算设备中串行访问TPM;即,在计算设备中同时部署有虚拟机监控器和至少一个虚拟机的情况下,需要保证虚拟机监控器和至少一个虚拟机能够串行访问相关TPM。
在一种可能的实现方式中,可以通过虚拟机监控器来模拟TPM的功能,向虚拟机提供允许其访问的虚拟TPM。当虚拟机请求访问TPM时,可以通过访问虚拟TPM陷入到虚拟机监控器,虚拟机监控器通过虚拟TPM获得对TPM的访问请求,进而对应的访问TPM。从虚拟机监控器的视角来看,不同虚拟机对应计算设备中不同的TPM应用,虚拟机监控器可通过TSS协议栈来保证其自身和TPM应用串行访问TPM。然而,TPM功能复杂,通过虚拟机监控器来模拟TPM的功能,实现复杂度较大且会极大的增加虚拟机监控器的可信计算基(trustedcomputing base,TCB),进而对虚拟机监控器引入更多的攻击面而降低其安全性。除此之外,当虚拟机请求访问虚拟TPM时,将会引发虚拟机退出而陷入到虚拟机监控器,此过程复杂度较高且性能低下,难以支持虚拟机高效的完成对TPM的访问。
本说明书实施例中提供了一种在计算设备中访问TPM的方法和计算设备,该计算设备中部署有虚拟机监控器和至少一个虚拟机。在至少一个虚拟机中存在第一虚拟机期望访问TPM的情况下,该第一虚拟机可以向虚拟机监控器对应的提供请求访问TPM的第一通知消息;虚拟机监控器可以响应于所述第一通知消息,确定TPM是否已被锁定,在TPM未被锁定的情况下锁定TPM,使得TPM仅允许被第一虚拟机访问,并向第一虚拟机返回第一决策消息;第一虚拟机可以响应于该第一决策信息,开始对TPM进行第一访问操作,并在结束第一访问操作后向虚拟机监控器提供第二通知消息;虚拟机监控器可以响应于第二通知消息,解除对TPM的锁定。如此,实现在确保计算设备中部署的虚拟机监控器和至少一个虚拟机能够串行访问TPM的情况下,虚拟机能够直接访问TPM而无需陷入到虚拟机监控器,可以更加高效的完成访问TPM。此外,虚拟机监控器无需模拟完整模拟TPM的功能,实现简单、执行效率高而且并不会对虚拟机监控器的安全性造成负面影响。
图1为本说明书实施例中提供的一种计算设备的结构示意图之一。参见图1所示,计算设备中包括作为独立硬件的TPM,可以理解的是该计算设备中还可以包括存储器、处理器等通过硬件总线与TPM通信连接的功能部件。该计算设备中部署有虚拟机监控器和通过该虚拟机监控器创建/管理的至少一个虚拟机,例如部署有通过虚拟机监控器管理的虚拟机VM_A和虚拟机VM_B。虚拟机监控器以及其创建/管理的至少一个虚拟机均可按需访问TPM,其中需要确保该虚拟机监控器以及至少一个虚拟机仅允许串行访问TPM。
以虚拟机VM_A作为可能访问TPM的第一虚拟机为例进行示例性描述。该虚拟机VM_A中包括操作系统OS_A以及依赖其运行的安全应用程序APP_A,安全应用程序APP_A可以发起对TPM的访问请求,从而实现通过TPM来辅助完成相关事务,例如实现身份识别、系统登陆加密、文件夹加密以及网络通讯加密等功能。
经发明人研究发现,操作系统加载TPM对应的TPM原生驱动后,将会在操作系统中注册该TPM对应的芯片操作方法,该芯片操作方法是指用于访问TPM的目标访问方法。然后向用户空间导出该TPM的相关信息,使得依赖该操作系统运行的用户态应用程序,可以通过调用该目标访问方法来发起对TPM的访问请求。举例来说,Linux操作系统中,当存在应用程序期望访问TPM时,需要调用方法函数tpm_try_transmit()来向TPM发送所有的TPM命令(即访问请求);而tpm_try_transmit() 中需要调用已注册的芯片操作方法ops,在此过程中总是会通过先调用chip->ops.clk_enable()使能TPM时钟,最后再通过调用chip->ops.clk_enable关闭TPM时钟。
基于以上发现,当虚拟机监控器已启动并且其管理的虚拟机已加载TPM原生驱动后,虚拟机的操作系统还可以加载TPM代理驱动,通过TPM代理驱动劫持TPM原生驱动中用于访问TPM的目标访问方法,使得用户空间的应用程序请求访问TPM时,总是先访问TPM代理驱动,以便通过TPM代理驱动和TPM原生驱动、虚拟机监控器相协作,实现在确保计算设备中部署的虚拟机监控器和至少一个虚拟机能够串行访问TPM的情况下,支持虚拟机高效访问TPM。TPM代理驱动的功能将在下文中进行详细描述。
下面结合图1所示的计算设备详细描述虚拟机和虚拟机监控器访问TPM的过程。
图2为示例性提供的一种在计算设备中访问TPM的方法的流程图之一。该计算设备包括虚拟机监控器以及其管理/创建的至少一个虚拟机。该方法示例性描述了该计算设备中任意的第一虚拟机(虚拟机VM_A)的过程。
参见图2所示,该方法可以包括但不限于如下步骤S201~步骤S09中的部分或全部。
步骤S201,虚拟机VM_A向虚拟机监控器提供请求访问TPM的第一通知消息。
当虚拟机VM_A已加载TPM代理驱动和TPM原生驱动的情况下,虚拟机VM_A中请求访问TPM的第一应用程序(例如APP_A)可以发起对TPM的访问请求,访问请求可以被发送至TPM代理驱动,进而由TPM代理驱动实现根据其接收的访问请求向虚拟机监控器提供请求访问TPM的第一通知消息。在一种可能的实施方式中,TPM代理驱动可以通过劫持TPM原生驱动中用于访问TPM的目标访问方法,获得APP_A通过调用目标访问方法而发起的访问请求。在另一种可能的实施方式中,可以通过修改虚拟机VM_A的操作系统OS_A中用于支持应用程序访问TPM原生驱动的内核代码,使得APP_A能够直接向TPM代理驱动发送对TPM的访问请求。
步骤S203,虚拟机监控器响应于第一通知消息,确定TPM是否已被锁定。
TPM已被锁定时,其表征存在虚拟机或虚拟机监控器正在访问TPM;TPM未被锁定时,其表征当前并不存在虚拟机或虚拟机监控器正在访问TPM。虚拟机监控器可以采用状态机或者互斥锁等实现方式来实现锁定TPM、对TPM解除锁定。
下文中主要以虚拟机监控器采用状态机为例进行示例性描述。
虚拟机监控器中可以维护与TPM对应的状态机,状态机的当前状态可以包括第一状态或第二状态,第一状态用于指示TPM已被锁定,第二状态用于指示TPM未被锁定。与之相应的,虚拟机监控器可以通过查询状态机的当前状态来确定TPM是否已被锁定,即确定当前是否存在虚拟机或虚拟机监控器正在访问TPM。
TPM未被锁定的情况下,虚拟机监控器可以接着执行包含步骤S205在内的各个后续步骤。TPM已被锁定的情况下,虚拟机监控器例如可以通过消息队列来实现控制在先请求访问TPM的虚拟机或虚拟机监控器结束对TPM的访问后,再针对虚拟机VM_A对应的执行包含步骤S205在内的各个后续步骤;或者虚拟机监控器可以向虚拟机VM_A返回表征当前存在其它虚拟机或虚拟机监控器正在访问TPM的第二决策消息,使得虚拟机VM_A按照相应的策略重新发起第一通知消息或终止请求访问TPM。
步骤S205,虚拟机监控器锁定TPM,使得TPM仅允许被虚拟机VM_A访问。
虚拟机监控器例如可以将状态机的当前状态由第二状态置为第一状态。
步骤S207,虚拟机监控器向虚拟机VM_A返回第一决策消息。
步骤S209,虚拟机VM_A响应于第一决策消息,开始对TPM进行第一访问操作。
当虚拟机VM_A已加载TPM代理驱动和TPM原生驱动的情况下,虚拟机监控器返回的第一决策消息例如可以由TPM代理驱动接收。TPM代理驱动响应于其从虚拟机监控器接收的第一决策消息,向TPM原生理驱动提供其从应用程序APP_A接收的访问请求。进而,由TPM原生驱动实现根据访问请求对TPM进行第一访问操作。
步骤S211,虚拟机VM_A结束第一访问操作后,向虚拟机监控器提供第二通知消息。
当虚拟机VM_A已加载TPM代理驱动和TPM原生驱动的情况下,可以由TPM代理驱动实现在TPM原生驱动结束对TPM的第一访问操作后,向虚拟机监控器提供请求虚拟机监控器对TPM解除锁定的第二通知消息。
步骤S213,虚拟机监控器响应于第二通知消息,解除对TPM的锁定。
虚拟机监控器例如可以将状态机的当前状态由第一状态置为第二状态。
前文主要描述了虚拟机VM_A配置有TPM原生驱动和TPM代理驱动的情况下,虚拟机VM_A访问TPM的过程。然而可以理解的是,虚拟机VM_A也可以在其它功能模块的支持下实现其在图2所示的方法实施例中需要实现的功能。例如,虚拟机VM_A无需加载TPM原生驱动和TPM代理驱动,而是加载工作人员重写编写的TPM驱动,在TPM驱动的支持下完成原本通过TPM原生驱动和TPM代理驱动完成的事务。
前述图2所示的方法实施例中详细描述了计算设备中的虚拟机在虚拟机监控器的支持下高效访问TPM的过程,然而部分技术场景中,虚拟机监控器自身也可能会按需使用TPM。下面接着描述虚拟机监控器访问TPM的过程。
参见图3所示,该方法可以包括但不限于如下步骤S301~步骤S307中的部分或全部。
步骤S301,虚拟监控器在开始访问TPM之前,确定TPM是否已被锁定。
TPM已被锁定时,表征存在虚拟机或虚拟机监控器正在访问TPM;TPM未被锁定时,表征当前并不存在虚拟机或虚拟机监控器正在访问TPM。虚拟机监控器可以采用状态机或者互斥锁等实现方式来实现锁定TPM、对TPM解除锁定。
以虚拟机监控器采用状态机为例。虚拟机监控器可以通过查询状态机的当前状态来确定TPM是否已被锁定,即确定是否存在虚拟机或虚拟机监控器正在访问TPM。
TPM未被锁定的情况下,虚拟机监控器可以接着执行包含步骤S305在内的各个后续步骤。TPM已被锁定的情况下,虚拟机监控器例如可以等待TPM被解除锁定,然后再针对虚拟机自身对应的执行包含步骤S303在内的各个后续步骤。
步骤S303,虚拟机监控器在TPM未被锁定的情况下,锁定TPM,使得TPM仅允许被虚拟机监控器访问。
虚拟机监控器例如可以将状态机的当前状态由第二状态置为第一状态。
步骤S305,虚拟机监控器开始访问TPM。
步骤S306,虚拟机监控器在结束访问TPM后,解除对TPM的锁定。
虚拟机监控器例如可以将状态机的当前状态由第一状态置为第二状态。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种计算设备400。参见图4所示,该计算设备中部署有虚拟机监控器41和至少一个虚拟机43。所述虚拟机监控器41包括:消息接收单元411,配置为从所述至少一个虚拟机43中的第一虚拟机43,接收请求访问所述TPM的第一通知消息;状态管理单元413,配置为响应于所述第一通知消息,确定所述TPM是否已被锁定;所述状态管理单元413,还配置为在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述第一虚拟机访问;消息发送单元415,配置为在所述TPM未被锁定的情况下,向所述第一虚拟机返回第一决策消息,使得所述第一虚拟机开始对所述TPM进行第一访问操作;所述消息接收单元411,还配置为从所述第一虚拟机接收第二通知消息,所述第二通知消息由所述第一虚拟机在结束所述第一访问操作后发起;所述状态管理单元413,还配置为响应于所述第二通知消息,解除对所述TPM的锁定。
在一种可能的实施方式中,所述虚拟机监控器41还包括访问管理单元417,其中,所述状态管理单元413,还配置为在所述虚拟监控器开始访问所述TPM之前,确定所述TPM是否已被锁定;所述状态管理单元413,还配置为在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述虚拟机监控器访问;所述访问管理单元417,配置为访问所述TPM;所述状态管理单元413,还配置为在所述虚拟机监控器结束访问所述TPM后,解除对所述TPM的锁定。
在一种可能的实施方式中,所述虚拟机监控器41中配置有与所述TPM对应的状态机,所述状态机的当前状态包括第一状态或第二状态,所述第一状态用于指示所述TPM已被锁定,所述第二状态用于指示所述TPM未被锁定;其中,所述状态管理单元413,具体配置为将所述状态机的当前状态置为第一状态;所述状态管理单元413,具体配置为将所述状态机的当前状态置为第二状态。
在一种可能的实施方式中,所述第一虚拟机43配置有TPM原生驱动431和TPM代理驱动433;其中,所述TPM代理驱动433,配置为获取对所述TPM的访问请求,并根据所述访问请求向所述虚拟机监控器提供所述第一通知消息,所述访问请求由所述第一虚拟机中的第一应用程序发起;所述TPM代理驱动433,还配置为响应于从所述虚拟机监控器41接收的所述第一决策消息,向所述TPM原生驱动431提供所述访问请求;所述TPM原生驱动431,配置为根据所述访问请求执行所述第一访问操作;所述TPM代理驱动433,还配置为在所述TPM原生驱动结束所述第一访问操作后,向所述虚拟机监控器提供所述第二通知消息。
在一种可能的实施方式中,所述TPM代理驱动433,具体配置为通过劫持所述TPM原生驱动431中用于访问所述TPM的目标访问方法,获得所述第一应用程序通过调用所述目标访问方法而发起的所述访问请求。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能所对应的计算机程序存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令/代码进行传输,以便这些功能所对应的计算机程序被计算机执行时,通过计算机实现本说明书任意一个实施例中所述的方法。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,实现本说明书任意一个实施例中提供的在计算设备中访问TPM的方法。
本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任意一个实施例中提供的在计算设备中访问TPM的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例中相同、相似的部分互相参见即可,每个实施例中重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (10)

1.一种计算设备中访问可信赖平台模块TPM的方法,所述计算设备中部署有虚拟机监控器和至少一个虚拟机,所述方法包括:
所述虚拟机监控器从所述至少一个虚拟机中的第一虚拟机,接收请求访问所述TPM的第一通知消息;
所述虚拟机监控器响应于所述第一通知消息,确定所述TPM是否已被锁定;
所述虚拟机监控器在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述第一虚拟机访问,并向所述第一虚拟机返回第一决策消息,使得所述第一虚拟机开始对所述TPM进行第一访问操作;
所述虚拟机监控器从所述第一虚拟机接收第二通知消息,所述第二通知消息由所述第一虚拟机在结束所述第一访问操作后发起;
所述虚拟机监控器响应于所述第二通知消息,解除对所述TPM的锁定。
2.根据权利要求1所述的方法,所述方法还包括:
所述虚拟监控器在开始访问所述TPM之前,确定所述TPM是否已被锁定;
所述虚拟机监控器在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述虚拟机监控器访问;
所述虚拟机监控器访问所述TPM;
所述虚拟机监控器在结束访问所述TPM后,解除对所述TPM的锁定。
3.根据权利要求1所述的方法,所述虚拟机监控器中配置有与所述TPM对应的状态机,所述状态机的当前状态包括第一状态或第二状态,所述第一状态用于指示所述TPM已被锁定,所述第二状态用于指示所述TPM未被锁定;其中,
所述锁定所述TPM,包括:将所述状态机的当前状态置为第一状态;
所述解除对所述TPM的锁定,包括:将所述状态机的当前状态置为第二状态。
4.根据权利要求1-3中任一项所述的方法,所述第一虚拟机配置有TPM原生驱动和TPM代理驱动;所述方法还包括:
所述TPM代理驱动获取对所述TPM的访问请求,根据所述访问请求向所述虚拟机监控器提供所述第一通知消息,所述访问请求由所述第一虚拟机中的第一应用程序发起;
所述TPM代理驱动响应于从所述虚拟机监控器接收的所述第一决策消息,向所述TPM原生驱动提供所述访问请求;
所述TPM原生驱动根据所述访问请求执行所述第一访问操作;
所述TPM代理驱动在所述TPM原生驱动结束所述第一访问操作后,向所述虚拟机监控器提供所述第二通知消息。
5.根据权利要求4所述的方法,所述TPM代理驱动获取对所述TPM的访问请求,包括:所述TPM代理驱动通过劫持所述TPM原生驱动中用于访问所述TPM的目标访问方法,获得所述第一应用程序通过调用所述目标访问方法而发起的所述访问请求。
6.一种计算设备,所述计算设备中部署有虚拟机监控器和至少一个虚拟机,所述虚拟机监控器包括:
消息接收单元,配置为从所述至少一个虚拟机中的第一虚拟机,接收请求访问所述TPM的第一通知消息;
状态管理单元,配置为响应于所述第一通知消息,确定所述TPM是否已被锁定;
所述状态管理单元,还配置为在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述第一虚拟机访问;
消息发送单元,配置为在所述TPM未被锁定的情况下,向所述第一虚拟机返回第一决策消息,使得所述第一虚拟机开始对所述TPM进行第一访问操作;
所述消息接收单元,还配置为从所述第一虚拟机接收第二通知消息,所述第二通知消息由所述第一虚拟机在结束所述第一访问操作后发起;
所述状态管理单元,还配置为响应于所述第二通知消息,解除对所述TPM的锁定。
7.根据权利要求6所述的计算设备,所述虚拟机监控器还包括访问管理单元,其中,
所述状态管理单元,还配置为在所述虚拟监控器开始访问所述TPM之前,确定所述TPM是否已被锁定;
所述状态管理单元,还配置为在所述TPM未被锁定的情况下,锁定所述TPM,使得所述TPM仅允许被所述虚拟机监控器访问;
所述访问管理单元,配置为访问所述TPM;
所述状态管理单元,还配置为在所述虚拟机监控器结束访问所述TPM后,解除对所述TPM的锁定。
8.根据权利要求6所述的计算设备,所述虚拟机监控器中配置有与所述TPM对应的状态机,所述状态机的当前状态包括第一状态或第二状态,所述第一状态用于指示所述TPM已被锁定,所述第二状态用于指示所述TPM未被锁定;其中,
所述状态管理单元,具体配置为将所述状态机的当前状态置为第一状态;
所述状态管理单元,具体配置为将所述状态机的当前状态置为第二状态。
9.根据权利要求6-8中任一项所述的计算设备,所述第一虚拟机配置有TPM原生驱动和TPM代理驱动;其中,
所述TPM代理驱动,配置为获取对所述TPM的访问请求,并根据所述访问请求向所述虚拟机监控器提供所述第一通知消息,所述访问请求由所述第一虚拟机中的第一应用程序发起;
所述TPM代理驱动,还配置为响应于从所述虚拟机监控器接收的所述第一决策消息,向所述TPM原生驱动提供所述访问请求;
所述TPM原生驱动,配置为根据所述访问请求执行所述第一访问操作;
所述TPM代理驱动,还配置为在所述TPM原生驱动结束所述第一访问操作后,向所述虚拟机监控器提供所述第二通知消息。
10.根据权利要求9所述的计算设备,所述TPM代理驱动,具体配置为通过劫持所述TPM原生驱动中用于访问所述TPM的目标访问方法,获得所述第一应用程序通过调用所述目标访问方法而发起的所述访问请求。
CN202310376985.7A 2023-04-04 2023-04-04 计算设备中访问tpm的方法和计算设备 Active CN116126477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310376985.7A CN116126477B (zh) 2023-04-04 2023-04-04 计算设备中访问tpm的方法和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310376985.7A CN116126477B (zh) 2023-04-04 2023-04-04 计算设备中访问tpm的方法和计算设备

Publications (2)

Publication Number Publication Date
CN116126477A true CN116126477A (zh) 2023-05-16
CN116126477B CN116126477B (zh) 2023-07-25

Family

ID=86306588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310376985.7A Active CN116126477B (zh) 2023-04-04 2023-04-04 计算设备中访问tpm的方法和计算设备

Country Status (1)

Country Link
CN (1) CN116126477B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1906560A (zh) * 2003-11-19 2007-01-31 英特尔公司 用于在开放平台上实现用户身份模块(sim)能力的方法和装置
CN101866408A (zh) * 2010-06-30 2010-10-20 华中科技大学 一种基于虚拟机架构的透明信任链构建系统
US20110302425A1 (en) * 2010-06-03 2011-12-08 Ramakrishna Saripalli Systems, methods, and apparatus to virtualize tpm accesses
CN110532816A (zh) * 2018-05-25 2019-12-03 瑞萨电子株式会社 存储器保护电路和存储器保护方法
CN111428141A (zh) * 2020-04-23 2020-07-17 北京中安星云软件技术有限公司 基于驱动代理的应用和数据库访问行为关联的方法及装置
CN113672966A (zh) * 2020-05-13 2021-11-19 上海亦存网络科技有限公司 文件访问控制方法和系统
EP4068097A1 (en) * 2021-03-30 2022-10-05 Acronis International GmbH System and method for distributed-agent backup of virtual machines

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1906560A (zh) * 2003-11-19 2007-01-31 英特尔公司 用于在开放平台上实现用户身份模块(sim)能力的方法和装置
US20110302425A1 (en) * 2010-06-03 2011-12-08 Ramakrishna Saripalli Systems, methods, and apparatus to virtualize tpm accesses
CN101866408A (zh) * 2010-06-30 2010-10-20 华中科技大学 一种基于虚拟机架构的透明信任链构建系统
CN110532816A (zh) * 2018-05-25 2019-12-03 瑞萨电子株式会社 存储器保护电路和存储器保护方法
CN111428141A (zh) * 2020-04-23 2020-07-17 北京中安星云软件技术有限公司 基于驱动代理的应用和数据库访问行为关联的方法及装置
CN113672966A (zh) * 2020-05-13 2021-11-19 上海亦存网络科技有限公司 文件访问控制方法和系统
EP4068097A1 (en) * 2021-03-30 2022-10-05 Acronis International GmbH System and method for distributed-agent backup of virtual machines

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHAO YU等: "A lock-aware virtual machine scheduling scheme for synchronization performance", 《THE JOURNAL OF SUPERCOMPUTING》, pages 20 - 32 *
DONGYANG ZHAN等: "A high-performance virtual machine filesystem monitor in cloud-assisted cognitive IoT", 《FUTURE GENERATION COMPUTER SYSTEMS》, vol. 88, pages 209 - 219 *
季涛: "基于虚拟机的云计算可信安全技术研究", 《信息科技辑》, no. 08, pages 15 - 36 *
许桐: "云平台下高并发对弈系统的设计与实现研究", 《信息科技辑》, no. 01, pages 4 - 66 *

Also Published As

Publication number Publication date
CN116126477B (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
US10152600B2 (en) Methods and systems to measure a hypervisor after the hypervisor has already been measured and booted
CN109918919B (zh) 认证变量的管理
CN109669734B (zh) 用于启动设备的方法和装置
CN103299311B (zh) 用于可信引导优化的方法和设备
US8201239B2 (en) Extensible pre-boot authentication
US8726364B2 (en) Authentication and access protection of computer boot modules in run-time environments
US8909940B2 (en) Extensible pre-boot authentication
US7590867B2 (en) Method and apparatus for providing secure virtualization of a trusted platform module
US20090249053A1 (en) Method and apparatus for sequential hypervisor invocation
US7308584B2 (en) System and method for securing a portable processing module
US8060735B2 (en) Portable device and method for externally generalized starting up of a computer system
EP2761438A1 (en) Authenticated launch of virtual machines and nested virtual machine managers
WO2012084837A1 (en) Virtual machine validation
US8205197B2 (en) Apparatus, system, and method for granting hypervisor privileges
CN107704308B (zh) 虚拟平台vTPM管理系统、信任链构建方法及装置、存储介质
JP2022522678A (ja) セキュア実行ゲスト所有者環境制御
CN113139175A (zh) 处理单元、电子设备以及安全控制方法
US11200065B2 (en) Boot authentication
US20080104711A1 (en) System and method for an isolated process to control address translation
CN111966470A (zh) 虚拟机监控器的加载方法、装置和电子设备
CN116126477B (zh) 计算设备中访问tpm的方法和计算设备
CN112052446A (zh) 密码单元创建方法、数据处理方法、装置及电子设备
WO2007098642A1 (en) MECHANlSM FOR ACCESS CONTROL OF COMPUTING SYSTEM IN PRE-OS STAGE
US11669620B2 (en) System platform initializer for mixed-critical systems
WO2011149329A1 (en) Method of providing trusted application services

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