Available at: https://www.arm.com/architecture/security-features/platform-security

About this document

You can read more about PSA Certified here: http://www.psacertified.org and find more Arm resources here: http://developer.arm.com/platform-security-resources

Platform Security Model Overview

The 10 Security Goals

Abstraction allows these goals to be applied as required, for example, to an end user connected device, a hardware component, a software component, or a service.

The term device is used to represent any entity at any level that must be secure and trustworthy.

Connected Devices Within an Ecosystem

The devices deployed within the context of an ecosystem are expected to comply with a variety of functional and security requirements, depending on the use cases of the deployment ecosystem.

Device Models

The device models defined by PSM covers three fundamental parts:

  1. The overall trust anchor for the system. This ensures the platform is securely booted, configured, establishes the secure environments required to support the protection of security sensitive operations, and contains the root parameters. This is called the Platform Root of Trust (PRoT).

  2. The secure environment for the PSM-defined generic security services, referred to as PRoT services. These services facilitate the PRoT and are intended to be used by application specific security services and functionality.

  3. The secure environment for any Application Root of Trust (ARoT) services. An ARoT service can be any application defined security service, which may make use of the PRoT services. Note that some systems may need nothing more than the PRoT and PRoT services.

There are many ways to build a PSM compliant device. For this reason, the following generalized concepts are used.

A minimal PSM compliant device is illustrated in the Figure above. There are two processing environments.

  1. Secure Processing Environment (SPE), hosts secure partitions, for PSM-defined security processing.

  2. Non-Secure Processing Environment (NSPE), hosts partitions for all other processing.

The SPE hosts the following PSM elements:

note

A secure partition must only host the PRoT, the PRoT services, or any ARoT services. All other processing must be completely outside any secure partition and secure processing environment.

A secure partition must only host the PRoT, the PRoT services, or any ARoT services. All other processing must be completely outside any secure partition and secure processing environment.

PSM allows for systems where there is the need for more than one secure processing environment (SPE).

Provided the PSM security requirements are not violated, non-PSM security processing environments can co-exist. As the trust anchor for the device, the PRoT may need to include functionality specific to any non-PSM security service, and the PRoT SPE will need to meet any specific non-PSM processing environment security properties.

Isolation
Immutable Platform Root-of-Trust Protection
Trusted Subsystems

Platform Root of Trust

The Platform Root of Trust (PRoT) includes the hardware and software components that are responsible for:

The PRoT services provide functionality available to the system beyond the initialization phase, for these, PSA Certified define some interfaces in the form of APIs and ABIs.

In this document no distinction is made between software and firmware.

Hardware Elements

The Platform Root of Trust includes the following hardware elements. Access to these hardware elements should be possible only via the PRoT and PRoT services.

Software Elements

The Platform Root of Trust and services typically includes the following software elements, as shown in the Figure above:

Non-Isolated Storage

Non-isolated storage is storage where access control either logically or physically (if off-chip or removable) cannot be enforced by the PRoT. Non-isolated storage is useful for application-specific data, which may include cryptographically protected data where the required keys are protected by the PRoT service.

PRoT Parameters

Initial parameters (all of the above except Instance ID) are those directly accessible or used by the immutable PRoT, but can be copied to, or used as seeds for derivation of Initial Boot State data. Depending on the certification profile, initial parameters are stored in isolated locations or shielded locations.

Updateable parameters (Implementation ID, Instance ID, Initial Attestation Key) are those that are used by the PRoT services. They should only be directly accessible by the updateable PRoT code and can be copied to or derived and stored in the Main Boot State.

PRoT Security Lifecycle

A lifecycle defines the states of an object through its lifetime. Each security state in the security lifecycle of a device defines the security properties in that state. Security state can depend on:

The generic security lifecycle shown in the Figure below is intended to capture only the minimum set of notional lifecycle states and transitions. The described characteristics of each state will need to be related to the actual states that arise in an implementation and deployment.

Additional states and sub-states may exist in any real device. Any sub-state must retain the properties of its parent. Both parent and sub-states must always be attestable once a device enters an attestable state.

Debug

When the device is in Secured state, logging of events or reporting of diagnostics in a way that does not expose sensitive data and does not affect the trustworthy operation of the device is permitted. The ecosystem may require that such logs and reports are only accessible by a device management system, and are integrity and confidentiality protected. → This is called non-intrusive debug.

This PSM is concerned with protection of the PRoT and PRoT services when the device is subject to intrusive debug.

Intrusive forms of debug should be restricted to authorized debug agents and require a secure authorization process, with the debug rights granted by an appropriate device management service.

Lifecycle of other components

Other components in a system, for example, trusted subsystems, may have their own lifecycles. The overall product built from the components may also have its own lifecycle. Note that such lifecycles must never be in a state that conflicts with or compromises the security requirements of the Platform Root of Trust security lifecycle.

PRoT Binding

The following types of binding are applicable when sensitive data owned by secure partitions are stored in Non-isolated Storage. Binding may also be used to protect Internal Trusted Storage.

Binding relies on secret keys and cryptography. The generation and storage of the required keys depends on the lifecycle security state, which includes the supported debug modes. It is recommended to use run-time-derived keys to support lifecycle binding. Derivation is essential if recoverable debug is supported because the return to the secured state requires the generation of the secured state keys.

Device-binding Root Keys

Two binding root keys are defined. Both are security lifecycle-state dependent, and so should be derived after a system reset. Derivation for device binding is essential if recoverable debug is supported.

Derivation of the binding root keys must be through a cryptographic one-way derivation from a hardware unique secret key, for example, the Hardware Unique Key. Derivation ensures that any derived BRK is unique to the device. The derivation must result in SBRK and DBRK being different.

The derived SBRK or DBRK should be used only to derive a Partition Specific Binding Key (PSBK).

Secure Partition-specific Binding Keys

Each PSBK is a cryptographic one-way derivation either from one of the binding root keys, or from an existing derived PSBK that is owned by that secure partition.
When a PSBK is derived, the following data are used.

The Use Policy does not include export in the clear of the derived PSBK. Thus, a PSBK cannot be used where shared knowledge of the key is required.

PRoT Secure Boot and Firmware Update

Secure boot, sometimes called verified boot, uses cryptography to verify the next stage code and any metadata. The secure boot flow must start with an inherently trusted Boot ROM in the Immutable PRoT; this is the trust anchor for the boot validation chain.

Image Signing, Validation and Encryption

Verified and Version Validated Components

The table above shows the minimal set of verified components and the minimal set of version-checked components.

Anti-rollback

Anti-rollback is used to reject earlier versions of the firmware, software or data that may contain known errors or vulnerabilities. Secure boot must only allow components that have the same or newer version number than the reference version number for that component to be executed.

Boot State

Boot state refers to the data intentionally left at a temporal isolation boundary in the secure boot flow. There are two isolation boundaries defined, leading to an Initial Boot State and a Main Boot State.

Initial Boot State

The initial boot state is the set of data that is provided by the Boot ROM for use by the Main Bootloader. Initial boot state includes the following:

Initial boot state must be only directly accessible to the Main Bootloader, and should not be modified once set by the Boot ROM.

Main Boot State

The main boot state is the set of data provided by the Main Bootloader for use by the Platform Root of Trust Services. The main boot state includes the following:

Main Boot State must be only directly accessible to the Platform Root of Trust services, and to ensure that the data are trusted, should not be modified once set by the Main Bootloader.

Firmware Update

The selection and download of updates depend on the specific ecosystem and is not defined here. Ideally:

System Suspend and Hibernation

Suspension and hibernation are low power modes that allow a device to resume from a known point more rapidly than a full system start (a cold boot).

For suspension or hibernation, the creation and signing of the required resume state, and the process of entering the low power mode, must be performed by trusted code. On resume, validation of the saved resume state must be performed by trusted code anchored in the Boot ROM.

If the integrity of any of the saved resume state is invalid, or replay is detected, then the Boot ROM must proceed with a full system restart.

PRoT Services

This section covers the Platform Root of Trust Services that are made available to any secure partitions. They may also be made available to other partitions provided that the isolation properties are met. PSM does not require the use of any specific API. However, APIs are available and are referenced in this section as examples, and PSA Certified has an API functional compliance programme.

Internal Trusted Storage

Cryptographic Operations

The cryptographic operations service performs cryptographic processing using input, derived, or persistent keys that are stored in isolated locations or shielded locations. Implementations should meet the following essential security properties:

  1. Isolation

  2. Access control

  3. Policy

The minimum set of cryptographic policy options is as follows:

A source of random data is required, typically for establishing a secure communication channel. A True Random Number Generator (TRNG) or a suitably seeded Deterministic Random Bit Generator (DRBG) should be used to provide such random data.

The PSA Crypto API provides an interface to the cryptographic operations.

Initial Attestation Service

Evidence provided in an attestation report makes a statement about the state of the entity being attested and is the Attestation End Point (AEP).

An attestation report is intended to be checked by an Attestation Validation Entity (VE). Deployment of attestation services is eco-system dependent. The scope of the AEP and how the attested AEP report is used are application specific and not defined by PSM.

The Initial Attestation Service (IAS) provides a signed Initial Attestation Token (IAT). The IAT includes the state of the Platform Root-of-Trust, including whether a debug state has been entered, and any claims made by AEP. The IAT is bound to the specific device instance through use of the Initial Attestation Key (IAK). The format of the IAT is not defined by PSM, however, the PSA Attestation API supports CBOR encoded IETF Entity Attestation Token.

A typical initial attestation sequence is illustrated and explained in the remaining of this subsection.

OR: object record

Secure Storage

Many devices require secure persistent storage to hold sensitive data. That data could come from the manufacturer, or could be application-generated, service-generated, or user-generated. Such storage is called non-isolated storage, and is typically implemented with flash memory either on- or off-chip.

Secure storage is expected to be available to Application RoT services, but may be available to other partitions provided that that the following properties are met:

Depending on implementation requirements and certification profiles, these properties may be enforced by isolation, or by cryptography, or a combination of both.

Secure storage is supported by the PSA Storage API.

New Terms