单片机攻击技术和应对加密技术分析

2009-09-29 03:41徐止铎
关键词:加密技术

徐止铎 田 霞

摘要:随着单片机越来越广泛的应用,单片机应用系统的开发者必然面临系统被仿制或剽窃的问题。为了使更多的单片机系统的原创者能有效地保护自己的开发成果和知识产权,文章分别从软件和硬件两方面对单片机及其应用系统的加密技术进行了阐述和比较,供大家参考。

关键词:单片机系统 双芯片互校验 加密技术

0 引言

随着单片机和大规模集成电路技术的飞速发展,单片机的应用领域不断拓宽,产品市场不断扩大。人们应用单片机及相关的外围电子器件,研制开发了各种各样的智能化仪器仪表和小型控制系统等自动化高新技术产品,在此类产品开发及推广应用中,碰到的一个令人头疼的问题就是新产品刚一推出就被仿制和剽窃,使单片机应用产品开发商常常蒙受损失,极大地挫伤了开发人员的积极性。加密问题就成为新产品开发中必须考虑的重要问题之— 。

1 单片机攻击技术

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

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

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

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

大部分非侵入型攻击需要攻击者具备良好的处理器知识和软件知识。与之相反,侵入型的探针攻击则不需要太多的初始知识,而且通常可用一整套相似的技术对付宽范围的产品。因此,对单片机的攻击往往从侵入型的反向工程开始,积累的经验有助于开发更加廉价和快速的非侵入型攻击技术。

2 单片机系统软件加密

这里的软件加密是指在不改变硬件电路及其资源的情况下只靠程序实现的加密。

2.1 数据加密 对于数据,可设计密钥,并采用数据与密钥进行逻辑异或等方法进行加密。还可采用将数据进行模糊处理方法,即掺沙子,并进行真假数据地址的交叉混叠。但这些方法对解密高手来说都没有太大难度。

2.2 程序加密 单片机系统的监控程序是剽窃者的主要破解目标之一,因此也就成为保密的重点。可以采用单片机本身的加密位或动态加密法对程序进行加密。

2.2.1 单片机加密锁定位实现程序加密 近年推出的大多数单片机内部都有加密锁定位或加密字节,开发者将调试好的程序固化到单片机内部程序存储器的同时将其锁定,这样就无法使用普通的仿真器或编程器读出其程序代码,这就是所谓的拷贝保护和锁定功能。但是许多单片机在此功能的设计上是有漏洞的,如,ATMEL的AT89C系列单片机,拷贝者可想办法(如自编程序)擦除其加密锁定位,且紧接着停止擦除内部程序存储器的下一步操作,然后就可利用仿真器或编程器读出程序代码,而且这种加密方法对有些单片机而言会使得片内程序存储器失去重新编程功能。

2.2.2 虚实地址实现程序加密 虚实地址加密是一种动态加密技术,即开发者在编写系统程序时,使程序表面上看到的是虚地址,而其对应的实地址在某个不易破解的芯片中,由CPU运行程序时动态地赋予。

3 单片机系统硬件加密

单片机产品的硬件加密方法有很多种,只要能使其硬件电路核心部分不能或者很难破译,就是有效的硬件加密方法。下面将介绍几种硬件加密的方法。

3.1 总线烧毁法 单片机内程序存储器的读写都是通过数据总线特定的I/O口以并行或是以串行方式来传送,如果把单片机数据总线的特定I/O口永久性地破坏,解密者即使擦除了加密位,也无法读出片内程序的正确代码。开发设计人员在设计单片机硬件系统时只要预留出总线的其中一条不用,就可以使用总线烧毁法对单片机加密。

这种加密方法的优点是简单可靠;缺点是占用了单片机资源,不能再使用总线扩展接口芯片和存储器。

使用总线烧毁法需要注意:程序的大小受片内程序存储器容量的限制;单片机被加密后,总线被永久性破坏,片内存储器就不再具有重复编程的特性,只有当确认程序无误后才能加密。

3.2 总线置乱法 在单片机的应用领域中,对于采用MCU +EPROM结构的产品,设计时,将MCU 和EPROM之间的数据线和地址线的顺序排乱,然后再将仿真器上调试好的源程序固化到EPROM 前,必须按排乱的数据线和地址线将源程序(明文)—— 转化成EPROM中的目标程序(密文)。这样,剽窃者如果想要破译EPROM 中的程序,必须同时破译硬件路,并将其排乱的数据线和地址线恢复正常,然后根据排乱和正常状态的对应关系,将EPROM 芯片中读出的数据(密文)经反向转换成原始程序(明文)。再考虑程序得反汇编和分析等,其工作量之大可想而知。

3.3 RAM 替代法 随机存储器大都是CMOS电路,功耗很低,用电池对其进行掉电保护数据,电流仅几微安。因此一粒锂电池可以保护数据15年之久,利用随机存储器的这一特点,我们可以采取单片微机仿真器对随机存储器进行编程。先将一系列数据写入随机存储器,接上电池,然后将其余的芯片插上,单片微机系统运行后,CPU首先从随机存储器中读出数据,这些数据可以是CPU执行程序的条件判别依据,也可以是CPU将执行的程序。如果数据正确,整个系统正常运行,反之,系统则不能运行。

假若对硬件电路没有剖析清楚,拔下了随机存储器或者取下电池,则随机存储器中的数据就会消失,在无正确的源程序的情况下,根本无法恢复原来的数据。

3.4 用GA1 器件对外EPROM 中的软件进行加密 GAL是一种可电擦写、可重复编程、并能够加密的可编程逻辑器件。GAL器件内部有一加密锁定位,一旦这个位被编程,就使其存取阵列电路中止工作,从而防止再次编程或者检验,此加密位只能够在整体擦除时和阵列一起擦除。由此可见,一旦GAL芯片内的加密位被编程,整个GAL芯片内的已编程的逻辑电路,对用户来说是不透明的,这就起到了对硬件电路的加密作用。单片机系统中的芯片其内部译码电路是不可以改变的,而且它本身没有可以加密的内部阵列。所以只能够将单片机系统中的EPROM 的数据线或者地址线重新定义后新连结,使用户仿真时从EPROM芯片中读出的程序代码变成随机数,从而反汇编时使原程序面目全非,变成不可明读的密码程序,从而达到了对软件加密的目的。

应用GAL器件对外EPROM 中的软件进行加密可采取变位加密法:将原机器码中的位序进行某种交换;逻辑运算加密法:将原机器码进行逻辑运算后获得每一位加密的机器码;地址总线加密法:改变地址总线,使读出代码的顺序发生变化,从而达到加密的目的。将各种加密技术结合起来,可实现复杂的加密技术,使得加密的软件保密性较高,不易破译。

3.5 采用多单片机结构 设计一个控制系统或产品可采用两个或多个单片机,控制系统是由CPU控制的,CPU 最终执行的是机器码语言。而这些机器码程序又存放在外部存储器中。我们将原源程序的机器码,按高半字节和低半字节进行分割,分别存放在两片EPROM 中去。当CPU输出地址访问外部程序存贮器时,选用内置程序存储器的单片机EP1、一般单片机EP2同时有效,分别把有效的半字节送到CPU总线上,重新组台恢复了原指令的代码,保证了CPU取指的正确,而盗用取出其中的一片或两片分别进行反汇编时,会因代码混乱而无法进行反汇编,这样达到了加密的目的。

EP1和EP2构成性能稳定的控制系统。把带内置程序存储器的单片机作为主处理,另一单片机完成其他集成电路的功能。这样在编制程序时,把程序的关键部分安排在EPl,其他程序安排在EP2中,或交替地存放程序。这样就增加了程序的反汇编的难度。

4 结束语

对单片机应用系统软硬件而言,要做到绝对保密几乎是不可能的,只能采取合适的加密技术尽量提高解密成本,这是加密的一个基本原则,只要能使一般剽窃者望而却步,就是成功的加密方法。

参考文献:

[1]任克强,刘晖.单片机系统硬件与软件加密技术.电子设计应用.2003年7期.

[2]陆利忠.单片机程序的加密和解密.电子技术(上海).1997年24卷6期.

猜你喜欢
加密技术
运用数据加密技术维护网络安全的可靠性研究
计算机网络通信安全中数据加密技术的应用研究
信息加密技术在计算机网络安全中的应用
日本开发新型加密技术 号称量子计算机也难破解
计算机网络信息安全及对策分析
试论传真通信技术的安全策略
基于云服务的加密式门禁系统设计
虚拟专用网络技术在计算机网络信息安全中的应用探讨
计算机数据加密技术的研究
守好你的秘密