智能卡的攻击技术分析及安全设计策略
文章出处:http://www.singbon.com 作者:中国一卡通网 收编 人气: 发表时间:2011年09月28日
0 引言
在智能卡应用日益广泛的今天,智能卡应用系统的安全问题非常重要。通常认为智能卡本身具有较高的安全性 ,但随着一些专用攻击技术的出现和发展,智能卡也呈现出其安全漏洞,从而导致整个应用系统安全性降低。分析智能卡面临的安全攻击,研究相应的防御措施,对于保证整个智能卡应用系统的安全性有重大的意义。本文首先分析了目前主要的智能卡攻击技术,并有针对性地提出相应的安全设计策略。
1 智能卡设计简述
智能卡是将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片上制成的卡片,智能卡的硬件主要包括微处理器和存储器两部分,逻辑结构如图1 所示。
智能卡内部的微处理器一般采用8 位字长的中央处理器,当然更高位的微处理器也正在开始应用。微处理器的主要功能是接受外部设备发送的命令,对其进行分析后,根据需要控制对存储器的访问。访问时,微处理器向存储器提供要访问的数据单元地址和必要的参数,存储器则根据地址将对应的数据传输给微处理器,最后由微处理器对这些数据进行处理操作。此外,智能卡进行的各种运算(如加密运算) 也是由微处理器完成的。而控制和实现上述过程的是智能卡的操作系统COS。卡内的存储器容量一般都不是很大,存储器通常是由只读存储器ROM、随机存储器RAM 和电擦除可编程存储器EEPROM组成。其中,ROM 中固化的是操作系统代码,其容量取决于所采用的微处理器;RAM 用于存放操作数据,容量通常不超过1KB; EEPROM中则存储了智能卡的各种信息,如加密数据和应用文件等,容量通常介于2KB 到32KB 之间,这部分存储资源可供用户开发利用。
图1 智能卡的硬件结构
2 智能卡攻击技术分析
在智能卡的设计阶段、生产环境、生产流程及使用过程中会遇到各种潜在的威胁。攻击者可能采取各种探测方法以获取硬件安全机制、访问控制机制、鉴别机制、数据保护系统、存储体分区、密码模块程序的设计细节以及初始化数据、私有数据、口令或密码密钥等敏感数据,并可能通过修改智能卡上重要安全数据的方法,非法获得对智能卡的使用权。这些攻击对智能卡的安全构成很大威胁。
对智能卡的攻击可分为三种基本类型:
(1) 逻辑攻击:在软件的执行过程中插入窃听程序bugs
(2) 物理攻击:分析或更改智能卡硬件
(3) 边频攻击:利用physical phenomena 来分析和更改智能卡的行为
2.1 逻辑攻击技术分析
许多方面存在潜在的逻辑缺陷:
(1) 潜藏的命令:
(2) 不良参数与缓冲器溢出
(3) 文件存取
(4) 恶意进程applet?
(5) 通信协议
(6) 加密协议,设计与执行过程
2.2 物理攻击
多种方法和工具可用于实现物理攻击
(1) 化学溶剂、蚀刻和着色材料
(2) 显微镜
(3) 探针台
(4) FIB聚离子束?
物理攻击的安全对策在以下方面加以改进:
(1) 形体尺寸
(2) 多层化
(3) 保护层
(4) 传感器
(5) 不规则总线?
(6) 封胶?逻辑
2.3 边频攻击
1)差分能量分析(DPA)
差分能量分析(DPA)攻击是通过用示波镜检测电子器件的能量消耗来获知其行为。攻击者只需知道算法的明文(输入)或密文(输出),通过分析和比较一系列的能量轨迹就可重现加密密钥。
DPA攻击的基础是假设被处理的数据与能量消耗之间存在某种联系,换句话说,假设处理0比1所用的能量要少(反之亦然)。那么对两个不同数据执行同一算法的两个能量轨迹会由于输入数据的不同而产生微小的差别。用计算机严格按时钟计算两条轨迹的差得到差分轨迹,差分轨迹中出现峰值的时刻即是输入数据产生差别的时钟周期。如此检查加密算法的所有输入以及每一对0和1产生的差分轨迹,就可以识别出它们出现在程序代码中的确切时间,从而获取加密密钥。
2)能量短脉冲干扰
微处理器要求在稳定的电压下工作,能量供应的中断就好象突然冲击程序运行或复位电路。然而,一个短而巧妙的脉冲可以引起单步的程序错误而微处理器仍能继续执行程序。例如, CPU读取存储单元的内容,三极管用一个阈值来检测存储单元的值以确定所读的是逻辑0或1。突然出现的能量短脉冲对存储值和逻辑值都会产生影响。不同的内部容量会使存储值受到不同的影响,有可能会使真实的值被歪曲。如图3所示,与逻辑0对应的低电平在正常的操作状态下可能低于阈值电平,然而由于短脉冲的能量下压可能导致其高于阈值电平。许多加密算法都易受这一类故障注入的影响。采用差分故障分析(DFA, Differential Fault Analysis )技术将正确的与错误的密码编码相比较从而析出秘藏的密钥。
图3 读存储器时能量短脉冲干扰
短脉冲干扰的第二种攻击方式是将PIN校验失败转为成功以欺骗处理器。更为严格的一种方式是在处理器正要将校验失败写入存储器时完全关闭电源,从而避免PIN校验失败计数器溢出。
短脉冲干扰的第三种应用是攻击发送限制计数器,从而导致整个存储器内容输出到串行接口。
3 智能卡的安全设计策略
安全应用的设计者使用智能卡而无视其许多的弱点(攻击点?),可供选择的解决方案有着其自己的安全漏洞,甚至于更不安全。本节为设计者提供一些应用技巧,以达到适当水平的安全。
3.1 攻击者的商业状况
大多数严重的威胁来自于寻求经济利益的攻击者。这一类攻击者会慎重考虑成本与收入之间的平衡。防范措施的技巧多在于增加攻击成功的难度和成本。
3.2 设计步骤
智能卡应用系统的设计者使用现成?的智能卡产品来设计系统、软件和协议,实现系统应用。尽管面临重重威胁,他仍然需要交付一个足够安全的系统。
以下是达成这一目标所需要采取的步骤:
(1)确定应用系统所需的安全程度及特殊的安全要求。同时还需要将技术上、商业上、公共关系上(品牌价值)潜在的安全成本考虑在内。
(2)进行风险分析并评估安全威胁。
(3)分析攻击者的商业状况,考虑从善意的黑客到犯罪组织等各种类型的攻击者。
(4)选择能达到所要求的安全级别的智能卡解决方案。
3.1 逻辑攻击的安全策略
逻辑攻击的安全对策
(1) 结构化设计
(2) 正规的校验
(3) 测试
(4) 接口与应用的标准化
(5) 集中?应用JAVA卡操作系统
(6) 普及评估实验室
3.2 物理攻击的安全策略
物理攻击的安全对策在以下方面加以改进:
(7) 形体尺寸
(8) 多层化
(9) 保护层
(10) 传感器
(11) 不规则总线?
(12) 封胶?逻辑
3.3 安全设计策略
面对上述种种攻击手段,智能卡在设计时应根据所要求的安全级别采用响应安全设计策略,其基本思想是:增加芯片上集成电路的复杂性;提高电路的抗干扰能力;增加噪声来掩盖真正的电源功率的消耗;提高对异常信号的控制功能等等。具体预防措施如下:
(1)限制程序计数器技术
在上面所述的短脉冲攻击中,由于攻击者可以利用程序计数器来增加对内存数据的访问, 因此在智能卡程序设计时一定要限制程序计数器的使用, 以免被攻击者所利用。
(2)随机的时钟信号
许多逻辑和边频攻击技术是要攻击者预见某条指令执行的准确时间。如果处理器在每一次复位后执行一个相同的指令,很容易被攻击者发现。推测处理器的行为也能简化对协议的分析。因此预防措施是在可观察和关键的操作之间插入随机的时钟,这样可以有效地防止这种攻击。
(3)低频传感器
当智能卡芯片用低频的时钟电路驱动时,用电子流测试来观察总线的技术日益简单。因此芯片的设计者要对低于某一时钟频率的行为报警,以防止这种行为的发生。应设计这样一种电路:外部的复位信号不能直接作用到内部复位线上, 只能引起一个外部分频器来降低时钟信号频率,以激发低频探测器,而它又可激发内部复位线,最终停止分频器,而处理器通过传感器测试并开始正常的操作。这种设计的处理器在上电后没有正常的内部复位就不会运行。其它防御非入侵式攻击的传感器也要嵌入到处理器的正常操作中去,否则可以通过破坏电路的方式绕过它们。
为了增加攻击者的难度, 可以将电路设计为多个电路层。使微探针技术的使用受到一定限制,从而保证了一定的安全性。但同时也增加了电路设计的复杂性和提高了制造成本。
(5)顶层的传感器网
在芯片的表面加上一层格状的网络能够有效地防止激光切割及探针类的探测技术。这种技术也能有效地防止对低层电路的进一步探测。这种传感器网与一个寄存器的标志位相关联,当入侵行为发生的时候,寄存器的标志位发生改变,使内存的内容清零。
(6)自毁技术
在芯片的最外层沉积一层薄薄的金属膜, 并在其上可加UZ 的电压,然后在最外面用塑料封装起来。这样,芯片就好像穿了一层导电的衣服。如攻击者用精密机械探针插入芯片内企图探测里面的密码时, 会引起短路而烧毁芯片。
(7)抗电磁探测密码技术
采用平衡电路降低信号能量以及设置金属防护以抑制电磁发射。导电衣服对芯片内发出的电磁辐射有一定的屏蔽或衰减作用,使其辐射出来的电磁波减弱。因此可以在芯片里面加上1个随机数发生器, 其结果是使辐射出的电磁波更加混乱, 即便是灵敏的电磁探头测到它的电磁辐射也无法分析到里面的真实密钥。
(8)锁存电路
在智能卡的处理器中设置锁存位。当出现异常情况,如温度、压力、电压、电流等出现不安全的情况并对芯片内的敏感数据产生威胁时,它会发出解锁电平,同时立即清除芯片中的敏感数据&注意此项功能的设置与用户所采用的安全策略有关,否则容易引起用户不满。
(9)随机多线程
设计多线程处理器结构,由硬件控制处理器,在每一个指令组随机有N 个或多个线程在执行。这样的处理器由多组寄存器、程序计数器、指令寄存器等组成,组合逻辑采取随机改变的方式。
(10)破坏测试电路:在智能卡卡生产时一般会保留测试电路用以测试智能卡卡是否合格,而有些智能卡卡在发行时仍然保留了这些测试电路,从而为攻击者提供了巨大的便利,因此,在智能卡检测合格后,应该破坏掉这些电路。
4 结论
智能卡应用系统是一个安全环境很复杂的系统,本文为分析这个系统面临的安全攻击提供了一个思路,为系统的安全设计提供了依据。下一步工作是量化各安全设计策略,探索在降低安全威胁与增加安全成本之间寻找最佳平衡点的方法。