数据处理方法、装置、设备和存储介质制造方法及图纸

技术编号:39195900 阅读:11 留言:0更新日期:2023-10-27 08:42
本公开的实施例提供了一种数据处理方法、装置、设备和存储介质。该方法包括:在可信执行环境中,初始化第一程序和与第一程序不同的第二程序;分别为第一程序和第二程序分配第一内存空间和第二内存空间,其中第一内存空间为线性内存地址空间,并且包括至少包括第一内存页;并且其中第二内存空间为线性内存地址空间,并且包括至少包括第二内存页,第二内存页与第一内存页不同;将第一内存空间的第一内存页映射至可信执行环境的虚拟地址空间中的第一虚拟内存页;以及将第二内存空间的第二内存页映射至虚拟地址空间中的第一虚拟内存页。页映射至虚拟地址空间中的第一虚拟内存页。页映射至虚拟地址空间中的第一虚拟内存页。

【技术实现步骤摘要】
数据处理方法、装置、设备和存储介质


[0001]本公开的示例实施例总体涉及计算机领域,特别地涉及基于可信执行环境的数据处理方法、装置、设备和计算机可读存储介质。

技术介绍

[0002]可信执行环境(Trusted execution environment,TEE)通过软硬件方法在中央处理器中构建一个安全区域,能够为运行在其中的程序提供一个具备机密性和完整性保护的独立执行环境。在可信执行环境中,程序运行代码和机密数据可以被维护在一块加密的隔离内存中,并在加密内存中完成计算,整个计算过程对外部不可见,以此方式来实现数据的保护。换言之,不同的程序可以以彼此隔离的方式在可信执行环境被运行。这种隔离性在保证数据安全的同时,也增加了程序间分享数据间的复杂度。因此,如何在可信执行环境中快捷高效地实现内存的共享以实现程序间的数据共享是当前亟待解决的技术问题。

技术实现思路

[0003]在本公开的第一方面,提供了一种数据处理方法,包括:在可信执行环境中,初始化第一程序和与第一程序不同的第二程序;分别为第一程序和第二程序分配第一内存空间和第二内存空间;其中,第一内存空间对第一程序可见并且对第二程序不可见,并且第二内存空间对第二程序可见并且对第一程序不可见;其中,第一内存空间为线性内存地址空间,并且包括至少包括第一内存页;并且其中,第二内存空间为线性内存地址空间,并且包括至少包括第二内存页,第二内存页与第一内存页不同;将第一内存空间的第一内存页映射至可信执行环境的虚拟地址空间中的第一虚拟内存页;以及将第二内存空间的第二内存页映射至虚拟地址空间中的第一虚拟内存页。
[0004]在本公开的第二方面,提供了一种数据处理装置,包括:程序初始化模块,被配置为:在可信执行环境中,初始化第一程序和与第一程序不同的第二程序;内存分配模块,被配置为分别为第一程序和第二程序分配第一内存空间和第二内存空间;其中,第一内存空间对第一程序可见并且对第二程序不可见,并且第二内存空间对第二程序可见并且对第一程序不可见;其中,第一内存空间为线性内存地址空间,并且包括至少包括第一内存页;并且其中,第二内存空间为线性内存地址空间,并且包括至少包括第二内存页,第二内存页与第一内存页不同;第一映射模块,被配置为将第一内存空间的第一内存页映射至可信执行环境的虚拟地址空间中的第一虚拟内存页;以及第二映射模块,被配置为将第二内存空间的第二内存页映射至虚拟地址空间中的第一虚拟内存页。
[0005]在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。指令在由至少一个处理单元执行时使电子设备执行第一方面的方法。
[0006]在本公开的第四方面,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序可由处理器执行以实现第一方面的方法。
[0007]应当理解,本内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。
附图说明
[0008]结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示出了本公开的实施例能够在其中实现的示例环境的示意图;图2示出了根据本公开的一些实施例的数据处理方法的流程图;图3示出了根据本公开的一些实施例的内存映射的框图;图4示出了根据本公开的一些实施例的程序地址的框图;图5示出了根据本公开的一些实施例的共享内存映射方法的流程图;图6示出了根据本公开的一些实施例的另一内存映射框图;图7示出了根据本公开的一些实施例的数据处理装置的示意性结构框图;以及图8示出了其中可以实施本公开的一个或多个实施例的电子设备的框图。
具体实施方式
[0009]下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0010]在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其他明确的和隐含的定义。
[0011]在本文中,除非明确说明,“响应于A”执行一个步骤并不意味着在“A”之后立即执行该步骤,而是可以包括一个或多个中间步骤。
[0012]可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
[0013]可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
[0014]例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
[0015]作为一种可选的但非限制性的实施例,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹出窗口的方式,弹出窗口中可以以文字的方式呈现提示信息。此外,弹出窗口中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信
息的选择控件。
[0016]可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实施例构成限定,其他满足相关法律法规的方式也可应用于本公开的实施例中。
[0017]近年来,虚拟机技术得到了广泛地应用。为了优化虚拟机的处理,提出了一种适用于虚拟机场景的二进制指令集,即,WebAssembly(在本公开中,将其简称为Wasm)。
[0018]Wasm技术具有较好的隔离性。具体而言,一个基于Wasm技术的虚拟机内可以同时执行多个Wasm程序。每个Wasm程序拥有独立的线性内存地址空间。在这种情况下,每个Wasm程序只能访问自身线性内存地址空间内的数据,而无法观察、干扰其他Wasm程序的执行流和数据流等。
[0019]此外,Wasm技术属于轻量级指令集。具体而言,Wasm程序具有体积小、冷启动速度快以及对系统资源的消耗低的特点。进一步地,Wasm技术具有较好的可移植性,可作为其他高级语言的编译目标。具体而言,Wasm指令是一种二进制格式并且不限定开发语言。在这种情况下,使用高级语言编写的程序可以被编译成Wasm字节码以在Wasm虚拟机中被运行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,包括:在可信执行环境中,初始化第一程序和与所述第一程序不同的第二程序;分别为所述第一程序和所述第二程序分配第一内存空间和第二内存空间;其中,所述第一内存空间对所述第一程序可见并且对所述第二程序不可见,并且所述第二内存空间对所述第二程序可见并且对所述第一程序不可见;其中,所述第一内存空间为线性内存地址空间,并且包括至少包括第一内存页;并且其中,所述第二内存空间为线性内存地址空间,并且包括至少包括第二内存页,所述第二内存页与所述第一内存页不同;将所述第一内存空间的所述第一内存页映射至所述可信执行环境的虚拟地址空间中的第一虚拟内存页;以及将所述第二内存空间的第二内存页映射至所述虚拟地址空间中的所述第一虚拟内存页。2. 根据权利要求1所述的方法,还包括:响应于检测到由所述第一程序发起的数据的访问请求,确定所述数据所对应的内存地址是否在所述第一内存空间内;以及根据确定所述内存地址不在所述第一内存空间内,将所述内存地址映射至所述虚拟地址空间的异常虚拟内存页。3.根据权利要求1所述的方法,还包括:为所述第一程序生成第一映射表,所述第一映射表包括至少一个页表条目,每个页表条目与所述第一内存空间中的一个相应的内存页相对应并且指示以下至少一项:所述相应的内存页是否已经被映射至所述虚拟地址空间中的一虚拟内存页,或与所述相应的内存页相对应的虚拟内存页的在所述虚拟地址空间中的虚拟地址信息。4.根据权利要求3所述的方法,其中为所述第一程序生成所述第一映射表包括:响应于检测到所述第一程序被初始化,为所述第一程序生成所述第一映射表,所述第一映射表具有预设数目的页表条目;并且所述方法还包括:响应于检测到针对所述第一程序的增加内存指令,在所述第一映射表中修改至少一个页表条目以指示所述第一内存空间中的至少一个新分配的内存页与所述虚拟地址空间中的至少一个虚拟内存页的映射关系。5.根据权利要求3所述的方法,其中所述第一映射表包括与所述第一内存页相对应的第一页表条目,所述第一页表条目包括以下至少一项:第一信息,所述第一信息指示所述第一内存页已经被映射至第一虚拟内存页,第二信息,所述第二信息指示标识所述第一虚拟内存页的第一虚拟地址,以及第三信息,所述第三信息指示所述第一程序针对所述第一内存页的读写权限信息。6. 根据权利要求3所述的方法,其中所述第一映射表包括以下至少一项:第一子映射表,所述第一子映射表包括至少一个第一页表条目,所述至少一个第一页表条目与所述第一程序具有只读权限的至少一个内存页相对应;以及第二子映射表,所述第二子映射表包括至少一个第二页表条目,所述至少一个第二页表条目与所述第一程序具有写权限的至少一个内存页相对应。
7. 根据权利要求1所述的方法,其中所述第一内存空间还包括第三内存页和第四内存页,所述第三内存页和所述第四内存页为所述第一内存空间中的两个连续内存页,所述方法还包括:将所述第一内存空间的所述第三内存页映射至所述虚拟地址空间中的第二虚拟内存页;以及将所述第四内存页映射至所述虚拟地址空间中的第三虚拟内存页,所述第二虚拟内存页和所述第三虚拟内存页在所述虚拟地址空间中不连续。8.根据权利要求1所述的方法,还包括:在所述第一程序运行期间,检测由所述第一程序发起的创建共享内存的请求,所述创建共享内存的请求指示如下信息:所述第一内存页的第一内存地址信息、所述第一程序针对所述第一内存页所设置的读写权限信息以及所述第一内存页的第一标识信息;响应于检测到由所述第二程序发起的查询共享内存的请求,向所述第二程序返回在所述可信执行环境中的共享内存的标识信息列表,所述标识信息列表包括所述第一内存页的所述第一标识信息;检测由所述第二程序发起的共享内存映射请求,所述共享内存映射请求指示所述第二内存页的第二内存地址信息以及所述第一内存页的所述第一标识信息;以及响应于检测到所述共享内存映射请求,将所述第二内存页映射至所述第一虚拟内存页。9.一种数据处理装置,包括:程序初始化模块,被配置为:在可信执行环境中,初始化第一程序和与所述第一程序不同的第二程序;内存分配模块,被配置为分别为所述第一程序和所述第二程序分配第一内存空间和第二内存空间;其中,所述第一内存空间对所述第一程序可见并且对所述第二程序不可见,并且所述第二内存空间对所述第二程序可见并且对所述第一程序不可见;其中,所述第一内存空间为线...

【专利技术属性】
技术研发人员:贺培轩王伟力张殷乾季洪涵张尧吴烨
申请(专利权)人:南方科技大学
类型:发明
国别省市:

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

1