Skip to content

Commit 83a6113

Browse files
mia-korlubos
authored andcommitted
doc: Misc security and crypto doc updates
A few updates to security and crypto doc for NCS 2.8.0 release. Among others: Security page nRF Security lib TF-M Trusted storage Access port protection Signed-off-by: Mia Koen <[email protected]>
1 parent aa2de3b commit 83a6113

File tree

9 files changed

+90
-63
lines changed

9 files changed

+90
-63
lines changed

doc/nrf/libraries/security/nrf_security/doc/driver_config.rst

Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -209,51 +209,55 @@ Key derivation function configurations
209209

210210
To enable key derivation function (KDF) support, set one or more of the Kconfig options in the following table:
211211

212-
+--------------------------+---------------------------------------------------------------+
213-
| KDF algorithm | Configuration option |
214-
+==========================+===============================================================+
215-
| HKDF | :kconfig:option:`CONFIG_PSA_WANT_ALG_HKDF` |
216-
+--------------------------+---------------------------------------------------------------+
217-
| HKDF-Extract | :kconfig:option:`CONFIG_PSA_WANT_ALG_HKDF_EXTRACT` |
218-
+--------------------------+---------------------------------------------------------------+
219-
| HKDF-Expand | :kconfig:option:`CONFIG_PSA_WANT_ALG_HKDF_EXPAND` |
220-
+--------------------------+---------------------------------------------------------------+
221-
| PBKDF2-HMAC | :kconfig:option:`CONFIG_PSA_WANT_ALG_PBKDF2_HMAC` |
222-
+--------------------------+---------------------------------------------------------------+
223-
| PBKDF2-AES-CMAC-PRF-128 | :kconfig:option:`CONFIG_PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128` |
224-
+--------------------------+---------------------------------------------------------------+
225-
| TLS 1.2 PRF | :kconfig:option:`CONFIG_PSA_WANT_ALG_TLS12_PRF` |
226-
+--------------------------+---------------------------------------------------------------+
227-
| TLS 1.2 PSK to MS | :kconfig:option:`CONFIG_PSA_WANT_ALG_TLS12_PSK_TO_MS` |
228-
+--------------------------+---------------------------------------------------------------+
229-
| TLS 1.2 EC J-PAKE to PMS | :kconfig:option:`CONFIG_PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS` |
230-
+--------------------------+---------------------------------------------------------------+
212+
+-----------------------------+---------------------------------------------------------------+
213+
| KDF algorithm | Configuration option |
214+
+=============================+===============================================================+
215+
| HKDF | :kconfig:option:`CONFIG_PSA_WANT_ALG_HKDF` |
216+
+-----------------------------+---------------------------------------------------------------+
217+
| HKDF-Extract | :kconfig:option:`CONFIG_PSA_WANT_ALG_HKDF_EXTRACT` |
218+
+-----------------------------+---------------------------------------------------------------+
219+
| HKDF-Expand | :kconfig:option:`CONFIG_PSA_WANT_ALG_HKDF_EXPAND` |
220+
+-----------------------------+---------------------------------------------------------------+
221+
| PBKDF2-HMAC | :kconfig:option:`CONFIG_PSA_WANT_ALG_PBKDF2_HMAC` |
222+
+-----------------------------+---------------------------------------------------------------+
223+
| PBKDF2-AES-CMAC-PRF-128 | :kconfig:option:`CONFIG_PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128` |
224+
+-----------------------------+---------------------------------------------------------------+
225+
| TLS 1.2 PRF | :kconfig:option:`CONFIG_PSA_WANT_ALG_TLS12_PRF` |
226+
+-----------------------------+---------------------------------------------------------------+
227+
| TLS 1.2 PSK to MS | :kconfig:option:`CONFIG_PSA_WANT_ALG_TLS12_PSK_TO_MS` |
228+
+-----------------------------+---------------------------------------------------------------+
229+
| TLS 1.2 EC J-PAKE to PMS | :kconfig:option:`CONFIG_PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS` |
230+
+-----------------------------+---------------------------------------------------------------+
231+
| SP 800-108r1 CMAC w/counter | :kconfig:option:`CONFIG_PSA_WANT_ALG_SP800_108_COUNTER_CMAC` |
232+
+-----------------------------+---------------------------------------------------------------+
231233

232234

233235
Key derivation function support
234236
===============================
235237

236238
The following table shows key derivation function (KDF) support for each driver:
237239

238-
+--------------------------+--------------------------+----------------------------+---------------------------+
239-
| KDF algorithm | nrf_cc3xx driver support | nrf_oberon driver support | nrf_cracen driver support |
240-
+==========================+==========================+============================+===========================+
241-
| HKDF | Not supported | Supported | Supported |
242-
+--------------------------+--------------------------+----------------------------+---------------------------+
243-
| HKDF-Extract | Not supported | Supported | Not Supported |
244-
+--------------------------+--------------------------+----------------------------+---------------------------+
245-
| HKDF-Expand | Not supported | Supported | Not Supported |
246-
+--------------------------+--------------------------+----------------------------+---------------------------+
247-
| PBKDF2-HMAC | Not supported | Supported | Supported |
248-
+--------------------------+--------------------------+----------------------------+---------------------------+
249-
| PBKDF2-AES-CMAC-PRF-128 | Not supported | Supported | Supported |
250-
+--------------------------+--------------------------+----------------------------+---------------------------+
251-
| TLS 1.2 PRF | Not supported | Supported | Not Supported |
252-
+--------------------------+--------------------------+----------------------------+---------------------------+
253-
| TLS 1.2 PSK to MS | Not supported | Supported | Not Supported |
254-
+--------------------------+--------------------------+----------------------------+---------------------------+
255-
| TLS 1.2 EC J-PAKE to PMS | Not supported | Supported | Supported |
256-
+--------------------------+--------------------------+----------------------------+---------------------------+
240+
+------------------------------+--------------------------+----------------------------+---------------------------+
241+
| KDF algorithm | nrf_cc3xx driver support | nrf_oberon driver support | nrf_cracen driver support |
242+
+==============================+==========================+============================+===========================+
243+
| HKDF | Not supported | Supported | Supported |
244+
+------------------------------+--------------------------+----------------------------+---------------------------+
245+
| HKDF-Extract | Not supported | Supported | Not Supported |
246+
+------------------------------+--------------------------+----------------------------+---------------------------+
247+
| HKDF-Expand | Not supported | Supported | Not Supported |
248+
+------------------------------+--------------------------+----------------------------+---------------------------+
249+
| PBKDF2-HMAC | Not supported | Supported | Supported |
250+
+------------------------------+--------------------------+----------------------------+---------------------------+
251+
| PBKDF2-AES-CMAC-PRF-128 | Not supported | Supported | Supported |
252+
+------------------------------+--------------------------+----------------------------+---------------------------+
253+
| TLS 1.2 PRF | Not supported | Supported | Not Supported |
254+
+------------------------------+--------------------------+----------------------------+---------------------------+
255+
| TLS 1.2 PSK to MS | Not supported | Supported | Not Supported |
256+
+------------------------------+--------------------------+----------------------------+---------------------------+
257+
| TLS 1.2 EC J-PAKE to PMS | Not supported | Supported | Supported |
258+
+------------------------------+--------------------------+----------------------------+---------------------------+
259+
| SP 800-108r1 CMAC w/counter | Not supported | Not supported | Supported |
260+
+------------------------------+--------------------------+----------------------------+---------------------------+
257261

258262
The configuration of the :ref:`nrf_security_drivers_oberon` is automatically generated based on the user-enabled algorithms in `Key derivation function configurations`_.
259263

doc/nrf/libraries/security/nrf_security/doc/drivers.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ To enable the :ref:`nrf_oberon_readme` PSA driver, set the :kconfig:option:`CONF
8383
CRACEN driver
8484
*************
8585

86-
The CRACEN driver provides entropy and hardware-accelerated cryptography using the CRACEN (Crypto Accelerator Engine) peripheral.
86+
The CRACEN driver provides entropy and hardware-accelerated cryptography using the Crypto Accelerator Engine (CRACEN) peripheral.
8787
This driver is only available on nRF54L Series devices.
8888

8989
Enabling the CRACEN driver
@@ -93,6 +93,8 @@ The CRACEN driver can be enabled by setting the :kconfig:option:`CONFIG_PSA_CRYP
9393

9494
The nrf_oberon driver may then be disabled by using the Kconfig option :kconfig:option:`CONFIG_PSA_CRYPTO_DRIVER_OBERON` (``CONFIG_PSA_CRYPTO_DRIVER_OBERON=n``).
9595

96+
For more details on nRF54L Series cryptography operations and the related configuration, see :ref:`ug_nrf54l_cryptography`.
97+
9698
.. note::
9799
On nRF54L Series devices, CRACEN is the only source of entropy.
98100
Therefore, it is not possible to disable the :kconfig:option:`CONFIG_PSA_CRYPTO_DRIVER_CRACEN` option when the Zephyr entropy driver is enabled.

doc/nrf/libraries/security/nrf_security/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ nRF Security
55
############
66

77
The nRF Security subsystem (nrf_security) provides an integration between `Mbed TLS`_ and software libraries that provide hardware-accelerated cryptographic functionality on selected Nordic Semiconductor SoCs as well as alternate software-based implementations of the Mbed TLS APIs.
8-
These libraries include the binary versions of accelerated cryptographic libraries listed in :ref:`nrfxlib:crypto`, and the open source Mbed TLS implementation in |NCS| located in `sdk-mbedtls`_.
8+
These libraries include the binary versions of accelerated cryptographic libraries listed in :ref:`nrfxlib:crypto`, and the open source Mbed TLS implementation in the |NCS| located in `sdk-mbedtls`_.
99
The subsystem includes a PSA driver abstraction layer to enable both hardware-accelerated and software-based implementation at the same time.
1010

1111
The nRF Security subsystem can interface with the :ref:`nrf_cc3xx_mbedcrypto_readme`.

doc/nrf/links.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@
212212

213213
.. _`Memfault WebBluetooth Client`: https://memfault.github.io/web-ble-example/
214214

215+
.. _`PSA Certified Crypto API`: https://arm-software.github.io/psa-api/crypto/
215216
.. _`PSA Cryptography API 1.0.1`: https://armmbed.github.io/mbed-crypto/1.0.1/html/index.html
216217
.. _`PSA Certified Crypto API 1.2.1`: https://arm-software.github.io/psa-api/crypto/1.2/
217218
.. _`PSA Certified Crypto API 1.2 PAKE Extension Final 1`: https://arm-software.github.io/psa-api/crypto/1.2/ext-pake/
@@ -1552,7 +1553,7 @@
15521553

15531554
.. _`Platform Security Architecture (PSA)`: https://www.psacertified.org/what-is-psa-certified/
15541555

1555-
.. _`Mbed TLS`: https://developer.trustedfirmware.org/w/mbed-tls/
1556+
.. _`Mbed TLS`: https://www.trustedfirmware.org/projects/mbed-tls/
15561557
.. _`Trusted Firmware M`: https://www.trustedfirmware.org/projects/tf-m/
15571558

15581559
.. _`Nanopb`: https://jpa.kapsi.fi/nanopb/

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,14 +141,15 @@ Developing with PMICs
141141
Security
142142
========
143143

144-
Added:
144+
* Added:
145145

146-
* The :kconfig:option:`CONFIG_CRACEN_IKG_SEED_KMU_SLOT` Kconfig option to allow customization of the KMU slot used to store CRACEN's Internal Key Generator (IKG) seed. The default IKG seed slot is now 183 (previously 0).
147-
* TF-M support to the :ref:`zephyr:nrf54l15dk_nrf54l15` (board target ``nrf54l15dk/nrf54l15/cpuapp/ns``).
146+
* The :kconfig:option:`CONFIG_CRACEN_IKG_SEED_KMU_SLOT` Kconfig option to allow customization of the KMU slot used to store CRACEN's Internal Key Generator (IKG) seed.
147+
The default IKG seed slot is now 183 (previously 0).
148+
* TF-M support to the :ref:`zephyr:nrf54l15dk_nrf54l15` (board target ``nrf54l15dk/nrf54l15/cpuapp/ns``).
148149

149-
Removed:
150+
* Removed:
150151

151-
* TF-M support from the :ref:`zephyr:nrf54l15pdk_nrf54l15` (board target ``nrf54l15pdk/nrf54l15/cpuapp/ns``).
152+
* TF-M support from the :ref:`zephyr:nrf54l15pdk_nrf54l15` (board target ``nrf54l15pdk/nrf54l15/cpuapp/ns``).
152153

153154
Protocols
154155
=========
@@ -1119,6 +1120,11 @@ Other libraries
11191120
Security libraries
11201121
------------------
11211122

1123+
* :ref:`nrf_security_readme` library:
1124+
1125+
* Added the :kconfig:option:`CONFIG_PSA_WANT_ALG_SP800_108_COUNTER_CMAC` Kconfig option to key derivation function configurations in :ref:`nrf_security_driver_config`.
1126+
The Kconfig option enables support for the derivation function SP 800-108r1 CMAC in counter mode, which is supported by the nrf_cracen driver.
1127+
11221128
* :ref:`trusted_storage_readme` library:
11231129

11241130
* Added support for Zephyr Memory Storage (ZMS), as an alternative to the NVS file system.
@@ -1269,3 +1275,5 @@ Documentation
12691275
* The :ref:`programming_params` section on the :ref:`programming` page with information about readback protection moved from the :ref:`ug_nrf5340_building` page.
12701276
* The :ref:`security` page with a table that provides an overview of the available general security features.
12711277
This table replaces the subpage that was previously describing these features in more detail and was duplicating information available in other sections.
1278+
* The :ref:`nrf_security_drivers_cracen` section with a reference to the :ref:`ug_nrf54l_cryptography` page.
1279+
* The :ref:`ug_tfm` page with the correct list of samples demonstrating TF-M.

doc/nrf/security.rst

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,15 @@ Some of them are documented in detail in other parts of this documentation, whil
3636
- All samples and applications that support the ``*/ns`` :ref:`variant <app_boards_names>` of the boards.
3737
* - Trusted Firmware-M (TF-M)
3838
- TF-M is the reference implementation of `Platform Security Architecture (PSA)`_.
39-
On nRF5340 and nRF91 Series devices, TF-M is used to configure and boot an application with :ref:`CMSE enabled <app_boards_spe_nspe_cpuapp_ns>`.
39+
On nRF5340, nRF54L and nRF91 Series devices, TF-M is used to configure and boot an application with :ref:`CMSE enabled <app_boards_spe_nspe_cpuapp_ns>`.
4040
- See :ref:`ug_tfm`.
4141
- | - :ref:`tfm_samples`
42-
| - :ref:`cryptography samples <crypto_samples>`
43-
| - :ref:`https_client` sample
44-
| - :ref:`openthread_samples`
42+
| - :ref:`crypto_samples`
4543
| - :ref:`TF-M integration samples <zephyr:tfm_integration-samples>` in Zephyr
4644
* - Cryptographic operations (:ref:`nrf_security`)
4745
- The :ref:`nrf_security` library acts as an orchestrator for the different cryptographic libraries available in the system.
4846
HW accelerated libraries are prioritized over SW libraries when both are enabled.
47+
| Find more information on nRF54L Series-specific cryptography operations and the related configuration in :ref:`ug_nrf54l_cryptography`.
4948
- :kconfig:option:`CONFIG_NRF_SECURITY` (:ref:`more info<nrf_security_config>`)
5049
- | - :ref:`nrf_security` library with :ref:`nrf_security_drivers`
5150
| - :ref:`nrfxlib:crypto`

doc/nrf/security/ap_protect.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ See the related hardware documentation for more information about which implemen
8888
- n/a
8989
- ✔
9090
- *Documentation not yet available*
91-
- Can also use the lifecycle state management mechanism as an alternative to AP-Protect
91+
- Also supports Secure AP-Protect (see note below)
9292
* - nRF5340
9393
- n/a
9494
- ✔
@@ -131,7 +131,7 @@ See the related hardware documentation for more information about which implemen
131131
-
132132

133133
.. note::
134-
The SoCs or SiPs that support `ARM TrustZone`_ and different :ref:`app_boards_spe_nspe` (nRF5340 and nRF91 Series) implement two AP-Protect systems: AP-Protect and Secure AP-Protect.
134+
The SoCs or SiPs that support `ARM TrustZone`_ and different :ref:`app_boards_spe_nspe` (nRF5340, nRF54L15 and nRF91 Series) implement two AP-Protect systems: AP-Protect and Secure AP-Protect.
135135
While AP-Protect blocks access to all CPU registers and memories, Secure AP-Protect limits access to the CPU to only non-secure accesses.
136136
This means that the CPU is entirely unavailable while it is running the code in the Secure Processing Environment, and only non-secure registers and address-mapped resources can be accessed.
137137

0 commit comments

Comments
 (0)