一、加密方案选择
1、对比认证(身份认证)
实现原理:MCU和加密芯片两端在出厂阶段分别设置一条相同的认证密钥。在运行阶段,MCU端和加密芯片端基于对称加密算法对同一组随机数加密后产生两组密文,最后在MCU端进行比对,只有结果一致后,认证才能通过。
安全性:安全性偏低。通过对主板MCU的剖片分析,破解者可以拿到程序,反汇编之后绕过MCU中的认证对比部分代码(屏蔽掉对比点),然后将程序重新下载到MCU中即完成破解。此方案不论加密芯片自身的安全等级多高,整个系统的弱点在于MCU端,而该方案并不能提升MCU的安全等级,所以防盗版效果偏低。
2、数据安全存储(参数保护)
实现原理:在开发阶段将MCU存储的一些参数和数据删除,将其转移到加密芯片中存储。在出厂阶段,将参数和数据写入到加密芯片中。应用阶段,当MCU需要使用这部分缺失的参数时,通过IIC/UART等通信接口与加密芯片交互,读回参数和数据(明文、固定密文或变化的密文)。
安全性:如果MCU与加密芯片通信线路上传递的是明文参数,则没有安全性。如果传递的是固定密文,也没有安全性,因为密文被截获后,通过一个单片机就能轻松模拟出与加密芯片同样的通信时序欺骗MCU。只有传递随机变化的密文参数,才能起到防御线路重放攻击,保护参数安全的效果。
3、算法移植方案(推荐)
实现原理:在开发阶段把MCU端一部分程序删除掉,将其转移到加密芯片中编程实现。在应用阶段,当MCU端程序运行到这部分缺失的程序时,发送指令给加密芯片,后者运行程序后,将运行结果返回给MCU端使用。
安全性:这一方案相较前两种安全等级高很多。因为他真正解决了MCU没有安全性的短板。整个系统的弱点是MCU端,里面的程序和数据都有可能被暴露分析,本方案巧妙的一点是虽然没办法直接对MCU进行安全加固,但是引导破解人员去攻击安全等级非常高的加密芯片。
4、混合加密方案(推荐)
实现原理:将对比认证、数据存储、算法移植方案结合起来使用,就形成了混合加密方案。
安全性:此方案结合了各单一方案的优点,因此安全性最高,破解难度最大。