首页- 新闻中心- 正文

关于单片机破解的几点建议

来源:芯片解密-龙芯世纪   时间:2009-08-27   阅读:2041

      从理论上讲,对于任何一款单片机,攻击者均可利用足够的投资和时间来攻破。所以,在用单片机做加密认证或设计系统时,应尽量加大攻击者的攻击成本和所耗费的时间。这是系统设计者应该始终牢记的基本原则。除此之外,以下几点也应该引起大家的重视:
  (1)在选定加密芯片前,要充分调研,了解单片机破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片选择采用新工艺、新结构、上市时间较短的单片机,如可以使用ATMEGA88/ATMEGA88V,这种国内目前破解的费用需要1万元左右;其他也可以和CPLD结合加密,这样解密费用很高,解密一般的CPLD也要1万左右。
  (2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透彻。
  (3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度,选用一些生僻的单片机,比如motorola单片机,目前国内会开发使用熟悉motorola单片机的人很少,所以破解的费用也相当高,一般要8000~3万左右。
  (4)在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效对付物理攻击;另外程序设计的时候,加入时间倒计时功能,比如使用到1年,自动停止所有功能的运行,这样会增加破解者的成本。
  (5)如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解成本。
  (6)打磨掉芯片型号等信息或者重新印上其它的型号,以假乱真。
  (7)可以利用单片机未公开,未被利用的标志位或单元,作为软件标志位。
  (8)利用MCS-51中A5指令加密,其实世界上所有资料,包括英文资料都没有讲这条指令,其实这是很好的加密指令,A5功能是二字节空操作指令加密方法在A5后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序。
  (9)应在程序区写上你的大名、单位、开发时间及仿制必究的说法,以便获得法律保护;另外写上你的大名的时候,可以是随机的,也就是说,采用某种算法,外部不同条件下,你的名字不同,比如husoon1011、jisppm1012等,这样比较难反汇编修改。
  (10)采用高档的编程器,烧断内部的部分管脚,具体如何烧断,可以参考:单片机管脚烧断的方法和破解。
  (11)采用保密硅胶(环氧树脂灌封胶)封住整个电路板,PCB上多一些没有用途的焊盘,在硅胶中还可以掺杂一些没有用途的元件,同时把MCU周围电路的电子元件尽量抹掉型号。
  (12)对SyncMos,Winbond单片机,将把要烧录的文件转成HEX文件,这样烧录到芯片内部的程序空位自动添00,如果你习惯BIN文件,也可以用编程器把空白区域中的FF改成00,这样一般解密器也就找不到芯片中的空位,也就无法执行以后的解密操作。
  加密技术在不断发展,解密技术也在不断发展。所以,要想彻底防止单片机被解密是不可能的。现在不管哪个单片机,只要有人肯出钱去做,基本上都可以做出来,只不过代价高低和时间长短的问题。编程者还可以采取法律途径(比如专利)对自己的开发做出保护。