Skip to content

Commit 17b269e

Browse files
Add PSA Extensions
Signed-off-by: Yogesh Deshpande <[email protected]>
1 parent d8dd39d commit 17b269e

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed

musings/psa-extension.md

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# INTRODUCTION
2+
3+
This document describes how the existing ARM PSA profile can be extended
4+
to incorporate specific requirement of the user applications to support
5+
user data attestation.
6+
7+
Throughout the document, RATS Passport Based Model is used.
8+
9+
## Purpose
10+
11+
The document solves two main purpose.
12+
13+
* Describe a procedure that allows Client Applications to bind application
14+
15+
provided "user data" to the ARM PSA Attestation Context.
16+
17+
* It provides client applications enough details that enable them to build a binding
18+
19+
layer beneath their applications which undertake full Passport based Attestation Protocol
20+
21+
with an Attestation Verification Service, such as Veraison and return an Attestation Result
22+
23+
as a Passport.
24+
25+
### BACKGROUND
26+
27+
The native ARM PSA Platform API as documented [here](https://arm-software.github.io/psa-api/attestation/1.0/IHI0085-PSA_Certified_Attestation_API-1.0.3.pdf)
28+
allows a client to request an Attestation Evidence (claims pertaining to the platform)
29+
30+
from the underlying platform by passing the "Freshness Parameter" known as "nonce"
31+
32+
to get the Attesation token which is known as Evidence in the RATS protocol.
33+
34+
### Extended PSA Evidence
35+
36+
In order to bind the client supplied "user data" to the PSA Evidence the
37+
38+
PSA Evidence is augmented. The CDDL definition of the Augmented Evidence is as under:
39+
40+
extendedPsaEvidence = {
41+
42+
"utoken" => UCCS-UAT,
43+
44+
"pat" => PSA-token
45+
46+
}
47+
48+
UCCS-UAT = <TBD601>({
49+
50+
&(eat_nonce: 10) => bstr .size (8..64) ; received freshness parameter from Verification Service
51+
52+
&(data: -7000) => bstr ; Supplied user data from the client
53+
54+
&(alg: -7001) => txt ; The algorithm used to hash the utoken
55+
56+
})
57+
58+
* Details of the extendedPSAEvidence
59+
60+
1. `pat`: An ARM PSA Attestation token as define in [here](https://datatracker.ietf.org/doc/draft-tschofenig-rats-psa-token/). Note that this token represents the entire credential issued by the PSA Root of Trust
61+
62+
2. `utoken` : A sidecar token used to link the application supplied user data to the PSA Platform token
63+
64+
* Cryptographic linkage of "utoken" with "pat"
65+
66+
In order to cryptographically link "utoken" with "pat", the sequence to be followed is as under:
67+
68+
Upon receipt of "user data" from client application,
69+
70+
a. The binding layer initiates a Session with the "Attestation Verification Service" and receives
71+
72+
a "nonce" from the Service. The session intiation details can be found [here](https://github.com/veraison/docs/tree/main/api/challenge-response#challengeresponse)
73+
74+
b. The binding layer encodes a "utoken" as a CBOR data.
75+
76+
c. The encoded "utoken" is hashed using a suitable hash algorithm as detailed in the utoken.
77+
78+
d. The Hash("utoken") is used as a "challenge parameter" to obtain the `pat` from the underlying PSA platform.
79+
80+
* CBOR data produced by encoding bytes .cbor extendedPsaEvidence is used as a attestation token that is sent to Verification Service (Veraison) to obtain the Attestation Results.
81+
82+
* A new mediaType defined, as `application/eat-collection; profile=http://arm.com/psa-extension/1.0.0`
83+
will be used to exchange this Evidence. This needs to be set in ContentType when submitting Evidence.
84+
85+
The exact steps are detailed [here](https://github.com/veraison/docs/tree/main/api/challenge-response)
86+
87+
88+
### Enhancements to Veraison
89+
In order to support the extended PSA evidence Veraison Verification will be enhanced to:
90+
91+
1. Support new Media type, i.e. "application/eat-collection; profile=http://arm.com/psa-extension/1.0.0"
92+
93+
2. Veraison will support decoding of the extended PSA Evidence.
94+
95+
3. A new Verification Plugin will be added to support Verification based on
96+
the new attestation scheme for psa extension
97+
98+
4. A new Veraison extension will be added to the Eat Attestation Result[EAR](https://github.com/veraison/ear)to support setting the user data received from the Extended PSA Evidence, upon successful verification of the received Evidence

0 commit comments

Comments
 (0)