Copyright © 2017 STMicroelectronics
STM32 Secure Engine middleware provides a protected environment to manage all critical data and operations (such as cryptography operations accessing firmware encryption key, and others).
Protected code and data are accessible through a single entry point (call gate mechanism) and it is therefore not possible to run or access any SE code or data without passing through it, otherwise a system reset is generated.
Depending on hardware two different mechanisms are provided :
For more details, refer to UM2262, AppendixA : Getting started with X-CUBE-SBSFU expansion package
None
Compatibility with V2.5.2
Update LICENSE file for Key Management Services middleware (Software license agreement description)
For CKS_ENABLED feature (WB series): the initial state of the IPCC interrupts is now kept.
None
Compatibility with V2.5.1
None
Compatibility with V2.5.0
STM32WB Series : Add specific CKS lock key service (cannot be called in BY-PASS mode)
Remove bootinfo structure and services
Locked objects are no more accessible by searches
Minor update with no functional impact
None
Break of compatibility with V2.4.1
Add service to enable and disable IRQ services
Modify prepareimage to allow merge of any elf and bin files
None
No Break of compatibility with V2.4.0
Fix for IT management with firewall.
Minor update with no functional impact.
None
None
Management of interruption during code execution inside the firewall is now supported for applications with high real time constraints. IRQ are no more disabled when entering into the isolated code environment, when IT_MANAGEMENT compilation switch is enable.
For CKS_ENABLED feature (P-NUCLEO-WB55.Nucleo): the lock of CM0 keys is now done during execution of SE_LOCK_RESTRICT_SERVICES just before jumping into user application.
None
Break of compatibility with V2.1.0
Management of header not contiguous with firmware for external flash : when slot0 is mapped in external flash, header of slot0 must be contiguous to SBSFU area, in order to be protected by secure memory
New Secure Engine service (SECBOOT_ECCDSA_WITH_AES128_CTR_SHA256) for initialization of OTFDEC with symmetric keys ; AES CTR cryptographic scheme is required for external flash with OTFDEC variant
Changes in management of exceptions for STM32 series supporting Flash ECC error (STM32L4, STM32G0, STM32G4, STM32H7 and STM32WB series) : fix on double ecc error management
None
Break of compatibility with V2.0.0
General improvements (software counter measures) against software attacks and against basic hardware faults injection
Secure Engine extended with Key Management Services, replacing former secure engine crypto services when KMS feature is enabled
Add SE_IMG_Erase API to be able to erase slot #0 header: mandatory for NUCLEO-L073RZ (specific behavior of STM32L0 flash interface : writing instructions during erasing sequence)
prepareimage.py utility updated to support :
- partial image update
- pairing keys, for communication with STSAFE-A100
None
Break of compatibility with V1.2.0
prepareimage/key/translate_key scripts improvements :
- Quicker execution timing.
- Support of big elf in order to be able to flash SBSFU+ UserApp from IDE : refer to AN5056 for more details.
- Adaptation for ARM V6M architecture (cortex MO+)
- Remove support of cipher text stealing : 16 bytes alignment ensure with linker command files during UserAppbuild process.
Add mapping_export.h for IAR and SW4STM32 tool chains to avoid mapping symbols inclusion into *.c files.
Add support of SE service calls from unprivileged part of application : SE_APP_GET_ACTIVE_FW_INFO.
Security controls added :
- Check the mapping of the data given as parameters toSecure Engine services (SE_BufferCheck_SBSFU() /SE_BufferCheck_in_se_ram()).
- Clean Secure Engine RAM data (SE_LL_CORE_Cleanup())when leaving SBSFU (SE_LockRestrictServices()).
None
Multiple crypto scheme implemented under compilation switch (se_crypto_config.h) :
- SECBOOT_AES128_GCM_AES128_GCM_AES128_GCM: symmetric crypto.
- SECBOOT_ECCDSA_WITH_AES128_CBC_SHA256(default config) : asymmetric crypto with encrypted (AES128-CBC)Firmware.
- SECBOOT_ECCDSA_WITHOUT_ENCRYPT_SHA256 : asymmetric crypto without firmware encryption.
Build process modification : scripts added in Utilities/KeysAndImages called during :
- SECoreBin build for key generation.
- UserApp build for firmware encryption.
- Windows executable version of the python scripts available : This is now the default tooling for pre/post build actions (so python not mandatory any more)
Secure Engine now using its own stack inside protected area
Files structure updated to provide more feature modularity and feature customization flexibility
None
None