ic破解,又称单片机解密、晶片解密、ic晶片解密(单片机(MCU)一般都有内部EEPROM/FLASH供用户存放程式和工作数据。为了防止未经授权访问或拷贝单片机的机内程式,大部分单片机都带有加密锁定位或者加密位元组,以保护片内程式。
IC
积体电路(Integated Circuit)是一种微型电子元件或部件,採用一定的架构,工艺.把一个电路中所需的电晶体,电阻,电容和电感元件及布线或互连一起.製作在一块或者几分块上半导体晶体或者介质基片上,然后封装在一个管壳内.现在大部分套用的是(罗伯特-诺伊斯)基于硅集成.
基本介绍
- 中文名ic破解
- 防止未经授权拷贝单片机的机内程式
- 基于硅集成
- 套用罗伯特-诺伊斯
介绍
如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程式,这就叫单片机加密或晶片加密。单片机攻击者藉助专用设备或者自製设备,利用单片机晶片设计上的漏洞或软体缺陷,通过多种技术手段,就可以从晶片中提取关键信息,获取单片机内程式这就叫IC解密。)又叫单片机解密,单片机破解,晶片破解,IC解密,这严格说来这几种称呼都不科学,但已经成了习惯叫法,我们把CPLD解密,DSP解密都习惯称为晶片解密。单片机只是能装载程式晶片的其中一个类。能烧录程式并能加密的晶片还有DSP,CPLD,PLD,AVR,ARM等。也有专门设计有加密算法用于专业加密的晶片或设计验证厂家代码工作等功能晶片,该类晶片业能实现防止电子产品複製的目的。
目前IC解密有两种做法,一种是一软体为主,称为非侵入型攻击,要藉助一些软体,如类似编程器的自製设备,这种方法不破坏母片(解密后晶片处于不加密状态);还有一种是硬体为主,辅助软体,称为侵入型攻击,这种方法需要剥开母片(开盖或叫开封,decapsulation),然后做电路修改(通常称FIBfocused ion beam),这种破坏晶片外形结构和晶片管芯线路只影响加密功能,不改变晶片本身功能。
分类
目前IC解密方法主要如下
(1)软体攻击
该技术通常使用处理器通信接口并利用协定、加密算法或这些算法中的安全漏洞来进行攻击。软体攻击取得成功的一个典型事例是对早期ATMEL AT89C 系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程式在擦除加密锁定位后,停止下一步擦除片内程式存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程式。
目前在其他加密方法的基础上,可以研究出一些设备,配合一定的软体,来做软体攻击。
近期国内出现了了一种51晶片解密设备(成都一位高手搞出来的),这种解密器主要针对SyncMos. Winbond,在生产工艺上的漏洞,利用某些编程器定位插位元组,通过一定的方法查找晶片中是否有连续空位,也就是说查找晶片中连续的FF FF位元组,插入的位元组能够执行把片内的程式送到片外的指令,然后用解密的设备进行截获,这样晶片内部的程式就被解密完成了。
(2) 电子探测攻击
该技术通常以高时间解析度来监控处理器在正常操作时所有电源和接口连线的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。
目前RF编程器可以直接读出老的型号的加密MCU中的程式,就是採用这个原理。
(3)过错产生技术
该技术使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。使用最广泛的过错产生攻击手段包括电压冲击和时钟冲击。低电压和高电压攻击可用来禁止保护电路工作或强制处理器执行错误操作。时钟瞬态跳变也许会复位保护电路而不会破坏受保护信息。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。
(4)探针技术
该技术是直接暴露晶片内部连线,然后观察、操控、干扰单片机以达到攻击目的。
2. 侵入型晶片解密的一般过程
侵入型攻击的第一步是揭去晶片封装(简称“开盖”有时候称“开封”,英文为“DECAP”,decapsulation)。有两种方法可以达到这一目的第一种是完全溶解掉晶片封装,暴露金属连线。第二种是只移掉硅核上面的塑胶封装。第一种方法需要将晶片绑定到测试夹具上,藉助绑定台来操作。第二种方法除了需要具备攻击者一定的知识和必要的技能外,还需要个人的智慧和耐心,但操作起来相对比较方便,完全家庭中操作。
晶片上面的塑胶可以用小刀揭开,晶片周围的环氧树脂可以用浓硝酸腐蚀掉。热的浓硝酸会溶解掉晶片封装而不会影响晶片及连线。该过程一般在非常乾燥的条件下进行,因为水的存在可能会侵蚀已暴露的铝线连线 (这就可能造成解密失败)。
接着在超声池里先用丙酮清洗该晶片以除去残余硝酸,并浸泡。
一步是寻找保护熔丝的位置并将保护熔丝暴露在紫外光下。一般用一台放大倍数至少100倍的显微镜,从编程电压输入脚的连线跟蹤进去,来寻找保护熔丝。若没有显微镜,则採用将晶片的不同部分暴露到紫外光下并观察结果的方式进行简单的搜寻。操作时套用不透明的纸片覆盖晶片以保护程式存储器不被紫外光擦除。将保护熔丝暴露在紫外光下5~10分钟就能破坏掉保护位的保护作用,之后,使用简单的编程器就可直接读出程式存储器的内容。
对于使用了防护层来保护EEPROM单元的单片机来说,使用紫外光复位保护电路是不可行的。对于这种类型的单片机,一般使用微探针技术来读取存储器内容。在晶片封装打开后,将晶片置于显微镜下就能够很容易的找到从存储器连到电路其它部分的数据汇流排。由于某种原因,晶片锁定位在编程模式下并不锁定对存储器的访问。利用这一缺陷将探针放在数据线的上面就能读到所有想要的数据。在编程模式下,重启读过程并连线探针到的数据线上就可以读出程式和数据存储器中的所有信息。
还有一种可能的攻击手段是藉助显微镜和雷射切割机等设备来寻找保护熔丝,从而寻查和这部分电路相联繫的所有信号线。由于设计有缺陷,,只要切断从保护熔丝到其它电路的某一根信号线(或切割掉整个加密电路)或连线1~3根金线(通常称FIBfocused ion beam),就能禁止整个保护功能,这样,使用简单的编程器就能直接读出程式存储器的内容。
虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但由于通用低档的单片机并非定位于製作安全类产品,,它们往往没有提供有针对性的防範措施且安全级别较低。加上单片机套用场合广泛,销售量大,厂商间委託加工与技术转让频繁,大量技术资料外泻,使得利用该类晶片的设计漏洞和厂商的测试接口,并通过修改熔丝保护位等侵入型攻击或非侵入型攻击手段来读取单片机的内部程式变得比较容易。
晶片解密技术发展到今天,其发展一直是伴随着晶片的设计以及使用而在发展。由于客户对IC解密/单片机解密的需求,产生了如龙芯世纪等等的解密机构,也推动了解密技术的更新和发展。
目前加密的最新技术不断出现、IC解密烧断数据脚、解密开盖过程中存在的漏酸的可能以及电路修改过程中误操作等,这些都有可能造成 晶片解密的失败;目前单片机的程式存储是靠内部电子作为介质来存储的,当晶片使用周期比较长或受到外部强磁场等环境的影响,也会导致 晶片解密 失败。如果採用纯软体的方式破解,和母片的编程软体和编程方式甚至程式语言等有很大关係,也存在失败的机率。