智能卡的攻击一般从破坏性的反向工程开始,其结论可以用于开发廉价和快速的非破坏性攻击手段,这是最常见的最有效的智能卡攻击模式之一。
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等非易失性存储器存放程序。