Registered User Tag: 2017 source edit |
Registered User mNo edit summary Tag: 2017 source edit |
||
Line 22: | Line 22: | ||
<br> | <br> | ||
[[File:SFIx overview.png| | [[File:SFIx overview.png|700px|center]] | ||
<br> | <br> | ||
Line 36: | Line 36: | ||
<br> | <br> | ||
[[File:SFIx global key overview.png| | [[File:SFIx global key overview.png|700px|center]] | ||
== External Flash memory encryption with chip unique key == | == External Flash memory encryption with chip unique key == | ||
Line 45: | Line 45: | ||
<br> | <br> | ||
[[File:SFIx chip specific key overview.png| | [[File:SFIx chip specific key overview.png|700px|center]] | ||
==References== | ==References== |
Revision as of 07:09, 23 October 2024
1. What is SFIx
OEM product can embed external Flash additionally to STM32 internal Flash.
The SFIx solution provides security when programming STM32 devices and external Flash in a non-trusted facility owned by a Contract Manufacturer (CM).
The SFIx solution is the same solution as the SFI solution, it also allows the external Flash programming.
2. External Flash memory programming principle
The OEM external Flash content must be encrypted to ensure the OEM data confidentiality.
External Flash crypto is handled by the OTFDEC peripheral. This peripheral can encrypt firmware and data in the device. It can above all decrypt on-the-fly external firmware and data stored in external Flash memory connected to STM32 microcontrollers through the OCTOSPI interface. The OTFDEC can handle up to 4 regions of external Flash memory, each one with its own dedicated Key. The OTFDEC uses standard AES CTR 128-bit algorithm for encryption and decryption operations. Refer to the OTFDEC section of the STM32 microcontroller reference manual to get more insight.
The STM32 receives encrypted external firmware, decrypts them with the SFI OEM key, and re-encrypts them with an external Flash memory AES key common to all devices to be programmed or with a unique external Flash memory AES key per device.
The STM32 stores the encryption result within SRAM.
Then the STM32 (external flash memory loader) takes the previous result and program it within the external Flash memory.
3. External Flash memory encryption with global key
This section focuses on the external Flash memory AES key common to all devices. In this case, the external Flash memory AES key is provided by the OEM and is programmed in the STM32 via the SFIx.
4. External Flash memory encryption with chip unique key
This section focuses on the external Flash memory AES key unique per chip. In this case, the OEM requests the STM32, via the SFIx procedure, to generate the external Flash memory AES key and to program it at a given address in the STM32.
5. References