本发明专利技术具体涉及装备用于执行小应用程序的虚拟机的电子设备。虚拟机设置成识别小应用程序的指令以及执行对应于各条指令的代码。该虚拟机包括:关联模块,设置成将多个不同但操作上相同的代码与同一指令相关联,以及选择模块,设置成以随机的方式来选择所述指令要执行的代码。本发明专利技术还涉及保护计数器电子设备免受隐藏信道攻击的方法。 1
Protection of small applications from hidden channel analysis
The invention specifically relates to an electronic device equipped with a virtual machine for executing small applications. The virtual machine is set to identify the instructions of the applet and execute the code corresponding to each instruction. The virtual machine includes: an association module, set to associate a number of different but operating identical codes with the same instruction, and select a module to select the code to be executed in a random way. The invention also relates to a method for protecting counter electronic devices against hidden channel attacks. One
【技术实现步骤摘要】
保护小应用程序免受隐藏信道分析
本专利技术涉及保护小应用程序免受隐藏信道分析的方法以及实施这种保护的设备。
技术介绍
小应用程序(applet)是指由虚拟机所执行的任何程序。例如,使用JavaCard语言编写并将由芯片卡的JVM执行的程序称之为小应用程序。以此类推,.NET小应用程序或Multos小应用程序指定用于芯片卡的以.NET环境(或Multos环境)开发的程序。在JavaCard内容中,小应用程序所包含的指令通常称之为op-codes,表示“操作码(operationcodes)”。虚拟机是一个实体,它能够执行以一系列指令形式记录的小应用程序,当执行该小应用程序时,它将各条指令翻译成一个基本运算或一系列基本运算,并执行这个或这些基本运算。虚拟机有可能将记录或传输程序的界面与执行基本运算的平台相分离。虚拟机的例子具体包括JVM(JavaVirtualMachines=Java虚拟机),或者CLI(CommonLanguageInfrastructure=通用语言架构)的多种实现,例如,适用于C#语言(.NET环境)的CLR(通用语言运行时)。虚拟机常常只是纯软件。因此,有可能在彼此完全不同的各类平台上执行相同的小应用程序,但会受制于现有适用于这些平台中的各个不同平台的虚拟机。然而,也有可能使用硬件虚拟机(例如专用电子电路)或结合软件部分和硬件部分的虚拟机。小应用程序的逆向工程是指目的为理解小应用程序设计方式以便复制、修改或移植该小应用程序且通常没有获得其作者和/或持有者同意的行为。隐藏信道分析是基于根据电子设备的物理实现所获得的信息的分析。此信息常常是电子设备执行程序所导致的某些物理量的变化。这些物理量(称之为“隐藏信道”)可具体为设备的耗电量或者设备所产生的电磁场,并还有可能根据它们所需要的耗电量或它们所产生的电磁辐射来区分所执行的任务。也有可能测量发出的振动(某些组件易于振动,并且振动方式取决于它们正在执行的工作内容而不同),或者温度的变化,或者执行特定任务所占用的时间(“时间攻击”)等。基本分析可简单包括根据指定测量来识别目标电子设备的指定特征。这种情况例如所谓SPA(简单功率分析)的攻击。更复杂的分析可依据基于大量测量的统计研究(这种情况例如DPA攻击,表示为差分功率分析,以及更具体的是HODPA攻击,表示为高阶DPA)。在JavaCard的讨论内容中,常常追求保持小应用程序所包括的一系列指令的机密性,以便避免为移植小应用程序或者改变小应用程序执行过程所产生的结果而修改这些指令中的部分指令。然而,有时有可能可以通过分析隐藏信道来找到这一系列指令并构建程序,具体正如DennisVermoen的解释,详见DennisVermoen,“ReverseengineeringofJavaCardappletsusingpoweranalysis”,MScThesis,DelftTechnologyUniversity(performedinRiscure),2006。这暗示着JavaCard小应用程序存在着潜在的重大安全隐患。隐藏信道分析也已经由被授权的组织(例如信息技术评价机构-ITSEF)用于评估JavaCard的安全性,正如SergeChaumette等人的解释:详见SergeChaumetteandDamienSauveron“AnefficientandsimplewaytotestthesecurityofJavaCards”,inProceedingsof3rdInternationalWorkshoponSecurityinInformationSystems(WOSIS2005)。SagemSécurité还拥有一项专利,详见"Protectionofaprograminterpretedbyavirtualmachine",numberFR2903508B1("由虚拟机解释的程序的保护(Protectionofaprograminterpretedbyavirtualmachine)",专利号为FR2903508B1),提出了遮蔽指令来防止此类分析。为了试图发现小应用程序的指令,攻击者可例如进行两个步骤。在特征化步骤中,攻击者将学习型小应用程序下载到卡片中(对于一部分JavaCard来说,这种操作实际上是以授权的方式来执行的,而对于另一部分,则必须进行第一次攻击以便下载学习型小应用程序)。学习型小应用程序是由攻击者采用能够通过相应模型来特征化指令的方式进行编码的。该模型对应于联系指令隐藏信道的信号。因此,所有模型构成已经特征化的指令的模型库。在检测步骤中,攻击者测量来自他期望发现的小应用程序执行过程中的隐藏信道的信号。接着,他使用在特征化步骤中创建的模型库来找到小应用程序的指令序列。检测是基于检测步骤所采集的信号和存储于库的模型之间的相干性。一种最简单的相干性测量是相关性。因此,采用分析隐藏信道的逆向工程的成功通常取决于特征化和检测这两个步骤。关于特征化步骤,攻击者可能面对下述四种具体状况之一,如图1所示:C1–容易获得准确模型,C2–难以获得准确模型,C3–不可能获得模型,C4–获得错误模型。状况C1对应于例如没有实施硬件或软件对策的情况或者仅仅实施行基本(无效)对策的情况。此类对策的典型示例是在信道(例如耗电量或电磁辐射)上添加随机噪声。然而,这一随机噪声可通过很多次地执行特征化小应用程序和均化信号分离出。状况C2尤其会发生于如果实施了一些硬件或软件的对策。使用专利FR2903508B1所提出的确定性噪声的解决方案有可能使得模型的提取更加困难。使信号失去同步(例如:抖动,时钟分频等)的对策可干扰模型的获得,但通常有可能籍助于信号处理技术找到它们。根据FR2903508B1的解决方案在性能方面相当昂贵。此外,如果没有准确生成确定性噪声(也就是说,如果它所生成的签名不能与执行讨论指令时所自然生成的签名非常类似),则攻击者可设法提取原始信号。状况C3会出现在非常强的保护的情况下,例如籍助于低级别的干预措施,在硬件层面上,直接在执行小应用程序的组件中,或在软件层面上,在解释器(执行小应用程序的虚拟机)中。这些干预措施的目的通常是使模型恒定,或者不恒定但完全相同,从而使之不可能区分出警告指令。然而在实践中,要保证这一属性是非常困难的,因此情况C3是相当理论化的。状况C4会出现在被攻击的设备被设计成在学习阶段提供假模型(也就是说,该模型并不对应于被攻击小应用程序的模型)时。根据专利FR2903508B1,有可能生成虚假类型的噪声,也就是说,为了干扰检测,在特征化和检测两个步骤中生成不同类型的噪声。然而,模型(隐藏在噪声后)通常是相同的。如果攻击者设法找到分离添加噪声的手段(例如分离来自用作噪声的加密处理器的信号),他有可能设法通过隐藏信道分析来实施被攻击的小应用程序的逆向工程。通常,认为可能性C3和C4不能引起检测步骤。一般,可能性C1和C2允许他们在第二步骤中检测指令,其中两种状况可被预见:D1–在执行过程中易于检测的模型,D2–难以检测的模型。其中不可能检测模型的状况一般是状况C3的结果,并因此不作研究。通过隐藏信道分析实施小应用程序逆向工程可能发生的五种情景在图1中本文档来自技高网...
【技术保护点】
1.包括存储器的电子设备,所述存储器存储至少一个小应用程序,所述电子设备装备
【技术特征摘要】
2010.12.24 FR 10612521.包括存储器的电子设备,所述存储器存储至少一个小应用程序,所述电子设备装备用于执行小应用程序的虚拟机,该虚拟机设置成识别小应用程序的指令并执行对应于各条小应用程序指令的代码,其特征在于,所述虚拟机包括:-关联模块,设置成将多个不同但功能上完全相同的代码与小应用程序的指定小应用程序指令相关联,所述多个代码与所述指令相关联并通过设备执行代码时产生的电磁辐射的耗电量来区分,或者通过设备执行代码的持续时长来区分,以及-选择模块,设置成选择所述指定小应用程序指令所要执行的代码,其中所述选择模块设置成用于根据存储器区域和/或小应用程序的类型从所述多个代码中选择要被所述指定小应用程序指令执行的代码。2.根据权利要求1所述的设备,其特征在于,两条小应用程序指令各自与多个代码相关联,相关联于第一指令的至少一个代码与相关联于第二指令的一个代码具有至少一个共同特性,可能的共同特性为设备执行代码的时长以及当设备执行代码时产生的耗电量和电磁辐射。3.根据权利要求1所述的设备,其特征在于,所述虚拟机设置成识别最频繁的指令并仅为所述最频繁的指令使用多个代码。4.根据权利要求3所述的设备,其特征在于,所述最频繁的...
【专利技术属性】
技术研发人员:弗雷德里克·鲍莱特,迈克尔·巴塞,桑赫哈·莱,
申请(专利权)人:茂福公司,
类型:发明
国别省市:法国,FR
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。