电磁错误注入攻击方法及系统与流程

文档序号:11261366阅读:689来源:国知局
电磁错误注入攻击方法及系统与流程

本发明涉及测试技术领域,尤其涉及电磁错误注入攻击方法及系统。



背景技术:

近年来,移动互联网发展迅速,不仅,智能终端的数量急剧增加,而且,智能终端的功能也逐步增强。然而,伴随着移动互联网业务的日益繁荣,作为业务载体的智能终端也面临越来越多的安全威胁,例如,恶意订购、账户盗取、通话监听等。同时,由于,智能终端中的各种功能应用越来越多地涉及商业秘密和个人隐私等,导致智能终端面临着严峻的安全挑战。鉴于上述问题,究其原因在于智能终端操作系统繁多,内在的安全机制差异也很大,这样,不同操作系统的智能终端面临的安全风险不同,甚至同样的操作系统,由于不同的加工过程中对其安全加固程度不同,其安全特性也会不同。

因此,对于智能终端硬件的安全分析至关重要,cpu及底层硬件上如果出现漏洞,会严重影响智能终端的安全性能。目前,对硬件的安全分析主要集中在智能卡领域。智能卡的操作系统简单,电源线和地线能够直接获得,进而通过电源线和地线来采集智能卡的功耗信号,通过分析该功耗信号能够得知智能终端中被攻击算法的时间位置。然而,智能终端很复杂,多任务操作同时存在,其电源线或地线上的功耗信号特征不明显,难以根据这两个功耗信号准确确定被攻击算法的时间位置。

而直接对智能终端进行电磁错误注入攻击测试,则容易导致其芯片进入栓锁状态,进而导致芯片发热升温,造成永久性损坏。或者是,芯片由于电磁错误注入而进入异常状态会严重影响测试效率。

综上,关于智能终端进行电磁错误注入攻击测试时效率低的问题,目前尚无有效的解决方案。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供了电磁错误注入攻击方法及系统,通过逐步获取待测试芯片的敏感区域和时间位置,提高了测试过程中对敏感区域进行电磁错误注入攻击的准确性。

第一方面,本发明实施例提供了电磁错误注入攻击方法,包括:

测试平台获取待测试芯片的敏感区域;

测试平台获取敏感区域的时间位置,其中,时间位置是敏感区域运行算法相对于触发信号的时间间隔;

测试平台在时间位置对敏感区域进行电磁错误注入攻击。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,测试平台获取待测试芯片的敏感区域包括:

测试平台去除待测试芯片表面的环氧树脂,并对去除掉环氧树脂的待测试芯片进行抛光处理;

显微镜对待测试芯片进行放大,且,led灯对待测试芯片进行补光;

ccd相机对待测试芯片进行成像,并确定要攻击的敏感区域。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,测试平台获取敏感区域的时间位置包括:

pc机向待测试芯片发送指令信号;

被动电磁探头采集指令信号后敏感区域响应算法的电磁场信号,且,将电磁场信号通过示波器进行显示;

当示波器上出现与预先存储的电磁信号相同的电磁场信号时,提取电磁场信号对应的时刻,并将时刻记作时间位置。

结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,测试平台在时间位置对敏感区域进行电磁错误注入攻击包括:

pc机根据时间位置发送指令给控制板修改触发信号时刻;

电磁注入平台接收所述触发信号输出窄脉冲信号;

主动电磁探头对敏感区域注入电磁错误攻击信号。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,方法还包括:

当对同一个敏感区域多次注入电磁错误攻击信号时,pc机在相邻两次的电磁错误攻击信号注入之间加入时间延时。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,方法还包括:

当对不同敏感区域先后注入电磁错误攻击信号时,pc机在不同敏感区域之间注入电磁错误攻击信号注入时加入时间间隔。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,方法还包括:

测试平台测量待测试芯片运行算法的时间和重启时间;

pc机向待测试芯片发送指令运行算法;

当待测试芯片的响应时间大于运行时间和重启时间的总和时,测试平台给待测试芯片进行复位。

结合第一方面的第六种可能的实施方式,本发明实施例提供了第一方面的第七种可能的实施方式,其中,方法还包括:

通过上位机查询复位后的待测试芯片是否已经重新运行算法;

当查询的次数超过预先设定的阈值时,pc机向待测试芯片重新发送算法运行指令。

第二方面,本发明实施例提供了电磁错误注入攻击系统,包括:敏感区域测试模块,用于测试平台获取待测试芯片的敏感区域;

时间位置测试模块,用于测试平台获取敏感区域的时间位置,其中,时间位置是敏感区域运行算法相对于触发信号的时间间隔;

攻击注入模块,用于测试平台在时间位置对敏感区域进行电磁错误注入攻击。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,敏感区域测试模块包括:

预先处理单元,用于测试平台去除待测试芯片表面的环氧树脂,并对去除掉环氧树脂的待测试芯片进行抛光处理;

辅助处理单元,用于显微镜对待测试芯片进行放大,且,led灯对待测试芯片进行补光;

成像处理单元,用于ccd相机对待测试芯片进行成像,并确定要攻击的敏感区域。

本发明实施例提供的电磁错误注入攻击方法及系统,其中,该电磁错误注入攻击方法包括:首先,由测试平台获取待测试芯片的敏感区域,之后,测试平台获取敏感区域的时间位置,其中,时间位置是敏感区域运行算法相对于触发信号的时间间隔,这样,测试平台能在上述时间位置对敏感区域进行电磁错误注入攻击,通过上述方法,待测试芯片在运行程序或者算法的过程中,测试平台能够准确锁定待测试芯片的敏感区域,并且,在恰当的时间位置对待测试芯片注入电磁错误以进行攻击,从而提高了测试中攻击的准确度,提高了测试效率。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例所提供的电磁错误注入攻击方法的流程图;

图2示出了本发明实施例所提供的电磁错误注入攻击方法的示意图;

图3示出了本发明实施例所提供的电磁错误注入攻击系统的结构框架图;

图4示出了本发明实施例所提供的电磁错误注入攻击系统中敏感区域测试模块的结构连接图。

图标:1-敏感区域测试模块;2-时间位置测试模块;3-攻击注入模块;11-预先处理单元;12-辅助处理单元;13-成像处理单元。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,智能终端随处可见,智能终端上运行的算法(也称app)各种各样,在运行算法过程中智能终端的安全性尤为突出。现在对硬件的安全分析主要集中在智能卡领域,在该领域中,电源线和地线能够直接获得,即由电源线和地线来采集智能卡的功耗信号,通过分析采集到的功耗信号来计算智能终端中被攻击算法的时间位置。但是,智能终端中多任务操作同时存在,单纯依靠电源线或地线上的功耗信号难以准确确定被攻击算法的时间位置,直接对智能终端进行电磁错误注入攻击测试,进而难以准确锁定智能终端中芯片的敏感区域(即在运行算法时容易受到攻击的区域),也就难以检测出有问题的芯片,从而无法保证智能终端的安全使用。

基于此,本发明实施例提供了电磁错误注入攻击方法及系统,下面通过实施例进行描述。

实施例1

参见图1,本实施例提出的电磁错误注入攻击方法具体包括以下步骤:

步骤s1:测试平台获取待测试芯片的敏感区域。

电磁错误注入是在被测样品正常运行时,引入一束精确可控的“干扰”,使被测智能终端的待测试芯片运行的算法发生错误,攻击者利用这种干扰产生的错误状态获取非法权限或敏感信息的攻击。在测试过程中,就是通过电磁错误注入攻击即利用瞬时电磁脉冲产生错误的攻击来检验某个待测试芯片的抗干扰能力。

这里,首先需要说明,在本电磁错误注入攻击方法中的测试平台中主要包括:红外ccd相机、ccd相机、红外led、led、显微镜、被动电磁探头、主动电磁探头、示波器、pc机、控制板(内含复位继电器)、智能终端主板、智能终端电池和电磁注入平台等。

电磁错误注入攻击中的磁场信号属于近场,磁场的强度与距离的三次方成反比,而且,随着距离的增加,磁场衰减较快。另外,智能终端在执行不同的算法(即在不同操作系统下运行的应用程序不同)时,智能终端中芯片的不同区域(模块)参与的程度也不一样,比如,执行算法时,算法处理模块参与较多;执行if判断等流程时,逻辑单元参与较多。当攻击被测试算法时,攻击参与该算法较多的区域(模块)时,容易攻击成功。因此,电磁错误注入攻击是需要对芯片中位置比较敏感的区域进行攻击的测试方法。

参见图2,测试平台获取待测试芯片的敏感区域的步骤具体如下:

步骤s101:测试平台去除待测试芯片表面的环氧树脂,也就是进行开帽处理,并对去除掉环氧树脂的待测试芯片进行抛光处理,以使芯片便于观察。

但是,当芯片正面焊接到电路板上时,当开帽后得到的是芯片的正面图像时,利用ccd相机从芯片正面来确定芯片的不同区域。当开帽后得到的是芯片的背面图像时,芯片的背面是硅衬底。在本申请中,利用红外线可穿透硅衬底的原理,使用红外ccd相机从芯片背面来确定芯片的不同区域。

步骤s102:显微镜对待测试芯片进行放大,并且,led灯对待测试芯片进行补光。

由于,通过普通的光学透镜无法看到芯片各区域的相对位置,因此,在本申请中,要利用显微镜对待测试芯片进行放大。

无论是使用ccd相机还是红外ccd相机来进行区域确定时,都需要进行使用显微镜对芯片进行放大,同时,需要led灯进行补光。当利用ccd相机从芯片正面来确定芯片的不同区域时,利用普通的led灯进行补光即可;当使用红外ccd相机从芯片背面来确定芯片的不同区域时,需要利用红外led灯来补光。即在显微镜的旁边增加多个1050nm的led灯,使其对用显微镜观察的待测试芯片进行补光。

步骤s103:ccd相机对待测试芯片进行成像,并确定要攻击的敏感区域。

当ccd相机对待测试芯片进行成像,通过成像分析芯片的不同区域,然后根据被攻击的算法,确定出敏感区域。根据实际需要,还可以对测定出的敏感区域进行相应的标记。

步骤s2:测试平台获取敏感区域的时间位置,其中,时间位置是敏感区域运行算法相对于触发信号的时间间隔。

通常,智能终端具有多任务操作系统,在执行某个算法时,智能终端会有不同的任务中断程序的执行。被攻击算法的实际执行时间只占整个程序执行时间的一部分。因此,只有准确的得到被攻击算法相对于触发信号的时间间隔才能进行准确的时间攻击,在进行测试的过程中,时间间隔被称为时间位置。当智能终端在运行某个算法的过程中,智能终端具有多个电压域以及复杂的电源管理系统,电源端或地端的功耗信号特征不明显,不能通过采集电源端或地端的功耗信号来确定被攻击程序与触发信号之间的时间间隔。

在进行测试之前,先将被动电磁探头连接到示波器上,时间位置的测试过程具体包括如下步骤:

首先,pc机向待测试芯片发送指令信号,以使智能终端中的待测试芯片开始运行算法。

之后,被动电磁探头采集敏感区域响应指令信号后的电磁场信号,并且,将电磁场信号通过示波器进行显示,也就是当不对上述敏感区域进行电磁错误注入的时候,被动电磁探头移动到待测试芯片上面,采集该芯片在响应指令信号后辐射出的电磁场信号,并通过示波器进行实时显示。

最后,当示波器上出现与预先存储的电磁信号相同的电磁场信号时,即采集过程中出现电磁信号的特定特征时,提取该电磁场信号对应的时刻,即该电磁场信号相对于触发信号的时间间隔,并将这个时间间隔记作时间位置。

在得到上述时间位置后,根据该时间位置的值重新计算pc机中触发信号所在脚本中对应的延时时间,即将pc机发射触发信号的时刻设定为时间位置所对应的时刻。

步骤s3:测试平台在时间位置对敏感区域进行电磁错误注入攻击。

这里,需要说明的是在进行测试之前,先将主动电磁探头连接到电磁注入平台上,之后,pc机根据时间位置发送指令给控制板修改触发信号时间,电磁注入平台接收到触发信号后发出窄脉冲信号,主动电磁探头接收电磁注入平台发出的窄脉冲信号,然后转化成电磁场脉冲,并对敏感区域注入电磁错误攻击信号。

此外,考虑到智能终端的芯片内部走线及mos管等结构的存在使芯片内部形成一定的等效电感和等效电容,由于,这些等效电感和等效电容具有储能的作用,并且有一定的延时作用。当芯片受到电磁错误注入攻击时,由于,这些等效电感和等效电容的存在,感应生成的电压(电流)不能及时的泄放掉,当再次受到电磁攻击时,两次生成的感应电压(电流)会进行叠加,以此类推,当攻击到一定次数时,叠加生成的电压(电流)就会超过芯片的可承受的值,此时芯片就会重启,严重时甚至损毁。

在该电磁错误注入攻击方法中,当对同一个敏感区域多次注入电磁错误攻击信号时,pc机在相邻两次的电磁错误攻击信号注入之间加入时间延时。另外,当对不同敏感区域先后注入电磁错误攻击信号时,pc机在不同敏感区域之间注入电磁错误攻击信号注入时加入时间间隔。

通过对同一个敏感区域在不同攻击次数之间加入适当的时间延时,能够有效减弱电磁的累计效应。当同一个位置的敏感区域进行多次重复攻击时,也在每次攻击之间加上一定的时间延时(脚本内可任意配置),这些延时也用于释放掉上次攻击产生的影响。另外,在芯片表面扫描攻击的测试过程中,因为两个敏感区域的位置之间距离较近,因此,攻击上一个敏感区域产生的影响会影响到下一个敏感区域。当一个敏感区域攻击完成后,加入时间间隔即延时一定的时间(脚本内可任意配置),这样,上个敏感区域的电磁感应产生的电压(电流)通过这段时间间隔释放掉,攻击下一个敏感区域时就不会叠加上一次产生的感应电压(电流)。

这里,需要说明同一个敏感区域不同次数之间的时间延时的数值可根据情况灵活设定,具体大小以上次产生的电磁效应能够释放掉为宜,不同位置的敏感区域之间的时间间隔的数值也可根据情况灵活设定,具体大小以上次产生的电磁效应能够释放掉为宜。

此外,对智能终端的待测试芯片进行电磁错误注入攻击时,芯片易进入栓锁状态,芯片在该状态下会大量发热,如果芯片长时间处于栓锁状态就会造成永久性损坏,为了避免智能终端长时间处于栓锁状态而造成芯片的损坏,在该电磁错误注入攻击方法还包括:测试平台测量待测试芯片的运行时间和重启时间,pc机向待测试芯片注入电磁错误攻击信号,当待测试芯片的响应时间大于运行时间和重启时间的总和时,测试平台给待测试芯片进行复位,具体实现方式如下:

首先,需要进行硬件上的重新连接,将pc机和控制板相连,由控制板中的处理器来控制pc机是否向智能终端发出触发信号,即控制板中的处理器相当于开关的作用,控制板中的处理器与pc机通过usb线或者导线等均可以连接,并且,控制板中还包括复位继电器。之后,将智能终端的主板与智能终端的电池之间的连接断开,然后,分别将主板和电池连接到上述复位继电器的两端。控制板上的处理器接收到pc机发送的控制指令后控制复位继电器,从而使智能终端进入复位操作。

那么,控制板上的处理器接收到pc机发送的控制指令的时间点为关键信息。

在无电磁错误注入情况下,pc机发送被测程序的指令信号到智能终端的待测试芯片,测试平台开始计时,当待测试芯片响应指令信号后计时停止,中间的计时时间为t0。统计待测试芯片执行n1次指令信号的时间为t0,取最大值t0max,令t1=n2*t0max(n1、n2值可自由设置),记运行时间为t1。并且,智能终端重启的时间为t2,统计终端执行m1次重启的时间,取最大值记为t2max,令t3=m2*t2max(m1、m2值可自由设置),记重启时间为t3。

当pc机向待测试芯片进行电磁错误注入攻击测试时,如果待测试芯片的响应时间大于运行时间和重启时间的总和,即从pc机发送指令信号到智能终端的时刻开始计时,当计时时间t大于运行时间和重启时间的总和时,如果智能终端还没有响应返回,这时,先检测智能终端是否还保持与pc机的连接,如果此时终端与pc机保持连接,则不对终端进行复位操作,如果,智能终端与pc机的连接已经断开,则pc机发送指令到控制板,使控制板上的复位继电器断开连接,对智能终端进行下电,延时一段时间(该时间可自由设置)后,控制板控制复位继电器使其两端恢复连接,以完成对智能终端的上电,通过对智能终端的上下电操作,完成对待测试芯片的自动复位。

此外,在实际操作过程中,电磁错误注入测试需要进行大量的扫描攻击(即对同一个敏感区域进行多次重复测试)和重复攻击(即对不同的敏感区域分别进行测试),测试过程中为了保护被攻击芯片,需要对处于异常状态中的待测试芯片进行复位,复位后等待pc机对智能终端重新发送指令信号,这个等待的过程会消耗大量时间,严重影响测试效率。

为了解决上述问题,本电磁错误注入攻击方法还包括:通过上位机查询复位后的待测试芯片是否已经重新运行电磁错误攻击信号,当查询的次数超过预先设定的阈值时,pc机向待测试芯片重新注入电磁错误攻击信号,具体操作如下:智能终端下电后,pc机发送指令给控制板,控制板控制其上的复位继电器,使其对智能终端进行上电,智能终端上电后pc机开始计时,当计时时间t>p*t2max时,通过上位机的查询判断,查看智能终端是否已连接,如果,查询的次数超过预先设定的阈值时,智能终端未连接,向pc机发送提示未连接响应,不再进行查询,如果智能终端已经连接,利用adb发送命令,重启智能终端上的测试算法,然后pc机重新运行测试脚本,向智能终端上的待测试芯片发送指令信号,再次进行电磁错误注入攻击,实现重新启动。

综上所述,本实施例提供的电磁错误注入攻击方法包括:首先,由测试平台获取待测试芯片的敏感区域,然后,测试平台获取敏感区域的时间位置,得到上述敏感区域和时间位置后即获得了在测试过程中,测试平台对待测试芯片要攻击的具体位置(也就是敏感区域)和具体时间(也就是时间位置),这样,测试平台能在上述时间位置对敏感区域进行电磁错误注入攻击,通过上述电磁错误注入攻击方法,测试平台能够准确锁定待测试芯片在运行某个算法时的敏感区域,并且,在恰当的时间位置对待测试芯片注入电磁错误以进行攻击,这样增强了测试中攻击的准确度,提高了测试效率。

实施例2

参见图3和图4,本实施例提供了电磁错误注入攻击系统包括:依次相连的敏感区域测试模块1、时间位置测试模块2和攻击注入模块3,工作时,敏感区域测试模块1用来测试平台获取待测试芯片的敏感区域,时间位置测试模块2用来测试平台获取敏感区域的时间位置,攻击注入模块3用来测试平台在时间位置对敏感区域进行电磁错误注入攻击。

其中,敏感区域测试模块1包括:依次相连的预先处理单元11、辅助处理单元12和成像处理单元13,在使用过程中,预先处理单元11用来测试平台去除待测试芯片表面的环氧树脂,并对去除掉环氧树脂的待测试芯片进行抛光处理,辅助处理单元12用来显微镜对待测试芯片进行放大,且,led灯对待测试芯片进行补光,成像处理单元13用来ccd相机对待测试芯片进行成像,并确定要攻击的敏感区域。

综上所述,本实施例提供的电磁错误注入攻击系统包括:依次相连的敏感区域测试模块1、时间位置测试模块2和攻击注入模块3,工作时,敏感区域测试模块1用来测试平台获取待测试芯片的敏感区域,时间位置测试模块2用来测试平台获取敏感区域的时间位置,攻击注入模块3用来测试平台在时间位置对敏感区域进行电磁错误注入攻击,通过上述各个模块的设置,有效提高了在待测试芯片上进行电磁错误注入攻击的准确性,进而提高了测试效率。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有1条留言
  • 访客 来自[江西省南昌市电信] 2020年04月30日 15:31
    拜读您的文章,可以认识一下吗?我们也是从事电磁故障注入测试研究的单位,我的wx:dulei8772
    0
1