当前位置:首页 > 电子图书 > 电子电路 > 正文内容

基于单片机bootloader的随笔

admin7个月前 (04-04)电子电路29

基于单片机bootloader的随笔

一、前言

一直觉得做产品开发需要得考虑一些安全策略,一般的设计固件时会进行bootloader设计,而设计一个高效且安全的定制Bootloader需要考虑以下几个关键因素:

1. 安全性

首先确保Bootloader自身的安全性,例如通过以下措施:


  • 加密:使用加密算法确保固件在传输和烧写过程中的安全性。Bootloader需要能够解密接收到的固件。


  • 数字签名:通过签名验证确保烧录的固件是经过授权的。Bootloader应验证固件签名的合法性后才能烧录。


  • 锁定Bootloader:在生产烧录完成后,可以锁定Bootloader以防止未授权的代码执行。


  • 使用加密算法:

    选用合适的加密算法对固件内容进行加密。常用的有AES(高级加密标准),可以对固件内容进行加密,仅在需要加载到内存执行时解密。注意,这种方法需要在MCU中嵌入加密和解密的代码,并安全地存储密钥。


  • 其他

    不要在程序中直接出现id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0

2. 高效烧录

为了提高烧录效率,可以采取以下策略:

  • 批量烧录:开发一个支持批量烧录的Bootloader,可以一次性向多个设备并行烧录固件。

  • 快速通讯协议:选择速度较快的通讯协议(如USB高速模式)进行数据传输。

  • 优化固件结构:减少固件大小,避免不必要的数据写入。

3. 更新机制

考虑到产品需要在市场中更新,需要:

  • 设计安全的更新协议:确保固件更新包在传输和烧录过程中的安全性,防止固件被篡改或泄露。

  • 支持远程更新:Bootloader应支持通过网络或其他无线手段远程更新固件,以便于大规模部署。

4. 生产烧录优化

为了提高生产效率:

  • 使用快速编程器:使用比J-Link更高效的编程器,或者使用多路编程器同时烧录多个设备。

  • 预编程内存:如果可能的话,在MCU还没有被焊接到PCB上之前就进行编程。

  • 并行烧录:设置多个烧录工作站,使得多个操作员可以同时烧录。

5. 生产后阶段

在产品离开生产线后:

  • 关闭调试接口:通过设置STM32的Read Protection等级,禁用调试端口,防止通过SWD接口读取固件。(一般不关,只是一个点)

  • 启用读写保护:对关键区域(如Bootloader存储区)启用读写保护来防止恶意软件覆盖Bootloader。

6. 使用专业烧录系统

假如1天需要烧录1000块板子的高效率要求,可能需要专业的烧录解决方案,比如使用专业的批量烧录系统,它们通常可以通过并行烧录和自动化流程来提高烧录速度。

7. 维护和支持

  • 版本控制:确保Bootloader可以识别不同版本的固件,以支持向后兼容。

  • 故障恢复:设计Bootloader时,需要考虑固件升级失败的情况。应提供一种机制来恢复到旧版固件或者一个基本的、可用的固件版本。

8. 设备认证

  • 确保每个设备的唯一性:为每个设备分配一个唯一的身份标识,并通过加密手段保护这个信息,确保更新和通信的安全性。

通过采取这些措施,可以设计一个出既安全又高效的Bootloader,以适应高速的生产需求,同时保持产品在市场中的固件安全性和更新能力。

当然还有其他的硬件设计方式,比如:

9. 使用内置的硬件加密

如果MCU支持,可以利用内置的硬件加密功能(比如STM32H7系列支持的)来保护程序代码。这将确保即使有人物理接触到MCU,也无法直接读取或理解固件内容。

10.硬件封装

选择难以物理攻击的封装类型,比如BGA封装相对于TQFP或DIP封装更难被攻击。

11. 物理封锁

在PCB设计中,考虑物理封锁或隐藏调试接口,使外部设备难以连接到MCU的相关引脚。

在这里插入图片描述

以上只是一些思路,笔者也是处于摸索中,具体要根据自己的使用场景进行产品设计。在产品设计之初就需要考虑这些安全措施,并在产品的整个生命周期中持续关注安全性。


扫描二维码推送至手机访问。

版权声明:本文由梦魁网络资源站发布,如需转载请注明出处。

本文链接:https://family.monkui.com:39/?id=1371

标签: 电子电路
分享给朋友:

相关文章

看爽了!50张电工接线图,够你琢磨一天了

看爽了!50张电工接线图,够你琢磨一天了

   众所周知,所谓电工也就是成天跟“电”打交道的存在,那么下面这么多电工接线图,各位老师傅熟悉哪些呢?一起来看看吧!1、启、停延时不断循环2、桥式全波整流滤波电路3、起保停控制4、电源线的接电方式5、时间继电器延时控制...

非常全的地线基础知识整理

非常全的地线基础知识整理

线的作用地线的主要作用就是当电器出现故障时,电源可能击穿(或:破坏)某些元件,使电器的外壳带电。将电器的外壳接地,可以使漏电保护装置1. 信号“地”;信号“地”又称参考“地”,就是零电位的参考点,也是构成电路信号回路的公共段,图形符号“⊥”...

电工最实用的8大经验公式,快快收藏~

电工最实用的8大经验公式,快快收藏~

一、照明电路电流计算及熔丝刀闸的选择口诀:白炽灯算电流,可用功率除压求;日光灯算电流,功率除压及功率因数求(节能日光灯除外);刀闸保险也好求,一点五倍额定流。说明:照明电路中的白炽灯为电阻性负荷,功率因数cosΦ=1,用功率P单位瓦除以电压...

200个电气知识,值得收藏

01电荷的性质答:电荷之间存在着相互作用力,同性电荷相互排斥,异性电荷相互吸引。02电场答:在带电体周围的空间存在着一种特殊物质,它对放在其中的任何电荷表现为力的作用,这一特殊物质叫做电场。03电阻,影响电阻的因素答:电流在导体内流动过程中...

电工接线口诀,记住你就是电工老师傅了

电工接线口诀,记住你就是电工老师傅了

电工接线口诀一 安全注意事项火线L零线N,金属外壳接地E。零线接地火有电,氖气发光是火线,氖管电阻一百万。手按笔卡尖接线,注意手指不碰尖。触电事故先断电,绝缘棒来挑起线。火线零线并排走,插座电器并联接。三孔插座上接地,两孔插座右接...

44种实用电路图,掌握了,也就一通百通了!

44种实用电路图,掌握了,也就一通百通了!

通过以下各种各样的实用电路,大家可以了解元器件的结构、特性、动作原理及电路的基本控制方式,掌握一些控制规律,这样的话,在日后的电路识图中就能融会贯通,一通百通。文章中的电路图有难有易,有些图现在可能看不懂,说不定以后就能看懂了,建议大家收藏...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。