历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2018年10月10日 | 破解单片机的常用方法及应对策略

发布者:码字先生 来源: eefocus关键字:单片机  常用方法  应对策略 手机看文章 扫描二维码
随时随地手机看文章

单片机一般都有内部ROM/EEPROM/FLASH供用户存放程序。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就是所谓拷贝保护或者说锁定功能。事实上,这样的保护措施很脆弱,很容易被破解。单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。

1. 单片机攻击技术

目前,攻击单片机主要有四种技术,分别是:

(1)软件攻击

该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMEL AT89C 系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。

(2)电子探测攻击

该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。

(3)过错产生技术

该技术使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。使用最广泛的过错产生攻击手段包括电压冲击和时钟冲击。低电压和高电压攻击可用来禁止保护电路工作或强制处理器执行错误操作。时钟瞬态跳变也许会复位保护电路而不会破坏受保护信息。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。

(4)探针技术

该技术是直接暴露芯片内部连线,然后观察、操控、干扰单片机以达到攻击目的。为了方便起见,人们将以上四种攻击技术分成两类,一类是侵入型攻击(物理攻击),这类攻击需要破坏封装,然后借助半导体测试设备、显微镜和微定位器,在专门的实验室花上几小时甚至几周时间才能完成。所有的微探针技术都属于侵入型攻击。另外三种方法属于非侵入型攻击,被攻击的单片机不会被物理损坏。在某些场合非侵入型攻击是特别危险的,这是因为非侵入型攻击所需设备通常可以自制和升级,因此非常廉价。

大部分非侵入型攻击需要攻击者具备良好的处理器知识和软件知识。与之相反,侵入型的探针攻击则不需要太多的初始知识,而且通常可用一整套相似的技术对付宽范围的产品。

因此,对单片机的攻击往往从侵入型的反向工程开始,积累的经验有助于开发更加廉价和快速的非侵入型攻击技术。

2. 侵入型攻击的一般过程

侵入型攻击的第一步是揭去芯片封装。有两种方法可以达到这一目的:第一种是完全溶解掉芯片封装,暴露金属连线。第二种是只移掉硅核上面的塑料封装。第一种方法需要将芯片绑定到测试夹具上,借助绑定台来操作。第二种方法除了需要具备攻击者一定的知识和必要的技能外,还需要个人的智慧和耐心,但操作起来相对比较方便。

芯片上面的塑料可以用小刀揭开,芯片周围的环氧树脂可以用浓硝酸腐蚀掉。热的浓硝酸会溶解掉芯片封装而不会影响芯片及连线。该过程一般在非常干燥的条件下进行,因为水的存在可能会侵蚀已暴露的铝线连接。

接着在超声池里先用丙酮清洗该芯片以除去残余硝酸,然后用清水清洗以除去盐分并干燥。没有超声池,一般就跳过这一步。这种情况下,芯片表面会有点脏,但是不太影响紫外光对芯片的操作效果。最后一步是寻找保护熔丝的位置并将保护熔丝暴露在紫外光下。一般用一台放大倍数至少100倍的显微镜,从编程电压输入脚的连线跟踪进去,来寻找保护熔丝。若没有显微镜,则采用将芯片的不同部分暴露到紫外光下并观察结果的方式进行简单的搜索。操作时应用不透明的纸片覆盖芯片以保护程序存储器不被紫外光擦除。将保护熔丝暴露在紫外光下5~10分钟就能破坏掉保护位的保护作用,之后,使用简单的编程器就可直接读出程序存储器的内容。

对于使用了防护层来保护EEPROM单元的单片机来说,使用紫外光复位保护电路是不可行的。对于这种类型的单片机,一般使用微探针技术来读取存储器内容。在芯片封装打开后,将芯片置于显微镜下就能够很容易的找到从存储器连到电路其它部分的数据总线。

由于某种原因,芯片锁定位在编程模式下并不锁定对存储器的访问。利用这一缺陷将探针放在数据线的上面就能读到所有想要的数据。在编程模式下,重启读过程并连接探针到另外的数据线上就可以读出程序和数据存储器中的所有信息。

还有一种可能的攻击手段是借助显微镜和激光切割机等设备来寻找保护熔丝,从而寻查和这部分电路相联系的所有信号线。由于设计有缺陷,因此,只要切断从保护熔丝到其它电路的某一根信号线,就能禁止整个保护功能。由于某种原因,这根线离其它的线非常远,所以使用激光切割机完全可以切断这根线而不影响临近线。这样,使用简单的编程器就能直接读出程序存储器的内容。

虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但由于通用低档的单片机并非定位于制作安全类产品,因此,它们往往没有提供有针对性的防范措施且安全级别较低。加上单片机应用场合广泛,销售量大,厂商间委托加工与技术转让频繁,大量技术资料外泻,使得利用该类芯片的设计漏洞和厂商的测试接口,并通过修改熔丝保护位等侵入型攻击或非侵入型攻击手段来读取单片机的内部程序变得比较容易。

3. 应对单片机破解的几点建议

任何一款单片机,从理论上讲,攻击者均可利用足够的投资和时间使用以上方法来攻破。所以,在用单片机做加密认证或设计系统时,应尽量加大攻击者的攻击成本和所耗费的时间。这是系统设计者应该始终牢记的基本原则。除此之外,还应注意以下几点:

(1)在选定加密芯片前,要充分调研,了解单片机破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片。

(2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透。

(3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度。

(4)选择采用新工艺、新结构、上市时间较短的单片机,如ATMEL AVR系列单片机等。

(5)在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效对付物理攻击。

(6)如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解成本。

(7)打磨掉芯片型号等信息或者重新印上其它的型号,以假乱真。

当然,要想从根本上防止单片机被解密,程序被盗版等侵权行为发生,只能依靠法律手段来保障。


关键字:单片机  常用方法  应对策略 引用地址:破解单片机的常用方法及应对策略

上一篇:实例讲解PIC单片机的时钟设置
下一篇:单片机为什么要使用C语言?

推荐阅读

        许多用户在十一长假期间都选择了出门玩,但是在游玩中才发现,没有配备一款好的手机真的是太让人心塞了,卡顿的操作使得排队过程中的人们变得更加焦躁。在假期结束准备换个手机,然而钱又不够用了,真的是十分尴尬。不过不要紧,在千元机火热的今天,总有一款手机既好用又便宜,满足你所有的需求。今天新浪手机就为大家介绍几款千元价位热...
串行通信接口是处理器与其他设备进行数据通信最常用的方式之一。我的这个程序库是针对MSP430f14系列和MSP430f16系列的,我常用的单片机是这两款:msp430f149,msp430f169。这两款单片机中均有两个增强型串行通信接口,都可以进行同步或是异步通信,甚至169的模块USART0还能进行进行I2C协议通信。在这里,我们只讨论异步串行通信。硬件介绍:MSP单片机的USA...
据外媒报道,莱斯大学(Rice University)研究人员设计了一种紧凑式高光谱条纹投影仪(Hyperspectral Stripe Projector,简称HSP),当与单色传感器阵列和复杂的编程相结合时,能够生成传统摄像头无法捕获的图像,从而实现及时3D光谱成像。这是一种收集空间和光谱信息的新方法,而这些信息对于自动驾驶汽车、机器视觉应用等而言都是必不可少的。(图片...
美国贸易代表戴琪10月4日表示,美计划与中方就中美第一阶段经贸协议落实情况、产业政策等问题展开坦率对话。她称,美方无意“激化”与中国的贸易紧张局势。戴琪当天在美国智库战略与国际研究中心发表演讲,首次阐述拜登政府对华贸易政策愿景。她说,中美经贸关系影响深远,作为全球最大的两个经济体,中美两国如何相处不仅影响两国本身,也影响全世界。戴...

史海拾趣

问答坊 | AI 解惑

useful for beginer

d电容 的基本知识 等效串连电阻 漏电流 。。。。…

查看全部问答∨

DS18B20头文件!绝对好使!M16 8M 的!

来源:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=657257&bbs_page_no=1&bbs_id=9999 终于调通了!哈哈: 我也拿出来跟大家分享一下! 里面的内容什么都不用该,就该一下前面宏定义就可以了! 只需调用gettemp();就可以了!出口 ...…

查看全部问答∨

求救!!

我现在正在做这个的数控电源的论文,不知道这个电路和程序是否问题,哪位大侠能帮我看看,有问题话能不能帮我改改 ,谢谢!!!whf-205@163.com [ 本帖最后由 yeloulo 于 2010-1-15 13:27 编辑 ]…

查看全部问答∨

GPRS无线通信模块MC35i及其外围电路设计

【网络通信中国】随着信息技术的迅速发展,无线远程监控技术得到了越来越广泛的应用,采用先进的GPRS技术的无线监控管理系统,集计算机、通信、机电、自动控制等多种先进技术于一体,成功实现了对无线分布式系统的实时监控管理和灵活部署,解决了传 ...…

查看全部问答∨

求Wince下自制的软键盘源码,evc和C#的都行。

求Wince下自制的软键盘源码,evc和C#的都行。系统自带的控制有些不自由。…

查看全部问答∨

新手求救

我毕业设计弄MC68HC908GP32的设计  现在我串行输入电路(写人单片机的电路) 弄不出来 那里有啊 请高手指点哈!!!! 谢谢…

查看全部问答∨

VXWORKS移植问题,请高手帮忙

我现在手里有一块s3c2410(arm920t,flash:16m,sdrom:64m)的开发板,现在用PPCBOOT2.0.0引导LINUX启动一切正常。我现在想把用这块开发板,运行vxworks,应该如何做呢,请高手帮忙,谢谢!!!!急…

查看全部问答∨

怎么学红外线遥控呢?

各位高手:   小弟现在想自学红外线遥控,不知道是看书好呢还是看视频教程好!   请各位高手指点一下!看书的话看什么书?看视频教程的话在哪里下载的好一点?…

查看全部问答∨

请教关于stm32F103VC的fsmc问题

在用stm32f103vc 100pin做项目的时候,遇到一个问题。 我们想用103vc的fmsc挂5个外设。这5个外设的地址有4个只需要2根地址线,另外一个需要10根地址线。它们的数据线都是8位的。 因为用的103vc 100pin的,所以它的A0~A15和D0~D15是复用的, ...…

查看全部问答∨

是不是用完TIM2.再用串口DMA接受会有bug?

RT.不知道为什么.如果不用TIM2计时.直接用DMA串口接收.是没问题的.但是用TIM2延时一阵子.就不能收到了... 大家帮帮忙,有必要我就上程序…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved