Skip to content

Commit 635d811

Browse files
greg-ferrlubos
authored andcommitted
doc: security: rename trusted_storage
Renamed the file and the page to secure storage. NCSDK-32976. Signed-off-by: Grzegorz Ferenc <[email protected]>
1 parent 2c82330 commit 635d811

File tree

13 files changed

+172
-153
lines changed

13 files changed

+172
-153
lines changed

doc/_utils/redirects.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@
303303
("security/tfm", "security/tfm/index"),
304304
("security/tfm/tfm", "security/tfm/index"),
305305
("app_dev/ap_protect/index", "security/ap_protect"), # Enabling access port protection mechanism
306+
("security/trusted_storage", "security/secure_storage"), # Secure storage in the |NCS| (renamed from Trusted storage)
306307
("ug_ble_controller", "protocols/bt/index"), # Bluetooth LE Controller
307308
("protocols/ble/index", "protocols/bt/index"),
308309
("protocols/bt/ble/index", "protocols/bt/bt_stack_arch"),

doc/nrf/libraries/security/trusted_storage.rst

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ Trusted storage
88
:depth: 2
99

1010
The trusted storage library enables its users to provide integrity, confidentiality and authenticity of stored data using Authenticated Encryption with Associated Data (AEAD) algorithms or cryptographic hash, without the use of TF-M Platform Root of Trust (PRoT).
11-
The library implements the PSA Certified Secure Storage API.
11+
The library implements the :ref:`PSA Certified Secure Storage API <ug_psa_certified_api_overview_secstorage>` for use on builds without TF-M (no :ref:`security by separation <ug_tfm_security_by_separation>`).
12+
13+
See also :ref:`secure_storage_in_ncs` for an overview of the PSA Secure Storage API implementation in the |NCS|.
1214

1315
Overview
1416
********
@@ -87,6 +89,16 @@ The following backends are used in the trusted storage library:
8789

8890
The trusted storage library provides the ``TRUSTED_STORAGE_STORAGE_BACKEND_SETTINGS`` as a storage backend, but it has support for adding other memory types for storage.
8991

92+
Security functional requirement standards
93+
=========================================
94+
95+
The trusted storage library addresses two of the PSA Certified Level 2 and Level 3 optional security functional requirements (SFRs):
96+
97+
* Secure Encrypted Storage (internal storage)
98+
* Secure Storage (internal storage)
99+
100+
The Secure External Storage SFR is not covered by the trusted storage library, but you can implement a custom storage backend.
101+
90102
Requirements
91103
************
92104

doc/nrf/protocols/bt/bt_mesh/configuring.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -291,13 +291,13 @@ The following two types of security risks are possible:
291291
* Execute a key refresh procedure for all existing keys used on the entire network as soon as possible by excluding the compromised device, if any.
292292
The mechanism to determine if the device is compromised is up to the OEM developers.
293293

294-
Additionally, after upgrading the device firmware with the key importer functionality enabled, and once the key import is complete, it is recommend to update device firmware with the key importer functionality disabled as soon as possible.
294+
Additionally, after upgrading the device firmware with the key importer functionality enabled, and once the key import is complete, it is recommended to update device firmware with the key importer functionality disabled as soon as possible.
295295

296-
Trusted storage
297-
---------------
296+
Secure storage
297+
--------------
298298

299-
The :ref:`trusted_storage_in_ncs` is a security mechanism designed to securely store and manage sensitive data.
300-
Currently, all :ref:`bt_mesh_samples` in the |NCS| use the :ref:`trusted_storage_readme` library as the Trusted Storage backend for all supported platforms.
299+
:ref:`secure_storage_in_ncs` lets you securely store and manage sensitive data.
300+
Currently, all :ref:`bt_mesh_samples` in the |NCS| use the :ref:`trusted_storage_readme` library as the PSA Secure Storage API implementation for all supported platforms.
301301

302302
.. note::
303303
For the nRF52840 devices, in regards to :ref:`bt_mesh_samples` in |NCS|, AEAD keys are derived using hashes of entry UIDs (:kconfig:option:`CONFIG_TRUSTED_STORAGE_BACKEND_AEAD_KEY_HASH_UID`).

doc/nrf/protocols/matter/end_product/security.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ The recommended values are provided in the :ref:`ug_matter_hw_requirements_layou
5252
By default, the DAC private key is stored in the KMU storage while using TF-M.
5353
See the :ref:`matter_platforms_security_dac_priv_key_kmu` section for more information.
5454

55-
Trusted storage
56-
***************
55+
Secure storage
56+
**************
5757

58-
The :ref:`trusted_storage_in_ncs` is a security mechanism designed to securely store and manage sensitive data.
59-
Currently, all :ref:`matter_samples` in the |NCS| use the :ref:`trusted_storage_readme` library as the Trusted Storage backend for all supported platforms.
60-
You can find an overview of the Trusted Storage layer configuration supported for each |NCS| Matter-enabled platform in the :ref:`matter_platforms_security_support` section.
58+
:ref:`secure_storage_in_ncs` lets you securely store and manage sensitive data.
59+
Currently, all :ref:`matter_samples` in the |NCS| use the :ref:`trusted_storage_readme` library as the PSA Secure Storage API implementation for all supported platforms.
60+
You can find an overview of the PSA Secure Storage configuration supported for each |NCS| Matter-enabled platform in the :ref:`matter_platforms_security_support` section.
6161

6262
.. note::
6363
For the nRF52840 devices, in regards to :ref:`matter_samples` in |NCS|, AEAD keys are derived using hashes of entry UIDs (:kconfig:option:`CONFIG_TRUSTED_STORAGE_BACKEND_AEAD_KEY_HASH_UID`).

doc/nrf/releases_and_maturity/releases/release-notes-2.7.0.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1353,7 +1353,7 @@ Documentation
13531353
* The :ref:`ug_wifi_overview` page by separating the information about Wi-Fi certification into its own :ref:`ug_wifi_certification` page under :ref:`ug_wifi`.
13541354
* The :ref:`ug_bt_mesh_configuring` page with an example of possible entries in the Settings NVS name cache.
13551355
* The :ref:`lib_security` page to include all security-related libraries.
1356-
* The trusted storage support table in the :ref:`trusted_storage_in_ncs` section by adding nRF52833 and replacing nRF9160 with nRF91 Series.
1356+
* The secure storage support table in the :ref:`secure_storage_in_ncs` page by adding nRF52833 and replacing nRF9160 with nRF91 Series.
13571357
* The :ref:`ug_nrf52_developing` and :ref:`ug_nrf5340` by adding notes about how to perform FOTA updates with samples using random HCI identities, some specifically relevant when using the iOS app.
13581358
* Improved the :ref:`ug_radio_fem` user guide to be up-to-date and more informative.
13591359
* The :ref:`bt_fast_pair_readme` page to document support for the FMDN extension and aligned the page with the sysbuild migration.

doc/nrf/releases_and_maturity/releases/release-notes-3.0.0.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ Matter
382382

383383
* By disabling the :ref:`mpsl` before performing a factory reset to speed up the process.
384384
* The :ref:`ug_matter_device_low_power_configuration` page to mention the `nWP049 - Matter over Thread: Power consumption and battery life`_ and `Online Power Profiler for Matter over Thread`_ as useful resources in optimizing the power consumption of a Matter device.
385-
* The general documentation on trusted storage by moving it to the :ref:`trusted_storage_in_ncs` page and :ref:`trusted_storage_readme` library documentation.
385+
* The general documentation on secure storage by moving it to the :ref:`secure_storage_in_ncs` page and :ref:`trusted_storage_readme` library documentation.
386386

387387
Matter fork
388388
+++++++++++

doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,11 @@ Security
137137

138138
* Support for AES in counter mode using CRACEN for the :zephyr:board:`nrf54lm20dk`.
139139

140-
* Updated the :ref:`security_index` page with a table that lists the versions of security components implemented in the |NCS|.
140+
* Updated:
141+
142+
* The :ref:`security_index` page with a table that lists the versions of security components implemented in the |NCS|.
143+
* The :ref:`secure_storage_in_ncs` page with updated information about the secure storage configuration in the |NCS|.
144+
Also renamed the page from "Trusted storage in the |NCS|."
141145

142146
Protocols
143147
=========

doc/nrf/security.rst

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,12 @@ Some of them are documented in detail in other parts of this documentation, whil
122122
In the |NCS|, the CMSE support is implemented using Trusted Firmware-M (TF-M).
123123
- See :ref:`app_boards_spe_nspe`.
124124
- All samples and applications that support the ``*/ns`` :ref:`variant <app_boards_names>` of the boards.
125-
* - Trusted storage
126-
- The trusted storage library enables you to provide features like integrity, confidentiality and authenticity of the stored data, without using the TF-M Platform Root of Trust (PRoT).
127-
- See :ref:`trusted_storage_in_ncs` and :ref:`trusted storage library configuration <trusted_storage_configuration>`.
128-
- :ref:`trusted_storage_readme` library
125+
* - Secure storage
126+
- Secure storage enables you to provide features like integrity, confidentiality and authenticity of the stored data, with or without TF-M.
127+
- See :ref:`secure_storage_in_ncs`.
128+
- | - :ref:`trusted_storage_readme` library
129+
| - TF-M's :ref:`ug_tfm_services_its`
130+
| - TF-M's :ref:`tfm_partition_ps`
129131
* - Hardware unique key (HUK)
130132
- Nordic Semiconductor devices featuring the CryptoCell cryptographic accelerator allow the usage of a hardware unique key (HUK) for key derivation.
131133
A HUK is a unique symmetric cryptographic key which is loaded in special hardware registers allowing the application to use the key by reference, without any access to the key material.
@@ -141,5 +143,5 @@ Some of them are documented in detail in other parts of this documentation, whil
141143
security/crypto/index
142144
security/tfm/index
143145
security/ap_protect
144-
security/trusted_storage
146+
security/secure_storage
145147
security/key_storage

doc/nrf/security/crypto/crypto_architecture.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ When using the Oberon PSA Crypto implementation, persistent keys from the PSA Cr
115115
* Zephyr's :ref:`Secure storage <zephyr:secure_storage>` subsystem - Zephyr-specific implementation of the functions defined in the `PSA Certified Secure Storage API`_.
116116
* |NCS|'s :ref:`trusted_storage_readme` library - which provides features like integrity, confidentiality, and authenticity of the stored data without using the TF-M Platform Root of Trust (PRoT).
117117

118-
For more information about the storage integration for the Oberon PSA Crypto implementation, see :ref:`trusted_storage_in_ncs`.
118+
For more information, see :ref:`secure_storage_in_ncs`.
119119

120120
.. _ug_crypto_architecture_implementation_standards_tfm:
121121

doc/nrf/security/psa_certified_api_overview.rst

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -186,55 +186,48 @@ See PSA's `protected_storage.h`_ file for versioning.
186186

187187
The Secure Storage API consists of the following components:
188188

189-
* Internal Trusted Storage - The Internal Trusted Storage API is used internally by the SPE to store data persistently in secure flash.
189+
* Internal Trusted Storage (ITS) - The Internal Trusted Storage API is used internally by the SPE to store data persistently in secure flash.
190+
The Internal Trusted Storage API is one of the :ref:`ug_tfm_architecture_rot_services_platform` and is not available by default in the Non-Secure Callable interface.
190191
It is possible to expose the Internal Trusted Storage API to the NSPE, but it is not recommended.
191192

192-
* Protected Storage - The Protected Storage API is for storing data persistently in secure flash and provides integrity checks to the stored data.
193+
* Protected Storage (PS) - The Protected Storage API is used for securely storing data in non-volatile memory.
194+
It provides authenticity and integrity checks to the stored data.
193195
The Protected Storage API is one of :ref:`ug_tfm_architecture_rot_services_application` and is available in the Non-Secure Callable interface, making the Protected Storage API callable from either the SPE or the NSPE.
194196
Data in Protected Storage has ownership, so data stored from the SPE is only available to the SPE.
195197

196198
The following table provides an overview over features in Internal Trusted Storage and Protected Storage:
197199

198-
+-----------------------+----------------------------------+-------------------+
199-
| | Internal Trusted Storage | Protected Storage |
200-
+=======================+==================================+===================+
201-
| Persistent Storage | Yes | Yes |
202-
+-----------------------+----------------------------------+-------------------+
203-
| Root of Trust (RoT) | Platform RoT Service | Application RoT |
204-
| | | Service |
205-
+-----------------------+----------------------------------+-------------------+
206-
| Available in the SPE | Yes | Yes |
207-
+-----------------------+----------------------------------+-------------------+
208-
| Available in the NSPE | No (by default - see note below) | Yes |
209-
+-----------------------+----------------------------------+-------------------+
210-
| Encryption | No (see note below) | Yes |
211-
+-----------------------+----------------------------------+-------------------+
212-
| Integrity Check | No (see note below) | Yes |
213-
+-----------------------+----------------------------------+-------------------+
200+
+-----------------------+-------------------------------------------------------------------------+-------------------------------------------------------------------------------+
201+
| | Internal Trusted Storage (ITS) | Protected Storage (PS) |
202+
+=======================+=========================================================================+===============================================================================+
203+
| Persistent Storage | Yes | Yes |
204+
+-----------------------+-------------------------------------------------------------------------+-------------------------------------------------------------------------------+
205+
| Root of Trust (RoT) | :ref:`Platform RoT Service <ug_tfm_architecture_rot_services_platform>` | :ref:`Application RoT Service <ug_tfm_architecture_rot_services_application>` |
206+
+-----------------------+-------------------------------------------------------------------------+-------------------------------------------------------------------------------+
207+
| Available in the SPE | Yes | Yes |
208+
+-----------------------+-------------------------------------------------------------------------+-------------------------------------------------------------------------------+
209+
| Available in the NSPE | No (by default - see note below) | Yes |
210+
+-----------------------+-------------------------------------------------------------------------+-------------------------------------------------------------------------------+
211+
| Encryption | No (see note below) | Yes |
212+
+-----------------------+-------------------------------------------------------------------------+-------------------------------------------------------------------------------+
213+
| Integrity Check | No (see note below) | Yes |
214+
+-----------------------+-------------------------------------------------------------------------+-------------------------------------------------------------------------------+
214215

215216
.. note::
216217

217-
* The PSA Crypto API is invoked by other APIs that are available from the NSPE.
218-
For example the PSA Protected Storage API or the PSA Crypto API ``import()`` and ``generate()``.
218+
* The PSA ITS API is invoked by other APIs that are available from the NSPE.
219+
For example, the PSA Protected Storage API or the PSA Crypto API's ``psa_import_key`` and ``psa_generate_key`` functions.
219220

220221
* Internal Trusted Storage has experimental support for encryption with the :kconfig:option:`CONFIG_TFM_ITS_ENCRYPTED` Kconfig option.
221222

222-
PSA Secure Storage API in Nordic hardware and the |NCS|
223-
=======================================================
223+
PSA Secure Storage API in the |NCS|
224+
===================================
224225

225-
SoCs from Nordic Semiconductor that come with dedicated hardware components for security (such as `nRF9160's System Protection Unit <nRF9160 System Protection Unit_>`_ or `nRF54L Series' security components <nRF54L15 Security_>`_) have the functionality for `flash <nRF9160 flash access control_>`_ (nRF9160) or `feature <nRF54L15 feature access control_>`_ (nRF54L15) access control, making it possible to configure different features as secure.
226-
Internal Trusted Storage and Protected Storage saves data to the sections of secure flash.
227-
This way, the NSPE cannot directly access data saved by the Internal Trusted Storage API or the Protected Storage API.
226+
.. ncs-include:: secure_storage.rst
227+
:start-after: secure_storage_options_table_start
228+
:end-before: secure_storage_options_table_end
228229

229-
Internal Trusted Storage is by default only available from the SPE.
230-
231-
.. note::
232-
233-
For Nordic SoCs without TF-M's Platform Root of Trust (such as the nRF52832), the :ref:`trusted_storage_readme` library is used for the PSA Certified Secure Storage APIs.
234-
235-
The PSA Protected Storage API implementation is optional for use in the |NCS|.
236-
It does not support storing data to external flash.
237-
Instead, you can configure your application to encrypt data stored to the external flash, for example using the :ref:`ug_psa_certified_api_overview_crypto`.
230+
For more information, see :ref:`secure_storage_in_ncs`.
238231

239232
.. _ug_psa_certified_api_overview_fw_update:
240233

0 commit comments

Comments
 (0)