当前位置:首页 >> 解密信息 >> 技术文档

MCU解密全攻略

时间:2012-09-19 11:34:27

  一些MCU始终没有任何特殊的硬件安全保护。它们仅仅是基于不公开编程算法来保护。这可能有伪装回读功能,或用校验功能来代替。一般这些MCU不会提供非常好的保护能力。实际上,在一些智能卡中,适当使用校验功能能够起到很强的保护作用。
  下一步增强安全保护的措施就是增加一个硬件安全熔丝(security fuse译者注:安全熔丝就是寄存器)来禁止访问数据。这很容易做到,不需要完全重新设计MCU架构,仅利用熔丝来控制编程接口的回读功能,如图1所示。缺点是熔丝位很容易被定位并进行入侵攻击。
例如:熔丝的状态可以通过直接把熔丝位的输出连到电源或地线上来进行修改。有些例子中仅仅用激光或聚焦离子束来切断熔丝的感应电路就可以了。用非侵入式攻击也一样可以成功。因为一个分离的熔丝版图异于正常的存储阵列。可以用组合外部信号来使熔丝位处与不能被正确读出的状态,那样就可以访问存在内部芯片上的信息了。用半侵入式攻击可以使破解者快速取得成功但需要打开芯片的封装来接近晶粒。一个众所周知的方法就是用紫外线来擦掉安全熔丝。
 
图1 微芯PIC12C508微控制器的安全熔丝位于程序存储器阵列的外部。
再下一步就是将安全熔丝做成存储器阵列的一部分,如果已设好熔丝,可禁止外部读写数据。一般的熔丝与主存储器离得很近,或干脆与主存储器共享一些控制线。因为晶圆厂使用与主存储器相同的工艺来制造,熔丝很难被定位和复位。非侵入式攻击仍然可用,但需要时间去寻找。同样,半侵入式攻击也可用。当然破解者需要更多的时间去寻找安全熔丝或控制电路负责安全监视的部分,但这些可以自动完成的。进行侵入式攻击将是很困难的,需要手工操作,那将花费更多的成本来破解。
 
  图2 飞思卡尔Freescale的MC68HC705C9A微控制器在200倍显微镜下可见安全熔丝是存储器读写控制逻辑的一部分
更进一步的是用主存储器的一部分来控制外部对数据的访问。这可以用上电时锁定特定区域地址的信息,将它作为安全熔丝。或用密码来控制对存储器的访问。例如德仪的MSP430F112,只有输入正确的32字节密码后才能进行回读操作。如果没输入密码,只有擦掉芯片后才能操作。尽管这个保护方法看上去比先前的更有效,它有一些缺点可以用低成本的非侵入式攻击如时序分析和功耗分析来破解。如果安全熔丝的状态是上电或复位后的存储器的一部分,这就给破解者用电源噪声来破解的机会,强制电路进入存储器中的错误状态。
 
  图3 PIC16F648A伪顶层金属层图案使得对芯片进行微探测攻击更困难,200X
  别的一些使入侵攻击开销更多的措施包括使用顶层金属网格。所有的网格都用来监控短路和开路,一旦触发,会导致存储器复位或清零。普通的MCU不会使用这种保护方法,因为设计较难,且在异常运行条件下也会触发,如:高强度电磁场噪声,低温或高温,异常的时钟信号或供电不良。故有些普通的MCU使用更廉价的伪顶层金属网格,但这也有非常高效的光学分析进行微探测攻击的方法。在智能卡中,电源和地之间铺了一些这样的网格线。在这些方法中发现一些设计缺陷使得可以进行微探测攻击。同样,这些网格不能保护非侵入式攻击。因为导线之间有电容,并且光线可以通过导线抵达电路的有效区域,半侵入式攻击仍然可能。
技术的进步增加了入侵攻击的成本。十年前很容易使用激光切割器和简单的探针台就可以读写芯片表面的任何点,但对于现代的深亚微米半导体芯片就需要用到不一般的且昂贵的技术,这难倒了很多潜在的破解者。如PIC16F877很容易在显微镜下观察并进行反向工程,藏在顶层金属下的第二层金属和多晶硅层仍然可见。但在PIC16F887A微控制器中使用了平坦化工艺,使得不会显示更深的层。唯一的方法是用物理或化学的方法除去顶层金属。
 
图4 500倍显微镜下,通过PIC16F877的顶层看到第二层金属和多晶硅层。
 
  图5 500倍显微镜下,看不到PIC16F877A的顶层金属下有什么特别的。
  另外一个需要注意的是大量二手的半导体制造和测试设备出现在市场上,虽不能用于攻击高端产品,但用于破解旧技术制造的芯片已经够了。
 
解密技术
解密问题
芯片解密

微信扫描二维码咨询