Understanding the storage limitation on ITS and PS

Hi,

I am currently working with Trusted Firmware-M (TF-M) on an nRF device and trying to understand the design difference between Internal Trusted Storage (ITS) and Protected Storage (PS) services.

From my understanding:

ITS and PS are both secure storage services.

The main difference is that ITS is used internally by secure services, while PS can be accessed by non-secure applications through PSA APIs.

PS data is encrypted and authenticated by default,and for ITS optional.

However, I’ve noticed that ITS cannot store large data objects, while PS can handle larger data sizes.

  • I would like to understand why this design limitation exists.What is the architectural or design reason that limits ITS from storing large data objects?

Apart from the fact that Protected Storage (PS) is callable from the Non-Secure region and Internal Trusted Storage (ITS) is callable only from the Secure region, is there any other difference between them in terms of working mechanism, internal modules used, or hardware linkage?

From my observation, both seem to operate using the same underlying backend modules (such as flash storage and crypto services), so I would like to understand whether there are any functional or architectural differences beyond just the calling domain.

  • Is the limitation due to flash allocation, static buffer size, or the design intent of ITS being a lightweight internal storage?
  • Does Nordic’s TF-M implementation allow increasing the ITS storage capacity safely (for example, via configuration), or is it strongly discouraged?
  • Any clarification on how Nordic recommends handling larger secure data — whether via PS or by extending ITS — would be really helpful.
Parents
  • Hi Hariharan,

    ITS provides a secure location for devices to store their most sensitive data. Typical uses include keys, secure time values, monotonic counters, and firmware image hashes. So yes, the design intent of ITS being a lightweight internal storage is right. You could technically use ITS to store whatever you want, but PS is designed for larger application-level data. It allows the application to securely store data and this is the recommended option.

    This may also be interesting for you to read!

    Best regards,
    Benjamin

Reply
  • Hi Hariharan,

    ITS provides a secure location for devices to store their most sensitive data. Typical uses include keys, secure time values, monotonic counters, and firmware image hashes. So yes, the design intent of ITS being a lightweight internal storage is right. You could technically use ITS to store whatever you want, but PS is designed for larger application-level data. It allows the application to securely store data and this is the recommended option.

    This may also be interesting for you to read!

    Best regards,
    Benjamin

Children
Related