You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Moved the Overview section of the TF-M doc to a separate page.
Moved the PSA Certified API page one level up.
Added information about security services supported by minimal build.
NCSDK-32307, NCSDK-15032, and NCSDK-9188.
Signed-off-by: Grzegorz Ferenc <Grzegorz.Ferenc@nordicsemi.no>
Copy file name to clipboardexpand all lines: doc/nrf/security/psa_certified_api_overview.rst
+28
Original file line number
Diff line number
Diff line change
@@ -45,6 +45,34 @@ Using the PSA Certified APIs has the following benefits:
45
45
* Flexible and scalable - The various use cases supported ensure that the PSA Certified APIs can be used across multiple devices, from very simple ones to more complex systems.
46
46
* Future-proof - PSA Certified APIs are designed to be updated over time as security threats evolve, ensuring that devices remain secure throughout their lifecycle.
47
47
48
+
.. _ug_psa_certified_api_overview_supported_apis:
49
+
50
+
Supported PSA Certified APIs
51
+
============================
52
+
53
+
The following table provides an overview of the PSA Certified APIs support status in the |NCS|:
54
+
55
+
.. list-table:: PSA Certified APIs support in the |NCS|
56
+
:header-rows: 1
57
+
:widths: auto
58
+
59
+
* - PSA Certified API
60
+
- Support status in the |NCS|
61
+
- Latest version supported
62
+
* - `PSA Certified Crypto API`_
63
+
- Supported
64
+
- | `PSA Certified Crypto API 1.2.1`_ for :ref:`nRF54L cryptography <ug_nrf54l_cryptography>` and :ref:`nrf_security` builds without TF-M
65
+
|`PSA Certified Crypto API 1.0.0`_ for builds with TF-M
Trusted Firmware-M (TF-M) is the reference implementation of PSA, which follows `PSA Certified IoT Security Framework`_ for securing connected devices.
13
13
For more information about the framework, see the :ref:`ug_psa_certified_api_overview` page.
14
14
15
-
TF-M provides a reference design of a Secure Processing Environment (SPE) for Arm M-profile architectures.
16
-
The SPE relies on security by separation to protect sensitive assets and code.
17
-
TF-M also provides security services to the application, such as Protected Storage, Cryptography, and Attestation.
15
+
TF-M provides a reference design of a Trusted Execution Environment (TEE) for Arm M-profile architectures.
16
+
Using a highly configurable set of software components, it creates the Secure Processing Environment (SPE), which relies on security by separation to protect sensitive assets and code.
17
+
TF-M also provides a set of secure runtime services to the application, such as Protected Storage, Cryptography, and Attestation.
18
+
Additionally, secure boot through MCUboot in TF-M ensures integrity of runtime software and supports firmware upgrade.
18
19
19
20
`ARM TrustZone`_ technology included in Nordic Semiconductor's SoCs that implement the Armv8-M architecture (such as nRF5340, the nRF54L Series or the nRF91 Series) provides hardware-enforced separation of the Secure and Non-secure Processing Environments (SPE and NSPE, respectively) into Trusted and Non-Trusted worlds.
20
21
22
+
The TF-M implementation in the |NCS| is demonstrated in the following samples:
23
+
24
+
* All :ref:`tfm_samples` in this SDK
25
+
* All :ref:`cryptography samples <crypto_samples>` in this SDK
26
+
* A series of :zephyr:code-sample-category:`tfm_integration` samples available in Zephyr (these include :ref:`ug_tfm_supported_services_tfm_services` from the |NCS| when they are built from the |NCS| context)
27
+
21
28
Starting from the |NCS| v2.0.0, TF-M is enabled by default for applications and samples that support hardware-enforced separation of the SPE and the NSPE.
29
+
In addition, the TF-M implementation is used in all samples and applications in this SDK that support the ``*/ns`` :ref:`variant <app_boards_names>` of the boards, due to :ref:`Cortex-M Security Extensions (CMSE) <app_boards_spe_nspe>` support.
22
30
23
31
The pages in this section describe the architecture and configuration of TF-M in the |NCS|.
24
-
For more information about TF-M, see the `Trusted Firmware-M documentation <TF-M documentation_>`_, which is oriented towards TF-M developers.
25
-
26
-
.. important::
27
-
Currently, only the :ref:`Minimal TF-M configuration <tfm_minimal_build>` is :ref:`supported <software_maturity_security_features_tfm>` in the |NCS|.
28
-
Configuring TF-M to use features beyond the minimal configuration (with so called :ref:`tfm_configurable_build`) is :ref:`experimental <software_maturity_security_features_tfm>`.
32
+
For more information about TF-M, see the `Trusted Firmware-M documentation <TF-M documentation_>`_, which is oriented towards TF-M implementation developers.
Copy file name to clipboardexpand all lines: doc/nrf/security/tfm/tfm.rst
+15-51
Original file line number
Diff line number
Diff line change
@@ -9,46 +9,10 @@ Configuring applications for Trusted Firmware-M
9
9
10
10
On nRF5340, nRF54L15 and nRF91 Series devices, Trusted Firmware-M (TF-M) is used to configure and boot an application as non-secure.
11
11
12
-
Overview
13
-
********
12
+
.. _ug_tfm_building:
14
13
15
-
TF-M is the reference implementation of `Platform Security Architecture (PSA)`_.
16
-
17
-
It provides a highly configurable set of software components to create a Trusted Execution Environment.
18
-
This is achieved by a set of secure run time services such as Secure Storage, Cryptography, Audit Logs, and Attestation.
19
-
Additionally, secure boot through MCUboot in TF-M ensures integrity of runtime software and supports firmware upgrade.
20
-
21
-
.. note::
22
-
Only the TF-M :ref:`minimal build <tfm_minimal_build>` implementation in the |NCS| is currently :ref:`supported <software_maturity_security_features_tfm>`.
23
-
Support for TF-M with minimal version *disabled* in the |NCS| is :ref:`experimental <software_maturity_security_features_tfm>`.
24
-
25
-
For official documentation, see the `TF-M documentation`_.
26
-
27
-
The TF-M implementation in |NCS| is demonstrated in the following samples:
28
-
29
-
* All :ref:`tfm_samples` in this SDK
30
-
* All :ref:`cryptography samples <crypto_samples>` in this SDK
31
-
* A series of :zephyr:code-sample-category:`tfm_integration` samples available in Zephyr
32
-
33
-
In addition, the TF-M implementation is used in all samples and applications in this SDK that support the ``*/ns`` :ref:`variant <app_boards_names>` of the boards, due to :ref:`Cortex-M Security Extensions (CMSE) <app_boards_spe_nspe>` support.
34
-
35
-
Limitations
36
-
===========
37
-
38
-
The following limitations apply to TF-M and its usage:
39
-
40
-
* Firmware Update service is not supported.
41
-
* The following crypto modules or ciphers are not supported:
42
-
43
-
* AES output feedback (AES-OFB) mode.
44
-
* AES cipher feedback (AES-CFB) mode.
45
-
46
-
* Isolation level 3 is not supported.
47
-
* In Isolation level 2 (and 3), the number of peripherals configured as secure in Application Root of Trust (ARoT) is limited by the number of available MPU regions.
48
-
* Nordic Semiconductor devices only support the GCC toolchain for building TF-M.
49
-
50
-
Building
51
-
********
14
+
Building with TF-M
15
+
******************
52
16
53
17
TF-M is one of the images that are built as part of a multi-image application.
54
18
@@ -85,18 +49,13 @@ See :ref:`tfm_partition_crypto` for more information about the TF-M Crypto parti
85
49
Minimal build
86
50
=============
87
51
88
-
The default configuration of TF-M has all supported features enabled, which results in a significant memory footprint.
89
-
For this reason, the |NCS| provides a minimal version of the TF-M secure application, which shows how to configure a reduced version of TF-M.
90
-
91
-
The secure services supported by this minimal version allow for:
52
+
.. include:: tfm_supported_services.rst
53
+
:start-after: minimal_build_overview_start
54
+
:end-before: minimal_build_overview_end
92
55
93
-
* Generating random numbers using the CryptoCell peripheral.
94
-
* Using the :ref:`platform services <ug_tfm_services_platform>`.
95
-
* Reading secure memory from the non-secure application (strictly restricted to a list of allowed addresses).
96
-
Depending on the device, this lets you read metadata in the bootloader, verify FICR or UICR values, or access a peripheral that is secure-only.
97
-
* Rebooting from the non-secure side.
56
+
The minimal build uses an image of around 32 kB.
57
+
It is set with the :kconfig:option:`CONFIG_TFM_PROFILE_TYPE_MINIMAL` Kconfig option that is enabled by default on the nRF53 and nRF91 Series devices.
98
58
99
-
The minimal version is set with the :kconfig:option:`CONFIG_TFM_PROFILE_TYPE_MINIMAL` Kconfig option, which is enabled by default on the nRF53 Series and nRF91 Series devices.
100
59
With the minimal build, the configuration of TF-M is severely limited.
101
60
Hence, it is not possible to modify the TF-M minimal configuration to create your own variant of the minimal configuration.
102
61
Instead, the default configuration must be used as a starting point.
@@ -106,8 +65,9 @@ Instead, the default configuration must be used as a starting point.
106
65
Configurable build
107
66
==================
108
67
109
-
The configurable build is the full TF-M implementation that lets you configure all of its features.
110
-
It does not come with the constraints of the minimal build.
68
+
.. include:: tfm_supported_services.rst
69
+
:start-after: configurable_build_overview_start
70
+
:end-before: configurable_build_overview_end
111
71
112
72
To enable the configurable, full TF-M build, make sure the following Kconfig options are configured:
113
73
@@ -379,6 +339,8 @@ See :ref:`lib_tfm_ioctl_api` for more information about APIs available for the n
379
339
380
340
For more information about the general features of the TF-M Platform partition, see `TF-M Platform`_.
381
341
342
+
.. _ug_tfm_services_its:
343
+
382
344
Internal Trusted Storage service
383
345
================================
384
346
@@ -721,6 +683,8 @@ The available space for the non-secure application has increased by 0x10000 byte
721
683
722
684
For devices that are intended for production and meant to be updated in the field, you should always use static partitions to ensure that the partitions are not moved around in the flash memory.
Copy file name to clipboardexpand all lines: doc/nrf/security/tfm/tfm_architecture.rst
+6-5
Original file line number
Diff line number
Diff line change
@@ -161,17 +161,17 @@ Isolation Levels
161
161
The TF-M architecture figure at the top of this page uses several lines as connectors and separators.
162
162
These lines represent the isolation levels between different parts of the SPE and between the SPE and the NSPE.
163
163
164
-
The following table describes the isolation levels in the TF-M architecture, based on the `Trusted Base System Architecture for M (TBSA-M) Specification`_ (section 4.3).
164
+
The following table describes the isolation levels in the TF-M architecture, based on the `Trusted Base System Architecture for M (TBSA-M) Specification`_ (section 4.3) and the `FF-M Isolation Rules`_.
165
165
166
166
.. list-table::
167
167
:header-rows: 1
168
168
169
169
* - Isolation Level
170
170
- Description
171
171
* - Level 1
172
-
- | SPE isolation
172
+
- | Two security domains
173
173
|
174
-
|Two security domains
174
+
|SPE isolation
175
175
|
176
176
|SPE is protected from access by Non-Secure application firmware and hardware.
177
177
* - Level 2
@@ -181,9 +181,9 @@ The following table describes the isolation levels in the TF-M architecture, bas
181
181
|
182
182
|In addition to Level 1, the Platform RoT is also protected from access by the Application RoT.
183
183
* - Level 3
184
-
- | Maximum firmware isolation
184
+
- | Three or more security domains
185
185
|
186
-
|Three or more security domains
186
+
|Maximum firmware isolation
187
187
|
188
188
|In addition to Level 2, each Secure Partition is sandboxed and only permitted to access its own resources.
189
189
|This protects each Secure Partition from access by other Secure Partitions and protects the SPM from access by any Secure Partition.
@@ -193,3 +193,4 @@ In other words:
193
193
* Level 1 Isolation is the Secure/Non-Secure separation described in the :ref:`ug_tfm_architecture_spe_nspe` section.
194
194
* Level 2 Isolation means that the :ref:`ug_tfm_architecture_rot_services_application` are *unable* to access other parts of the SPE.
195
195
* Level 3 Isolation means that the Application RoT Services are unable to access other parts of the SPE *and* other Application RoT Services.
196
+
Level 3 Isolation is :ref:`not supported <ug_tfm_supported_services_isolation>` in the |NCS|.
0 commit comments