Example 2 – TF-M
As noted previously, TF-M is a reference implementation of PSA for Cortex-M-based platforms. TF-M implements PSA developer APIs and has initially been targeted to Armv8-M architecture cores. It is reliant on the isolation boundary between the Secure Processing Environment (SPE) and Non-Secure Processing Environment (NSPE) that we covered in the previous example. It can be broadly broken down into three components.
Let’s review each component in detail:
- Secure boot: TF-M software needs a secure bootloader that authenticates the integrity of the runtime images. This helps achieve Security Goal 4 regarding secure boot. TF-M currently uses a two-stage secure bootloader that validates that the images are from a trustworthy source and only then passes the right of execution to them. This implies all images in TF-M should be hashed and digitally signed for authentication purposes.
TF-M uses MCUBoot as the secure bootloader. MCUBoot is open...