针对目标TEE应用的访存管理方法及系统技术方案

技术编号:38534888 阅读:12 留言:0更新日期:2023-08-19 17:06
本说明书实施例提供一种针对目标TEE应用的访存管理方法及系统,在管理方法中,虚拟机管理器获取目标TEE应用执行中产生的第一缺页异常信息,其中指示出第一虚拟页。响应于在目标TEE应用对应的目标安全页表中未查询到第一虚拟页对应的绑定关系,虚拟机管理器将第一缺页异常信息注入到普通执行环境REE中的操作系统中。操作系统响应于第一缺页异常信息,为第一虚拟页绑定第一物理页,并将对应的第一绑定关系和第一物理页的第一元数据提供给虚拟机管理器。虚拟机管理器将第一绑定关系添加到目标安全页表中,并在用于记录各TEE应用的安全内存信息的安全内存表中,添加第一记录,该第一记录包括第一物理页和第一元数据。一记录包括第一物理页和第一元数据。一记录包括第一物理页和第一元数据。

【技术实现步骤摘要】
针对目标TEE应用的访存管理方法及系统


[0001]本说明书一个或多个实施例涉及安全
,尤其涉及一种针对目标TEE应用的访存管理方法及系统。

技术介绍

[0002]可信执行环境(Trusted Execution Environment,TEE)一般是硬件或者软件为程序开发者提供的一种安全环境或区域。区域外的软硬件无法获取到区域内数据的真实内容。程序开发者可将敏感/隐私数据生成与处理的关键程序代码运行在TEE中,其它部分运行在普通执行环境(Rich Execution Environment,REE)中。即使可信执行环境外的程序代码存在可被攻击者利用的漏洞,可信执行环境中程序和数据的安全也能得到保证。可信执行环境一般为敏感/隐私数据的处理程序提供数据隐私性、数据完整性、身份可验证性等安全特性。
[0003]在传统的方案中,可信执行环境的创建依赖于特殊的硬件,称为硬件TEE方案,然而这些特殊硬件的价格昂贵,且要求平台能够支持这样的特殊硬件,由此会提高可信执行环境的使用成本。进一步地,在硬件TEE方案中,通常由REE中的不可信模块来管理TEE页表,这会增加安全内存被攻击的风险。

技术实现思路

[0004]本说明书一个或多个实施例描述了一种针对目标TEE应用的访存管理方法,可以对运行在模拟的可信执行环境中的TEE应用进行有效管理,由此可以在降低可信执行环境的使用成本的情况下,确保安全内存的安全性。
[0005]第一方面,提供了一种针对目标TEE应用的访存管理方法,所述目标TEE应用运行在虚拟机的可信执行环境TEE中;所述方法包括:
[0006]虚拟机管理器获取所述目标TEE应用执行中产生的第一缺页异常信息,其中指示出第一虚拟页;
[0007]响应于在所述目标TEE应用对应的目标安全页表中未查询到所述第一虚拟页对应的绑定关系,所述虚拟机管理器将所述第一缺页异常信息注入到普通执行环境REE中的操作系统中;
[0008]所述操作系统响应于所述第一缺页异常信息,为所述第一虚拟页绑定第一物理页,并将对应的第一绑定关系和所述第一物理页的第一元数据提供给所述虚拟机管理器;
[0009]所述虚拟机管理器将所述第一绑定关系添加到所述目标安全页表中,并在用于记录各TEE应用的安全内存信息的安全内存表中,添加第一记录,所述第一记录包括所述第一物理页和所述第一元数据。
[0010]第二方面,提供了一种针对目标TEE应用的访存管理系统,所述目标TEE应用运行在虚拟机的可信执行环境TEE中;所述系统包括:
[0011]虚拟机管理器,用于获取所述目标TEE应用执行中产生的第一缺页异常信息,其中
指示出第一虚拟页;
[0012]所述虚拟机管理器,还用于响应于在所述目标TEE应用对应的目标安全页表中未查询到所述第一虚拟页对应的绑定关系,将所述第一缺页异常信息注入到普通执行环境REE中的操作系统中;
[0013]所述操作系统,用于响应于所述第一缺页异常信息,为所述第一虚拟页绑定第一物理页,并将对应的第一绑定关系和所述第一物理页的第一元数据提供给所述虚拟机管理器;
[0014]所述虚拟机管理器,还用于将所述第一绑定关系添加到所述目标安全页表中,并在用于记录各TEE应用的安全内存信息的安全内存表中,添加第一记录,所述第一记录包括所述第一物理页和所述第一元数据。
[0015]第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
[0016]第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一方面的方法。
[0017]本说明书一个或多个实施例提供的针对目标TEE应用的访存管理方法,目标TEE应用可以运行在模拟的可信执行环境中,对于该目标TEE应用的访存行为(包括动态添加/修改/删除安全内存页),由可信的虚拟机管理器联合REE中的操作系统,基于安全页表和安全内存表共同进行管理,由此可以在降低可信执行环境的使用成本的情况下,确保安全内存的安全性。
附图说明
[0018]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0019]图1为本说明书披露的一个实施例的实施场景示意图;
[0020]图2示出根据一个实施例的针对目标TEE应用的访存管理方法交互图;
[0021]图3示出根据另一个实施例的针对目标TEE应用的访存管理方法交互图;
[0022]图4示出根据又一个实施例的针对目标TEE应用的访存管理方法交互图;
[0023]图5示出根据一个实施例的针对目标TEE应用的访存管理系统示意图。
具体实施方式
[0024]下面结合附图,对本说明书提供的方案进行描述。
[0025]如前所述,传统技术中,通常会基于特殊硬件来创建可信执行环境。在该硬件TEE方案中,TEE应用访存的操作往往由内存管理单元(Memory Management Unit,MMU)(一种负责处理处理器(Central Process Unit,CPU)的内存访问请求的计算机硬件)等硬件模块管控。具体地,CPU通过虚拟地址访问内存的过程中,MMU首先根据TEE页表中对应页表项的访问权限配置当前访存行为,进行合法性检查。通过检查之后,MMU通过查询TEE页表(一种用于记录虚拟页/虚拟地址与物理页/物理地址的绑定关系的数据表),将虚拟地址转换成物
理地址,再由内存控制器(Memory Controller)等相关硬件将内存中的数据加载到处理器中。
[0026]为了降低实现复杂度,硬件TEE方案中,通常由REE中的不可信模块(例如,操作系统)管理TEE页表。然而在通过不可信模块管控TEE页表时,TEE页表存在被攻击的可能。为了检查不可信模块通过恶意修改TEE页表破坏安全内存机密性和完整性的行为,需要引入新硬件模块:反向页表,其用于记录TEE安全内存映射的元数据。不可信模块不能访问反向页表,反向页表元数据初始化以及动态修改需要经过TEE应用的授权与验证。利用反向页表的机制,TEE应用的内存安全能够得到保证。这里的反向页表可以实现为如下两种结构:SGX(Software Guard Extension)技术中基于安全内存页映射(Enclave Page Cache Map,EPCM)的结构和AMD SEV

SNP技术中基于RMP(Reverse Map Table)的结构。
[0027]以SGX技术中EPCM的结构为例来说,EPCM中可以记录安全内存的映射信息。同时对MMU处理TEE应用访问安全内存的机制进行拓展:访存过程中,在使用不可信模块管理的TEE页表进行地址转本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对目标TEE应用的访存管理方法,所述目标TEE应用运行在虚拟机的可信执行环境TEE中;所述方法包括:虚拟机管理器获取所述目标TEE应用执行中产生的第一缺页异常信息,其中指示出第一虚拟页;响应于在所述目标TEE应用对应的目标安全页表中未查询到所述第一虚拟页对应的绑定关系,所述虚拟机管理器将所述第一缺页异常信息注入到普通执行环境REE中的操作系统中;所述操作系统响应于所述第一缺页异常信息,为所述第一虚拟页绑定第一物理页,并将对应的第一绑定关系和所述第一物理页的第一元数据提供给所述虚拟机管理器;所述虚拟机管理器将所述第一绑定关系添加到所述目标安全页表中,并在用于记录各TEE应用的安全内存信息的安全内存表中,添加第一记录,所述第一记录包括所述第一物理页和所述第一元数据。2.根据权利要求1所述的方法,其中,所述目标安全页表还包括,用于指示绑定关系是否有效的标志位,所述安全内存表中各物理页具有页状态位。3.根据权利要求2所述的方法,其中,所述将所述第一绑定关系添加到所述目标安全页表中,包括:将所述第一绑定关系的标志位设置为失效;所述添加第一记录,包括:将所述第一物理页的页状态位设置为表征处理中的中间态。4.根据权利要求3所述的方法,在所述添加第一记录后,所述方法还包括:所述虚拟机管理器获取所述目标TEE应用执行中产生的第二缺页异常信息,其中指示出所述第一虚拟页;响应于在所述目标安全页表中查询到所述第一绑定关系,且对应的标志位为失效,所述虚拟机管理器修正所述第二缺页异常信息,并将得到的修正异常信息注入到所述操作系统中;所述操作系统响应于所述修正异常信息,调用所述目标TEE应用,验证所述第一元数据;在验证通过的情况下,所述虚拟机管理器在所述目标安全页表中将所述第一绑定关系的标志位设置为有效,在所述安全内存表中将所述第一物理页的页状态位设置为表征就绪的终态。5.根据权利要求4所述的方法,其中,所述验证所述第一元数据,包括:所述目标TEE应用向所述虚拟机管理器发送第一验证请求,其中指示出所述目标TEE应用维护的所述第一虚拟页的第一描述数据;所述虚拟机管理器响应于所述第一验证请求,将所述第一描述数据与所述第一元数据进行比对,若比对一致,则针对所述第一元数据的验证通过。6.根据权利要求4所述的方法,其中,所述修正所述第二缺页异常信息,包括:将所述第二缺页异常信息中的违规访问位和用户模式位设置为有效,得到所述修正异常信息。7.根据权利要求1所述的方法,其中,所述第一元数据包括以下中的至少一项:虚拟地址、页类型以及权限。
8.根据权利要求2所述的方法,还包括:所述操作系统根据所述目标TEE应用的目标请求,向所述虚拟机管理器发送第一更新请求,其中指示出第二虚拟页及其目标属性的更新属性值;所述虚拟机管理器在所述安全内存表中,将与所述第二虚拟页绑定的第二物理页对应的第二记录中的目标属性的属性值,修改为所述更新属性值,将其中的页状态位设置为表征处理中的中间态;在所述目标安全页表中将对应的标志位设置为失效;所述目标TEE应用向所述虚拟机管理器发送第二验证请求,其中指示出所述第二虚拟页的目标属性的期望属性值;所述虚拟机管理器基于所述期望属性值,对所述更新属性值进行验证,并在验证通过后,将所述第二记录中的页状态位设置为表征就绪的终态。9.根据权利要求8所述的方法,其中,所述对所述更新属性值进行验证,包括:将所述目标属性的期望属性值与所述更新属性值进行比对,若比对一致,则针对所述更新属性值的验证通过。10.根据权利要求8所述的方法,其中,所述目标请求为修改请求,所述目标属性为页类型。11.根据权利要求8所述的方法,其中,所述目标请求为删除请求,所述目标属性为页类型,所述期望属性值为TRIM类型;所述方法还包括:所述操作系统根据所述目标TEE应用的确认删除请求,向所述虚拟机管理器发送第二更新请求,其中指示出所述第二虚拟页;所述虚拟机管理器从所述安全内存表中清除所述第二记录,并清除所述目标安全页表中所述第二虚拟页对应的绑定关系。12.根据权利要求1所述的方法,其中,所述安全内存表中的各数据记录包括拥有者字段;所述方法还包括:所述操作系统根据所述目标TEE应用的销毁请求,向所述虚拟机管理器发送第三更新请求;所述虚拟机管理器从所述安全内存表中清除其中的拥有者为所述目标TEE应用的数据记录,以及删除所述目标安全页表。13.一种针对目标TEE应用的访存管理系统,所述目标TEE应用运行在虚拟机的可信执行环境TEE中;所述系统包括:虚拟机管理器,用于获取所述目...

【专利技术属性】
技术研发人员:朱伯君刘双闫守孟
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1