[发明专利]由虚拟机执行的中间编程代码的安全化的方法、计算机程序和装置有效
申请号: | 201110463290.X | 申请日: | 2011-11-10 |
公开(公告)号: | CN102681838A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | O·尚蕾;H·格勒内什 | 申请(专利权)人: | 欧贝特技术公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/455 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 李丽 |
地址: | 法国勒瓦*** | 国省代码: | 法国;FR |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 执行 中间 编程 代码 安全 方法 计算机 程序 装置 | ||
技术领域
本发明涉及以中间编程语言编码的软件应用的执行,更特别地,本发明涉及用于由虚拟机执行的中间编程代码的安全化的方法、计算机程序和装置。
背景技术
由于可用来执行软件应用的不同的硬件配置,因而经常使用一种称为中间编程语言的特别的编程语言。它允许开发者独立于应在其上执行应用的硬件体系结构,借助高级编程语言来编写这些应用。对由开发者生成的符合这些高级语言的文件进行编译(独立于特定的硬件平台),以产生基于中间编程语言的应用文件。因而,以虚拟机的名称已知的专用于特定硬件平台的特定软件层,允许基于使用中间编程语言的应用文件执行这些应用。
举例来说,一个用Java(Java是商标)编程语言编写的应用可被编译成Java伪代码(英文术语称为bytecode(字节码)),也就是以一种由Java虚拟机在具有不同硬件特征的平台上可执行的中间编程语言编译。Java虚拟机对于每个硬件平台是特定的,而使用中间编程语言的应用的代码对于这些不同的平台是共同的。
但存在适于执行应用的硬件平台类型的多种类型的虚拟机,而虚拟机应该符合给定的规格以允许执行用中间编程语言编码的应用程序。一般地,这些虚拟机以其较完全或较不完全的指令集区分。
因此,例如,存在一些以Java Card的名称已知的用于诸如微电路卡的硬件平台的特殊的Java虚拟机。
图1示意地说明用于生成可在微电路卡用的虚拟机上执行的文件的方法100的步骤。这里针指的应用是一种Java类型应用。
如图所示,用Java语言编写的、也就是以高级语言编写的源文件105在编译器110中编译,以便产生以名称Class类型文件已知的中间编程语言文件115。这些文件符合虚拟机标准。因而这些文件115在转换器120中进行转换,以使这些文件符合特定的虚拟机、这里是Java Card。标号125的转换文件在这里是Cap类型。由转换器120进行的转换旨在简化中间编程语言的指令,以便文件115可以由简化的虚拟机执行。这样的转换尤其旨在消除某些类型的变量,特别是booléen(布尔)类型的变量。
换句话说,Java格式的源代码指令文件这里借助Java编译器被编译为Class格式的伪指令文件。这些Class文件是可由许多Java虚拟机执行的,但不能由没有包含整套Java指令集的Java Card虚拟机执行。因此,这些Class文件利用Java Card转换器进行转换,以便获得可由Java Card虚拟机执行的Cap格式文件。
为执行转换或未转换的中间编程语言编写的应用,虚拟机配备专门的指令集和执行堆栈。但是,尽管虚拟机对应用的执行具有一定安全级别,但由虚拟机、特别是Java Card执行的Java应用易受攻击,特别是错误注入攻击。这种类型的攻击在于:当执行应用时注入错误以改变计算所涉及的值或迫使执行该应用的某些例行程序或分支指令。
为防备这种类型的攻击,某些应用的代码是冗余的以在其执行过程中进行检查。尽管这样的解决方案可以提高应用执行的安全性,但是它要求大量的资源。为弥补这个缺点,专利申请US 2009/0165149提出一种在设有用于解释中间代码的执行虚拟机的便携式数字设备上执行以中间编程代码编译的应用的方法,其包括安全执行模式的应用步骤,在该模式中通过虚拟机对中间代码的解释包括下列步骤:
-对于被操作以执行代码定义的逻辑和/或算术运算的每个代码数据,通过预定函数生成与所述代码数据相关的检查数据;和
-与所述运算的执行相并行地执行检查操作,所述检查操作通过所述预定函数与代码定义的所述运算相关并且作用于所述检查数据。
但是,这样的解决方案需要对所用的虚拟机作出重大改变。
发明内容
本发明允许解决至少一个前述问题。
因此,本发明旨在提出一种用于计算机的由虚拟机执行的中间编程代码的安全化的方法,该方法包括下列步骤:
-从所述中间编程代码接收多个伪指令;
-转换所述多个伪指令,所述转换包括插入至少一个伪指令的插入步骤,所述至少一个伪指令与所述多个伪指令中的至少一个伪指令的执行的控制函数相关;和
-生成伪代码,所生成的所述伪代码包括被转换的所述多个伪指令。
因此,按照本发明的方法允许使伪代码的执行安全,而不需要改变相应的源代码。另外,该方法可以在中间编程代码的转换步骤中实施,以便其实现对于用户是透明的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于欧贝特技术公司,未经欧贝特技术公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110463290.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多接口存储卡及操作方法
- 下一篇:透镜驱动装置及其制造方法