ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F1] stm32f103单片机固件加密方案

[复制链接]
803|13
 楼主 | 2017-6-22 14:40 | 显示全部楼层 |阅读模式
背景:用stm32f103c8t6做的一个产品,自己写了USB bootloader,能够进行IAP升级。现在想对固件及IAP升级通信过程进行加密,加密方案如下,诸位讨论一下是否可行?是否存在漏洞,请高人指点
1.固件防止读取加密:在自己写的boot开头使能读保护,保护固件不被读取;判断芯片的唯一ID是否合法进行跳转,在运行程序中间加累积运行时间到100小时再读取ID进行判断,非法ID进行程序自销毁(擦除flash),防止盗版者将读取到的固件直接运行,其次防止盗版者跳过开头的ID判断。
2.IAP固件升级包加密:将明文的bin文件用AES进行加密生成密文的bin文件进行发布,在bootloader中进行AES解密,由于设备不能联网,AES的128bit密码分8组分别存储在flash中不连续的空间。
| 2017-6-22 23:12 | 显示全部楼层
加密不是熔丝位吗
| 2017-6-22 23:13 | 显示全部楼层
固件是怎么加密的?通过校验?
 楼主 | 2017-6-23 11:05 | 显示全部楼层
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没又熔丝位的吧,读保护相当于熔丝了
 楼主 | 2017-6-23 11:05 | 显示全部楼层
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没又熔丝位的吧,读保护相当于熔丝了
 楼主 | 2017-6-23 11:06 | 显示全部楼层
biechedan 发表于 2017-6-22 23:13
固件是怎么加密的?通过校验?

固件是通过AES加密的
 楼主 | 2017-6-23 11:07 | 显示全部楼层
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没有熔丝的吧,读保护相当于熔丝
| 2017-6-23 11:16 | 显示全部楼层
CRC加密?
| 2017-6-23 11:17 | 显示全部楼层
就算加密,这个系列也是可以破解的。
| 2017-6-23 22:12 | 显示全部楼层
读保护、不用库函数、寄存器地址通过计算得到、LCD不显示任何ID有关的信息,不显示正确错误、不用ASE简单对掉BIN文件、CRC校验不让别人在程序后面添加代码、关键部分加点浮点数计算。 自己写个简单OS不让别人轻易跟踪调试程序,这个也不要用别人的自己写个和别人不一样的,ID错误就跑不想干的任务,不简单擦flash,擦完再写成别的代码。


我也没搞过防破解,不是到这样弄管不管用
| 2017-6-27 17:30 | 显示全部楼层
可以通过CRC校验加密
 楼主 | 2017-7-10 14:50 | 显示全部楼层

你说的CRC全称应该是循环冗余校验吧,用在通信传输校验是否在传输过程中出错,跟加密没啥关系。我说的是用AES加密算法将固件由明文变成密文
| 2017-7-17 19:27 | 显示全部楼层
wangchaoran 发表于 2017-7-10 14:50
你说的CRC全称应该是循环冗余校验吧,用在通信传输校验是否在传输过程中出错,跟加密没啥关系。我说的是 ...

噢,懂了。这俩都没用过,我记错了。
| 2017-7-17 19:28 | 显示全部楼层
http://bbs.21ic.com/icview-1726682-1-1.html
你看看这个解密是什么东东。超级CRC计算器,据说是解密什么用的。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

分享 快速回复 返回顶部 返回列表