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
+38
Original file line number
Diff line number
Diff line change
@@ -246,3 +246,41 @@ 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 like CMAC, AES-CCM, HMAC-SHA-256 and etc.
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 mbedTLS PSA API based security toolbox. Default option.
259
+
* :kconfig:option:`CONFIG_BT_MESH_USES_TFM_PSA` - Enables use of TF-M PSA API based security toolbox. Default option for plarforms those suppot 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 comparing to others and not recommended for the future designs.
263
+
264
+
Bluetooth Mesh security toolbox based on the PSA API does not operate with open values of keys. Getting keys Bluetooth Mesh imports them instantly into
265
+
crypto library getting back the unique key identifier. The only key identifiers are used in the security toolbox.
266
+
The only key identifier are stored in the persistent memory too. The crypto library is responsible for storing of the key values in the Internal Trusted Storage (ITS).
267
+
Data strutures that Bluetooth Mesh based on Tinycrypt and based on the PSA API store in the persistent memory are not compatible due to different key representations.
268
+
The general way for a provisioned device to update its image with Tinycrypt based toolbox on image with the PSA API based toolbox and vice versa
269
+
is to be unprovisioned first and reprovisioned after update again.
270
+
If the image is changed over Mesh DFU it is recommended to use :c:enumerator:`BT_MESH_DFU_EFFECT_UNPROV`.
271
+
272
+
Meanwhile, there is ability for a provisioned device to update its image with Tinycrypt based toolbox on image with the PSA API based toolbox without being unprovisioned.
273
+
The following option :kconfig:option:`CONFIG_BT_MESH_KEY_IMPORTER` 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
+
The functionality reads out the Bluetooth Mesh persistently stored data and if it finds keys stored by Tinycrypt based security toolbox it
276
+
imports them over PSA API into crypto library and stores gotten key identifiers in PSA API toolbox based form.
277
+
At the moment when application starts Bluetooth Mesh initialization, the persistent area already has stored data in the correct form.
278
+
279
+
However, the key importer usage might add the potential vulnerability to the device. If device works with enabled key importer functionality
280
+
and attacker gets ability to write arbitrary data in persistent memory then fake keys might be stored and will be imported to PSA crypto library after next device reset.
281
+
282
+
* The following steps should be done to use the key importer functionality safely:
283
+
284
+
* Update images with Tinycrypt based toolbox on images with the PSA API based toolbox with enabled the key importer feature.
285
+
* Reset device to perform key import after devices in the network have successfully updated their images.
286
+
* Update images with the PSA API based security toolbox but with disabled the key importer feature.
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 deprecation procedure and not recommended for the future designs.
234
+
* The default security toolbox is based on mbedTLS PSA API (:kconfig:option:`CONFIG_BT_MESH_USES_MBEDTLS_PSA`)
235
+
* The default security toolbox is based on TF-M PSA API (:kconfig:option:`CONFIG_BT_MESH_USES_TFM_PSA`) for platforms those 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.
0 commit comments