The invention discloses a method for detecting the cross access of an JAVA smart card, which is used to solve the defect that the virtual machine interpreter in the JAVA smart card has the over accessing during the execution of the existing smart card. It includes the following steps: (S01) in the CAP file will be installed to JAVA smart card, processing the CAP file; the CAP file including a plurality of components, including components, components and components of the constant pool method; (S02) application in the implementation process, the virtual machine interpreter JAVA smart card in CAP file command, check the CAP file component. The invention prevents the access from crossing the border by checking the class components when the instruction invokevirtual is invoked by the method of execution, so that the security of the interpreter of the virtual machine is improved.
【技术实现步骤摘要】
一种JAVA智能卡访问越界的检测方法
本专利技术涉及JAVA智能卡领域,尤其涉及一种JAVA智能卡访问越界的检测方法。
技术介绍
智能卡(SmartCard)是一种带有微型处理器和存储器芯片的微型集成电路卡片,具有运算能力和信息存储功能。Java智能卡是将Java语言运行平台移植到智能卡芯片中,使得Java技术“一次编译,处处运行”的特点可以应用于智能卡上。在Java智能卡的应用开发中,开发方不需要考虑应用装载的平台和平台的特性。与传统卡片相比,Java智能卡不仅具有平台无关性,更重要的是支持一卡多应用,且具有更高的安全性。根据Java卡相关的规范,其安全机制包括应用安装前的检查,如字节码校验(BCV),应用安装过程如GP规范,应用间独立如防火墙等;但是在虚拟机解释器在执行字节码的过程,缺少安全机制保障运行时的安全,比如可能出现的访问越界或者类型强制转换等问题;其中,组件间的越界访问是暂时未解决的问题之一。根据Java卡虚拟机规范,一个应用的CAP文件由12个组件组成,安装到卡片上的组件主要有引入组件、常量池组件、类组件、方法组件、静态域组件等;为了节省卡片的存储空间,每个组件都是接连存放在EEPROM中,导致对某一个组件的访问溢出时可能访问到另一个组件的信息;类组件是用于存放应用定义的类的信息;每个类中定义的方法,包括一个是public_virtual_method_table数组,它表示public和protected虚方法的数组,也包括所有的或者任何一个它的超类所声明或者定义的方法,这些方法可以在一个类的实例上被调用;另一个是package_virt ...
【技术保护点】
一种JAVA智能卡访问越界的检测方法,其特征在于,其包括如下步骤:(S01)在将CAP文件安装到JAVA智能卡时,对CAP文件进行处理;其中,CAP文件包括多个组件,包括常量池组件、类组件和方法组件;(S02)在应用执行过程中,JAVA智能卡内的虚拟机解释器在执行CAP文件中的指令时,对CAP文件的类组件进行检查。
【技术特征摘要】
1.一种JAVA智能卡访问越界的检测方法,其特征在于,其包括如下步骤:(S01)在将CAP文件安装到JAVA智能卡时,对CAP文件进行处理;其中,CAP文件包括多个组件,包括常量池组件、类组件和方法组件;(S02)在应用执行过程中,JAVA智能卡内的虚拟机解释器在执行CAP文件中的指令时,对CAP文件的类组件进行检查。2.如权利要求1所述的JAVA智能卡访问越界的检测方法,其特征在于,步骤(S01)中,CAP文件的处理方法包括:(1)在载入前,在CAP文件的每个组件后加上结束标识符;(2)在安装过程中,每次载入CAP文件的其中一个组件后,由JAVA智能卡上的安装程序执行在该组件后加上结束标识符。3.如权利要求2所述的JAVA智能卡访问越界的检测方法,其特征在于,步骤(S02)包括如下步骤:(S21)根据指令操作数定位到常量池数组,其中,指令操作数为链接到常量池组件的token值;(S22)在常量池数组中找到对应的项,获得被调用方法所在的类的引用和方法token,进而定位到类组件中确定的类以及方法表中的对应项;(S23)在类组件中,每个类的信息包括表示方法表数组大小的public_method_table_count以及表示方法表偏移基数的public_method_table_base,根据public_method_table_count和public_method_table_base两个数值,定位到数组的末尾;(S24)通过public_method_table_base+public_method_tabl...
【专利技术属性】
技术研发人员:洪佳欣,胡建国,丁颜玉,凌森,
申请(专利权)人:广州智慧城市发展研究院,中山大学,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。