八种常见的IC芯片解密方法与原理解析
其实了解芯片解密方法之前先要知道什么是芯片解密,网络上对芯片解密的定义很多,其实芯片解密就是通过半导体反向开发技术手段,将已加密的芯片变为不加密的芯片,进而使用编程器读取程序出来。
芯片解密所要具备的条件是:
第一、你要有一定的知识,懂得如何将一个已加密的芯片变为不加密。
第二、必须有读取程序的工具,可能有人就会说,无非就是一个编程器。没错,就是一个编程器,但并非所有的编程器是具备读取的功能。这也就是为什么我们有时候为了解密一个芯片而会去开发一个可读编程器的原因。那我们就讲讲,芯片解密常有的一些方法。
1、软件攻击
该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMELAT89C系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。
至于在其他加密方法的基础上,可以研究出一些设备,配合一定的软件,来做软件攻击。近期国内出现了一种凯基迪科技51芯片解密设备(成都一位高手搞出来的),这种解密器主要针对SyncMos.Winbond,在生产工艺上的漏洞,利用某些编程器定位插字节,通过一定的方法查找芯片中是否有连续空位,也就是说查找芯片中连续的FFFF字节,插入的字节能够执行把片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序就被解密完成了。
2、电子探测攻击
该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。
这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。至于RF编程器可以直接读出老的型号的加密MCU中的程序,就是采用这个原理。
3、过错产生技术
该技术使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。使用最广泛的过错产生攻击手段包括电压冲击和时钟冲击。低电压和高电压攻击可用来禁止保护电路工作或强制处理器执行错误操作。时钟瞬态跳变也许会复位保护电路而不会破坏受保护信息。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。
4、探针技术
该技术是直接暴露芯片内部连线,然后观察、操控、干扰单片机以达到攻击目的。
5、紫外线攻击方法
紫外线攻击也称为UV攻击方法,就是利用紫外线照射芯片,让加密的芯片变成了不加密的芯片,然后用编程器直接读出程序。这种方法适合OTP的芯片,做单片机的工程师都知道OTP的芯片只能用紫外线才可以擦除。那么要擦出加密也是需要用到紫外线。
6、利用芯片漏洞
很多芯片在设计的时候有加密的漏洞,这类芯片就可以利用漏洞来攻击芯片读出存储器里的代码,比如我们以前的**里提到的利用芯片代码的漏洞,如果能找到联系的FF这样的代码就可以插入字节,来达到解密。
还有的是搜索代码里是否含有某个特殊的字节,如果有这样的字节,就可以利用这个字节来将程序导出。这类芯片解密以华邦、新茂的单片为例的比较多,如W78E516解密,N79E825解密等,ATMEL的51系列的AT89C51解密是利用代码的字节漏洞来解密的。
另外有的芯片具有明显的漏洞的,比如在加密后某个管脚再加电信号的时候,会使加密的芯片变成不加密的芯片,由于涉及到国内某家单片机厂家,名称就不列出来了。目前市场上能看到的芯片解密器都是利用芯片或程序的漏洞来实现解密的。
不过外面能买到的解密其基本上是能解得型号很少,因为一般解密公司都不会将核心的东西对外公布或转让。而解密公司自己内部为了解密的方便,自己会使用自制的解密工具,如果致芯科技具有可以解密MS9S09AW32的解密器、能专门解密LPC2119LPC2368等ARM的解密器,使用这样的解密器解密速度快,客户到公司基本上立等可取。
7、FIB恢复加密熔丝方法
这种方法适用于很多的具有熔丝加密的芯片,最具有代表性的芯片就是TI的MSP430解密的方法,因为MSP430加密的时候要烧熔丝,那么只要能将熔丝恢复上,那就变成了不加密的芯片了,如MSP430F1101A解密、MSP430F149解密、MSP430F425解密等。
一般解密公司利用探针来实现,将熔丝位连上,也有的人因为自己没有太多的解密设备,需要交由其它半导体线路修改的公司来修改线路,一般可以使用FIB(聚焦离子束)设备来将线路连接上,或是用专用的激光修改的设备将线路恢复。这些设备目前在国内的二手设备很多,也价格很便宜,一些有实力的解密公司都配置了自己的设备。这种方法由于需要设备和耗材,不是好的方法,但是很多芯片如果没有更好的方法的时候,就需要这种方法来实现。
8、修改加密线路的方法
市场上的CPLD以及DSP芯片设计复杂,加密性能要高,采用上述方法是很难做到解密的,那么就需要对芯片结构作前面的分析,然后找到加密电路,然后利用芯片线路修改的设备将芯片的线路做一些修改,让加密电路失效,让加密的DSP或CPLD变成了不加密的芯片从而可以读出代码。如TMS320LF2407A解密,TMS320F28335解密、TMS320F2812解密就是采用这种方法。
了解了这些**芯片的方法,相应的,我们在设计芯片时也要对这些漏洞尽量加以规避,使自己的芯片更加安全。对于新手来说,设计一款单片机不是容易的事,如果有现成的模块可以使用将会大大节省时间和精力。
|