什么是单片机解密?单片解密也叫芯片解密,单片解密,芯片解密,IC解密。但严格来说,这些术语是不科学的,但却成了约定俗成的术语。我们习惯把CPLD解密和DSP解密称为单片机解密。
单片机内部一般都有EEPROM/FLASH,供用户存储程序和工作数据。什么是单片机解密?如果你想非法读取程序,你必须先解锁这个密码才能读取。这个过程通常被称为单片机解密或芯片加密。为了防止对单片机内部程序的非授权访问或复制,大多数单片机都有加密锁来定位或加密字节以保护片上程序;如果在编程时启用(锁定)加密锁定位,普通程序员无法直接读取单片机中的程序。单片机的攻击者借助专用设备或自制设备,通过各种技术手段,从芯片中提取关键信息,获取单片机中的程序,称为单片机解密。大部分单片机程序写入单片机后,工程师会对其进行加密,防止他人非法窃取(侵权),从而防止他人读取里面的程序。
AT89C51单片机的解密原理单片机的简单解密就是擦除单片机中的加密锁定位。由于AT89C系列单片机擦除操作的时序设计不合理。可以在擦除片上程序之前擦除加密锁定位。
AT89C系列单片机擦除操作的顺序是:擦除开始-擦除操作硬件初始化(10微秒)-擦除加密锁定位(50微秒-200微秒)-擦除片内程序存储器中的数据(10毫秒)-擦除结束。如果用程序来监控擦除过程,一旦加密锁被擦除,擦除操作就会终止,片内程序存储器的进一步擦除就会停止,加密的微控制器就变成了未加密的微控制器。片内程序可以通过总线读出。
AT89C系列单片机有两种无法破解的加密方法。
一、永久破坏单片机加密位的加密方法。简称OTP加密模式。
二、永久破坏单片机的数据总线加密方法。烧录总线加密模式的简称。AT89C系列单片机的OTP加密方式原理这种编程加密算法烧坏了加密锁(将芯片中的硅片进行分解),不破坏其他部分,不占用单片机的任何资源。加密锁烧坏后,不再具有擦除特性。89C51/52/55有三个加密位,进一步增加了加密的可靠性。一旦在OTP模式下加密,芯片中的加密位和程序存储器中的数据就不能再被擦除,89C51/52/55单片机就像一个一次性编程的OTP单片机。
如果用户程序的长度大于89C51微控制器片内存储器的容量,也可以使用OPT模式进行加密。
具体方法如下:
1、照常扩展一个大容量的程序存储器,比如27C512(64K)。
2、将关键程序部分安排在程序的第一个4K中。
3、将整个程序写入27C512,然后用0填充27C512的第一个4K。
4、将程序的第一个4K固化为AT89C51,并在OPT模式下加密。
5、将单片机的EA引脚接高电平。这样,程序的第一个4K运行在单片机内部,最后的60K运行在芯片外部。盗版者看不懂第一个4K程序,即使他们知道最后的60K,也无济于事。
AT89C系列单片机的总线加密方式原理由于单片机芯片内的程序代码最终会通过数据总线读取,如果引导单片机的数据总线的一条线路被永久损坏,即使加密位被擦除,解密器也无法读取芯片内程序的正确代码。89C1051/2051的数据总线是P1端口烧总线模式,烧89C2051的P1.0端口。原程序代码为02H、01H和00H。读出的数据是03H、01H和00H。最低位总是1,读取的程序代码明显是错误码。这种加密方式用于加密89C1051/2051单片机。缺点是占用单片机资源。开发人员在设计单片机硬件系统时,只要不使用出口线P1.0,就可以通过烧总线方式对单片机进行加密。
目前解密芯片有两种方法。一种方法是基于软件的,叫做无创攻击,需要一些软件,比如类似程序员的自制设备。这种方法不破坏主芯片(解密后芯片处于未加密状态);还有就是入侵攻击,以硬件为主,辅助软件。这种方法需要将母芯片剥离(解封或去封装),然后修改电路(通常称为FIB:聚焦离子束)。这种对芯片外部结构和芯片管芯电路的破坏只影响加密功能,并不改变芯片本身的功能。
入侵式攻击的第一步是移除芯片封装(英文称为“去封装”或“解封装”)。有两种方法可以达到这个目的:第一种是完全溶解芯片封装,露出金属布线。二是只去掉硅芯上的塑封。第一种方法需要将芯片绑定到测试夹具上,并在绑定表的帮助下进行操作。
目前,单片机的主要解密方法如下:
(1)软件攻击
这种技术通常使用处理器的通信接口,利用协议、加密算法或这些算法中的安全漏洞进行攻击。软件攻击成功的典型例子是对早期AT89CATMEL系列单片机的攻击。攻击者利用该系列单片机擦除操作的顺序设计上的漏洞,在擦除加密锁后停止下一次擦除芯片程序存储器中数据的操作,使加密的单片机变成未加密的单片机,然后用编程器读取片上程序。目前在其他加密方法的基础上,可以开发一些设备,配合某些软件做软件攻击。最近国内出现了一款51单片机解密仪(成都一位高手做的)。这个解密器主要是针对SyncMos Winbond生产过程中的漏洞,利用一些程序员定位插入字节,通过一定的方法找出芯片中是否有连续的空位,也就是说找出芯片中连续的FF FF字节。插入的字节可以执行指令将芯片内部的程序发送到芯片外部,然后用解密设备截获,使芯片内部的程序被解密。
(2)电子探测攻击
该技术通常以高时间分辨率监测处理器正常工作时所有电源和接口连接的模拟特性,通过监测其电磁辐射特性实施攻击。由于单片机是一个移动电子设备,当它执行不同的指令时,对应的电源功耗也随之变化。这样,通过使用特殊的电子测量仪器和数理统计方法来分析和检测这些变化,就可以在单片机中获得特定的关键信息。目前射频编程器可以直接读取老的加密MCU中的程序,就是基于这个原理。
(3)故障生成技术
这种技术利用异常工作条件使处理器失效,然后提供额外的攻击途径。最广泛使用的故障生成攻击手段包括电压冲击和时钟冲击。低压和高压攻击可用于禁用保护电路或迫使处理器执行错误操作。时钟瞬态跳变可以在不破坏受保护信息的情况下重置保护电路。电源a中的瞬态跳变
这种技术是直接暴露芯片内部布线,然后观察、操纵、干扰单片机,达到攻击的目的。为了方便起见,人们将上述四种攻击技术分为两类。一种是侵入式攻击(物理攻击),需要破坏封装,然后在半导体测试设备、显微镜和微定位器的帮助下,在专门的实验室中花费数小时甚至数周完成。所有的微探针技术都是入侵性攻击。另外三种方法属于非侵入式攻击,被攻击的微控制器不会受到物理损伤。非侵入式攻击在某些情况下特别危险,因为非侵入式攻击需要的设备通常可以自制和升级,所以非常便宜。大多数非侵入式攻击要求攻击者具备良好的处理器知识和软件知识。相比之下,入侵探测攻击不需要太多的初始知识,通常可以使用一组类似的技术来处理广泛的产品。所以对单片机的攻击往往是从有创逆向工程开始的,积累的经验有助于开发更便宜更快速的无创攻击技术。
标签:单片芯片程序