智能卡攻击技术与安全策略的研究
来源:中国一卡通网 作者:毛丰江, 温希东 发布时间:2009-09-30 11:48:41 字体:[大 中 小]
关键字:攻击技术 安全策略 差分能量分析 智能卡
摘 要:在智能卡的设计、生产和使用过程中存在各种安全漏洞,对信息安全系统危害极大。首先对智能卡安全攻击的主要方法进行了研究,分析了几种最新的智能卡攻击技术的原理与关键步骤。在此基础上,从软件、硬件和应用层面提出了相应的安全设计策略。最后指出智能卡安全策略的关键在于在降低安全威胁与增加安全成本之间寻找最佳平衡点。
3 智能卡的安全设计策略
某些信息安全系统采用了智能卡来提高系统的安全性却无视其弱点,导致系统安全解决方案有着其自身的安全漏洞,甚至于更不安全。针对上述智能卡攻击技术,本节为设计者提供相应的安全设计策略。
3.1 逻辑攻击的安全设计策略
系统对逻辑攻击的敏感性很大程度上取决于软件的复杂程度,然而窃听程序的数目也会随着程序代码的增加而增长。对付窃听程序以及软件缺陷的安全策略包括:①结构化设计:以小的功能模块构建软件,使程序易于理解和校验;②正规的校验:使用数学模型来检验功能;③测试:对软件的运行进行。
在智能卡领域,接口与应用的标准化、应用Java卡操作系统以及评估实验室的普及已成为几大趋势。即便如此,智能卡仍远未能对逻辑攻击免疫,软件复杂程度的提高总是会带来引入新漏洞的危险。
3.2 物理攻击的安全设计策略
仅在数年前智能卡芯片是使用常规芯片制造中的“退役设备”来生产的,这是因为芯片的功能要求低,相应价格也低。今天智能卡市场的巨大增长及功能复杂程度的迅速提高使得厂商能够负担先进的设备和精细的设计。应对物理攻击的关键在于提高芯片设计的复杂程度和芯片制造的精细程度,具体措施包括:
(1)减小形体尺寸:过去5 年来芯片上的晶体管与导线已由1 m 降至小于200 nm,这么小的尺寸已无法使用光学显微镜来分析,也使放置探针变得极为困难,但高倍显微镜与FIB技术仍能得手。
(2)多层电路设计:不仅是增加电路的层数,而且将包含敏感数据线的层(掩埋层)隐藏在较不敏感的层之下,使微探针技术的使用受到一定限制。
(3)顶层的传感器保护网:在芯片的表面加上一层格状的带有保护信号的激活网络,当入侵行为发生时,该信号中断,使内存的内容清零。这种技术能够有效地防止激光切割及探针类的探测技术。然而技术娴熟的入侵高手仍可绕过传感器保护网探测被保护层。因此增强型的传感器保护网使用大量表面上无关且频繁变化的信号,这将大大降低FIB 技术探测内部电路层的成功率。
(4)锁存电路:在智能卡的处理器中设置锁存位。当出现异常情况,如温度、压力、电压、电流等出现不安全的情况并对芯片内的敏感数据产生威胁时,它会发出解锁电平,同时立即清除芯片中的敏感数据。注意此项功能的设置与用户所采用的安全策略有关,否则容易引起用户不满。
(5)随机多线程:设计多线程处理器结构,由硬件控制处理器,在每一个指令组随机有N 个或多个线程在执行。这样的处理器由多组寄存器、程序计数器、指令寄存器等组成,组合逻辑采取随机改变的方式。
(6)自毁技术:在芯片的最外层沉积一层薄薄的金属膜,并在其上可加5 V 的电压,然后在最外面用塑料封装起来。这样,芯片就好像穿了一层导电的衣服。当攻击者用精密机械探针插入芯片内企图探测里面的密码时,将会引起短路从而烧毁芯片。
3.3 边频攻击的安全设计策略
近年来,新兴的边频攻击技术因其非入侵式的攻击模式及较高的收益成本比而大行其道。尽管智能卡业界对于边频攻击的解决方案已有了越来越多的认识,然而许多智能卡对于这类攻击仍毫无免疫力。应对边频攻击的安全策略基本分为3 个层面:硬件、软件和应用层面。
3.3.1 硬件级的反措施
(1)采用平衡电路降低信号能量以及设置金属防护以抑制电磁发射。
(2)执行并行随机处理来加大幅值噪声水平。例如,内部编程电压产生电路可用作并行噪声发生器。
(3)随处理中断引入时间噪声和不同的时钟频率。对差分轨迹进行计算机处理的基础是轨迹可排列。在加入轨迹之前处理器的工作步骤应是同步的。时间噪声会防止或至少妨碍轨迹很好地排列。
(4)严格的电压、频率和温度检测以防止能量短脉冲干扰改变智能卡的环境。然而使用精确的传感器也会影响可靠性,并在某些终端中导致潜在的故障。
3.3.2 软件层面的反措施
(1)采用随机处理顺序来减少相关的信号。例如,算法中的平行置换(诸如DES 中的S-盒)可依随机的顺序来完成,置换的数目重新排序,则可将一次置换产生的信号分解。
(2)利用随机延时和改变路径来增加计时噪声。计时噪声会妨碍轨迹的排列,并降低差分轨迹的质量。
(3)消除密钥值及中间媒介值的时间依存性。
(4)用随机值来隐蔽中间媒介值。能量的泄露取决于一个数据中的位数。如果在实际数据上加上随机数据,处理完之后再减去,那么传递的路径将不会泄露有用的信息。不过,这种隐蔽将会导致传递函数的非线性性并产生错误的结果。因此,这些函数需要仔细地重新设计以补偿由随机数据引起的背离。
(5)通过检查关键的程序流向以及加密运算结果来实现故障监测。求两次运算结果并加以比较是检测结果有效性的方法之一,但若两次都注入同样的错误的则无法检测出来。因此最佳的方法是由结果反向运算求出其输入,并与原来的输入进行比较。
3.3.3 应用级的反措施
(1)重设计数器,用于限制攻击者试探的次数。连续3 次PIN 校验失败后自锁是防范差分能量分析的有效方法。
(2)限制加密算法中输入输出的控制和可见度。如果只能选择部分输入,或只有部分算法的结果返回,攻击者就无法完成差分能量分析。
4 结束语
智能卡应用系统是一个安全环境很复杂的系统,智能卡攻击方法的有效性以攻击者所获得的效益高于其耗费的时间、精力、经费等作为标准,防范措施的技巧多在于增加攻击成功的难度和成本。然而这些防范措施将增加设计的复杂程度和成本。因此在具体应用时必须根据系统所要求的安全级别,来探索在降低安全威胁与增加安全成本之间寻找最佳平衡点的安全设计策略。
(文/深圳职业技术学院电子信息工程学院,毛丰江, 温希东)
新闻投稿合作邮箱:yktchina-admin@163.com 字体[大 中 小] [收藏] [进入论坛]