安全内存扩展、释放方法及装置和电子设备与流程

文档序号:21626598发布日期:2020-07-29 02:33阅读:249来源:国知局
安全内存扩展、释放方法及装置和电子设备与流程

本说明书实施例涉及互联网技术领域,尤其涉及一种安全内存扩展、释放方法及装置和电子设备。



背景技术:

在一些场景中,终端设备可能需要参与一些对安全性要求较高的安全处理过程(例如移动支付、身份认证等涉及资金、隐私的场景);而终端设备搭载的操作系统,通常是一个较为开放的环境;这就可能导致非法者利用一些非法手段来采集或者篡改安全处理过程中的数据,从而对数据安全造成威胁。

为此终端设备可以将操作系统分为两部分,一个是用户操作系统用于运行安全性要求不高的应用程序以及执行安全性要求不高的处理过程。另一部分是可信执行环境用于运行安全要求较高的应用程序以及执行安全性要求较高的安全处理过程。随着安全处理场景复杂度越来越高,安全处理所需内存越来越大,可信执行环境中的安全内存空间经常面临内存不足的问题。



技术实现要素:

本说明书实施例提供的一种安全内存扩展、释放方法及装置和电子设备。

根据本说明书实施例的第一方面,提供一种安全内存扩展方法,应用于终端设备;其中,所述终端设备中运行有用户操作系统和可信执行环境;以及,运行在所述可信执行环境中的安全应用程序和第一内存管理驱动,和运行在所述用户操作系统中的第二内存管理驱动;所述可信执行环境包括供所述可信应用程序使用的安全内存空间;所述方法包括:

响应于运行在所述可信执行环境中的安全应用程序触发的安全内存扩展请求,调用所述可信执行环境中的第一内存管理驱动将所述安全内存扩展请求中的需求内存大小发送给所述用户操作系统中的第二内存管理驱动;

响应于所述第一内存管理驱动发送的需求内存大小,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中申请符合所述需求内存大小的空闲物理内存地址;并将所述申请到的物理内存地址发送给所述可信执行环境中的第一内存管理驱动;

响应于所述第二内存管理驱动发送的物理内存地址,调用所述可信执行环境中的第一内存管理驱动,将所述物理内存地址写入所述安全内存空间的扩展内存列表;以由所述安全应用程序使用所述扩展内存列表中物理内存地址对应的物理内存空间。

根据本说明书实施例的第二方面,提供一种安全内存释放方法,应用于终端设备;其中,所述终端设备中运行有用户操作系统和可信执行环境;以及,运行在所述可信执行环境中的安全应用程序和第一内存管理驱动,和运行在所述用户操作系统中的第二内存管理驱动;所述可信执行环境包括供所述可信应用程序使用的安全内存空间;所述方法包括:

响应于运行在所述可信执行环境中的安全应用程序触发的安全内存释放请求,调用所述可信执行环境中的第一内存管理驱动基于所述安全内存释放请求中的待释放物理内存地址,删除所述安全内存空间的扩展内存列表中的物理内存地址,并将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动;

响应于所述第一内存管理驱动发送的待释放物理内存地址,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中请求释放所述待释放物理内存地址对应的物理内存空间。

根据本说明书实施例的第三方面,提供一种安全内存扩展装置,应用于终端设备;其中,所述终端设备中运行有用户操作系统和可信执行环境;以及,运行在所述可信执行环境中的安全应用程序和第一内存管理驱动,和运行在所述用户操作系统中的第二内存管理驱动;所述可信执行环境包括供所述可信应用程序使用的安全内存空间;所述装置包括:

请求单元,响应于运行在所述可信执行环境中的安全应用程序触发的安全内存扩展请求,调用所述可信执行环境中的第一内存管理驱动将所述安全内存扩展请求中的需求内存大小发送给所述用户操作系统中的第二内存管理驱动;

申请单元,响应于所述第一内存管理驱动发送的需求内存大小,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中申请符合所述需求内存大小的空闲物理内存地址;并将所述申请到的物理内存地址发送给所述可信执行环境中的第一内存管理驱动;

扩展单元,响应于所述第二内存管理驱动发送的物理内存地址,调用所述可信执行环境中的第一内存管理驱动,将所述物理内存地址写入所述安全内存空间的扩展内存列表;以由所述安全应用程序使用所述扩展内存列表中物理内存地址对应的物理内存空间。

根据本说明书实施例的第四方面,提供一种安全内存释放装置,应用于终端设备;其中,所述终端设备中运行有用户操作系统和可信执行环境;以及,运行在所述可信执行环境中的安全应用程序和第一内存管理驱动,和运行在所述用户操作系统中的第二内存管理驱动;所述可信执行环境包括供所述可信应用程序使用的安全内存空间;所述装置包括:

请求单元,响应于运行在所述可信执行环境中的安全应用程序触发的安全内存释放请求,调用所述可信执行环境中的第一内存管理驱动基于所述安全内存释放请求中的待释放物理内存地址,删除所述安全内存空间的扩展内存列表中的物理内存地址,并将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动;

释放单元,响应于所述第一内存管理驱动发送的待释放物理内存地址,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中请求释放所述待释放物理内存地址对应的物理内存空间。

根据本说明书实施例的第五方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为上述任一项安全内存扩展或者释放方法。

通过上述技术方案,一方面,在可信执行环境中的安全内存空间不足时,安全应用程序可以主动申请扩展安全内存,通过将用户操作系统中的物理内存转换为安全内存,以供安全应用程序使用。从而实现可信执行环境中的安全内存空间的扩展。

另一方面,所述从用户操作系统中的物理内存扩展的安全内存可以是临时的;在可信执行环境中的安全内存空间使用结束后,还可以将这个临时的安全内存进行释放;即将临时的安全内存地址归还给用户操作系统中的物理内存空间。从而实现降低对用户操作系统的性能影响。

通过将上述安全内存扩展方案和安全内存释放方案配合实施,可以实现灵活、动态地调整可信执行环境中的安全内存空间大小,以满足安全应用程序所需的安全内存。

附图说明

图1是本说明书一实施例提供的终端设备的系统架构图;

图2是本说明书一实施例提供的安全内存扩展方法的流程图;

图3是本说明书一实施例提供的终端设备的系统架构图;

图4是本说明书一实施例提供的安全内存释放方法的流程图;

图5是本说明书一实施例提供的安全内存扩展装置的硬件结构图;

图6是本说明书一实施例提供的安全内存扩展装置的模块示意图;

图7是本说明书一实施例提供的安全内存释放装置的硬件结构图;

图8是本说明书一实施例提供的安全内存释放装置的模块示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的方式并不代表与本说明书相一致的所有方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。本文中的多个可以是指两个或两个以上的情况。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

请参见图1,图1是本说明书提供的一种终端设备的系统架构图。

如图1所示,终端设备中运行有用户操作系统和可信执行环境(trustedexecutionenvironment,tee)。

所述可信执行环境中可以搭建一个与用户操作系统保持隔离的安全操作系统,在安全操作系统中运行有安全应用程序,第一内存管理驱动和安全内存空间控制器。在所述tee中单独开辟一块内存空间作为安全内存空间,用于供所述可信应用程序使用。所述安全内存空间还对应有扩展内存列表,所述扩展内存列表用于管理扩展的安全内存地址。

在所述用户操作系统中运行有第二内存管理驱动。所述用户操作系统还管理着终端设备的物理内存空间。

以下结合图2所示本说明书提供的一种安全内存扩展方法实施例,该方法可以应用于终端设备,如图1所示的所述终端设备中运行有用户操作系统和可信执行环境;以及,运行在所述可信执行环境中的安全应用程序和第一内存管理驱动,和运行在所述用户操作系统中的第二内存管理驱动;所述可信执行环境包括供所述可信应用程序使用的安全内存空间;所述方法包括:

步骤202:响应于运行在所述可信执行环境中的安全应用程序触发的安全内存扩展请求,调用所述可信执行环境中的第一内存管理驱动将所述安全内存扩展请求中的需求内存大小发送给所述用户操作系统中的第二内存管理驱动;

步骤204:响应于所述第一内存管理驱动发送的需求内存大小,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中申请符合所述需求内存大小的空闲物理内存地址;并将所述申请到的物理内存地址发送给所述可信执行环境中的第一内存管理驱动;

步骤206:响应于所述第二内存管理驱动发送的物理内存地址,调用所述可信执行环境中的第一内存管理驱动,将所述物理内存地址写入所述安全内存空间的扩展内存列表;以由所述安全应用程序使用所述扩展内存列表中物理内存地址对应的物理内存空间。

上述可信执行环境(trustedexecutionenvironment),是指与终端设备上搭载的通用操作系统(即用户操作系统)并行运行的,与上述通用操作系统保持隔离的一个独立的安全执行环境,该安全执行环境用于为终端设备上搭载的通用执行环境提供安全服务。

其中,在终端设备上搭载tee所采用的技术方案,在本说明书中不进行特别限定,本领域技术人员可以基于实际的需求,进行灵活的选择。

例如,在实现时,可以采用arm公司的trustzone架构,在终端设备上搭载tee环境。trustzone架构是arm公司提出的一种硬件级的安全运行解决方案。trustzone架构将系统分为了tee和ree(richexecutionenvironment,非可信执行环境)两个区域,ree中运行着终端设备搭载的通用操作系统(比如android系统)。而tee有独立的运算、存储资源,与ree完全隔离开。所有需要保密的操作(如指纹识别、密码处理、数据加解密、安全认证等),在tee中执行,其余的不需要保密的操作在ree中执行。

一方面,可以在tee中,可以进一步搭建一个与用户操作系统保持隔离的安全操作系统(secureos);例如android系统中的teeos。

在实现时,可以通过在tee中搭载微内核的操作系统内核的方式,在tee的安全环境中,构建一个独立运行的小型安全操作系统。

其中,需要说明的是,在tee中搭载的操作系统内核的具体类型,在本说明书中不进行特别限定;例如,可以是基于zircon的操作系统内核。

另一方面,还可以在tee中开辟一块安全内存空间作为需要在可信执行环境中运行的可信应用程序使用的内存空间。

在实际应用中,由于安全内存空间大小有限,在安全应用程序需要使用的内存超过了当前空闲安全内存时,如图1所示安全应用程序可以主动向第一内存管理驱动发起安全内存扩展请求。其中,所述安全内存扩展请求中携带有需求内存大小;所述需求内存大小可以是指安全应用程序需要处理的业务所需的内存大小;也可以是指安全应用程序需要处理的业务所需的内存大小减去当前空闲安全内存后的内存大小。

所述终端设备响应于运行在所述可信执行环境中的安全应用程序触发的安全内存扩展请求,调用所述可信执行环境中的第一内存管理驱动将所述安全内存扩展请求中的需求内存大小发送给所述用户操作系统中的第二内存管理驱动。

其中,所述第一内存管理驱动和和第二内存管理驱动均是一种驱动程序,用于在可信执行环境和用户操作系统之间传递信息。

此外,所述可信执行环境的第一内存管理驱动和用户操作系统的第二内存管理驱动之间需要通过安全通信协议接口实现安全通信。

由于可信执行环境与用户操作系统之间是相互隔离的;并且为了可信执行环境的安全,用户操作系统的数据是不被允许随意传输到可信执行环境的。

在实现时,所述安全通信协议接口可以采用trustyapi。trustyapi描述了trusty进程间通信(ipc)系统,包括与用户操作系统的通信。在用户操作系统上运行的应用程序也可以使用trustyapi连接到可信执行环境中的安全应用程序,从而与之交换数据。应用程序间通过应用级协议确定数据格式和语义。传输的可靠性由底层trusty基础框架来保证,并且通信可以是完全异步进行的。简单的是,通过trustyapi,就可以实现可信执行环境下第一内存管理驱动与用户操作系统下第二内存管理驱动之间数据传递,且确保传输数据的安全可靠。

如图1所示,在接收到第一内存管理驱动发送的需求内存大小之后,调用所述用户操作系统中的第二内存管理驱动,由所述第二内存管理驱动通过用户操作系统的物理内存申请接口,申请符合(大于或等于)所述需求内存大小的空闲物理内存地址。并且通过trustyapi接口将申请到的空闲物理内存地址发送给第一内存管理驱动。

在实现时,所述物理内存地址可以是连续物理内存地址。这样便于内存寻址,从而提高处理效率。

如图1所示,在接收到第二内存管理驱动发送的物理内存地址之后,调用所述可信执行环境中的第一内存管理驱动,将所述物理内存地址写入所述安全内存空间的扩展内存列表;以由所述安全应用程序使用所述扩展内存列表中物理内存地址对应的物理内存空间。

在实现时,上述写入物理内存地址可以通过mmu(memorymanagementunit,内存管理单元)完成。mmu是中央处理器(cpu)中用来管理虚拟存储器、物理存储器的控制线路,主要负责将虚拟内存地址映射为物理内存地址。在可信执行环境中,安全内存空间通常是以列表的形式进行管理,在列表中记录虚拟内存地址和物理内存地址的映射关系,安全应用程序通常使用虚拟内存地址来访问终端设备的内存。由于本说明书中扩展的安全内存是临时性的,使用后需要释放;为此可以提供一个用于记录扩展内存地址的列表,即本说明书中的扩展内存列表。

如图1所示,所述终端设备的系统架构图中,可信执行环境中还包括安全内存空间控制器。相应地,步骤206中,在所述可信执行环境中的第一内存管理驱动将所述物理内存地址写入所述安全内存空间的扩展内存列表之前,还包括:

调用运行在所述可信执行环境中的安全内存空间控制器,将所述物理内存地址配置为安全属性。

由于扩展的安全内存是用户操作系统中的物理内存,并不是可信执行环境专用的;因此在第二内存管理驱动申请成功到安全应用程序开始使用之间,存在被用户操作系统中的应用程序先使用的可能。因此,通过配置安全内存空间控制器指定申请的物理内存地址对应的内存空间为安全属性;设置了安全属性的内存空间不会被用户操作系统访问读写。在实现时,所述安全内存空间控制器可以包括arm的tzc500模块。

通过上述技术方案,在可信执行环境中的安全内存空间不足时,安全应用程序可以主动申请扩展安全内存,通过将用户操作系统中的物理内存转换为安全内存,以供安全应用程序使用。从而实现可信执行环境中的安全内存空间的扩展。并且,在扩展了安全内存空间之后,安全应用程序就可以使用扩展内存列表中物理内存地址对应的物理内存空间来处理用户隐私相关的业务以保护用户数据;所述用户数据可以是用户的隐私数据(如密码、人脸图像、身份证号码、手机号码等),也可以是用户的个人数据(如兴趣爱好、家庭住址、工作地址等)。

请参见图3,图3是本说明书提供的一种终端设备的系统架构图。

与图1相同的图3所示终端设备中运行有用户操作系统和可信执行环境。

所述可信执行环境中可以搭建一个与用户操作系统保持隔离的安全操作系统,在安全操作系统中运行有安全应用程序,第一内存管理驱动和安全内存空间控制器。在所述tee中单独开辟一块内存空间作为安全内存空间,用于供所述可信应用程序使用。所述安全内存空间还对应有扩展内存列表,所述扩展内存列表用于管理扩展的安全内存地址。

在所述用户操作系统中运行有第二内存管理驱动。所述用户操作系统还管理着终端设备的物理内存空间。

与图2所示的安全内存扩展实施例对应的,本说明书还提供了图4所示的一种安全内存释放方法实施例,该方法应用于终端设备,如图3所示的所述终端设备中运行有用户操作系统和可信执行环境;以及,运行在所述可信执行环境中的安全应用程序和第一内存管理驱动,和运行在所述用户操作系统中的第二内存管理驱动;所述可信执行环境包括供所述可信应用程序使用的安全内存空间;所述方法包括:

步骤302:响应于运行在所述可信执行环境中的安全应用程序触发的安全内存释放请求,调用所述可信执行环境中的第一内存管理驱动基于所述安全内存释放请求中的待释放物理内存地址,删除所述安全内存空间的扩展内存列表中的物理内存地址,并将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动;

步骤304:响应于所述第一内存管理驱动发送的待释放物理内存地址,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中请求释放所述待释放物理内存地址对应的物理内存空间。

所述可信执行环境与图2所示实施例中的可信执行环境相同,此处不再赘述。

通过前述安全内存扩展实施例为安全内存申请到物理内存之后,可信执行环境中的安全应用程序就有足够的安全内存空间使用。在安全应用程序完成安全处理后,不再需要使用安全内存,此时如果其占用的安全内存包含全部或者部分扩展安全内存的话,可以释放扩展的安全内存,即将扩展的安全内存归还给用户操作系统的物理内存空间。如图3所示,安全应用程序可以主动向第一内存管理驱动发起安全内存释放请求。其中,所述安全内存扩展请求中携带有待释放内存地址;所述待释放内存地址可以是指位于扩展内存列表中的物理内存地址。当申请的物理内存地址为连续物理内存地址时,这里的待释放物理内存地址也同样是连续物理内存地址。

所述终端设备响应于运行在所述可信执行环境中的安全应用程序触发的安全内存释放请求,调用所述可信执行环境中的第一内存管理驱动删除安全内存空间的扩展内存列表中的待释放物理内存地址,并将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动。

在实现时,上述删除待释放物理内存地址可以通过mmu完成。如前图2中所示的扩展内存列表是用于记录扩展内存地址的列表,具体记录的是第二内存管理驱动申请的物理内存地址。通常将待释放内存地址从扩展内存列表中删除,可以确保这些物理内存地址不会被可执行环境中的安全应用程序再次使用。

其中,所述第一内存管理驱动和和第二内存管理驱动均是一种驱动程序,用于在可信执行环境和用户操作系统之间传递信息。所述可信执行环境的第一内存管理驱动和用户操作系统的第二内存管理驱动之间需要通过安全通信协议接口实现安全通信。由于可信执行环境与用户操作系统之间是相互隔离的;并且为了可信执行环境的安全,用户操作系统的数据是不被允许随意传输到可信执行环境的。在实现时,所述安全通信协议接口可以采用trustyapi。所述trustyapi与图2实施例中的相同,此处不再赘述。

如图3所示,所述终端设备的系统架构图中,可信执行环境中还包括安全内存空间控制器。相应地,步骤302中,在所述可信执行环境中的第一内存管理驱动将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动之前,还包括:

如果所述待释放物理内存地址被配置了安全属性,则调用运行在所述可信执行环境中的安全内存空间控制器,删除所述待释放物理内存地址配置的安全属性。

由于待释放物理内存地址被配置了安全属性,无法被用户操作系统访问读写;因此需要将其配置的安全属性删除,以确保这部分物理内存释放后可以供用户操作系统使用。在实现时,所述安全内存空间控制器可以包括arm的tzc500模块。

如图3所示,在接收到第一内存管理驱动发送的待释放物理内存地址之后,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中请求释放所述待释放物理内存地址对应的物理内存空间。当收到释放成功消息时被可信执行环境临时占用的物理内存就释放完成,释放了的物理内存无法被可信执行环境中的应用程序使用,仅可以被用户操作系统使用。

如图3所示,在所述用户操作系统中成功释放所述待释放物理内存地址对应的物理内存空间之后,还包括:

调用所述用户操作系统中的第二内存管理驱动,将所述待释放物理内存地址释放成功的通知发送给所述可信执行环境中的第一内存管理驱动;

进一步的,响应于所述第二内存管理驱动发送的通知,调用所述可信执行环境中的第一内存管理驱动向所述安全应用程序发送所述待释放物理内存地址释放成功的通知。

通过安全通信协议接口,将待释放内存地址释放成功通知反馈第一内存管理驱动,进而通知到安全应用程序,实现了消息反馈机制。

通过上述技术方案,由于从用户操作系统中的物理内存扩展的安全内存可以是临时的;在可信执行环境中的安全内存空间使用结束后,还可以将这个临时的安全内存进行释放;即将临时的安全内存地址归还给用户操作系统中的物理内存空间。从而实现降低对用户操作系统的性能影响。

通过将上述安全内存扩展方案和安全内存释放方案配合实施,可以实现灵活、动态地调整可信执行环境中的安全内存空间大小,以满足安全应用程序所需的安全内存。

与前述安全内存扩展方法实施例相对应,本说明书还提供了安全内存扩展装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书安全内存扩展装置所在设备的一种硬件结构图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据安全内存扩展实际功能,还可以包括其他硬件,对此不再赘述。

请参见图6,为本说明书一实施例提供的安全内存扩展装置的模块图,所述装置对应了图2所示实施例,应用于终端设备;其中,所述终端设备中运行有用户操作系统和可信执行环境;以及,运行在所述可信执行环境中的安全应用程序和第一内存管理驱动,和运行在所述用户操作系统中的第二内存管理驱动;所述可信执行环境包括供所述可信应用程序使用的安全内存空间;所述装置包括:

请求单元402,响应于运行在所述可信执行环境中的安全应用程序触发的安全内存扩展请求,调用所述可信执行环境中的第一内存管理驱动将所述安全内存扩展请求中的需求内存大小发送给所述用户操作系统中的第二内存管理驱动;

申请单元404,响应于所述第一内存管理驱动发送的需求内存大小,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中申请符合所述需求内存大小的空闲物理内存地址;并将所述申请到的物理内存地址发送给所述可信执行环境中的第一内存管理驱动;

扩展单元406,响应于所述第二内存管理驱动发送的物理内存地址,调用所述可信执行环境中的第一内存管理驱动,将所述物理内存地址写入所述安全内存空间的扩展内存列表;以由所述安全应用程序使用所述扩展内存列表中物理内存地址对应的物理内存空间。

可选的,所述装置还包括:

第二请求单元,响应于运行在所述可信执行环境中的安全应用程序触发的安全内存释放请求,调用所述可信执行环境中的第一内存管理驱动基于所述安全内存释放请求中的待释放物理内存地址,删除所述安全内存空间的扩展内存列表中的物理内存地址,并将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动;

释放单元,响应于所述第一内存管理驱动发送的待释放物理内存地址,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中请求释放所述待释放物理内存地址对应的物理内存空间。

可选的,所述可信执行环境的第一内存管理驱动和用户操作系统的第二内存管理驱动之间通过安全通信协议接口实现安全通信。

可选的,所述安全通信协议接口包括trustyapi。

可选的,所述扩展单元406,还用于在所述可信执行环境中的第一内存管理驱动将所述物理内存地址写入所述安全内存空间的扩展内存列表之前,调用运行在所述可信执行环境中的安全内存空间控制器,将所述物理内存地址配置为安全属性。

可选的,所述第二请求单元,还用于在所述可信执行环境中的第一内存管理驱动将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动之前,如果所述待释放物理内存地址被配置了安全属性,则调用运行在所述可信执行环境中的安全内存空间控制器,删除所述待释放物理内存地址配置的安全属性。

可选的,所述安全内存空间控制器包括arm的tzc500模块。

可选的,所述装置还包括:

第一通知单元,在所述释放单元成功释放所述待释放物理内存地址对应的物理内存空间之后,调用所述用户操作系统中的第二内存管理驱动,将所述待释放物理内存地址释放成功的通知发送给所述可信执行环境中的第一内存管理驱动;

第二通知单元,响应于所述第二内存管理驱动发送的通知,调用所述可信执行环境中的第一内存管理驱动向所述安全应用程序发送所述待释放物理内存地址释放成功的通知。

可选的,所述物理内存地址为连续物理内存地址。

与前述安全内存释放方法实施例相对应,本说明书还提供了安全内存释放装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本说明书安全内存释放装置所在设备的一种硬件结构图,除了图7所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据安全内存释放实际功能,还可以包括其他硬件,对此不再赘述。

请参见图8,为本说明书一实施例提供的安全内存释放装置的模块图,所述装置对应了图4所示实施例,应用于终端设备;其中,所述终端设备中运行有用户操作系统和可信执行环境;以及,运行在所述可信执行环境中的安全应用程序和第一内存管理驱动,和运行在所述用户操作系统中的第二内存管理驱动;所述可信执行环境包括供所述可信应用程序使用的安全内存空间;所述装置包括:

请求单元502,响应于运行在所述可信执行环境中的安全应用程序触发的安全内存释放请求,调用所述可信执行环境中的第一内存管理驱动基于所述安全内存释放请求中的待释放物理内存地址,删除所述安全内存空间的扩展内存列表中的物理内存地址,并将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动;

释放单元504,响应于所述第一内存管理驱动发送的待释放物理内存地址,调用所述用户操作系统中的第二内存管理驱动,在所述用户操作系统中请求释放所述待释放物理内存地址对应的物理内存空间。

可选的,所述装置还包括:

第一通知单元,在所述释放单元504成功释放所述待释放物理内存地址对应的物理内存空间之后,调用所述用户操作系统中的第二内存管理驱动,将所述待释放物理内存地址释放成功的通知发送给所述可信执行环境中的第一内存管理驱动;

第二通知单元,响应于所述第二内存管理驱动发送的通知,调用所述可信执行环境中的第一内存管理驱动向所述安全应用程序发送所述待释放物理内存地址释放成功的通知。

可选的,所述可信执行环境的第一内存管理驱动和用户操作系统的第二内存管理驱动之间通过安全通信协议接口实现安全通信。

可选的,所述安全通信协议接口包括trustyapi。

可选的,所述请求单元502,还用于在所述可信执行环境中的第一内存管理驱动将删除的待释放物理内存地址发送给所述用户操作系统中的第二内存管理驱动之前,如果所述待释放物理内存地址被配置了安全属性,则调用运行在所述可信执行环境中的安全内存空间控制器,删除所述待释放物理内存地址配置的安全属性。

可选的,所述安全内存空间控制器包括arm的tzc500模块。

可选的,所述待释放物理内存地址为连续物理内存地址。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上图6描述了安全内存扩展装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为前述任一安全内存扩展的方法。

以上图8描述了安全内存释放装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为前述所示任一安全内存释放的方法。

在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-onlymemory,缩写:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、快闪存储器、硬盘或者固态硬盘。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域技术人员在考虑说明书及实践这里公开的实施例后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1