PRODUCTS

wolfBoot Secure Bootloader

Secure your device with wolfBoot! wolfBoot will secure the boot process of your device against malicious attacks that seek to replace your firmware and take control of your device, and/or steal its data.

wolfBoot is a portable secure bootloader solution that offers firmware authentication and firmware update mechanisms. Due to its minimalistic design and tiny HAL API, wolfBoot is completely independent from any OS or bare-metal application.

wolfBoot can be easily ported and integrated in existing embedded software projects to provide a secure firmware update mechanism. Upon installing a verified update, wolfBoot creates a backup copy of the last firmware image known to work correctly. If the new version is not confirmed by the application, or if the image installed is somehow corrupted, the bootloader will restore the state of the system before the most recent update.

Please email us at facts@wolfSSL.com with any questions or to learn more about Secure Boot.

Download Now

Get the latest open source GPLv2 version now!

Version: 2.0.2
Release Date: 12/29/2023
View ChangeLog

Highlights

  • Multi-slot partitioning of the flash device
  • Integrity verification of the firmware image(s) using SHA2 or SHA3
  • Authenticity verification of the firmware image(s) using wolfCrypt's digital signature algorithms (ECDSA SECP256R1, Ed25519, Ed448, RSA 2048/4096)
  • Post quantum crypto support with LMS/HSS and XMSS/XMSS^MT (stateful hash-based signature schemes)
  • Highly reliable, transport-agnostic firmware update mechanism
  • Anti-rollback protection (via version numbering)
  • ARM TrustZone-M support, can operate in both Secure and Normal world
  • Hardware-assisted dual-bank swapping
  • Support for secure key storage, OTP memory, TPM 2.0
  • Support for encrypted firmware images
  • Support for delta/incremental updates

Portable

  • Supports multiple architectures (ARM, Risc-V)
  • Minimalist design
  • Tiny HAL API
  • OS-independent
  • Can be integrated with any key provisioning system

Firmware Backup and Restore

Upon receiving and installing a verified update, wolfBoot keeps a backup copy of the newest firmware image that had been confirmed to work correctly. If the new version is not confirmed by the application
itself, or whenever the image installed is damaged or corrupt, the bootloader will restore the state of the system before the most recent update.

Secure Key Storage and Provisioning

wolfBoot supports multiple hardware-based public-key accelerators, such as Freescale-PKHA and STM32-PKA. wolfBoot also supports hardware security modules(HSM), including Trusted Platform Module(TPM). TPM 2.0 support is provided through the integration with wolfTPM.

wolfBoot does not enforce any specific key provisioning. In the simplest case you simply create a private key and use it to sign authentic updates for your target. For this reason, it can be integrated with any specific provisioning system that supports the same algorithms.

Platform and Language Support

Thanks to its OS agnosticism, wolfBoot is easily ported and integrated in existing embedded software projects. Example platforms have been specifically tested and many targets are already supported, including the following:

  • STM32C0
  • STM32-F407
  • STM32L0x3
  • STM32G0x0/STM32G0x1
  • STM32WB55
  • STM32-F769
  • STM32H7
  • STM32L5xx
  • STM32U5
  • NXP i.MX RT-1050
  • NXP i.MX RT-1060
  • NXP i.MX RT-1064
  • NXP T2080
  • SiFive HiFive1 RISC-V
  • LPC54606
  • Cortex-A53 / Raspberry Pi 3
  • Xilinx Zynq UltraScale+ (Aarch64)
  • TI TMS570LC435
  • ARMv8-m (Cortex-m33)
  • ARM Cortex-R
  • PowerPC
  • Renesas RA6M4
  • Renesas RX72N
  • Renesas RZ/N2L
  • Intel 11th Gen Core i7 (Tiger Lake)

wolfSSL Training Course

Interested in getting trained by security experts on subjects related to wolfSSL and SSL/TLS? Learn more.

wolfBoot Examples

wolfSSL maintains a set of examples for wolfBoot on GitHub to easily and quickly get started and see how wolfBoot works!

 

Features

  • OS-agnostic, can run along side RTOS, Linux or bare-metal application
  • Supports ARM TrustZone-M, can operate in both Secure and Normal world
  • Multi-slot partitioning of the flash device
  • Integrity verification of the firmware image(s)
  • Authenticity verification of the firmware image(s)
  • Digital signature algorithms (ECDSA SECP256R1/Ed25519/RSA 2048/4096)
  • Hash algorithms (SHA-256, SHA-3-384)
  • Minimalist hardware abstraction layer (HAL) interface to facilitate portability across different vendors/MCUs
  • Copy/swap images from secondary slots into the primary slots to consent firmware update operations
  • In-place chain-loading of the firmware image in the primary slot
  • Hardware Security Modules support, including TPM 2.0 modules
    • Tested on STM32 with Infineon TPM2.0 9670 module
    • Measured boot using TPM 2.0 is supported
  • Support for external (e.g. SPI) flash for update/swap
  • Anti-rollback protection via version number
  • Support for updating the bootloader itself
  • Support for encrypted firmware images
  • Support for hardware-assisted signature verification:
    • STM32 PKA (e.g. STM32WB55)
    • Kinetis/Freescale PKHA (e.g. Kinetis K82F)
  • Support for operating as a secure-mode supervisor on ARMv8-M as PKCS#11 engine in TrustZone-M
  • Contains key tools and image signing tools written in Python and C
  • Includes wolfBoot test applications
  • Secure key storage
  • UEFI support

Python and C Key Tools

wolfBoot comes with an included key generation and image signature generator tools. These tools can be used to generate the private/public key pair, and to attach the required manifest header that contains the signature of the bootable image. The image generated by the tools will comply with the firmware image format required by the bootloader, and contains the signature used to authenticate the firmware. Versions of these tools are available in both Python and C.

Supported Chipmakers

Currently, wolfBoot has support for the the targets listed above. While more will be added in the future, please contact us if there are specific mechanisms you would like to see supported.