智能卡的边频攻击分析及安全防范措施.docx
- 文档编号:17584307
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:5
- 大小:67.23KB
智能卡的边频攻击分析及安全防范措施.docx
《智能卡的边频攻击分析及安全防范措施.docx》由会员分享,可在线阅读,更多相关《智能卡的边频攻击分析及安全防范措施.docx(5页珍藏版)》请在冰点文库上搜索。
智能卡的边频攻击分析及安全防范措施
智能卡的边频攻击分析及安全防范措施
在智能卡应用日益广泛的今天,智能卡应用系统的安全问题特不重要。
通常认为智能卡具有较高的安全性[1],但随着一些专用攻击技术的出现和进展,智能卡也呈现出其安全漏洞,导致整个应用系统安全性降低。
分析智能卡面临的安全攻击,研究相应的防备措施,关于保证整个智能卡应用系统的安全性有重大意义。
下面分析目前要紧的智能卡攻击技术之一——边频攻击技术,并有针对性地提出相应的安全设计策略。
1智能卡简述
智能卡是将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片上制成的卡片。
智能卡的硬件要紧包括微处理器和存储器两部分,逻辑结构如图1所示。
智能卡内部的微处理器多采纳8位字长的CPU(因此更高位的微处理器也正在开始应用)。
微处理器的要紧功能是接收外部设备发送的命令,对其进行分析后,依照需要操纵对存储器的访问。
访问时,微处理器向存储器提供要访问的数据单元地址和必要的参数,存储器则依照地址将对应的数据传输给微处理器,最后由微处理器对这些数据进行处理操作。
此外,智能卡进行的各种运算(如加密运算)也是由微处理器完成的;而操纵和实现上述过程的是智能卡的操作系统COS。
卡内的存储器容量由只读存储器ROM、随机存储器RAM和电擦除可编程存储器EEPROM组成。
其中,ROM中固化的是操作系统代码,其容量取决于所采纳的微处理器;RAM用于存放操作数据,容量通常不超过1KB;EEPROM存储智能卡的各种信息,如加密数据和应用文件等,容量通常介于2KB~32KB之间(这部分存储资源可供用户开发利用)。
2对智能卡安全的威胁
对智能卡的攻击可分为三种差不多类型:
①逻辑攻击——在软件的执行过程中插入窃听程序。
智能卡及其COS中存在多种潜在的逻辑缺陷,诸如潜藏的命令、不良参数与缓冲器溢出、文件存取、恶意进程、通信协议、加密协议等。
逻辑攻击者利用这些缺陷诱骗卡泄露机密数据或同意非期望的数据修改。
②物理攻击——分析或更改智能卡硬件。
用于实现物理攻击的手段和工具包括化学溶剂、蚀刻与着色材料、显微镜、亚微米探针台以及粒子束FIB等。
③边频攻击——利用物理量来分析和更改智能卡的行为。
通过观看电路中的某些物理量,如能量消耗、电磁辐射、时刻等的变化规律,来分析智能卡的加密数据;或通过干扰电路中的某些物理量,如电压、电磁辐射、温度、光和X射线、频率等,来操纵智能卡的行为。
智能卡攻击方法的有效性以攻击者所获得的效益高于其耗费的时刻、精力、经费等作为标准。
表1给出了上述三种攻击类型的情况对比。
由表1可见,物理攻击成本过高,耗时费劲,较少被采纳;逻辑攻击尽管投入较少,容易实施,但也容易防范,成功率较低。
近年来,新兴的边频攻击技术因其较高的收益成本比而被广泛使用。
尽管智能卡业界关于边频攻击的解决方案已有了越来越多的认识,然而许多智能卡关于这类攻击仍毫无免疫力。
目前,应用最为广泛的边频分析和边频操纵技术包括:
差分能量分析技术DPA(DifferentialPowerAnalysis)与能量短脉冲波形干扰(PowerGlitching)技术。
下面重点就这两种边频攻击的方法加以分析,并给出相应的安全策略。
3差分能量分析
3.1DPA攻击的分析
DPA(差分能量分析)攻击是通过用示波镜检测电子器件的能量消耗来获知其行为的。
图2为某智能卡用DES算法加密时的能量追踪图。
由图2可见,能量消耗是不连续的并呈现出某种模式。
众所周知,用DES算法对一个输入数据加密时需要执行16次循环,因此能够在能量轨迹的16次重复模式中识不出这些循环。
攻击者只需明白算法的明文(输入)或密文(输出),通过分析和比较一系列的能量轨迹就可重现加密密钥。
DPA攻击的基础是假设被处理的数据与能量消耗之间存在某种联系,换句话讲,假设处理0比1所用的能量要少(反之亦然),那么对两个不同数据执行同一算法的两个能量轨迹会由于输入数据的不同而产生微小的差不。
用计算机严格按时钟计算两条轨迹的差得到差分轨迹,差分轨迹中出现峰值的时刻即是输入数据产生差不的时钟周期。
如此检查加密算法的所有输入以及每一对0和1产生的差分轨迹,就能够识不出它们出现在程序代码中的确切时刻,从而猎取加密密钥。
DPA使得加密算法的内部处理过程能够被研究,这一危险性对智能卡安全提出了更高的要求。
加密算法必须使用足够长度的全密钥,以保证探究密钥的过程因过于耗时而不可行。
一个完整的算法通常在加密过程中分解成许多小步骤以使处理器能够实现。
这些小步骤往往不使用全密钥而是用其中的一部分。
DPA能够猎取这些小步骤的输出并探究出这些较短的密钥值,因此,从理论上讲,所有加密算法都可用DPA破解。
尽管这种攻击方法的开发十分复杂,然而其应用却十分简单且只需专门小的投资,所需的设备仅限于1台PC及中等精度的示波镜,因此解决DPA问题成为智能卡制造商最急需面对的问题之一。
3.2DPA攻击的安全策略
应对DPA攻击的安全策略差不多分为三个层面:
硬件、软件和应用层面。
(1)硬件层面的反措施
①采纳平衡电路降低信号能量,以及设置金属防护以抑制电磁发射。
②执行并行随机处理来加大幅值噪声水平。
例如,内部编程电压产生电路可用作并行噪声发生器。
③随时处理中断引入的时刻噪声和不同的时钟频率。
对差分轨迹进行计算机处理的基础是轨迹可排列。
在加入轨迹之前处理器的工作步骤应是同步的。
时刻噪声会防止或至少阻碍轨迹专门好地排列。
硬件反措施的好处在智能卡关于侧路攻击的敏感性比较少地依靠于软件的变化,但其弱点在于只能降低智能卡关于侧路攻击的敏感性而无法完全消除它。
事实上,硬件防范措施只是将信号降低到噪声水平从而使攻击变得困难。
(2)软件层面的反措施
①采纳随机处理顺序来减少相关的信号。
例如,算法中的平行置换(诸如DES中的S盒)可依随机的顺序来完成,置换的数目重新排序,则可将一次置换产生的信号分解。
②利用随机延时和改变路径来增加计时噪声。
计时噪声会阻碍轨迹的排列,并降低差分轨迹的质量。
③消除密钥值及中间媒介值的时刻依存性。
当处理过程取决于密钥值时,直接用肉眼观看轨迹就可实现简单的能量分析;而在时刻上连续的密钥处理过程则可防止这种易行的攻击。
④用随机值来隐蔽中间媒介值。
能量的泄露取决于一个数据中的位数。
假如在实际数据上加上随机数据,处理完之后再减去,那么传递的路径将可不能泄露有用的信息。
只是,这种隐蔽将会导致传递函数的非线性并产生错误的结果。
因此,这些函数需要认真地重新设计,以补偿由随机数据引起的背离。
理论上来讲,软件对策完美地解决了DPA攻击的问题。
然而这种方法必须针对某种算法定制且其设计相当困难,因而特不昂贵且难以维持。
(3)应用层面的反措施
①重设计数器,用于限制攻击者试探的次数。
连续三次PIN校验失败后自锁是防范差分能量分析的有效方法。
②限制加密算法中输入输出的操纵和可见度。
假如只能选择部分输入,或只有部分算法的结果返回,攻击者就无法完成差分能量分析。
以上是防范DPA攻击的差不多方法,其缺点是对可靠性的负面阻碍以及需要改变已有的协议。
4能量短脉冲干扰
4.1能量短脉冲干扰攻击的分析
微处理器要求在稳定的电压下工作,能量供应的中断就看起来突然冲击程序运行或复位电路。
然而,一个短而巧妙的脉冲能够引起单步的程序错误而微处理器仍能接着执行程序。
例如,CPU读取存储单元的内容,晶体管用一个阈值来检测存储单元的值,以确定所读的是逻辑“0”或“1”。
突然出现的能量短脉冲对存储值和逻辑值都会产生阻碍。
不同的内部容量会使存储值受到不同的阻碍,有可能会使真实的值被歪曲。
如图3所示,与逻辑“0”对应的低电平在正常的操作状态下可能低于阈值电平,然而由于短脉冲的能量下压可能导致其高于阈值电平。
许多加密算法都易受这一类故障注入的阻碍。
采纳差分故障分析DFA(DifferentialFaultAnalysis)技术将正确的与错误的密码编码相比较,从而析出秘藏的密钥。
有些算法仅当一个精确的中间值被突击时才能被攻击,而其他算法要求不那么苛刻,能够在处理过程的任何位置被攻击。
通常DFA要求有可能对同一个明文加密2次,产生一个正确的和一个错误的密文。
故障注入的第二种应用发生于安全处理过程关键的决定时刻。
若某一应用执行一个诸如PIN校验的安全检查,那么在器件决定是接着依旧中断处理的那一刻进行攻击最为有效。
攻击者有可能将PIN校验失败转为成功以欺骗处理器。
更为严格的一种方式是,在处理器刚要将校验失败写入存储器时完全关闭电源,从而幸免PIN校验失败计数器溢出。
短脉冲干扰的第三种应用以操纵通信活动为目标。
通信协议的设计是为了从智能卡存储器中读取几个字节并传送到终端。
假如故障注入成功地攻击了发送限制计数器,就可能导致整个存储器内容输出到串行接口。
4.2能量短脉冲干扰的安全策略
能量短脉冲干扰以及其他侧路操纵技术都企图改变智能卡的环境。
通常防范这类攻击的策略是严格的电压、频率和温度检测。
然而使用精确的传感器也会阻碍可靠性,并在某些终端中导致潜在的故障。
不仅如此,传感器也不可能检测到所有的诱导信号。
电路关于通过感应方式注入的信号或精心调整的能量短脉冲不可能完全免疫。
重要的是,要运用软件或应用的防范措施来侦查和恢复故障注入。
就软件防范措施而言,能够通过检查关键的程序流向以及加密运算结果来实现故障监测。
求两次运算结果并加以比较是检测结果有效性的方法之一,但若两次都注入同样错误的则无法检测出来;因此最佳的方法是由结果反向运算求出其输入,并与原来的输入进行比较。
反向运算通常是不同的,同时反向操纵会更为困难。
5结语智能卡应用系统是一个安全环境专门复杂的系统。
本文为分析那个系统面临的安全攻击提供了一个思路,为系统的安全设计提供了依据。
下一步工作是量化各安全设计策略,在降低安全威胁与增加安全成本之间查找最佳平衡点的方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能卡 攻击 分析 安全 防范措施
![提示](https://static.bingdoc.com/images/bang_tan.gif)