Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: tfm: add overview of PSA Certified API #20863

Merged
merged 1 commit into from
Mar 17, 2025

Conversation

greg-fer
Copy link
Contributor

Added a new page about the PSA Certified API overview to the TF-M documentation. The page is based on a DevZone blog. NCSDK-32263.

@greg-fer greg-fer added CI-disable Disable CI for this PR doc only labels Mar 11, 2025
@greg-fer greg-fer added this to the 3.0.0 milestone Mar 11, 2025
@greg-fer greg-fer requested review from a team as code owners March 11, 2025 15:00
@github-actions github-actions bot added doc-required PR must not be merged without tech writer approval. changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Mar 11, 2025
@greg-fer greg-fer force-pushed the doc_move_psa_cert_api_blog branch from 36d962b to ca23bbf Compare March 11, 2025 15:01
@greg-fer greg-fer requested a review from a team as a code owner March 11, 2025 15:01
@github-actions github-actions bot removed the changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. label Mar 11, 2025
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Mar 11, 2025

CI Information

To view the history of this post, clich the 'edited' button above
Build number: 8

Inputs:

Sources:

more details

Github labels

Enabled Name Description
ci-disabled Disable the ci execution
ci-all-test Run all of ci, no test spec filtering will be done
ci-force-downstream Force execution of downstream even if twister fails
ci-run-twister Force run twister
ci-run-zephyr-twister Force run zephyr twister
List of changed files detected by CI (0)

Outputs:

Toolchain

Version:
Build docker image:

Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped; ⚠️ Quarantine

  • ◻️ Toolchain
  • ◻️ Build twister
  • ◻️ Integration tests

Note: This message is automatically posted and updated by the CI

@greg-fer greg-fer force-pushed the doc_move_psa_cert_api_blog branch from ca23bbf to 9776fc9 Compare March 12, 2025 09:56

Internal Trusted Storage is only available internally.

For Nordic SoCs without an SPU, the PSA Secure Storage API will save data in regular flash storage.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence should not mention the SPU, but be more generic.
Also, it should link to the Trusted Storage docs, as those are used for devices that does not have HW to secure the storage.


For Nordic SoCs without an SPU, the PSA Secure Storage API will save data in regular flash storage.

To store sensitive user information in an external flash, it is recommended to use the Protected Storage API.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we double check if Protected Storage actually supports External flash?

PSA Attestation API in the |NCS|
================================

See the :ref:`TF-M PSA template <tfm_psa_template>` for reference implementation of the PSA Attestation API in the |NCS|.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For later:
Once we have a recommended path for partitioning and such for the nRF54L15, we should update these docs to reflect that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead, other options are available for the immutable bootloader and the upgradable bootloader.
See :ref:`app_bootloaders` for more information on available bootloaders.

The bootloaders supported in the |NCS| fulfill requirements by PSA Certified, and several of our devices are already among `PSA Certified Products`_.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@greg-fer greg-fer force-pushed the doc_move_psa_cert_api_blog branch from 9776fc9 to f33908b Compare March 13, 2025 14:58
* Implement the trusted components and firmware, making use of high-level APIs to build-in security and create an interface to the hardware Root of Trust (RoT).
* Certify device, platform, or silicon by following independent security evaluation.
Trusted Firmware-M (TF-M) is the reference implementation of PSA, which follows `PSA Certified IoT Security Framework`_ for securing connected devices.
You can read more about the framework on the :ref:`ug_psa_certified_api_overview` page.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You can read more about the framework on the :ref:`ug_psa_certified_api_overview` page.
For more information about the framework, see the :ref:`ug_psa_certified_api_overview` page.

* Implement the trusted components and firmware, making use of high-level APIs to build-in security and create an interface to the hardware Root of Trust (RoT).
* Certify device, platform, or silicon by following independent security evaluation.

This page focuses on the implementation step (specifically the `PSA Certified APIs`_), which establishes a separation between security-critical firmware and application firmware.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This page focuses on the implementation step (specifically the `PSA Certified APIs`_), which establishes a separation between security-critical firmware and application firmware.
This page focuses on the implementation step (specifically the `PSA Certified APIs`_) that establishes the separation between security-critical firmware and application firmware.

* `PSA Certified Attestation API`_
* `PSA Certified Firmware Update API`_

Using the PSA Certified APIs has numerous benefits:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Using the PSA Certified APIs has numerous benefits:
Using the PSA Certified APIs has the following benefits:

Using the PSA Certified APIs has numerous benefits:

* Enhanced security - PSA Certified APIs enable devices to meet industry-standard security requirements and enhance the overall trustworthiness of IoT devices.
* Implementation agnostic - By using PSA Certified APIs, developers don't need to be concerned about the underlying hardware and software implementation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Implementation agnostic - By using PSA Certified APIs, developers don't need to be concerned about the underlying hardware and software implementation.
* Implementation agnostic - When using PSA Certified APIs, developers do not need to be concerned about the underlying hardware and software implementation.

* Implementation agnostic - By using PSA Certified APIs, developers don't need to be concerned about the underlying hardware and software implementation.
* Reduce time-to-market - Using an API standard can accelerate development time and reduce costs associated with developing, testing, and certifying custom solutions.
* Flexible and scalable - The various use cases supported ensure that the PSA Certified APIs can be used across multiple devices, from very simple ones to more complex systems.
* Future-proof - PSA Certified APIs are designed to be updated over time as security threats evolve, ensuring devices remain secure throughout their lifecycle.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Future-proof - PSA Certified APIs are designed to be updated over time as security threats evolve, ensuring devices remain secure throughout their lifecycle.
* Future-proof - PSA Certified APIs are designed to be updated over time as security threats evolve, ensuring that devices remain secure throughout their lifecycle.

=======================================================

SoCs from Nordic Semiconductor that come with dedicated hardware components for security (such as `nRF9160's System Protection Unit <nRF9160 System Protection Unit_>`_ or :ref:`nRF54L Series' security components <nRF54L15 Security_>`_) have the functionality for `flash <nRF9160 flash access control_>`_ (on nRF9160) or `feature <nRF54L15 feature access control_>`_ access control, making it possible to configure different features as secure.
Internal Trusted Storage and Protected Storage will save data to the sections of secure flash.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Internal Trusted Storage and Protected Storage will save data to the sections of secure flash.
Internal Trusted Storage and Protected Storage saves data to the sections of secure flash.


SoCs from Nordic Semiconductor that come with dedicated hardware components for security (such as `nRF9160's System Protection Unit <nRF9160 System Protection Unit_>`_ or :ref:`nRF54L Series' security components <nRF54L15 Security_>`_) have the functionality for `flash <nRF9160 flash access control_>`_ (on nRF9160) or `feature <nRF54L15 feature access control_>`_ access control, making it possible to configure different features as secure.
Internal Trusted Storage and Protected Storage will save data to the sections of secure flash.
This way, the NSPE can not directly access data saved by the Internal Trusted Storage API or the Protected Storage API.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This way, the NSPE can not directly access data saved by the Internal Trusted Storage API or the Protected Storage API.
This way, the NSPE cannot directly access data saved by the Internal Trusted Storage API or the Protected Storage API.


Internal Trusted Storage is by default only available from the SPE.

For Nordic SoCs without an SPU, the PSA Secure Storage API will save data in regular flash storage.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For Nordic SoCs without an SPU, the PSA Secure Storage API will save data in regular flash storage.
For Nordic SoCs without an SPU, the PSA Secure Storage API saves data in the regular flash storage.

For Nordic SoCs without an SPU, the PSA Secure Storage API will save data in regular flash storage.

To store sensitive user information in an external flash, it is recommended to use the Protected Storage API.
This encrypts the data, protecting it in case the external flash is lost.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This encrypts the data, protecting it in case the external flash is lost.
This encrypts the data, protecting it if the external flash is lost.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line removed


Cloud service providers need to make informed judgements on end devices to ensure the data they are providing can be trusted.
EAT has the capabilities to provide this source of trust, using a cryptographically signed piece of data containing claims that are generated in the device RoT.
There are many ways it can be useful, but most importantly it can be read by the relying party.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
There are many ways it can be useful, but most importantly it can be read by the relying party.
It can be useful in many ways, but most importantly it can be read by the relying party.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quote, no edit applied.

@greg-fer greg-fer force-pushed the doc_move_psa_cert_api_blog branch 2 times, most recently from d971b1c to cabff7d Compare March 14, 2025 10:19
Copy link
Contributor

@peknis peknis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more nit, to get rid of the compliance error.

@@ -226,18 +226,32 @@
.. _`nRF Connect SDK Add-ons`: https://nrfconnect.github.io/ncs-app-index/
.. _`ncs-app-index`: https://github.com/nrfconnect/ncs-app-index

.. _`psa/crypto.h`: https://github.com/nrfconnect/sdk-trusted-firmware-m/blob/master/interface/include/psa/crypto.h
.. _`psa/protected_storage.h`: https://github.com/nrfconnect/sdk-trusted-firmware-m/blob/master/interface/include/psa/protected_storage.h
.. _`psa/initial_attestation.h`: https://github.com/nrfconnect/sdk-trusted-firmware-m/blob/master/interface/include/psa/initial_attestation.h
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.. _`psa/initial_attestation.h`: https://github.com/nrfconnect/sdk-trusted-firmware-m/blob/master/interface/include/psa/initial_attestation.h
.. _`psa/initial_attestation.h`: https://github.com/nrfconnect/sdk-trusted-firmware-m/blob/master/interface/include/psa/initial_attestation.h.in

@greg-fer greg-fer force-pushed the doc_move_psa_cert_api_blog branch from cabff7d to 9b86ff2 Compare March 14, 2025 10:47
Comment on lines +22 to +18
* Analyze the threats that have the potential to compromise your device and generate a set of security requirements based on these risks.
* Architect the right level of security for your product by using unique security requirements to identify and select components and specifications.
* Implement the trusted components and firmware, making use of high-level APIs to build-in security and create an interface to the hardware Root of Trust (RoT).
* Certify device, platform, or silicon by following independent security evaluation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these be numbered steps?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They are not on the source page.

Added a new page about the PSA Certified API overview to the TF-M
documentation. The page is based on a DevZone blog.
NCSDK-32263.

Signed-off-by: Grzegorz Ferenc <[email protected]>
Signed-off-by: Sigurd Hellesvik <[email protected]>
@greg-fer greg-fer force-pushed the doc_move_psa_cert_api_blog branch from 9b86ff2 to 32d0917 Compare March 17, 2025 09:16
@greg-fer greg-fer requested a review from umapraseeda March 17, 2025 10:00
@rlubos rlubos merged commit f568363 into nrfconnect:main Mar 17, 2025
13 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI-disable Disable CI for this PR doc only doc-required PR must not be merged without tech writer approval.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants