[发明专利]一种JAVA卡虚拟机的安全防护方法在审
申请号: | 202110667344.8 | 申请日: | 2021-06-16 |
公开(公告)号: | CN113434247A | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 张新访;董逢华;周杰;姚成正 | 申请(专利权)人: | 武汉天喻信息产业股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F21/56 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 邱云雷 |
地址: | 430223 湖北省武汉*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 虚拟机 安全 防护 方法 | ||
本发明公开了一种JAVA卡虚拟机的安全防护方法,涉及智能卡技术领域,包括对JAVA卡虚拟机的指针均创建冗余备份变量,并在JAVA对象数据头中增加校验和;JAVA卡虚拟机复位初始化时,初始化各指针并将各指针的值赋值给各自的冗余备份变量;进行JAVA卡虚拟机对字节码执行类型的判断:当执行类型为执行字节码并对栈数据操作、执行对象成员访问字节码或执行方法返回字节码时,基于指针、各指针的冗余备份变量,以及数据校验和,进行安全检查,以判断是否正常执行字节码。本发明能够有效增强虚拟机的安全防护能力,增强JAVA卡虚拟机的使用安全。
技术领域
本发明涉及智能卡技术领域,具体涉及一种JAVA卡虚拟机的安全防护方法。
背景技术
随着JAVA(一种计算机编程语言)智能卡的普遍使用,JAVA智能卡的使用安全也越来越受到广泛关注,黑客可针对JAVA智能卡卡上装载的应用进行恶意攻击,从而非法窃取卡上应用存储的私密或敏感数据。
由于JAVA卡虚拟机有应用之间的防火墙措施,因此无法通过常规的手段去获取私密数据,当前,常见的攻击手段是通过激光攻击卡片的内存,修改JAVA虚拟机的虚拟机程序指针、虚拟机堆栈指针、虚拟机方法帧指针等,对操作堆栈以及E2(非易失性存储区)中的数据的过程进行旁路攻击,越过防火墙对卡内的存储数据进行非法访问,从而对JAVA卡虚拟机的使用安全造成威胁。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种JAVA卡虚拟机的安全防护方法,能够有效增强虚拟机的安全防护能力,增强JAVA卡虚拟机的使用安全。
为达到以上目的,本发明采取的技术方案是,包括:
对JAVA卡虚拟机的指针均创建冗余备份变量,并在JAVA对象数据头中增加校验和;
JAVA卡虚拟机复位初始化时,初始化各指针并将各指针的值赋值给各自的冗余备份变量;
进行JAVA卡虚拟机对字节码执行类型的判断:
当执行类型为调用JAVA方法字节码时,创建方法帧并将创建的方法帧压入方法栈中,根据调用JAVA方法字节码时传入的局部变量大小和操作数栈大小,更新指针以及指针的冗余备份变量;
当执行类型为执行字节码并对栈数据操作、执行对象成员访问字节码或执行方法返回字节码时,基于指针、各指针的冗余备份变量,以及数据校验和,进行安全检查,以判断是否正常执行字节码。
在上述技术方案的基础上,
所述指针包括字节码程序指针、操作栈指针、当前操作栈底指针和当前操作栈顶指针;
所述创建冗余备份变量,具体为:创建字节码程序指针冗余备份变量、操作栈指针冗余备份变量、当前操作栈底指针冗余备份变量和当前操作栈顶指针冗余备份变量。
在上述技术方案的基础上,所述将各指针的值赋值给各自的冗余备份变量,具体步骤包括:
将字节码程序指针的值赋值给字节码程序指针冗余备份变量,使字节码程序指针的值与字节码程序指针冗余备份变量的值相同;
将操作栈指针的值赋值给操作栈指针冗余备份变量,使操作栈指针的值与操作栈指针冗余备份变量的值相同;
将当前操作栈底指针的值赋值给当前操作栈底指针冗余备份变量,使当前操作栈底指针的值与当前操作栈底指针冗余备份变量的值相同;
将当前操作栈顶指针的值赋值给当前操作栈顶指针冗余备份变量,使当前操作栈顶指针的值与当前操作栈顶指针冗余备份的值相同。
在上述技术方案的基础上,在进行JAVA卡虚拟机对字节码执行类型的判断之前,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉天喻信息产业股份有限公司,未经武汉天喻信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110667344.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种通信光缆运行状态的检测方法
- 下一篇:末端执行器