[发明专利]受保护的功能调用有效
| 申请号: | 200810091321.1 | 申请日: | 2008-04-03 |
| 公开(公告)号: | CN101281459A | 公开(公告)日: | 2008-10-08 |
| 发明(设计)人: | D·克肖;L·D·史密斯;D·J·西尔;R·R·格里森思怀特 | 申请(专利权)人: | ARM有限公司 |
| 主分类号: | G06F9/34 | 分类号: | G06F9/34;G06F21/22 |
| 代理公司: | 中国专利代理(香港)有限公司 | 代理人: | 曾祥夌;张志醒 |
| 地址: | 英国*** | 国省代码: | 英国;GB |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 保护 功能 调用 | ||
技术领域
本发明涉及数据处理系统领域。更具体地来说,本发明涉及用于提高数据处理系统的操作安全的机制。
背景技术
提升数据处理系统的操作安全正成为重要事宜。例如,数据处理系统可以用于使用数字版权管理系统来处理受保护数据,例如版权保护的材料。此类系统可能需要执行安全检查代码并且在通过安全检查之后才允许继续进一步处理,例如播放版权材料。安全机制可以是密码检查或许可证检查机制。攻击此类安全机制的公知形式是尝试绕过安全程序代码、例如密码检查代码,并在看上去像是已通过安全检查而继续处理一样的后一点处跳入程序。为了尝试和阻挡此类攻击,公知的是提供例如Intel IA32体系结构中支持的功能选通(functiongating)和用于表示功能入口点和出口点的特定入口和出口操作码的机制。但是此类机制存在不利的大量与之相关的附加开销,并且难以不通过大量重写和重构现有计算机代码来对其进行添加。
公知的,要使发布的入口点和出口点在编译时在不同软件模块上可用。例如,“高性能32位微处理器”(“National SemiconductorNS32532-20/NS32532-25/NS32532-30 High-Performance 32-BitMicroprocessor”May 1991)描述一种系统,具有允许程序员在模块之间进行调用的ENTER和EXIT指令,它们是各自权限中的不同程序实体。其目的在于将模块加载到物理存储器中运行时确定的地址处,但是仍提供允许编译时建立功能在每个模块内的的相对地址。在运行时,OS在存储器中建立并维护链接表,这些链接表将运行时模块位置与功能在模块内的相对地址组合来提供生成(yield)绝对调用地址。
VAX-11体系结构参考手册(VAX-11 Architecture ReferenceManual EK-VAXAR-RM-001,20 May 1982(Revision 6.1))描述一种具有过程调用指令的系统。使用三个指令来实现标准过程调用接口。两个指令实现对过程的CALL;第三个指令实现匹配RETURN。CALLG指令在任意位置调用具有自变量列表现货(actuals)的过程。CALLS指令在堆栈上调用具有自变量列表现货的过程。当CALLS之后返回时,自动从堆栈移除此列表。这两个调用指令指定正在被调用的过程的入口点的地址。入口点假定由过程的指令之前的称为入口掩码的字构成。过程通过执行RET指令而终止。系统要求在入口点处存在入口掩码。该入口必须根据要求的对齐来进行
入口掩码(entry mask)指定子过程的寄存器使用和溢出启用:例如,16位字,其中位0-11屏蔽标记为IV和DV的rO-r11、12-13、14和15(整数和小数点溢出启用)。
在CALL时,将堆栈与长字边界对齐,PSW中的诱捕启用设为已知状态以确保被调用的过程的行为一致。分别根据入口掩码的位14和15来影响整数溢出启用和小数点溢出启用。
浮点数下溢启用被清除。RET指令将位11至0指定的寄存器R11至Rf1保存在堆栈上,并将其恢复。此外,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中的值归零,然后允许执行继续进行。如果在“已检查跳转”期间cfi_register包含非零值,则产生异常。这将调用位置处的必需数据标记的理念延伸在安全控制中使用
采用这些方法的情况下,当尝试将功能入口点处没有实施cfilable值的传统软件与预设有这些值存在的较新式软件结合时将遇到问题。因此,整个系统软件都将需要同时升级,才能利用此新功能,这并非非常可行,因为可能不存在单个公司对所有必需的源代码具有访问权。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810091321.1/2.html,转载请声明来源钻瓜专利网。





