You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: specifications/ietf-eat-profile/spec.ocp
+90-12Lines changed: 90 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -154,20 +154,99 @@ in the unsigned section of the COSE_Sign1 header.
154
154
## CWT Claim Set
155
155
156
156
The CWT claim set is intentionally minimalistic, serving primarily as an
157
-
integrity-protected wrapper for concise evidence.
157
+
integrity-protected wrapper for concise evidence. The claims are divided into
158
+
mandatory and optional categories to balance attestation requirements with
159
+
implementation flexibility.
158
160
159
-
1. **EAT Profile**
161
+
**Claim Ordering**: To ensure consistent CBOR serialization and maximize
162
+
interoperability across different implementations, **all claims MUST**
163
+
be reported following the CBOR deterministic encoding requirements as specified
164
+
in [@{ietf-rfc8949}].
165
+
Specifically, the keys in the CWT map **MUST** be sorted in the bytewise
166
+
lexicographic order of their deterministic encodings. This ordering convention
167
+
applies to mandatory claims, optional claims, and private claims when present.
168
+
169
+
**Mandatory Claims (1-6)**: These claims are **REQUIRED** for all attestations
170
+
and provide the minimum necessary information for verifier appraisal policies:
171
+
172
+
1. **issuer** (claim key: 1, encoded as 0x01)
173
+
* 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 (AK) Certificate.
174
+
175
+
2. **cti** (claim key: 7, encoded as 0x07)
176
+
* This claim is used by the attester to determine the uniqueness of the token. Refer to [@{ietf-rfc8392}] for acceptable values for this claim
177
+
178
+
3. **Nonce** (claim key: 10, encoded as 0x0a)
179
+
* This claim is used by the attester to ensure the freshness of the response. Refer to [@{ietf-rfc9711}] for acceptable values for this claim
180
+
181
+
4. **dbgstat** (claim key: 263, encoded as 0x190107)
182
+
* 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
183
+
184
+
5. **EAT Profile** (claim key: 265, encoded as 0x190109)
160
185
* 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**
161
-
2. **issuer**
162
-
* This claim is optionally used by the attester to bind the EAT to the certificate chain that issued it. If present, **SHALL** match the SUBJECT Common Name of the Attestation Key (AK) Certificate.
163
-
3. **Nonce**
164
-
* This claim is used by the attester to ensure the freshness of the response. It **MUST** be present and **SHALL** be a string or an array of strings. It **SHALL** contain as minimum the nonce value passed by the requester.
165
-
4. **Measurements**
166
-
* 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” using the appropriate IANA media type.
167
-
5. **rim-locators**
168
-
* This claim is used by the attester to point the verifier to the rim repository. If present, **SHALL** be an array of corim-locator-map (as defined by the IETF CoRIM Draft).
169
186
170
-
The cwt-eat statement is defined as follows:
187
+
6. **Measurements** (claim key: 273, encoded as 0x190111)
188
+
* 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. The serialized concise-evidence **SHALL NOT** exceed 128kB in size.
189
+
190
+
**Optional Claims (7-14)**: These claims are **OPTIONAL** and provide additional
191
+
platform information that may be useful for audit purposes but are not strictly
192
+
necessary for appraisal policies. These claims are typically non-verifiable and
193
+
serve informational purposes:
194
+
195
+
7. **ueid** (claim key: 256, encoded as 0x190100)
196
+
* This claim is used by the attester to identify the attester. If present, refer to [@{ietf-rfc9711}] for acceptable values for this claim
197
+
198
+
8. **oemid** (claim key: 258, encoded as 0x190102)
199
+
* This claim is used by the attester to identify the Original Equipment Manufacturer (OEM) of the hardware. If present, refer to [@{ietf-rfc9711}] for acceptable values for this claim
200
+
201
+
9. **hwmodel** (claim key: 259, encoded as 0x190103)
202
+
* This claim is used by the attester to differentiate hardware models, products, and variants manufactured by a particular OEM. If present, refer to [@{ietf-rfc9711}] for acceptable values for this claim
203
+
204
+
10. **uptime** (claim key: 261, encoded as 0x190105)
205
+
* This claim is used by the attester to indicate the number of seconds elapsed since boot. If present, refer to [@{ietf-rfc9711}] for acceptable values for this claim
206
+
207
+
11. **bootcount** (claim key: 267, encoded as 0x19010b)
208
+
* This claim is used by the attester to indicate the number of times the attester has booted. If present, refer to [@{ietf-rfc9711}] for acceptable values for this claim
209
+
210
+
12. **bootseed** (claim key: 268, encoded as 0x19010c)
211
+
* This claim is used by the attester to differentiate boot sessions. If present, refer to [@{ietf-rfc9711}] for acceptable values for this claim
212
+
213
+
13. **dloas** (claim key: 269, encoded as 0x19010d)
214
+
* This claim is used by the attester to point the verifier to the endorsement repository (one example, OCP SAFE). If present, refer to [@{ietf-rfc9711}] for the claim structure.
215
+
216
+
14. **rim-locators** (claim key: -70001, encoded as 0x3a00011170)
217
+
* This claim is used by the attester to point the verifier to the rim repository. If present, **SHALL** be an array of corim-locator-map (refer to [@{ietf-rats-corim}]).
218
+
219
+
220
+
**Private Claims**: In addition to the standard claims defined above, this
221
+
profile allows for up to 5 implementor-specific private claims. These claims
222
+
are **OPTIONAL** and **MAY** be included to address vendor-specific requirements
223
+
or unique platform characteristics. Private claims **MUST** use claim keys less
224
+
than -65536 per RFC 8392. When present, private claims follow the deterministic
225
+
encoding order and appear after all standard claims. Each private claim **SHOULD**
226
+
be limited to 100 bytes in size to ensure efficient transmission and processing.
227
+
228
+
The following private claim keys are reserved for implementor use:
**Size Limitations**: To maintain efficiency and interoperability, the following
236
+
size constraints apply:
237
+
238
+
* The complete CWT token (including the certificate chain in the unprotected header) **SHALL NOT** exceed 64kB. This limitation aligns with the SPDM Measurement block size limit, as most OCP Attesters are expected to rely on SPDM for EAT conveyance.
239
+
* Each vendor-specific private claim **SHOULD NOT** exceed 100 bytes
240
+
* Each URI value in any claim **SHOULD NOT** exceed 100 bytes
241
+
* Each text string value in any claim **SHOULD NOT** exceed 100 bytes
242
+
243
+
**Appraisal Policy Considerations**: For verifier appraisal policies, the
244
+
mandatory claims (1-6) **SHALL** be sufficient to establish the security
245
+
posture of the attesting platform. Optional claims provide supplementary
246
+
information that enhances visibility into platform state and configuration but
247
+
are not critical for basic attestation verification. Verifiers **MAY** choose
248
+
to incorporate optional claims into their policies based on specific security
249
+
requirements or audit needs.
171
250
172
251
## CWT Integrity Protection
173
252
@@ -214,7 +293,6 @@ Each Target Environment **SHOULD** comprehensively describe three key components
214
293
* Vendor ID
215
294
* Product ID
216
295
* Digest of FW journey to reflect impactless update since last cold reboot
217
-
* List of FW version since last cold reboot
218
296
* Flags Attributes that indicate specific firmware states or configurations like debug mode or production mode, anti-roll back enable or disable
219
297
220
298
The table below maps the above entries with the reference-triple dictionary structure:
0 commit comments