Getting started with STM32U0 security

Revision as of 16:17, 20 February 2024 by Registered User


A practical guide to examples related to the STM32U0 security solutions. Examples are based on the boards, tools and code examples provided by ST.
In the guides listed below, each step to be followed is described in detail.
It is advised to get familiar with the available tools by using these examples before making your own steps with the STM32Cube_U0.

Product Series STM32U03x STM32U08x
Board NUCLEO-U031R8 NUCLEO-U083RC
OEMiRoT N/A Link to How To
OEMiSB Link to How To no dedicated example, but applicable

The STM32U0 small memory footprint is not suited for extensive secure environments. Instead, the focus is on the secure boot and simple, but hardened protection of assets. The platform security certification is ambitious for such a small product, targeting SESIP3.
Password protected regression is another differentiating feature of the STM32U0 series.


1. RDP regression

Important feature of the STM32U0 is the ability to lock regression from RDP1 to RDP0 using password and allow password protected regression from RDP2 to RDP1.
Further reading:

2. OEMSB - Secure Boot

The secure boot example is a compact code showcasing the utilization of the boot lock feature and subsequent protections. The example is based on the STM32CubeMx.
The goal of the Secure Boot is to protect the application code and prevent execution of any other code on the device.

3. OEMiRoT - Root of Trust

The customized Immutable Root of Trust (OEMiRoT) is more complex than the secure boot, as it features a loader capable of updating the application code. The loader is primitive, but can be secured with additional effort and code size expense.
It is advised to first try the general OEMiRoT wiki article to understand the term Root of Trust.