打印
[STM32F1]

stm32f103单片机固件加密方案

[复制链接]
4305|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangchaoran|  楼主 | 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中不连续的空间。
沙发
biechedan| | 2017-6-22 23:12 | 只看该作者
加密不是熔丝位吗

使用特权

评论回复
板凳
biechedan| | 2017-6-22 23:13 | 只看该作者
固件是怎么加密的?通过校验?

使用特权

评论回复
地板
wangchaoran|  楼主 | 2017-6-23 11:05 | 只看该作者
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没又熔丝位的吧,读保护相当于熔丝了

使用特权

评论回复
5
wangchaoran|  楼主 | 2017-6-23 11:05 | 只看该作者
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没又熔丝位的吧,读保护相当于熔丝了

使用特权

评论回复
6
wangchaoran|  楼主 | 2017-6-23 11:06 | 只看该作者
biechedan 发表于 2017-6-22 23:13
固件是怎么加密的?通过校验?

固件是通过AES加密的

使用特权

评论回复
7
wangchaoran|  楼主 | 2017-6-23 11:07 | 只看该作者
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没有熔丝的吧,读保护相当于熔丝

使用特权

评论回复
8
zhuomuniao110| | 2017-6-23 11:16 | 只看该作者
CRC加密?

使用特权

评论回复
9
zhuomuniao110| | 2017-6-23 11:17 | 只看该作者
就算加密,这个系列也是可以**的。

使用特权

评论回复
10
yjmwxwx| | 2017-6-23 22:12 | 只看该作者
读保护、不用库函数、寄存器地址通过计算得到、LCD不显示任何ID有关的信息,不显示正确错误、不用ASE简单对掉BIN文件、CRC校验不让别人在程序后面添加代码、关键部分加点浮点数计算。 自己写个简单OS不让别人轻易跟踪调试程序,这个也不要用别人的自己写个和别人不一样的,ID错误就跑不想干的任务,不简单擦flash,擦完再写成别的代码。


我也没搞过防**,不是到这样弄管不管用

使用特权

评论回复
11
Bjorn| | 2017-6-27 17:30 | 只看该作者
可以通过CRC校验加密

使用特权

评论回复
12
wangchaoran|  楼主 | 2017-7-10 14:50 | 只看该作者

你说的CRC全称应该是循环冗余校验吧,用在通信传输校验是否在传输过程中出错,跟加密没啥关系。我说的是用AES加密算法将固件由明文变成密文

使用特权

评论回复
13
zhuomuniao110| | 2017-7-17 19:27 | 只看该作者
wangchaoran 发表于 2017-7-10 14:50
你说的CRC全称应该是循环冗余校验吧,用在通信传输校验是否在传输过程中出错,跟加密没啥关系。我说的是 ...

噢,懂了。这俩都没用过,我记错了。

使用特权

评论回复
14
zhuomuniao110| | 2017-7-17 19:28 | 只看该作者
https://bbs.21ic.com/icview-1726682-1-1.html
你看看这个解密是什么东东。超级CRC计算器,据说是解密什么用的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

61

帖子

3

粉丝