从七十年代后期开始,微控制器提供一种非常好的取代基于 CPU 的控制板的方法。
它们不仅有内部存储器和通用 I/O 接口,还有一些保护措施以防止未经授权访问内部存储器的内容。不幸的是,早期的 MCU 没有提供非易失存储能力,重要的数据不得不存在 MCU 外部的分离芯片上,因此很容易被读出数据。最近销售的一些廉价 USB 狗也用此法来进行软件保护,
如图 1-1 所示。
图1-1 Aladdin HASP4 USB 狗
安全领域的下一步进展就是把 EEPROM 芯片放在与 MCU 同一封装的内部。
如图 1-2。 破 解这些芯片是不容易的。一种专业的方法是打开样品的封装,用微探针来获得数据。或将芯 片重新焊在一个分开的封装内。这两种设备都不是低级破解者所能拥有的。这些破解者会尝 试用自制的微探针(旧芯片的焊线区域是相当大的)或利用软件上的缺陷来读出数据。图 2-4 微芯 Microchip 的 PIC12CE518 微控制器打开封装后的照片,可见非易失数 据存储器和 MCU 是分开封在同一封装内部的。
一些 MCU 始终没有任何特殊的硬件安全保护。它们仅仅是基于不公开编程算法来保护。 这可能有伪装回读功能,或用校验功能来代替。一般这些 MCU 不会提供非常好的保护能力。 实际上,在一些智能卡中,适当使用校验功能能够起到很强的保护作用。
下一步增强安全保护的措施就是增加一个硬件安全熔丝来禁止访问数据。这很容易做到,不需要完全重新设计 MCU 架构,仅利用熔 丝来控制编程接口的回读功能,如图 2-6 所示。缺点是熔丝位很容易被定位并进行入侵攻击。
例如:熔丝的状态可以通过直接把熔丝位的输出连到电源或地线上来进行修改。有些例子中 仅仅用激光或聚焦离子束来切断熔丝的感应电路就可以了。用非侵入式攻击也一样可以成功。因为一个分离的熔丝版图异于正常的存储阵列。可以用组合外部信号来使熔丝位处与不能被 正确读出的状态,那样就可以访问存在内部芯片上的信息了。
用半侵入式攻击可以使破解者 快速取得成功但需要打开芯片的封装来接近晶粒。一个众所周知的方法就是用紫外线来擦掉 安全熔丝。 再下一步就是将安全熔丝做成存储器阵列的一部分,如果已设好熔丝,可禁止外部读写 数据。一般的熔丝与主存储器离得很近,或干脆与主存储器共享一些控制线。因为晶圆厂使 用与主存储器相同的工艺来制造,熔丝很难被定位和复位。非侵入式攻击仍然可用,但需要 时间去寻找。同样,半侵入式攻击也可用。当然破解者需要更多的时间去寻找安全熔丝或控 制电路负责安全监视的部分,但这些可以自动完成的。进行侵入式攻击将是很困难的,需要 手工操作,那将花费更多的成本来破解。
图 2-7 飞思卡尔 Freescale 的 MC68HC705C9A 微控制器在 200 倍显微镜下可见安全熔丝是存储器读写控制逻辑的一部分.
更进一步的是用主存储器的一部分来控制外部对数据的访问。这可以用上电时锁定特定区域地址的信息,将它作为安全熔丝。或用密码来控制对存储器的访问。例如德仪的MSP430F112,只有输入正确的 32 字节密码后才能进行回读操作。如果没输入密码,只有擦掉芯片后才能操作。尽管这个保护方法看上去比先前的更有效,它有一些缺点可以用低成本的非侵入式攻击如时序分析和功耗分析来破解。如果安全熔丝的状态是上电或复位后的存储器的一部分,这就给破解者用电源噪声来破解的机会,强制电路进入存储器中的错误状态。
图 2-8 PIC16F648A 伪顶层金属层图案使得对芯片进行微探测攻击更困难,200X别的一些使入侵攻击开销更多的措施包括使用顶层金属网格。所有的网格都用来监控短路和开路,一旦触发,会导致存储器复位或清零。普通的 MCU 不会使用这种保护方法,因为设计较难,且在异常运行条件下也会触发,如:高强度电磁场噪声,低温或高温,异常的时钟信号或供电不良。故有些普通的 MCU 使用更廉价的伪顶层金属网格,但这也有非常高效的光学分析进行微探测攻击的方法。在智能卡中,电源和地之间铺了一些这样的网格线。在这些方法中发现一些设计缺陷使得可以进行微探测攻击。同样,这些网格不能保护非侵入式攻击。
因为导线之间有电容,并且光线可以通过导线抵达电路的有效区域,半侵入式攻击仍然可能。
可编程的智能卡制造商走得更远,干脆砍掉标准的编程接口。取而代之的是启动模块,可以在代码载入后擦掉或屏蔽掉自己。这些卡只能在初始化时被编程一次,之后只能响应使用者的嵌入软件所支持的读写存在卡里的数据或程序。
图 2-9 意法 ST 的 ST16 系列智能卡芯片表面金属层的敏感网格。
近期的一些智能卡使用存储器总线编码(Bus encryption)技术来防止微探测攻击。即使破解者获得数据总线的数据也不可能知道密码或别的敏感信息。这种保护措施直指侵入式和半侵入式攻击。但非侵入式攻击仍然可以像正常的 CPU 一样访问控制非编码信息。事实上,几年前就发现廉价地破解编码信息的方法。
图 2-10 100 倍显微镜下的英飞凌 Infineon SLE66 系列的智能卡芯片上的硬件总线编码模块,保护存储器免受微探测攻击。
另外一些需要提及的改进是将标准的模块结构如解码器,寄存器文件,ALU 和 I/O 电路用类似 ASIC 逻辑来设计。这些设计称为混合逻辑(Glue logic),广泛用于智能卡。混合逻辑使得实际上不可能通过手工寻找信号或节点来获得卡的信息进行物理攻击。这种技术广泛用于盗版,并可提升常见 CPU 内核的性能和安全性。例如 Ubicom 的 SX28 微控制器的引脚和程序都兼容于微芯的 PIC16C57,但它使用了混合逻辑
设计,闪存,大容量 RAM 使它的性能获得大幅提升。在 PIC 微控制器中,破解者很容易跟踪内存到 CPU 的数据总线,但在 SX 微控制器中,几乎不可能知道总线的物理位置,反向工程和微探测攻击将是非常困难且耗费时间。
图 2-11 Ubicom 的 SX28 微控制器引入混合逻辑设计,提升了性能和安全性。
更常用的是芯片由不同模块组成,但每个模块使用混合逻辑设计。如赛普拉斯的CY7C63001A 微控制器。在这种情况下,破解者更容易跟踪模块之间的总线和控制线,并对
芯片进行侵入式和半侵入式攻击。混合逻辑设计不能防止非侵入式攻击,但需要更快更昂贵的设备。半侵入式攻击面临伪设计模块的问题。当然破解者可以自动操作来进行穷举搜索并尝试攻击所有可能区域。结果很可能是花了很长时间并没有取得成功。另一方面,破解者可以直接攻击存储器器或它的控制电路。
图 2-12 赛普拉斯 Cypress 的 CY7C63001A 微控制器使用部分混合逻辑设计,但内部总线很容易被访问。
技术的进步增加了入侵攻击的成本。十年前很容易使用激光切割器和简单的探针台就可以读写芯片表面的任何点,但对于现代的深亚微米半导体芯片就需要用到不一般的且昂贵的技术,这难倒了很多潜在的破解者。如 PIC16F877 很容易在显微镜下观察并进行反向工程,藏在顶层金属下的第二层金属和多晶硅层仍然可见。但在 PIC16F887A 微控制器中使用了平坦化工艺,使得不会显示更深的层。唯一的方法是用物理或化学的方法除去顶层金属。
图 2-13 500 倍显微镜下,通过 PIC16F877 的顶层看到第二层金属和多晶硅层。
了解更多请听下回分解...............聚龙国际 您身边的芯片研究院 更多芯片解密信息可在聚龙芯片解密页面搜索!