找回密码
 注册
关于网站域名变更的通知
查看: 496|回复: 3
打印 上一主题 下一主题

单片机反解密

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-9-5 10:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
目前单片机解密主要方法

1 m: ~% W6 l; F- _8 L0 y
单片机解密的一般过程
! w2 }. C+ [$ c8 J6 }
揭去芯片封装

  H8 B: C! K0 n; t2 W
  侵入型攻击的第一步是揭去芯片封装(简称“开盖”有时候称“开封”,英文为“DECAP”,decapsulation)。
' u1 h$ P0 T4 i: z0 C
  有两种方法可以达到这一目的:

" A6 `4 a# I6 Q; o
  第一种是完全溶解掉芯片封装,暴露金属连线。
' V5 n3 |0 U: b8 X$ n
  第二种是只移掉硅核上面的塑料封装。第一种方法需要将芯片绑定到测试夹具上,借助绑定台来操作。
' k0 K# [3 ~! a, j
  第二种方法除了需要具备攻击者一定的知识和必要的技能外,还需要个人的智慧和耐心,但操作起来相对比较方便,完全家庭中操作。
6 p1 K9 o, o, P! f: S
  芯片上面的塑料可以用小刀揭开,芯片周围的环氧树脂可以用浓硝酸腐蚀掉。热的浓硝酸会溶解掉芯片封装而不会影响芯片及连线。该过程一般在非常干燥的条件下进行,因为水的存在可能会侵蚀已暴露的铝线连接(这就可能造成解密失败)。
0 g; Z& E5 ]$ D
清洗芯片
. p2 q. G/ b9 b1 t
  接着在超声池里先用丙酮清洗该芯片以除去残余硝酸,并浸泡。
9 T3 Y3 ]* e* Q5 ~+ p$ X
寻找保护熔丝的位置并破坏

+ j+ [1 Y( C* v" x0 p# Z
  最后一步是寻找保护熔丝的位置并将保护熔丝暴露在紫外光下。一般用一台放大倍数至少100倍的显微镜,从编程电压输入脚的连线跟踪进去,来寻找保护熔丝。若没有显微镜,则采用将芯片的不同部分暴露到紫外光下并观察结果的方式进行简单的搜索。操作时应用不透明的纸片覆盖芯片以保护程序存储器不被紫外光擦除。将保护熔丝暴露在紫外光下5~10分钟就能破坏掉保护位的保护作用,之后,使用简单的编程器就可直接读出程序存储器的内容。

: K$ K6 R8 m9 l' S+ z$ U+ ]4 x
  对于使用了防护层来保护EEPROM单元的单片机来说,使用紫外光复位保护电路是不可行的。对于这种类型的单片机,一般使用微探针技术来读取存储器内容。在芯片封装打开后,将芯片置于显微镜下就能够很容易的找到从存储器连到电路其它部分的数据总线。由于某种原因,芯片锁定位在编程模式下并不锁定对存储器的访问。利用这一缺陷将探针放在数据线的上面就能读到所有想要的数据。在编程模式下,重启读过程并连接探针到另外的数据线上就可以读出程序和数据存储器中的所有信息。

. h( o, ?2 l1 @+ o! o7 q$ p; S
借助显微镜和激光切割机破坏保护熔丝

" M( h$ X! x) j6 {9 W0 V9 S
  还有一种可能的攻击手段是借助显微镜和激光切割机等设备来寻找保护熔丝,从而寻查和这部分电路相联系的所有信号线。由于设计有缺陷,因此,只要切断从保护熔丝到其它电路的某一根信号线(或切割掉整个加密电路)或连接1~3根金线(通常称FIB:focused ion beam),就能禁止整个保护功能,这样,使用简单的编程器就能直接读出程序存储器的内容。
0 C" a7 N$ m0 i8 E0 A  z
  虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但由于通用低档的单片机并非定位于制作安全类产品,因此,它们往往没有提供有针对性的防范措施且安全级别较低。加上单片机应用场合广泛,销售量大,厂商间委托加工与技术转让频繁,大量技术资料外泻,使得利用该类芯片的设计漏洞和厂商的测试接口,并通过修改熔丝保护位等侵入型攻击或非侵入型攻击手段来读取单片机的内部程序变得比较容易。

7 c) t0 F* q5 e) {+ X: N' S! V
国内较有名的单片机破解公司
1 ?; B7 m: ^% K
目前国内比较有名的单片机破解公司有沪生电子,余洋电子,星辰单片机,恒丰单片机和龙人科技等。
- e# }9 K9 j& M% W2 [
应对单片机破解的几点建议

6 e- t* Y$ a6 ~
  任何一款单片机从理论上讲,攻击者均可利用足够的投资和时间使用以上方法来攻破。这是系统设计者应该始终牢记的基本原则。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。我们根据沪生电子的解密实践提出下面建议:
. e% C; V$ d8 j+ m
  (1)在选定加密芯片前,要充分调研,了解单片机破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片选择采用新工艺、新结构、上市时间较短的单片机,如可以使用ATMEGA88/ATMEGA88V,这种国内目前破解的费用一需要6K左右,另外目前相对难解密的有ST12系列,DSPPIC等;其他也可以和cpld结合加密,这样解密费用很高,解密一般的CPLD也要1万左右。

, Z2 U: k7 k) c+ b; a4 J) Y: u' m% g
  (2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透。

. V4 D5 }( W' l
  (3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度,选用一些生僻的单片机,比如ATTINY2313,AT89C51RD2,AT89C51RC2,motorola单片机等比较难解密的芯片,目前国内会开发使用熟悉motorola单片机的人很少,所以破解的费用也相当高,从3000~3万左右。
- B) Y7 P- f, U, b- A
  (4)在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效对付物理攻击;另外程序设计的时候,加入时间到计时功能,比如使用到1年,自动停止所有功能的运行,这样会增加破解者的成本。

; |3 v; u+ {, \* ]) J' h
  (5)如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解成本。

6 w3 R# E. {( N. B. @
  (6)打磨掉芯片型号等信息或者重新印上其它的型号,以假乱真(注意,反面有LOGO的也要抹掉,很多芯片,解密者可以从反面判断出型号,比如51,WINBOND,MDT等)。

  Y0 n+ [1 V1 e  E% k1 V. X' i
  (7)可以利用单片机未公开,未被利用的标志位或单元,作为软件标志位。
9 O5 ^+ {  Y$ A0 J, R/ I6 {
  (8)利用MCS-51中A5指令加密,其实世界上所有资料,包括英文资料都没有讲这条指令,其实这是很好的加密指令,A5功能是二字节空操作指令加密方法在A5后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序。

( k) b% E, k. H
  (9)你应在程序区写上你的大名单位开发时间及仿制必究的说法,以备获得法律保护;另外写上你的大名的时候,可以是随机的,也就是说,采用某种算法,外部不同条件下,你的名字不同,比如wwwhusooncom1011、wwwhusooncn1012等,这样比较难反汇编修改。

& @) n$ C. p) f
  (10)采用高档的编程器,烧断内部的部分管脚,还可以采用自制的设备烧断金线,这个目前国内几乎不能解密,即使解密,也需要上万的费用,需要多个母片。
, o8 @1 M! y0 c5 K" |6 `
  (11)采用保密硅胶(环氧树脂灌封胶)封住整个电路板,PCB上多一些没有用途的焊盘,在硅胶中还可以掺杂一些没有用途的元件,同时把mcu周围电路的电子元件尽量抹掉型号。

/ d# s- }# {: U
  (12)对SyncMos,Winbond单片机,将把要烧录的文件转成HEX文件,这样烧录到芯片内部的程序空位自动添00,如果你习惯BIN文件,也可以用编程器把空白区域中的FF改成00,这样一般解密器也就找不到芯片中的空位,也就无法执行以后的解密操作。

. v( [# g& x/ k  当然,要想从根本上防止单片机被解密,那是不可能的,加密技术不断发展,解密技术也不断发展,现在不管哪个单片机,只要有人肯出钱去做,基本都可以做出来,只不过代价高低和周期长短的问题,编程者还可以从法律的途径对自己的开发作出保护(比如专利)。
: g( T& _( Z0 z8 x) D" U% v7 L( g$ M/ O  y+ L
6 Y+ o5 V0 P' ?. y; s

" `5 W& U7 F- @6 V. D
/ d, n3 G2 \$ W# s+ E- ^

该用户从未签到

2#
 楼主| 发表于 2018-9-5 10:19 | 只看该作者
现今的半导体芯片不仅仅用与控制系统,而且还用于保护它们免于入侵的威胁。那些认识到当前失误而引入新的安防方案的制造商和坚持不懈的尝试突破保护急智的破解团体之间的斗争是没有尽头的。
5 G; Y, {. w" j0 y* Z, H% ~有些芯片制造商没有足够的重视设计和测试保护原理的重要性,即使他们声称自己的产品是有高的安全等级的。在这种情况下,设计工程师拥有方便和可靠的测试安全芯片的方法是至关重要的。' g1 K( O6 ~+ W3 X# y
$ U$ i. n4 r+ O" c# D+ p' u
在来自IBM的文件也讨论了安全系统对不同攻击方法所具有的保护等级。从没有任何安全保护的零级到实质上不可破解的高级:$ ?2 r( d1 D. w- Q0 }& t( C

" C/ N3 b1 W. \l 零级$ w! v2 g& v" R  g6 ]
. i6 m& M, ]2 h. ?! V, i
系统中没有使用特别的安全措施,所有部分可以自由访问。例如,使用外部ROM的微控制器和FPGA。
; H; y* W% Z9 V' u9 N! J  J; ?" E3 p4 w7 X, r( S8 ?
l 低级) @8 P3 H9 p% Z: ]
) {: Y' W  h% ^# l
使用了一些安全措施,但他的破解是相对容易的。使用电烙铁和廉价的模拟示波器就可以破解。破解者需要时间,但不需要很久。如内部储存器无保护,但编程算法私有的MCU。
& p% ~7 c) \& S/ b$ Y  \
. Z. f' D7 j/ y* El 中低级
7 c9 f" Y% x; o+ @, q
: D; J' S+ X/ v: h8 F3 S/ L8 o安全措施可以抵挡大多数廉价的攻击手段。需要使用昂贵的工具和特殊的知识,但对功耗分析和电源噪声敏感的微控制器。
# R/ z0 ]# u  ~0 G. G, R6 G+ h' f% ^
l 中级3 T& D5 x# Z0 ?* Y8 X5 m" B0 a

5 d$ ~: b- ?4 ~2 W+ D; f0 ?需要使用特殊的工具和设备,并需要特殊的技能和知识。攻击可能是相当耗时间,如防紫外线攻击的微控制器,旧的智能卡。# d* i8 ?; T) _6 h* b: a: {
9 s, x$ I0 _' R! J
l 中高级
; w8 t/ Y$ T! g. I0 r# Q% ^( i# p  G% `1 a+ w# P
设计上就特别关注安全保护。有攻击用设备但购买和使用都很昂贵。使用设备时需要用特殊的技巧和知识。如更高级安全保护的现代智能卡。复杂ASIC,安全型FPGA和CPLD。
; q8 K: G$ y3 @1 e' h6 V9 n+ A
7 Q0 F9 B; m5 E$ _6 y! D* S% Hl 高级
& z+ C% X& m+ k4 w9 @% V6 S6 u' S8 V' j
可阻止所有已知的攻击,需要一个特别的团队来研究一种新的破解方法。某些破解用设备需要设计建造,但不确定攻击是否会成功。只有大型的组织如半导体工厂或者政府建立的实验室才能做到,如签名应用中的加密模块等。: O5 R$ }/ V4 J2 S

0 t3 i: f+ S) X# u% E& w' P' H) C6 {5 v5 S/ c
攻击种类介绍:
/ V4 k$ U1 ]! j) `9 U! T, Y- v) {- n$ ]9 C( \; Q& R
对于安全评估,需要假定破解者可以获得多个目标元器件。我们所关心的破解目的是复原安全保护规则并获得存储在微控制器,智能卡或别的芯片级安全处理器中的密钥资料,我们可以把主要的攻击方法分为以下五类:
8 p! B# o* R2 \) s  S( S2 f4 E0 g# v, z6 a7 }+ ]
l 微探测技术可以用来直接访问芯片表面,可以用来观测,修改和干扰集成电路的工作。4 h( G9 V6 F% w7 N  d; c

1 Z0 o- B) P& U. b; i  Z0 zl 反向工程用来推导体芯片的内部结构并学习或仿效它的功能。它需要破解者使用与制造商相类似的技术和能力。
* c3 j% e  x5 l) @0 j9 ^3 u# q9 [/ S+ i. E, j* `+ K
l 软件攻击用在处理器正常通信接口上,从协议,密钥的算法或它们的执行模块来获得安全保护的弱点。
! s# l: M0 a! o& o3 K. X5 y$ A
' g$ G& d- f0 |7 m7 S$ v) ]2 A6 Cl 切听技术使用破解者可以精确监控所能获得的模拟特性和接口的通信协议,以及处理器正常工作时的任意电磁辐射。) k4 i' q; X" F

  F$ E# g$ C, K  Y- gl 缺陷注入技术是在正常的工作条件下,使处理器发生操作错误来获得额外的读写能力。
) P" o" ]* K* n- ^/ V2 e2 _* d: J& t: ]' X: [" I
微探测和反向工程技术是侵入式攻击,它们需要在特殊的实验室里花费数小时或者数周时间,来打开产品的封装。别的技术大多是非侵入式攻击。在进行攻击时,不需要从物理上破坏元器件。最后一种半侵入式攻击。这意味着需要接近芯片里的晶粒,但不需要彻底的攻击,要用强光,射线,加热或别的来产生缺陷。
8 v' a  G5 v& M% z  C, U
+ S  @3 \! V2 |非侵入式攻击对某些应用的威胁有二:一是元器件的所有人可能不会意识到密钥已经别盗,因此,危及安全的有效密钥在被滥用之前是不会被废除的。二是非侵入式攻击弹性大,被攻击的元器件可以用来廉价的进行再生产和更新。. Y; f8 `! f7 {( A! o. f
+ G! H& a7 s/ X9 Z
大多数非侵入式攻击需要非常熟悉处理器的硬件和软件。另一方面,侵入式的微探测攻击只需要很少的预备知识,且通常可以解破用同样技术制造的不同产品。通常攻击从反向工程开始,获得的结果有助于研究更快更廉价的非侵入式攻击。半侵入式攻击可以用来学习元器件的功能和测试它的安全电路。它不需要与芯片的内部某层建立物理的连接,不需要使用昂贵的设备,如激光切割器FIB机器等,被成功用于进行简单的闪光灯或者点状激光攻击。
. g# z% v" l0 t/ A, B$ f% N3 O
2 S  F" u' @/ I, C. L* S5 q% D" {$ ]2 L  b  I+ f+ {
' v  q7 L: {% e

/ m2 c' N& B& V2 a" a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-6 16:33 , Processed in 0.234375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表