当前位置: 首页 > 专利查询>ARM有限公司专利>正文

受保护的功能调用制造技术

技术编号:2824135 阅读:225 留言:0更新日期:2012-04-11 18:40
将存储器地址空间划分成多个域,并使用指令访问控制电路来检测当提取要执行指令所开始的存储器地址时已经跨过域边界和变更了域,在此情况中触发检查以确保新域内的指令是被允许形式的允许的指令。可以将允许的指令设成是空操作指令,而不是针对指令访问控制电路的,以便帮助后向兼容。

【技术实现步骤摘要】

本专利技术涉及数据处理系统领域。更具体地来说,本专利技术涉及用于 提高数据处理系统的操作安全的机制。
技术介绍
提升数据处理系统的操作安全正成为重要事宜。例如,数据处理 系统可以用于使用数字版权管理系统来处理受保护数据,例如版权〗呆 护的材料。此类系统可能需要执行安全检查代码并且在通过安全检查 之后才允许继续进一步处理,例如播放版权材料。安全机制可以是密 码检查或许可证检查机制。攻击此类安全机制的/>知形式是尝试绕过 安全程序代码、例如密码检查代码,并在看上去像是已通过安全检查 而继续处理一样的后一点处跳入程序。为了尝试和阻挡此类攻击,公知的是提供例如Intel IA32体系结构中支持的功能选通(flmction gating )和用于表示功能入口点和出口点的特定入口和出口操作码的 机制。但是此类机制存在不利的大量与之相关的附加开销,并且难以 不通过大量重写和重构现有计算机代码来对其进行添加。公知的,要使发布的入口点和出口点在编译时在不同软件模块上 可用。例如,高性能32位微处理器(National Semiconductor NS32532画20/ NS32532陽25/ NS32532-30 High隱Performance 32-Bit Microprocessor May 1991)描述一种系统,具有允许程序员在模块之 间进行调用的ENTER和EXIT指令,它们是各自权限中的不同程序 实体。其目的在于将才莫块加载到物理存储器中运行时确定的地址处,但是仍提供允许编译时建立功能在每个模块内的的相对地址。在运行 时,OS在存储器中建立并维护链接表,这些链接表将运行时模块位置与功能在模块内的相对地址组合来提供生成(yield)绝对调用地址。VAX-ll体系结构参考手册(VAX-ll Architecture Reference Manual EK-VAXAR-RM-001, 20 May 1982 (Revision 6.1))描述一种具 有过程调用指令的系统。使用三个指令来实现标准过程调用接口。两 个指令实现对过程的CALL;第三个指令实现匹配RETURN。 CALLG 指令在任意位置调用具有自变量列表现货(actuals)的过程。CALLS指 令在堆栈上调用具有自变量列表现货的过程。当CALLS之后返回时, 自动从堆栈移除此列表。这两个调用指令指定正在^皮调用的过程的入 口点的地址。入口点假定由过程的指令之前的称为入口掩码的字构 成。过程通过执行RET指令而终止。.系统要求在入口点处存在入口掩 码。该入口必须根据要求的对齐来进行入口掩码(entry mask)指定子过程的寄存器使用和溢出启用例 如,16位字,其中位O-ll屏蔽标记为IV和DV的rO-rll、 12-13、 14 和15(整数和小数点溢出启用)。在CALL时,将堆栈与长字边界对齐,PSW中的诱捕启用设为 已知状态以确保被调用的过程的行为一致。分别根据入口掩码的位14 和15来影响整数溢出启用和小数点溢出启用。浮点数下溢启用被清除。RET指令将位11至0指定的寄存器Rll 至Rfl保存在堆栈上,并将其恢复。此外,CALL指令始终预留PC、 SP、 FP和AP,并由RET指令恢复它们。Budiu、 Erlingsson和Abadi所著的基于软件的保护的体系结构 支持,,(Architectural Support for Software-Based Protection, ASID'06 October 21, 2006)公开通过添加标记(cfilable)、已检查的跳 转(checked jump)指令和新寄存器cfi—register来扩充CPU体系 结构的安全提高。为了执行已检查的跳转,软件用由已检查的跳转 指令后续调用的所需功能的入口点处期望在cfilable中发现该标签的 值来加载cfi—register。如果在已检查的跳转期间发现cfi_register 和cfilable中的值匹配,则将cfi—register中的值归零,然后允许执4亍继续进行。如果在已检查跳转期间cfi—register包含非零值,则产 生异常。这将调用位置处的必需数据标记的理念延伸在安全控制中使 用釆用这些方法的情况下,当尝试将功能入口点处没有实施cfilable 值的传统软件与预设有这些值存在的较新式软件结合时将遇到问题。 因此,整个系统软件都将需要同时升级,才能利用此新功能,这并非 非常可行,因为可能不存在单个公司对所有必需的源代码具有访问 权。
技术实现思路
从本专利技术的一个方面来看,本专利技术提供用于处理数据的设备,所 述设备包括可利用存储器地址来寻址的存储器,存储器地址具有存储器地址 空间内的值,所述存储器地址空间具有至少第一域和笫二域,域包含 一组存储器地址;耦合到所述存储器的指令提取电路,该指令提取电路可用于使用 所述存储器地址空间内的相应存储器地址来提取一系列程序指令;耦合到所述指令提取电路的指令访问控制电路,该指令访问控制 电路响应与所述第 一域内的第 一存储器地址关联的第 一指令的提取, 然后响应与所述第二域内的笫二存储器地址关联的第二指令的提取 来执行如下操作(i) 根据所述第二指令的指令代码确定所述第二指令是否是允许 的指令,其中在访问与所述第一域关联的指令之后开始执行与所述第 二域关联的指令时允许执行该允许的指令;(ii) 如果所述第二指令不是允许的指令,则触发访问违规响应;其中所述存储器地址空间包括多个域,每个域具有与之关联的相应可 编程能力,所述可编程能力指示至其^M或的域转4灸中的哪些域转换需要经过允许的指令检查或不需要经过允许的指令检查。本专利技术技术认识到,在存储尝试进行功能调用的程序指令的存储 器位置与检查功能调用是对进入目标代码的合法入口点执行的必要 性之间存在很强的关系。例如,操作系统常常用于控制与数据处理系 统关联的安全的多个方面,操作系统本身内的功能调用将相对不可能 是造成上述类型的安全威胁的源头。但是,并非操作系统的所有部分 都同样是安全且鲁棒的。因此,从存储操作系统程序指令的鲁棒部分 的那些位置之外的存储器位置处存储的指令对操作系统内的点的功 能调用更可能代表安全威胁,因此证明与添加调用保护机制关联的开 销是合理的。本专利技术技术将重点放在这些潜在的弱点,提供一种机制 来识别从执行第一域内的指令(存储器空间内可能是连续的或非连续 的一组存储器地址)到第二存储器域的改变,以及当检测到此类域改变 时确定所述第二域内的第一指令是允许的指令。因此,要从功能调用(fimction call)目标所在域的外部调用的这些功能调用目标设为与允许 的指令对应。从相应域的外部对其他指令的调用而其他指令不是允许 的指令,这将被检测为访问违规指令并触发访问违规响应。本专利技术技 术提供一种低开销机制,通过将机制重点放在域间调用来提高安全 性。它使用在调用目标位置处要求允许的指令而非数据标记来实现此 目的。本专利技术技术使用少量(即每个指令集一个)的OP代码(例如来自期 望的指令集的NOP代码空间中)来增强安全性,而不要求使用特定分 支指令来工作。而且,本专利技术技术允许目标分支检查代码与非针对分 支目标检查而设计的传统代码之间的协作-其中目本文档来自技高网
...

【技术保护点】
一种用于处理数据的设备,所述设备包括:    可利用存储器地址来寻址的存储器,所述存储器地址具有存储器地址空间内的值,所述存储器地址空间具有至少第一域和第二域,域包含一组存储器地址;    耦合到所述存储器的指令提取电路,所述指令提取电路可用于使用所述存储器地址空间内的相应存储器地址来提取一系列程序指令;    耦合到所述指令提取电路的指令访问控制电路,所述指令访问控制电路响应与所述第一域内的第一存储器地址关联的第一指令的提取,然后响应与所述第二域内的第二存储器地址关联的第二指令的提取来执行如下操作:    (i)根据所述第二指令的指令代码确定所述第二指令是否是允许的指令,在访问与所述第一域关联的指令之后开始执行与所述第二域关联的指令时允许执行所述允许的指令;    (ii)如果所述第二指令不是允许的指令,则触发访问违规响应;其中:    所述存储器地址空间包括多个域,每个域具有与之关联的相应可编程能力,所述可编程能力指示至其他域的域转换中的哪些域转换需要经过允许的指令检查或不需要经过允许的指令检查。

【技术特征摘要】
GB 2007-4-3 0706491.81.一种用于处理数据的设备,所述设备包括可利用存储器地址来寻址的存储器,所述存储器地址具有存储器地址空间内的值,所述存储器地址空间具有至少第一域和第二域,域包含一组存储器地址;耦合到所述存储器的指令提取电路,所述指令提取电路可用于使用所述存储器地址空间内的相应存储器地址来提取一系列程序指令;耦合到所述指令提取电路的指令访问控制电路,所述指令访问控制电路响应与所述第一域内的第一存储器地址关联的第一指令的提取,然后响应与所述第二域内的第二存储器地址关联的第二指令的提取来执行如下操作(i)根据所述第二指令的指令代码确定所述第二指令是否是允许的指令,在访问与所述第一域关联的指令之后开始执行与所述第二域关联的指令时允许执行所述允许的指令;(ii)如果所述第二指令不是允许的指令,则触发访问违规响应;其中所述存储器地址空间包括多个域,每个域具有与之关联的相应可编程能力,所述可编程能力指示至其他域的域转换中的哪些域转换需要经过允许的指令检查或不需要经过允许的指令检查。2. 如权利要求1所述的设备,其特征在于,所述允许的指令是 允许的分支目标指令。3. 如权利要求2所述的设备,其特征在于,所述设备使用多个 程序指令集,每个程序指令集具有至少一个允许的分支目标指令,并 且所述指令访问控制电路确定所述第二指令是否是包含所述第二指 令的所述指令集的所述至少一个允许的分支目标指令的其中之一。4. 如权利要求1所述的设备,其特征在于,由所述设备的除所述指令访问控制电路之外的处理电路来将所述允许的指令作为空操 作指令来处理。5. 如权利要求1所述的设备,其特征在于,所述第一域的所述 可编程能力为所述多个域中的其他域,当所述其他域为所述第二域 时,指示所述指令访问控制电路是否激活以根据所述第二指令是否是 允许的指令来控制访问。6. 如权利要求1所述的设备,其特征在于,所述第二域的所述 可编程能力为所述多个域的其他域,当所述其他域是所述第一域时, 指示所述指令访问控制电路是否激活以根据所述第二指令是否是允 许的指令来控制访问。7. 如权利要求1所述的设备,其特征在于,每个域的所述可编 程能力包括与所述域关联的程序指令是否能够改动所述多个域的所 述可编程能力。8. 如权利要求1所述的设备,其特征在于,所述指令访问控制 电路还确定所述第一指令是否是允许的分支指令,以及如果所述第一 指令不是允许的分支指令,则触发所述访问违规响应。9. 如权利要求1所述的设备,其特征在于,当所述第一指令与 所述第二指令之间发生异常时,保存状态寄存器存储指示所述第 一域 的数据,以便从处理所述异常返回时,所述指令访问控制电路能够识 别所述第 一指令的所述第 一域以便控制对所述第二指令的访问。10. 如权利要求l所述的设备,其特征在于,所述存储器地址空 间是与所述存储器关联的虛拟存储器地址空间,所述第一域和所述第 二域是所述虚拟存储器地址空间内的域,存储器管理电路将虚拟存储 器地址映射到物理存储器地址。11. 如权利要求10所述的设备,其特征在于,指示哪些虚拟存 储器地址对应于哪些域的域指定数据被存储在所述存储器管理电路 中。12. 如权利要求l所述的设备,其特征在于,指示所述多个域的所述可编程能力的数据被存储在一个或多个可编程配置寄存器内。13. 如权利要求l所述的设备,其特征在于,所述访问违规响应 是如下的其中之一执行域违规异常处理代码; 存储器异常中止;执行访问违规异常处...

【专利技术属性】
技术研发人员:D克肖LD史密斯DJ西尔RR格里森思怀特
申请(专利权)人:ARM有限公司
类型:发明
国别省市:GB[英国]

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

1
相关领域技术
  • 暂无相关专利