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
{{ message }}
Repository navigation
Commit 7cad837
Browse filesBrowse the repository at this point in the historyBrowse files
docs: Describe KRKNWK-22680 and v1.0.1 ITS fallback for DAC key
Document the v1.0.0 nRF54L issue where the DAC private key could be
stored in PSA ITS instead of CRACEN KMU, and how v1.0.1 restores KMU
defaults on NCS v3.4.x.
Update migration guidance, known issues, and release notes for
CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU_ITS_FALLBACK (default): units
that already have the key in ITS can run KMU-default firmware, attest
with the ITS copy, and re-provision later when KMU-only storage is
required.
Split KRKNWK-22680 guidance by where the key was first migrated (KMU
vs ITS) so KMU-backed devices are directed to Path A instead of ITS
Kconfig that cannot access a KMU-resident key.
Signed-off-by: Arkadiusz Balys <arkadiusz.balys@nordicsemi.no>
Copy file name to clipboardExpand all lines: docs/known_issues.rst
+68-3Lines changed: 68 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,10 +5,12 @@ Known issues
5
5
6
6
.. contents::
7
7
:local:
8
-
:depth:2
8
+
:depth:3
9
9
10
-
Known issues listed on this page are valid for the current state of development.
11
-
Items can have one or both of the following entries:
10
+
Known issues listed on this page *and* tagged with the :ref:`latest release version <release_notes>` are valid for the current state of development.
11
+
Use the drop-down filter to see known issues for previous releases and check if they are still valid.
12
+
13
+
A known issue can list one or both of the following entries:
12
14
13
15
* **Affected platforms:**
14
16
@@ -18,3 +20,66 @@ Items can have one or both of the following entries:
18
20
19
21
Some known issues have a workaround.
20
22
Sometimes, they are discovered later and added over time.
23
+
24
+
.. version-filter::
25
+
:container: dl/dt
26
+
:tags: [("wontfix", "Won't fix")]
27
+
28
+
.. page-filter::
29
+
:name: issues
30
+
31
+
wontfix Won't fix
32
+
33
+
List of known issues for |addon|
34
+
********************************
35
+
36
+
.. _ncs_matter_known_issue_dac_priv_key_its_kmu:
37
+
38
+
.. rst-class:: simple v1-0-0
39
+
40
+
KRKNWK-22680: DAC private key stored in PSA ITS instead of CRACEN KMU on nRF54L
41
+
On nRF54L Series SoCs with a Key Management Unit (KMU), |addon| v1.0.0 selects PSA Internal Trusted Storage (ITS) by default as the DAC private key backend instead of the CRACEN KMU.
42
+
The Matter Kconfig defaults depend on the ``CRACEN_KMU`` symbol, which is not defined in |NCS| v3.4.0.
43
+
The build therefore silently falls back to :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_ITS`, while the documentation describes KMU storage as the default (see :ref:`matter_platforms_security_dac_priv_key_kmu`).
44
+
45
+
On the first boot with factory data, ``FactoryDataProvider`` moves the DAC private key out of the factory data partition exactly once.
46
+
The key cannot be exported or copied to another backend.
47
+
48
+
When commissioning or attestation may fail
49
+
50
+
* KMU - ITS mismatch (recoverable with a fixed firmware):
51
+
The device previously ran in-tree |NCS| Matter firmware (up to |NCS| v3.4.0) that stored the DAC private key in the KMU, and was updated over SMP or Matter OTA to |addon| v1.0.0 firmware that looks for the key in ITS.
52
+
Existing Matter fabrics continue to work, but **new commissioning fails** after a factory reset or when adding another administrator.
53
+
Device attestation fails with an Operational Credentials error (for example ``OpCreds: Failed AttestationRequest request with IM error 0x01 (err = ac)``).
54
+
This path is **deterministic** on every affected nRF54L device when migrating from pre–|addon| Matter releases.
55
+
56
+
* ITS - KMU mismatch (commissioning failure on v1.0.0; mitigated in v1.0.1):
57
+
The device **first booted** with |addon| v1.0.0 (or any firmware that stored the DAC key in ITS).
58
+
|addon| v1.0.0 firmware that defaults to KMU storage cannot use that key; commissioning fails the same way as the KMU→ITS case.
59
+
|addon| v1.0.1 and newer sdk-connectedhomeip revisions can boot with KMU migration selected when :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU_ITS_FALLBACK` is enabled (default): the ITS copy is used for attestation signing and a warning is logged.
60
+
Automatic migration from ITS to KMU is still not supported.
61
+
If such a device receives a **factory reset** while :kconfig:option:`CONFIG_CHIP_FACTORY_RESET_ERASE_SETTINGS` is enabled and the DAC key exists only in ITS, the settings partition is erased together with the ITS copy of the DAC private key, and the **DAC private key is permanently lost**.
62
+
The device can no longer pass device attestation until it is re-provisioned with new factory data.
63
+
64
+
**Affected platforms:** nRF54L15 and nRF54LM20A/B Series SoCs
65
+
66
+
**Workaround:**
67
+
68
+
Pick the step that matches where the DAC private key was stored on **first** migration (see :ref:`migration_101`).
69
+
70
+
* **Key in CRACEN KMU** (typical after in-tree |NCS| Matter, then a broken update to |addon| v1.0.0):
71
+
Deploy |addon| v1.0.1 or newer firmware with KMU migration selected (``CRACEN_LIB_KMU`` defaults restored).
72
+
Do **not** force :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_ITS`; ITS storage cannot read a KMU-resident key and commissioning stays broken.
73
+
See :ref:`migration_101` Path A.
74
+
75
+
* **Key in PSA ITS** (typical when |addon| v1.0.0 completed the first migration on nRF54L):
76
+
Deploy |addon| v1.0.1 or newer with :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU_ITS_FALLBACK` left enabled (default) so attestation uses the ITS copy, or keep an explicit ITS migration destination until re-provisioning:
77
+
78
+
.. code-block:: kconfig
79
+
80
+
CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_ITS=y
81
+
# CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU is not set
82
+
83
+
See :ref:`migration_101` Path B.
84
+
85
+
* Before updating firmware on nRF54L series devices, confirm the effective backend in the build output (``CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_ITS`` vs ``CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU`` in :file:`build/*/zephyr/.config`).
You can confirm the **current** firmware intent in :file:`build/<image>/zephyr/.config`:
35
+
36
+
* :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU=y` - firmware migrates new keys to KMU.
37
+
* :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_ITS=y` - firmware migrates new keys to ITS.
38
+
* :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU_ITS_FALLBACK=y` - when KMU is selected, an existing ITS copy may still be used for signing (default in v1.0.1).
39
+
40
+
Choose a migration path
41
+
=======================
42
+
43
+
Path A — Device previously on in-tree |NCS| Matter (key in KMU), updated to v1.0.0
Until each unit is re-provisioned with new factory data (new DAC key and certificates), choose one of the following for **every** firmware image you ship to those devices.
56
+
57
+
**Option 1 — KMU defaults with ITS fallback (recommended for v1.0.1+ field updates):**
58
+
59
+
Use the normal nRF54L KMU migration settings and leave the :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU_ITS_FALLBACK` Kconfig option set to ``y`` (default).
60
+
Commissioning and device attestation keep working because the stack detects the ITS copy at boot and uses it for signing while logging a warning.
61
+
Plan re-provisioning when you want the key stored in KMU only.
62
+
63
+
**Option 2 — Explicit ITS backend:**
64
+
65
+
Keep the migration destination aligned with where the key already lives:
66
+
67
+
.. code-block:: kconfig
68
+
69
+
CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_ITS=y
70
+
# CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU is not set
71
+
72
+
Add this to :file:`prj.conf` or a board overlay and verify it in the merged :file:`.config` after building.
73
+
74
+
**Do not:**
75
+
76
+
* Disable :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU_ITS_FALLBACK` on KMU-default v1.0.1 firmware for these units unless you intend boot to stop until the ITS copy is removed or the device is re-provisioned.
77
+
78
+
* Perform a factory reset on firmware that erases settings (:kconfig:option:`CONFIG_CHIP_FACTORY_RESET_ERASE_SETTINGS`) while the DAC key exists only in ITS.
79
+
That can **permanently erase** the DAC private key.
80
+
81
+
Path C — New development on v1.0.1+
82
+
-----------------------------------
83
+
84
+
No Kconfig changes are required for new nRF54L devices that will boot v1.0.1 first: KMU remains the default when :kconfig:option:`CONFIG_CRACEN_LIB_KMU` is available.
85
+
See :ref:`matter_platforms_security_dac_priv_key` for backend options.
86
+
87
+
Recommended validation
88
+
======================
89
+
90
+
After changing DAC storage settings or migration firmware on nRF54L hardware:
91
+
92
+
#. Build and inspect :file:`build/<app>/zephyr/.config` for the expected :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_*` symbol.
93
+
#. On a test device, run through factory reset (if applicable) and full Matter commissioning, including device attestation.
94
+
#. When migrating from older |NCS| Matter releases, include commissioning **after** SMP or Matter OTA in your release test plan (not only the DFU step).
This page tracks changes and updates as compared to the latest official release.
7
+
For more information refer to the following section.
8
+
For the list of potential issues, see the :ref:`ncs_matter_known_issues` page.
9
+
10
+
Devices that first ran |addon| v1.0.0 on nRF54L hardware may have the DAC private key in PSA ITS; v1.0.1 can still commission those units when ITS fallback is enabled (default)—see :ref:`migration_101` before changing Kconfig or provisioning flows on production units.
11
+
12
+
Changelog
13
+
*********
14
+
15
+
* Fixed the issue where on nRF54L Series SoCs, |addon| v1.0.0 could store the Device Attestation Certificate (DAC) private key in PSA ITS instead of the CRACEN Key Management Unit (KMU) when built against |NCS| ``v3.4.0`` release.
16
+
Matter Kconfig used the ``CRACEN_KMU`` symbol, which is undefined in that |NCS| ``v3.4.0`` release, so the build silently selected :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_ITS`.
17
+
That broke device attestation and re-commissioning after SMP or Matter OTA from in-tree |NCS| Matter firmware that had already moved the DAC key to the KMU.
18
+
See :ref:`ncs_matter_known_issue_dac_priv_key_its_kmu`.
19
+
20
+
* Added boot-time handling when KMU migration is configured but the DAC private key is still present in PSA ITS.
21
+
With :kconfig:option:`CONFIG_CHIP_CRYPTO_PSA_DAC_PRIV_KEY_KMU_ITS_FALLBACK` enabled (default), the device logs a warning, continues boot, and signs device attestation with the ITS key.
22
+
With fallback disabled, boot stops instead of failing attestation later or risking silent misconfiguration.
23
+
Automatic migration from ITS to KMU is not supported; re-provision when the key should live in KMU only (see :ref:`migration_101`).
0 commit comments