来源:中国一卡通网 作者:毛丰江, 温希东 发布时间:2009-09-30 11:48:41 字体:[大 中 小]
摘 要:在智能卡的设计、生产和使用过程中存在各种安全漏洞,对信息安全系统危害极大。首先对智能卡安全攻击的主要方法进行了研究,分析了几种最新的智能卡攻击技术的原理与关键步骤。在此基础上,从软件、硬件和应用层面提出了相应的安全设计策略。最后指出智能卡安全策略的关键在于在降低安全威胁与增加安全成本之间寻找最佳平衡点。
0 引言
近年来智能卡市场呈现出以几何级数增长的态势,智能卡以其特有的安全可靠性,被广泛应用于从单个器件到大型复杂系统的安全解决方案。然而随着智能卡的日益普及,针对智能卡安全漏洞的专用攻击技术也在同步发展。分析智能卡面临的安全攻击,研究相应的防御措施,对于保证整个智能卡应用系统的安全性有重大的意义。本文首先分析了目前主要的智能卡攻击技术,并有针对性地提出相应的安全设计策略。
1 智能卡的软硬件结构
智能卡是将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片上制成的卡片,其硬件主要由微处理器和存储器两部分构成,加上固化于卡中的智能卡操作系统(COS)及应用软件,一张智能卡即构成了一台便携和抗损的微型计算机。
智能卡的硬件构成包括:CPU、存储器(含RAM、ROM 和EEPROM 等)、卡与读写终端通讯的I/O 接口以及测试与安全逻辑,如图1 所示。作为芯片核心的微处理器多采用8 位字长的CPU(更高位的CPU 也正在开始应用),负责完成所有运算和数据交换功能。卡内的存储器容量一般都不是很大,其中,ROM 中固化的是操作系统代码及自测程序,其容量取决于所采用的微处理器,典型值为32 KB;RAM 用于存放临时数据或中间数据,例如短期密码、临时变量和堆栈数据等,容量通常不超过1 KB;EEPROM 中则存储了智能卡的各种应用信息,如加密数据和应用文件等,有时还包括部分COS 代码,容量通常介于2 KB 到32 KB 之间,这部分存储资源可供用户开发利用。
智能卡操作系统COS 的主要功能是控制智能卡和外界的信息交换,管理智能卡内的存储器并在卡内部完成各种命令的处理。卡中的数据以树型文件结构的形式组织存放。卡与终端之间通过命令响应对的形式交换信息。
CPU 与COS 的存在使智能卡能够方便地采用PIN 校验、加密技术及认证技术等来强化智能卡的安全性,但这并不意味着智能卡是绝对安全的。在智能卡的设计阶段、生产环境、生产流程及使用过程中会遇到各种潜在的威胁。攻击者可能采取各种探测方法以获取硬件安全机制、访问控制机制、鉴别机制、数据保护系统、存储体分区、密码模块程序的设计细节
以及初始化数据、私有数据、口令或密码密钥等敏感数据,并可能通过修改智能卡上重要安全数据的方法,非法获得对智能卡的使用权。这些攻击对智能卡的安全构成很大威胁。
2 智能卡攻击技术分析
对智能卡的攻击可分3 种基本类型:逻辑攻击、物理攻击和边频攻击。下面就这3 种攻击技术的具体实施方式加以分析。
2.1 逻辑攻击技术分析
逻辑攻击的主要方法是对处理器的通信接口进行分析,以期发现智能卡协议、密码算法及其实现过程中所潜藏的逻辑缺陷,包括潜藏未用的命令、不良参数与缓冲器溢出、文件存取漏洞、恶意进程、通信协议和加密协议的设计与执行过程等。逻辑攻击者在软件的执行过程中插入窃听程序,利用这些缺陷诱骗卡泄露机密数据或允许非期望的数据修改。从所需的设备来看,逻辑攻击的成本可以说是相当低的,攻击者只需具备智能卡、读写器和PC 机即可。其另一优点在于非入侵式的攻击模式以及可轻松地复制。
2.2 物理攻击技术分析
虽然智能卡的所有功能似乎都封闭在单个的芯片中,然而仍然有可能对其实施反向工程。用于实施物理攻击的主要方法包括:
(1)微探针技术:攻击者通常使用发烟硝酸去除包裹裸片的环氧树脂;用丙酮/去离子水/异丙醇完成清洗;氢氟酸超声浴进一步去除芯片的各层金属。在去除芯片封装之后,通过金丝键合恢复芯片功能焊盘与外界的电气连接,最后可以使用亚微米级微探针获取感兴趣的信号,从而分析出智能卡的有关设计信息和存储结构,甚至直接读取出存储器的信息进行分析。
(2)版图重构:利用高倍光学及射电显微镜研究电路的连接模式,跟踪金属连线穿越可见模块(如ROM、RAM、EEPROM、ALU、指令译码器等)的边界,可以迅速识别芯片上的一些基本结构,如数据线和地址线。
(3)聚离子束(FIB)技术:采用镓粒子束攻击芯片表面,在不破坏芯片表面电路结构的情况下,用含有不同气体的粒子束,可在芯片上沉积出导线、绝缘体甚至半导体。采用这种方法可重新连接测试电路的熔断丝,或将多层芯片中深藏在内部的信号连到芯片的表面,或加粗加强过于纤细脆弱无法置放探针的导线,从而形成一个新的“探针台”。技术人员可利用激光干涉仪工作台观察芯片单个晶体的微细结构以及其它的电路结构。
物理攻击是实现成功探测的强有力手段,但其缺点在于入侵式的攻击模式,同时需要昂贵的高端实验室设备和专门的探测技术。
2.3 边频攻击技术分析
边频攻击是通过观察电路中的某些物理量如能量消耗、电磁辐射、时间等的变化规律来分析智能卡的加密数据;或通过干扰电路中的某些物理量如电压、电磁辐射、温度、光和X射线、频率等来操纵智能卡的行为。边频攻击方法主要包括以下两种方式:
(1)差分能量分析(differential power analysis,DPA)差分能量分析(DPA)攻击是通过用示波镜检测电子器件的能量消耗来获知其行为。攻击者只需知道算法的明文(输入)或密文(输出),通过分析和比较一系列的能量轨迹就可重现加密密钥。
DPA攻击的基础是假设被处理的数据与能量消耗之间存在某种联系,换句话说,假设处理0 比1 所用的能量要少(反之亦然),那么对两个不同数据执行同一算法的两个能量轨迹会由于输入数据的不同而产生微小的差别。用计算机严格按时钟计算两条轨迹的差得到差分轨迹,差分轨迹中出现峰值的时刻即是输入数据产生差别的时钟周期。如此检查加密算法的所有输入以及每一对0 和1 产生的差分轨迹,就可以识别出它们出现在程序代码中的确切时间,从而获取加密密钥。
(2)能量短脉冲干扰
微处理器要求在稳定的电压下工作,能量供应的中断就好像突然冲击程序运行或复位电路。然而,一个短而巧妙的脉冲可以引起单步的程序错误而微处理器仍能继续执行程序。例如,CPU读取存储单元的内容,三极管用一个阈值来检测存储单元的值以确定所读的是逻辑0 或1。突然出现的能量短脉冲对存储值和逻辑值都会产生影响。如图2 所示,与逻辑0对应的低电平在正常的操作状态下可能低于阈值电平,然而由于短脉冲的能量下压可能导致其高于阈值电平。许多加密算法都易受这一类故障注入的影响。采用差分故障分析(differentialfault analysis,DFA)技术将正确的与错误的密码编码相比较从而析出秘藏的密钥。
短脉冲干扰的第2 种攻击方式是将PIN 校验失败转为成功以欺骗处理器。更为严格的一种方式是在处理器正要将校验失败写入存储器时完全关闭电源,从而避免PIN 校验失败计数器溢出。
短脉冲干扰的第3种应用是攻击发送限制计数器,从而导致整个存储器内容输出到串行接口。
推荐文章
论坛热帖