首页> 中国专利> 执行安全操作的系统以及系统执行安全操作的方法

执行安全操作的系统以及系统执行安全操作的方法

摘要

本发明实施例提供一种执行安全操作的系统,包括:I/O子系统;存储体子系统;以及多个处理器,在多个可信执行环境TEE和多个普通执行环境REE中执行多个进程,多个TEE和多个REE中每个由相应的访问标识符AID标识并由相应的系统资源保护单元SRPU保护,其中,TEE对应的SRPU包括指令,当所述指令被相应的处理器执行时,使相应的处理器使用数据结构来控制对所述TEE的访问,其中,所述数据结构包括:允许的AID和指向允许的AID可访问的存储体位置的指针。

著录项

  • 公开/公告号CN113094700A

    专利类型发明专利

  • 公开/公告日2021-07-09

    原文格式PDF

  • 申请/专利权人 联发科技股份有限公司;

    申请/专利号CN202011539230.7

  • 发明设计人 张玉典;苏持平;李宏文;

    申请日2020-12-23

  • 分类号G06F21/53(20130101);

  • 代理机构44280 深圳市威世博知识产权代理事务所(普通合伙);

  • 代理人黎坚怡

  • 地址 中国台湾新竹市新竹科学工业园区笃行一路一号

  • 入库时间 2023-06-19 11:45:49

说明书

技术领域

本发明的实施例涉及一种用于计算系统的安全机制。

背景技术

传统操作系统(Traditional Operating System,OS)是管理用户的应用程序的系统硬件资源的一组软件,以实现更好的利用率,性能或效率。由于操作系统的复杂性和规模不断扩大,传统的操作系统已变得不安全。此外,由于在用户程序中使用某些编程语言(例如C/C++),传统的操作系统已变得不安全。这些编程语言使用户的程序能够操纵系统资源(例如存储体(memory),其中,存储体可以是内存)。因此,操作系统和用户程序可能参与存储体管理,从而导致不一致并导致不安全。

诸如

发明内容

在一个实施例中,提供了一种用于执行安全操作的系统。该系统包括I/O子系统,存储体子系统和处理器。处理器可操作的在可信执行环境(TEE)和普通执行环境(REE)中执行进程。TEE和REE中的每一个都由相应的访问标识符(access identifier,AID)标识,并由相应的系统资源保护单元(system resource protection unit,SRPU)保护。TEE的相应SRPU包括指令,当由相应的处理器执行时,使相应的处理器使用数据结构控制对TEE的访问,该数据结构包括允许的AID和指向允许的AID可访问的存储体位置的指针。其中,在一种可选实施方式中,存储体可以是内存。存储体子系统可以是内存子系统。后续实施例是以“内存”来描述,本领域技术人员可以理解的是,后续实施例中的“内存”可以修改为“存储体(memory)”来实施本发明。

在另一个实施例中,提供了一种用于由包括SRPU的系统执行安全操作的方法。该方法包括目标实体的目标SRPU接收指示源AID,目标AID以及要访问的目标实体的存储体位置的访问请求。源AID被指派给包括源SRPU的源实体,并且目标AID被指派给目标实体。该方法进一步包括:目标SRPU基于包括允许的AID和指向允许的AID可访问的存储体位置的指针的数据结构中的信息,确定是允许还是拒绝访问请求。该方法进一步包括:至少当源AID不是允许的AID之一时拒绝访问请求。源实体和目标实体是至少包括由多个处理器提供的TEE和REE,I/O子系统,存储体子系统中一个或者多个的系统实体。每个系统实体由相应的AID标识,并由相应的一个SRPU保护。其中,在一种可选实施方式中,存储体可以是内存。存储体子系统可以是内存子系统。

本发明实施例提供的执行安全操作的系统以及系统执行安全操作的方法,能够根据数据结构中的信息,有效的控制对目标实体或者TEE的访问。

通过结合附图阅读以下对具体实施例的描述,其他方面和特征对于本领域普通技术人员将变得显而易见。

附图说明

在附图的图中,通过示例而非限制的方式示出了本发明,在附图中,相似的附图标记指示相似的元件。此外,当结合实施例描述特定的特征,结构或特性时,可以认为在本领域技术人员的知识范围内可以结合其他实施例来实现这种特征,结构或特性,无论该结合是否被明确的描述。

图1示出了示例系统,在该示例系统中本发明实施例可以运作。

图2示出了根据一个实施例的由系统资源保护单元(system resourceprotection unit,SRPU)使用的数据结构。

图3A,3B和3C示出了根据一个实施例的用于构建图2的数据结构的信息。

图4是示出根据一个实施例的由SRPU执行的操作的流程图。

图5是示出根据一个实施例的用于初始化访问标识符(access identifier,AID)的过程的流程图。

图6是示出根据一个实施例的用于在运行期间创建新AID的过程的流程图。

图7是示出了根据一个实施例的用于在运行期间(runtime)撤销现有AID的过程的流程图。

图8是示出了根据一个实施例的用于禁止AID访问的过程的流程图。

图9是示出根据一个实施例的系统执行安全操作的方法的流程图。

具体实施方式

在下面的描述中,阐述了许多具体细节。然而,应当理解,可以在没有这些具体细节的情况下实践本发明的实施例。在其他情况下,未详细示出公知的电路,结构和技术,以免混淆对本说明书的理解。然而,本领域的技术人员将理解,可以在没有这种具体细节的情况下实践本发明。本领域普通技术人员在本文描述的技术下,将能够实现适当的功能而无需过度的实验。

本发明的实施例提供了用于內存访问和进程执行的安全方案。该安全方案由位于系统中多个系统实体(也称为“实体”)中的多个系统资源保护单元(system resourceprotection unit,SRPU)实施。系统实体包括子系统,执行环境,处理或协作处理模块以及系统中的其他组件。系统实体的示例包括但不限于:可信执行环境(trusted executionenvironment,TEE),普通执行环境(rich execution environment,REE),I/O子系统,內存子系统和协作处理模块。每个系统实体包括软件元素以及底层固件和硬件元素。每个系统实体都被指派唯一的访问标识符(access identifier,AID)和用于访问內存和I/O的內存地址空间。每个系统实体还包括SRPU,该SRPU基于请求的內存地址,源AID和目标AID来允许或拒绝访问请求。该安全方案具有高度可扩展性。通过在每个系统实体中使用SRPU,系统的安全性可以随着系统的大小而扩展。

在一个实施例中,本文描述的安全方案可以应用于位于半导体芯片上的系统,例如片上系统(System-on-a-Chip,SoC)。然而,应当理解,本文描述的安全方案也适用于位于一个以上(more than one)芯片上的系统。系统的示例包括但不限于计算和/或通信设备(例如,智能手机,平板电脑,笔记本电脑,台式机,服务器,网关,物联网(Internet-of-Thing,IoT)设备,可穿戴设备,信息娱乐(infotainment)设备,游戏设备等)。

图1示出了示例系统100,在示例系统100中可以运行本发明的实施例。系统100包括多个系统实体,例如TEE_1,TEE_2,TEE_3,REE_1,REE_2,I/O子系统106和內存子系统107,它们均经由总线190或另一种互连方式耦接。应当理解,系统100可以包括任何数量的TEE和REE,并且这些TEE和REE可以被任何中央处理单元(central processing unit,CPU),处理器核以及协作处理器(co-processor)主管,其中,协作处理器例如图形处理单元(graphicsprocessing unit,GPU),数字处理单元(digital processing unit,DSP),人工智能(AI)处理器之类。TEE_1和TEE_2是分别由CPU_1和CPU_2主管的可信执行环境,更具体地,TEE_1由CPU_1固件和硬件121主管以及TEE_2由CPU_2固件和硬件122主管。处理器可以主管一个以上的相同类型的执行环境(例如,两个或多个TEE,或者两个或多个REE),或一个以上的不同类型的执行环境(例如,TEE和REE的组合)。例如,CPU_2固件和硬件122主管TEE_2和REE_2两者。而且,系统100包括两个协作处理模块103和105,I/O子系统106和內存子系统107。尽管在图1中示出了特定数量的系统实体,但是应当理解,系统100可以包括:任何数量的CPU,执行环境,协作处理模块和子系统。

系统100中的每个系统实体被指派了存储在相应的AID寄存器中的唯一的AID(例如AID1-AID7)。在一个实施例中,AID由系统启动和AID初始化(system boot and AIDinitialization,SBAI)单元181生成。在一个实施例中,SBAI单元181是TEE(例如,TEE_1)中的可信进程,并且由系统100中的多个CPU中的一个(例如CPU_1)执行。在一个实施例中,SBAI单元181可以包括随机数产生器(random number generator),以在系统100通电(power on)时产生AID。在一个实施例中,每个AID可以是一系列随机数。

每个系统实体包括对应的SRPU(例如SRPU 151-157)。在一个实施例中,每个SRPU包括硬件组件和软件组件的组合以实施安全的內存访问。每个SRPU都包含数据结构,以跟踪允许访问分配给该SRPU所对应的系统实体的內存位置的AID。本文中的术语“数据结构”是指表(table),目录(list)和/或其他数据组织的集合。稍后将结合图2提供有关数据结构的更多详细信息。

在一个实施例中,数据结构由调度器191构建,调度器191可以是TEE(例如TEE_1)中的可信进程,并由系统100中的多个CPU中的一个(例如CPU_1)执行。调度器191调度任务并将任务(例如,进程和/或可信进程)指派给系统实体或跨多个系统实体。例如,调度器191可以将任务的进程分配给多个系统实体,例如多个TEE或多个REE。调度器191配置这些多个系统实体的数据结构,以允许在多个系统实体之间进行访问以执行任务。如图1所示,系统100可以包括单个SBAI单元181和单个调度器191。

在一个实施例中,每个TEE包括相应的监视器(例如,监视器171、172或173)。监视器171-173可以执行多个TEE之间的通信以允许多个TEE彼此通信。在其他特征中,每个监视器171-173可以确定对自己的主管实体(例如,TEE_1是监视器171的主管实体)的攻击是否已经发生或可能已经发生。在检测到攻击或潜在攻击时,监视器171-173可以请求调度器191撤消受攻击实体(即,被攻击实体)的AID。撤销AID可以使被攻击实体与其他系统实体隔离。当攻击的威胁被消除时,被攻击实体可以稍后重新加入系统100。

协作处理模块103和105中的每一个可以包含一个或多个TEE,REE,两者的组合,或者既不包含TEE,也不包含REE。在此示例中,协作处理器固件和硬件123主管TEE_3,协作处理器固件和硬件125主管REE_1。TEE_3被指派了AID3,并且具有对应的SRPU 153,以及REE_1被指派了AID5,并且具有对应的SRPU 155。

I/O子系统106可以包括诸如显示器,照相机,扬声器电话,触摸板(touchpad),网络接口,射频(radio-frequency,RF)组件等的I/O设备。I/O子系统106为系统100提供对诸如公共网络,专有(proprietary)网络,无线网络,有线网络或以上的任何组合的网络的访问,例如,蜂窝网络,因特网,广域网,Wi-Fi网络,局域网(local area network),个人局域网(personal area network)等。I/O子系统106可以包含一个或多个TEE,REE,或者两个的组合,或者既不是TEE也不是REE。在该示例中,为I/O子系统106指派了AID(例如,AID6),并且I/O子系统具有由I/O子系统固件和硬件126主管的对应SRPU156。I/O子系统106具有分配的內存地址空间(例如,I/O內存116),其可以是內存映射的I/O,该內存映射的I/O的位置由內存页地址来描述。可替换地,I/O內存116可以包括由各个缓冲区指针所标识的一组I/O缓冲区。

內存子系统107包括被统称为內存117的內存设备(例如,诸如动态随机存取存储器(dynamic random access memory,DRAM)设备,静态随机存取存储器(static RAM,SRAM)设备的RAM,和/或其他易失性或非易失性存储器设备)。內存子系统107被指派了AID(例如,AID7)并且具有相应的SRPU157。在一个实施例中,SRPU 157可以是控制对內存117的安全部分的访问的內存控制逻辑(未示出)的一部分。

系统100的內存地址空间可以分配给一些或所有系统实体。例如,可以为TEE_1內存111,TEE_2內存112,REE_2內存113,TEE_3內存114,REE_1內存115,I/O內存116和內存117分别指派內存地址空间的不同部分。尽管內存111-117被示为单独的块,但是內存111-117中的一些可以位于相同的物理內存设备中。对每个內存111-117的访问分别由相应的SRPU151-157保护。內存地址空间也可以称为系统资源。

在图1的实施例中,CPU_1和CPU_2执行多个操作系统。可信操作系统101和102是安全的操作系统,分别管理TEE_1和TEE_2的系统资源。普通的操作系统(Rich OS)104(例如

安全用户应用可以在TEE中由系统100执行,例如,通过CPU_1和/或CPU_2。安全用户应用可以包括一个或多个可信进程161和162。在一个实施例中,在TEE中为每个安全用户应用分配AID别名,该别名可以从TEE的AID获得的。例如,TEE_2中的可信OS 102可以从AID2(TEE_2的AID)生成AID别名,并将每个AID别名指派给在TEE_2中运行的安全用户应用。可信OS 102还可以为每个安全用户应用生成访问控制信息,以指示內存地址空间分配和对安全用户应用的访问限制。在TEE_2的示例中,SRPU 152使用每个应用的访问控制信息来确定源实体是否可以访问TEE_2中安全用户应用的已分配的內存地址空间。在一个实施例中,SRPU152首先使用数据结构(例如,将在图2中描述的数据结构200)来确定是否允许源实体访问目标实体(例如,TEE_2)。如果根据数据结构允许源实体访问TEE_2,则SRPU 152还根据目标用户应用的访问控制信息,确定源实体是否可以访问TEE_2中目标用户应用的內存地址空间。

这样,由任何TEE中的用户应用所拥有(例如,分配给该用户应用的)的系统资源完全属于该用户应用,并且不能被同一TEE,其他TEE或REE中的任何其他应用访问。在一个实施例中,系统资源仅在其执行期间被分配给用户应用。该分配在执行用户应用后被释放。当用户应用驻留在多个TEE中时,多个TEE协作以确保跨分配给该用户应用的系统资源进行连续访问。这些分配的系统资源不能由任何TEE或REE中的其他应用访问。在一个实施例中,将这些系统资源分配给用户应用一段时间,然后释放掉。

根据一个实施例,图2示出了图1的每个SRPU 151-157使用的数据结构200。为了便于描述,图1中的TEE_2用作目标实体的示例,该目标实体主管SRPU 152和数据结构200。数据结构200包括AID_allowed表210,该表存储了关于允许访问已分配给目标实体(例如,在此示例中为TEE_2)的內存位置的实体的信息。应当理解,在图1的系统100中的任何TEE,REE,协作处理模块,I/O子系统和內存子系统中可以使用相同或类似的数据结构。

AID_allowed表210包括至少三个字段:AID字段,特权(privilege)字段和指向目录字段的指针。这些字段可以被安排在AID_allowed表210的三列中。然而,可以使用替代设置。SRPU 152使用AID_allowed表210来标识被允许访问TEE_2內存112的实体(通过它们的AID)。对于AID_allowed表210的第一列中的每个AID,还标识了该AID的特权。在一个实施例中,可能存在四个特权级别,从低到高:用户代码/数据的特权级别=0,Rich OS的特权级别=1,虚拟机监视器(hypervisor)的特权级别=2,以及TEE的监视器的特权级别=3。特权级别提供有关请求者(即,发送访问请求的实体)的信息。接收访问请求的目标实体(特别是目标SRPU)可以使用该信息来确定是允许还是拒绝访问请求。

为了描述的简洁和根据本领域的常用用法,在下文中术语“用户数据”用于统称“用户代码和/或数据”。此外,术语“高特权的软件”是指特权比用户数据的特权高的软件。在一个实施例中,“高特权的软件”由大于0的特权级别指示,因为用户数据具有特权级别0。

在一个实施例中,AID_allowed表210的第三列包括指向內存页地址目录的指针。在一个实施例中,內存页地址是物理地址。在另一个实施例中,內存页地址可以是內存地址范围。对于AID_allowed表210的第一列中的每个AID,指针指向內存页地址目录的头部(例如,通过提供內存页地址目录的地址)。例如,AID_allowed表210的第一行包括AID_p,特权等级=0,以及指向list_memory_page 220(也称为“目录220”)的指针Ptr_1。即,允许由AID_p标识的系统实体中的用户进程或应用访问目录220中的內存页。在图2的示例中,目录220包括四个內存页条目,也称为条目(对于为简单起见,仅标记第一条目225)。目录220中的每个条目包括主管AID 235,內存页的地址以及允许/不允许指示符(“A/D指示符230”)。条目(例如,AID_p或AID_q)中的主管AID 235标识拥有(即,被分配了)內存页的实体。A/D指示符230的默认设置是“允许”(例如,由值“1”表示),其指示可访问同一条目中的內存页。用户或系统管理员可以经由应用编程接口(application programming interface,API)来改变A/D指示符230的默认设置以指示“不允许”(例如,由值“0”表示)。“不允许”指示可以应用于来自高特权的实体,软件或进程的访问请求。例如,当针对用户数据的给定內存页的A/D指示符230为0时,目标SRPU拒绝针对该给定內存页的,来自具有特权级别1、2和3的实体的所有访问请求。例如,在AID_allowed表210中,由于AID_s的特权级别(特权级别=3)为3,因此拒绝了对来自AID_s的用户数据的访问请求。因此,可以保护用户数据免受高特权的软件访问。

在云服务场景中,公司A可以从云提供商那里租用系统资源(例如,处理功率,內存,存储设备等),以向公司A的客户提供服务。需要保护客户的数据和代码,防止未经授权的访问,该未经授权的访问包括云提供商的访问。为了防止云提供商的软件访问公司A的客户的数据和代码,公司A的管理员可以向系统指示不允许高特权的软件访问公司A分配的內存地址空间中存储的用户数据。响应于管理员的指示,调度器(例如,图1的调度器191)可以执行AID_disallow操作,以将存储公司A的用户数据的那些內存页的A/D指示符设置为零。

在一个实施例中,SRPU对呼入和呼出访问请求均执行访问检查。例如,当源实体(AID_j)向目标实体(AID_k)发送请求以访问memory_page_k时,如果AID_k和memory_page_k位于源实体的AID_allowed表中,则源实体处的源SRPU会允许该请求。收到请求后,目标实体处的目标SRPU还会检查其AID_allowed表,以确定(1)表中是否有AID_j,(2)与AID_j对应的list_memory_page是否包括memory_page_k,以及(3)AID_j是否具有等于0的特权级别,或者(4)当AID_j的特权级别大于0并且memory_page_k存储用户数据时,memory_page_k的A/D指示符230是否指示“允许”。如果(1),(2)和(3)都为真,或者如果(1),(2)和(4)都为真,则目标SRPU允许对memory_page_k的访问权限。

在一些I/O子系统106(图1)没有被內存映射的实施例中,指向AID_allowed表210中的目录字段的指针可以进一步包括指向list_buffer_pointer的指针。list_buffer_pointer中的每个条目都标识缓冲区,而不是list_memory_page中的内存页。

调度器(例如,图1中的调度器191)可以不定期的更新数据结构200,例如,当改变对系统实体的內存地址空间的分配时。在一些实施例中,可以在一段时间内将系统资源分配给一组TEE,然后将该系统资源释放。分配给REE或一组REE的系统资源可以由TEE或一组TEE临时“借用”(例如,重新分配)。在“借用”期间,只有TEE才能安全地访问系统资源,直到该系统资源被释放为止。此外,数据结构200可以用于指示以下内容:允许TEE访问分配给REE的系统资源,除非得到许可否则REE不能访问分配给TEE的系统资源,以及除非得到许可否则其他TEE不能访问分配给TEE的系统资源。

图3A,3B和3C示出了根据一个实施例的用于构建图2的数据结构200的示例信息。图3A显示了进程控制块(process control block,PCB)的示例,该块由操作系统提供,用于指示每个进程的內存分配(由进程ID(PID)标识)。图3B示出了PID和AID之间的映射。映射可以是一对一或多对一。即,一个PID可以被映射到一个AID,或者许多PID可以被映射到一个AID。图3C示出了连接信息的示例,该连接信息示出了PID之间的依赖性,例如,哪个进程调用了其他哪个进程。连接信息可以由编译器提供。图3C的示例显示了PID之间的线性连接的集合。然而,连接性可以由不同形状的图表示。使用图3A,3B和3C中所示的信息以及每个AID的特权信息,调度器可以为系统中的所有SRPU构建AID_allowed表。

图4是示出根据一个实施例的由SRPU执行的操作的流程图。具体地,这些操作由源实体处的源SRPU和目标实体处的目标SRPU执行,其中源实体是发送访问请求的系统实体,目标实体是接收访问请求的系统实体。此外,源实体由源AID标识,并且目标实体由目标AID标识。源SRPU和目标SRPU可以执行从虚拟地址到相应物理地址的地址转换,以确定要访问的內存位置。

在步骤410,源SRPU检测到来自源实体的访问分配给目标实体的內存位置的访问请求。在步骤420,源SRPU在源实体的AID_allowed表中检查与目标AID相对应的內存访问信息。在步骤430,源SRPU确定源实体是否可以访问分配给目标实体的內存位置;例如,如果目标AID和要访问的內存位置在AID_allowed表中,则允许访问。如果源SRPU确定不允许该访问请求,则在步骤440拒绝访问请求。如果源SRPU确定允许该访问请求,则在步骤450,源实体将该访问请求发送给目标实体。

在步骤460,目标SRPU在目标实体的AID_allowed表中检查与源AID相对应的內存访问信息。在步骤470中,基于该信息,目标SRPU确定源实体是否可以访问分配给目标实体的內存位置,例如,如果源AID和要访问的內存位置在AID_allowed表中,则允许访问。否则,确定不允许该访问。另外,如果源AID的特权级别大于0并且对应于该內存位置的A/D指示符为0(“不允许”),则访问可能被禁止,其中,该內存位置存储用户数据。如果目标SRPU确定拒绝访问请求,则它在步骤480拒绝访问请求。如果目标SRPU确定允许访问请求,则它在步骤490中允许对目标实体的访问请求。

图5是示出根据一个实施例的AID初始化过程500(即,AID_init)的流程图。还参考图1,当系统100通电时,SBAI单元181在步骤510接收通电指示。响应于该指示,在步骤520,SBAI单元181产生K个随机数,该随机数用于初始化K个AID寄存器,其中K是系统实体的数量。在初始化AID之后,新的系统实体可以被添加到系统100并且现有的系统实体可以被移除,如将分别结合图6和图7来描述。

图6是示出根据一个实施例的在运行期间创建新AID的过程600(即,AID_dynamic)的流程图。在步骤610,SABI单元181接收用于为系统实体创建新的AID的请求。在步骤620,SABI单元181生成新的AID,并将新的AID分配给系统实体的AID寄存器。在步骤630,调度器191为系统实体建立AID_allowed表,包括特权级别和指向与AID_allowed表中列出的AID相对应的內存页的指针。

图7是流程图,示出了根据一个实施例的在运行期间撤销现有AID的过程700(即,AID_revoke)。在步骤710,TEE中的监视器检测到对TEE的攻击。该TEE也称为受攻击实体。在步骤710处监视器请求调度器执行AID_revoke。响应于该请求,在步骤720调度器从系统中所有SRPU使用的所有AID_allowed表中删除被攻击实体的AID以及与被攻击实体的AID相对应的内存页面条目。

图8是示出了根据一个实施例的,禁止来自源实体的访问请求的过程800(即,AID_disallow)的流程图。在过程800中,A/D指示符被设置为指示并用于确定是否允许高特权的软件访问目标实体的用户数据。

在步骤810,调度器接收禁止高特权的软件访问目标实体的用户数据的指示。高特权的软件由源AID标识的源实体执行。在一个实施例中,用户或管理员可以经由API提供不允许访问系统的指示。在步骤820,调度器通过将与源AID相对应的A/D指示符设置为0,对目标实体的数据结构(称为“目标数据结构”)执行AID_disallow。具体地,AID_disallow改写(overwrite)对应于目标数据结构中源AID的A/D指示符的默认设置。例如,默认设置可以为1以指示“允许”,而新设置可以为0以指示“不允许”。目标SRPU至少部分地基于A/D指示符的设置来控制来自高特权软件的访问。在步骤830,目标SRPU基于与源AID和所请求的内存位置相对应的A/D指示符以及源AID的特权来确定是否不允许访问请求。例如,访问请求可以指示(源AID,目标AID,所请求的memory_page_address)。目标SRPU从目标数据结构中发现源AID的特权级别=3,所请求的memory_page_address的A/D指示符为0。因此,SRPU拒绝了访问请求,以保护用户数据免受高特权软件的访问。

图9是根据一个实施例的系统执行安全操作的方法900的流程图。该系统包括多个SRPU。作为示例,方法900可以由图1的系统100执行。具体地,可以通过图1的SRPU 151-157来执行。

当目标实体的目标SRPU接收到指示源AID,目标AID和要访问的目标实体的内存位置的访问请求时,方法900从步骤910开始。将源AID分配给包括源SRPU的源实体,并且将目标AID分配给目标实体。在步骤920,目标SRPU基于包括允许的AID和指向允许的AID可访问的内存位置的指针的数据结构中的信息,来确定是允许还是拒绝访问请求。在步骤930,至少在源AID不是允许的AID之一时,目标SRPU拒绝访问请求。

参照方法900,源实体和目标实体是至少包括I/O子系统,内存子系统以及由多个处理器提供的TEE和REE的系统实体。每个系统实体由相应的AID标识,并由相应的一个SRPU保护。在一些实施例中,系统实体还包括一个或多个协作处理模块,每个协作处理模块由对应的协作处理器执行。在一个实施例中,基于TEE中的安全用户应用的访问控制信息,TEE的对应的SRPU可操作为拒绝TEE和REE中的其他用户应用访问分配给安全用户应用的内存地址空间。

在一个实施例中,包括允许的AID和指向允许的AID可访问的内存位置的指针的数据结构(例如,图2的数据结构200)还包括每个允许的AID的特权级别。多个允许的AID可访问的每个内存位置都由A/D指示符标记,以指示该内存位置是否可由具有特权比用户代码和数据特权高的进程访问。

可以理解的是,以上是以“存储体”为“内存”来举例描述本发明,本发明不限于此。

已经参考图1的示例性实施例描述了图4-9的流程图的操作。但是,应当理解,图4-9的流程图的操作可以由除了图1的实施例之外的实施例来执行,以及图1的实施例可以执行与参考流程图所讨论的操作不同的操作。尽管图4-9的流程图显示了由本发明某些实施例执行的特定操作顺序,但应理解,这种顺序是示例性的(例如,替代实施例可以按不同顺序执行操作,组合某些操作,重叠某些操作等)。

在此已经描述了各种功能组件或块。如本领域技术人员将理解的,功能块将优选地通过电路(在一个或多个处理器和编码指令的控制下操作的专用电路或通用电路)来实现。该电路典型的包括被配置为根据本文描述的功能和操作来控制电路的操作的晶体管。

虽然已经根据几个实施例描述了本发明,但是本领域技术人员将认识到,本发明不限于所描述的实施例,并且可以在所附权利要求的精神和范围内进行修改和变型来实施。因此,该描述应被认为是说明性的而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号