blob: 8e6ba2400376a4923f853b8093daf5a648dcd1bb [file] [log] [blame]
Julian Hall5e3626f2022-04-07 14:05:08 +01001Secure Partitions
2=================
3Secure partition (SP) deployments are concerned with building SP images that can
4be loaded and run under a secure partition manager such as Hafnium or OP-TEE.
5SP images will usually include service provider components that expose a
6service interface that may be reached using FF-A messages. A set of SP images
7will be loaded and verified by device firmware to provide the required services.
8
9The following SP deployments are currently supported:
10
11crypto
12------
13An instance of the crypto service provider is built into an SP image to
14perform cryptographic operations on behalf of clients running in different
15partitions. Backend crypto operations are implemented by the crypto library
16component of MbedTLS. This deployment provides the cryptographic facilities
17needed for PSA certification. For more information, see:
18:ref:`Crypto Service Description`.
19
20.. list-table::
21 :widths: 1 2
22 :header-rows: 0
23
24 * - Supported Environments
25 - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
26 * - External Dependencies
27 - * | TRNG (platform specific)
28 * | Secure storage SP
29
30attestation
31-----------
32An instance of the attestation service provider is built into an SP image
33to support remote attestation use-cases. The service provider obtains a
34trusted view of the boot state of device firmware from the TPM event log
35collected by the boot loader. This deployment provides the initial attestation
36facility needed for PSA certification. For more information, see:
37:ref:`Attestation Service Description`.
38
39.. list-table::
40 :widths: 1 2
41 :header-rows: 0
42
43 * - Supported Environments
44 - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
45 * - External Dependencies
46 - * | TPM Event Log (via SP boot parameter)
47 * | Crypto SP
48
49internal-trusted-storage & protected-storage
50--------------------------------------------
51Two secure storage SP deployments are provided to allow different classes
52of storage to coexist on a device. Both deployments build an instance of
53the secure storage service provider with a storage backend. To allow
54different security trade-offs to be made and to support different hardware,
55a system integrator may configure which storage backend to use. Secure storage
56is a requirement for PSA certification. For more information, see:
57:ref:`Secure Storage Service Description`.
58
59.. list-table::
60 :widths: 1 2
61 :header-rows: 0
62
63 * - Supported Environments
64 - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
65 * - External Dependencies
66 - * Depends on configured storage backend
67
68se-proxy
69--------
70The se-proxy SP provides access to services hosted by a secure enclave (hence
71'se'). A secure enclave consists of a separate MCU, connected to the host via
72a secure communications channel. To protect access to the communication channel,
73the se-proxy SP is assigned exclusive access to the communication peripheral via
74device or memory regions defined in the SP manifest. The deployment integrates
75multiple service providers into the SP image. After performing access control,
76service requests are forwarded to the secure enclave.
77
78The se-proxy deployment includes proxies for the following services:
79
80 - Crypto
81 - Attestation
82 - Internal Trusted Storage
83 - Protected Storage
84
85.. list-table::
86 :widths: 1 2
87 :header-rows: 0
88
89 * - Supported Environments
90 - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
91 * - External Dependencies
92 - * SE communication peripheral (platform specific)
93
94smm-gateway
95-----------
96An instance of the smm-variable service provider is built into the smm-gateway SP
97image to provide secure world backing for UEFI SMM services. The smm-gateway SP
98provides a lightweight alternative to StMM. For more information, see:
99:ref:`UEFI SMM Services`.
100
101.. list-table::
102 :widths: 1 2
103 :header-rows: 0
104
105 * - Supported Environments
106 - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
107 * - External Dependencies
108 - * | Secure storage service instance (e.g. hosted by protected-storage SP)
109 * | Crypto service instance (e.g. hosted crypto SP)
110
111env-test
112--------
113An instance of the test runner service provider is built into an SP image to
114allow test cases to be run from within the SP isolated environment. The SP
115image also includes environment and platform specific test cases to allow
116access to FF-A services and platform hardware to be tested. The test runner
117service provider is intended to be used in conjunction with a client that
118coordinates which tests to run and collects test results.
119
120.. list-table::
121 :widths: 1 2
122 :header-rows: 0
123
124 * - Supported Environments
125 - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
126 * - External Dependencies
127 - * Any hardware accessed by test cases (platform specific)
128
129--------------
130
131*Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.*
132
133SPDX-License-Identifier: BSD-3-Clause