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/attestation-of-system-components/spec.ocp
+82-60Lines changed: 82 additions & 60 deletions
Original file line number
Diff line number
Diff line change
@@ -417,7 +417,7 @@ This protocol is highly dependent on the specific technology of the platform, bu
417
417
418
418
- *Platforms **MUST** be capable of interrogating attester devices that do not communicate their capabilities before being taken out of reset, e.g., by interrogating them later in the boot cycle or by having them pre-configured as such, in the platform reference manifest.*
419
419
420
-
- *Platforms **MAY** use the message formats for GET\_CAPABILITIES and NEGOTIATE\_ALGORITHMS as described in* [Security Protocol and Data Model (SPDM) Specification](https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.0.0.pdf) or *Device Capabilities* *as described in [Project Cerberus Firmware Challenge Specification](https://github.com/opencomputeproject/Project_Olympus/blob/master/Project_Cerberus/Project%20Cerberus%20Challenge%20Protocol.pdf) .* *Where necessary, bridge components may be responsible for translating from the native bus protocol into the GET\_CAPABILITIES/ NEGOTIATE\_ALGORITHMS message formats.*
420
+
- *Platforms **MAY** use the message formats for GET\_CAPABILITIES and NEGOTIATE\_ALGORITHMS as described in* [Security Protocol and Data Model (SPDM) Specification](https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.0.0.pdf).
421
421
422
422
***NOTE from Bryan Kelly: "Replace Cerberus with GET_EAT"***
423
423
@@ -471,15 +471,26 @@ To conform to the OCP SPDM profile the following requirements must be met:
471
471
472
472
11. *Attester devices that support the SPDM standard **SHOULD** support the set of algorithms as defined in the table “Recommended Algorithms for SPDM”.*
473
473
474
-
12. *Attester devices that support the SPDM standard **MUST** support SPDM version 1.2 or higher.*
474
+
12. *Attester devices that support the SPDM standard **MUST** support SPDM version 1.3 or higher.*
475
475
476
476
13. *Attester devices that support the SPDM standard **SHOULD** support the current version.*
477
477
478
478
14. *Attestor devices **MUST** support the required commands as listed per version*
479
479
480
-
15. *Attester devices SHALL provide attestation report in either RATS EAT Format expressed as CWT (Cbor Web Token) or as SPDM evidence manifest TOC (direct measurement form) as defined by the TCG DICE Concise Evidence for SPDM Specification*
480
+
15. Attester devices MUST provide attestation evidence using one of the following methods:
481
481
482
-
16. *Attester devices that provide an IETF EAT SHALL locate the IETF EAT at SPDM measurement indexblock 0xF0*
482
+
- GET_EAT command returning an Entity Attestation Token (EAT) conforming to the OCP EAT Profile, OR
483
+
- GET_MEASUREMENTS command with the EAT located at SPDM Measurement Block 0xFD
484
+
In both cases, the EAT MUST be expressed as a CWT (CBOR Web Token) and conform to the OCP EAT Profile specification.
485
+
486
+
16. When using GET_MEASUREMENTS, attester devices SHALL locate the Entity Attestation Token at SPDM Measurement Block index 0xFD. The measurement block SHALL contain the complete EAT encoded as a CWT.
487
+
488
+
17. Platform verifiers MUST support retrieving attestation evidence through at least one of the following methods:
489
+
490
+
- GET_EAT command
491
+
- GET_MEASUREMENTS command with EAT at Measurement Block 0xFD
492
+
493
+
Platform verifiers SHOULD support both methods to maximize interoperability.
483
494
484
495
### Required Capabilities for SPDM
485
496
@@ -491,10 +502,12 @@ The following table lists the SPDM capabilities, as defined in the CAPABILITIES
Note: see <https://github.com/opencomputeproject/Security/tree/master/specifications/device-identity-provisioning> for additional requirements around GET_CSR.
515
528
516
-
### Recommended Algorithms for SPDM
517
-
518
-
Attester devices are allowed a large number of algorithm combinations under the
519
-
SPDM Specification. To improve compatibility, attester devices should follow the
520
-
guidelines in this section. The OCP SPDM Profile requires support for the following
521
-
algorithms:
522
-
523
-
***NOTE from Jeremy O'Donoghue: "I would prefer to see the requirements on interoperability moved to the verifier - it generally has lower security requirements than RoT and a more performance compute environment. For example: attester must support TPM_ALG_ECDSA_NIST_P384, TPM_ALG_SHA384, AES-256-GCM, TPM_ALG_MLDSA_65 (assuming that's what TCG eventually calls the algorithm). Verifier MAY support other algorithms."***
524
-
525
-
***Aug 26 2025: Let's refine this list, add PQC, and state that devices need to support at least one of a set. Examples:***
**Important**: Attester devices are **NOT REQUIRED** to support these additional algorithms.
572
+
Verifiers that choose to support them do so to enable interoperability with non-compliant
573
+
or legacy devices, not because compliant attesters need them.
574
+
575
+
#### Algorithm Negotiation
576
+
577
+
During SPDM NEGOTIATE_ALGORITHMS:
578
+
1. Compliant attesters **MUST** advertise all Tier 1 algorithms
579
+
2. Verifiers **SHOULD** select Tier 1 algorithms when available
580
+
3. Verifiers **SHOULD** prefer PQC algorithms (ML-DSA-87, ML-KEM-1024) over classical
581
+
algorithms (P-384, ECDH-P384) to ensure quantum resistance
582
+
4. If an attester does not support Tier 1 algorithms, it is non-compliant with this
583
+
specification, but verifiers **MAY** choose to accept it based on local policy
584
+
585
+
**Algorithm Selection Priority (Recommended):**
586
+
1. **Preferred**: ML-DSA-87 for signatures, ML-KEM-1024 for key exchange
587
+
2. **Acceptable**: secp384r1 for signatures, ECDH-P384 for key exchange (during transition)
588
+
3. **Non-compliant**: Any other algorithms (verifier discretion whether to accept)
589
+
590
+
591
+
### IETF EAT Binding for SPDM
561
592
562
593
# GET_EAT Command
563
594
@@ -620,16 +651,7 @@ For successful responses, the following structure is returned:
620
651
621
652
## EAT Token Requirements
622
653
623
-
The EATToken returned in the GET_EAT response **MUST** conform to the OCP EAT Profile specification, which includes:
624
-
625
-
1. The EAT **MUST** be encoded as a signed CWT (CBOR Web Token)
626
-
2. The EAT Profile claim (265) **MUST** be present and contain the OCP Profile OID
627
-
3. The Nonce claim (10) **MUST** be present and contain the exact nonce value from the request (matching both value and length)
628
-
4. The Measurements claim (273) **MUST** be present and contain concise evidence as defined in the OCP EAT Profile
629
-
5. The issuer claim (1) **MUST** be present to bind the EAT to the certificate chain that issued it
630
-
6. The rim-locators claim (-70001) **MAY** be present to reference CoRIM locations
631
-
632
-
**Note:** The nonce claim in the EAT response must preserve both the value and length of the nonce provided in the GET_EAT request to ensure proper freshness verification.
654
+
The device should use EAT OCP Profile as described in [@{ocp-eat-profile}]
0 commit comments