本帖最后由 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下
Git大神!自己在很多项目中都想实现这么一个功能,除了USB口,我还想用串口-蓝牙ble或WiFi透传,这样就可以用手机做个APP连接主板做程序升级了。
一周热门 更多>