CN118519721A - 一种安全虚拟机启动方法、相关设备及存储介质 - Google Patents

一种安全虚拟机启动方法、相关设备及存储介质 Download PDF

Info

Publication number
CN118519721A
CN118519721A CN202410676078.9A CN202410676078A CN118519721A CN 118519721 A CN118519721 A CN 118519721A CN 202410676078 A CN202410676078 A CN 202410676078A CN 118519721 A CN118519721 A CN 118519721A
Authority
CN
China
Prior art keywords
virtual machine
security
secure virtual
secure
processor
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
Application number
CN202410676078.9A
Other languages
English (en)
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.)
Phytium Technology Co Ltd
Original Assignee
Phytium 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 Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202410676078.9A priority Critical patent/CN118519721A/zh
Publication of CN118519721A publication Critical patent/CN118519721A/zh
Pending legal-status Critical Current

Links

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/52Monitoring 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/53Monitoring 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
    • 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
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种安全虚拟机启动方法、相关设备及存储介质,应用于计算机技术领域,该方法首先启动主安全虚拟机,在启动主安全虚拟机之后启动从安全虚拟机,由主安全虚拟机对后续各从安全虚拟机的度量结果进行校验,相较于现有技术中由虚拟机用户逐一对各安全虚拟机的度量结果进行校验的方法相比,可以极大提高安全虚拟机的启动效率,同时,节省虚拟机用户的大量时间,改善虚拟机用户的使用感受。

Description

一种安全虚拟机启动方法、相关设备及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及一种安全虚拟机启动方法、相关设备及存储介质。
背景技术
可信执行环境(Trusted Execution Environment,TEE)是为了增强云平台的安全性而提出的计算机技术,该技术涵盖硬件安全模块、虚拟化技术以及加密算法等多个方面内容,其中,虚拟化技术通过创建多个安全虚拟机满足不同用户的信息处理需求,同时,还有助于实现硬件资源的最大化利用,属于可信执行环境中极为关键的技术之一。
在实际应用中,虚拟机用户可以向云平台申请多个安全虚拟机,当虚拟机用户需要启动其所拥有的全部安全虚拟机时,需要逐一对安全虚拟机的启动过程进行监管,并分别对各安全虚拟机的度量结果进行确认,显然,这种启动方式的启动效率低下,会占用虚拟机用户大量时间,用户体验较差。
发明内容
有鉴于此,本申请致力于提供一种安全虚拟机启动方法、相关设备及存储介质,提高启动多个安全虚拟机情况下的虚拟机启动效率,避免占用虚拟机用户大量时间,改善用户体验。
第一方面,本申请提供一种安全虚拟机启动方法,应用于第一处理器,所述方法包括:
获取第二处理器提供的配置信息,并对第一操作系统文件进行加密,所述配置信息包括主安全虚拟机的配置信息以及至少一个从安全虚拟机的配置信息;
向所述第二处理器发送所述主安全虚拟机的配置信息中的启动配置信息,使所述第二处理器基于所述主安全虚拟机的启动配置信息以及加密后的第一操作系统文件启动所述主安全虚拟机;
对第二操作系统文件进行加密,并向所述第二处理器发送目标从安全虚拟机的配置信息中的启动配置信息,使所述第二处理器基于所述目标从安全虚拟机的启动配置信息以及加密后的第二操作系统文件启动所述目标从安全虚拟机;
其中,所述目标从安全虚拟机为所述至少一个从安全虚拟机中的任意一个;
响应于所述目标从安全虚拟机的启动结果,对所述目标从安全虚拟机进行度量;
向所述主安全虚拟机发送校验基准信息以及所述目标从安全虚拟机的度量结果,使所述主安全虚拟机基于所述校验基准信息校验所述目标从安全虚拟机的度量结果。
在一种可选的实施方式中,本申请第一方面提供的方法还包括:获取第一磁盘加密密钥,所述第一磁盘加密密钥由所述主安全虚拟机在确定所述目标从安全虚拟机的度量结果正常后提供;
基于所述第一磁盘加密密钥对所述目标从安全虚拟机的磁盘数据加密。
在一种可选的实施方式中,对所述目标从安全虚拟机进行度量,包括:
确定是否满足预设虚拟机度量条件;
若满足所述预设虚拟机度量条件,计算所述目标从安全虚拟机的配置信息中的目标配置项的哈希值,得到所述目标从安全虚拟机的度量结果。
在一种可选的实施方式中,所述确定是否满足预设虚拟机度量条件,包括:
若所述第一处理器所属云平台正常运行、所述目标从安全虚拟机对应的虚拟机管理器处于工作状态且所述目标从安全虚拟机处于等待启动状态,确定满足预设虚拟机度量条件;
若所述云平台运行异常,或所述虚拟机管理器处于非工作状态,或所述目标从安全虚拟机未处于所述等待启动状态,确定不满足所述预设虚拟机度量条件。
在一种可选的实施方式中,在对第二操作系统文件进行加密之前,所述方法还包括:
响应于所述主安全虚拟机的启动结果,对所述主安全虚拟机进行度量;
向用户终端提供所述主安全虚拟机的度量结果,使所述用户终端校验所述度量结果,所述用户终端包括所述主安全虚拟机以及各所述从安全虚拟机的所有者使用的终端。
在一种可选的实施方式中,本申请第一方面提供的方法还包括:获取第二磁盘加密密钥,所述第二磁盘加密密钥由所述用户终端在确定所述主安全虚拟机度量结果正常后提供;
基于所述第二磁盘加密密钥对所述主安全虚拟机的磁盘数据加密。
第二方面,本申请提供一种安全虚拟机启动方法,应用于第二处理器,所述方法包括:
解析配置文件,得到所述配置文件记载的配置信息,所述配置信息包括主安全虚拟机的配置信息以及至少一个从安全虚拟机的配置信息;
向第一处理器提供所述配置信息,所述第一处理器对第一操作系统文件加密并向所述第二处理器发送所述主安全虚拟机的配置信息中的启动配置信息;
基于所述主安全虚拟机的启动配置信息以及加密后的第一操作系统文件启动所述主安全虚拟机;
获取所述第一处理器提供的目标从安全虚拟机的配置信息中的启动配置信息,所述目标从安全虚拟机为所述至少一个从安全虚拟机中的任意一个;
基于所述目标从安全虚拟机的启动配置信息以及由所述第一处理器加密的第二操作系统文件启动所述目标从安全虚拟机;
向所述第一处理器提供所述目标从安全虚拟机的启动结果,使所述第一处理器对所述目标从安全虚拟机进行度量,并向所述主安全虚拟机发送校验基准信息以及所述目标从安全虚拟机的度量结果;
所述主安全虚拟机基于所述校验基准信息校验所述目标从安全虚拟机的度量结果。
在一种可选的实施方式中,本申请第二方面提供的方法还包括:所述主安全虚拟机在确定所述目标从安全虚拟机的度量结果正常后,向所述第一处理器提供第一磁盘加密密钥,使所述第一处理器基于所述第一磁盘加密密钥对所述目标从安全虚拟机的磁盘数据加密。
在一种可选的实施方式中,基于所述主安全虚拟机的启动配置信息以及加密后的第一操作系统文件启动所述主安全虚拟机,包括:
基于所述主安全虚拟机的启动配置信息创建所述主安全虚拟机的运行环境;
在所述主安全虚拟机的运行环境中运行加密后的第一操作系统文件,以启动所述主安全虚拟机。
在一种可选的实施方式中,在获取所述第一处理器提供的目标从安全虚拟机的配置信息中的启动配置信息之前,所述方法还包括:
向所述第一处理器反馈所述主安全虚拟机的启动结所述果,使所述第一处理器对所述主安全虚拟机进行度量。
在一种可选的实施方式中,本申请第二方面提供的方法还包括:
向所述第一处理器发送平台安全验证请求,所述平台安全验证请求由用户终端提供,所述用户终端包括所述主安全虚拟机以及各从安全虚拟机的所有者使用的终端;
获取所述第一处理器响应于所述平台安全验证请求所反馈的验证证书以及信道密钥;
向所述用户终端发送所述验证证书以及所述信道密钥,使所述用户终端基于所述验证证书验证所述主安全虚拟机以及各所述从安全虚拟机所属云平台的安全性,并基于所述信道密钥建立与所述第一处理器之间的安全信道。
在一种可选的实施方式中,本申请第二方面提供的方法还包括:响应于所述用户终端的硬件性能查询请求,向所述用户终端反馈所述云平台的硬件性能参数。
第三方面,本申请提供一种处理器,所述处理器被配置为执行如本申请第一方面任一项所述的安全虚拟机启动方法。
第四方面,本申请提供一种处理器,所述处理器被配置为执行如本申请第二方面任一项所述的安全虚拟机启动方法。
第五方面,本申请提供一种片上系统,包括如本申请第三方面所述的处理器,以及如本申请第四方面所述的处理器。
第六方面,本申请提供一种服务器,包括如本申请第五方面所述的片上系统、内存以及外围设备,其中,
所述片上系统分别与所述内存以及所述外围设备通信连接。
第七方面,本申请提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被执行时实现如本申请第一方面或如本申请第二方面任一项所述的安全虚拟机启动方法。
基于上述内容,本申请提供的安全虚拟机启动方法,在启动主安全虚拟机之后,由主安全虚拟机对后续各从安全虚拟机的度量结果进行校验,相较于现有技术中由虚拟机用户逐一对各安全虚拟机的度量结果进行校验的方法相比,可以极大提高安全虚拟机的启动效率,同时,节省虚拟机用户的大量时间,改善虚拟机用户的使用感受。
进一步的,通过一份配置文件记载全部安全虚拟机的配置信息,可以避免虚拟机用户整理和维护过多的安全虚拟机的配置文件,进一步节省虚拟机用户的时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例涉及的一种云服务系统的示意图。
图2是本发明实施例提供的一种片上系统的结构示意图。
图3是本发明实施例提供的一种安全虚拟机启动方法的流程示意图。
图4是本发明实施例提供的另一种安全虚拟机启动方法的流程示意图。
图5是本发明实施例提供的一种云平台性能验证方法的流程示意图。
图6是本发明实施例提供的一种安全虚拟机度量方法的流程示意图。
图7是本发明实施例提供的另一种安全虚拟机度量方法的流程示意图。
图8是本发明实施例提供的一种安全虚拟机调试方法的流程示意图。
图9是本发明实施例提供的另一种安全虚拟机调试方法的流程示意图。
图10是本发明实施例提供的再一种安全虚拟机调试方法的流程示意图。
图11是本发明实施例提供的再一种安全虚拟机启动方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如前所述,可信执行环境(Trusted Execution Environment,TEE)是为了增强云平台的安全性而提出的计算机技术,该技术涵盖硬件安全模块、虚拟化技术以及加密算法等多个方面内容,其中,虚拟化技术通过创建多个安全虚拟机满足不同用户的信息处理需求,同时,还有助于实现硬件资源的最大化利用,属于可信执行环境中极为关键的技术之一。
鉴于虚拟化技术在可信执行环境中的重要作用,安全虚拟机的安全性成为这一领域的研究重点,而在安全虚拟机实际应用过程中,涉及多个可能影响安全虚拟机正常运行,进而影响安全虚拟机以及整个云平台安全性的环节,比如,安全虚拟机的启动、安全虚拟机的度量以及安全虚拟机的调试等,而且,更为重要的是,还要防止攻击者通过虚拟机管理器窥测安全虚拟机,本申请提供的技术方案,旨在解决上述过程中涉及的相关问题,为安全虚拟机的正常运行以及安全虚拟机的安全性提供支持,进而在充分利用云平台硬件资源的基础上,更好的为用户提供服务。
基于上述内容,本申请涉及一种云服务系统,结合图1所示,该云服务系统包括服务器10以及用户终端20。
首先需要说明的是,在实际应用中,云服务系统可以设置一台及以上的服务器10,服务器10的具体设置数量基于云服务系统的规模以及单台服务器的算力确定,本申请对于服务器10的具体数量不做限定,为便于表述本申请提供的云服务系统的结构,图1所示实施例中以一台服务器10示出,至于服务器10的具体构成,将在后续内容中展开,此处暂不详述。
云平台为云服务提供商提供的安全虚拟机的运行环境,结合图1所示,云平台运行于服务器10之上,也就是说,本申请述及的云平台,即包括服务器10所包括的硬件资源,同时,还包括运行于这些硬件资源之上、为用户提供云服务的软件资源。云平台通过共享服务器的硬件资源并以虚拟机的形式向用户提供服务。
安全虚拟机运行于云平台之上,在实际应用中,一台服务器10通常可以支持多台安全虚拟机,由于虚拟化技术允许在同一硬件上创建多个隔离的执行环境,因此,可以确保各安全虚拟机相互之间的相对隔离,在确保各安全虚拟机的安全性以及隔离要求的基础上,实现对于服务器硬件资源的充分利用,同时为虚拟机用户提供差异化的云服务。
用户终端20为虚拟机用户30所使用的终端。在实际应用中,用户终端20可以是多种类型的终端设备,比如,可以是笔记本电脑、个人电脑后平台电脑,当然,还可以是其他能够访问云平台并与云平台进行信息交互的电子产品,本申请对于用户终端20的具体选型以及具体实现方式不做限定。
服务器10分别与各用户终端20通信连接,为各用户终端20提供安全虚拟机。虚拟机用户30通过用户终端20访问云平台,进而可以租赁(即使用)云平台提供的安全虚拟机,享有服务器10以安全虚拟机这一方式提供的服务器资源,虚拟机用户30可以在自身使用的安全虚拟机中进行部署应用软件或存储数据等操作,由于各安全虚拟机共享服务器资源,因此,可以实现服务器资源的最大化利用,同时,由于各安全虚拟机之间安全隔离,可以保证各虚拟机用户30的信息安全。在实际应用中,同一虚拟机用户30可以向服务器10租赁一台安全虚拟机,也可以根据自身需求租赁一台以上的安全虚拟机,此处不再赘述。
进一步的,服务器10包括片上系统、内存以及用于支持服务器10实现上述功能的外围设备,片上系统分别与内存以及外围设备通信连接,片上系统基于与内存以及外围设备的信息交互,并执行本申请后续各实施例提供的各种方法,实现前述内容述及的服务器功能。需要说明的是,外围设备的具体选型需要结合片上系统的具体构成、运行需求以及服务器10的具体功能确定,在实际应用中,外围设备可以包括外部存储装置(硬盘等)、输入/输出设备、联网设备等设备,当然,还可以包括其他设备,此处不再一一列举,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
至于片上系统的可选实现方式,可以参见图2所示。本实施例提供的片上系统11包括第一处理器111、第二处理器112以及内存控制器113,当然,片上系统11还可以包括其他构成部分,本实施例未予详细展开,具体可参照相关技术实现,本申请对此不做具体限定。
具体的,第一处理器111可以选择片上系统中现有的控制器,也可以在片上系统中新增实现本申请述及的相关功能的控制器。在实际应用中,作为一种优选的实施方式,第一处理器111可以是安全协处理器(Secure Coprocessor,SCP)。安全协处理器是片上系统中专门设置的负责数据安全的处理器,参与执行本申请后续实施例所提供的安全虚拟机启动方法、安全虚拟机调试方法以及安全虚拟机度量方法。需要说明的是,在本申请后续各个实施例中,第一处理器111将均以安全协处理器为例展开,在一种可选的实施方式中,安全协处理器中配置有安全固件,该安全固件可以看作是安全协处理器中的安全管理程序,具体用于实现本申请后续各个实施例所提供的相关方法。
相应的,第二处理器112的选型与第一处理器111类似,既可以选择片上系统中现有的控制器,也可以在片上系统中新增实现本申请述及的相关功能的控制器。在实际应用中,作为一种优选的实施方式,第二处理器112可以是应用处理器(ApplicationProcessor,AP)。结合图2所示,应用处理器可通过软件形式配置虚拟机管理器(Hypervisor),并通过虚拟化技术虚拟化n台安全虚拟机(n为≥1的整数)。该多台安全虚拟机可由虚拟机管理器进行管理,例如由虚拟机管理器参与管理安全虚拟机启动、安全虚拟机的调试,以及管理在内存12中划分的安全虚拟机的私有内存空间。需要说明的是,在本申请后续各个实施例中,第二处理器112将均以应用处理器为例展开,进一步的,应用处理器所执行的操作步骤,具体是由虚拟机管理器执行的。
进一步的,第一处理器111与第二处理器112通信连接,二者之间可以进行信息交互。更为重要的是,相较于第二处理器112,第一处理器111的安全性更高,因此,第一处理器111主要用于处理片上系统内部的数据交互以及相关控制过程,而第二处理器112还用于实现与外部设备的信息交互,比如接收用户终端发来的请求或信息等。第一处理器111以及第二处理器112的具体功能将在后续内容中结合具体实施例展开介绍,此处暂不详述。
内存控制器113主要用于实现内存12的访问控制,是控制内存12,并且使内存12与片上系统之间交换数据的硬件。在虚拟化技术中,内存12的部分或全部空间可作为安全虚拟机的私有内存空间,不同安全虚拟机在内存12中可以被分配不同的私有内存空间。结合图2所示,内存控制器113集成于片上系统内部,并分别与第一处理器111、第二处理器112以及片上系统外部的内存12通信连接,第一处理器111以及第二处理器112通过内存控制器113访问内存12。进一步的,本申请提供的内存控制器113中还配置有密码引擎和密钥存储单元,在一种可能的实施方式中,密钥存储单元基于寄存器实现,用于存储安全虚拟机和虚拟机管理器运行过程中的相关密钥,比如后续实施例中述及的虚拟机密钥,当然,还可以根据实际应用需求存储其他密钥,此处不再一一罗列。通过密码引擎以及密钥存储单元,可以实现对各安全虚拟机在相应的私有内存空间中的虚拟机数据进行加解密操作,实现对虚拟机数据的安全保护。
在安全虚拟机的实际运行过程中,涉及配置、启动、度量以及调试等多种环节,其中,安全虚拟机的启动过程涉及到建立可信执行环境的起始阶段,对于确保可行执行环境的安全具有重要意义,因此,如何提高安全虚拟机启动过程的安全性,防范恶意软件或攻击者的潜在攻击,进而确保可信执行环境的安全性,成为本领域技术人员亟待解决的技术问题之一。
为解决上述问题,本申请在前述实施例提供的云服务系统以及片上系统的基础上,提供一种安全虚拟机启动方法,该方法应用于前述实施例提供的片上系统,具体由片上系统中的第一处理器以及第二处理器主要参与执行,相互配合实现安全虚拟机的启动,由于安全虚拟机的启动过程由第二处理器以及第一处理器共同配合完成,可保证启动过程的安全性,同时,第一处理器还会对安全虚拟机的操作系统文件进行加密以及整个启动流程的控制,防止操作系统被攻击或篡改,因此,可以有效防范恶意软件或攻击者的潜在攻击,进而确保可信执行环境的安全性。
基于上述内容,参见图3,本实施例提供的安全虚拟机启动方法的流程可以包括以下步骤。
S100、应用处理器发送虚拟机启动请求。
结合图1所示,云平台向虚拟机用户提供安全虚拟机租赁服务,虚拟机用户通过用户终端访问云平台,享有服务器以安全虚拟机这一方式提供的服务器资源,基于此,作为一种可选的实施方式,当虚拟机用户需要启动云平台中已有的安全虚拟机时,虚拟机用户可以通过用户终端向云平台发送虚拟机启动请求,基于前述内容可知,应用处理器主要负责与用户终端的交互,因此,由应用处理器接收用户终端发送的虚拟机启动请求,并进一步将所得虚拟机启动请求发送至安全协处理器。
在一种可选的实施方式中,不同的安全虚拟机以不同的虚拟机标识(VirtualMachine Identifier,VMID)区分,即每一个安全虚拟机在创建过程中都会被虚拟机管理器分配一个VMID,各安全虚拟机对应的VMID互不相同,并且在安全虚拟机的整个生命周期内,安全虚拟机对应的VMID不会发生变化,通过VMID可以唯一的表征相应的安全虚拟机。基于此,本实施例述及的虚拟机启动请求中可以包括待启动安全虚拟机的VMID,从而明确且唯一的指示待启动安全虚拟机,为便于表述,本申请将待启动安全虚拟机的VMID定义为目标VMID。至于安全虚拟机的创建以及VMID的分配过程,将在后续内容中展开,此处暂不详述。
S101、安全协处理器响应于虚拟机启动请求,向应用处理器提供第一通知命令。
在实际应用中,各个安全虚拟机所采用的操作系统可能相同也可能不同,重要的是,各安全虚拟机的操作系统文件都是独立存储于外部存储装置(比如硬盘)中的,因此,在启动安全虚拟机过程中,需要将操作系统文件以镜像等方式加载至内存中。基于此,本实施例提供的安全虚拟机启动方法,通过第一通知命令指示应用处理器将待启动安全虚拟机的操作系统文件加载至内存中。
需要说明的是,响应于虚拟机启动请求发送第一通知命令仅是一种可选的实施方式,在实际应用中,安全协处理器还可以通过其他途径确定发送第一通知命令的时机,此处不再详细展开,在未超出本申请核心思想范围的前提下,同样属于本申请保护的范围内。
在一种可选的实施方式中,虚拟机启动请求中包括待启动安全虚拟机的目标VMID,安全协处理器在得到虚拟机启动请求之后,解析虚拟机启动请求即可得到该目标VMID。
进一步的,安全协处理器在创建各安全虚拟机过程中,还存储有安全虚拟机的全部配置信息,配置信息中记载有相应安全虚拟机所使用的操作系统。更为重要的是,安全虚拟机的配置信息以虚拟机自身对应的VMID作为索引,通过VMID可以唯一的确定一个安全虚拟机的配置信息。基于此,在提取虚拟机启动请求中携带的待启动安全虚拟机的目标VMID之后,根据目标VMID确定待启动安全虚拟机对应的目标配置信息,通过查询目标配置信息记载内容,即可确定待启动安全虚拟机所使用的操作系统。安全协处理器生成指示该操作系统的第一通知命令,并向应用处理器发送该第一通知命令。
需要说明的是,第一通知命令可以通过多种方式指示操作系统,比如,可以在第一通知命令中携带操作系统的标识,当然,还可以通过其他方式指示操作系统,此处不再详述,本发明对于第一通知命令指示操作系统的具体实现方式不做限定。
S102、应用处理器响应于第一通知命令,将待启动安全虚拟机的操作系统文件加载至内存。
应用处理器解析所得第一通知命令,确定待启动安全虚拟机所使用的操作系统后,即以镜像的方式将待启动安全虚拟机的操作系统文件加载至内存。
S103、安全协处理器对操作系统文件进行加密。
在本申请提供的安全虚拟机启动方法中,安全协处理器为每一台安全虚拟机生成唯一的虚拟机密钥,各安全虚拟机的虚拟机密钥由安全协处理器统一管理,虚拟机密钥主要用于进行内存中所存储数据的加解密操作。至于安全协处理器生成虚拟机密钥的过程,将在后续内容中展开,此处暂不详述。为便于表述,本实施例将待启动安全虚拟机的虚拟机密钥称为目标虚拟机密钥。
在一种可选的实施方式中,安全协处理器还建立有虚拟机密钥与VMID之间的绑定关系,基于此,在解析虚拟机启动请求得到目标VMID之后,通过查询前述绑定关系,即可确定目标VMID所对应的目标虚拟机密钥,进而基于目标虚拟机密钥对待启动安全虚拟机的操作系统文件进行加密。至于安全协处理器通过内存控制器访问内存,并对内存中的操作系统文件进行加密的具体实现过程,可参照相关技术,此处不再详述。
可以理解的是,通过加密操作系统文件,可以显著提高操作系统文件的安全性,避免外界攻击行为轻易攻击安全虚拟机的操作系统,进而提高安全虚拟机的安全性。进一步的,由于各个安全虚拟机所采用的虚拟机密钥互不相同,对操作系统文件加密,还可以避免安全虚拟机使用或改变其他安全虚拟机的私有数据,有助于提高安全虚拟机之间的隔离性和安全性。
S104、安全协处理器向应用处理器提供第二通知命令。
在完成对待启动安全虚拟机的操作系统文件的加密之后,安全协处理器进一步向应用处理器发送第二通知命令,指示应用处理器启动该待启动安全虚拟机。
在一种可选的实施方式中,对于已经创建完成的安全虚拟机,安全协处理器生成携带有目标VMID的第二通知命令,并向应用处理器发送该第二通知命令。
S105、应用处理器响应于第二通知命令,加载待启动安全虚拟机的目标运行环境。
应用处理器响应于第二通知命令,确定创建待启动安全虚拟机的目标运行环境所需的目标运行环境信息,比如安全虚拟机启动所需的初始寄存器信息,私有内存地址信息等,当然,还可以包括其他满足安全虚拟机运行所需的信息,此处不再一一列举,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。在确定目标运行环境信息之后,即可基于目标运行环境信息创建待启动安全虚拟机运行所需的目标运行环境。
在一种可选的实施方式中,安全虚拟机的运行环境信息以VMID作为索引,即将VMID作为运行环境信息的标识符,由前述内容可知,各个安全虚拟机对应的VMID互不相同,因此,通过VMID可以准确区分各个安全虚拟机所对应的运行环境信息,相应的,在确定目标VMID之后,以目标VMID为索引的运行环境信息,均为待启动安全虚拟机的运行环境信息。
基于此,在第二通知命令包括目标VMID的情况下,应用处理器解析所得第二通知命令,提取其所包含的目标VMID,然后即可在多个运行环境信息中,确定目标VMID所对应的目标运行环境信息,并进一步基于所得目标运行环境信息创建待启动安全虚拟机的目标运行环境。
至于基于目标运行环境信息创建运行环境的具体实现方式,可参照相关技术实现,本申请对此不做限定。
S106、应用处理器在目标运行环境中执行加密后的操作系统文件,以启动待启动安全虚拟机。
完成目标运行环境的创建后,应用处理器在目标运行环境中执行加密后的操作系统文件,启动待启动安全虚拟机的操作系统,完成待启动安全虚拟机的启动。
综上所述,通过本实施例提供的安全虚拟机启动方法,安全虚拟机的启动过程由第二处理器以及第一处理器共同配合完成,可保证启动过程的安全性,同时,第一处理器对安全虚拟机的虚拟机密钥单独管理,通过虚拟机密钥对安全虚拟机的操作系统文件进行加密,可防止操作系统被攻击或篡改,因此,可以有效防范恶意软件或攻击者的潜在攻击,进而确保可信执行环境的安全性。
进一步的,在第一处理器采用安全协处理器的情况下,相较于现有技术中由虚拟机管理器全权负责安全虚拟机启动的启动方法,本方法将部分启动步骤转由安全协处理器执行,因此,可以充分利用安全协处理器的安全性,提高被恶意攻击的难度,并且,由安全协处理器使用虚拟机密钥加密操作系统,还可以确保虚拟机操作系统的安全,有助于进一步提高安全虚拟机启动过程的安全性。
需要说明的是,虽然应用处理器(即虚拟机管理器)已经完成了安全虚拟机的启动,但处于安全的考虑,此时安全虚拟机尚不能为用户提供服务,在本申请中,安全虚拟机是否能够为用户提供服务是由应用处理器决定的。基于此,作为一种可选的实施方式,在应用处理器启动安全虚拟机之后,安全协处理器暂时将安全虚拟机标记为等待启动状态。并且,只有在安全协处理器将安全虚拟机标记为运行状态的情况下,安全虚拟机才能为虚拟机用户提供服务,此过程将在后续内容展开,此处暂不详述。
可以理解的是,在实际应用中,大致包括两种使用安全虚拟机的场景,在一种场景下,安全虚拟机已经创建完毕,虚拟机用户直接使用访问云平台并启动安全虚拟机,此场景即可按照前述实施例提供的方法启动安全虚拟机。在另一种场景下,安全虚拟机尚未创建,云平台首先需要根据虚拟机用户的配置要求创建安全虚拟机,然后才能启动安全虚拟机,针对此种场景,在前述实施例的基础上,本申请提供另一种安全虚拟机启动方法,以实现安全虚拟机的配置以及启动的全部过程。
参见图4,本实施例提供的安全虚拟机启动方法包括以下步骤。
S200、应用处理器向安全协处理器提供待启动安全虚拟机的配置信息。
可以理解的是,云平台以安全虚拟机的形式向虚拟机用户提供云平台资源及服务,为了满足不同虚拟机用户的需求,云平台支持虚拟机用户对自身所租赁的安全虚拟机进行配置,进而享有个性化的定制服务。
如前所述,应用处理器可与虚拟机用户的用户终端进行信息交互,在此基础上,虚拟机用户可以通过用户终端向云平台,即向应用处理器发送配置需求。在一种可选的实施方式中,虚拟机用户对于安全虚拟机的配置需求以配置文件的形式承载,即配置文件记载安全虚拟机相关的全部配置信息。在创建安全虚拟机之前,虚拟机用户通过用户终端向云平台上传待启动安全虚拟机的配置文件,应用处理器接收配置文件之后,即对配置文件进行解析,得到其中的配置信息。
进一步的,基于配置信息在安全虚拟机全生命周期内所起的作用不同,所得配置信息可以进一步划分为启动配置信息、调试配置信息、安全配置信息,其中,启动配置信息主要包括创建安全虚拟机运行环境所需的信息,调试配置信息主要包括与安全虚拟机调试过程相关的信息,比如安全虚拟机是否允许调试等,而安全配置信息则主要包括与安全虚拟机度量过程相关的信息,比如,是否开启加密隔离功能,是否开启虚拟机共享功能,是否允许虚拟机迁移,是否允许跨虚拟机数据共享等。
在一种可选的实施方式中,应用处理器会将安全配置信息存储至用户态QEMU(Quick Emulator,快速模拟器)空间中。
应用处理器在解析得到待启动安全虚拟机的全部配置信息后,将配置信息发送至安全协处理器。
S201、安全协处理器将配置信息存储至预创建的安全虚拟机结构体中,并发送第三通知命令。
安全协处理器接收待启动安全虚拟机的配置信息后,为安全虚拟机创建安全虚拟机结构体,并将所得配置信息存储至该安全虚拟机结构体中。同时,还会记录待启动安全虚拟机的生命状态周期。至于安全协处理器创建安全虚拟机结构体的具体实现方式以及安全虚拟机结构体的具体形式,均可参照相关技术实现,本申请对此不做限定。
进一步的,安全协处理器向应用处理器发送第三通知命令。
S202、应用处理器响应于第三通知命令,为待启动安全虚拟机分配目标虚拟机标识。
如前所述,本申请通过VMID唯一的表征安全虚拟机,包括与安全虚拟机相关的各种信息。因此,在安全虚拟机创建过程中即需要为安全虚拟机分配VMID。应用处理器响应于第三通知命令,在VMID集合中选择未使用的目标VMID,将其分配给待启动安全虚拟机,并将分配结果反馈安全协处理器。
S203、安全协处理器将目标虚拟机标识存储至安全虚拟机结构体,并发送第一通知命令。
安全协处理器在接收应用处理器反馈的待启动安全虚拟机的目标VMID,将其存储至前述安全虚拟机结构体中,由此可见,一台安全虚拟机对应一个安全虚拟机结构体,该安全虚拟机结构体用于存储安全虚拟机的配置信息以及VMID,当然,还可以用于存储其他相关信息,此处不再详述。
至此,已经完成待启动安全虚拟机的创建过程,作为一种可选的实施方式,安全协处理器自接收到前述配置信息至将目标VMID存储于安全虚拟机结构体这一过程中,将待启动安全虚拟机标记为创建状态。
进一步的,安全协处理器向应用处理器提供第一通知命令,作为一种可选的实施方式,安全协处理器发送第一通知命令的具体实现,可参照图3所示实施例中S101的相关内容,此处不再复述。
在一种可选的实施方式中,安全协处理器在获取配置信息以及目标VMID之后,安全协处理器对配置信息中的启动配置信息以及目标VMID的合法性进行校验,如果启动配置信息或目标VMID异常,则立即终止后续启动流程,同时,反馈告警信息。
S204、应用处理器响应于第一通知命令,将待启动安全虚拟机的操作系统文件记载至内存。
在一种可选的实施方式中,本步骤可参照图3所示实施例中S102的相关内容实现,此处不再复述。
S205、安全协处理器生成待启动安全虚拟机的目标虚拟机密钥,并建立目标虚拟机密钥与目标虚拟机标识之间的绑定关系。
安全协处理器可通过多种方式生成目标虚拟机密钥,比如,调用真随机数发生器生成128位的目标虚拟机密钥,并通过安全信道将所得目标虚拟机密钥发送至密码引擎。当然,安全协处理器还可以通过其他方式生成目标虚拟机密钥,此处不再一一罗列,本申请对于目标虚拟机密钥的具体生成过程不做限定。
结合前述内容可知,虚拟机密钥、VMID以及安全虚拟机之间具备一一对应的关系,因此,为了在执行图3所示实施例提供的启动方法过程中,便于确定待启动安全虚拟机的目标虚拟机密钥,安全协处理器在生成目标虚拟机密钥之后,进一步建立目标虚拟机密钥与目标VMID之间的绑定关系,确保根据目标VMID可以准确的确定目标虚拟机密钥。
在一种可选的实施方式中,在得到目标虚拟机密钥之后,安全协处理器还会将目标虚拟机密钥存储至内存控制器中的密钥存储单元内,以便后续加解密内存数据使用。
S206、安全协处理器基于目标虚拟机密钥对操作系统文件进行加密。
生成目标虚拟机密钥之后,安全协处理器即基于目标虚拟机密钥对待启动安全虚拟机的操作系统文件进行加密。
可以理解的是,本实施例中的S205-S206的相关内容,可以看作是图3所示实施例中S103,在启动首次使用的安全虚拟机的过程中另一种实现方式。
S207、安全协处理器向应用处理器发送包括启动配置信息的第二通知命令。
如前所述,图3所示实施例提供的启动方法,适用于已经创建的安全虚拟机,与安全虚拟机相关的运行环境信息已经添加VMID作为索引,而本实施例对应的应用场景中,应用处理器尚无法获知待启动安全虚拟机配置的运行环境信息。基于此,安全协处理器提取前述配置信息中的启动配置信息,生成包括启动配置信息的第二通知命令,并向应用处理器发送该第二通知命令。
可以理解的是,本实施例中的第二通知命令,相较于图3所示实施例中的第二通知命令,可以看作是启动首次使用的安全虚拟机的过程中另一种实现方式。在本实施例中,第二通知命令用于指示应用处理器按照S208-S210加载待启动安全虚拟机的目标运行环境。
S208、应用处理器解析第二通知命令中包括的配置信息中的启动配置信息。
应用处理器解析所得第二通知命令,获得该命令中包括的与待启动安全虚拟机相关的启动配置信息。
S209、应用处理器基于启动配置信息创建待启动安全虚拟机的目标运行环境信息,并将目标虚拟机标识作为目标运行环境信息的索引。
应用处理器首先基于启动配置信息创建待启动安全虚拟机的目标运行环境信息,比如,基于启动配置信息设置初始寄存器信息,以及确定待启动安全虚拟机的私有内存空间等。
然后,应用处理器将目标虚拟机标识作为前述目标运行环境信息的索引,使得待启动安全虚拟机的启动配置信息对应相同的目标VMID,便于待启动安全虚拟机再次启动时确定对应的运行环境信息。
S210、应用处理器基于目标运行环境信息创建待启动安全虚拟机的运行环境。
在一种可选的实施方式中,本步骤可参照图3所示实施例中S105的相关内容实现,此处不再复述。
S211、应用处理器在目标运行环境中执行加密后的操作系统文件,以启动待启动安全虚拟机。
在一种可选的实施方式中,本步骤可参照图3所示实施例中S106的相关内容实现,此处不再复述。
至此,已经完成首次创建并启动的待启动安全虚拟机的启动过程,作为一种可选的实施方式,安全协处理器自发送第一通知命令至待启动安全虚拟机启动这一过程中,将待启动安全虚拟机标记为等待启动状态。
综上所述,本实施例提供一种安全虚拟机启动方法,在具备前述实施例提供的启动方法的优势的基础上,满足首次创建并启动安全虚拟机的实际应用需求,同时,通过建立虚拟机密钥与VMID之间的绑定关系以及将VMID作为运行环境信息索引等技术方案,可以有效提高安全虚拟机再次启动时的效率和安全性。
可以理解的是,安全虚拟机运行于云平台,云平台的安全性以及运行性能对于安全虚拟机的安全可靠运行有着直接的影响,自然也影响虚拟机用户的数据安全,因此,虚拟机用户有必要在申请安全虚拟机使用权限前,对云平台的相关信息进行验证。为此,本申请提供一种云平台性能验证方法,该方法可与前述各个实施例配合,在应用本实施例提供的云平台性能验证方法对云平台进行验证之后,再应用前述实施例提供的方法启动安全虚拟机。
需要说明的是,在为虚拟机用户提供虚拟机服务前,加载于服务器的云平台首先启动,并由第一处理器对云平台进行检查,比如,对云平台的平台证书进行验签,验签通过后对证书中云平台的相关信息进行检查,确认云平台的唯一性、状态的安全性以及资源是否充足等,待全部验证通过后,云平台才能顺利启动。本实施例提供的云平台验证方法,旨在为虚拟机用户提供一种验证云平台的方法,应用在云平台启动且能够提供安全虚拟机服务的前提下,至于前述内容中述及的云平台与第一处理器之间的验签过程,可参照相关技术实现,本申请对此不做限定。
基于上述内容,参见图5,本实施例提供的云平台性能验证方法包括如下步骤。
S300、用户终端发送平台安全验证请求。
结合图1所示以及前述内容可知,本实施例中述及的用户终端指待启动安全虚拟机的所有者所使用的终端,该终端可与云平台进行信息交互,具体的,可与承载云平台的服务器中片上系统内部的应用处理器进行信息交互。虚拟机用户通过用户终端向应用处理器发送平台安全验证请求。
S301、应用处理器接收并发送平台安全验证请求。
由于此状态下用户终端尚不能与安全协处理器直接进行信息交互,因此,需要由安全协处理器转发所得平台安全验证请求。在实际应用中,应用处理器可以在接收到平台安全验证请求之后,对该请求的合法性进行验证,比如,验证该请求所指示验证的云平台是否为待启动安全虚拟机所属云平台,当然,还可以进行其他有可能影响云平台安全的验证,此处不再详述,并在验证通过后,向安全协处理器转发该平台安全验证请求。
S302、安全协处理器响应于平台安全验证请求,向应用处理器提供云平台的验证证书以及信道密钥。
需要说明的是,本实施例中所述及的云平台,均指前述待启动安全虚拟机所属的云平台。基于此,云平台的验证证书主要用于对云平台的安全性以及唯一性进行验证。
在一种可选的实施方式中,验证证书包括平台唯一证书和芯片验证证书。
其中,在云服务提供商首次启动服务器或服务器更换云服务提供商时,服务器会进行重启操作,并在此过程中更新安全协处理器中的安全固件以及所有与平台安全相关的证书和密钥。在重启完成后,云服务提供商对云平台启动的参数进行配置,进行初始化操作,然后云平台便向安全协处理器申请获得平台资源控制权限,云平台将云平台相关的证书发送至安全协处理器,在双方共同签名之后,即可得到用于对云平台进行验证的平台唯一证书。
基于前述内容可知,服务器包括片上系统,该片上系统是承载云平台以及控制云平台运行的主要载体,片上系统的安全性至关重要,因此,安全协处理器还会向虚拟机用户提供用于验证片上系统的芯片验证证书。
进一步的,安全协处理器还会向虚拟机用户提供信道密钥,在用户终端需要直接与安全协处理器进行信息交互的场景下,可通过信道密钥建立安全协处理器与用户终端之间的安全信道。需要说明的是,在安全虚拟机的启动阶段并未用到该安全信道,安全信道的具体应用将在后续内容中展开,此处暂不详述。
S303、应用处理器接收并转发验证证书以及信道密钥。
应用处理器将所得验证证书以及信道密钥转发至用户终端。
S304、用户终端基于验证证书对云平台进行验证。
基于前述内容,在验证证书包括平台唯一证书以及芯片验证证书的情况下,虚拟机用户对于云平台的验证分两部分进行。
用户终端展示平台唯一证书记载的信息,虚拟机用户逐一对平台唯一证书所记载的信息进行校验,比如云平台服务商的相关资质、云平台的注册以及创建信息,以及云平台的验签信息等,当然,在实际应用中,还包括有关云平台的其他信息,此处不再一一罗列。
进一步的,虚拟机用户将芯片验证证书所记载的信息进行验证,比如片上系统芯片的生产批次、基础硬件信息、生产商等。在一种可选的实施方式中,虚拟机用户可将芯片验证证书上传片上系统的生产商提供的验证服务平台,通过该验证服务平台对片上系统进行验证。
需要说明的是,如果经过验证,虚拟机用户发现云平台存在安全问题,比如,某些验证信息不匹配,则可以立即终止后续的虚拟机启动操作。
S305、用户终端发送硬件性能查询请求。
虚拟机用户在经过前述步骤确定云平台安全之后,进一步通过用户终端向应用处理器发送硬件性能查询请求,旨在通过该请求获取云平台的硬件性能信息,比如,云平台是否开启加密安全隔离功能以及是否预留足够资源运行待启动安全虚拟机等,当然,还可以通过硬件性能查询请求获取其他相关信息,具体需要结合虚拟机用户的实际验证需求确定,本申请对此不做具体限定。
S306、应用处理器反馈云平台的硬件性能参数。
应用处理器响应于硬件性能查询请求,向用户终端反馈云平台的硬件性能参数。可以理解的是,应用处理器具体反馈的硬件性能参数是与硬件性能查询请求的请求项目相对应的,在实际应用中会因为硬件性能查询请求的不同而有所差异。在大部分情况下,云平台反馈的硬件性能参数包括:云平台是否开启加密安全隔离功能、云平台当前未被分配VMID的安全虚拟机,以及云平台的硬件资源(比如处理器资源、存储空间以及网络资源等)等。
在一种可选的实施方式中,应用处理器还会同时将硬件性能参数发送至安全协处理器,使安全协处理器也能够了解云平台当前的静态能力。
用户终端展示应用处理器反馈的硬件性能参数,虚拟机用户逐一对所得硬件性能参数进行校验,以确认云平台是否谎报静态能力,一旦确认云平台谎报静态能力,同样可以立即终止后续的虚拟机启动操作。
S307、在确认硬件性能参数正常的情况下,用户终端基于信道密钥建立与安全协处理器之间的安全信道。
在本申请中,信道密钥用于建立用户终端与安全协处理器之间的安全信道,以满足某些情况下用户终端与安全协处理器之间的通信需求,至于基于信道密钥建立安全信道的具体实现过程,可参照相关技术实现,本申请对比不做限定。
需要说明的是,在安全虚拟机启动过程中,并未用到安全信道,安全信道的使用将在后续内容中展开,此处暂不详述。
至此,已经完成云平台安全性的验证过程,通过本实施例提供的方法,可以对云平台的安全性进行校验,有助于进一步提高安全虚拟机以及云平台的安全性。
在一种可选的实施方式中,图5所示云平台的验证过程,也是安全虚拟机启动前的配置过程,基于此,在安全信道建立后,安全协处理器将待启动安全虚拟机标记为配置状态。
基于前述内容可知,安全虚拟机的启动可能需要经过多个阶段,以首次创建启动的安全虚拟机为例,其启动过程可以包括配置、创建以及启动三个阶段,简言之,配置阶段的主要任务包括:云平台安全性验证、云平台硬件性能验证以及建立用户终端与安全协处理器之间的安全信道;创建阶段的主要任务包括:解析配置信息、配置信息以及VMID的存储;启动阶段的主要任务包括:安全虚拟机操作系统文件的加密、安全虚拟机运行环境创建以及安全虚拟机的启动。
可以理解的是,上述不同阶段都有可能受到非法攻击,虽然通过硬件级别的隔离环境能够在一定程度上确保安全虚拟机之间的数据安全,并且通过本申请提供的启动方法能够进一步提高安全虚拟机的安全性,但安全虚拟机的启动过程仍然可能出现各种安全问题,导致实际运行的安全虚拟机被攻击者篡改,与用户需求存在偏差,因此,如何验证云平台是否按照用户要求安全的启动了安全虚拟机,进一步提高安全虚拟机启动过程的安全性,成为本领域技术人员亟待解决的技术问题之一。
为解决上述问题,本申请提供一种安全虚拟机度量方法,应用前述实施例提供的服务器中,具体应用于服务器的片上系统中的安全协处理器,本方法在安全虚拟机启动后,向用户终端提供基于安全配置信息得到的哈希值,用户终端根据所得哈希值校验实际启动的安全虚拟机的状态,确保云平台按照用户要求安全的启动安全虚拟机,提高安全虚拟机启动过程的安全性。
参见图6,本申请提供的安全虚拟机度量方法包括如下步骤。
S400、响应于目标安全虚拟机的启动结果,确定是否满足预设虚拟机度量条件。
首先需要说明的是,本实施例中述及的目标安全虚拟机至启动后需要进行度量的安全虚拟机,可以是按照前述实施例提供的安全虚拟机启动方法启动的安全虚拟机,当然,也可以是按照其他方法启动的安全虚拟机,总之,任何在启动后需要度量的安全虚拟机均可以作为本实施例述及的目标安全虚拟机。
沿用前述实施例相关内容,在一种可选的实施方式中,在应用处理器创建安全虚拟机运行环境并在该运行环境中启动目标安全虚拟机之后,应用处理器会向安全协处理器反馈目标安全虚拟机的启动结果,该启动结果可以包括与目标安全虚拟机启动过程相关的信息,比如目标安全虚拟机相关的硬件资源信息以及目标安全虚拟机的操作系统状态信息等,当然,还可以包括其他信息,此处不再一一详述,本申请对于启动结果所包括具体信息不做限定。
在一种可选的实施方式中,安全协处理器对所得启动结果进行信息格式校验,如果启动结果中所包括信息的信息格式异常,安全协处理器可中止后续度量操作,并通过前述安全信道向用户终端反馈异常告警信息。
安全协处理器响应于应用处理器反馈的启动结果,首先确定当前是否满足预设虚拟机度量条件。
在一种可选的实施方式中,如果安全协处理器所属云平台正常运行、目标安全虚拟机对应的虚拟机管理器处于工作状态且目标安全虚拟机处于等待启动状态,则确定满足预设虚拟机度量条件,相反的,如果云平台运行异常,或虚拟机管理器处于非工作状态,或者目标安全虚拟机未处于等待启动状态,确定不满足预设虚拟机度量条件。
具体的,安全协处理器在接收到目标安全虚拟机的启动结果之后,首先对自身所属云平台是否正常运行进行判断,具体包括:对云平台的硬件安全性进行检查,比如检查云平台当前是否存在硬件故障、检查云平台的硬件资源的运行状态,当然,还可以包括其他有关云平台硬件性能的检查,如果存在硬件异常,则确定云平台运行异常。当然,还可以对云平台的软件资源进行安全检查,在存在软件异常的情况下,同样确定云平台运行异常。
在确定云平台运行异常的情况下,安全协处理器控制云平台所加载的全部安全虚拟机停止运行,并将各安全虚拟机标记为未运行状态。
进一步的,在确定云平台正常之后,安全协处理器获取应用处理器中虚拟机管理器当前的工作状态,如果虚拟机管理器处于非工作状态,则控制虚拟机管理器运行。具体的,安全协处理器向虚拟机管理器发起激活请求,虚拟机管理器响应于该激活请求,将自身状态调整为工作状态。
安全协处理器进一步检查目标安全虚拟机的当前状态,基于前述实施例内容可知,在正常情况下,应用处理器启动安全虚拟机之后,安全协处理器将安全虚拟机标记为等待启动状态,并在此之后进入度量阶段,因此,如果整个安全虚拟机启动流程正常,在执行本步骤时,目标安全虚拟机应用处于等待启动状态,基于此,如果目标安全虚拟机当前处于等待启动状态,则可以确定启动流程正常,相反的,如果目标安全虚拟机当前未处于等待启动状态,则说明启动过程存在异常,安全协处理器随即终止目标安全虚拟机的度量过程,并通知应用处理器中的虚拟机管理器对目标安全虚拟机的完整启动流程进行检查,同时,通过安全信道通知用户终端目标安全虚拟机启动异常,以便虚拟机用户采取相应的处理措施,比如检查配置文件的信息或重启目标安全虚拟机。
如前所述,安全协处理器存储有安全虚拟机的配置信息,包括其中的安全配置信息,在对目标安全虚拟机度量过程中,安全协处理器还会对目标安全虚拟机对应的安全配置信息进行检查。在一种可选的实施方式中,检查的配置项可以包括:是否开启加密隔离安全功能、共享策略是否满足虚拟机用户的初始配置要求、是否允许目标安全虚拟机迁移、是否允许目标安全虚拟机和其他安全虚拟机进行跨虚拟机共享操作等,当然,在实际应用中,还可以根据度量需求对其他安全相关的配置项进行检查,此处不再一一罗列。需要说明的是,对于安全配置信息的检查,并非检查某个配置项的具体设置情况,比如检查加密隔离安全功能是配置为开启或关闭,配置项的具体配置情况是由虚拟机用户决定的,如何选择都是允许的。本实施例述及的安全配置信息检查,主要是对安全配置信息中各配置项是否存在非法参数进行检查,比如,检查某个配置项的取值是否超出其预设取值范围,或者,某个配置项的格式是否正常等。本实施例结合正常情况下安全配置信息中各配置项的格式要求以及取值范围等方面设置预设配置规则,该规则包括各配置项的正确格式以及预设取值范围,当然,还可以根据实际需求以及配置项的具体情况设置其他规则,然后,安全协处理器分别对安全配置信息中的各配置项是否满足其对应的预设配置规则进行校验,如果存在至少一个配置项不符合预设配置规则,则确定不满足预设虚拟机度量条件。在确定安全配置信息异常的情况下,安全协处理器终止目标安全虚拟机的度量过程。
需要说明的是,在实际应用中,还可以基于实际的检查需求以及安全虚拟机的度量要求设置其他虚拟机度量条件,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
S401、若满足预设虚拟机度量条件,计算目标安全虚拟机的目标配置项的哈希值。
在确定满足预设虚拟机度量条件之后,安全协处理器计算目标安全虚拟机的配置信息中的目标配置项的哈希值。
如前所述,安全配置信息中包括的配置项有很多,在实际应用中可以根据实际度量需求选择其中的全部或部分配置项计算哈希值。当然,目标配置项的选择以能够全面衡量或判断是否按照虚拟机用户要求启动安全虚拟机为标准,选择配置信息中典型的配置项作为目标配置项。在一种可选的实施方式中,目标配置项包括安全虚拟机的启动信息、安全虚拟机的私有数据摘要、安全协处理器中安全固件的版本号、安全固件的摘要、安全固件生成的随机数以及用于加密配置信息的传输密钥中的至少一项。当然,还可以选择其他配置项用于计算哈希值,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
需要说明的是,上述计算过程,是将各目标配置项作为整体(比如组合为一个结构体)计算得到一个哈希值,并非每一个目标配置项计算得到一个哈希值。至于计算哈希值所采用的哈希算法以及具体的计算过程,可参照相关技术实现,本申请对此不做限定。
S402、至少向用户终端提供哈希值。
安全协处理器向用户终端反馈计算所得哈希值,用户终端对所得哈希值进行验签即可得到相应的目标配置项,用户终端基于哈希值验签得到目标配置项的具体实现可参照相关技术,此处不再详述。
在一种可选的实施方式中,安全协处理器通过前述安全通道向用户终端提供哈希值,基于前述内容可知,安全信道基于信道密钥创建,而且,用户终端和安全协处理器都持有该信道密钥,基于此,安全协处理器在发送哈希值之前,使用信道密钥对哈希值加密,通过安全信道传输加密后的哈希值。用户终端得到加密后的哈希值之后,使用自己持有的信道密钥对加密后的哈希值解密,进而得到解密后的哈希值。进一步的,对所得哈希值进行验签,得到相应的目标配置项,并通过校验目标配置项确定云平台是否按照要求启动目标安全虚拟机。
在另一种可选的实施方式中,安全协处理器使用预生成的传输密钥对安全虚拟机的配置信息加密,以密文形式存储安全虚拟机的配置信息。在此情况下,安全协处理器需要通过安全信道向用户终端同时发送所得哈希值和该传输密钥。具体的,安全协处理器在发送哈希值之前,使用信道密钥对哈希值以及传输密钥加密,通过安全信道传输加密后的哈希值和传输密钥。用户终端得到加密后的哈希值和传输密钥之后,使用自己持有的信道密钥对加密后的哈希值和信道密钥解密,进而得到解密后的哈希值和传输密钥。进一步的,用户终端对所得哈希值进行验签,得到相应的目标配置项密文,然后,使用传输密钥对目标配置密文解密,从而得到目标配置项明文,并通过校验目标配置项确定云平台是否按照要求启动目标安全虚拟机。
基于前述内容可知,安全虚拟机的配置情况由虚拟机用户决定,其配置文件最初由用户终端提供,因此,用户终端存储有目标安全虚拟机最初的配置信息,基于此,用户终端在经过前述步骤得到目标配置项后,虚拟机用户基于配置文件记载的初始配置信息分别对各个目标配置项进行校验,即可确定云平台是否按照配置文件,即用户要求启动目标安全虚拟机。
综上所述,本实施例提供的安全虚拟机度量方法中,应用处理器响应于目标安全虚拟机的启动结果,确定是否满足预设虚拟机度量条件,在满足预设虚拟机度量条件的情况下,计算目标安全虚拟机目标配置项的哈希值,并至少向用户终端提供所得哈希值,用户终端基于该哈希值后得到目标配置项,并对目标配置项进行校验,确定目标安全虚拟机是否按要求启动,基于此,本方法在安全虚拟机启动后,向用户终端提供基于目标配置项得到的哈希值,用户终端根据所得哈希值校验实际启动的安全虚拟机,确保云平台按照用户要求安全的启动安全虚拟机,提高安全虚拟机启动过程的安全性。
在一种可选的实施方式中,安全协处理器在完成上述操作后,将目标安全虚拟机标记为度量状态。
进一步的,在图6所示实施例的基础上,本申请提供另一种安全虚拟机度量方法,结合图7所示,本实施例提供的度量方法包括以下步骤。
S500、响应于目标安全虚拟机的启动结果,确定是否满足预设虚拟机度量条件。
在一种可选的实施方式中,本步骤可参照图6所示实施例中S400的相关内容实现,此处不再复述。
S501、若满足预设虚拟机度量条件,计算目标安全虚拟机的目标配置项的哈希值。
在一种可选的实施方式中,本步骤可参照图6所示实施例中S401的相关内容实现,此处不再复述。
S502、至少向用户终端提供哈希值。
在一种可选的实施方式中,本步骤可参照图6所示实施例中S402的相关内容实现,此处不再复述。虚拟机用户根据所得哈希值确定云平台是否按照要求启动目标安全虚拟机。
S503、获取磁盘加密密钥。
如果在经过前述步骤后,虚拟机用户确认云平台按照自身要求启动了安全虚拟机,会通过用户终端生成并向安全虚拟机注入磁盘加密密钥,安全协处理器通过安全信道获取该磁盘加密密钥。
在一种可选的实施方式中,虚拟机用户在确定云平台按照自身要求启动安全虚拟机之后,可通过用户终端向云平台反馈通知信息,指示云平台已经按照要求启动安全虚拟机。
S504、将目标安全虚拟机标记为磁盘加密状态。
安全协处理器在接收到用户终端提供的磁盘加密密钥之后,将目标安全虚拟机标记为磁盘加密状态。
S505、基于磁盘加密密钥对目标安全虚拟机的磁盘数据加密。
安全协处理器进一步基于磁盘加密密钥对目标安全虚拟机的磁盘数据进行加密。需要说明的是,此处述及的磁盘数据,主要指外部存储介质中分配给目标安全虚拟机的存储空间内的数据,也就是说,磁盘加密密钥主要用于加密外部存储介质(比如硬盘)中的数据。通过加密处理,目标安全虚拟机的磁盘数据均以密文形式存储于外部存储介质中,攻击者无法获得有效磁盘中的明文数据,显著提高安全虚拟机用户的数据安全性。
S506、将目标安全虚拟机标记为运行状态。
在完成目标安全虚拟机的磁盘数据加密之后,安全协处理器将目标安全虚拟机标记为运行状态,处于运行状态的安全虚拟机可向虚拟机用户提供相应的云平台服务,虚拟机用户即可访问云平台为其提供的平台资源。
综上所述,本实施例提供的安全虚拟机度量方法,在能够对安全虚拟机进行度量,验证是否按照虚拟机用户需求启动安全虚拟机的前提下,进一步对安全虚拟机的磁盘数据进行加密,有助于进一步提高安全虚拟机的可靠性和安全性。
本申请还提供一种处理器,该处理器被配置为执行如上述任一项实施例提供的安全虚拟机度量方法。
基于上述内容可知,在安全协处理器将安全虚拟机标记为运行状态之后,安全虚拟机即可向虚拟机用户提供相应的服务,而在安全虚拟机实际运行过程中,难免会出现异常情况,影响安全虚拟机的运行可靠性和稳定性,此种情况下即需要对安全虚拟机进行调试,因此,如何对安全虚拟机进行调试,确保安全虚拟机可靠运行,进而确保可信执行环境的安全性,成为本领域技术人员亟待解决的技术问题之一。
为解决上述问题,在前述实施例的基础上,本申请提供一种安全虚拟机调试方法,应用于前述内容述及的服务器中,具体应用于服务器的片上系统,具体的,第二处理器向第一处理器发送针对待调试安全虚拟机的调试请求,第一处理器响应于该调试请求,在待调试安全虚拟机允许调试且调试信息满足预设规则情况下,基于调试请求访问待调试安全虚拟机对应的私有内存空间。通过本方法,可以访问安全虚拟机对应的私有内存空间,处理私有内存空间中存储的数据,并据此实现对安全虚拟机的调试,为用户排查安全虚拟机异常,提高安全虚拟机的可靠性和安全性提供支持,有助于提高可信执行环境的安全性。
基于上述内容,参见图8,本实施例提供的安全虚拟机调试方法,包括一下步骤。
S600、应用处理器发送针对待调试安全虚拟机的调试请求。
在本申请提供的各安全虚拟机调试方法中,将需要进行调试的安全虚拟机称为待调试安全虚拟机,待调试安全虚拟机可以是云平台所提供的多个安全虚拟机中的任意一台需要调试的安全虚拟机,本申请对于待调试安全虚拟机的具体选择不做限定。
安全虚拟机的调试,主要依赖于对于安全虚拟机私有内存空间的访问,通过访问安全虚拟机的私有内存空间,向私有内存空间内写入调试数据,或者,读取私有内存空间中所存储的数据,进一步基于所得内存数据分析确定安全虚拟机运行异常的原因,因此,本申请涉及的调试请求包括写内存请求和读内存请求。在实际应用中,各调试请求所包括的调试信息并不相同,因此,安全虚拟机的具体调试过程会存在一定差异,针对写内存请求以及读内存请求的具体调试过程,将在后续内容中分别展开,此处暂不详述。
在安全虚拟机的实际应用中,虚拟机用户作为安全虚拟机的所有者和直接使用者,往往能够直观的确定安全虚拟机运行过程存在异常,因此,在一种可选的实施方式中,待调试安全虚拟机的调试请求最先由虚拟机用户通过用户终端发起。基于前述内容可知,用户终端可直接与应用处理器进行信息交互,即具体与应用处理器所加载的虚拟机管理器交互,在此前提下,用户终端向应用处理器发送调试请求。应用处理器在获取用户终端针对待调试安全虚拟机的调试请求之后,进一步向安全协处理器转发该调试请求。
S601、安全协处理器响应于调试请求,确定待调试安全虚拟机是否允许调试。
在一种可选的实施方式中,为保证调试过程的可靠进行,本申请提供的安全虚拟机调试方法设置预设调试条件,在获取待调试安全虚拟机的调试请求之后,安全协处理器首先确定是否满足预设调试条件,只有在满足预设调试条件的情况下,才会进一步确定待调试安全虚拟机是否允许调试。
是否满足预设调试条件的判断过程可以为:如果安全协处理器所属云平台正常运行、待调试安全虚拟机处于运行状态,且待调试安全虚拟机为当前运行的安全虚拟机,则确定满足预设调试条件,相反的,如果安全协处理器所属云平台运行异常,或待调试安全虚拟机未处于运行状态,或待调试安全虚拟机非当前运行的安全虚拟机,则确定不满足预设调试条件。
具体的,安全协处理器响应于调试请求,对自身所属云平台的硬件资源和硬件状态进行检查,确保并未存在安全问题或硬件故障。在完成硬件资源的检查之后,还会进一步对云平台的运行状态进行检查,确认云平台是否处于运行状态,如果云平台当前未处于运行状态,安全协处理器还会进一步通知应用处理器将云平台切换为运行状态。总之,在云平台硬件资源正常且云平台处于运行状态的情况下,确认云平台运行正常,否则,确认云平台运行异常。
如前所述,在虚拟机用户确定度量结果正常,云平台按照要求启动安全虚拟机,且安全协处理器对安全虚拟机的磁盘数据进行加密之后,安全协处理器会将安全虚拟机的状态标记为运行状态,安全虚拟机处于运行状态既是虚拟机用户使用安全虚拟机的前提,也是对安全虚拟机进行调试的前提。基于此,安全协处理器进一步获取待调试安全虚拟机的状态,确认待调试安全虚拟机是否处于运行状态,如果待调试安全虚拟机未处于运行状态,则确定不满足预设调试条件。
在实际应用中,只有已经运行的安全虚拟机才能进行调试,基于此,云平台同时提供多台安全虚拟机,导致调试请求所对应的待调试安全虚拟机有可能并非当前已经运行的安全虚拟机,此种情况下,显然无法对未运行的安全虚拟机进行调试,因此,安全协处理器对待调试安全虚拟机是否为当前运行的安全虚拟机进行判断,如果待调试安全虚拟机并非当前运行的安全虚拟机,则确定不满足预设调试条件。
在另一种可选的实施方式中,安全协处理器还可以进一步对待调试安全虚拟机的配置信息进行检查,如前所述,安全协处理器在安全虚拟机创建过程中会存储安全虚拟机的配置信息,该配置信息记载有相应安全协处理器的初始配置情况,基于此,安全协处理器获取待调试安全虚拟机的当前配置信息,如果该当前配置信息和安全协处理器存储的待调试安全虚拟机的配置信息不同,则同样可以确定不满足预设调试条件。
在分别对上述信息进行检查之后,如果各项信息都正常,则确定满足预设调试条件,安全协处理器进一步判断待调试安全虚拟机是否允许调试。相反的,如果确定不满足预设调试条件,安全协处理器停止调试待调试安全虚拟机并通过前述安全信道向用户终端反馈故障通知信息。
在确定满足预设调试条件之后,安全协处理器进一步确定待调试安全虚拟机是否允许调试。如前所述,安全虚拟机的配置信息包括有与安全虚拟机调试过程相关的调试配置信息,调试配置信息中即记载有待调试安全虚拟机是否允许调试,基于此,安全协处理器通过查询待调试安全虚拟机的调试配置信息,即可确定其是否允许调试。
在一种可选的实施方式中,调试请求在包括调试信息的基础上,还携带有待调试安全虚拟机的VMID,安全协处理器解析所得调试请求,提取其所携带的VMID,并进一步根据所得VMID确定待调试安全虚拟机的配置信息,进而根据配置信息确定待调试安全虚拟机是否允许调试。
S602、若待调试安全虚拟机允许调试,安全协处理器确定调试请求中的调试信息是否满足预设规则。
在待调试安全虚拟机允许调试的情况下,安全协处理器进一步确定调试信息是否满足预设规则。可以理解的是,由于安全虚拟机的调试涉及安全虚拟机的私有内存空间的访问,因此,本申请述及的预设规则通常基于内存访问需求设置。如前所述,读内存请求和写内存请求对应的调试信息不尽相同,因此,对于调试信息是否满足预设规则的判断将在后续内容中分别展开,此处暂不详述。
S603、若调试信息满足预设规则,安全协处理器基于调试请求访问待调试安全虚拟机私有内存空间。
在调试信息满足预设规则的情况下,安全协处理器根据调试请求访问待调试安全虚拟机对应的私有内存空间,向私有内存空间内写入调试数据,修复相应异常,或者,读取私有内存空间中所存储的数据,进一步基于所得内存数据分析确定安全虚拟机运行异常的原因。
综上所述,通过本实施例提供的安全虚拟机调试方法,可以访问安全虚拟机对应的私有内存空间,处理私有内存空间中存储的数据,并据此实现对安全虚拟机的调试,为用户排查安全虚拟机异常,提高安全虚拟机的可靠性和安全性提供支持,有助于提高可信执行环境的安全性。
需要说明的是,对于首次创建并启动使用的安全虚拟机而言,在对其进行调试之前,必然经历安全虚拟机配置、安全虚拟机创建、安全虚拟机启动以及安全虚拟机度量等阶段,这些阶段的具体实现方式可参照前述内容中相应实施例提供的方法,此处不再复述。
下面分别对读内存请求和写内存请求两种情况下的调试过程展开介绍。
参见图9,本申请提供的另一种安全虚拟机调试方法包括如下步骤。
S700、用户终端发送状态查询请求。
针对安全虚拟机的调试,要求在安全虚拟机处于运行状态下,即真正能够为虚拟机用户提供虚拟机服务的状态下,因此,作为一种可选的实施方式,在展开对安全虚拟机的调试之前,虚拟机用户可首先对待调试安全虚拟机的当前状态进行查询,基于此,用户终端通过在待调试安全虚拟机启动阶段创建的安全信道向安全处理器发送状态查询请求。
S701、安全协处理器响应于状态查询请求,反馈待调试安全虚拟机的当前状态。
安全协处理器通过安全信道接收状态查询请求,确定待调试安全虚拟机的当前状态,并进一步通过安全信道反馈待调试安全虚拟机的当前状态。
在一种可选的实施方式中,状态查询请求中携带有VMID,安全协处理器在接收状态查询请求之后,提取该请求中携带的VMID,即可根据所得VMID确定待调试安全虚拟机,进而反馈待调试安全虚拟机的当前状态。当然,用户终端还可以通过其他方式指示具体哪一台安全虚拟机为待调试安全虚拟机,此处不再详细展开,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
如前所述,安全虚拟机的调试过程,要求安全虚拟机处于运行状态,如果安全协处理器确定待调试安全虚拟机当前未处于运行状态,则还会进一步通过安全信道向用户终端反馈告警信息,同时,终止后续的调试操作。
S702、用户终端在待调试安全虚拟机处于运行状态的情况下,发送读内存请求。
在确定待调试安全虚拟机处于运行状态之后,用户终端向应用处理器(具体为运行于应用处理器的虚拟机管理器)发送读内存请求。
S703、应用处理器转发读内存请求。
应用处理器在接收到读内存请求之后,解析读内存请求并提取读内存请求携带的调试信息。在一种可选的实施方式中,该调试信息包括源地址和数据长度。其中,源地址为内存数据的在内存空间中的起始地址,数据长度即内存数据的数据长度,结合相关技术可知,在确定源地址以及数据长度的情况下,即可确定内存数据的存储空间,读取该存储空间的数据即得到待读取的内存数据。在另一种可选的实施方式中,调试信息中包括源地址和终止地址,终止地址为内存数据对应的末位存储地址,源地址和终止地址之间的内存空间即存储内存数据的内存空间,读取该内存空间的数据即得到待读取的内存数据。当然,还可以通过其他方式指示待读取的内存数据,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
在一种可选的实施方式中,应用处理器还会进一步在内存空间中分配缓冲存储区,通过该缓冲存储区存储调试过程中需要交互的内存数据,至于缓冲存储区的具体应用将在后续内容中展开,此处暂不详述。
完成初步校验后,将读内存请求发送至安全处理器。
S704、安全协处理器响应于读内存请求,确定待调试安全虚拟机是否允许调试。
在一种可选的实施方式中,本步骤可参照图8所示实施例中的S601实现,此处不再复述。
S705、若待调试安全虚拟机允许调试,安全协处理器确定读内存请求中的调试信息是否满足预设规则。
在确定待调试安全虚拟机允许调试的情况下,安全协处理器进一步判断读内存请求中的调试信息是否满足预设规则,本实施例所述及的预设规则基于待调试安全虚拟机的私有内存空间的地址范围以及内存访问要求设置。
在一种可选的实施方式中,读内存请求的调试信息包括源地址和数据长度。如前所述,每一台安全虚拟机都对应有相应的私有内存空间,更为重要的是,各安全虚拟机的私有内存空间是相互隔离的,虚拟机用户禁止访问自身持有的安全虚拟机以外的其他安全虚拟机的私有内存空间,基于此,安全协处理器首先需要确定当前的读内存请求所指示的源地址是否为待调试安全虚拟机所对应的私有内存空间的地址,如果源地址未处于待调试安全虚拟机的私有内存空间的内存地址范围内,则可以确定该源地址为非法地址,安全协处理器可终止当前调试操作,并将异常结果反馈虚拟机用户。
进一步的,安全协处理器对数据长度进行校验,比如,基于源地址与该数据长度可确定相应的终止地址,进而判断该终止地址是否超出前述待调试安全虚拟机的私有内存空间的地址范围,或者,还可以判断该数据长度是否满足计算机语言的数据格式,当然,还可以对数据长度进行其他校验,具体可参照相关技术实现,本申请数据长度的具体校验过程不做限定。
在调试信息包括其他信息的情况下,安全协处理器还需要结合调试信息的具体情况进行校验,总的要求是不能访问其他安全虚拟机的私有内存空间且满足相关技术中的内存访问要求,此处不再详细展开。
S706、若调试信息满足预设规则,安全协处理器向应用处理器发送调试命令。
在确定调试信息满足预设规则的情况下,安全协处理器向应用处理器发送调试命令,通知应用处理器对待调试安全虚拟机进行调试。可以理解的是,在前述S703中,应用处理器已然获得读内存请求中的调试信息,因此,本步骤所发送的调试命令,主要用于触发应用处理器执行S707。
在一种可选的实施方式中,安全协处理器还会在此步骤将待调试安全虚拟机标记为调试状态。
S707、应用处理器响应于调试命令,基于读内存请求获取解密后的内存数据。
应用处理器响应于调试命令,向内存控制器发送该读内存请求的调试信息,内存控制器基于调试信息确定内存数据。在调试信息包括源地址和数据长度的情况下,自源地址开始,按照数据长度读取相应内存空间内的数据,即确定调试请求对应的内存数据。当然,在调试信息包括其他可以指示内存数据的信息的情况下,内存数据的确定和读取会存在一定差异,此处不再详述,具体可参照相关技术实现。
如前所述,安全虚拟机的内存数据在内存空间内是以密文形式存储的,因此,在确定待读取的内存数据之后,首先由密码引擎基于待调试安全虚拟机的虚拟机密钥对待读取的内存数据解密,然后向应用处理器反馈解密后的内存数据,最终由应用处理器向安全处理器反馈解密后的内存数据。
在一种可选的实施方式中,应用处理器创建有缓冲存储区,在向安全处理器反馈解密后的内存数据时,可将解密后的内存数据暂存至该缓冲存储区中,通过该缓冲存储区与安全处理器进行数据交互。
S708、安全协处理器向用户终端提供解密后的内存数据。
在得到解密后的内存数据之后,安全协处理器通过前述安全信道将解密后的内存数据发送至用户终端。
S709、用户终端基于解密后的内存数据调试待调试安全虚拟机。
用户终端基于解密后的内存数据分析待调试安全虚拟机的运行过程,确定异常原因,并对待调试安全虚拟机进行故障修复等操作,直至完成安全虚拟机的调试操作,使待调试安全虚拟机恢复正常。
在一种可选的实施方式中,在应用处理器创建缓冲存储区的情况下,安全协处理器还可对缓冲存储区的地址以及容量进行检查,如果检查发现缓冲存储区的地址或容量有可能影响待调试安全虚拟机的安全,则终止当前调试操作,并通过安全系统向用户终端发送告警信息。
综上所述,通过本实施例提供的调试方法,可以读取待调试安全虚拟机的内存数据,虚拟机用户基于所得内存数据对待调试安全虚拟机的故障原因进行分析,进而实现对安全虚拟机的调试,为用户排查安全虚拟机异常,提高安全虚拟机的可靠性和安全性提供支持,有助于提高可信执行环境的安全性。
参见图10,本申请提供的再一种安全虚拟机调试方法包括如下步骤。
S800、用户终端发送状态查询请求。
在一种可选的实施方式中,本步骤可参照图9所示实施例中的S700实现,此处不再复述。
S801、安全协处理器响应于状态查询请求,反馈待调试安全虚拟机的当前状态。
在一种可选的实施方式中,本步骤可参照图9所示实施例中的S701实现,此处不再复述。
S802、用户终端在待调试安全虚拟机处于运行状态的情况下,发送写内存请求。
在确定待调试安全虚拟机处于运行状态之后,用户终端向应用处理器发送写内存请求。
S803、应用处理器转发写内存请求。
应用处理器在接收到写内存请求之后,解析写内存请求并提取写内存请求携带的调试信息。在一种可选的实施方式中,该调试信息包括目标数据和目标地址。其中,目标数据为需要写入待调试安全虚拟机的私有内存空间的数据,该数据可以用于修复待调试安全虚拟机的异常状态,而目标地址即目标数据在待调试安全虚拟机的私有内存空间中的存储地址。
在一种可选的实施方式中,应用处理器还会进一步在内存空间中分配缓冲存储区,通过该缓冲存储区存储调试过程中需要交互的内存数据,至于缓冲存储区的具体应用将在后续内容中展开,此处暂不详述。
初步校验之后,应用处理器将写内存请求发送至安全处理器。
S804、安全协处理器响应于写内存请求,确定待调试安全虚拟机是否允许调试。
在一种可选的实施方式中,本步骤可参照图9所示实施例中的S704实现,此处不再复述。
S805、若待调试安全虚拟机允许调试,安全协处理器确定写内存请求中的调试信息是否满足预设规则。
在确定待调试安全虚拟机允许调试的情况下,安全协处理器进一步判断写内存请求中的调试信息是否满足预设规则,本实施例所述及的预设规则基于待调试安全虚拟机的私有内存空间的地址范围以及内存访问要求设置。
在一种可选的实施方式中,写内存请求的调试信息包括目标数据和目标地址。如前所述,每一台安全虚拟机都对应有相应的私有内存空间,更为重要的是,各安全虚拟机的私有内存空间是相互隔离的,虚拟机用户禁止访问自身持有的安全虚拟机以外的其他安全虚拟机的私有内存空间,基于此,安全协处理器首先需要确定当前的写内存请求所指示的目标地址是否为待调试安全虚拟机所对应的私有内存空间的地址,如果目标地址未处于待调试安全虚拟机的私有内存空间的内存地址范围内,则可以确定该目标地址为非法地址,安全协处理器可终止当前调试操作,并将异常结果反馈虚拟机用户。
进一步的,安全协处理器对目标数据的数据长度进行校验,以确保自目标地址存储目标数据时,目标数据不会发生溢出,即占用其他安全虚拟机的内存空间,或者,还可以判断该目标数据的数据格式是否正确,当然,还可以对目标数据进行其他校验,具体可参照相关技术实现,本申请目标数据的具体校验过程不做具体限定。
在调试信息包括其他信息的情况下,安全协处理器还需要结合调试信息的具体情况进行校验,总的要求是不能访问其他安全虚拟机的私有内存空间且满足相关技术中的内存访问要求,此处不再详细展开。
S806、若调试信息满足预设规则,安全协处理器对目标数据进行加密,得到目标数据密文。
如前所述,安全虚拟机的相关数据在内存空间中以密文形式存储,安全协议处理器在向内存中写入数据时,首先需要对内存数据进行加密。基于此,在确定调试信息满足预设规则的情况下,安全协处理器对目标数据进行加密,从而得到目标数据密文。在一种可选的实施方式中,安全协处理器使用创建待调试安全虚拟机过程中生成的虚拟机密钥对目标数据加密,基于前述内容可知,安全虚拟机与虚拟机密钥为一一对应关系,因此,在对目标数据进行加密时,应使用待调试安全虚拟机的虚拟机密钥,以保证数据安全。
在一种可选的实施方式中,如果应用处理器在转发写内存请求过程中创建了缓冲存储区,安全协处理器在加密得到目标数据密文之后,可将目标数据密文存储至该缓冲存储区中。
在一种可选的实施方式中,安全协处理器还会在此步骤通知待调试安全虚拟机进行调试,使得待调试安全虚拟机不再执行内核相关的命令操作,同时将待调试安全虚拟机标记为调试状态。
S807、安全处理器按照目标地址,将目标数据密文存储至待调试安全虚拟机对应的私有内存空间。
安全处理器通过内存控制器,将目标数据密文按照目标地址存储至待调试安全虚拟机对应的私有内存空间,完成对待调试安全虚拟机的写内存操作,以修复待调试安全虚拟机的异常。至于安全处理器通过内存控制器访问内存空间的具体实现方式,可参照相关技术实现,本申请对这一具体过程不做限定。
在一种可选的实施方式中,在应用处理器创建缓冲存储区的情况下,安全协处理器还可对缓冲存储区的地址以及容量进行检查,如果检查发现缓冲存储区的地址或容量有可能影响待调试安全虚拟机的安全,则终止当前调试操作,并通过安全系统向用户终端发送告警信息。
综上所述,通过本实施例提供的调试方法,可以向待调试安全虚拟机的内存空间写入数据,进而实现对安全虚拟机的调试,为用户排查安全虚拟机异常,提高安全虚拟机的可靠性和安全性提供支持,有助于提高可信执行环境的安全性。
本申请还提供一种处理器,该处理器被配置为执行如本申请上述任一项实施例提供的安全虚拟机调试方法中安全处理器所执行的步骤。
本申请还提供另一种处理器,该处理器被配置为执行如本申请上述任一项实施例提供的安全虚拟机调试方法中应用处理器所执行的步骤。
本申请提供的上述技术方案,覆盖安全虚拟机实际应用过程中的多个阶段,即安全虚拟机配置、安全虚拟机创建、安全虚拟机启动、安全虚拟机度量以及安全虚拟机调试,本申请所提供的对应各个阶段的方法,即可以独立使用,同时,相互之间也可以根据需求组合使用,以前述调试方法为例,也可以单独应用于安全虚拟机的调试,同时,也可以和前述启动以及度量过程配合使用,即在完成安全虚拟机的启动之后,对安全虚拟机进行度量,在根据度量结果确定所启动的安全虚拟机满足用户需求之后,进一步对安全虚拟机进行调试。当然,还存在其他不同的组合应用方式,此处不再一一列举,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
如前所述,对于任一虚拟机用户而言,其可向云平台申请一台安全虚拟机,也可以根据应用需求向云平台申请多台安全虚拟机,当虚拟机用户需要启动其所拥有的多台安全虚拟机时,需要逐一对安全虚拟机的启动过程进行检查,并分别对各安全虚拟机的度量结果进行确认,显然,这种启动方式的启动效率低下,会占用虚拟机用户大量时间,用户体验较差。
为解决上述问题,本申请在前述内容的基础上,提供另一种安全虚拟机启动方法,应用于前述实施例提供的服务器,具体应用于服务器中的片上系统,片上系统中第一处理器与第二处理器相互配合,首先启动主安全虚拟机,在启动主安全虚拟机之后,由主安全虚拟机对后续各从安全虚拟机的度量结果进行校验,相较于现有技术中由虚拟机用户逐一对各安全虚拟机的度量结果进行校验的方法相比,可以极大提高安全虚拟机的启动效率,同时,节省虚拟机用户的大量时间,改善虚拟机用户的使用感受。
结合图11所示,本申请提供的安全虚拟机启动方法包括以下步骤。
S900、应用处理器解析配置文件,得到所述配置文件记载的配置信息。
如前所述,云平台为了满足不同虚拟机用户的需求,云平台支持虚拟机用户对自身所租赁的安全虚拟机进行配置,进而享有个性化的定制服务,虚拟机用户可以通过用户终端向云平台,即向应用处理器发送配置需求。
在一种可选的实施方式中,虚拟机用户对于安全虚拟机的配置需求以配置文件的形式承载,即配置文件记载安全虚拟机相关的全部配置信息。应用处理器接收虚拟机用户通过用户终端提供的配置文件之后,即对配置文件进行解析,得到其中的配置信息。
需要说明的是,相较于前述实施例提供的安全虚拟机启动方法,本实施例提供的配置文件不仅包括主安全虚拟机的配置信息,还包括至少一个从安全虚拟机的配置信息,也就是说,通过一份配置文件,承载虚拟机用户所有的安全虚拟机的配置信息。如此设置,可以避免虚拟机用户在同时启动多台安全虚拟机时,分别逐一上传各台安全虚拟机的配置文件,节省用户大量的时间。
进一步的,在主安全虚拟机以及从安全虚拟机的选择方面,可以将多个安全虚拟机中的任意一台安全虚拟机作为主虚拟机,相应的,虚拟机用户所持有其他安全虚拟机则作为从安全虚拟机。
对于主安全虚拟机以及从安全虚拟机启动顺序,可以通过设置配置文件记载配置信息的形式设置,比如,将主安全虚拟机的配置信息作为后续过程中安全协处理器首先读取的信息,并以子信息的形式将从安全虚拟机的配置信息记载于主安全虚拟机的配置信息之中,当然,还可以采用其他形式记载各安全虚拟机的配置信息,只要能够确保安全协处理器能够首先读取主安全虚拟机配置信息,然后逐一读取各从安全虚拟机的配置信息这一要求的加载方式即都是可选的,同样属于本申请保护的范围内。
当然,还可以通过其他方式区分主安全虚拟机和从安全虚拟机的配置信息,比如,在配置信息中添加标签,主安全虚拟机对应第一标签,从安全虚拟机对应第二标签等,此处不再一一罗列,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
还需要说明的是,不论是主安全虚拟机的配置信息,还是从安全虚拟机的配置信息,均包括前述实施例中述及的启动配置信息、调试配置信息以及安全配置信息,对于各类配置信息的作用可参照前述相关内容,此处不再复述。
S901、应用处理器向安全协处理器提供配置信息。
应用处理器在解析得到全部配置信息后,将配置信息发送至安全协处理器。需要说明的是,应用处理器本身并不会存储任何解析得到的配置信息,因此,在后步骤中,安全协处理器需要根据任务需求向应用处理器提供相关的配置信息,具体将在后续内容中展开,此处暂不详述。
S902、安全协处理器获取配置信息,并对第一操作系统文件进行加密。
安全协处理器响应于所得配置信息,开始主安全虚拟机的启动流程。
首先,作为一种可选的实施方式,安全协处理器以安全虚拟机结构体的形式存储配置信息,在此情况下,安全协处理器创建主安全虚拟机的安全虚拟机结构体,并将主安全虚拟机的配置信息存储于该安全虚拟机结构体中,同时,还会记录主安全虚拟机的生命状态周期。至于安全协处理器创建主安全虚拟机的安全虚拟机结构体的具体实现方式以及安全虚拟机结构体的具体形式,均可参照相关技术实现,本申请对此不做限定。
然后,安全协处理器对主安全虚拟机所加载的操作系统文件进行加密,为便于表述,本实施例将主安全虚拟机所加载的操作系统的操作系统文件定义为第一操作系统文件。
作为一种可选的实施方式,安全协处理器向应用处理器发送第三通知命令,应用处理器响应于第三通知命令为主安全虚拟机分配VMID。如前所述,本申请通过VMID唯一的表征安全虚拟机,因此,在安全虚拟机创建过程中需要为安全虚拟机分配VMID。应用处理器响应于第三通知命令,在VMID集合中选择未使用的VMID,将其分配给主安全虚拟机,并将分配结果反馈安全协处理器。
安全协处理器将主安全虚拟机的VMID存储至安全虚拟机结构体,并发送第一通知命令,通过第一通知命令指示应用处理器将主安全虚拟机的第一操作系统文件加载至内存。作为一种可选的实施方式,安全协处理器发送第一通知命令的具体实现,可参照图3所示实施例中S101的相关内容,此处不再复述。
进一步的,安全协处理器生成主安全虚拟机的虚拟机密钥,并建立主安全虚拟机的虚拟机密钥与主安全虚拟机的虚拟机密钥之间的绑定关系。虚拟机密钥的生成过程,可参照前述实施例中相关内容实现,此处不再复述。在一种可选的实施方式中,在得到虚拟机密钥之后,安全协处理器还会将虚拟机密钥存储至内存控制器中密码引擎的密钥存储单元内,以便后续加解密内存数据使用。
生成主安全虚拟机的虚拟机密钥之后,安全协处理器即基于该虚拟机密钥对主安全虚拟机的第一操作系统文件进行加密。
可以理解的是,通过加密操作系统文件,可以显著提高操作系统文件的安全性,避免外界攻击行为轻易攻击安全虚拟机的操作系统,进而提高安全虚拟机的安全性。进一步的,由于各个安全虚拟机所采用的虚拟机密钥互不相同,对操作系统文件加密,还可以避免安全虚拟机使用或改变其他安全虚拟机的操作系统,有助于提高安全虚拟机之间的隔离性和安全性。
S903、安全协处理器向应用处理器发送主安全虚拟机的配置信息中的启动配置信息。
如前所述,主安全虚拟机的配置信息中包括有启动配置信息,参照图3所示实施例提供的安全虚拟机启动方法,安全协处理器在对主安全虚拟机的第一操作系统文件加密后,进一步将主安全虚拟机的启动配置信息发送至应用处理器,以使应用处理器创建主安全虚拟机的运行环境。
作为一种可选的实施方式,安全协处理器生成包括主安全虚拟机的启动配置信息的第二通知命令,并向应用处理器发送该第二通知命令。至于第二通知命令的具体实现方式,可参照前述实施例中的相关内容,此处不再复述。
S904、应用处理器基于主安全虚拟机的启动配置信息以及加密后的第一操作系统文件启动主安全虚拟机。
应用处理器基于安全协处理器提供的启动配置信息创建主安全虚拟机的运行环境。在安全协处理器通过第二通知命令传递主安全虚拟机的启动配置信息的情况下,应用处理器首先解析所得第二通知命令,并进一步获得该命令中包括的主安全虚拟机相关的启动配置信息。
进一步的,应用处理器基于主安全虚拟机的启动配置信息创建主安全虚拟机的运行环境信息,比如,基于启动配置信息设置初始寄存器信息,以及确定主安全虚拟机的私有内存空间等。然后,应用处理器将前述主安全虚拟机的VMID作为主安全虚拟机的运行环境信息的索引,使得主安全虚拟机的启动配置信息对应相同的VMID,便于主安全虚拟机再次启动时确定对应的运行环境信息。
在基于启动配置信息创建运行环境信息之后,应用处理器即基于运行环境信息创建主安全虚拟机的运行环境,并在主安全虚拟机的运行环境中运行加密后的第一操作系统文件,以启动主安全虚拟机。至于启动主安全虚拟机的其他相关操作,比如设置主安全虚拟机为等待启动状态等操作,均可参照前述实施例的相关内容,此处不再复述。
在启动主安全虚拟机之后,即可执行后续S905,开始从安全虚拟机的启动流程。但是,基于前述内容可知,云平台是否按照虚拟机用户要求启动安全虚拟机,不论是对虚拟机用户的使用需求还是安全虚拟机的可靠性和安全性而言,都是极为重要的。因此,作为一种优选的实施方式,应用处理器在启动主安全虚拟机之后,向安全协处理器反馈主安全虚拟机的启动结所述果,安全协处理器响应于主安全虚拟机的启动结果,对主安全虚拟机进行度量。
具体的,参照前述内容,安全协处理器首先确定是否满足预设虚拟机度量条件。在一种可选的实施方式中,如果安全协处理器所属云平台正常运行、安全虚拟机对应的虚拟机管理器处于工作状态且主安全虚拟机处于等待启动状态,则确定满足预设虚拟机度量条件,相反的,如果云平台运行异常,或虚拟机管理器处于非工作状态,或者主安全虚拟机未处于等待启动状态,确定不满足预设虚拟机度量条件。在确定不满足预设虚拟机度量条件的情况下,安全协处理器可终止后续启动流程,同时将异常结果通知虚拟机用户。需要说明的是,在实际应用中,还可以基于实际的检查需求以及安全虚拟机的度量要求设置其他虚拟机度量条件,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
在确定满足预设虚拟机度量条件之后,安全协处理器计算主安全虚拟机的配置信息中的目标配置项的哈希值。至于目标配置项的选择,可参考前述实施例中的相关内容,此处不再复述。
在一种可选的实施方式中,安全协处理器使用预生成的传输密钥对安全虚拟机的配置信息加密,以密文形式存储安全虚拟机的配置信息。在此情况下,安全协处理器需要通过安全信道向用户终端同时发送所得哈希值和该传输密钥。具体的,安全协处理器在发送哈希值之前,使用信道密钥对哈希值以及传输密钥加密,通过安全信道传输加密后的哈希值和传输密钥。用户终端得到加密后的哈希值和传输密钥之后,使用自己持有的信道密钥对加密后的哈希值和信道密钥解密,进而得到解密后的哈希值和传输密钥。进一步的,用户终端对所得哈希值进行验签,得到相应的目标配置项密文,然后,使用传输密钥对目标配置密文解密,从而得到目标配置项明文,并通过校验目标配置项确定云平台是否按照要求启动目标安全虚拟机。如前所述,用户终端存储有各安全虚拟机的配置信息,用户终端在经过前述步骤得到目标配置项明文后,虚拟机用户基于配置文件记载的初始配置信息分别对各个目标配置项进行校验,即可确定云平台是否按照配置文件,即用户要求启动主安全虚拟机。如果虚拟机用户确定云平台并未按照配置文件启动主安全虚拟机,则通过用户终端通知安全协处理器启动错误,安全协处理器终止后续启动过程,并将主安全虚拟机标记为等待启动状态。
需要说明的是,主安全虚拟机度量结果的确认还需要虚拟机用户参与,而后续从安全虚拟机度量结果的确认将由主安全虚拟机基于SDK文件完成,因此,相较于现有技术,可以极大的节省虚拟机用户的时间。
在一种可选的实施方式中,在对主安全虚拟机度量之前,安全协处理器还可以检查主安全虚拟机的整个启动流程,如果发现启动流程存在安全问题则可以终止后续的启动过程。
进一步的,在虚拟机用户确认主安全虚拟机的度量结果正确之后,通过启动主安全虚拟机过程中创建的安全信道向安全协处理器发送第二磁盘加密密钥,安全协处理器基于第二磁盘加密密钥对主安全虚拟机的磁盘数据加密。进一步的,安全协处理器将主安全虚拟机标记为运行状态,至此,主安全虚拟机完成全部启动流程。
在此之后,安全协处理器将至少一个从安全虚拟机中的各从安全虚拟机分别作为目标从安全虚拟机,按照后续步骤启动目标从安全虚拟机。
S905、安全协处理器对第二操作系统文件进行加密,并向应用处理器发送目标从安全虚拟机的配置信息中的启动配置信息。
首先需要说明的是,本实施例述及的第二操作系统文件,指目标从安全虚拟机所加载的操作系统文件。安全协处理器对第二操作系统文件的加密过程,与前述加密第一操作系统文件的过程类似,本步骤简要介绍加密第二操作系统文件的执行过程,对于未详细展开的部分,均可参照前述相关内容,此处不再详述。
首先,在安全协处理器以安全虚拟机结构体的形式存储配置信息的情况下,安全协处理器创建目标从安全虚拟机的安全虚拟机结构体,并将目标从安全虚拟机的配置信息存储于自身对应的安全虚拟机结构体中,同时,还会记录目标从安全虚拟机的生命状态周期。至于安全协处理器创建目标从安全虚拟机的安全虚拟机结构体的具体实现方式以及安全虚拟机结构体的具体形式,均可参照相关技术实现,本申请对此不做限定。
进一步的,安全协处理器通知应用处理器为目标从安全虚拟机分配VMID。应用处理器在VMID集合中选择未使用的VMID,将其分配给目标从安全虚拟机,并将分配结果反馈安全协处理器,安全协处理器对分配给目标从安全虚拟机的VMID的合法性进行检查,确认是否处于安全的VMID范围之内。安全协处理器将目标从安全虚拟机的VMID存储至目标从安全虚拟机对应的安全虚拟机结构体,并发送第一通知命令,通过第一通知命令指示应用处理器将第二操作系统文件加载至内存。
安全协处理器生成目标从安全虚拟机的虚拟机密钥,并建立目标从安全虚拟机的虚拟机密钥与目标从安全虚拟机的虚拟机密钥之间的绑定关系。虚拟机密钥的生成过程,可参照前述实施例中相关内容实现,此处不再复述。生成目标从安全虚拟机的虚拟机密钥之后,安全协处理器即基于该虚拟机密钥对第二操作系统文件进行加密。
进一步的,如前所述,安全协处理器存储有主安全虚拟机以及各从安全虚拟机的配置信息,基于此,在加密第二操作系统文件之后,安全协处理器向应用处理器发送目标从安全虚拟机的启动配置信息。作为一种可选的实施方式,安全协处理器生成包括目标从安全虚拟机的启动配置信息的第二通知命令,并向应用处理器发送该第二通知命令。
S906、应用处理器基于目标从安全虚拟机的启动配置信息以及由安全协处理器加密后的第二操作系统文件启动目标从安全虚拟机。
应用处理器获取安全协处理器提供的目标从安全虚拟机的启动配置信息,并基于所得启动配置信息创建目标从安全虚拟机的运行环境。
参照前述主安全虚拟机的启动过程,首先,应用处理器基于目标从安全虚拟机的启动配置信息创建目标从安全虚拟机的运行环境信息,然后,应用处理器将前述目标从安全虚拟机的VMID作为目标从安全虚拟机的运行环境信息的索引,便于目标从安全虚拟机再次启动时确定对应的运行环境信息。在创建运行环境信息之后,应用处理器即基于运行环境信息创建目标从安全虚拟机的运行环境。
进一步的,应用处理器在目标从安全虚拟机的运行环境中运行加密后的第二操作系统文件,以启动目标从安全虚拟机。至于启动目标从安全虚拟机的其他相关操作,比如设置目标从安全虚拟机为等待启动状态等操作,均可参照前述实施例的相关内容,此处不再复述。
S907、应用处理器向安全协处理器提供目标从安全虚拟机的启动结果。
在启动目标从安全虚拟机之后,应用处理器进一步向安全协处理器提供目标从安全虚拟机的启动结果。该启动结果可以包括与目标从安全虚拟机启动过程相关的信息,比如目标从安全虚拟机相关的硬件资源信息以及目标从安全虚拟机的操作系统状态信息等,当然,还可以包括其他信息,此处不再一一详述,本申请对于启动结果所包括具体信息不做限定。
S908、安全协处理器响应于目标从安全虚拟机的启动结果,对目标从安全虚拟机进行度量。
安全协处理器得到目标从安全虚拟机的启动结果之后,安全协处理器还可以对所得启动结果进行校验,比如,确认启动结果中所包括信息的信息格式是否异常、启动结果是否包括可能影响安全性的信息等,如果确定启动结果异常,安全协处理器可中止后续度量操作,并通过前述安全信道向用户终端反馈异常告警信息。
在对目标从安全虚拟机进行度量之前,安全协处理器还可以检查目标从安全虚拟机的整个启动流程,如果发现启动流程存在安全问题则可以终止后续的启动过程。
进一步的,参照前述内容,在对目标从安全虚拟机进行度量之前,安全协处理器首先确定是否满足预设虚拟机度量条件。在一种可选的实施方式中,如果安全协处理器所属云平台正常运行、目标从安全虚拟机对应的虚拟机管理器处于工作状态且目标从安全虚拟机处于等待启动状态,则确定满足预设虚拟机度量条件,相反的,如果云平台运行异常,或虚拟机管理器处于非工作状态,或者目标从安全虚拟机未处于等待启动状态,确定不满足预设虚拟机度量条件。需要说明的是,在实际应用中,还可以基于实际的检查需求以及安全虚拟机的度量要求设置其他虚拟机度量条件,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
在确定满足预设虚拟机度量条件之后,安全协处理器计算目标从安全虚拟机的配置信息中的目标配置项的哈希值。如前所述,目标从安全处理器的配置信息中包括的配置项有很多,在实际应用中可以根据实际度量需求选择其中的全部或部分配置项计算哈希值。当然,目标配置项的选择以能够全面衡量或判断是否按照虚拟机用户要求启动安全虚拟机为标准,选择配置信息中典型的配置项作为目标配置项。在一种可选的实施方式中,目标配置项包括目标从安全虚拟机的启动信息、目标从安全虚拟机的私有数据摘要、安全协处理器中安全固件的版本号、安全固件的摘要、安全固件生成的随机数以及用于加密配置信息的传输密钥中的至少一项。当然,还可以选择其他配置项用于计算哈希值,在未超出本申请核心思想的情况下,同样属于本申请保护的范围内。
S909、安全协处理器向主安全虚拟机发送校验基准信息以及目标从安全虚拟机的度量结果。
安全协处理器按照前述步骤计算所得哈希值即目标从安全虚拟机的度量结果,安全协处理器向主安全虚拟机发送目标从安全虚拟机的度量结果,在此基础上,安全协处理器还会进一步将目标从安全虚拟机对应的校验基准信息发送至主虚拟机。
需要说明的是,在本实施例中,校验基准信息用于校验目标从安全虚拟机的度量结果。结合前述主安全虚拟机度量结果的校验过程可知,用户终端通过比对配置文件记载的初始配置信息与相应目标配置项的差异确定云平台是否按照配置文件启动主安全虚拟机,由此可以理解,由于主安全虚拟机并不像用户终端那样存储有所有安全虚拟机的配置文件,并基于配置文件可以获知安全虚拟机的初始配置信息,需要由安全协处理器向主安全虚拟机提供这些信息,供主安全虚拟机校验目标从安全虚拟机时使用,因此,本实施例述及的校验基准信息,包括用于计算目标从安全虚拟机的哈希值的各目标配置项的初始配置信息。
S910、主安全虚拟机基于目标从安全虚拟机的安全配置信息,校验目标从安全虚拟机的度量结果。
主安全虚拟机在得到校验基准信息以及目标从安全虚拟机的度量结果,即哈希值之后,对所得哈希值进行验签,得到目标配置项明文,然后基于校验基准信息分别对各目标配置项进行比较校验,如果二者一致,则可以确定按照配置文件启动目标从安全虚拟机,相反的,则可以确定并未按照配置文件启动目标从安全虚拟机。
结合上述内容可以看出,目标从安全虚拟机度量结果的确认是由主安全虚拟机完成的,不再需要虚拟机用户的参与,因此,相较于现有技术,可以极大的节省虚拟机的启动时间。
需要说明的是,安全协处理器向主安全虚拟机提供的安全配置信息是通过主安全虚拟机的虚拟机密钥加密的,主安全虚拟机在得到安全配置信息密文后,可直接使用自身的虚拟机密钥进行解密,进而得到相应的安全配置信息明文,由于解密所需虚拟机密钥主安全虚拟机可直接使用,且解密过程均由主安全虚拟机进行,因此,解密过程不仅足够安全而且效率高。
进一步的,主安全虚拟机在确定目标从安全虚拟机的度量结果正常后,向安全协处理器提供第一磁盘加密密钥,安全协处理器获取第一磁盘加密密钥,并基于第一磁盘加密密钥对目标从安全虚拟机的磁盘数据加密。之后,安全协处理器将目标从安全虚拟机标记为运行状态,至此,目标从安全虚拟机完成全部启动流程。
综上所述,本申请提供的安全虚拟机启动方法,在启动主安全虚拟机之后,由主安全虚拟机对后续各从安全虚拟机的度量结果进行校验,相较于现有技术中由虚拟机用户逐一对各安全虚拟机的度量结果进行校验的方法相比,可以极大提高安全虚拟机的启动效率,同时,节省虚拟机用户的大量时间,改善虚拟机用户的使用感受。
进一步的,通过一份配置文件记载全部安全虚拟机的配置信息,可以避免虚拟机用户逐一上传各安全虚拟机的配置文件,进一步节省虚拟机用户的时间。
参照前述图5所示实施例,在按照图11所示实施例提供的虚拟机启动方法启动安全虚拟机之前,还可以对云平台的性能进行验证。
首先,虚拟机用户通过用户终端向应用处理器发送平台安全验证请求,应用处理器在接收到平台安全验证请求之后,对该请求的合法性进行验证,并在验证通过后向安全协处理器转发该平台安全验证请求。
安全协处理器响应于平台安全验证请求,向应用处理器提供云平台的验证证书以及信道密钥。应用处理器接收并转发验证证书以及信道密钥至用户终端。用户终端基于验证证书对云平台进行验证。如果经过验证,虚拟机用户发现云平台存在安全问题,比如,某些验证信息不匹配,则可以立即终止后续的虚拟机启动操作。
在一种可选的实施方式中,用户终端还可以向应用处理器发起硬件性能查询请求,旨在通过该请求获取云平台的硬件性能信息,比如,云平台是否开启加密安全隔离功能以及是否预留足够资源运行待启动安全虚拟机等,当然,还可以通过硬件性能查询请求获取其他相关信息,具体需要结合虚拟机用户的实际验证需求确定,本申请对此不做具体限定。应用处理器响应于硬件性能查询请求,向用户终端反馈云平台的硬件性能参数。本实施例中云平台反馈的硬件性能参数可包括:云平台是否开启加密安全隔离功能、云平台当前未被分配VMID的安全虚拟机,以及云平台的硬件资源(比如处理器资源、存储空间以及网络资源等)等。作为一种可选的实施方式中,应用处理器还会同时将硬件性能参数发送至安全协处理器,使安全协处理器也能够了解云平台当前的静态能力。
用户终端展示应用处理器反馈的硬件性能参数,虚拟机用户逐一对所得硬件性能参数进行校验,以确认云平台是否谎报静态能力,一旦确认云平台谎报静态能力,同样可以立即终止后续的虚拟机启动操作。
在另一种可能的实施方式中,用户终端还可以发起软件性能查询请求,应用处理器响应于软件性能查询请求,向用户终端反馈云平台的目标软件配置,该目标软件配置用于指示云平台是否支持采用本实施例提供的先启动主安全虚拟机然后分别启动各从安全虚拟机的弹性启动方法。可以理解的是,只有在目标软件配置指示云平台支持弹性启动的情况下,才可以进一步按照前述图11所示实施例启动各安全虚拟机,相反的,如果目标软件配置指示云平台不支持弹性启动,则终止后续弹性启动流程,当然,还可以按照前述图3或图4所示实施例依次启动各安全虚拟机。
进一步的,在经过前述步骤,确定云平台安全性以及软件/硬件性能之后,用户终端基于安全协处理器提供的信道密钥建立与安全协处理器之间的安全信道,以满足某些情况下用户终端与安全协处理器之间的通信需求。在安全信道建立之后,即可按照图11所示方法启动各安全虚拟机。
综上所述,通过本实施例提供的方法,在能够有效提供多个安全虚拟机的启动效率,节省虚拟机用户大量时间的情况下,还可以对云平台的安全性以及性能进行校验,有助于进一步提高安全虚拟机以及云平台的安全性。
进一步的,本申请还提供一种处理器,该处理器被配置为执行如图11所示实施例提供的安全虚拟机启动方法中安全处理器执行的方法步骤。
进一步的,本申请还提供一种处理器,该处理器被配置为执行如图11所示实施例提供的安全虚拟机启动方法中应用处理器执行的方法步骤。
在一些实施例中,本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个命令,这一个或者多个命令被一个或者多个处理器执行时,使得所述处理器执行前文描述的安全虚拟机启动方法,或安全虚拟机度量方法,或安全虚拟机调试方法。相关具体实现请参考前述描述,此处不过多赘述。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序命令,计算机程序命令在被处理器运行时使得处理器执行本说明书上述内容中描述的根据本申请各种实施例的安全虚拟机调试方法,或安全虚拟机度量方法,或安全虚拟机启动方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。
本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来命令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。

Claims (17)

1.一种安全虚拟机启动方法,其特征在于,应用于第一处理器,所述方法包括:
获取第二处理器提供的配置信息,并对第一操作系统文件进行加密,所述配置信息包括主安全虚拟机的配置信息以及至少一个从安全虚拟机的配置信息;
向所述第二处理器发送所述主安全虚拟机的配置信息中的启动配置信息,使所述第二处理器基于所述主安全虚拟机的启动配置信息以及加密后的第一操作系统文件启动所述主安全虚拟机;
对第二操作系统文件进行加密,并向所述第二处理器发送目标从安全虚拟机的配置信息中的启动配置信息,使所述第二处理器基于所述目标从安全虚拟机的启动配置信息以及加密后的第二操作系统文件启动所述目标从安全虚拟机;
其中,所述目标从安全虚拟机为所述至少一个从安全虚拟机中的任意一个;
响应于所述目标从安全虚拟机的启动结果,对所述目标从安全虚拟机进行度量;
向所述主安全虚拟机发送校验基准信息以及所述目标从安全虚拟机的度量结果,使所述主安全虚拟机基于所述校验基准信息校验所述目标从安全虚拟机的度量结果。
2.根据权利要求1所述的方法,其特征在于,还包括:获取第一磁盘加密密钥,所述第一磁盘加密密钥由所述主安全虚拟机在确定所述目标从安全虚拟机的度量结果正常后提供;
基于所述第一磁盘加密密钥对所述目标从安全虚拟机的磁盘数据加密。
3.根据权利要求1所述的方法,其特征在于,对所述目标从安全虚拟机进行度量,包括:
确定是否满足预设虚拟机度量条件;
若满足所述预设虚拟机度量条件,计算所述目标从安全虚拟机的配置信息中的目标配置项的哈希值,得到所述目标从安全虚拟机的度量结果。
4.根据权利要求3所述的方法,其特征在于,所述确定是否满足预设虚拟机度量条件,包括:
若所述第一处理器所属云平台正常运行、所述目标从安全虚拟机对应的虚拟机管理器处于工作状态且所述目标从安全虚拟机处于等待启动状态,确定满足预设虚拟机度量条件;
若所述云平台运行异常,或所述虚拟机管理器处于非工作状态,或所述目标从安全虚拟机未处于所述等待启动状态,确定不满足所述预设虚拟机度量条件。
5.根据权利要求1所述的方法,其特征在于,在对第二操作系统文件进行加密之前,所述方法还包括:
响应于所述主安全虚拟机的启动结果,对所述主安全虚拟机进行度量;
向用户终端提供所述主安全虚拟机的度量结果,使所述用户终端校验所述度量结果,所述用户终端包括所述主安全虚拟机以及各所述从安全虚拟机的所有者使用的终端。
6.根据权利要求5所述的方法,其特征在于,还包括:获取第二磁盘加密密钥,所述第二磁盘加密密钥由所述用户终端在确定所述主安全虚拟机度量结果正常后提供;
基于所述第二磁盘加密密钥对所述主安全虚拟机的磁盘数据加密。
7.一种安全虚拟机启动方法,其特征在于,应用于第二处理器,所述方法包括:
解析配置文件,得到所述配置文件记载的配置信息,所述配置信息包括主安全虚拟机的配置信息以及至少一个从安全虚拟机的配置信息;
向第一处理器提供所述配置信息,所述第一处理器对第一操作系统文件加密并向所述第二处理器发送所述主安全虚拟机的配置信息中的启动配置信息;
基于所述主安全虚拟机的启动配置信息以及加密后的第一操作系统文件启动所述主安全虚拟机;
获取所述第一处理器提供的目标从安全虚拟机的配置信息中的启动配置信息,所述目标从安全虚拟机为所述至少一个从安全虚拟机中的任意一个;
基于所述目标从安全虚拟机的启动配置信息以及由所述第一处理器加密的第二操作系统文件启动所述目标从安全虚拟机;
向所述第一处理器提供所述目标从安全虚拟机的启动结果,使所述第一处理器对所述目标从安全虚拟机进行度量,并向所述主安全虚拟机发送校验基准信息以及所述目标从安全虚拟机的度量结果;
所述主安全虚拟机基于所述校验基准信息校验所述目标从安全虚拟机的度量结果。
8.根据权利要求7所述的方法,其特征在于,还包括:所述主安全虚拟机在确定所述目标从安全虚拟机的度量结果正常后,向所述第一处理器提供第一磁盘加密密钥,使所述第一处理器基于所述第一磁盘加密密钥对所述目标从安全虚拟机的磁盘数据加密。
9.根据权利要求7所述的方法,其特征在于,基于所述主安全虚拟机的启动配置信息以及加密后的第一操作系统文件启动所述主安全虚拟机,包括:
基于所述主安全虚拟机的启动配置信息创建所述主安全虚拟机的运行环境;
在所述主安全虚拟机的运行环境中运行加密后的第一操作系统文件,以启动所述主安全虚拟机。
10.根据权利要求7所述的方法,其特征在于,在获取所述第一处理器提供的目标从安全虚拟机的配置信息中的启动配置信息之前,所述方法还包括:
向所述第一处理器反馈所述主安全虚拟机的启动结所述果,使所述第一处理器对所述主安全虚拟机进行度量。
11.根据权利要求7至10任一项所述的方法,其特征在于,还包括:
向所述第一处理器发送平台安全验证请求,所述平台安全验证请求由用户终端提供,所述用户终端包括所述主安全虚拟机以及各从安全虚拟机的所有者使用的终端;
获取所述第一处理器响应于所述平台安全验证请求所反馈的验证证书以及信道密钥;
向所述用户终端发送所述验证证书以及所述信道密钥,使所述用户终端基于所述验证证书验证所述主安全虚拟机以及各所述从安全虚拟机所属云平台的安全性,并基于所述信道密钥建立与所述第一处理器之间的安全信道。
12.根据权利要求11所述的方法,其特征在于,还包括:响应于所述用户终端的硬件性能查询请求,向所述用户终端反馈所述云平台的硬件性能参数。
13.一种处理器,其特征在于,所述处理器被配置为执行如权利要求1至6任一项所述的安全虚拟机启动方法。
14.一种处理器,其特征在于,所述处理器被配置为执行如权利要求7至12任一项所述的安全虚拟机启动方法。
15.一种片上系统,其特征在于,包括如权利要求13所述的处理器,以及如权利要求14所述的处理器。
16.一种服务器,其特征在于,包括如权利要求15所述的片上系统、内存以及外围设备,其中,
所述片上系统分别与所述内存以及所述外围设备通信连接。
17.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被执行时实现如权利要求1-6或如权利要求7至12任一项所述的安全虚拟机启动方法。
CN202410676078.9A 2024-05-29 2024-05-29 一种安全虚拟机启动方法、相关设备及存储介质 Pending CN118519721A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410676078.9A CN118519721A (zh) 2024-05-29 2024-05-29 一种安全虚拟机启动方法、相关设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410676078.9A CN118519721A (zh) 2024-05-29 2024-05-29 一种安全虚拟机启动方法、相关设备及存储介质

Publications (1)

Publication Number Publication Date
CN118519721A true CN118519721A (zh) 2024-08-20

Family

ID=92282182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410676078.9A Pending CN118519721A (zh) 2024-05-29 2024-05-29 一种安全虚拟机启动方法、相关设备及存储介质

Country Status (1)

Country Link
CN (1) CN118519721A (zh)

Similar Documents

Publication Publication Date Title
EP3805968B1 (en) Technologies for secure hardware and software attestation for trusted i/o
EP3458999B1 (en) Self-contained cryptographic boot policy validation
US8856544B2 (en) System and method for providing secure virtual machines
US9288155B2 (en) Computer system and virtual computer management method
US9716710B2 (en) Technologies for virtualized access to security services provided by a converged manageability and security engine
CN110765437B (zh) 将资产安全地提供给目标设备的模块
CN109937419B (zh) 安全功能强化的设备的初始化方法及设备的固件更新方法
CN106610863B (zh) 虚拟机可信迁移方法及装置
EP3207488B1 (en) Identifying security boundaries on computing devices
JP2022553247A (ja) 複合デバイスのためのリモート証明方法およびデバイス
KR102721695B1 (ko) 데이터 처리
US10771462B2 (en) User terminal using cloud service, integrated security management server for user terminal, and integrated security management method for user terminal
WO2020063002A1 (zh) 一种数据管理方法、装置和服务器
US20230062521A1 (en) Gateway
CN117453343A (zh) 虚拟机度量、机密计算认证方法、设备、系统及存储介质
CN118519721A (zh) 一种安全虚拟机启动方法、相关设备及存储介质
CN118467106A (zh) 一种安全虚拟机调试方法、相关设备及存储介质
Hao et al. Trusted block as a service: Towards sensitive applications on the cloud
CN118550646A (zh) 一种安全虚拟机度量方法、相关设备及存储介质
CN118467105A (zh) 一种安全虚拟机启动方法、相关设备及存储介质
CN118260027B (zh) 一种安全虚拟机管理方法和相关设备
US20240333513A1 (en) Systems and Methods for Demonstrating Identity to a Trusted Platform Module
CN112769800B (zh) 交换机的完整性验证方法、装置和计算机存储介质
US20240289155A1 (en) Measurements of virtual machines
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