Skip to content

Commit bf1f60a

Browse files
authored
EAT: Move issuer / cti claims to Optional, and assign an OID to the p… (#80)
* EAT: Move issuer / cti claims to Optional, and assign an OID to the profile Signed-off-by: Fabrizio Damato <[email protected]> * EAT: Changed the Scope to Full Profile Signed-off-by: Fabrizio Damato <[email protected]> --------- Signed-off-by: Fabrizio Damato <[email protected]>
1 parent 3b2e2f8 commit bf1f60a

File tree

2 files changed

+39
-31
lines changed

2 files changed

+39
-31
lines changed

specifications/ietf-eat-profile/cddl/ietf_eat_ocp_profile.cddl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,26 @@
11
cwt-eat = {
22
; Mandatory Claims
33

4-
; Issuer claim is StringOrURI (tstr) (Mandatory)
5-
&(iss : 1) => tstr
6-
7-
; CTI claim for token uniqueness (Mandatory)
8-
&(cti : 7) => bstr .size (8..64)
9-
104
; Nonce claim is nonce-type = bstr .size (8..64) (Mandatory)
115
&(Nonce : 10) => bstr .size (8..64)
126

137
; Debug status claim (Mandatory) // dbgstat-type is defined in https://datatracker.ietf.org/doc/rfc9711/
148
&(dbgstat : 263) => dbgstat-type
159

1610
; The EAT Profile for OCP OID (Mandatory) // eat-profile is defined in https://datatracker.ietf.org/doc/rfc9711/
17-
&(EAT Profile : 265 ) => ~oid ; TODO: OCP Security to assign a value - note: `~` strips CBOR tag #6.111(oid) from `oid`
11+
&(EAT Profile : 265 ) => ~oid ; 1.3.6.1.4.1.42623.1.3 - note: `~` strips CBOR tag #6.111(oid) from `oid`
1812

1913
; EAT measurements (Mandatory)
2014
&(Measurements : 273) => measurements-type
2115

2216
; Optional Claims
2317

24-
; CoRIM Locator Map (Optional) // corim-locator-map is defined in https://datatracker.ietf.org/doc/draft-ietf-rats-corim/
25-
? &(rim-locators : -70001) => [ + corim-locator-map]
26-
27-
; DLOA claim (Optional) // dloa-type is defined in https://datatracker.ietf.org/doc/rfc9711/
28-
? &(dloas : 269) => [ + dloa-type ]
18+
; Issuer claim is StringOrURI (tstr) (Optional)
19+
&(iss : 1) => tstr
2920

21+
; CTI claim for token uniqueness (Optional)
22+
&(cti : 7) => bstr .size (8..64)
23+
3024
; UEID claim (Optional)
3125
? &(ueid : 256) => bstr .size (7..33)
3226

@@ -48,6 +42,12 @@ cwt-eat = {
4842
; Boot seed claim (Optional)
4943
? &(bootseed : 268) => bstr .size (32..64)
5044

45+
; DLOA claim (Optional) // dloa-type is defined in https://datatracker.ietf.org/doc/rfc9711/
46+
? &(dloas : 269) => [ + dloa-type ]
47+
48+
; CoRIM Locator Map (Optional) // corim-locator-map is defined in https://datatracker.ietf.org/doc/draft-ietf-rats-corim/
49+
? &(rim-locators : -70001) => [ + corim-locator-map]
50+
5151
; Private Claims (up to 5, must be < -65536 per RFC 8392)
5252
* $$private-claims => any
5353
}
@@ -66,9 +66,9 @@ measurements-format = [
6666
]
6767
coap-content-format = uint .le 65535
6868

69-
signed-cwt = #6.18(COSE-Sign1-concise-evidence)
69+
signed-cwt = #6.18(COSE-Sign1-cwt-eat)
7070

71-
COSE-Sign1-concise-evidence = [
71+
COSE-Sign1-cwt-eat = [
7272
protected: bstr .cbor protected-ce-header-map
7373
unprotected: unprotected-ce-header-map
7474
payload: bstr .cbor cwt-eat

specifications/ietf-eat-profile/spec.ocp

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ The Contributors of this Specification would like to acknowledge the following:
3838
- Jason Young (Google)
3939
- Jeff Andersen (Google)
4040
- Ned Smith (Intel)
41+
- Parvathi Bhogaraju (Microsoft)
4142
- Roksana Golizadeh Mojarad (Microsoft)
4243
- Raghu Krishnamurthy (NVIDIA)
4344
- Steven Bellock (NVIDIA)
@@ -90,6 +91,13 @@ accelerators. By providing a unified approach, the specification aims to
9091
simplify and streamline the attestation and verification process within complex
9192
and heterogeneous environments.
9293

94+
## Profile Identifier
95+
96+
**OID: 1.3.6.1.4.1.42623.1.3**
97+
98+
This Object Identifier (OID) uniquely identifies this OCP Profile for IETF Entity Attestation Token. The OID **MUST** be included in the **eat_profile** claim (claim key 265, encoded as `0x190109`) within every CWT that conforms to this specification.
99+
100+
93101
## Terms and Definitions
94102

95103
- **CWT**: CBOR Web Token
@@ -126,8 +134,8 @@ accommodate.
126134
## Scope
127135

128136
This profile defines the evidence format for an Attester Endpoint Application.
129-
With respect to RFC 9711, it is a partial profile, as it allows the integrator
130-
to choose the algorithm to use for signing the statement. It is application
137+
With respect to RFC 9711, it is a full profile, as it specifies the mandatory
138+
cryptographic algorithm that must be used for signing the statement. It is application
131139
layer agnostic, supporting implementations such as an SPDM Responder or any
132140
other custom solution. The profile focuses solely on the evidence related to
133141
the claims gathered by the Attester Application. Consequently, it does not
@@ -162,33 +170,33 @@ Specifically, the keys in the CWT map **MUST** be sorted in the bytewise
162170
lexicographic order of their deterministic encodings. This ordering convention
163171
applies to mandatory claims, optional claims, and private claims when present.
164172

165-
**Mandatory Claims (1-6)**: These claims are **REQUIRED** for all attestations
173+
**Mandatory Claims (1-4)**: These claims are **REQUIRED** for all attestations
166174
and provide the minimum necessary information for verifier appraisal policies. The verifier
167175
can expect at a minimum these claims in a compliant attestation:
168176

169-
1. **issuer** (claim key: 1, encoded as 0x01)
170-
* This claim is used by the attester to bind the EAT to the certificate chain that issued it. It **SHALL** match the SUBJECT Common Name of the Attestation Key Certificate.
171-
172-
2. **cti** (claim key: 7, encoded as 0x07)
173-
* This claim is used by the attester to establish uniqueness of the token. Refer to [@{ietf-rfc8392}] for acceptable values for this claim
174-
175-
3. **Nonce** (claim key: 10, encoded as 0x0a)
177+
1. **Nonce** (claim key: 10, encoded as 0x0a)
176178
* This claim is used by the attester to ensure the freshness of the response. Refer to [@{ietf-rfc9711}] for acceptable values for this claim
177179

178-
4. **dbgstat** (claim key: 263, encoded as 0x190107)
180+
2. **dbgstat** (claim key: 263, encoded as 0x190107)
179181
* This claim is used by the attester to determine whether the attester is in Debug mode. Refer to [@{ietf-rfc9711}] for acceptable values for this claim
180182

181-
5. **EAT Profile** (claim key: 265, encoded as 0x190109)
182-
* This claim is used by the attester to identify the profile. It **MUST** be present and **SHALL** contain the OID assigned to the OCP Profile. **TODO: OCP to assign OID Value**
183+
3. **EAT Profile** (claim key: 265, encoded as 0x190109)
184+
* This claim is used by the attester to identify the profile. It **MUST** be present and **SHALL** contain the OID `1.3.6.1.4.1.42623.1.3` assigned to the OCP Profile.
183185

184-
6. **Measurements** (claim key: 273, encoded as 0x190111)
186+
4. **Measurements** (claim key: 273, encoded as 0x190111)
185187
* This claim is used by the attester to present the target environment claims that verifier will consume for the appraisal policy. It **MUST** be present and **SHALL** encapsulate a "concise-evidence" as a serialized CBOR byte string using the appropriate IANA media type.
186188

187-
**Optional Claims (7-14)**: These claims are **OPTIONAL** and provide additional
189+
**Optional Claims (5-15)**: These claims are **OPTIONAL** and provide additional
188190
platform information that may be useful for audit purposes but are not strictly
189191
necessary for appraisal policies. These claims are typically non-verifiable and
190192
serve informational purposes:
191193

194+
5. **issuer** (claim key: 1, encoded as 0x01)
195+
* This claim is used by the attester to bind the EAT to the certificate chain that issued it. It **SHALL** match the SUBJECT Common Name of the Attestation Key Certificate.
196+
197+
6. **cti** (claim key: 7, encoded as 0x07)
198+
* This claim is used by the attester to establish uniqueness of the token. Refer to [@{ietf-rfc8392}] for acceptable values for this claim
199+
192200
7. **ueid** (claim key: 256, encoded as 0x190100)
193201
* This claim is used by the attester to identify the attester. If present, refer to [@{ietf-rfc9711}] for acceptable values for this claim
194202

@@ -241,7 +249,7 @@ size constraints apply:
241249
* Each text string value in any claim **SHOULD NOT** exceed 100 bytes
242250

243251
**Appraisal Policy Considerations**: For verifier appraisal policies, the
244-
mandatory claims (1-6) **SHALL** be sufficient to establish the security
252+
mandatory claims (1-4) **SHALL** be sufficient to establish the security
245253
posture of the attesting platform. Optional claims provide supplementary
246254
information that enhances visibility into platform state and configuration but
247255
are not critical for basic attestation verification. Verifiers **MAY** choose
@@ -287,7 +295,7 @@ algorithm for the COSE_Sign1 signature:
287295
* **Signature Size**: 96 bytes
288296
* **Public Key Size**: 97 bytes (uncompressed point)
289297
* **Private Key Size**: 48 bytes
290-
* **Profile OID**: **TODO: OCP to assign OID for ECDSA-P384 profile**
298+
* **Profile OID**: 1.3.6.1.4.1.42623.1.3
291299

292300
### Size Implications
293301

0 commit comments

Comments
 (0)