对于工程师和创业者来说,最大的痛苦莫过于设计了一个非常好的产品,再投入市场以后发现,不到一个月甚至更短的时间就发现市场上有竞争对手拿出了一个跟他产品完全一样,包括设计、功能完全一样的产品,但是卖的价格比他低80%以上。对于工程师和创业者来讲这是一个非常大的打击。
诸如此类的事件已经屡见不鲜,盗版破解方面的日益猖獗,严重影响了产品开发商的利益,从技术角度保护开发商产品的知识产权已经越来越重要了,保护设计免受克隆或逆向工程的危害将成为首当其冲需要考虑的问题。避免山寨的事情发生其实也并不难,只需要在设计时,将加密认证芯片放在PCB板上,外加一些简单的电路,便可消除被盗版的隐患。
市面上的安全类芯片种类繁多、AT88SC系列逻辑加密卡,DM2016、G7010/G7015,FS88x6系列芯片、LKT系列等等。
鉴于本人的经验列举几种芯片的安全机制给看客们在选取过程中做些参考:
1、AT88SC系列逻辑加密卡
标准访问:对用户存储区的读写访问无任何限制;口令访问:对用户存储区的读写访问需要口令验证;认证访问:通过不同用户区所设定的口令检验才能访问用户数据区;加密验证访问:须先经过认证,认证成功后以某个数据为密钥再次认证,再重复一次认证访问。
2、G7010/G7015
将MCU通过两安全密钥和制作商编号计算所得序号与芯片计算的序号相比较,每次密钥可不同。
3、FS88x6系列芯片
把系统中重要的数据或代码放在FS88x6中;系统CPU将ESW和Digest根据设定的要求分批的送入FS88x6,FS88x6将根据对应的算法以及预存的密钥,对送进来的代码进行计算校验并反馈认证结果,以达到保护系统的目的;3、在I2C/SPI总线上的数据,每次都是通过随机数加密的缺点是端口进行数据分析就容易被破解。
4、DM2016
将用户MCU加密计算的结果送给安全芯片,安全芯片再解密的结果送回MCU进行比较。
5、LKT安全芯片
将CPU或者是软件中的一部分程序移植到安全芯片中,没有此安全芯片cpu的程序不完整,
提供了DES、3DES加解密功能。
这其中,逻辑类的大多数在密码验证或者在CPU与安全类芯片的计算机过做对比实际意义上cpu端也是做了相同的加密解密或者是逻辑处理的工作,当然如果有高手能反汇编二进制文件,找到cpu程序中调用安全芯片的入口,并绕过去,之前辛辛苦苦做的程序就被破解了。好的方案应该是硬件加软件的,但硬件加软件如果还是做对比认证,安全性能上还是很低的。上面几类芯片是我在项目中接触到的,自我感觉LKT的安全机制以及设计相对是比较好的。