21ic电子技术开发论坛

标题: 在STM32H725上使用STM32 SBSFU软件包 [打印本页]

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:23
标题: 在STM32H725上使用STM32 SBSFU软件包
在 STM32H725 上使用 STM32 SBSFU(Secure Boot and Secure Firmware Update)软件包是一项用于实现安全启动和安全固件更新的任务。STM32 SBSFU 提供了一个框架,能够支持加密、签名和完整性验证,从而确保 MCU 只有在验证过的固件执行时才能正常启动。这个功能通常用于嵌入式系统的安全性,防止恶意软件或未授权的固件运行。

STM32 SBSFU 主要由以下几个部分组成:

安全启动(Secure Boot):通过验证启动固件(如 bootloader)和应用程序的完整性,确保系统只能启动经过认证的固件。
安全固件更新(Secure Firmware Update):支持通过加密签名进行固件更新,确保固件更新是由授权源提供的,并且没有被篡改。
密钥管理:存储和管理加密密钥(如用于签名和验证固件的公钥和私钥)。


作者: 梵蒂冈是神uy    时间: 2024-12-28 02:24
如何在 STM32H725 上使用 SBSFU
下面将详细介绍如何在 STM32H725 上配置和使用 STM32 SBSFU 软件包。

2.1 下载和准备 STM32 SBSFU 软件包
获取 STM32 SBSFU 软件包:

从 STMicroelectronics 的官方网站(https://www.st.com/en/embedded-software/stm32secure-boot-and-secure-firmware-update.html)下载 STM32 SBSFU 软件包。
该软件包包含了相关的固件库、文档和示例代码。
配置 STM32CubeMX:

在 STM32CubeMX 中创建一个新的项目,选择 STM32H725 为目标 MCU。
启用 Secure Boot 和 SBSFU 相关的功能。
配置时钟、外设、存储器等,并确保选择合适的固件存储区域。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:25
安全启动确保只有经过认证的固件能够在系统上运行。通常,系统启动时会首先执行一个安全启动加载程序(bootloader),然后验证主应用程序的完整性和有效性。通过加密算法(如哈希算法和签名验证),安全启动会确认固件的完整性,确保它没有被篡改。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:25
配置 STM32H725 启用安全功能
启用硬件加密:

STM32H725 配备了硬件加密模块(包括 AES、SHA、RSA 等),可以用于加密和签名操作。
在 STM32CubeMX 中启用 Crypto 外设,确保硬件加密模块得到正确配置。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:26
配置密钥存储区:

为了支持安全启动和固件更新,需要配置密钥存储区域。STM32H725 支持多种密钥存储方式:
OTP区域:用于存储私钥和公钥。
外部安全芯片:如果需要更强的安全性,可以考虑使用外部安全芯片,如 STSAFE。
你需要选择一个存储区域来存储公钥,用于在引导程序中验证应用程序的签名。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:27
启用安全启动:

在 STM32CubeMX 中启用 Secure Boot 配置。这将使得 MCU 在启动时,首先执行一个安全引导加载程序(通常存储在 Flash 的特定区域),以验证主应用程序的签名。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:27
工作原理:

当设备启动时,bootloader 会首先加载并验证主应用程序的签名。
主应用程序被签名后,bootloader 会使用公钥来验证该签名,确保固件的完整性。
如果签名验证成功,bootloader 执行主应用程序;如果失败,则阻止启动并进入保护模式。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:27
配置存储区域:

在 STM32H725 上,SBSFU 软件包通常会使用 Flash 的前几个扇区来存储引导程序和配置。
确保应用程序的存储区域与引导加载程序的存储区域不冲突。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:28
配置引导加载程序和应用程序
编写引导加载程序:

引导加载程序负责验证应用程序的签名,验证通过后启动应用程序。
引导加载程序还负责管理固件更新功能。使用 STM32H725 的硬件加密模块对固件进行验证。
如果你的应用程序需要更新,可以通过引导加载程序支持的安全更新机制来进行固件更新。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:29
编写应用程序:

应用程序的代码应该根据引导加载程序的要求进行签名。签名算法通常为 RSA 或 ECDSA。
应用程序的固件在引导加载程序启动时会进行验证,只有验证通过后,才会继续运行。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:30
固件更新机制:

SBSFU 支持通过引导加载程序进行固件更新。更新过程中,用户可以通过安全的协议将新的固件上传到 MCU(比如通过串口、USB、网络等)。
更新完成后,固件会在下一次启动时自动进行验证并加载。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:31
测试和调试
调试安全启动和固件更新:

在开发过程中,使用 STM32 的调试工具(如 ST-Link)进行调试。你可以设置断点,查看引导加载程序的执行流程,确保固件签名验证机制正常工作。
使用串口或 USB 等通信接口进行固件更新操作,测试引导加载程序的固件更新功能。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:31
固件更新功能允许将经过认证的固件(通常为新版本的应用程序或系统更新)安全地上传到设备,并进行验证。通过加密签名技术,固件更新包的来源和完整性都得到验证,确保固件在更新过程中的数据传输不会被篡改。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:32
验证固件签名:

在启动时,引导加载程序会验证应用程序固件的签名。如果签名验证失败,引导加载程序会中断启动并可能进入失败处理模式。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:32
ST 提供了多个示例代码和教程,帮助你实现 STM32 的安全启动和固件更新。你可以参考这些示例来构建自己的安全启动方案。SBSFU 软件包本身也包含了详细的文档和使用说明,帮助你理解如何集成和配置安全启动和固件更新功能。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:33
在使用 SBSFU 功能时,需要管理加密密钥。密钥管理是一个关键部分,它确保系统能够存储并保护密钥(如公钥、私钥、加密密钥等)。密钥通常存储在设备的非易失性存储器中,并受到保护,以防止泄露。

作者: 梵蒂冈是神uy    时间: 2024-12-28 02:34
在 STM32H725 上使用 STM32 SBSFU 软件包可以实现安全启动和安全固件更新。整个过程涉及以下步骤:

配置 STM32CubeMX,以启用硬件加密和安全启动功能。
配置引导加载程序,确保能够验证应用程序的签名。
使用硬件加密模块生成应用程序固件的签名。
使用安全固件更新机制,确保固件更新是由受信任的来源进行,并且没有被篡改。
通过正确配置和实现安全启动和固件更新机制,STM32H725 可以为嵌入式应用提供强有力的安全保障。

作者: Stahan    时间: 2024-12-29 18:42
安全启动是干嘛的啊?

作者: l63t89    时间: 2024-12-30 23:40
STM32H725 的 SBSFU 功能能够提供强大的安全启动和安全固件更新能力。





欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)