STM32-IAP USB升级含AES128加密 CRC校验及下载工具

2019-12-14 12:38发布

本帖最后由 Zigbee2012 于 2017-9-21 22:30 编辑

sifteo cubes AES加密思路

1.在boot启动时, 通过CRC验证MCU flash的APP部分是否正确,来决定是否执行APP(保证boot的安全,防止非法APP,读取boot)
2.更新固件时
  *接收来自USB的加密固件
  *在boot 中, AES解密固件
  *写入flash, 生成APP的CRC校验值
3.跳转至APP分区
  
       虽然AES+CRC校验的方式不是完全可靠,但在成本有限的条件下,这种方案可以说是最佳方案。
如果在成本允许情况下,可以考虑额外添加专用的加密芯片,详情请看附件《加密算法简介》

工具:
USB升级固件工具:swiss   ( 详情见swiss的使用)
加密固件bin工具:fwdeploy (将bin文件加密生成stf文件)

以上提到的不论加密/升级工具及STM32 bootloaer AES USB均是开源的,在github上可以下载
ps:sifteo的bootlaoder使用USB+AES,但bin只有8k。

相关链接:
源码下载:https://github.com/sifteo/thundercracker    bootloader请看 firmware/master/bootloader
论坛上的资料:https://www.amobbs.com/thread-5676907-1-1.html

======
更新附件,源码大家直接去github下

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
39条回答
haso2007
1楼-- · 2019-12-17 03:01
全面而实用的资料,感谢楼主
Mrjiang
2楼-- · 2019-12-17 06:03
楼主给出的建议是很实用的,APP程序一定要做备份,防止变砖
a105
3楼-- · 2019-12-17 10:33
全面而实用的资料,感谢楼主
天下无棱
4楼-- · 2019-12-17 13:03
 精彩回答 2  元偷偷看……
pnhywyb
5楼-- · 2019-12-17 13:28
楼主您好,如果我们对bin文件做AES加密,然后boot程序一边读取加密的bin文件,一边解密,一边写入FLASH,这样我感觉不用做CRC啊,因为非法的bin文件,会被解密再写入FLASH,但AES密钥我们肯定不公开的,这样非法的bin文件,都被boot程序解密成无意义程序了,还能读取boot程序吗?谢谢。
kinsno
6楼-- · 2019-12-17 16:12
Zigbee2012 发表于 2017-9-23 17:10
别人开源的。。这里面还有很多不错的工具,后续慢慢 给大家分享

楼主你GIT里的代码,如果可以的话,能分亨一套在这里吗,GITHUB里的代码,我前后下了3次都下不下来。。


一周热门 更多>