英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
ScienceDirect
AASRI Procedia 4 ( 2013 ) 132 – 137
2013 AASRI会议上智能系统与控制
神经网络VS.贝叶斯网络来检测Java卡突变体
Ilhame El Farissia,*, Mostafa Azizia, Jean-Louis Lanetb, Mimoun Moussaouia
aMATSI LAB, ESTO,Mohammed first University,Oujda, Morocco
bSSD Team Xlim,University of Limoges, Limoges, France
摘要:作为一个在不同领域(如通信系统,认证和支付)都至关重要的元素,很多攻击者通过欺骗控制卡来获得各种服务权限。智能卡通常是软件和硬件攻击的目标,最近的袭击是基于故障注入的修改应用程序的行为。通过破坏Java卡操作,攻击者的目的是修改编译后的代码并执行,以此来获得得到想得要的东西。因此,要解决这个问题,我们建议两个基于人工智能的分类和检测方法,尤其是神经和贝叶斯网络。然后,我们比较由这两个方法所得结果之间的检出率。
关键词:智能卡;Java卡;安全;神经网络;贝叶斯网络;故障攻击;分类;检测;突变体
1.介绍
智能卡是一种安全有效的低成本嵌入式系统设备,包括微控制器,内存模块(RAM,ROM,EEPROM)串行输入/输出接口和数据总线。一个芯片的操作系统包含在ROM中,所述应用程序存储在EEPROM内。智能卡也可以被看作一个智能数据载体,可以用安全的方式存储数据,确保其完整性、机密性、可用性和交易期间数据的安全性。安全是在智能卡的发展过程中的重要问题之一,在集成软件的恶意攻击下,智能卡受威胁程度日益升级,安全问题受到了高度关注。攻击者设置了多重攻击来盗取秘密信息,故障注入是貌似其中最高效和最有效的一种。为了防止和检测这种攻击,智能卡制造商打算在操作系统上做新的选择。软件故障注入是使程序产生错误的技术,这种技术可以让攻击者分析系统行为,研究其内部状态和修改应用程序执行,以推断秘密信息。
研究证明[1],这种技术可以预测一个应用程序,产生一段恶意代码在智能卡被激光击中时。不幸的是该工具是基于强力攻击,因此只能用作为预防工具。要在运行时检测到这种攻击,一些反制措施有在文献中已经描述,但它们经常需要额外的信息。对于当前的平台,不存在的解决方案,可适应的攻击的影响不同。所以,我们在这里提出了基于从一个侧面神经网络和对方的贝叶斯网络的新方案,来检测运行时的应用是否改变。
2.基于Java的智能卡
Java卡是智能卡的平台。它是基于Java的,但它在以下三个方面有自己的规范:语言的限制;运行时环境;小应用程序的生命周期。
此外,由于在智能卡有限的资源,在Java卡虚拟机(JCVM)被分成两个部分:
Off-card:字节码检验器(调用转换器),该转换的java卡程序CAP文件并验证其有效性是Off-card执行。
On-card:这部分包含解释器,API和Java Card运行时环境(JRE)。
当今世界各地每天都在使用智能卡,所以出现数字安全的概念出现了。智能卡具有很强的计算能力和内存大小限制。基于Java技术,Java卡架构复合不同层上的智能卡硬件和操作系统。最重要的组成部分是Java卡运行时环境,其包括Java卡虚拟机(JCVM)和API。该JCVM能以某种方式被看作是一个与自己的指令集和内部机制的抽象处理器。所述JCVM在用几种机制保证该系统的安全性的基础上,继承了标准的Java规范和某些特定于该平台的安全机制。作为专用于安全防火墙的特定组件,强制应用程序隔离安全背景。由于内存有限,为安全的重要组成部分字节码验证器(BCV)必须在主机平台上执行。因为它们含有其固有的鲁棒性和数据的敏感性,智能卡是硬件攻击的特定目标。
3 故障攻击
由Boneh,DeMillo和立顿开发[3],故障攻击的目的是破坏处理器的物理环境来产生错误。最初,故障攻击针对公开密钥加密算法诸如RSA和DES。缺点是需要通过扰动环境来注入芯片中执行。因此,可写存储器(代码和变量修改)或记忆芯片的寄存器(堆栈指针,程序计数器...)被打乱。这些扰动允许攻击者获得系统数据或服务的非法访问权限。在文献[4,5,6,7]中,有几种方法来产生故障攻击到智能卡但目前的激光攻击是最有效的,也是最难处理的。
4、突变的应用
在故障攻击针对Java卡,旨在修改一个或多个指令来产生突变体,让攻击者能执行自己的程序来代替原有的程序。此类攻击的都可以使用,例如,通过替换的nop指令对应的一个等价于“无”,可以避免PIN验证。
有许多类型的突变体和多种机制允许其通过检测。在本文中,我们建议采用人工智能方法,如神经网络和贝叶斯网络,能够检测到系统中产生的任何更改,然后我们在两种情况下所得到的结果进行比较,来改善对突变体的保护技术。
为了塑造故障攻击影响到Java卡,我们使用的小程序钱包功能的借记卡()
说明如下:[8]
Private void debit(APDU apdu) {
if ( pin.isValidated() ) { // access authentication
hellip;
byte amountDebit = buffer[ISO7816.OFFSET_CDATA]; // get debit amount
if (( amountDebit lt; 0 ) || ( amountDebit gt; AMOUNT_MAX_TRANSACTION) ) // check debit amount
ISOException.throwIt(AMOUNT_SW_INVALID_TRANSACTION);
if ( (short)( balance - amountDebit ) lt; (short)0 ) // check the new balance
ISOException.throwIt(SW_BALANCE_NEGATIVE);
balance = (short) (balance - amountDebit);
} else {
ISOException.throwIt( SW_REQUIRED_PIN_VERIFICATION);
}
突变的生成最初由[9,10]使用组合攻击同时限定。在我们的情况下,上面的程序编译后,我们得到的.class文件,它必须在卡上加载。
在正常情况下,执行的字节代码必须对应于在卡中装入的代码。但是,在故障攻击上述修改。这种变化被称为突变体。
一些现有的突变体允许攻击者执行一段代码,没有所需的权限。例如,用户如果输入的代码的PIN验证,debit()函数允许该用户收取卡中的余额。这种验证由指令执行if(pin.inValidated()),它对应于该字节代码指令ifeq91。可以忽略这个指令的nop来取代它。
5、实现
5.1 控制流图的构建
为了保证Java卡准确操作,并且该程序执行所有像IFEQ的条件指令,有必要建立代表它的所有解释期间由程序所采取的可能的路径的图形流控制,其顶点是基本块。基本块的入口点不包含的代码是一个跳转指令和退出点的目标的指令:
启动的方法:
·无条件分支目标(RET,GOTO,goto_w,jsr_w,JSR);
·条件分支目标(IFLT,IFEQ,ifne,ifle,ifge,ifgt,ifnonnull,IFNULL,if_icmpne,if_icmpeq,if_icmpgt,if_icmplt,if_icmpge,if_icmple,if_acmpne,if_acmpeq,fcmpl,LCMP,dcmpl,fcmpg,dcmpg);
·有条件组成的分支目标(lookupswitch,tableswitch);
·继返回指令类型(回报,ireturn,dreturn,lreturn,freturn,areturn)。
同时加强[11]通过添加验证程序执行是否正常,或没有做验证系统生成的图形控制流。在实践中,我们谈论集成到卡智能系统,该系统必须能够在Java卡小应用程序的正常解释和区分攻击企图。
5.2 神经网络定义
人工神经网络是基于生物神经元功能。它是由几个要素相互联系,为了解决分析问题,诊断,分类...
由于生物神经元系统,人工神经网络具有学习和应对问题必须的一部分,他了解到部分问题作出反应的能力。人工神经网络是由三种类型的层:输入,隐藏和输出。每一层含有一种或多种神经元。神经元被视为具有阈值的自动机。它必须接收超过阈值的信号才能被激活。它的输出,这是考虑到参数“突触权重”来计算,滋养属于下一层的神经元。 [12]
神经网络的优势在于学习,对象识别和更好的诠释。由于这个原因,所以使用它来检测入侵[13]。一个强大和智能神经网络是没有必要的大,我们认为应该落实到智能卡,以检测故障攻击。
这就是,我们先前已经完成网络,当我们已经使用该卡来对准的物理参数。从理论上讲,实施的原理是可能的,在设计的系统[14]能检测电性能所作的任何更改。但实际上,这些参数的控制攻击者。因此,有必要改变网络的入口点来代替电性能,我们已经采取指令数量的顶点控制流图。还有,相对于该输出,我们有一个需要:
0,如果它是正常情况,程序照常执行
1,如果它是不正常的情况,这意味着攻击
5.3 朴素贝叶斯网络
朴素贝叶斯网络是贝叶斯网络(BN)一个最简单的形式。它包含一个父节点和多个子节点,在假设有在父节点条件下,叶之间有高程度的独立性。[15]
朴素贝叶斯网络的原理与神经网络的不同。事实上,朴素贝叶斯网络是基于计算每个输入父节点背景的条件概率。也用于检测入侵[16][17],我们已经提供与贝叶斯网络中使用数据相同的神经网络。并且在计算每个输入变量的条件概率之后,网络将它们生成类:
·C0程序的正常运行
·C1在攻击的情况下
5.4 所获得的结果
神经网络的结构,包括两个阶段,学习和验证。在学习阶段,网络计算输出,与所需的数据对比,用这样的方式来调整“权重”,以获得两个输出的值之间的最小可能差。
测试网络时,有必要通过新的模式,在我们的条件下,进行新的攻击。如果网络在大多数情况下返回预期值,我们就说网络可以检测攻击。就借记卡的功能来说,网络能够从131路径中检测126无效的路径,并没有误报(从7有效路径)。
根据贝叶斯网络,首先,有必要计算和填充条件概率表。然后,我们开发了一个C程序来测试所述贝叶斯网络的操作。采用与神经网络中的相同的模式,我们发现,贝叶斯网络在131攻击中只能够检测25个。此外,低的检出率,该网络认为作为攻击的有效路径只有4个。
下表总结了得到的结果:
网络 |
真阳性 |
真阴性 |
假阳性 |
假阴性 |
神经网络 |
126 |
5 |
0 |
7 |
贝叶斯网络 |
25 |
106 |
4 |
3 |
表1.1
5.5 神经网络模拟
从上述的结果,我们选择了神经网络实现。然后,一旦网络验证,我开发了C语言,将其集成到Java虚拟机,并集成模拟其操作。
一方面,C程分成两个文件。第一个包含所有必要的数据来计算输出,即突触权重。和第二文件对待这是从虚拟机返回的输入网络,通过使用适当的参数,并经由反向传播计算输出方程。
另一方面,根据控制流图实行的规则,我们已修改,我们已经利用这样(Avian[18])的开源的Java虚拟机,该集成神经网络是通过的数量alimented类解释期间执行的块的第一个指令。
类的解释的最后,在鸟类虚拟机实现的网络具有所有必要的元件,计算其对应于0在正常运作的输出,并采取值为1在96%的异常情况下。
6、结论
在本文中,我们提出一个新方法来检测对于Java卡的智能攻击。我们建议评估整合两种不同的技术集成到解释器神经网络和贝叶斯网络。我们比较了两种方法,神经网络似乎更适合这种高度受限的设备。我们使用一个开源的Java虚拟机来实现我们的反制措施。两者的大小经济实惠与智能卡领域和它们与平台兼容。实现此对策的平台,具有竞争优势。事实上,如果在没有检测系统的平台上执行应用程序,会更容易发生故障攻击。
根据这项研究,我们发现,神经网络更适合智能卡的突变检测,但问题是,智能卡不支持浮点数但网络需要这种类型数字。因此,有必要模拟浮点计算,并且要注意的程序大小和执行时间。
参考文献
[1] J.-B. Machemie, C. Mazin, J.-L. Lanet, J. Cartigny, SmartCM A Smartcard Fault Injec
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[31564],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。