完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我们需要在固件下载中采用强大的固件升级方法,我们知道在固件下载中有一个示例。
例子/at_upgrade.c 对于该示例,我们有一个问题: 如何避免损坏的bin文件? 因为如果恶意用户将损坏的文件放入Web服务器中,然后发送AT CIUPDATE进行升级。 然后ESP8266可能会以破碎的状态进入......我们希望仅升级我们公司发布的固件。 system_upgrade_start(... 或其他内部功能 会检查升级文件的一些校验和/签名吗? ESP8266可以通过回调 API 提供,用于通过签名检查升级仓固件吗? 例如:在bin固件的末尾添加一些hash section信息。 用户可以使用他们的私钥来验证哈希数据,如果哈希值匹配,则系统可以运行新的文件映像,否则永远不会运行新的bin文件。 |
|
相关推荐
1个回答
|
|
为了避免ESP8266固件损坏,您可以采取以下措施:
1. **使用安全的固件下载源**:确保从可靠的来源下载固件。这可以降低恶意用户将损坏的文件放入Web服务器的风险。 2. **固件签名验证**:在固件升级过程中,您可以实现一个签名验证机制。在您的公司发布固件时,使用私钥对固件进行签名。在设备上,您可以使用公钥对签名进行验证。这样,只有经过验证的固件才能被升级。 3. **固件校验和**:在固件升级前,您可以计算固件文件的校验和(如CRC或MD5),并与固件中提供的校验和进行比较。如果校验和匹配,说明固件未被篡改。 4. **固件升级过程中的回调API**:ESP8266提供了固件升级过程中的回调API,例如`system_upgrade_user_cb_t`。您可以使用这些回调API在固件升级过程中实现自定义逻辑,例如签名验证或校验和检查。 5. **固件升级失败的恢复机制**:在固件升级过程中,如果检测到损坏的固件或升级失败,您可以实现一个恢复机制,例如从备份中恢复原始固件。 6. **固件升级权限控制**:限制只有特定的设备或用户才能发起固件升级请求。这可以通过设置设备ID或用户认证来实现。 7. **固件版本控制**:在固件升级过程中,检查固件版本号。确保只有比当前版本更新的固件才能被升级。 8. **固件升级过程中的错误处理**:在固件升级过程中,确保处理所有可能的错误情况,例如网络中断、文件损坏等。这可以通过实现错误处理逻辑和重试机制来实现。 通过以上措施,您可以降低ESP8266固件损坏的风险,并确保只有经过验证的固件才能被升级。 |
|
|
|
只有小组成员才能发言,加入小组>>
171个成员聚集在这个小组
加入小组412 浏览 1 评论
1266 浏览 1 评论
595浏览 6评论
488浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
477浏览 5评论
473浏览 4评论
456浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-6 15:53 , Processed in 0.714392 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号