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
Copy file name to clipboardexpand all lines: doc/nrf/protocols/bt/bt_mesh/configuring.rst
+41
Original file line number
Diff line number
Diff line change
@@ -246,3 +246,44 @@ Using the :ref:`bluetooth_mesh_sensor_server` sample as an example, configured a
246
246
* Ambient light level gain
247
247
248
248
Adding up all entries, it is worth setting the cache size to minimum 71.
249
+
250
+
Security toolbox
251
+
----------------
252
+
253
+
Zephyr's Mesh security toolbox implementation does not include encryption and authentication functionality, such as CMAC, AES-CCM, and HMAC-SHA-256.
254
+
The third-party crypto solutions are used instead.
255
+
256
+
* The following options are available:
257
+
258
+
* :kconfig:option:`CONFIG_BT_MESH_USES_MBEDTLS_PSA` - Enables use of the Mbed TLS PSA API based security toolbox (default option).
259
+
* :kconfig:option:`CONFIG_BT_MESH_USES_TFM_PSA` - Enables use of the TF-M PSA API based security toolbox (default option for platforms that support TF-M).
260
+
* :kconfig:option:`CONFIG_BT_MESH_USES_TINYCRYPT` - Enables use of Tinycrypt-based security toolbox.
261
+
Zephyr's Mesh operates with open value of keys, including storing them in the persistent memory.
262
+
The Tinycrypt-based solution has worse security materials protection compared to others and not recommended for future designs.
263
+
264
+
The Bluetooth Mesh security toolbox based on the PSA API does not operate with open key values.
265
+
After Bluetooth Mesh gets open key value, it immediately imports the keys into the crypto library and receives the unique key identifier.
266
+
The key identifiers are used in the security toolbox and stored in the persistent memory.
267
+
The crypto library is responsible for storing of the open key values in the Internal Trusted Storage (ITS).
268
+
Bluetooth Mesh data structures based on Tinycrypt and based on the PSA API as well as images of these structures stored in the persistent memory are not compatible due to different key representations.
269
+
When a provisioned device updates its image using the Tinycrypt-based toolbox on image with the PSA API based toolbox, it needs to be unprovisioned first and reprovisioned after the update.
270
+
If the image is changed over Mesh DFU, it is recommended to use :c:enumerator:`BT_MESH_DFU_EFFECT_UNPROV`.
271
+
272
+
However, a provisioned device can update its image using the Tinycrypt-based toolbox on image with the PSA API based toolbox without being unprovisioned.
273
+
The :kconfig:option:`CONFIG_BT_MESH_KEY_IMPORTER` Kconfig option enables the key importer functionality.
274
+
The key importer is an application initialization functionality that is called with kernel initialization priority before starting main.
275
+
This functionality reads out the persistently stored Bluetooth Mesh data and if it finds keys stored by the Tinycrypt-based security toolbox, it imports them over the PSA API into the crypto library and stores the key identifiers in PSA API toolbox based format.
276
+
When the application starts Bluetooth Mesh initialization, the persistent area already has the stored data in the correct format.
277
+
278
+
Using the key importer might make the device vulnerable for attacks.
279
+
If the device works with the key importer functionality enabled and the attacker writes arbitrary data in the persistent memory, fake keys might be stored and imported to PSA crypto library after the next device reset.
280
+
281
+
Complete the following steps to use the key importer functionality safely:
282
+
283
+
1. Update the images with the Tinycrypt-based toolbox and the PSA API based toolbox with the key importer feature enabled.
284
+
#. Reset the device to perform the key import after the devices in the network have successfully updated their images.
285
+
#. Update the images with the PSA API based security toolbox with the key importer feature disabled.
286
+
287
+
Even if you have completed these steps, the Tinycrypt-based open key values can be extracted from the settings subsystem backend if there is access to it.
288
+
The keys might still be compromised.
289
+
Start the key refresh procedure according to the specification for all existing keys.
Copy file name to clipboardexpand all lines: doc/nrf/releases_and_maturity/migration/migration_guide_3.0.rst
+16
Original file line number
Diff line number
Diff line change
@@ -219,3 +219,19 @@ Download client
219
219
.. code-block:: C
220
220
221
221
err = downloader_deinit(&dl);
222
+
223
+
Protocols
224
+
=========
225
+
226
+
This section provides detailed lists of changes by :ref:`protocol <protocols>`.
227
+
228
+
Bluetooth Mesh
229
+
--------------
230
+
231
+
.. toggle::
232
+
233
+
* Support of Tinycrypt-based security toolbox (:kconfig:option:`CONFIG_BT_MESH_USES_TINYCRYPT`) started the deprecation procedure and is not recommended for future designs.
234
+
* The default security toolbox is based on the Mbed TLS PSA API (:kconfig:option:`CONFIG_BT_MESH_USES_MBEDTLS_PSA`).
235
+
* The default security toolbox is based on the TF-M PSA API (:kconfig:option:`CONFIG_BT_MESH_USES_TFM_PSA`) for platforms that support TF-M.
236
+
237
+
The :ref:`ug_bt_mesh_configuring` page provides more information about the updating of the images based on different security toolboxes.
Copy file name to clipboardexpand all lines: doc/nrf/releases_and_maturity/releases/release-notes-3.0.0-preview1.rst
+4-1
Original file line number
Diff line number
Diff line change
@@ -133,7 +133,9 @@ Bluetooth® LE
133
133
Bluetooth Mesh
134
134
--------------
135
135
136
-
|no_changes_yet_note|
136
+
* Added:
137
+
138
+
* The key importer functionality (:kconfig:option:`CONFIG_BT_MESH_KEY_IMPORTER`).
137
139
138
140
DECT NR+
139
141
--------
@@ -899,6 +901,7 @@ Documentation
899
901
* The :ref:`create_application` page with the :ref:`creating_add_on_index` section.
900
902
* The :ref:`ug_nrf91` documentation to use `nRF Util`_ instead of nrfjprog.
901
903
* The :ref:`dm-revisions` section of the :ref:`dm_code_base` page with information about the preview release tag, which replaces the development tag.
904
+
* The :ref:`ug_bt_mesh_configuring` page with the security toolbox subclause and the key importer functionality.
902
905
903
906
* Removed the standalone page for getting started with Nordic Thingy:53.
904
907
The contents of this page have been moved to the :ref:`thingy53_precompiled` page and to the `Programmer app <Programming Nordic Thingy:53_>`_ documentation.
0 commit comments