|
1 | 1 | --- |
2 | 2 | # User change |
3 | | -title: "Overview of the Software Architecture" |
| 3 | +title: "Architecture overview for Arm CCA Attestation with Trustee" |
4 | 4 |
|
5 | 5 | weight: 2 # 1 is first, 2 is second, etc. |
6 | 6 |
|
7 | 7 | # Do not modify these elements |
8 | 8 | layout: "learningpathall" |
9 | 9 | --- |
10 | 10 |
|
11 | | -## The role of Attestation |
12 | | -In this Learning Path, you will learn how attestation can control the release |
13 | | -of confidential data into a confidential Linux realm for processing. |
| 11 | +## The role of attestation |
14 | 12 |
|
15 | | -The role of attestation is to assess whether the target compute environment |
16 | | -offers a provable level of confidential isolation. In this Learning Path, |
17 | | -the target compute environment is a Linux realm. The assessment of a provable |
18 | | -level of confidential isolation needs to occur before the realm can be trusted |
19 | | -to receive confidential data or algorithms. This use of attestation to judge |
20 | | -the trustworthiness of a compute environment, before allowing it to do any |
21 | | -processing, is a common practice in confidential computing. |
| 13 | +In this Learning Path, you will learn how attestation controls the release of confidential data into a confidential Linux realm for processing. The role of attestation is to assess whether the target compute environment offers a provable level of confidential isolation. In this Learning Path, |
| 14 | +the target compute environment is a Linux realm. The assessment of a provable level of confidential isolation must occur before the realm can be trusted to receive confidential data or algorithms. This use of attestation to judge the trustworthiness of a compute environment, before allowing it to do any processing, is a common practice in confidential computing. |
22 | 15 |
|
23 | | -## Understanding the key software components |
| 16 | +## Key software components |
24 | 17 |
|
25 | 18 | This Learning Path is similar to |
26 | | -[Run an end-to-end Attestation Flow with Arm CCA](/learning-paths/servers-and-cloud-computing/cca-essentials/). |
27 | | - |
28 | | -The main difference is that instead of KBS from the [Veraison](https://github.com/veraison) project you will use |
29 | | -the components implemented in the [confidential containers (CoCo)](https://github.com/confidential-containers) |
30 | | -to support the [IETF RATS model](https://datatracker.ietf.org/doc/rfc9334/) |
31 | | -(Remote ATtestation procedureS Architecture). The components include the Attestation Service (AS), |
32 | | -Key Broker Service (KBS), Reference Value Provider Service (RVPS), Attestation Agent (AA), and Confidential Data Hub (CDH). |
| 19 | +[Run an end-to-end Attestation Flow with Arm CCA](/learning-paths/servers-and-cloud-computing/cca-essentials/). The main difference is that, instead of the KBS from the [Veraison](https://github.com/veraison) project, you will use components implemented in the [Confidential Containers (CoCo) Project](https://github.com/confidential-containers) to support the [IETF RATS model](https://datatracker.ietf.org/doc/rfc9334/) (Remote ATtestation procedureS). These components include the Attestation Service (AS), Key Broker Service (KBS), Reference Value Provider Service (RVPS), Attestation Agent (AA), and Confidential Data Hub (CDH). |
33 | 20 | The AS, KBS, and RVPS components are part of the [Trustee project](https://github.com/confidential-containers/trustee), |
34 | 21 | whereas the AA and CDH are part of the [Guest Components](https://github.com/confidential-containers/guest-components) project in CoCo. |
35 | 22 |
|
36 | | -### RATS key components |
| 23 | +## RATS roles |
37 | 24 |
|
38 | | -This is a list of components used in this Learning Path: |
| 25 | +This Learning Path focuses on the following key concepts: |
39 | 26 |
|
40 | | -- `Attester` - provides Evidence, which is evaluated and appraised to decide its |
41 | | - trustworthiness (for instance, a test to see whether it’s authorized to perform some action). |
42 | | - Evidence may include configuration data, measurements, telemetry, or inferences. |
43 | | -- `Verifier` - evaluates the validity of the evidence received from the attester |
44 | | - and produces attestation results, which are sent to the Relying party. |
45 | | - Attestation results typically include information regarding the Attester, |
46 | | - while the Verifier vouches for the validity of the results. |
47 | | -- `Relying party` - depends on the validity of information originating from |
48 | | - the attester for reliably applying an action. This information can come |
49 | | - from the verifier or directly through the attester. |
| 27 | +- **Attester** – provides evidence that is evaluated to decide **Trustworthiness** (for example, whether it is authorized to perform an action). |
| 28 | +- **Evidence** can include configuration data, measurements, telemetry, or inferences. |
| 29 | +- **Verifier** – evaluates the evidence from the Attester and produces attestation results that are sent to the Relying party. The Verifier vouches for the validity of those results. |
| 30 | +- **Relying party** – depends on the validity of information from the Attester (either directly or through the Verifier) to make an access or policy decision. |
50 | 31 |
|
51 | | -### Trustee components |
| 32 | +## Trustee components |
52 | 33 |
|
53 | | -The Trustee project includes components deployed on a trusted side and used to verify |
54 | | -whether the remote workload is running in a trusted execution environment (TEE). |
55 | | -It also verifies that the remote environment uses the expected software and hardware versions. |
| 34 | +Trustee components run on the trusted side and verify whether a remote workload is executing in a trusted execution environment (TEE) and using the expected software and hardware versions. |
56 | 35 |
|
57 | | -#### Key Broker Service (KBS) |
| 36 | +## Key Broker Service (KBS) |
58 | 37 |
|
59 | | -The Key Broker Service (KBS) facilitates remote attestation and managing |
60 | | -and delivering secrets. Equating this to the RATS model, the KBS is the |
61 | | -`relying party` entity. The KBS, however, doesn’t validate the attestation evidence. |
62 | | -Instead, it uses the attestation service (AS) to verify the TEE evidence. |
| 38 | +The KBS facilitates remote attestation and manages and delivers secrets. In RATS terms, the KBS is the **Relying party**. The KBS does not validate attestation evidence itself; it relies on the Attestation Service (AS) to verify the TEE evidence. |
63 | 39 |
|
64 | | -#### Attestation Service (AS) |
| 40 | +## Attestation Service (AS) |
65 | 41 |
|
66 | | -The Attestation Service (AS) is responsible for validating the TEE evidence. |
67 | | -When mapped to the RATS model, the AS is the equivalent of the `verifier`. |
68 | | -The AS receives attestation evidence and returns an attestation token |
69 | | -containing the results of a two-step verification process. |
| 42 | +The Attestation Service (AS) validates TEE evidence. In RATS terms, the AS is the **Verifier**. The AS receives attestation evidence and returns an attestation token containing the results of a two-step verification process. |
70 | 43 |
|
71 | 44 | The following diagram shows the AS components: |
72 | 45 |
|
73 | | - |
74 | | - |
75 | | -The AS runs the following verification process: |
| 46 | + |
76 | 47 |
|
77 | | -1. Verify the formatting and the origin of the evidence - for example, checking the signature of the evidence. |
78 | | - This is accomplished by one of the platform-specific Verifier Drivers. |
79 | | -2. Evaluate the claims provided in the evidence - for example, validating that the measurements are what the |
80 | | - client expects. This is done by a Policy Engine with help from the RVPS. |
| 48 | +The AS performs this verification flow: |
81 | 49 |
|
82 | | -##### Verifier driver |
| 50 | +- **Verify format and origin of evidence** – for example, verify the evidence signature. This is handled by a platform-specific Verifier driver. |
| 51 | +- **Evaluate claims** – for example, validate that measurements match expected values. This is handled by the Policy engine, with RVPS support. |
83 | 52 |
|
84 | | -A verifier driver parses the attestation evidence provided by the hardware TEE. It performs the following tasks: |
| 53 | +## Verifier driver |
85 | 54 |
|
86 | | -1. Verifies the hardware TEE signature of the TEE quote and report provided in the evidence |
87 | | -2. Receives the evidence and organizes the status into a JSON format to be returned |
| 55 | +A Verifier driver parses the attestation evidence provided by the hardware TEE and: |
88 | 56 |
|
89 | | -In this Learning Path, the AS is configured to use an external CCA verifier. |
| 57 | +- Verifies the hardware TEE signature of the quote and report included in the evidence. |
| 58 | +- Normalizes the verified evidence into a JSON structure to be returned. |
90 | 59 |
|
91 | | -[Linaro](https://www.linaro.org) provides such an attestation verifier for use with pre-silicon Arm CCA platforms. |
92 | | -This verifier is built from the Open-Source [Veraison project](https://github.com/veraison). |
93 | | -You can learn more about Veraison and Linaro attestation verifier service in |
94 | | -[Get Started with CCA Attestation and Veraison](https://learn.arm.com/learning-paths/servers-and-cloud-computing/cca-veraison/) |
| 60 | +In this Learning Path, the AS is configured to use an external CCA Verifier. |
95 | 61 |
|
96 | | -##### Policy Engine |
| 62 | +[Linaro](https://www.linaro.org) provides an attestation Verifier for pre-silicon Arm CCA platforms. It is built from the open-source [Veraison](https://github.com/veraison) project. Learn more in |
| 63 | +[Get Started with CCA Attestation and Veraison](https://learn.arm.com/learning-paths/servers-and-cloud-computing/cca-veraison/). |
97 | 64 |
|
98 | | -The AS allows users to upload their own policies when performing evidence verification. |
99 | | -When an attestation request is received by the AS, it uses a policy ID in the request |
100 | | -to decide which policies should be evaluated. |
101 | | -The results of all policies evaluated are included in the attestation response. |
| 65 | +## Policy engine |
102 | 66 |
|
103 | | -In this Learning Path the AS attestation policy includes specific Arm CCA rules. |
| 67 | +The AS lets you upload custom policies used during evidence verification. When the AS receives an attestation request, it uses the policy ID in the request to decide which policies to evaluate. The attestation response includes the results of all evaluated policies. |
104 | 68 |
|
105 | | -#### Reference Value Provider Service (RVPS) |
| 69 | +In this Learning Path, the AS policy includes Arm CCA–specific rules. |
106 | 70 |
|
107 | | -The reference value provider service (RVPS) is a component in the AS responsible for verifying, |
108 | | -storing, and providing reference values. RVPS receives and verifies inputs from the software |
109 | | -supply chain, stores the measurement values, and generates reference value claims for the AS. |
110 | | -This operation is performed based on the evidence verified by the AS. |
| 71 | +## Reference Value Provider Service (RVPS) |
111 | 72 |
|
| 73 | +RVPS verifies, stores, and provides reference values. It receives inputs from the software supply chain, stores measurement values, and generates reference value claims for the AS, based on evidence verified by the AS. |
112 | 74 |
|
113 | | -### Guest components |
| 75 | +## Guest components |
114 | 76 |
|
115 | | -The guest components are the services/tools that run inside the realm (TEE). |
116 | | -When mapped to the RATS model, these components are the equivalent of the `Attester`. |
| 77 | +Guest components run inside the realm (TEE). In RATS terms, these components act as the **Attester**. |
117 | 78 |
|
118 | | -For simplicity instead of Attestation Agent (AA) and Confidential Data Hub (CDH) |
119 | | -you will use [KBS Client Tool](https://github.com/confidential-containers/trustee/tree/main/tools/kbs-client) |
| 79 | +For simplicity, instead of Attestation Agent (AA) and Confidential Data Hub (CDH), you will use the [KBS Client Tool](https://github.com/confidential-containers/trustee/tree/main/tools/kbs-client). |
120 | 80 |
|
121 | 81 | This is a simple client for the KBS that facilitates basic attestation flows. |
122 | | -You will run this tool inside of a realm to make requests for an attestation result token (EAR) and a secret. |
| 82 | +You will run this tool in a realm to make requests for an attestation result token (EAR) and a secret. |
123 | 83 |
|
124 | 84 | The client tool can also be used to provision the KBS/AS with resources and policies. |
125 | 85 |
|
126 | | -KBS Client connects to the KBS in order to perform attestation. To prove the trustworthiness of the environment |
127 | | -KBS Client sends the evidence (claims) from the TEE in the form of a CCA attestation token. |
128 | | -You can learn more about CCA attestation tokens in |
129 | | -[Get Started with CCA Attestation and Veraison](https://learn.arm.com/learning-paths/servers-and-cloud-computing/cca-veraison/) |
| 86 | +To prove the environment’s trustworthiness, the KBS Client sends CCA attestation evidence (a CCA attestation token) to the KBS. Learn more about CCA attestation tokens in |
| 87 | +[Get Started with CCA Attestation and Veraison](https://learn.arm.com/learning-paths/servers-and-cloud-computing/cca-veraison/). |
| 88 | + |
| 89 | +For convenience, Trustee services and the client software are packaged in Docker containers, which you can run on any suitable AArch64 or x86_64 development host. Because the client runs in a realm, it uses the Fixed Virtual Platform (FVP) and the reference software stack for Arm CCA. If you are new to running applications in realms with FVP, see |
| 90 | +[Run an application in a Realm using the Arm Confidential Computing Architecture (CCA)](/learning-paths/servers-and-cloud-computing/cca-container). |
130 | 91 |
|
131 | | -For convenience, Trustee services and the client software are packaged in |
132 | | -docker containers, which you can execute on any suitable AArch64 or x86_64 |
133 | | -development machine. Since the client software runs in a realm, it makes use |
134 | | -of the Fixed Virtual Platform (FVP) and the reference software stack for Arm CCA. |
135 | | -If you have not yet familiarized yourself with running applications in realms using |
136 | | -FVP and the reference software stack, see the |
137 | | -[Run an application in a Realm using the Arm Confidential Computing Architecture (CCA)](/learning-paths/servers-and-cloud-computing/cca-container) |
138 | | -Learning Path. |
| 92 | +When the AS receives an attestation token from the realm using the KBS, it: |
139 | 93 |
|
140 | | -When the AS receives an attestation token from the realm via KBS: |
141 | | -- it calls an external CCA verifier (the Linaro attestation verifier service) to obtain an attestation result. |
142 | | -- the external CCA verifier checks the token's cryptographic signature, |
143 | | - verifies that it denotes a confidential computing platform and provides an attestation result. |
144 | | -- it also checks the token evidences against its own attestation policies and updates attestation result status and trustworthiness vectors. |
| 94 | +- Calls an external CCA Verifier (the Linaro attestation Verifier service) to obtain an attestation result. |
| 95 | +- Checks the token’s cryptographic signature and confirms that it represents a confidential computing platform. |
| 96 | +- Evaluates evidence in the token against its policies and updates the attestation result and trustworthiness vectors. |
145 | 97 |
|
146 | | -When asked for a resource the KBS uses the attestation result to decide whether to release the secrets into the realm for processing. |
| 98 | +When a resource is requested, the KBS uses the attestation result to decide whether to release secrets to the realm for processing. |
147 | 99 |
|
148 | | -Figure 1 demonstrates the software architecture that you will construct to run the attestation example. |
| 100 | +This diagram shows the software architecture you will construct to run the attestation example: |
149 | 101 |
|
150 | | - |
| 102 | + |
151 | 103 |
|
152 | | -You can now proceed to the next section to run the end-to-end attestation example with the software components and architecture as described here. |
| 104 | +Proceed to the next section to run the end-to-end attestation example using the components and architecture described here. |
0 commit comments