blob: a1299966c99c9aa9b2888f71e36f17d0a4a30ce4 [file] [log] [blame]
Secure Partition Images
=======================
Secure partition (SP) deployments are concerned with building SP images that can
be loaded and run under a secure partition manager such as Hafnium or OP-TEE.
SP images will usually include service provider components that expose a
service interface that may be reached using FF-A messages. A set of SP images
will be loaded and verified by device firmware to provide the required services.
The following deployments that create SP images are currently supported:
crypto
------
An instance of the crypto service provider is built into an SP image to
perform cryptographic operations on behalf of clients running in different
partitions. Backend crypto operations are implemented by the crypto library
component of MbedTLS. This deployment provides the cryptographic facilities
needed for PSA certification. For more information, see:
:ref:`Crypto Service`.
.. list-table::
:widths: 1 2
:header-rows: 0
* - Supported Environments
- * *opteesp* (runs as an S-EL0 SP under OP-TEE)
* *sp* (SPMC agnostic S-EL0 SP format)
* - External Dependencies
- * | TRNG (platform specific)
* | Secure storage SP
attestation
-----------
An instance of the attestation service provider is built into an SP image
to support remote attestation use-cases. The service provider obtains a
trusted view of the boot state of device firmware from the TPM event log
collected by the boot loader. This deployment provides the initial attestation
facility needed for PSA certification. For more information, see:
:ref:`Attestation Service`.
.. list-table::
:widths: 1 2
:header-rows: 0
* - Supported Environments
- * *opteesp* (runs as an S-EL0 SP under OP-TEE)
* *sp* (SPMC agnostic S-EL0 SP format)
* - External Dependencies
- * | TPM Event Log (via SP boot parameter)
* | Crypto SP
internal-trusted-storage & protected-storage
--------------------------------------------
Two secure storage SP deployments are provided to allow different classes
of storage to coexist on a device. Both deployments build an instance of
the secure storage service provider with a storage backend. To allow
different security trade-offs to be made and to support different hardware,
a system integrator may configure which storage backend to use. Secure storage
is a requirement for PSA certification. For more information, see:
:ref:`Secure Storage Service`.
.. list-table::
:widths: 1 2
:header-rows: 0
* - Supported Environments
- * *opteesp* (runs as an S-EL0 SP under OP-TEE)
* *sp* (SPMC agnostic S-EL0 SP format)
* - External Dependencies
- * Depends on configured storage backend
se-proxy
--------
The se-proxy SP provides access to services hosted by a secure enclave (hence
'se'). A secure enclave consists of a separate MCU, connected to the host via
a secure communications channel. To protect access to the communication channel,
the se-proxy SP is assigned exclusive access to the communication peripheral via
device or memory regions defined in the SP manifest. The deployment integrates
multiple service providers into the SP image. After performing access control,
service requests are forwarded to the secure enclave.
The se-proxy deployment includes proxies for the following services:
- Crypto
- Attestation
- Internal Trusted Storage
- Protected Storage
.. list-table::
:widths: 1 2
:header-rows: 0
* - Supported Environments
- * *opteesp* (runs as an S-EL0 SP under OP-TEE)
* *sp* (SPMC agnostic S-EL0 SP format)
* - External Dependencies
- * SE communication peripheral (platform specific)
smm-gateway
-----------
An instance of the smm-variable service provider is built into the smm-gateway SP
image to provide secure world backing for UEFI SMM services. The smm-gateway SP
provides a lightweight alternative to StMM. For more information, see:
:ref:`UEFI SMM Services`.
.. list-table::
:widths: 1 2
:header-rows: 0
* - Supported Environments
- * *opteesp* (runs as an S-EL0 SP under OP-TEE)
* *sp* (SPMC agnostic S-EL0 SP format)
* - External Dependencies
- * | Secure storage service instance (e.g. hosted by protected-storage SP)
* | Crypto service instance (e.g. hosted crypto SP)
ftpm
----
The fTPM deployment provides a software TPM 2.0 implementation in an SP, based
on the `ms-tpm-20-ref` reference implementation. It exposes a TPM CRB interface
over FF-A, conforming to the `Arm DEN0138` specification. For more information,
see: :ref:`TPM 2.0 service`.
.. list-table::
:widths: 1 2
:header-rows: 0
* - Supported Environments
- * *opteesp* (runs as an S-EL0 SP under OP-TEE)
* *sp* (SPMC agnostic S-EL0 SP format)
* - External Dependencies
- * | Secure storage service instance (e.g. hosted by protected-storage SP)
* | TRNG (platform specific)
* | Carveout for CRB memory regions
env-test
--------
An instance of the test runner service provider is built into an SP image to
allow test cases to be run from within the SP isolated environment. The SP
image also includes environment and platform specific test cases to allow
access to FF-A services and platform hardware to be tested. The test runner
service provider is intended to be used in conjunction with a client that
coordinates which tests to run and collects test results.
.. list-table::
:widths: 1 2
:header-rows: 0
* - Supported Environments
- * *opteesp* (runs as an S-EL0 SP under OP-TEE)
* *sp* (SPMC agnostic S-EL0 SP format)
* - External Dependencies
- * Any hardware accessed by test cases (platform specific)
--------------
*Copyright (c) 2022-2023, Arm Limited and Contributors. All rights reserved.*
SPDX-License-Identifier: BSD-3-Clause