ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
查看: 374|回复: 13
收起左侧

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

[复制链接]
     

6

主题

52

帖子

166

积分

中级技术员

 楼主| 发表于 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中不连续的空间。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

268

主题

4370

帖子

1万

积分

资深工程师

发表于 2017-6-22 23:12 | 显示全部楼层 |返回版面
加密不是熔丝位吗
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

268

主题

4370

帖子

1万

积分

资深工程师

发表于 2017-6-22 23:13 | 显示全部楼层 |返回版面
固件是怎么加密的?通过校验?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

52

帖子

166

积分

中级技术员

 楼主| 发表于 2017-6-23 11:05 | 显示全部楼层 |返回版面
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没又熔丝位的吧,读保护相当于熔丝了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

52

帖子

166

积分

中级技术员

 楼主| 发表于 2017-6-23 11:05 | 显示全部楼层 |返回版面
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没又熔丝位的吧,读保护相当于熔丝了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

52

帖子

166

积分

中级技术员

 楼主| 发表于 2017-6-23 11:06 | 显示全部楼层 |返回版面
biechedan 发表于 2017-6-22 23:13
固件是怎么加密的?通过校验?

固件是通过AES加密的
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

52

帖子

166

积分

中级技术员

 楼主| 发表于 2017-6-23 11:07 | 显示全部楼层 |返回版面
biechedan 发表于 2017-6-22 23:12
加密不是熔丝位吗

stm32是没有熔丝的吧,读保护相当于熔丝
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

57

主题

1128

帖子

3396

积分

中级工程师

发表于 2017-6-23 11:16 | 显示全部楼层 |返回版面
CRC加密?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

57

主题

1128

帖子

3396

积分

中级工程师

发表于 2017-6-23 11:17 | 显示全部楼层 |返回版面
就算加密,这个系列也是可以破解的。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

35

主题

288

帖子

891

积分

高级技术员

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


我也没搞过防破解,不是到这样弄管不管用
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

75

主题

395

帖子

1185

积分

助理工程师

发表于 2017-6-27 17:30 | 显示全部楼层 |返回版面
可以通过CRC校验加密
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

52

帖子

166

积分

中级技术员

 楼主| 发表于 2017-7-10 14:50 | 显示全部楼层 |返回版面

你说的CRC全称应该是循环冗余校验吧,用在通信传输校验是否在传输过程中出错,跟加密没啥关系。我说的是用AES加密算法将固件由明文变成密文
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

57

主题

1128

帖子

3396

积分

中级工程师

发表于 2017-7-17 19:27 | 显示全部楼层 |返回版面
wangchaoran 发表于 2017-7-10 14:50
你说的CRC全称应该是循环冗余校验吧,用在通信传输校验是否在传输过程中出错,跟加密没啥关系。我说的是 ...

噢,懂了。这俩都没用过,我记错了。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

57

主题

1128

帖子

3396

积分

中级工程师

发表于 2017-7-17 19:28 | 显示全部楼层 |返回版面
http://bbs.21ic.com/icview-1726682-1-1.html
你看看这个解密是什么东东。超级CRC计算器,据说是解密什么用的。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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