如何在生产时防止代码泄漏
扫描二维码
随时随地手机看文章
产品在出厂后往往都会对芯片进行软硬件加密,要想山寨产品需要破解芯片,然而对已加密的芯片进行解密,一般需要拆解芯片,分析其内部总线结构,破解周期长,费用昂贵。但很多时候代码往往是在生产时泄漏的,本文将介绍如何在生产时防止代码泄漏。
有很多企业在产品研发完成后,一般选择代工厂进行批量生产,代码的安全性尤为重要。为了避免工厂直接接触代码,一般会在编程器上建立加密工程,对烧录文件进行加密保护,再将加密后的工程发给代工厂生产,杜绝了文件被直接泄漏的可能。
图1 工程加密
传统的烧录方式为擦除—编程—校验—加密,该方式可以保障芯片在烧录完成后处于加密状态,在一定程度上杜绝了代码泄漏的可能性,但并非无懈可击,只要一个小动作就可以轻易盗取芯片内部的代码,例如,烧录执行完擦除—烧写后,在校验的时候将板子(芯片)从编程器的连接中断开,使烧录没有执行到加密阶段,此时的芯片处于烧写完成但未加密的状态,随便一个编程器就可以读取其内部的代码,从而导致代码泄漏。
图2 传统烧录方式
为了解决这个问题,P800isp编程器提供了灵活编辑的组合配置,组合中的操作可以任意增减、调整执行顺序。为了避免生产中代码泄漏,可以将组合顺序调整为擦除—加密—编程—校验,在编程之前先加密,这样可以保证编程完成后,芯片一旦发生复位(或掉电),加密就会生效,禁止读取内部代码。当然,该方式也需要芯片本身的支持,有些芯片一旦执行加密,就会立即生效,如MicroChip的PIC系列芯片、ATMEL的ATSAM4C系列芯片等等,只能使用传统的烧录方式。
图3 自定义安全加密方式