首页 / 专利库 / 电脑编程 / 计算机虚拟化 / 一种实现安全运行环境切换的方法、系统及相关设备

一种实现安全运行环境切换的方法、系统及相关设备

阅读:621发布:2020-05-14

专利汇可以提供一种实现安全运行环境切换的方法、系统及相关设备专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种实现安全运行环境切换的方法、装置及相关设备,其中,当 虚拟机 处于非安全运行环境时,调用第一虚拟化调用指令,使得 虚拟机监控器 响应于该第一虚拟化调用指令,保存非安全运行环境的处理器状态,加载安全运行环境的处理器状态,触发虚拟机切换到安全运行环境。当虚拟机处于所述安全运行环境时,运行第一虚拟化调用指令对应的安全计算,以便在安全计算完成后,调用第二虚拟化调用指令,使得虚拟机监控器响应于该第二虚拟化调用指令,保存安全运行环境的处理器状态,加载保存的非安全运行环境的处理器状态,并触发虚拟机切换到非安全运行环境。能够在满足 汽车 电子 系统智能化的 基础 上为汽车电子系统提供一个安全运行环境。,下面是一种实现安全运行环境切换的方法、系统及相关设备专利的具体信息内容。

1.一种实现安全运行环境切换的方法,其特征在于,所述方法应用于虚拟机系统,所述虚拟机系统包括虚拟机监控器以及至少一台虚拟机,所述方法包括:
所述虚拟机处于非安全运行环境时,调用第一虚拟化调用指令;
所述虚拟机监控器响应于所述第一虚拟化调用指令,保存所述非安全运行环境的处理器状态,并加载安全运行环境的处理器状态,触发所述虚拟机切换到安全运行环境;
所述虚拟机处于所述安全运行环境时,运行所述第一虚拟化调用指令对应的安全计算,在所述安全计算完成后,调用第二虚拟化调用指令;
所述虚拟机监控器响应于所述第二虚拟化调用指令,保存所述安全运行环境的处理器状态,并加载保存的所述非安全运行环境的处理器状态,触发所述虚拟机切换到非安全运行环境。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述虚拟机处于安全运行环境时,所述虚拟机监控器将所述虚拟机的客户机物理地址GPA与最高预设内存地址范围的主机物理地址HPA建立映射关系。
3.根据权利要求2所述的方法,其特征在于,所述将所述虚拟机的客户机物理地址GPA与最高预设内存地址范围的主机物理地址HPA建立映射关系,包括:
所述虚拟机获取在进行所述安全计算时访问的目标客户机虚拟地址GVA,将所述目标GVA转换为目标客户机物理地址GPA,根据所述目标GPA查询扩展页表EPT,当所述EPT中不存在所述目标GPA与主机物理地址HPA的映射关系时,触发缺页中断;
所述虚拟机监控器响应于所述缺页中断,将所述目标GPA与所述EPT的4级页表的最高位对应的HPA建立映射关系。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述虚拟机获取在进行所述安全计算时访问的目标客户机虚拟地址GVA,将所述目标GVA转换为目标客户机物理地址GPA,根据所述目标GPA查询扩展页表EPT,当所述EPT中存在所述目标GPA与主机物理地址HPA的映射关系时,获取所述目标GPA对应的HPA。
5.根据权利要求2-4任一项所述的方法,其特征在于,触发所述虚拟机切换到非安全运行环境之后,所述方法还包括:
所述虚拟机监控器将所述虚拟机的GPA与最高预设内存地址范围的HPA建立的映射关系清除。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述虚拟机监控器获取根据根密钥派生得到的子密钥,利用所述子密钥派生出至少一个虚拟机子密钥,所述虚拟机子密钥与所述虚拟机具有一一对应关系;
所述虚拟机监控器将所述虚拟机子密钥发送给对应的虚拟机。
7.根据权利要求6所述的方法,其特征在于,所述虚拟机监控器获取根据根密钥派生得到的子密钥,利用所述子密钥派生出至少一个虚拟机子密钥,包括:
所述虚拟机监控器获取根据根密钥派生得到的设备子密钥以及用户子密钥,利用所述设备子密钥派生出至少一个虚拟机设备子密钥,利用所述用户子密钥派生出至少一个虚拟机用户子密钥,所述虚拟机设备子密钥与所述虚拟机具有一一对应关系,所述虚拟机用户子密钥与所述虚拟机具有一一对应关系;
所述虚拟机监控器将所述虚拟机子密钥发送给对应的虚拟机,包括:
所述虚拟机监控器将所述虚拟机设备子密钥以及所述虚拟机用户子密钥发送给对应的虚拟机。
8.一种虚拟机系统,其特征在于,所述虚拟机系统包括虚拟机监控器以及至少一台虚拟机;
所述虚拟机,用于所述虚拟机处于非安全运行环境时,调用第一虚拟化调用指令;
所述虚拟机监控器,用于响应于所述第一虚拟化调用指令,保存所述非安全运行环境的处理器状态,并加载安全运行环境的处理器状态,触发所述虚拟机切换到安全运行环境;
所述虚拟机,还用于所述虚拟机处于所述安全运行环境时,运行所述第一虚拟化调用指令对应的安全计算,在所述安全计算完成后,调用第二虚拟化调用指令;
所述虚拟机监控器,还用于响应于所述第二虚拟化调用指令,保存所述安全运行环境的处理器状态,并加载保存的所述非安全运行环境的处理器状态,触发所述虚拟机切换到非安全运行环境。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-7任一项所述的实现安全运行环境切换的方法。
10.一种实现安全运行环境切换的设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7任一项所述的实现安全运行环境切换的方法。

说明书全文

一种实现安全运行环境切换的方法、系统及相关设备

技术领域

[0001] 本申请涉及系统安全技术领域,具体涉及一种实现安全运行环境切换的方法、系统及相关设备。

背景技术

[0002] 随着汽车的普及,以及自动驾驶、车联网和车载智能应用等智能化汽车相关行业的兴起,使得的汽车电子系统已经不再是封闭的具有单一功能的系统,而是开放的具有多样化功能的系统(例如,Android系统)。其中,汽车电子系统(例如,基于英特尔Intel平台的汽车电子系统)通常包括多个虚拟机,且该多个虚拟机运行在同一个系统级芯片(System on Chip,SoC)上。
[0003] 在实际应用中,汽车电子系统需要一个安全可信的运行环境来完成联网认证、数据加密、数据加密存储等应用中加密算法的安全计算和安全敏感数据的保存。然而,由于开放的汽车电子系统上通常会存在很多第三方应用,而且该第三方应用会为汽车电子系统带来很多安全性不确定的因素,使得汽车电子系统很容易受到恶意软件攻击,因而,当汽车电子系统越来越智能化且越来越开放时,汽车电子系统将越来越不安全,使得汽车电子系统的信息安全问题越来越突出,从而使得汽车电子系统越来越不适用于进行安全计算。目前,如何为汽车电子系统提供一个安全运行环境仍是一个亟待解决的技术问题。发明内容
[0004] 有鉴于此,本申请实施例提供一种实现安全运行环境切换的方法、系统及相关设备,能够为汽车电子系统提供一个安全运行环境。
[0005] 为解决上述问题,本申请实施例提供的技术方案如下:
[0006] 一种实现安全运行环境切换的方法,所述方法应用于虚拟机系统,所述虚拟机系统包括虚拟机监控器以及至少一台虚拟机,所述方法包括:
[0007] 所述虚拟机处于非安全运行环境时,调用第一虚拟化调用指令;
[0008] 所述虚拟机监控器响应于所述第一虚拟化调用指令,保存所述非安全运行环境的处理器状态,并加载安全运行环境的处理器状态,触发所述虚拟机切换到安全运行环境;
[0009] 所述虚拟机处于所述安全运行环境时,运行所述第一虚拟化调用指令对应的安全计算,在所述安全计算完成后,调用第二虚拟化调用指令;
[0010] 所述虚拟机监控器响应于所述第二虚拟化调用指令,保存所述安全运行环境的处理器状态,并加载保存的所述非安全运行环境的处理器状态,触发所述虚拟机切换到非安全运行环境。
[0011] 在一种可能的实现方式中,所述方法还包括:
[0012] 所述虚拟机处于安全运行环境时,所述虚拟机监控器将所述虚拟机的客户机物理地址GPA与最高预设内存地址范围的主机物理地址HPA建立映射关系。
[0013] 在一种可能的实现方式中,所述将所述虚拟机的客户机物理地址GPA与最高预设内存地址范围的主机物理地址HPA建立映射关系,包括:
[0014] 所述虚拟机获取在进行所述安全计算时访问的目标客户机虚拟地址GVA,将所述目标GVA转换为目标客户机物理地址GPA,根据所述目标GPA查询扩展页表EPT,当所述EPT中不存在所述目标GPA与主机物理地址HPA的映射关系时,触发缺页中断;
[0015] 所述虚拟机监控器响应于所述缺页中断,将所述目标GPA与所述EPT的4级页表的最高位对应的HPA建立映射关系。
[0016] 在一种可能的实现方式中,所述方法还包括:
[0017] 所述虚拟机获取在进行所述安全计算时访问的目标客户机虚拟地址GVA,将所述目标GVA转换为目标客户机物理地址GPA,根据所述目标GPA查询扩展页表EPT,当所述EPT中存在所述目标GPA与主机物理地址HPA的映射关系时,获取所述目标GPA对应的HPA。
[0018] 在一种可能的实现方式中,触发所述虚拟机切换到非安全运行环境之后,所述方法还包括:
[0019] 所述虚拟机监控器将所述虚拟机的GPA与最高预设内存地址范围的HPA建立的映射关系清除。
[0020] 在一种可能的实现方式中,所述方法还包括:
[0021] 所述虚拟机监控器获取根据根密钥派生得到的子密钥,利用所述子密钥派生出至少一个虚拟机子密钥,所述虚拟机子密钥与所述虚拟机具有一一对应关系;
[0022] 所述虚拟机监控器将所述虚拟机子密钥发送给对应的虚拟机。
[0023] 在一种可能的实现方式中,所述虚拟机监控器获取根据根密钥派生得到的子密钥,利用所述子密钥派生出至少一个虚拟机子密钥,包括:
[0024] 所述虚拟机监控器获取根据根密钥派生得到的设备子密钥以及用户子密钥,利用所述设备子密钥派生出至少一个虚拟机设备子密钥,利用所述用户子密钥派生出至少一个虚拟机用户子密钥,所述虚拟机设备子密钥与所述虚拟机具有一一对应关系,所述虚拟机用户子密钥与所述虚拟机具有一一对应关系;
[0025] 所述虚拟机监控器将所述虚拟机子密钥发送给对应的虚拟机,包括:
[0026] 所述虚拟机监控器将所述虚拟机设备子密钥以及所述虚拟机用户子密钥发送给对应的虚拟机。
[0027] 一种虚拟机系统,所述虚拟机系统包括虚拟机监控器以及至少一台虚拟机;
[0028] 所述虚拟机,用于所述虚拟机处于非安全运行环境时,调用第一虚拟化调用指令;
[0029] 所述虚拟机监控器,用于响应于所述第一虚拟化调用指令,保存所述非安全运行环境的处理器状态,并加载安全运行环境的处理器状态,触发所述虚拟机切换到安全运行环境;
[0030] 所述虚拟机,还用于所述虚拟机处于所述安全运行环境时,运行所述第一虚拟化调用指令对应的安全计算,在所述安全计算完成后,调用第二虚拟化调用指令;
[0031] 所述虚拟机监控器,还用于响应于所述第二虚拟化调用指令,保存所述安全运行环境的处理器状态,并加载保存的所述非安全运行环境的处理器状态,触发所述虚拟机切换到非安全运行环境。
[0032] 一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述的实现安全运行环境切换的方法。
[0033] 一种实现安全运行环境切换的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的实现安全运行环境切换的方法。
[0034] 由此可见,本申请实施例具有如下有益效果:
[0035] 本申请实施例中,当虚拟机处于非安全运行环境时,调用第一虚拟化调用指令,使得虚拟机监控器响应于该第一虚拟化调用指令,保存非安全运行环境的处理器状态,加载安全运行环境的处理器状态,并触发虚拟机切换到安全运行环境。当虚拟机处于所述安全运行环境时,运行第一虚拟化调用指令对应的安全计算,以便在安全计算完成后,调用第二虚拟化调用指令,使得虚拟机监控器响应于该第二虚拟化调用指令,保存安全运行环境的处理器状态,加载保存的非安全运行环境的处理器状态,并触发虚拟机切换到非安全运行环境。
[0036] 即,在本申请实施例中,虚拟机监控器可以根据虚拟机调用的第一虚拟化调用指令将该虚拟机从非安全运行环境切换到安全运行环境,使得该虚拟机能够在安全运行环境下运行第一虚拟化调用指令对应的安全计算,如此能够为包括虚拟机系统的汽车电子系统提供一个安全运行环境;而且,虚拟机监控器还可以根据虚拟机调用的第二虚拟化调用指令将该虚拟机从安全运行环境切换到非安全运行环境,使得该虚拟机能够返回到非安全运行环境继续执行安全需求较低的任务。如此,包括虚拟机系统的汽车电子系统能够借助虚拟机监控器的控制实现非安全运行环境和安全运行环境之间的切换,满足不同任务对运行环境的安全需求,从而能够在满足汽车电子系统智能化以及开放程度的基础上为汽车电子系统提供一个安全运行环境。另外,在本申请实施例中,虚拟机监控器能够控制虚拟机系统中的多台虚拟机进行非安全运行环境和安全运行环境之间的切换,从而满足汽车电子系统中同时运行的多个虚拟机对安全运行环境的需求。附图说明
[0037] 图1为本申请实施例提供的虚拟机系统示例图;
[0038] 图2为本申请实施例提供的一种实现安全运行环境切换的方法的流程图
[0039] 图3为本申请实施例提供的虚拟机系统的框架图;
[0040] 图4为本申请实施例提供的基于EPT的内存布局示意图;
[0041] 图5为本申请实施例提供的虚拟机子密钥的派生示意图;
[0042] 图6为本申请实施例提供的一种实现安全运行环境切换的系统结构图。

具体实施方式

[0043] 为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
[0044] 发明人在对汽车电子系统的虚拟机系统安全性研究中发现,虚拟机系统可以借助非安全运行环境和安全运行环境来实现在满足汽车电子系统智能化以及开放程度的基础上为汽车电子系统提供一个安全运行环境。
[0045] 基于此,本申请实施例提供了一种实现安全运行环境切换的方法,具体为:当虚拟机处于非安全运行环境时,调用第一虚拟化调用指令,使得虚拟机监控器响应于该第一虚拟化调用指令,保存非安全运行环境的处理器状态,加载安全运行环境的处理器状态,并触发虚拟机切换到安全运行环境。当虚拟机处于所述安全运行环境时,运行第一虚拟化调用指令对应的安全计算,以便在安全计算完成后,调用第二虚拟化调用指令,使得虚拟机监控器响应于该第二虚拟化调用指令,保存安全运行环境的处理器状态,加载保存的非安全运行环境的处理器状态,并触发虚拟机切换到非安全运行环境。即,包括虚拟机系统的汽车电子系统能够借助虚拟机监控器的控制实现非安全运行环境和安全运行环境之间的切换,满足不同任务对运行环境的安全需求,从而能够在满足汽车电子系统智能化以及开放程度的基础上为汽车电子系统提供一个安全运行环境;而且虚拟机监控器还能够控制虚拟机系统中的多台虚拟机进行非安全运行环境和安全运行环境之间的切换,从而满足汽车电子系统中同时运行的多个虚拟机对安全运行环境的需求。
[0046] 为了便于理解本申请实施例,参见图1所示的虚拟机系统示例图,在该虚拟机系统中可以包括多个虚拟机和一个虚拟机监控器,每个虚拟机均能够处于非安全运行环境或安全运行环境,而且虚拟机监控器能够控制每个虚拟机在非安全运行环境和安全运行环境之间进行切换。在本申请中,对于每个虚拟机来说,当虚拟机处于非安全运行环境时,虚拟机监控器能够根据该虚拟机调用的第一虚拟化调用指令,控制该虚拟机切换到安全运行环境,以便能够在该安全运行环境下运行第一虚拟化调用指令对应的安全计算;而且,当虚拟机处于安全运行环境且安全计算已完成时,虚拟机监控器能够根据该虚拟机调用的第二虚拟化调用指令,控制该虚拟机切换到非安全运行环境,以便能够继续在非安全运行环境下执行安全需求较低的任务。如此,包括虚拟机系统的汽车电子系统能够借助虚拟机监控器的控制实现非安全运行环境和安全运行环境之间的切换,满足不同任务对运行环境的安全需求,从而能够在满足汽车电子系统智能化以及开放程度的基础上为汽车电子系统提供一个安全运行环境。
[0047] 为便于理解本申请,下面将结合附图对本申请实施例提供的一种实现安全运行环境切换的方法进行说明。
[0048] 参见图2,该图为本申请实施例提供的一种实现安全运行环境切换的方法的流程图,该方法应用于虚拟机系统,尤其可以应用于基于英特尔平台的虚拟机系统,所述虚拟机系统包括虚拟机监控器以及至少一台虚拟机,而且,如图2所示,该方法可以包括:
[0049] S201:虚拟机处于非安全运行环境时,调用第一虚拟化调用指令。
[0050] 非安全运行环境可以指开放的运行环境,例如可以运行第三方应用的运行环境。另外,因第三方应用的运行会给运行环境带来安全不确定性,使得非安全运行环境安全性较差,从而使得非安全运行环境不适于进行安全计算(例如,安全计算可以包括加密、签名计算或认证等)。
[0051] 相对的,安全运行环境可以指封闭的运行环境,也就是,专用于进行安全计算的运行环境。
[0052] 第一虚拟化调用指令用于通知虚拟机监控器控制虚拟机从非安全运行环境切换为安全运行环境;而且,第一虚拟化调用指令通常携带有安全计算的相关信息(例如,安全计算的类型等信息)。需要说明的是,本申请实施例不限定第一虚拟化调用指令的具体实施方式,例如,第一虚拟化调用指令可以是VMcall指令。
[0053] 在本申请实施例中,当虚拟机处于非安全运行环境时,若用户需要使用加密或签名等安全需求较高的功能,则该虚拟机需要进行相应的安全计算(例如,安全计算可以是数据加密计算、联网认证或签名等),此时,虚拟机需要调用第一虚拟化调用指令,使得虚拟机监控器能够根据该第一虚拟化调用指令控制该虚拟机切换到安全运行环境,以便虚拟机能够在该安全运行环境中进行该安全计算。例如,当虚拟机处于非安全运行环境应用某应用程序时,用户需要使用的功能涉及加密计算,则虚拟机需要调用携带有加密相关信息的第一虚拟化调用指令,使得虚拟机监控器能够根据该第一虚拟化调用指令控制该虚拟机从非安全运行环境切换到安全运行环境,从而使得虚拟机从不适于进行加密计算的状态切换到适合进行加密计算的状态,以便后续虚拟机能够在该安全运行环境中进行加密计算。
[0054] S202:虚拟机监控器响应于第一虚拟化调用指令,保存非安全运行环境的处理器状态,并加载安全运行环境的处理器状态,触发虚拟机切换到安全运行环境。
[0055] 虚拟机监控器用于响应于虚拟机调用的第一虚拟化调用指令,将该虚拟机从非安全运行环境切换到安全运行环境,而且还用于响应于虚拟机调用的第二虚拟化调用指令,将该虚拟机从安全运行环境切换到非安全运行环境。另外,虚拟机监控器中保存有非安全运行环境的处理器状态和安全运行环境的处理器状态;而且,虚拟机监控器可以根据相应的指令加载非安全运行环境的处理器状态或安全运行环境的处理器状态,以便实现控制虚拟机在安全运行环境和非安全运行环境之间进行切换(如图3所示)。
[0056] 处理器状态可以指CPU上下文(也就是,CPU寄存器和程序计数器)。基于此可知,本申请实施例中,运行环境的切换过程具体可以为:虚拟机监控器先保存处于非安全运行环境下的虚拟机的CPU上下文,再加载已存储的安全运行环境下的虚拟机的CPU上下文,使得虚拟机能够跳转到安全运行环境下的CPU寄存器所指位置,运行安全计算。
[0057] 在本申请实施例中,在虚拟机调用第一虚拟化调用指令后,虚拟机监控器响应于该第一虚拟化调用指令,保存非安全运行环境的处理器状态并加载安全运行环境的处理器状态,以便触发虚拟机切换到安全运行环境。其中,“保存非安全运行环境的处理器状态”的目的是为了后续虚拟机在安全运行环境中完成安全计算之后,虚拟机监控器能够利用已保存的非安全运行环境的处理器状态控制虚拟机从安全运行环境切换到非安全运行环境。
[0058] S203:虚拟机处于安全运行环境时,运行第一虚拟化调用指令对应的安全计算,在安全计算完成后,调用第二虚拟化调用指令。
[0059] 第二虚拟化调用指令用于通知虚拟机监控器控制虚拟机从安全运行环境切换为非安全运行环境;而且,第二虚拟化调用指令通常携带有安全计算的相关信息(例如,安全计算的类型等信息)。需要说明的是,本申请实施例不限定第二虚拟化调用指令的具体实施方式,例如,第二虚拟化调用指令可以是VMcall指令。
[0060] 在本申请实施例中,当虚拟机处于安全运行环境时,则先根据第一虚拟化调用指令确定该第一虚拟化调用指令对应的安全计算,再进行该第一虚拟化调用指令对应的安全计算,并在安全计算完成后,调用第二虚拟化调用指令,以便后续虚拟机监控器根据该第二虚拟化调用指令控制虚拟机从安全运行环境切换到非安全运行环境。
[0061] 需要说明的是,安全计算与第一虚拟化调用指令一一对应,而且,由于第一虚拟化调用指令中携带有安全计算的相关信息(例如,安全计算的类型等信息),因而,可以根据第一虚拟化调用指令确定安全计算。
[0062] 为了便于理解和解释,下面结合示例进行说明。
[0063] 作为示例,假设用户需要使用加密功能,而且该加密功能对应的安全计算为加密计算。基于该假设,当虚拟机监控器已根据第一虚拟化调用指令控制该虚拟机从非安全运行环境切换到安全运行环境之后,虚拟机可以在该安全运行环境中根据第一虚拟化调用指令中携带的加密相关信息(例如,待加密信息、加密类型、加密密钥等中的至少一种信息),运行该第一虚拟化调用指令对应的加密计算得到加密结果,并在虚拟机确定已完成加密计算之后,调用携带有加密结果的第二虚拟化调用指令,以便虚拟机监控器能够根据该第二虚拟化调用指令控制该虚拟机从安全运行环境切换到非安全运行环境。
[0064] S204:虚拟机监控器响应于第二虚拟化调用指令,保存安全运行环境的处理器状态,并加载保存的非安全运行环境的处理器状态,触发虚拟机切换到非安全运行环境。
[0065] 在本申请实施例中,在虚拟机调用第二虚拟化调用指令之后,虚拟机监控器响应于该第二虚拟化调用指令,保存安全运行环境的处理器状态并加载保存的非安全运行环境的处理器状态,以便触发虚拟机切换到非安全运行环境。其中,“保存安全运行环境的处理器状态”的目的是为了后续虚拟机监控器能够利用已保存的安全运行环境的处理器状态控制虚拟机从非安全运行环境切换到安全运行环境。
[0066] 通过上述描述可知,当虚拟机处于非安全运行环境时,调用第一虚拟化调用指令,使得虚拟机监控器响应于该第一虚拟化调用指令,保存非安全运行环境的处理器状态,加载安全运行环境的处理器状态,并触发虚拟机切换到安全运行环境。当虚拟机处于所述安全运行环境时,运行第一虚拟化调用指令对应的安全计算,以便在安全计算完成后,调用第二虚拟化调用指令,使得虚拟机监控器响应于该第二虚拟化调用指令,保存安全运行环境的处理器状态,加载保存的非安全运行环境的处理器状态,并触发虚拟机切换到非安全运行环境。
[0067] 即,在本申请实施例中,虚拟机监控器可以根据虚拟机调用的第一虚拟化调用指令将该虚拟机从非安全运行环境切换到安全运行环境,使得该虚拟机能够在安全运行环境下运行第一虚拟化调用指令对应的安全计算,如此能够为包括虚拟机系统的汽车电子系统提供一个安全运行环境;而且,虚拟机监控器还可以根据虚拟机调用的第二虚拟化调用指令将该虚拟机从安全运行环境切换到非安全运行环境,使得该虚拟机能够返回到非安全运行环境继续执行安全需求较低的任务。如此,包括虚拟机系统的汽车电子系统能够借助虚拟机监控器的控制实现非安全运行环境和安全运行环境之间的切换,满足不同任务对运行环境的安全需求,从而能够在满足汽车电子系统智能化以及开放程度的基础上为汽车电子系统提供一个安全运行环境。另外,在本申请实施例中,虚拟机监控器能够控制虚拟机系统中的多台虚拟机进行非安全运行环境和安全运行环境之间的切换,从而满足汽车电子系统中同时运行的多个虚拟机对安全运行环境的需求。
[0068] 在本申请实施例一种可能的实现方式中,还提供了一种实现安全运行环境切换的方法,在该方法中,除了包括上述步骤S201-S204以外,该方法还包括步骤A:虚拟机处于安全运行环境时,虚拟机监控器将虚拟机的客户机物理地址GPA与最高预设内存地址范围的主机物理地址HPA建立映射关系。
[0069] 客户机物理地址(Guest Physical Address,GPA)不是真正的物理地址空间,而是宿主机虚拟地址空间在客户机地址空间的一个映射。
[0070] 主机物理地址(Host Physical Address,HPA)是虚拟机的物理地址。
[0071] 最高预设内存地址范围的主机物理地址HPA专用于安全运行环境,也就是说,当虚拟机处于安全运行环境时,该虚拟机能够访问该最高预设内存地址范围的主机物理地址HPA;当虚拟机处于非安全运行环境时,该虚拟机无法访问该最高预设内存地址范围的主机物理地址HPA。
[0072] 需要说明的是,在本申请实施例中,最高预设内存地址范围可以预先设定,尤其可以根据应用场景设定。例如,如图4所示,假设主机物理地址的范围是0到512G,则可以将511G至512G的内存区域作为最高预设内存地址范围,此时,当虚拟机处于安全运行环境时,该虚拟机能够访问主机物理地址的511G至512G的内存区域;当虚拟机处于非安全运行环境时,该虚拟机无法访问主机物理地址的511G至512G的内存区域。
[0073] 在本申请实施例中,当虚拟机处于安全运行环境时,则虚拟机监控器将虚拟机的客户机物理地址GPA与最高预设内存地址范围的主机物理地址HPA建立映射关系,以便后续虚拟机在进行安全计算时能够访问最高预设内存地址范围的主机物理地址HPA。基于此,由于只有当虚拟机处于安全运行环境时,虚拟机才能访问最高预设内存地址范围的主机物理地址HPA,但当虚拟机处于非安全运行环境时,虚拟机无法访问最高预设内存地址范围的主机物理地址HPA,如此,能够有效地防止处于非安全运行环境时访问最高预设内存地址范围的主机物理地址HPA,使得最高预设内存地址范围的主机物理地址HPA能够专用于安全运行环境下的安全计算,从而保证了最高预设内存地址范围的主机物理地址HPA的安全性,从而保证了处于安全运行环境的虚拟机的安全性。
[0074] 需要说明的是,本申请实施例不限定步骤A的执行时间,步骤A可以在“虚拟机处于安全运行环境时”执行。
[0075] 在本申请实施例一种可能的实现方式中,可以利用扩展页表(Extended Page Tables,EPT)技术实现虚拟机地址内存到实际物理内存地址的转换,基于此,还提供了步骤A“将虚拟机的客户机物理地址GPA与最高预设内存地址范围的主机物理地址HPA建立映射关系”的一种实施方式,在该实施方式中,步骤A具体可以包括步骤1和步骤2:
[0076] 步骤1:虚拟机获取在进行安全计算时访问的目标客户机虚拟地址GVA,将目标GVA转换为目标客户机物理地址GPA,根据目标GPA查询扩展页表EPT,当EPT中不存在所述目标GPA与主机物理地址HPA的映射关系时,触发缺页中断。
[0077] 客户机虚拟地址(Guest Virtual Address,GVA)与客户机物理地址GPA一一对应,客户机物理地址GPA与主机物理地址HPA一一对应。
[0078] 扩展页表EPT用于记录GPA与HPA之间的映射关系。另外,扩展页表EPT是4级页表,每级页表的大小为4KB,每级页表包括512个表项,每个表项的大小为8个字节,且每个表项的地址可以利用9位二进制数进行表示,且每个表项可以用于管理1G的内存区域。
[0079] 在本申请实施例中,当虚拟机在安全运行环境中进行安全计算时,若虚拟机获取到在进行安全计算时访问的目标GVA,则由虚拟机先将目标GVA转换为目标GPA,再在EPT中查找目标GPA对应的HPA,此时,若虚拟机无法在EPT中查找到目标GPA对应的HPA(也就是,EPT中不存在目标GPA与HPA之间的映射关系),则触发缺页中断,以便虚拟机监控器能够根据该缺页中断,在EPT中建立目标GPA与HPA之间的映射关系。
[0080] 步骤2:虚拟机监控器响应于缺页中断,将目标GPA与EPT的4级页表的最高位对应的HPA建立映射关系。
[0081] 在本申请实施例中,当虚拟机触发缺页中断时,则虚拟机监控器可以响应于该缺页中断,将目标GPA与EPT的4级页表的最高位对应的HPA建立映射关系。例如,假设EPT的4级页表的最高位对应于第一HPA时,则虚拟机监控器将目标GPA与第一HPA之间建立映射关系。如此,后续虚拟机能够在EPT中查到目标GPA对应的HPA。
[0082] 可以理解的是,在本申请实施例中,利用EPT记录GPA与HPA之间的映射关系,以便虚拟机能够在EPT中查询每一GPA对应的HPA。当虚拟机处于安全运行模式时,若虚拟机无法在EPT中找到目标GPA对应的HPA,则虚拟机需要触发缺页中断,使得虚拟机监控器能够根据该缺页中断在EPT中创建目标GPA与HPA之间的映射关系,以便后续虚拟机能够在EPT中找到目标GPA对应的HPA。
[0083] 在本申请实施例一种可能的实现方式中,还提供了一种实现安全运行环境切换的方法,在该方法中,除了包括上述步骤S201-S204,以及步骤A以外,该方法还包括步骤B:虚拟机获取在进行安全计算时访问的目标客户机虚拟地址GVA,将目标GVA转换为目标客户机物理地址GPA,根据目标GPA查询扩展页表EPT,当EPT中存在目标GPA与主机物理地址HPA的映射关系时,获取目标GPA对应的HPA。
[0084] 在本申请实施例中,当虚拟机监控器在EPT中创建了目标GPA与HPA之间的映射关系之后,虚拟机能够在EPT中查找到目标GPA对应的HPA,其具体过程为:当虚拟机在安全运行环境中进行安全计算时,若虚拟机获取到在进行安全计算时访问的目标GVA,则由虚拟机先将目标GVA转换为目标GPA,再在EPT中查找目标GPA对应的HPA,此时,由于EPT中存在目标GPA与HPA之间的映射关系,因而虚拟机能够直接利用EPT查找得到目标GPA对应的HPA,以便虚拟机对该HPA进行访问。
[0085] 可以理解的是,在本申请实施例中,如果虚拟机监控器在EPT中创建了目标GPA与HPA之间的映射关系,则后续虚拟机在安全运行环境中进行安全计算时,该虚拟机能够直接从该EPT中查找得到目标GPA对应的HPA,使得虚拟机在进行安全计算时能够直接访问目标GPA对应的HPA。此时,由于目标GPA对应的HPA是专用于安全运行环境的内存空间,因而基于目标GPA对应的HPA进行的安全计算能够安全可靠的进行,提高了虚拟机进行安全计算的安全性。
[0086] 需要说明的是,本申请实施例不限定步骤B的执行时间,步骤B可以在“虚拟机监控器在EPT中创建目标GPA与HPA之间的映射关系”之后执行。
[0087] 在本申请实施例一种可能的实现方式中,还提供了一种实现安全运行环境切换的方法,在该方法中,除了包括上述步骤S201-S204,以及步骤A和/或步骤B以外,该方法还包括步骤C:在触发虚拟机切换到非安全运行环境之后,虚拟机监控器将虚拟机的GPA与最高预设内存地址范围的HPA建立的映射关系清除。
[0088] 在本申请实施例中,在触发虚拟机切换到非安全运行环境之后,虚拟机监控器将虚拟机的GPA与最高预设内存地址范围的HPA建立的映射关系清除。如此,使得处于非安全运行环境的虚拟机无法访问最高预设内存地址范围的HPA,实现了最高预设内存地址范围的HPA专用于处于安全运行环境的虚拟机的目的,从而提高了专用于处于安全运行环境的虚拟机的最高预设内存地址范围的HPA的安全性,进而保证了能够执行安全计算的安全运行环境的安全性。例如,假设利用EPT记录GPA与HPA之间的映射关系时,则步骤C具体可以为:在触发虚拟机切换到非安全运行环境之后,虚拟机监控器将EPT中所记录的虚拟机的GPA与最高预设内存地址范围的HPA之间的映射关系进行清除,使得清除后的EPT中不存在GPA与最高预设内存地址范围的HPA之间的映射关系。
[0089] 在本申请实施例一种可能的实现方式中,还提供了一种实现安全运行环境切换的方法,在该方法中,除了包括上述步骤S201-S204、以及上述步骤A和/或上述步骤B、和/或步骤C以外,该方法还包括步骤D和步骤E:
[0090] 步骤D:虚拟机监控器获取根据根密钥派生得到的子密钥,利用子密钥派生出至少一个虚拟机子密钥。
[0091] 虚拟机子密钥与虚拟机具有一一对应关系,因而,虚拟机监控器需要根据虚拟系统所包括的虚拟机个数来确定虚拟机子密钥的个数。
[0092] 在本申请实施例中,在根据根密钥派生得到子密钥之后,虚拟机监控器先获取该子密钥,再利用该子密钥派生出至少一个虚拟机子密钥,使得虚拟机系统中的各个虚拟机均能够从虚拟机监控器中获得其对应的虚拟机子密钥。
[0093] 需要说明的是,本申请实施例不限定虚拟机监控器根据子密钥派生虚拟机子密钥的派生方法,例如,虚拟机监控器可以利用基于HMAC(Hash-based  Message Authentication Code,哈希消息认证码)的密钥派生函数(简称,HKDF)来根据子密钥派生虚拟机子密钥。
[0094] 还需要说明的是,本申请实施例不限定“根据根密钥派生得到子密钥”的具体实施方式,例如,如图5所示,“根据根密钥派生得到子密钥”具体可以为:先由CSE(Converged Security Engine,集成安全芯片)固件生成一个256位的根密钥;再由SBL(Second Boot Loader,第二启动加载程序)的BIOS(Basic Input Output System,基本输入输出系统)从CSE中检索根密钥,并根据该根密钥派生得到子密钥,以便后续虚拟机监控器能够从SBL的BIOS中获取根据根密钥派生得到子密钥。
[0095] 还需要说明的是,根密钥是每个包括虚拟机系统的设备(例如,SoC)所独有的,也就是每个设备对应于一个根密钥,而且,根密钥需要提前烧写到包括虚拟机系统的设备中。
[0096] 步骤E:虚拟机监控器将虚拟机子密钥发送给对应的虚拟机。
[0097] 在本申请实施例中,在虚拟机监控器派生出虚拟机子密钥之后,虚拟机监控器需要将该虚拟机子密钥发送给该虚拟机子密钥对应的虚拟机上,以便后续该虚拟机能够利用该虚拟机子密钥完成相应的任务(例如,完整性验证或签名验证等任务)。其中,因不同虚拟机均对应于不同的虚拟机子密钥,使得每个虚拟机能够利用其对应的虚拟机子密钥完成相应的任务,如此保证了每个虚拟机的安全性,从而保证了虚拟机系统的安全性。
[0098] 可以理解的是,在本申请实施例中,在虚拟机监控器获取到根据根密钥派生得到的子密钥之后,虚拟机监控器先利用子密钥派生出每个虚拟机对应的虚拟机子密钥,再将虚拟机子密钥发送给对应的虚拟机,以便后续该虚拟机能够利用该虚拟机子密钥完成相应的任务。如此实现了不同虚拟机均对应于不同的虚拟机子密钥,使得每个虚拟机能够利用其对应的虚拟机子密钥完成相应的任务,如此保证了每个虚拟机的安全性,从而保证了虚拟机系统的安全性。
[0099] 在本申请实施例一种可能的实现方式中,还提供了一种步骤D“虚拟机监控器获取根据根密钥派生得到的子密钥,利用所述子密钥派生出至少一个虚拟机子密钥”的一种实施方式,在该实施方式中,步骤D具体可以为:虚拟机监控器获取根据根密钥派生得到的设备子密钥以及用户子密钥,利用设备子密钥派生出至少一个虚拟机设备子密钥,利用用户子密钥派生出至少一个虚拟机用户子密钥。
[0100] 其中,虚拟机设备子密钥与虚拟机具有一一对应关系,且虚拟机用户子密钥与虚拟机具有一一对应关系。
[0101] 在本申请实施例中,在根据根密钥派生得到的设备子密钥以及用户子密钥之后,虚拟机先获取设备子密钥以及用户子密钥,再利用设备子密钥派生出至少一个虚拟机设备子密钥,使得虚拟机系统中的各个虚拟机均能够从虚拟机监控器中获得其对应的虚拟机设备子密钥;以及利用用户子密钥派生出至少一个虚拟机用户子密钥,使得虚拟机系统中的各个虚拟机均能够从虚拟机监控器中获得其对应的虚拟机用户子密钥。
[0102] 需要说明的是,本申请实施例不限定“根据根密钥派生得到设备子密钥以及用户子密钥”的具体实施方式,例如,如图5所示,“根据根密钥派生得到设备子密钥以及用户子密钥”具体可以为:先由CSE固件生成一个256位的根密钥;再由SBL的BIOS从CSE中检索根密钥,并根据该根密钥派生得到设备子密钥以及用户子密钥,以便后续虚拟机监控器能够从SBL的BIOS中获取根据根密钥派生得到的设备子密钥以及用户子密钥。
[0103] 基于上述实施方式,当虚拟机监控器派生出虚拟机设备子密钥和虚拟机用户子密钥之后,虚拟机监控器可以将派生出的虚拟机设备子密钥和虚拟机用户子密钥发送给相应的虚拟机,以便后续各个虚拟机能够利用该虚拟机对应的设备子密钥和/或虚拟机用户子密钥完成相应的任务。此时,步骤E“虚拟机监控器将虚拟机子密钥发送给对应的虚拟机”具体为:虚拟机监控器将虚拟机设备子密钥以及虚拟机用户子密钥发送给对应的虚拟机。
[0104] 需要说明的是,在本申请实施例中,虚拟机监控器只将每个虚拟机对应的虚拟机设备子密钥和虚拟机用户子密钥发送给该虚拟机,不会将其他虚拟机对应的虚拟机设备子密钥和虚拟机用户子密钥发送给该虚拟机。如此实现了为不同虚拟机提供不同虚拟机设备子密钥和虚拟机用户子密钥的目的,保证了每个虚拟机的安全性,从而保证了虚拟机系统的安全性。
[0105] 基于上述方法实例,本申请实施例还提供了一种虚拟机系统,下面将对该系统进行说明。
[0106] 参见图6,该图为本申请实施例提供的一种虚拟机系统结构图,如图6所示,该虚拟机系统包括虚拟机监控器601以及至少一台虚拟机602,
[0107] 所述虚拟机602,用于所述虚拟机602处于非安全运行环境时,调用第一虚拟化调用指令;
[0108] 所述虚拟机监控器601,用于响应于所述第一虚拟化调用指令,保存所述非安全运行环境的处理器状态,并加载安全运行环境的处理器状态,触发所述虚拟机602切换到安全运行环境;
[0109] 所述虚拟机602,还用于所述虚拟机602处于所述安全运行环境时,运行所述第一虚拟化调用指令对应的安全计算,在所述安全计算完成后,调用第二虚拟化调用指令;
[0110] 所述虚拟机监控器601,还用于响应于所述第二虚拟化调用指令,保存所述安全运行环境的处理器状态,并加载保存的所述非安全运行环境的处理器状态,触发所述虚拟机602切换到非安全运行环境。
[0111] 在一种可能的实现方式中,所述虚拟机监控器601,还用于所述虚拟机602处于安全运行环境时,将所述虚拟机602的客户机物理地址GPA与最高预设内存地址范围的主机物理地址HPA建立映射关系。
[0112] 在一种可能的实现方式中,所述虚拟机602,还用于获取在进行所述安全计算时访问的目标客户机虚拟地址GVA,将所述目标GVA转换为目标客户机物理地址GPA,根据所述目标GPA查询扩展页表EPT,当所述EPT中不存在所述目标GPA与主机物理地址HPA的映射关系时,触发缺页中断;
[0113] 所述虚拟机监控器601,还用于响应于所述缺页中断,将所述目标GPA与所述EPT的4级页表的最高位对应的HPA建立映射关系。
[0114] 在一种可能的实现方式中,所述虚拟机602,还用于获取在进行所述安全计算时访问的目标客户机虚拟地址GVA,将所述目标GVA转换为目标客户机物理地址GPA,根据所述目标GPA查询扩展页表EPT,当所述EPT中存在所述目标GPA与主机物理地址HPA的映射关系时,获取所述目标GPA对应的HPA。
[0115] 在一种可能的实现方式中,所述虚拟机监控器601,还用于在触发所述虚拟机602切换到非安全运行环境之后,将所述虚拟机602的GPA与最高预设内存地址范围的HPA建立的映射关系清除。
[0116] 在一种可能的实现方式中,所述虚拟机监控器601,还用于获取根据根密钥派生得到的子密钥,利用所述子密钥派生出至少一个虚拟机子密钥,所述虚拟机子密钥与所述虚拟机具有一一对应关系;
[0117] 所述虚拟机监控器601,还用于将所述虚拟机子密钥发送给对应的虚拟机。
[0118] 在一种可能的实现方式中,所述虚拟机监控器601,还用于所述虚拟机监控器获取根据根密钥派生得到的设备子密钥以及用户子密钥,利用所述设备子密钥派生出至少一个虚拟机设备子密钥,利用所述用户子密钥派生出至少一个虚拟机用户子密钥,所述虚拟机设备子密钥与所述虚拟机具有一一对应关系,所述虚拟机用户子密钥与所述虚拟机具有一一对应关系;
[0119] 所述虚拟机监控器601,还用于将所述虚拟机设备子密钥以及所述虚拟机用户子密钥发送给对应的虚拟机602。
[0120] 需要说明的是,本实施例各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。
[0121] 另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述方法实施例所述的实现安全运行环境切换的方法。
[0122] 另外,本申请实施例提供了一种实现安全运行环境切换的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述方法实施例所述的实现安全运行环境切换的方法。这样,本申请实施例中,当虚拟机处于非安全运行环境时,调用第一虚拟化调用指令,使得虚拟机监控器响应于该第一虚拟化调用指令,保存非安全运行环境的处理器状态,加载安全运行环境的处理器状态,并触发虚拟机切换到安全运行环境。当虚拟机处于所述安全运行环境时,运行第一虚拟化调用指令对应的安全计算,以便在安全计算完成后,调用第二虚拟化调用指令,使得虚拟机监控器响应于该第二虚拟化调用指令,保存安全运行环境的处理器状态,加载保存的非安全运行环境的处理器状态,并触发虚拟机切换到非安全运行环境。
[0123] 即,在本申请实施例中,虚拟机监控器可以根据虚拟机调用的第一虚拟化调用指令将该虚拟机从非安全运行环境切换到安全运行环境,使得该虚拟机能够在安全运行环境下运行第一虚拟化调用指令对应的安全计算,如此能够为包括虚拟机系统的汽车电子系统提供一个安全运行环境;而且,虚拟机监控器还可以根据虚拟机调用的第二虚拟化调用指令将该虚拟机从安全运行环境切换到非安全运行环境,使得该虚拟机能够返回到非安全运行环境继续执行安全需求较低的任务。如此,包括虚拟机系统的汽车电子系统能够借助虚拟机监控器的控制实现非安全运行环境和安全运行环境之间的切换,满足不同任务对运行环境的安全需求,从而能够在满足汽车电子系统智能化以及开放程度的基础上为汽车电子系统提供一个安全运行环境。另外,在本申请实施例中,虚拟机监控器能够控制虚拟机系统中的多台虚拟机进行非安全运行环境和安全运行环境之间的切换,从而满足汽车电子系统中同时运行的多个虚拟机对安全运行环境的需求。
[0124] 需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0125] 应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0126] 还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0127] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0128] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈