1导言
单片机(Microcontroller)一般都有内部ROM/EEPROM/FLASH供用户寄存程序。为了避免未经授权拜访或复制单片机的机内程序,大部分单片机都带有加密确定位或许加密字节,以维护片内程序。假如在编程时加密确定位被使能(确定),就无法用一般编程器直接读取单片机内的程序,这便是所谓复制维护或许说确定功用。事实上,这样的维护措施很软弱,很简略被破解。单片机进犯者凭借专用设备或许克己设备,运用单片机芯片规划上的缝隙或软件缺点,经过多种技能手法,就能够从芯片中提取要害信息,获取单片机内程序。因而,作为电子产品的规划工程师十分有必要了解当时单片机进犯的最新技能,做到知己知彼,心中有数,才干有用避免自己花费很多金钱和时刻辛辛苦苦规划出来的产品被人家一夜之间仿冒的作业产生。
2单片机进犯技能
现在,进犯单片机主要有四种技能,分别是:
(1)软件进犯
该技能一般运用处理器通讯接口并运用协议、加密算法或这些算法中的安全缝隙来进行进犯。软件进犯取得成功的一个典型案例是对前期ATMELAT89C 系列单片机的进犯。进犯者运用了该系列单片机擦除操作时序规划上的缝隙,运用自编程序在擦除加密确定位后,中止下一步擦除片内程序存储器数据的操作,然后使加过密的单片机变成没加密的单片机,然后运用编程器读出片内程序。
(2)电子勘探进犯
该技能一般以高时刻分辨率来监控处理器在正常操作时一切电源和接口衔接的模仿特性,并经过监控它的电磁辐射特性来施行进犯。由于单片机是一个活动的电子器件,当它履行不同的指令时,对应的电源功率消耗也相应改变。这样经过运用特别的电子丈量仪器和数学计算办法剖析和检测这些改变,即可获取单片机中的特定要害信息。
(3)差错产生技能
该技能运用反常作业条件来使处理器犯错,然后供给额定的拜访来进行进犯。运用最广泛的差错产生进犯手法包含电压冲击和时钟冲击。低电压和高电压进犯可用来制止维护电路作业或强制处理器履行错误操作。时钟瞬态跳变或许会复位维护电路而不会损坏受维护信息。电源和时钟瞬态跳变能够在某些处理器中影响单条指令的解码和履行。
(4)探针技能
该技能是直接露出芯片内部连线,然后调查、控制、搅扰单片机以到达进犯意图。为了便利起见,人们将以上四种进犯技能分红两类,一类是侵入型进犯(物理进犯),这类进犯需求损坏封装,然后凭借半导体测验设备、显微镜和微定位器,在专门的实验室花上几小时乃至几周时刻才干完结。一切的微探针技能都归于侵入型进犯。别的三种办法归于非侵入型进犯,被进犯的单片机不会被物理损坏。在某些场合非侵入型进犯是特别风险的,这是由于非侵入型进犯所需设备一般能够克己和晋级,因而十分廉价。大部分非侵入型进犯需求进犯者具有杰出的处理器常识和软件常识。与之相反,侵入型的探针进犯则不需求太多的初始常识,并且一般可用一整套类似的技能抵挡宽规模的产品。因而,对单片机的进犯往往从侵入型的反向工程开端,堆集的经历有助于开发愈加廉价和快速的非侵入型进犯技能。
3侵入型进犯的一般进程
侵入型进犯的榜首步是揭去芯片封装。有两种办法能够到达这一意图:榜首种是彻底溶解掉芯片封装,露出金属连线。第二种是只移掉硅核上面的塑料封装。榜首种办法需求将芯片绑定到测验夹具上,凭借绑定台来操作。第二种办法除了需求具有进犯者必定的常识和必要的技能外,还需求个人的才智和耐性,但操作起来相对比较便利。芯片上面的塑料能够用小刀揭开,芯片周围的环氧树脂能够用浓硝酸腐蚀掉。热的浓硝酸会溶解掉芯片封装而不会影响芯片及连线。该进程一般在十分枯燥的条件下进行,由于水的存在或许会腐蚀已露出的铝线衔接。接着在超声池里先用丙酮清洗该芯片以除掉剩余硝酸,然后用清水清洗以除掉盐分并枯燥。没有超声池,一般就越过这一步。这种情况下,芯片外表会有点脏,可是不太影响紫外光对芯片的操作效果。最终一步是寻觅维护熔丝的方位并将维护熔丝露出在紫外光下。一般用一台扩大倍数至少100倍的显微镜,从编程电压输入脚的连线盯梢进去,来寻觅维护熔丝。若没有显微镜,则选用将芯片的不同部分露出到紫外光下并调查成果的方法进行简略的查找。操作时运用不透明的纸片掩盖芯片以维护程序存储器不被紫外光擦除。将维护熔丝露出在紫外光下5~10分钟就能损坏掉维护位的维护效果,之后,运用简略的编程器就可直接读出程序存储器的内容。
关于运用了防护层来维护EEPROM单元的单片机来说,运用紫外光复位维护电路是不可行的。关于这种类型的单片机,一般运用微探针技能来读取存储器内容。在芯片封装翻开后,将芯片置于显微镜下就能够很简略的找到从存储器连到电路其它部分的数据总线。
由于某种原因,芯片确定位在编程形式下并不确定对存储器的拜访。运用这一缺点将探针放在数据线的上面就能读到一切想要的数据。在编程形式下,重启读进程并衔接探针到别的的数据线上就能够读出程序和数据存储器中的一切信息。
还有一种或许的进犯手法是凭借显微镜和激光切割机等设备来寻觅维护熔丝,然后寻查和这部分电路相联系的一切信号线。由于规划有缺点,因而,只需堵截从维护熔丝到其它电路的某一根信号线,就能制止整个维护功用。由于某种原因,这根线离其它的线十分远,所以运用激光切割机彻底能够堵截这根线而不影响接近线。这样,运用简略的编程器就能直接读出程序存储器的内容。
尽管大多数一般单片机都具有熔丝烧断维护单片机内代码的功用,但由于通用等级低的单片机并非定坐落制造安全类产品,因而,它们往往没有供给有针对性的防范措施且安全级别较低。加上单片机运用场合广泛,出售量大,厂商间托付加工与技能转让频频,很多技能资料外泻,使得运用该类芯片的规划缝隙和厂商的测验接口,并经过修正熔丝维护位等侵入型进犯或非侵入型进犯手法来读取单片机的内部程序变得比较简略。
4应对单片机破解的几点主张
任何一款单片机,从理论上讲,进犯者均可运用满足的出资和时刻运用以上办法来攻破。所以,在用单片机做加密认证或规划体系时,应尽量加大进犯者的进犯本钱和所消耗的时刻。这是体系规划者应该一直紧记的基本原则。除此之外,还应留意以下几点:
(1)在选定加密芯片前,要充沛调研,了解单片机破解技能的新进展,包含哪些单片机是现已承认能够破解的。尽量不选用已可破解或同系列、同类型的芯片。
(2)尽量不要选用MCS51系列单片机,由于该单片机在国内的遍及程度最高,被研讨得也最透。
(3)产品的原创者,一般具有产量大的特色,所以可选用比较冷僻、偏冷门的单片机来加大仿冒者收购的难度。
(4)挑选选用新工艺、新结构、上市时刻较短的单片机,如ATMELAVR系列单片机等。
(5)在规划本钱答应的条件下,应选用具有硬件自毁功用的智能卡芯片,以有用抵挡物理进犯。
(6)假如条件答应,可选用两片不同类型单片机互为备份,彼此验证,然后添加破解本钱。
(7)打磨掉芯片类型等信息或许从头印上其它的类型,以假乱真。当然,要想从根本上避免单片机被解密,程序被盗版等侵权行为产生,只能依托法律手法来保证。