SPDM
SPDM OpenPRoT devices shall use SPDM to conduct all attestation operations both with downstream devices (as a requester) and upstream devices (as a responder.) Devices may choose to act as a requester, a responder, or both. All SPDM version references assume alignment with the most recently released versions of the spec.
OCP Attestation Spec 1.1 Alignment
OpenPRoT implementations of SPDM must align with the OCP Attestation Spec 1.1. All following sections have taken this spec into account. Please refer to that specification for details on specific requirements.
Baseline Version
OpenPRoT sets a baseline version of SPDM 1.2.
Requesters
OpenPRoT devices implementing an SPDM requester will implement support for SPDM 1.2 minimum and may implement SPDM 1.3 and up. The minimum and maximum supported SPDM versions can be changed if support for other versions is not necessary.
Responders
OpenPRoT devices implementing an SPDM responder must implement support for SPDM
1.2 or higher. Responders may only report (via GET_VERSION) a single supported
version of SPDM.
Required Commands
All requesters and responders shall implement the four (4) spec mandatory SPDM commands:
GET_VERSIONGET_CAPABILITIESNEGOTIATE_ALGORITHMSRESPOND_IF_READY
All requesters and responders shall implement the following spec optional commands:
GET_DIGESTSGET_CERTIFICATECHALLENGEGET_MEASUREMENTSGET_CSRSET_CERTIFICATECHUNK_SENDCHUNK_GET
Requesters and responders may implement the following recommended spec optional commands:
- Events
GET_SUPPORTED_EVENT_TYPESSUBSCRIBE_EVENT_TYPESSEND_EVENT
- Encapsulated requests
GET_ENCAPSULATED_REQUESTDELIVER_ENCAPSULATED_RESPONSE
GET_KEY_PAIR_INFOSET_KEY_PAIR_INFOKEY_UPDATEKEY_EXCHANGEFINISHPSK_EXCHANGEPSK_FINISH
All other spec optional commands may be implemented as the integrator sees fit for their use case.
Required Capabilities
CERT_CAP(required forGET_CERTIFICATE)CHAL_CAP(required forCHALLENGE)MEAS_CAP(required forGET_MEASUREMENT)MEAS_FRESH_CAP
Algorithms
The following cryptographic algorithms are accepted for use within OpenPRoT, but may be further constrained by hardware capabilities. At a minimum OpenPRoT hardware must support:
TPM_ALG_ECDSA_ECC_NIST_P384TPM_ALG_SHA3_384
All others are optional and may be used if supported.
- Asymmetric
TPM_ALG_ECDSA_ECC_NIST_P256TPM_ALG_ECDSA_ECC_NIST_P384EdDSA ed25519EdDSA ed448TPM_ALG_SHA_384
- Hash
TPM_ALG_SHA_256TPM_ALG_SHA_384TPM_ALG_SHA_512TPM_ALG_SHA3_256TPM_ALG_SHA3_384TPM_ALG_SHA3_512
- AEAD Cipher
AES-128-GCMAES-256-GCMCHACHA20_POLY1305
Attestation Report Format
Devices will support either RATS EAT (as CWT) or an SPDM evidence manifest TOC per the TCG DICE Concise Evidence for SPDM specification.
Measurement block 0xF0
Devices that do not provide a Measurement Manifest shall locate RATS EAT at SPDM measurement block 0xF0