老师,对于Bootloader中仅仅使用AES解密APP中的固件

🔍 溯源 ✍️ Jack | 📅 2024-09-09 | 👍 1 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/Bootloader #技术/信息安全 #质量/普通

原帖 | Jack | 2024-09-09 12:49 | 👍1 | 阅读约1

老师,对于Bootloader中仅仅使用AES解密APP中的固件:
①、生产的话bootloader和app都会给到工厂,那么工厂把bootloader和app给出去的话,相当于AES加密是没有用的。
②、出厂后,bootloader已经烧录在芯片里,客户拿到AES加密后的app,对客户是一种防范。
所以,这套AES对生产是无法防范;
对客户是可以防范;这样理解对吧?

首先,你的理解是正确的。
1.在生产阶段,工厂会获得Bootloader和App的完整版本,因此即使使用了AES加密,工厂方面也可以解密,因为加密密钥和逻辑已经都存在。因此,AES加密在防止工厂获取固件内容方面无法起到作用。
2.在客户使用阶段,AES加密可以防止客户篡改或者反编译固件。

如果要防范工厂的生产(尤其是我们的设备交给第三方贴牌厂进行生产时,防止他们过度生产,制造伪劣产品),那么方案有很多:
1.自己开发在线下载工具(类似JTAG口),在下载时先去读取芯片的UUID号码,然后现场会通过UUID作为盐去产生一套固件,(可选:并且这套UUID也被分享到云端,作为后续跟踪的手段。)
2.将每个产品对应的证书和密钥对写入到OTP当中,设备商的Bootloader启动时会验证签名是否合法,确保固件与 设备匹配,防止固件未经授权启动。
3.Bootloader所在的芯片交给一家供应商(芯片商),整个产品生产交给另一个供应商。Bootloader里面会对密码和加密逻辑进行固件混淆和防篡改技术和反调试和检测机制,确保Bootloader很难被破解,然后APP的下载和设备的整装交给另一个供应商。


相关笔记