背景:用stm32f103c8t6做的一个产品,自己写了USB bootloader,能够进行IAP升级。现在想对固件及IAP升级通信过程进行加密,加密方案如下,诸位讨论一下是否可行?是否存在漏洞,请高人指点
1.固件防止读取加密:在自己写的boot开头使能读保护,保护固件不被读取;判断芯片的唯一ID是否合法进行跳转,在运行程序中间加累积运行时间到100小时再读取ID进行判断,非法ID进行程序自销毁(擦除flash),防止盗版者将读取到的固件直接运行,其次防止盗版者跳过开头的ID判断。
2.IAP固件升级包加密:将明文的bin文件用AES进行加密生成密文的bin文件进行发布,在bootloader中进行AES解密,由于设备不能联网,AES的128bit密码分8组分别存储在flash中不连续的空间。
|