[发明专利]本地代码的安全执行有效

专利信息
申请号: 201080021559.2 申请日: 2010-05-15
公开(公告)号: CN102428472A 公开(公告)日: 2012-04-25
发明(设计)人: 鄂尔斯特·哈塞尔斯泰恩尔;克里斯蒂安·克希斯泰特 申请(专利权)人: NXP股份有限公司
主分类号: G06F21/00 分类号: G06F21/00
代理公司: 中科专利商标代理有限责任公司 11021 代理人: 吕雁葭
地址: 荷兰艾*** 国省代码: 荷兰;NL
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 本地 代码 安全 执行
【说明书】:

技术领域

发明涉及从解释程序调用的本地代码(native code)的执行。具体地,本发明涉及作为Java应用程序的一部分的本地机器代码的执行;以及更具体地,涉及Java Card、.NET智能卡或类似环境中的本地代码的执行。

背景技术

本地代码或机器代码指的是针对计算机程序代码的取决于机器的格式。本地代码包括可以由指定处理器或计算体系结构直接执行的指令。因为不同处理器的指令集合不同,所以不能在不同平台上移植本地代码。

一种针对不能移植本地机器代码的解决方案是以一般形式(generic form)分发程序。解释代码就是这种一般形式。解释代码不依赖于机器,因此是可移植的代码。提供解释器以在指定处理器上运行这种代码。解释器是将解释代码的指令转换为指定处理器执行的本地代码的软件。

Java是通常要被解释(并非直接被编译为机器代码)的编程语言的典型例子。Java编译器将Java源代码转换为Java字节码,该Java字节码是不依赖于机器的(非本地的)代码。为了在指定平台上运行该Java字节码,称为Java虚拟机的解释器解释代码,并向处理器提供相应的机器代码指令。Java字节码的增加的移植性的一个缺点在于降低了执行代码的速度。这一部分是由于需要在运行时执行附加的解释步骤,一部分是由于程序员不能针对特定处理器优化代码,而这对于本地代码通常是可能的。

但是,Java的可移植性使得其广泛用于多种应用。一种这样的应用是智能卡技术。智能卡或芯片卡被嵌入到具备薄、平、类似卡形式的集成电路器件中。典型地,智能卡或芯片卡包括至少一个存储器,但是通常还具有提供一些处理能力的微处理器组件。它们被用于多种应用中:例如,接触式智能卡技术被用于移动电话中的用户识别模块(SIM)卡和信用卡中;基于射频识别(RFID)技术的非接触式智能卡被用于公共交通支付系统和其他电子钱包应用中。

Sun Microsystems公布的Java Card Platform Specification已经定义了由智能卡执行的Java语言的子集。这提供了完整Java语言的特征的简化子集,该简化子集适合于智能卡环境的有限处理和存储器资源。在智能卡上运行基于Java的程序的能力使得能够在支持该规范的任何智能卡上并行运行不同的软件应用程序,而不用考虑下层的处理器体系结构。这在应用程序员没有严重负担的情况下提高了灵活性和协同工作的能力。

然而,与诸如Java字节码之类的解释代码相关联的性能缺陷在诸如智能卡之类的受约束的计算环境中是尤其令人不快的。

发明内容

根据本发明的一方面,提供了一种计算设备,包括:存储器;处理器;解释器,用于控制处理器执行包括非处理器本地格式的至少一个第一指令的程序,该程序调用处理器本地的机器代码格式的至少一个第二指令;以及存储器管理单元,适于当执行所述至少一个第二指令时控制处理器对存储器的访问,并且阻止访问分配给解释器但没有分配给所述第二指令的存储器部分。

非本地代码可以是不依赖于机器的代码,例如Java字节码。本地代码是机器专有代码,使用所讨论的特定处理器的指令集合。典型地,程序的以非本地解释代码提供的一部分将调用以本地代码提供(例如编译)的函数,使得可以针对所讨论的特定处理器加速和/或优化该函数的执行。因此,以本地代码提供的指令可以包括程序的计算密集部分,例如加密函数。使用本地代码暂时绕开了解释器,直到控制被交回程序的解释部分为止。然而,这会带来安全风险,因为不能对本地机器代码执行当解释器在处理器上执行解释(非本地)代码时一般执行的检查。为了减少这种安全风险,提供存储器管理单元(MMU),以控制机器代码指令对存储器的访问。本地指令请求的所有存储器访问(例如,读和写操作)都经由MMU处理。在该方面,当本地代码被执行时,MMU履行对解释器的存储器保护角色。具体地,可以阻止本地函数访问除了通过调用本地函数的非本地程序专门分配给本地函数的存储器部分以外的存储器部分。在本发明的一些实施例中,MMU不仅可以控制访问存储器,还可能控制访问系统的一个或多个外围设备,例如输入/输出设备或密码协处理器。由于控制了存储器和可选的外围设备,这可以被看作是一种“虚拟本地执行环境”,因为其具备纯本地代码的多种优点,同时还保持了对代码执行的控制度。这会为具有速度的解释(虚拟)环境带来安全和可靠,并且为通常与本地执行环境相关的优化处理提供机会。应该注意的是MMU是硬件而解释器是软件组件。

优选地,MMU适于仅当执行所述至少一个第二指令时控制处理器对存储器的访问。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于NXP股份有限公司,未经NXP股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201080021559.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top