国产防盗版加密芯片安全性分析

2022-12-01 11:13
23

笔者本人也算是产品设计领域的老兵了,多个行业打过工,也自己搞过Design House,将近20年的从业经历。我们这个行业很多时候面临的最大威胁就是盗版抄板!一个产品投入很大代价很长周期开发出来,结果到了市场上不到3个月被人抄板了,投入成本都收不回,这对我们的打击是巨大的。

一、加密方案安全性分析

根据我多年的防盗版加密芯片的使用经验和理解,加密芯片的安全性主要取决于芯片硬件平台安全性、芯片内部固件(也有叫做操作系统)安全性以及加密方案安全性三个方面。由于芯片载体本身的安全性很难简单的去评测(下面我会针对具体厂家加密芯片在市场的表现来简单分析),而加密方案安全性很容易分析,所以下面我先把目前市面上常见的两种加密方案的优缺点做个介绍:

1、固定算法认证加密芯片(安全性相对比较低)

此类芯片一般采用标准通用算法例如SHA、DES、AES,在加密芯片中存放一段密钥。

其原理大致如下:

MCU和加密芯片两端在出厂阶段分别设置一条相同的认证密钥;

在运行阶段,MCU端和加密芯片端基于对称加密算法对同一组随机数加密后产生两组密文;

最后在MCU端进行比对,只有结果一致后,认证才能通过。

优点:因为算法固定,都是标准通用算法,认证加密方法都是公开的,开发相对简单,用户能快速开发量产。适合对安全性要求不高,但需要迅速将产品投放市场的客户。

缺点:相对安全性比较低。

这个方案无论加密芯片本身硬件有多高安全性、算法本身强度有多高,都无法解决它的明显安全弱点,加密芯片和主板MCU之间只是固定算法认证的弱关联,整个设备的关键程序不存在安全芯片中,虽然固定算法认证加密芯片本身可能会比较安全,里面的数据很难被破解分析出来。但整个设备系统的关键程序和数据都存放在安全短板MCU中。

通过对主板MCU的破解分析,可以相对容易的拿到重要程序,反汇编之后绕过MCU中的认证对比部分代码(屏蔽掉对比点),然后将程序重新下载到MCU中,当运行到认证环节时,不论加密芯片返回的结果是否正确,甚至MCU没有收到任何返回值(去掉加密芯片),MCU程序都能继续正常运行。所以单独采用这类方案的加密芯片,无论怎么宣传他加密芯片多么安全,无法破解,都无法解决MCU端的安全短板,因为盗版商不会找不自在,放开容易破解分析的通用MCU,专门去破解你加密芯片。

2、可编程算法移植类加密芯片(安全性相对比较高)

此类芯片一般都是采用安全性相对比较高的智能卡芯片或者专门设计的安全芯片(内部带有防破解保护技术的CPU ROM RAM FLASH等IP),开发商把MCU程序中的一部分关键代码摘出来(MCU将不再有这段代码),拿到加密芯片编程环境下编译后烧录到加密芯片中运行。其加密原理如下:

在应用阶段,当MCU端程序运行到这部分缺失的程序时,通过IIC、Uart等通信接口与加密芯片进行交互;

MCU发送指令调用加密芯片内部的程序,加密芯片运行完成后,将算法运算结果返回给MCU端,供其使用该运行结果。

优点:安全性高,可以不同产品或者版本移植不同关键代码,实现一个产品一个加密方法,MCU中的程序不完整,关键代码程序在加密芯片中运行,别人无法单纯的去破解MCU来完成整个破解。而安全性更强的加密芯片将成为破解的难点。此外加密芯片中移植的关键代码只有开发者自己知道,不公开,无法推测,破解难度很大,加密芯片和MCU形成强关联。

详细点说,上面提到MCU端是安全弱点,那么将其内部程序删除后,程序变得不完整,即使盗版商拿到了MCU这部分代码,也无法绕过认证对比点(因为不存在),这样可以引导其必须破解加密芯片中的算法。而加密芯片自身特点就是安全性极高,有各种软硬件防护措施,所以直接剖片等方法无法破解,而MCU与加密芯片交互数据时,线路上传输的内容都可以进行加密处理,所以线路攻击、重放等手段也将失效。最终破解者会因为无法获得MCU端完整程序而宣告破解失败。

缺点:开发难度较大,开发周期较长,对移植算法代码本身的安全强度有要求。

由于需要开发者自己考虑移植什么关键算法代码到加密芯片中,还要考虑移植的代码跟MCU中程序交互的调用安全性,对开发者来说有一定难度,需要费点心思考虑。另外还有不是随便什么程序都适合移植到加密芯片中,程序算法本身过于简单,交互数据有规律的就不太适合。这个方案的安全关键点其实就在于移植到加密芯片中那部分程序的安全强度。


三、总结

客户在选择加密芯片是一个综合评估的过程,要根据实际需求,比如安全性、成本、接口、封装、功耗、性能、产品成熟性、良率、供货能力、技术支持和售后服务等多个方面,来选择最适合自己的产品和方案。特别是公司的持续服务的能力非常重要,强烈建议用户在选择合作公司的时候,对公司的专业性以及售后服务能力要做重点的考察关注。另外加密和破解一直就是一个矛和盾的关系,盗版商一直致力于破解技术的升级,那加密芯片厂商也得具有不断升级和提升加密芯片安全性的实力和技术能力,这样才能面对未来层出不穷的破解技术。希望本文能给广大跟我一样的开发者在加密芯片选型上有点帮助。