当前位置:首页 > 单片机 > 单片机
[导读]NEC的78K系列单片机从多个方面采取措施使得单片机程序的保密性得到加强,尤其它没有READ命令,无法将程序数据读出到片外的特点使得其破解成本大大提高,有效地保护设计者的知识产权。

如今,一款新产品刚推出不久,市场上往往就会出现仿冒的产品,给先期研发的企业和个人造成知识产权的侵犯和经济利益的损害。作为工程师,在产品设计初期应该尽量考虑到产品被抄袭的可能,选择一款具有良好保密性的单片机并对单片机系统进行加密设计,防止竞争对手的抄袭。

破解单片机程序的方法

对单片机内的程序窃取主要有两种方法:侵入式和非侵入式。侵入式的方法是破坏芯片的封装,并利用半导体测试设备、显微镜和微定位器等仪器找到芯片内保护熔丝的位置并将其擦除,使其变成未经加密的芯片,然后用编程器将程序读出,或者直接将探针放在芯片内部总线上读出存储器中的程序。非侵入式的方法是利用芯片设计或芯片编程时序中的某些漏洞对芯片进行解密,例如针对早期的AT89C系列芯片在擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后停止下一步擦除片内程序存储器数据的操作,从而使加密的单片机变成没加密似的,然后利用普通编程器就可读出片内的程序了。

可以看到,使用侵入式的解密方法需要使用昂贵的设备,并且需要花费较长的时间,其解密成本较高;而使用非侵入式的解密方法需要的设备相对较廉价,只要能找出芯片设计中的漏洞就有可能实现解密,但是需要解密者有深厚的专业知识。


图1:NEC 78K系列单片机的保密功能。

NEC单片机的保密设计

理论上来说,单片机的程序不可能做到百分之百的保密,对单片机程序进行加密只是为了提高破解成本。当一个产品的破解成本高到和自主设计一个相同产品的成本相当的时候,便没人会有兴趣破解此产品。

产品设计中,为了避免增加外围硬件从而增加产品成本,产品软件的保密通常主要依靠所选用单片机的保密性来保证,因此选用一款保密性良好的单片机来提高抄袭者的破解成本就显得尤为重要。NEC(日电电子)在其FLASH型的78K系列单片机中设计了充足的保护措施来保证单片机程序代码的安全。

 

通常除了开发者的原因外,单片机程序目标文件的泄露无外乎三个原因:1.量产时程序烧写过程中目标文件被窃取;2.产品上市后被窃密者拿到,利用侵入式或非侵入式的方法获取单片机内的目标文件;3.使用BootLoader程序通过串口、CAN接口等进行产品现场升级时应用程序目标文件被窃取。


图2:量产编程器的加密设置。

量产编程时的程序保密

第三方为NEC设计的量产编程器FL-G03可以支持对8片芯片的同时烧写。开发工程师使用128位密钥将原始HEX文件加密,并将该密钥固化到编程中用于烧写时的解密,工程师还可在编程器上设置烧写芯片的数量限制,然后将编程器和加密过的HEX文件提供给程序烧写人员。这样避免了其它人员接触原始HEX文件,且最多只能烧写设定数量的芯片。

 


图3:即使保密位被破坏也无法读出程序。

 

防止侵入式和非侵入式的程序窃取

侵入式的破解方法可以将加密过的芯片变成非加密的芯片,然后用编程器读出程序,当然也可以用探针从芯片内部总线读取程序,但这样做的成本相当之高;非侵入式的破解方法最后一般都要通过编程器将程序读出。NEC的78K系列单片机没有PROGRAM READ功能,因此无法利用编程器将程序读出。(注:用编程器给芯片编程时的校验功能并不是将程序读出来进行校验,而是编程器将数据送给芯片,由芯片内核独立完成与存储区数据的比较,然后将比较结果返回给编程器)。


图4:使用加密的目标文件进行现场升级。

产品现场升级时的程序保密

如果单片机程序设计者使用了BootLoader功能,则可以在产品售出后方便地通过串口等通讯口对单片机程序进行升级,但是这也给窃密者留下了可乘之机,新版本的应用程序目标文件有可能被泄露。解决办法是设计者将应用程序的目标文件按自定义的某种算法进行加密,并将解密算法放在BootLoader程序中。升级的时候BootLoader程序对目标文件进行解密,然后写入目标FLASH区。这可以避免原始的目标文件泄露出去。

防止芯片程序被意外擦除或改写

除了上面谈到的防止程序被泄露或破解的措施外,78K系列单片机还采取了多项措施来保证程序不会被意外擦除或者改写。78K系列单片机可以在编程时通过编程软件对FLASH进行如下安全设置:

1. 禁止全片擦除操作。

2. 禁止块擦除操作。

3. 禁止写操作。

4. 禁止改写boot cluster0区。

这些设置可以禁止通过编程器对芯片进行擦除和写入操作,但是芯片内的用户程序仍然可以对FLASH区进行擦除和写入操作。一旦设置了“禁止全片擦除操作”后,芯片内的程序将不可再被擦除和改写,此设置也无法再被取消。

各项安全设置与操作命令的关系见表1。


表1: 各项安全设置与操作命令的关系。

结语

NEC的78K系列单片机从多个方面采取措施使得单片机程序的保密性得到加强,尤其它没有READ命令,无法将程序数据读出到片外的特点使得其破解成本大大提高,有效地保护设计者的知识产权。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

USB是目前电子产品最通用的一种接口,USB电路的设计包含了众多有趣的点。

关键字: USB接口 电源状态 编程器

新一代MPLAB® ICD 5和MPLAB® PICkit™ 5在线调试器/编程器提供了全新的编程和连接方式

关键字: 编程器 调试器 嵌入式设计

  由于高辉度蓝光LED的问世,因此利用荧光体与蓝光LED的组合,就可轻易获得白光LED。目前白光LED已成为可携式信息产品的主要背光照明光源,未来甚至可成为一般家用照明光源。此外最近几年出现高

关键字: 仿真器 编程器 工业自动化

来源 :eepw 单片机是大学电类专业的一门普通课,有些学校甚至把它列为选修课,在众多课程中,没有显出它有多么重要。为什么要学习它呢?因为,市场对学者继承人的需求太少,大量需要的是产品的研发者,研发产品是需要干实际事情的...

关键字: 学习单片机 JTAG接口 编程器 虚拟仿真

CC2640 R2是德州仪器推出的面向 Bluetooth Smart 应用的低功耗无线 MCU。该芯片运行TI的BLE协议栈,具有功耗低,外设种类丰富,射频性能好等特点。利用它可以实现许多有趣的应用,收到了用户的广泛欢...

关键字: 芯片 烧写程序 BOOTLOADER KD

什么是射频技术?它有什么作用?射频简称 RF 射频就是射频电流,是一种高频交流变化电磁波,为是 Radio Frequency 的缩写,表示可以辐射到空间的电磁频率,频率范围在 300KHz~300GHz 之间。每秒变化...

关键字: RFID 射频 编程器

AT89S51芯片的日渐流行,对我们单片机初学者来说是一个大好消息。因为做个AT89S51编程器非常容易,而且串行编程模式更便于做成在线编程器,给频繁烧片,调试带来了巨大的方便。

关键字: at89s51 编程器

编程器通过USB 接口与PC 上位机通讯,用户只需要通过PC上位机GUI 的简单操作,就可以实现对STC 89C/S51XX/52XX 等系列单片机的擦除、编程、校验和加密。经过STC89C52RC 等单片机反复测试,该...

关键字: ch340t stc89c52rc 编程器

汽车的安全性成了人们重点关注的话题。安全气囊,安全座椅,安全带,碰撞试验,汽车厂家在汽车安全方面可谓花了大价钱。据统计显示,在高速公路上,40%的交通事故是由于轮胎的故障引起的,而其中又有75%是由于爆胎引起的,可见,轮...

关键字: 传感器 编程器 自动驾驶
关闭
关闭