当前位置: 首页 > 专利查询>杨力祥专利>正文

一种运行时访问控制装置和方法制造方法及图纸

技术编号:30766726 阅读:17 留言:0更新日期:2021-11-10 12:27
本发明专利技术公开了一种运行时访问控制的装置及方法,涉及信息技术,特别是信息安全技术,所述装置包括安全装置和保障装置,所述安全装置基于硬件针对内存区域进行访问控制;所述保障装置基于硬件确保只有在特定状态下才能设置使所述安全装置有效的控制状态数据和执行使所述安全装置有效的特定指令;所述安全装置提供合法跨越内存区域边界的方式,包括执行专用的跨区域转移指令或发生中断/异常时,必须先转移至中转区域,再由此区域中代码进行边界切换并转移至最终的目标地址;特别的,如果二者转移到相同中转区域的共同代码位置,由硬件提供标识信息,以区别转移是由执行跨区域转移指令引起还是由产生中断/异常引起;中断返回也会导致跨区域转移。会导致跨区域转移。

【技术实现步骤摘要】
一种运行时访问控制装置和方法


[0001]本申请涉及信息
,特别涉及一种运行时隔离方法,以及一种运行时访问控制方法及计算装置。本案是针对申请号为:201910278179.X的母案,提出的分案申请。

技术介绍

[0002]现有技术中,特别是现有操作系统和处理器体系架构技术中,对于内存及其使用的设计更多的考虑是紧凑、方便、高效,这样的设计使得各个功能的代码之间有着错综复杂的相互联系,数据几乎没有任何封装,或者仅在高级语言的语法编译阶段具有有限的封装,而在运行时实际上可以不受任何检查的随意访问。
[0003]具体的,对语法的检查只能保证源码中不包含语法所不允许的非法访问,但在运行时,攻击者有可能通过某种手段改变程序的执行序或者是数据访问对象,从而打破语法规则的封装。比如,C++语言规定了类中的私有成员不可被其他类对象访问,但是如果程序被攻击,攻击者在运行时改变了函数的转移目标,就可以打破这种保护。
[0004]特别是对于操作系统内核而言,现有技术的上述缺陷,实质上导致内核空间是平坦的,一旦攻击者借助如果攻击者借助用户态和内核态之间的数据传输,利用内核态代码在传输、处理数据中的设计缺陷,就能够用攻击者准备好的数据几乎任意修改内核的数据、代码,进而发起攻击。
[0005]其中最危险的是攻击导致超越授权,例如:
[0006]1、超越授权读取用户数据(包括内存和外设的数据)。
[0007]2、超越授权写入(包括篡改、删除)用户数据。
[0008]3、超越授权执行系统调用。r/>[0009]4、超越授权执行应用程序。
[0010]一旦攻击者完成了上述动作,同时由于现有操作系统中仅有极为有限的检查机制,攻击者实质上就获得了对计算机任意访问的权限。
[0011]特别是在硬件设计层面,没有从架构层面,在设计的初期就考虑安全问题,更加剧了信息安全风险。现有体系架构的实现,只考虑功能实现、效率提高等使用方面的问题,并没有从体系架构的设计基点开始就专门的考虑安全问题;即便有些设计,如特权级、分页等,客观上在一定程度上为计算的提供了安全保障,但其设计的出发点仍然是为了使用而非安全,这导致安全保障不成体系,进而不足以消除攻击成立所需的必要条件。在攻击条件下,仍然存在重大安全隐患。

技术实现思路

[0012]为了解决现有体系架构的设计初衷没有系统性的考虑安全的问题,本专利技术公开了一种安全装置,在设计基点上,就系统性的解决安全问题,同时优选的,公开一种保障装置,来保障即便在攻击状态下,安全装置也能保持有效。
[0013]进一步的,考虑到技术方案的可实施性,安全装置及保障装置的设计,也最大限度
的与现有硬件体系流水线机制相配合,确保在解决安全问题的同时,不影响流水线的整体设计,进而保证执行效率。
[0014]一种装置,其特征在于:
[0015]包括安全装置,和/或,保障装置;
[0016]所述安全装置基于硬件针对内存区域进行访问控制;所述保障装置基于硬件确保只有在特定状态下才能设置使所述安全装置有效的控制状态数据和执行使所述安全装置有效的特定指令。
[0017]优选的,所述装置可以称为内存系统装置。
[0018]所述安全装置,包括:拦截非法跨越内存区域边界的访问;提供合法跨越内存区域边界的方式。
[0019]所述内存区域边界是指:处理器认定的由内存地址值所构成的区域边界,和/或,处理器认定的由页面标识信息所标定的区域边界。
[0020]所述拦截非法跨越内存区域边界的访问,包括:如果待执行的指令地址超出处理器认定的内存区域边界,处理器报异常;如果数据读写目标匹配的地址超出读写指令对应的内存区域边界,处理器报异常。
[0021]所述提供合法跨越内存区域边界的方式,包括:执行专用的跨区域转移指令或发生中断/异常时,必须先转移至中转区域,再由此区域中代码进行边界切换并转移至最终的目标地址;特别的,如果二者转移到相同中转区域的共同代码位置,由硬件提供标识信息,以区别转移是由执行跨区域转移指令引起还是由产生中断/异常引起;中断返回也会导致跨区域转移。
[0022]所述保障装置,包括:仅在中转区域中,和/或,跨区域转移指令执行,和/或,中断/异常产生,和/或,中断返回时,才能访问确保安全装置有效所需的信息和确保保障装置有效所需的状态数据;仅有跨区域转移指令执行,和/或,中断/异常产生,和/或,中断返回导致跨区域转移。
[0023]优选的,在装置中设置安全功能,和/或,保障功能的开关,如关闭该开关,则装置失效。
[0024]一种安全装置的制作方法,包括:制作边界检查装置的方法和提供合法跨越内存区域边界的方法。
[0025]所述制作边界检查装置的方法包括:制作指令边界检查装置的方法和指令数据边界检查装置的方法。
[0026]所述制作指令边界检查装置的方法包括:由处理器认定当前内存区域范围,并判断待执行指令所在地址是否在此区域范围之内,如在,可正常取址,如不在,处理器报出异常;
[0027]具体的,由处理器认定当前内存区域范围,并判断待执行指令所在地址是否在此范围之内,可以采用多种方法,一种优选的方法为:处理器设置专用存储设施保存当前内存区域边界地址值,在执行指令时,判断处理器的程序计数器的地址值是否在边界范围中,如在,表明没有超出所述范围,如不在,表明超出所述范围;另一种优选的方法为:在内存页面的属性中添加标识信息,处理器记录当前页面标识信息,在执行指令时,判断处理器中程序计数器所存地址所在的页面标识信息是否与当前的页面标识信息一致,如一致,表明没有
超出所述范围,否则表明超出所述范围。
[0028]所述制作数据边界检查装置的方法包括:由处理器认定若干组数据存储区域边界,针对每组数据区域匹配不同的读写指令,在对内存进行读写时,根据不同的读写指令判断操作地址是否在匹配的数据边界中,如在,可正常访问,如不在,则报出异常。设置多组数据区的目的是为了区分程序的数据区、栈区以及用作其他用途的独立数据区。
[0029]具体的,处理器判断数据操作目标是否在匹配边界内,可以采用有多种方法:一种优选的方法为:处理器设置若干组专用存储设施保存不同类型数据区的边界地址值,在执行读写指令时,判断操作目标地址是否在指令匹配的边界范围中,如在,表明没有超出所述范围,如不在,表明超出所述范围;另一种优选的方法为:在内存页面的属性中添加标识信息,处理器记录若干组可访问的数据区域的页面标识信息,在执行读写指令时,判断操作目标地址所在的页面标识信息是否与匹配区域类型的页面标识信息一致,一致表明在可读写数据区域中,否则不在区域中。
[0030]优选的:在安全装置设置开关,在所述开关处在关状态时,不进行指令边界检查和数据边界检查。
[0031]所述提供合法跨越内存区域边界的方法包括:提供专用的跨区域转移指令,执行此类指令时,转移至中转区域;提供专用转移指令,执行此类指令时,完成由中转区域到本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种装置,其特征在于:包括安全装置,和/或,保障装置;所述安全装置基于硬件针对内存区域进行访问控制;所述保障装置基于硬件确保只有在特定状态下才能设置使所述安全装置有效的控制状态数据和执行使所述安全装置有效的特定指令;所述保障装置,包括:仅在中转区域中,或,跨区域转移指令执行,或,中断/异常产生,或,中断返回时,才能访问确保安全装置有效所需的信息和确保保障装置有效所需的状态数据;仅有跨区域转移指令执行,和/或,中断/异常产生,和/或,中断返回导致跨区域转移。2.如权利要求1所述的装置,其特征在于:所述安全装置,包括:拦截非法跨越内存区域边界的访问;提供合法跨越内存区域边界的方式;所述内存区域边界是指:处理器认定的由内存地址值所构成的区域边界,和/或,处理器认定的由页面标识信息所标定的区域边界。3.根据权利要求2所述的装置,其特征在于:所述拦截非法跨越内存区域边界的访问,包括:如果待执行的指令地址超出处理器认定的内存区域边界,处理器报异常;如果数据读写目标的地址超出读写指令匹...

【专利技术属性】
技术研发人员:杨力祥
申请(专利权)人:杨力祥
类型:发明
国别省市:

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

1