以前,人们普遍认为由于采用了各种复杂的认证算法、密钥等来保护数据免受未获授权使用,IC卡具有磁卡无法比拟的安全性能。但在上个世纪90年代中期,大部分的IC卡处理器都被成功地实施了反向工程,因此这个看法有了很大的改变。除了采用更新的设计技术以外,更重要的是在IC卡芯片设计与实现过程中考虑抗攻击措施,以保护重要的数据不被非法使用。
非接触IC卡(RFID)的出现是智能卡发展中的重要里程碑:它通过磁耦合或微波的方式来实现能量与信号的非接触传输,从而有效地解决了接触式智能卡使用机械电气触点产生的静电击穿、机械磨损、易受污染和潮湿环境影响等问题,被认为是身份识别、公交票据、物流等方面的重要替代技术。没有了裸露的电气接触节点,RFID和接触式IC卡产品相比,在安全性方面也有一定的提升,但是它没有改变智能卡使用认证算法和密钥等安全手段的模式,因此并没有从本质上解决安全问题。需要借鉴接触式智能卡安全设计上的成熟经验,才能避免重大技术失误。
从结构上讲,RFID是一个包含射频模拟前端(RFAFE)和基带信号处理两大部分的单片集成电路(见图1)。基带系统包括控制逻辑(甚至微处理器)和必要的存储器,AFE部分是RFID的能量与信号接口,提供片上基带系统工作所需的电源和时钟等辅助信号,完成数据的接收与发送功能。由于RFAFE屏蔽了智能卡片上的电源、时钟、上电复位(POR)等信号与外界的联系,在一定程度上减少了攻击实施的点,与接触式智能卡相比在安全性方面有一定的提升。
智能卡芯片攻击技术及应对措施
根据是否破坏智能卡芯片的物理封装可以将智能卡的攻击技术分为两大类:破坏性攻击和非破坏性攻击。
破坏性攻击和芯片反向工程在最初的步骤上是一致的:使用发烟硝酸去除包裹裸片的环氧树脂;用丙酮/去离子水/异丙醇完成清洗;氢氟酸超声浴进一步去除芯片的各层金属。在去除芯片封装之后,通过金丝键合恢复芯片功能焊盘与外界的电气连接,最后可以使用手动微探针获取感兴趣的信号。对于深亚微米以下的CMOS 产品,通常具有3层以上的金属连线,为了解芯片的内部结构,可能要逐层去除以获得重构芯片版图设计所需的信息。在了解内部信号走线的基础上,聚焦离子束 (FIB)修补技术甚至可用于将感兴趣的信号连到芯片的表面供进一步观察。
非破坏性攻击主要针对具有微处理器的产品,其手段主要包括软件攻击、窃听技术和故障产生技术。软件攻击使用微处理器的通用通讯接口,寻求安全协议、加密算法以及他们物理实现的弱点;窃听技术采用高时域精度的方法,分析电源接口在微处理器正常工作过程中产生的各种电磁辐射的模拟特征;故障产生技术通过产生异常的应用环境条件,使处理器产生故障,从而获得额外的访问途径。
智能卡的攻击一般从破坏性的反向工程开始,其结论可以用于开发廉价和快速的非破坏性攻击手段,这是最常见的最有效的智能卡攻击模式之一。
1.破坏性攻击及其防范
a.版图重构
破坏性攻击的一个重要步骤是重构目标芯片的版图。通过研究连接模式和跟踪金属连线穿越可见模块(如ROM、RAM、EEPROM、ALU、指令译码器等)的边界,可以迅速识别芯片上的一些基本结构,如数据线和地址线。
芯片表面的照片只能完整显示顶层金属的连线,而它是不透明的。借助于高性能的成像系统,可以从顶部的高低不平中识别出较低层的信息,但是对于提供氧化层平坦化的CMOS工艺,则需要逐层去除金属才能进一步了解其下的各种结构。因此,提供氧化层平坦化的CMOS工艺更适合于包括RFID在内的智能卡加工。
图2是一个NAND门驱动一个反向器的光学版图照片,类似于该图的不同层照片对于有经验的人无异于电路图。
对于RFID设计来说,射频模拟前端需要采用全定制方式实现,但是常采用HDL语言描述来实现包括认证算法在内的复杂控制逻辑,显然这种采用标准单元库综合的实现方法会加速设计过程,但是也给反向工程为基础的破坏性攻击提供了极大的便利,这种以标准单元库为基础的设计可以使用计算机自动实现版图重构。因此,采用全定制的方法实现RFID的芯片版图会在一定程度上加大版图重构的难度。
版图重构的技术也可用于获得只读型ROM的内容。ROM的位模式存储在扩散层,用氢氟酸(HF)去除芯片各覆盖层后,根据扩散层的边缘就很容易辨认出ROM的内容(图3)。
基于微处理器的RFID设计中,ROM中可能不包含任何加密的密钥信息,但是它的确包含足够的I/O、存取控制、加密程序等信息,这些在非破坏性攻击中尤为重要。因此,对于使用微处理器的RFID设计,推荐优先使用FLASH或EEPROM等非易失性存储器存放程序。
b.存储器读出技术
对于存放密钥、用户数据等重要内容的非易失性存储器,它们不能通过简单的光学照片获得其中的信息。在安全认证过程中,至少访问这些数据区一次,因此,可以使用微探针监听总线上的信号获取重要数据。对于良好的设计,简单重复认证还不足以访问存储器所有的关键位置。例如,在同一个卡中使用不同的加密密钥和加密算法,然后在它们之间每隔几周就切换一次,芯片的算法和密钥的存放区域在没有被广播呼叫激活以前不能被处理器控制等等,从而使早期的被动监测总线难以发现这些秘密。这些接触智能卡IC的经验可以应用于RFID设计中。
一些文献提到,为了保证存储器数据的完整性,需要在每次芯片复位之后计算并检验一下存储器的校验结果,其实这种做法给攻击提供了快速访问全部存储器的手段。
在使用带微处理器的RFID中,还需要考虑软件设计人员为提高代码效率滥用CPU部件(如地址计数器)的行为所导致的安全问题。程序计数器在每个指令周期都自动增量,如果被用于存储器读写的地址发生器,攻击中只需防止处理器执行JUMP、CALL和RETURN等指令扰乱正常的读顺序即可。即稍微用激光切断一些电路连接,改动指令译码器、程序计数器电路即可实现完全访问存储器的目的。
顶层探测器网格是有效防止微探针获取存储器数据的重要手段之一,充分利用深亚微米CMOS技术提供的多层金属,在重要的信号线顶层构成探测器网格能够连续监测短路和断路。当有电时,它能防止激光切割或选择性的蚀刻去获取总线的内容。根据探测器输出,芯片可立即触发电路将非易失性存储器中的内容全部清零。这些网格对于其下的各层金属连线重构也有影响,因为蚀刻不是均匀的,上层金属的模式在下层可见,会给版图的自动重构带来很多麻烦。手动探针的目标尺寸一般在 1微米左右,尖端小于0.1微米的探针台价格在几十万美元之上,且极难获得。一个精心设计的网格将使手动微探针攻击难以实施,一般的FIB修补技术也难以逾越。
2、非破坏性攻击及其防范
非破坏性攻击主要针对具有微处理器的产品而言。微处理器本质上是成百上千个触发器、寄存器、锁存器和SRAM单元的集合,这些器件定义了处理器的当前状态,结合组合逻辑则可知道下一时钟的状态。许多类似系统的模拟效应可用于非侵入式的攻击,其中:
1.每个晶体管和连线都具有电阻和电容特性,其温度、电压等特性决定了信号的传输延时。由于生产工艺参数的分散性,这些数值在单个芯片,或同种产品的不同芯片上差异很大。
2.触发器在很短的时间间隔内采样并和阈值电压比较(与电源相关)。采样的时间间隔相对于时钟边沿是固定的,但不同的触发器之间可能差异很大。
3.触发器仅在组合逻辑稳定后的前一状态上建立新的稳态。
4.在CMOS门的每次翻转变化过程中,P和N管都会开启一个短暂的时间,从而在电源上造成一次短路。没有翻转的时刻,则电源电流很小。
5.当输出改变时,电源电流会根据负载电容充放电变化。
和接触式IC卡不同的是,攻击RFID的黑客不能完全控制其电源和时钟线,理论上RFID针对非破坏性攻击的安全性能有所改善,但是实际情形可能并非如此,仍会面临一些危险。常见的攻击手段有电流分析攻击和故障攻击。
3、电流分析攻击
根据电流分析攻击实施的特点,可分为简单电源攻击(SPA)和差分电源攻击。
原则上,RFID的电源是集成在AFE的内部,似乎远离了电流分析的危险,然而实际上并非如此。图4显示了RFID接触法测试的原理图:通过在RFID天线和串联的分压电阻两端直接加载符合规格的交流信号,RFID负载反馈信号可以百倍于无线模式下的信号强度直接叠加在加载的交流信号上。由于芯片的功耗变化与负载调制在本质上是相同的,因此,如果AFE的电源设计不恰当,RFID微处理执行不同内部处理的状态可能在串联电阻的两端交流信号上反映出来。
对于RFID而言,功耗是芯片设计过程中关心的重要问题,串联方案的效率更高,更适合集成电路设计。但是就安全而言,并联方案是更理想的选择:通过并联泄放电路将电源幅度和纹波的变化控制在尽可能小的范围内,使电源电流消耗波动抑制在整流电路之后。这样天线两端的交流信号不能反应任何内部基带系统(主要是微处理器)状态的差异。
4、故障攻击
通过故障攻击可以导致一个或多个触发器位于病态,从而破坏传输到寄存器和存储器中的数据。在所知的CPU智能卡非破坏性攻击中,故障攻击是实际应用中最有效的技术之一。当前有三种技术可以可靠地导致触发器病态且影响很少的机器周期:瞬态时钟、瞬态电源以及瞬态外部电场。
通过简单地增加或降低时钟频率一个或多个半周期可以实施时钟故障,这样部分触发器会在合法的新状态到来之前采样它们的输入。时钟故障有效的攻击通常和电源故障结合在一起,在接触式智能卡中通过组合时钟和电源波动,已经可以很可靠地增加程序计数器内容而不影响处理器的其它状态。这样,智能卡内的任意指令序列都可以被黑客执行,而程序员在软件编写中并没有什么很好的应对措施。
大多数RFID的时钟、电源都是使用天线的交流信号整形得到的,因此通过改变交流信号谐波的幅度、对称性、频率等参数可以实施时钟-电源故障攻击。借助于RFID接触测试设备中的数字直接合成交流信号技术,很容易产生时钟-电源故障攻击所需的波形。
RFID产品为了有效抵御时钟故障攻击,除了采用时钟探测器以外,更重要的是严格限制RFID设计的工作频率范围、载频的谐波品质因素、对称性等指标。因此,从安全角度来说,并非RFID对机具适应能力越强越好。
潜在的故障技术仍需进一步探索,如通过将金属探针置于处理器几百个微米高度的时候,在几个毫秒内施加几百伏的电压,得到的电场强度足够改变附近的晶体管阈值电压。这些技术的应用价值和应对措施还有待进一步的研究。
RFID的测试态及保护
对于一般意义的集成电路产业链条来说,需要将不良的芯片在晶圆测试阶段剔除以减少后端加工工序中不必要的浪费,RFID芯片也不例外。根据RFID芯片的特点,晶圆测试内容包括:RF性能测试、逻辑功能测试和存储器测试。和普通芯片一样,如果借助于芯片应用功能来进行片上逻辑和存储器测试,则测试成本将大幅增加。通常采取等效测试原理设计额外的测试态来快速完成。由于测试态提供了快速、全面访问存储器的机制,因此有必要在晶圆测试完成后,将测试态永久关闭。
图5a是在接触式智能卡芯片的发展过程中曾大量采用的测试态控制方式:使用额外的I/O管脚和芯片内部电路相连,该连线通过划片槽,这样芯片划断后就不能通过简单控制该管脚进入测试态。由于FIB修补技术的出现,这个手段已经过时。图5b是最有潜力的替代方案:在划片槽和邻近的芯片中设计部分控制电路,从而得到不可逆的测试态控制手段。
本文对RFID芯片设计安全从破坏性、非破坏性攻击以及测试态控制三个方面作了简单探讨,通过与接触式智能卡芯片安全设计比较,给出一些应对的设计措施。然而仍然有很多安全设计措施不能一一列举,如用于对付功率分析的电流调节器和噪声负载。我国第二代居民身份证即将实施,这将是世界上最大的RFID项目,考虑其芯片设计安全问题具有重要的现实意义。
责任编辑:ct
评论
查看更多