The present invention discloses anti fault injection method and system of Java Card virtual machine stack, including random number generated before starting the Java Card virtual machine; based on the random number to calculate the Java memory address Card virtual machine stack; start Java Card virtual machine, and will determine the memory address for the Java Card virtual machine stack the actual memory address, to prevent an attacker to find Java Card virtual machine stack the actual memory address after fault injection. The present invention through dynamic random adjustment Java Card virtual machine stack the actual memory address, the attacker is difficult to find the Java Card virtual machine stack the actual memory address, to further increase the difficulty of the attacker error injection Java Card virtual machine stack. The invention can prevent the Java Card virtual machine stack fault injection, to improve the security of Java Card virtual machine stack.
【技术实现步骤摘要】
JavaCard虚拟机栈的防错误注入方法及系统
本专利技术涉及JavaCard虚拟机栈防护
,特别是涉及一种JavaCard虚拟机栈的防错误注入方法及系统。
技术介绍
JavaCard支持很多应用,并且具有非常高的安全性。近年来,JavaCard在金融、移动支付等行业中的应用越来越广范,与此同时,针对JavaCard的攻击手段也越来越多,目前非常重要的攻击手段是针对JavaCard虚拟机栈的错误注入,而现有技术中还没有针对这种攻击手段的防护方法,使JavaCard虚拟机栈的安全性降低。因此,如何提供一种解决上述技术问题的JavaCard虚拟机栈的防错误注入方法及系统成为本领域的技术人员需要解决的问题。
技术实现思路
本专利技术的目的是提供一种JavaCard虚拟机栈的防错误注入方法和系统,在使用过程中增加攻击者对JavaCard虚拟机栈进行错误注入的难度,并在一定程度上防止了对JavaCard虚拟机栈的错误注入,提高了JavaCard虚拟机栈的安全性。为解决上述技术问题,本专利技术提供了一种JavaCard虚拟机栈的防错误注入方法,包括:在启动JavaCard虚拟机之前产生随机数;依据所述随机数计算出JavaCard虚拟机栈的内存地址;启动JavaCard虚拟机,并将所述内存地址确定为所述JavaCard虚拟机栈的实际内存地址,以防止攻击者找到JavaCard虚拟机栈的实际内存地址后进行错误注入。可选的,所述依据所述随机数计算出JavaCard虚拟机栈的内存地址的过程具体为:依据所述随机数对所述JavaCard虚拟机栈的内存空间的起始地址和结束地址进行调 ...
【技术保护点】
一种Java Card虚拟机栈的防错误注入方法,其特征在于,包括:在启动Java Card虚拟机之前产生随机数;依据所述随机数计算出Java Card虚拟机栈的内存地址;启动Java Card虚拟机,并将所述内存地址确定为所述Java Card虚拟机栈的实际内存地址,以防止攻击者找到Java Card虚拟机栈的实际内存地址后进行错误注入。
【技术特征摘要】
1.一种JavaCard虚拟机栈的防错误注入方法,其特征在于,包括:在启动JavaCard虚拟机之前产生随机数;依据所述随机数计算出JavaCard虚拟机栈的内存地址;启动JavaCard虚拟机,并将所述内存地址确定为所述JavaCard虚拟机栈的实际内存地址,以防止攻击者找到JavaCard虚拟机栈的实际内存地址后进行错误注入。2.根据权利要求1所述的JavaCard虚拟机栈的防错误注入方法,其特征在于,所述依据所述随机数计算出JavaCard虚拟机栈的内存地址的过程具体为:依据所述随机数对所述JavaCard虚拟机栈的内存空间的起始地址和结束地址进行调整,得到调整后的起始地址和结束地址,并依据所述调整后的起始地址和结束地址确定出所述JavaCard虚拟机栈的内存地址。3.根据权利要求2所述的JavaCard虚拟机栈的防错误注入方法,其特征在于,所述方法还包括:对待进栈的第一数据进行按位取反操作,得到相应的第二数据;将所述第一数据与所述第二数据进行结合得到第三数据,并将所述第三数据压入栈;对待出栈的数据进行反向验证,以判断待出栈的数据是否为所述第一数据,如果是,则所述第一数据正常,并进行所述第一数据的返回;否则,所述第一数据受到错误注入,并进入安全异常处理流程。4.根据权利要求3所述的JavaCard虚拟机栈的防错误注入方法,其特征在于,所述将所述第一数据与所述第二数据进行结合得到第三数据的过程具体为:将所述第二数据...
【专利技术属性】
技术研发人员:李祖猛,
申请(专利权)人:东信和平科技股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。