一种内存访问隔离方法技术

技术编号:16886050 阅读:25 留言:0更新日期:2017-12-27 03:51
本发明专利技术涉及一种内存访问隔离方法,方法包括:获取任务请求的内存页框物理地址和CPU运行时的任务信息,运行时的任务信息包括:任务号和任务运行环境信息;通过查询页框属性表得到页框物理地址对应的任务信息;页框属性表中包含多个条目,每个条目记录了该页框地址对应的任务信息和访问控制信息;通过比较CPU运行时的任务信息和查询页框属性表得到的任务信息判断是否允许该任务访问页框。本发明专利技术能借助硬件,完全隔离不同CPU运行环境下,操作系统对于用户任务的内存访问以及任务间的内存互访。还能与内存加密技术共同使用,如果结合使用,则能做到隔离了操作系统对普通任务访问的同时还能对内存加密,能取得更好的防止软件和硬件攻击的效果。

A memory access isolation method

The invention relates to a memory access isolation method, method comprises the following steps: acquiring task request memory pages task information frame physical address and the CPU runtime, the runtime task information includes: task and task environment information; through the query page frame attribute table task information page frame the physical address of the corresponding page frame; the attribute table contains multiple entries, each entry records the page frame address corresponding to the task information and access control information; through the task information and query page CPU runtime frame attribute table task information is judged whether to allow the task to access the page frame. With the help of hardware, the invention can completely isolate the memory access of the operating system for user tasks and the exchange of memory visits between tasks under different CPU operating environments. It can also be used together with the memory encryption technology. If used together, it can isolate the operating system from accessing common tasks, and encrypt the memory at the same time, which can achieve better effect of preventing software and hardware attacks.

【技术实现步骤摘要】
一种内存访问隔离方法
本专利技术涉及物理内存访问安全隔离方法,尤其是涉及一种基于ARM平台的安全和非安全运行环境下的内存访问隔离方法。
技术介绍
ARM公司的TrustZone技术是在ARMCortex-A和Cortex-MSOC中应用的一种安全技术。TrustZone技术通过硬件方式把处理器CPU,外设,内存空间和二级缓存等划分为安全和非安全环境。属于非安全环境的软件和硬件不能访问属于安全环境下的软件和硬件。属于安全环境下的软件和硬件可以访问非安全环境的软件和硬件。安全环境下通常运行的是体量很小的操作系统和轻量的应用程序或服务。非安全环境下运行的是普通操作系统和通常的应用软件。安全环境和非安全环境的切换通过硬件指令完成,延迟很小,通常为几个时钟周期。主要不足是1)对于运行在安全环境下的程序缺乏保护,如果运行于安全环境的操作系统有漏洞,那么在操作系统管理下的应用程序就没有安全性可言。2)一个应用只能划分为安全环境和非安全环境两部分,划分粒度不够精细。3)安全运行环境下内存没有加密保护。
技术实现思路
本专利技术主要针对一种内存隔离方法,适用于解决前述问题与已知技术的其他问题、缺点与限制。本专利技术设计了一种物理内存访问安全隔离方法,能使得运行在ARMTrustZone安全环境或非安全环境下的操作系统不能访问用户程序的物理内存,且能与加密技术结合使用,加密整个安全运行环境内存。增强系统防止软件攻击和硬件攻击的能力。为实现上述目的,本专利技术提供了一种内存隔离方法,方法包括:获取任务请求的内存页框物理地址和CPU运行时的任务信息,任务信息包括:任务号和任务运行环境信息;任务运行环境包括:安全环境和非安全环境;通过查询页框属性表得到内存页框物理地址对应的任务信息;页框属性表中包含多个条目,每个条目记录了该页框地址对应的任务信息;通过比较CPU运行时的任务信息和查询页框属性表得到的任务信息判断是否允许该任务访问内存页框。优选地,查询页框属性表具体包括:根据所述内存页框物理地址、内存基址、页框大小、页框属性表条目大小和页框属性表基址,得到所述内存页框物理地址对应的页框属性表条目,从而取得对应的任务信息。优选地,判断具体包括:判断CPU运行时的任务信息中的任务运行环境信息与查询页框属性表得到的任务信息中的任务运行环境信息是否匹配;在两者不匹配的情况下拒绝访问。优选地,判断还包括:在CPU运行时的任务信息中的任务运行环境信息与查询页框属性表得到的任务信息中的任务运行环境信息相匹配的情况下:判断查询页框属性表得到的任务信息是否为共享页框标识;判断查询页框属性表得到的任务信息中的任务号和CPU运行时的任务信息中的任务号是否相等;在上述任意判断为是的情况下,允许访问,否则拒绝访问。优选地,页框属性表条目还记录了访问控制信息,在CPU运行时的任务信息中的任务号与查询页框属性表得到的任务信息中的任务号相匹配的情况下:判断查询页框属性表得到的访问控制信息和CPU运行时的访问控制信息是否相等;在上述判断为是的情况下,允许访问,否则拒绝访问。优选地,页框属性表的存储位置包括:主内存中划分出的一段连续或非连续物理内存,或者独立于主内存外的一块高速存储器。优选地,方法通过页框访问控制器执行,页框访问控制器是一个硬件电路模块。优选地,还包括步骤:初始化页框属性表和更新页框属性表。优选地,初始化页框属性表包括,当系统冷启动或重启后,根据页框属性表的配置,由安全监控程序将页框表中的内容初始化为默认值。优选地,更新页框属性表包括,当安全环境或非安全环境的操作系统删除、增加或修改页表条目后,通知安全监控程序,安全监控程序对页框地址对应的页框属性表条目写入更新后的任务信息。本专利技术能借助硬件,完全隔离安全和非安全环境下操作系统对于普通任务的内存访问以及任务间的内存互访。本专利技术还能与内存加密技术共同使用,如果和内存加密技术结合使用,则能做到,隔离了安全或非安全环境下操作系统任务对普通任务的访问的同时还能对内存加密。能取得比ARMTrustZone更好的防止软件和硬件攻击的效果。附图说明图1为本专利技术实施例提供的一种物理内存访问隔离方法流程图;图2为根据本专利技术实施例实现系统安全隔离方法的结构示意图;图3为图1所示方法判断流程图。图4为根据本专利技术实施例实现页框属性表查询示意图。具体实施方式下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。如图1所示,为本专利技术实施例提供的一种内存隔离方法流程图。方法包括:步骤101获取任务请求的内存页框物理地址和CPU运行时的任务信息;步骤102通过查询页框属性表得到内存页框物理地址对应的任务信息;步骤103通过比较CPU运行时的任务信息和查询页框属性表得到的任务信息判断是否允许该任务访问内存页框。下面结合图1的流程图与图2的系统结构图,详细描述本专利技术实施例的执行。如图2所示,为根据本专利技术实施例实现系统安全隔离方法的结构示意图。本专利技术优选在ARMTrustZone平台上应用。在ARMTrustZone芯片级系统SoC中,中央处理器CPU有两种任务运行环境:安全环境和非安全环境。在不同环境下的操作系统中,拥有页表以及多个用户任务和系统任务。不同的环境切换由安全监控程序实现。当一个任务发起一个内存访问请求时,CPU中的地址管理单元会将请求的虚拟地址转换为物理地址,页框访问控制器根据得到的页框物理地址查询页框属性表,进而得到对应的任务信息。页框访问控制器根据CPU当前的任务运行环境信息和任务号与查询结果进行比较从而判断是否允许该任务对页框访问。本专利技术设计了一个物理内存页(页框)属性表即页框属性表(PageFrameAttributeTable,简称页框表)和页框访问控制器。页框属性表从硬件设计上,可以设计为从主内存中划分出的一段连续或非连续物理内存,也可以设计为独立于主内存外的一块高速内存,用来记录每个页框和系统中每个任务(包括用户和操作系统任务)的对应关系。页框访问控制器是一个硬件电路模块,该模块能根据给定页框地址查询页框表。页框属性表中包含多个条目,每个条目记录了该页框地址对应的任务信息和访问控制信息;任务信息包括:任务号和任务运行环境信息。本专利技术一个实施例以任务号TID作为页框表条目的主要内容,从而建立起页框和任务间的对应关系。假设,TID的长度为24位,那么页框表的条目就可设计为长度为4个字节即32位的存放了TID和安全环境或非安全环境位NS的形式。当然,可以扩展页框表条目的长度,增加其他属性。具体页框表的条目值代表的含义,可根据系统的实际需求来设计。作为示例,在一个实施例中,按照下表规则来设计(1.操作系统或普通任务访问的页框表条目:第0到23位为TID号,第24位到30位为0,第31位为1表示安全环境,为0表示非安全环境。2.安全监控程序访问的页框表条目:所有32位全为1):页框条目值含义0x80000000该页框是安全环境共享页框0x00000000该页框是非安全环境共享页框0xFFFFFFFF该页框仅供安全监控程序(securemonitor)访问0x80xxxxxx该页框只能在安全环境下被TID号为xxxxxx的任务访问0x00xxxxxx该页框只能在非安全环境下被TID号为xxxxxx的任务访问在步骤103本文档来自技高网...
一种内存访问隔离方法

【技术保护点】
一种内存访问隔离方法,其特征在于,方法包括:获取任务请求的内存页框物理地址和CPU运行时的任务信息,所述任务信息包括:任务号和任务运行环境信息;所述任务运行环境包括:安全环境和非安全环境;通过查询页框属性表得到内存页框物理地址对应的任务信息;所述页框属性表中包含多个条目,每个条目记录了该页框地址对应的任务信息;通过比较CPU运行时的任务信息和查询页框属性表得到的任务信息判断是否允许该任务访问内存页框。

【技术特征摘要】
1.一种内存访问隔离方法,其特征在于,方法包括:获取任务请求的内存页框物理地址和CPU运行时的任务信息,所述任务信息包括:任务号和任务运行环境信息;所述任务运行环境包括:安全环境和非安全环境;通过查询页框属性表得到内存页框物理地址对应的任务信息;所述页框属性表中包含多个条目,每个条目记录了该页框地址对应的任务信息;通过比较CPU运行时的任务信息和查询页框属性表得到的任务信息判断是否允许该任务访问内存页框。2.根据权利要求1所述的方法,其特征在于,所述查询页框属性表具体包括:根据所述内存页框物理地址、内存基址、页框大小、页框属性表条目大小和页框属性表基址,得到所述内存页框物理地址对应的页框属性表条目,从而取得对应的任务信息。3.根据权利要求1所述的方法,其特征在于,所述判断具体包括:判断CPU运行时的任务信息中的任务运行环境信息与查询页框属性表得到的任务信息中的任务运行环境信息是否匹配;在两者不匹配的情况下拒绝访问。4.根据权利要求3所述的方法,其特征在于,所述判断还包括:在CPU运行时的任务信息中的任务运行环境信息与查询页框属性表得到的任务信息中的任务运行环境信息相匹配的情况下:判断查询页框属性表得到的任务信息是否为共享页框标识;判断所述查询页框属性表得到的任务信息中的任务号和CPU运行...

【专利技术属性】
技术研发人员:钟大江杜朝晖应志伟方之熙
申请(专利权)人:致象尔微电子科技上海有限公司
类型:发明
国别省市:上海,31

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

1