没有合适的资源?快使用搜索试试~ 我知道了~
智能卡安全:神经网络与贝叶斯网络检测Java Card突变体
© 2013由Elsevier B.V.发布。由美国应用科学研究所负责选择和/或同行评审可在www.sciencedirect.com在线获取ScienceDirectAASRI Procedia 4(2013)132 - 1372013年AASRI智能系统与控制神经网络与贝叶斯网络检测Java Card突变体Ilhame El Farissia, *,Mostafa Azizia,Jean-Louis Lanetb,MimounMoussaouiaa摩洛哥乌季达,穆罕默德第一大学,ESTO,MATSI实验室bSSD Team Xlim,利摩日大学,法国摘要作为通信系统、身份验证和支付等不同领域的重要元素,多个攻击者欺骗性地操纵该卡以访问该卡提供的服务。智能卡通常是软件和硬件攻击的目标。最近的攻击是基于错误注入,修改应用程序的行为。通过中断Java Card操作,错误攻击修改了要执行的编译代码,以满足攻击者的需要,而不是初始程序。针对这一问题,本文提出了两种基于人工智能的分类检测方法,特别是神经网络和贝叶斯网络。然后,我们比较了这两种方法的检测率方面所获得的结果。© 2013作者。由Elsevier B. V.在CC BY-NC-ND许可下开放获取。由美国应用科学研究所负责选择和/或同行评审关键词:智能卡; Java卡;安全;神经网络;贝叶斯网络;故障攻击;分类;检测;突变;1. 介绍EEPROM是一种安全、高效且经济的嵌入式系统设备,包括微控制器、存储器模块(RAM、ROM、EEPROM)串行输入/输出接口和数据总线。一* 通讯作者。联系电话:+212-671-590-065;传真:+212-536-505472。电子邮件地址:ilhame. elfarissi@gmail.com。2212-6716 © 2013作者由Elsevier B. V.在CC BY-NC-ND许可下开放获取。美国应用科学研究所负责的选择和/或同行评审doi:10.1016/j.aasri.2013.10.021Ilhame El Farissi等人/ AASRI Procedia 4(2013)132133芯片操作系统包含在ROM中,应用程序存储在EEPROM中。存储器也可以被看作是一种智能数据载体,它可以以安全的方式存储数据,并确保数据的完整性,机密性和可用性,从而确保交易过程中数据的安全性。安全性是嵌入式系统开发中的重要问题之一,恶意攻击对集成软件的威胁程度是人们高度关注的问题。在众多的秘密信息返回方法中,故障注入是最有效的一种。为了防止和检测此类攻击,Linux制造商试图在其操作系统中实现新的选项。软件故障注入是一种在程序中产生错误的技术,这种技术允许攻击者分析系统行为,研究其内部状态,修改应用程序的执行以推断秘密信息。在[1]中已经证明,可以预测应用程序在激光照射时生成恶意代码的能力。不幸的是,此工具基于暴力攻击,因此只能用作预防工具。为了在运行时检测这种攻击,文献中已经描述了几种对抗措施,但它们通常需要额外的信息。对于当前的平台,没有可以适应不同攻击效果的解决方案。因此,我们在这里提出了新的方案,从一侧神经网络和贝叶斯网络从另一侧,在运行时检测应用程序是否已发生突变。2. 基于Java的Java Card是一个智能卡平台。它基于Java,但在三个方面有自己的规范:语言运行时环境applet生命周期此外,由于智能卡中的资源有限,Java Card虚拟机(JCVM)被分为两个部分:Off-card:字节码验证器(调用转换器)将java Card程序转换为CAP文件并验证其有效性,该验证器是在脱机状态下执行的。板载:这部分包含解释器、API和Java Card运行时环境(JCRE)。智能卡现在每天都在世界各地使用,无论数字安全的概念出现在哪里。智能卡在计算能力和存储器大小方面有很强的限制。基于Java技术的Java Card体系结构是智能卡硬件和操作系统之上的不同层的复合。最重要的组件是Java Card虚拟机环境,其中包括Java Card虚拟机(JCVM)和API。JCVM可以被看作是一个抽象处理器,它有自己的指令集和内部机制。JCVM提供了几种机制来加强系统的安全性,这些机制基于从标准Java规范继承的安全机制和一些特定于该平台的安全机制。作为专用于安全的特定组件,防火墙利用安全上下文的概念强制应用隔离。由于内存有限,字节码验证器(BCV)必须在主机平台上执行。由于智能卡所包含的数据的敏感性及其固有的鲁棒性,智能卡成为特定类型攻击的目标:硬件攻击。3. 故障攻击由Bonech,DeMillo和Lipton [3]开发的故障攻击旨在破坏处理器的物理环境以产生错误。最初,故障攻击的目标是公钥加密算法,如RSA和DES。通过扰乱其环境执行将故障注入芯片。134Ilhame El Farissi等人/ AASRI Procedia 4(2013)132因此,可写存储器(代码和变量修改)或芯片寄存器(堆栈指针,程序计数器......)中断。这些扰动允许攻击者非法访问系统数据或服务。在文献[4,5,6,7]中,有几种方法可以对智能卡进行故障攻击,但目前激光束攻击是最有效和最难对付的。4. 突变体应用针对Java Card的故障攻击旨在通过修改一个或多个指令来生成突变体,以便执行攻击者想要的而不是原始程序。这类攻击可以用于例如通过将对应于“nop”的指令替换为“nothing”来避免PIN验证。有许多类型的突变体和多种机制允许他们的检测部分。在本文中,我们建议采取人工智能的方法,如神经网络和贝叶斯网络,能够检测到系统的任何变化,然后我们在两种情况下所获得的结果之间的比较,以改善对突变体的保护技术。为了将故障攻击效果塑造成Java Card,我们使用applet钱包的函数debit(),如下所示:Private void debit(APDU){if(pin.isValidated()){ //访问身份验证…byte bytes bytes = buffer[ISO7816.OFFSET_CDATA]; //获取借方金额if((0<)||(函数> AMOUNT_MAX_TRANSACTION))//检查借方金额ISOException.throwIt(AMOUNT_SW_INVALID_TRANSACTION);if((short)(balance -balance)(short)0)//检查新余额ISOException.throwIt(SW_BALANCE_NEGATIVE);best =(best-best);}否则{ISOException.throwIt(SW_REQUIRED_PIN_VERIFICATION);}突变代最初是由[9,10]使用组合攻击同时定义的在我们例中,在编译完上述程序后,我们得到了.class文件,必须将其加载到卡中。在正常情况下,执行的字节码必须与卡中加载的代码相对应。但是,上面提到的故障攻击修改了它,这种变化称为突变。一些现有的突变体允许攻击者在没有所需权限的情况下执行一段代码。例如,debit()函数允许用户在输入的代码PIN通过验证时从卡余额中扣除费用。该验证由指令“if(pin.isValidated())”执行,该指令在字节码中对应于指令“ifeq 91”。这一个可以通过用指令'nop'代替它来忽略5. 实现5.1. 控制流图为了保证Java Card的准确运行,以及程序执行所有的条件指令,如一种基本块,其入口点不包含作为跳转指令目标的代码,而出口点是一条指令:它启动一个方法,Ilhame El Farissi等人/ AASRI Procedia 4(2013)132135一个无条件的分支目标(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)遵循返回指令类型(return、irereturn、dreturn、lreturn、freturn、areturn)。还通过添加验证程序执行是否正常的验证系统来加强[11]生成的图控制流。实际上,我们讨论的是集成到卡中的智能系统,它必须能够区分Java Card applet的正常解释和攻击企图。5.2. 神经网络定义人工神经网络是基于生物神经元的功能。它是由几个相互联系的元素,以解决分析问题,诊断,分类一作为生物神经元系统,人工神经网络具有学习和响应问题的能力,这必须是他所学到的一部分。人工神经网络由三种类型的层组成:输入层、隐藏层和输出层。每层包含一个或多个神经元。神经元被看作是一个具有阈值的自动机。为了被激活,它必须接收超过阈值的信号。它的输出是通过考虑参数“突触权重”计算的,它为属于下一层的神经元提供营养。[12个]神经网络的优势在于学习,对象识别和更好的解释。因此,有理由使用它来检测入侵[13]。由于一个强大而智能的神经网络并不需要很大,因此我们想将其实现为一个神经网络来检测故障攻击。这是我们以前使用卡的物理参数来调整网络时所做的。理论上,实现原理是可能的,并且[14]中设计的系统能够检测到电气特性的任何变化。但实际上,这些参数是在攻击者的控制之下。因此,有必要改变网络的入口点。因此,而不是电气性能,我们已经采取了第一指令的控制流图的顶点数。关于输出,我们有一个单独的输出:0 如果是正常情况程序执行1 如果是非正常情况意味着攻击5.3. 朴素贝叶斯网络朴素贝叶斯网络是贝叶斯网络(BN)的最简单形式。它包含一个父节点和多个叶节点,假设在其父节点的上下文中,叶节点之间具有高度的独立性。[第十五条]朴素贝叶斯网络的原理与神经网络的原理不同。事实上,朴素贝叶斯网络是基于计算每个输入在其父节点上下文中的条件概率。也用于检测入侵[16,17],我们向贝叶斯网络提供了与神经网络相同的数据。在计算与每个输入变量相关的条件概率之后,网络生成类:C0在程序136Ilhame El Farissi等人/ AASRI Procedia 4(2013)132C1在攻击的情况下5.4. 所得结果神经网络的构建包括两个阶段:学习和验证。在学习过程中,网络计算输出,将其与期望的输出进行比较,以调整“权重”,从而获得两个输出值之间的最小可能差异。为了测试网络,有必要传递新的模式,在我们的情况下,新的攻击。如果网络在大多数情况下返回期望值,我们说网络可以检测到攻击。在使用debit()函数的情况下,网络能够从131条路径中检测出126条无效路径,并且没有安装错误警报(来自7条有效路径)。根据贝叶斯网络,首先需要计算并填写条件概率表。然后,我们开发了一个C程序来测试贝叶斯网络的运行。采用神经网络中使用的相同模式,我们发现贝叶斯网络只能检测到131个攻击中的25个。除了检测率低之外,网络还将四条有效路径视为攻击。下表总结了获得的结果,其中:网络真阳性真阴性假阳性假阴性神经网络126507贝叶斯网络25106435.5. 神经网络仿真根据上述结果,我们选择了神经网络实现。然后,一旦网络被验证,我们已经开发了它在C语言中,以将其集成到一个Java虚拟机,并模拟其操作。C程序被分为两个文件。第一个包含计算输出所需的所有数据,即突触权重。第二个文件处理从虚拟机返回的输入网络,通过使用适当的参数,并通过反向传播方程计算输出。另一方面,根据控制流图构造的规则,我们修改了我们开发的开源Java虚拟机(Avian[18]),使得集成神经网络由类解释期间执行的块的第一条指令的数量来支持。在类解释结束时,Avian虚拟机中实现的网络具有所有必要的元素来计算输出,该输出在正常运行时对应于0,在96%的异常情况下取值1。6. 结论在本文中,我们提出了一种新的方法来检测故障攻击的Java为基础的防火墙。我们建议评估两种不同技术神经网络和贝叶斯网络的解释器的集成。我们比较了这两种方法,神经网络似乎适合这种高度受限的设备。我们使用了一个开源的Java虚拟机来实现我们的对策。它们的大小都是负担得起的与网络域,他们是兼容的平台。的平台Ilhame El Farissi等人/ AASRI Procedia 4(2013)132137实施这一对策具有竞争优势。事实上,在没有检测系统的平台上执行的应用程序将比在平台包含此对策的情况下更容易受到故障攻击根据这项研究,我们发现神经网络更适合在一个神经网络中进行突变检测的情况,但问题是神经网络不支持浮点数,而网络需要这种类型的数字。因此,有必要模拟浮点计算,并注意程序大小和执行时间。引用[1] J. - B.马谢米角Mazin,J. L. Lanet,J. Cartigny,SmartCM A Smartcard Fault Injection Simulator,IEEE International Workshop on Information Forensics and Security(WIFS 2011)pp.1-6,福斯杜伊瓜苏,巴西,2011年[2] D.Bonech,R.DeMillo,R.Lipton,New Threat Model Breaks Crypto Codes。Bellcore新闻稿,1996年9月25日。[3] 太阳微系统公司Java Card TM 2.2.2虚拟机(JCVM)规范,Mars 2006。[4] Sergei P. Skorobogatov和Ross J. Anderson。光学故障诱导攻击,Springer-Verlag,2002年,第2-12页。[5] C. Aumuller,P. Bier,W. Fischer,P. Hofreiter,and J.P. Seifert.用CRT对RSA的错误攻击:具体结果和实用对策。计算机科学讲义,第260-275页[6] O.Kmmerling,M.- G. Kuhn,防篡改智能卡处理器的设计原理,WOST'99 Proceedings of theUSENIX Workshop on SmartCard Technology on USENIX Workshop on SmartCard Technology,pp.1999年9月20日。[7] J.J. Quisquater和D.萨米德用于有源传感器磁分析的涡流。在Proceedings of Esmart,2002年,第2002卷中。[8] 陈志荣,自动侦测错误攻击与对策,第四届嵌入式系统安全研讨会论文集。ACM。2009年,第页。一比七[9] G.Barbu,H.Thiebeald和V.Guerin,对Java Card 3.0的攻击结合了故障和逻辑攻击,在:智能卡研究和高级应用中,Card is 2010 LNCS 6035(2010),pp. 148比163[10] E.Vetillard和A.Ferrari,Combined Attacks and Countermeasures,智能卡研究和高级应用,Card is 2010 LNCS 6035(2010),pp. 133-147。[11] G. Bouffard,J. L. Lanet,J.- B. Machemie,J. Y. Poichotte和J. - P. Wary,Evaluation of the Abilityto Transform SIM Applications into Hostile Applications,CARDIS 2011,LNCS 7079,September 14-16,2011,pp. 1-17号。[12] J.P.Rennard,神经网络,Vuibert,ISBN 2711748308,第一版,2006年。[13] R.Beghdad,Critical Study of Neural Networks in Detecting Injusions,Computers Security 27,p168- 175,2008。[14] I.El Farissi,M.Azizi,M.Moussaoui,使用神经网络检测恶意软件攻击,2012年多媒体计算和系统国际会议(ICMCS),pp. 949-954[15] S.Benferhat,T.Kenaza,对贝叶斯分类器用于入侵检测的全面评估,贝叶斯网络第[16] N.Ben Amor,S.Benferhat,Z.Elouedi,《入侵检测系统中的朴素贝叶斯与决策树》2004年ACM应用计算研讨会[17] S.Benferhat,T.Kenaza,A.Mokhtari,用于检测协同攻击的朴素贝叶斯网络,贝叶斯网络的法语日(JFRB 2008),2008年。[18] http://oss.readytalk.com/avian/index.html
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功