EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
8 u! E! L3 Z3 k9 Q5 j1 }
) z, D& b. N+ f- L3 ]. [4 ?& V- f8 h9 G
侵入型攻击的第一步是揭去芯片封装(简称“开盖”有时候称“开封”,英文为“DECAP”,decapsulation)。
6 w1 c; [ _; E6 R# _" U5 T
: Z0 Y E7 t3 U1 e% |+ A$ U; l4 X/ {9 U- N4 e/ Y, m U
第二种是只移掉硅核上面的塑料封装。第一种方法需要将芯片绑定到测试夹具上,借助绑定台来操作。 4 j8 W7 c! p$ A8 q, H( q; i
第二种方法除了需要具备攻击者一定的知识和必要的技能外,还需要个人的智慧和耐心,但操作起来相对比较方便,完全家庭中操作。 ( a* p8 d3 D6 N
芯片上面的塑料可以用小刀揭开,芯片周围的环氧树脂可以用浓硝酸腐蚀掉。热的浓硝酸会溶解掉芯片封装而不会影响芯片及连线。该过程一般在非常干燥的条件下进行,因为水的存在可能会侵蚀已暴露的铝线连接(这就可能造成解密失败)。 : _+ s* l$ a2 |& M1 a7 i
& n c. b% Q: C
接着在超声池里先用丙酮清洗该芯片以除去残余硝酸,并浸泡。
6 A5 i9 d& Y4 x7 l' g# D
. c. B% H5 I- H. b/ W& k 最后一步是寻找保护熔丝的位置并将保护熔丝暴露在紫外光下。一般用一台放大倍数至少100倍的显微镜,从编程电压输入脚的连线跟踪进去,来寻找保护熔丝。若没有显微镜,则采用将芯片的不同部分暴露到紫外光下并观察结果的方式进行简单的搜索。操作时应用不透明的纸片覆盖芯片以保护程序存储器不被紫外光擦除。将保护熔丝暴露在紫外光下5~10分钟就能破坏掉保护位的保护作用,之后,使用简单的编程器就可直接读出程序存储器的内容。 " s6 N" l0 p& Q+ O# C
对于使用了防护层来保护EEPROM单元的单片机来说,使用紫外光复位保护电路是不可行的。对于这种类型的单片机,一般使用微探针技术来读取存储器内容。在芯片封装打开后,将芯片置于显微镜下就能够很容易的找到从存储器连到电路其它部分的数据总线。由于某种原因,芯片锁定位在编程模式下并不锁定对存储器的访问。利用这一缺陷将探针放在数据线的上面就能读到所有想要的数据。在编程模式下,重启读过程并连接探针到另外的数据线上就可以读出程序和数据存储器中的所有信息。 $ R, a# E) e1 V/ ?& ]) M
' o& @& F( g9 m7 F) O. a( ]
还有一种可能的攻击手段是借助显微镜和激光切割机等设备来寻找保护熔丝,从而寻查和这部分电路相联系的所有信号线。由于设计有缺陷,因此,只要切断从保护熔丝到其它电路的某一根信号线(或切割掉整个加密电路)或连接1~3根金线(通常称FIB:focused ion beam),就能禁止整个保护功能,这样,使用简单的编程器就能直接读出程序存储器的内容。 0 B+ ~4 e& M8 P- u: z' F% E [
虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但由于通用低档的单片机并非定位于制作安全类产品,因此,它们往往没有提供有针对性的防范措施且安全级别较低。加上单片机应用场合广泛,销售量大,厂商间委托加工与技术转让频繁,大量技术资料外泻,使得利用该类芯片的设计漏洞和厂商的测试接口,并通过修改熔丝保护位等侵入型攻击或非侵入型攻击手段来读取单片机的内部程序变得比较容易。 3 @2 L3 r# A7 t, G) h( X2 s# y
. h2 U2 v7 `/ Y* P& F: T
目前国内比较有名的单片机破解公司有沪生电子,余洋电子,星辰单片机,恒丰单片机和龙人科技等。 5 q9 [" R! U/ f5 [) K
4 E4 z. ^& ~/ Y 任何一款单片机从理论上讲,攻击者均可利用足够的投资和时间使用以上方法来攻破。这是系统设计者应该始终牢记的基本原则。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。我们根据沪生电子的解密实践提出下面建议:
( o0 ?, j% j9 ?& i% B (1)在选定加密芯片前,要充分调研,了解单片机破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片选择采用新工艺、新结构、上市时间较短的单片机,如可以使用ATMEGA88/ATMEGA88V,这种国内目前破解的费用一需要6K左右,另外目前相对难解密的有ST12系列, DSPPIC等;其他也可以和 cpld结合加密,这样解密费用很高,解密一般的CPLD也要1万左右。
6 K* |: M. s0 h" V* D (2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透。
L% S$ M$ M8 x# V* k5 _6 L' R (3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度,选用一些生僻的单片机,比如ATTINY2313,AT89C51RD2,AT89C51RC2,motorola单片机等比较难解密的芯片,目前国内会开发使用熟悉motorola单片机的人很少,所以破解的费用也相当高,从3000~3万左右。 ' l* w3 |% A+ M7 l; q R
(4)在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效对付物理攻击;另外程序设计的时候,加入时间到计时功能,比如使用到1年,自动停止所有功能的运行,这样会增加破解者的成本。 7 i* H8 V, P& K/ h' R, v
(5)如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解成本。 # e& p1 h5 f' q) h' G
(6)打磨掉芯片型号等信息或者重新印上其它的型号,以假乱真(注意,反面有LOGO的也要抹掉,很多芯片,解密者可以从反面判断出型号,比如51,WINBOND,MDT等)。
8 i: v8 c }3 n* x* Y (7)可以利用单片机未公开,未被利用的标志位或单元,作为软件标志位。
) |# V7 ` ?" u, { (8)利用MCS-51中A5指令加密,其实世界上所有资料,包括英文资料都没有讲这条指令,其实这是很好的加密指令,A5功能是二字节空操作指令加密方法在A5后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序。
. J$ W% J6 l* Y) }6 ?" p! U0 S# A (9)你应在程序区写上你的大名单位开发时间及仿制必究的说法,以备获得法律保护;另外写上你的大名的时候,可以是随机的,也就是说,采用某种算法,外部不同条件下,你的名字不同,比如wwwhusooncom1011、wwwhusooncn1012等,这样比较难反汇编修改。
$ z) b: x1 b2 N- E% T' D (10)采用高档的编程器,烧断内部的部分管脚,还可以采用自制的设备烧断金线,这个目前国内几乎不能解密,即使解密,也需要上万的费用,需要多个母片。 9 c% C4 e7 W+ W# E- J& c" l$ Y! a
(11)采用保密硅胶(环氧树脂灌封胶)封住整个电路板,PCB上多一些没有用途的焊盘,在硅胶中还可以掺杂一些没有用途的元件,同时把 mcu周围电路的电子元件尽量抹掉型号。
! S# k' f/ X+ t- N (12)对SyncMos,Winbond单片机,将把要烧录的文件转成HEX文件,这样烧录到芯片内部的程序空位自动添00,如果你习惯BIN文件,也可以用编程器把空白区域中的FF改成00,这样一般解密器也就找不到芯片中的空位,也就无法执行以后的解密操作。 ( K H: C& n( n' A
当然,要想从根本上防止单片机被解密,那是不可能的,加密技术不断发展,解密技术也不断发展,现在不管哪个单片机,只要有人肯出钱去做,基本都可以做出来,只不过代价高低和周期长短的问题,编程者还可以从法律的途径对自己的开发作出保护(比如专利)。- ~6 ]2 l6 D5 V5 |' H
: h- n2 H- }' n" g/ D
( ?; ^; m t2 t6 \" g: q1 d% |
$ }6 U0 \: S* D$ n7 p) a/ t+ B6 A& Y4 |6 A
|