<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-poirier-rats-eat-da-04" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="EAT DA">An EAT Profile for Device Attestation</title>
    <seriesInfo name="Internet-Draft" value="draft-poirier-rats-eat-da-04"/>
    <author fullname="Mathieu Poirier">
      <organization>Linaro</organization>
      <address>
        <email>mathieu.poirier@linaro.org</email>
      </address>
    </author>
    <author fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <date year="2025" month="November" day="12"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>attestation</keyword>
    <keyword>device assignment</keyword>
    <keyword>EAT</keyword>
    <abstract>
      <?line 54?>

<t>In confidential computing, device assignment (DA) is the method by which a device (e.g., network adapter, GPU), whether on-chip or behind a PCIe Root Port, is assigned to a Trusted Virtual Machine (TVM).
For the TVM to trust the device, the device must provide the TVM with attestation Evidence confirming its identity and the state of its firmware and configuration.</t>
      <t>Since Evidence claims can be consumed by 3rd party attestation services external to the TVM, there is a need to standardise the representation of Evidence to ensure interoperability.
This document defines an attestation Evidence format for DA as an EAT (Entity Attestation Token) profile.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rats-device-attestation.github.io/draft-poirier-rats-eat-da/draft-poirier-rats-eat-da.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-poirier-rats-eat-da/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Remote ATtestation ProcedureS Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rats-device-attestation/draft-poirier-rats-eat-da"/>.</t>
    </note>
  </front>
  <middle>
    <?line 62?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In confidential computing, device assignment (DA) is the method by which a device (e.g., network adapter, GPU), whether on-chip or behind a PCIe Root Port, is assigned to a Trusted Virtual Machine (TVM).
Most confidential computing platforms (e.g., Arm CCA, AMD SEV-SNP, Intel TDX) provide DA capabilities.
Such capabilities prevent agents which are untrusted by the TVM (including other TVMs and the host hypervisor) from accessing or controlling a device that has been assigned to the TVM.
This includes, for example, protection of device MMIO interfaces and device caches.
From a trust perspective, DA allows a device to be included in the TVM's Trusted Computing Base (TCB).
For the TVM to trust the device, the device must provide the TVM with attestation Evidence confirming its identity and the state of its firmware and configuration.</t>
      <t>This document defines an attestation Evidence format for DA as an EAT <xref target="RFC9711"/> profile.
The format is designed to be generic, extensible and architecture agnostic.
Ongoing work on DA concentrates on PCIe devices that support the SPDM protocol <xref target="SPDM"/>, but other bus architecture and protocols are expected to be supported as the technology gains wider adoption.
As such we focus on the formalization of an Evidence format for SPDM compliant devices while leaving room for the definition of other Evidence format such as CXL and CHI.
This list is by no means exhaustive and is expected to expand.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="device-attestation-claims">
      <name>Device Attestation Claims</name>
      <t>The Device Attestation claim is the encompassing envelope for the individual device claims to be presented.
It can be used as a standalone entity but typically enclosed in a wider platform specific attestation token.
The Device attestation claim consists of an EAT profile identifier, a nonce and an EAT submodule (<xref section="4.2.18" sectionFormat="of" target="RFC9711"/>) that contains any number of individual device claims.
Each individual device claim is the combination of a device name and a standard claims format based on the bus or protocol the device supports.
The syntax of the device name depends on the type of bus or protocol used.
Each name consists of two parts joined by a semicolon: a namespace and a bus-specific name.
See <xref target="spdm-submod-name"/> for SPDM devices, and <xref target="pcie-legacy-submod-name"/> for legacy PCIe devices.
As previously mentioned, this draft currently defines the claims set for SPDM compliant devices and PCIe legacy devices that do not support the SPDM protocol.
Careful condideration was also given to the overall design in order to leave room for future expansion.</t>
      <sourcecode type="cddl"><![CDATA[
da-token = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device#1.0.0"
  &(eat_nonce: 10) => bytes .size 64 ; same as realm nonce
  &(eat_submods: 266) => {
    + device-name => $device-claims-set
  }
}

device-name = text .regexp "(legacy-pcie|spdm):.+"

$device-claims-set /= spdm-claims
$device-claims-set /= cxl-claims
$device-claims-set /= chi-claims
$device-claims-set /= pcie-legacy-claims
]]></sourcecode>
      <section anchor="spdm-claims">
        <name>SPDM Claims</name>
        <t>A SPDM claim instance is expected to be present for each SPDM compatible device to be attested.
Each instance consists of either a measurements section or a certificates section, or both.
Optionally, the Negotiated State preamble (version, capabilities and algorithms) bytes can be included to present the full negotiated state between the SPDM requester and responder.</t>
        <sourcecode type="cddl"><![CDATA[
spdm-claims = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device-spdm#1.0.0"
  spdm-artefacts
  ? &(vca: 3804) => bytes
}

spdm-artefacts //= (
  &(measurements: 3802) => spdm-measurements
  &(certificates: 3803) => spdm-certificates
)

spdm-artefacts //= (
  &(measurements: 3802) => spdm-measurements
)

spdm-artefacts //= (
  &(certificates: 3803) => spdm-certificates
)
]]></sourcecode>
        <section anchor="spdm-measurements">
          <name>Measurements Claim</name>
          <t>There can be up to 239 measurements per device with the entire measurement log optionally signed by the certificate populated in one of the 8 certificate slots.
It should be noted that measurements formalized herein follow the DMTF measurement specification.</t>
          <sourcecode type="cddl"><![CDATA[
spdm-measurements = {
  + block-id => spdm-measurement
  ? "signature" => spdm-measurement-blocks-signature
}

block-id = 1..239
]]></sourcecode>
          <section anchor="measurement">
            <name>Measurement</name>
            <t>SPDM measurements start with a component type that reflects one of the 10 categories defined by the SPDM specification.
Following is the measurement itself represented by either a raw bitstream or a digest.
The size of the digest value is derived from the measurement hash algorithm conveyed by the SPDM ALGORITHMS message response.</t>
            <sourcecode type="cddl"><![CDATA[
spdm-measurement = {
  &(component-type: 1) => component-type
  measurement
}

measurement //= ( &(digest-measurement: 2) => digest-measurement )
measurement //= ( &(raw-measurement: 3) => raw-measurement )

component-type /= &(immutable-rom: 0)
component-type /= &(mutable-firmware: 1)
component-type /= &(hardware-config: 2)
component-type /= &(firmware-config: 3)
component-type /= &(freeform-measurement-manifest: 4)
component-type /= &(device-mode: 5)
component-type /= &(mutable-firmware-version: 6)
component-type /= &(mutable-firmware-svn: 7)
component-type /= &(hash-extend-measurement: 8)
component-type /= &(informational: 9)
component-type /= &(structured-measurement-manifest: 10)

raw-measurement = bytes
digest-measurement = digest

digest = [
  alg: uint / text
  val: bytes
]
]]></sourcecode>
          </section>
          <section anchor="measurements-signature">
            <name>Measurements Signature</name>
            <t>SPDM compliant devices can optionally support the capability to sign measurements.
Included in the measurement claim signature are all the elements needed by a third party entity to reconstruct the original measurement log signed by the device.
Those elements include L1 (see CDDL below), the combined SPDM prefix, the hash algorithm used to generate a digest of the measurement log and nonces provided by the requester and responder.
The slot number of the leaf certificate used to sign the measurement log is also provided.</t>
            <sourcecode type="cddl"><![CDATA[
;
; What follows is based on SPDM v1.3.2 (DSP0274_1.3.2.pdf)
;

;
; Algorithms currently supported by SPDM.
; See "MeasurementHashAlgo", table 21, page 79.
;
hash-algorithm-type /= &(tpm_alg_sha_256: 0)
hash-algorithm-type /= &(tpm_alg_sha_384: 2)
hash-algorithm-type /= &(tpm_alg_sha_512: 4)
hash-algorithm-type /= &(tpm_alg_sha3_256: 8)
hash-algorithm-type /= &(tpm_alg_sha3_384: 16)
hash-algorithm-type /= &(tpm_alg_sha3_512: 32)
hash-algorithm-type /= &(tpm_alg_sm3_256: 64)

;
; See signature generation and verification algorithms for
; MEASUREMENTS messages on page 126.
;
; L1 = Concatenate(VCA, GET_MEASUREMENTS_REQUEST1,
;               MEASUREMENTS_RESPONSE1, ...,
;               GET_MEASUREMENTS_REQUESTn-1,
;               MEASUREMENTS_RESPONSEn-1,
;               GET_MEASUREMENTS_REQUESTn, MEASUREMENTS_RESPONSEn)
;
spdm-measurement-blocks-signature = {
   &(slot: 1) => 0..7, ; Slot of the certificate chain used to
                       ; authenticate the measurement.  Default
                       ; should be 0.
   &(requester-nonce: 2) => bytes .size 32,
   &(responder-nonce: 3) => bytes .size 32,
   &(combined-spdm-prefix: 4) => bytes .size 100,
   &(IL1: 5) => bytes, ; L1 (see comment above)
   &(base-hash-algo: 6) => hash-algorithm-type,
   &(signature: 7) => bytes
}
]]></sourcecode>
          </section>
        </section>
        <section anchor="spdm-certificates">
          <name>Certificate Claims</name>
          <t>According to the specification, SPDM compliant devices should support at most 8 slots, with slot 0 populated by default.
Slot 0 <bcp14>SHALL</bcp14> contain a certificate chain that follows the Device certificate model or the Alias certificate model.
Regardless of the certificate model used, a certificate chain comprises one or more DER-encoded X.509 v3 certificates <xref target="RFC5280"/>.
The certificates <bcp14>MUST</bcp14> be concatenated with no intermediate padding.</t>
          <sourcecode type="cddl"><![CDATA[
spdm-certificates = {
  default-cert-slot => cert-chain
  ? aux-cert-slots => cert-chain
}

; ASN.1 DER-encoded certificates concatenated with no intermediate
; padding.
cert-chain = bytes

default-cert-slot = 0
aux-cert-slots = 1..7
]]></sourcecode>
        </section>
        <section anchor="spdm-vca">
          <name>Negotiated State Preamble (Version, Capabilities and Algorithms)</name>
          <t>The Negotiated State Preamble (i.e., <tt>vca</tt>) claim contains the concatenation of messages GET_VERSION, VERSION, GET_CAPABILITIES, CAPABILITIES, NEGOTIATE_ALGORITHMS, and ALGORITHMS last exchanged between the SPDM Requester and Responder.</t>
        </section>
        <section anchor="spdm-submod-name">
          <name>Submodule Naming</name>
          <t>The namespace used for SPDM submodules is "spdm".</t>
          <t>The name associated with an SPDM submodule is extracted from the leaf certificate of the relevant device.</t>
          <ul spacing="normal">
            <li>
              <t>If the leaf certificate contains a Subject Alternative Name of type DMTFOtherName, the submodule name is the value contained in <tt>ub-DMTF-device-info</tt>.
For example: "spdm:ACME:WIDGET:0123456789".</t>
            </li>
            <li>
              <t>Otherwise, the submod name is the string representation of the certificate Subject, as described in <xref target="RFC4514"/>.
For example: "spdm:C=CA,O=ACME,OU=Widget,CN=0123456789".</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="pcie-legacy-device">
        <name>PCIe Legacy Device Claims</name>
        <t>The definition of a device claims set for PCIe legacy devices that do not implement the extensions needed to attest for their provenance and configuration is provided, making it is possible to keep using current assets as secures ones are being provisioned.
This legacy device claims set simply mirrors the type 0/1 common registers of the PCIe configuration space, mandating only that the vendor and device identification code be provided.
Other fields of the configuration space header may optionally be included should they add value.
A binary format of the PCIe configuration space is made available for processing by existing PCIe configuration space tools.
Implementers may optionally choose to include both text and binary versions should there be a use case to support this representation.</t>
        <sourcecode type="cddl"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

pcie-legacy-claims = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device-pcie-legacy#1.0\
                                                                  .0"
  pcie-legacy-artefacts
  ? $$pcie-legacy-claim-extension
}


pcie-legacy-artefacts //= (
  &(artefacts-text: 3805) => pcie-type-0-1-config-space-text
  &(artefacts-bytes: 3806) => pcie-type-0-1-config-space-bytes
)

pcie-legacy-artefacts //= (
  &(artefacts-text: 3805) => pcie-type-0-1-config-space-text
)

pcie-legacy-artefacts //= (
  &(artefacts-bytes: 3806) => pcie-type-0-1-config-space-bytes
)

pcie-type-0-1-config-space-bytes = bytes .size 256

pcie-type-0-1-config-space-text = {
  &(vendorID: 1) => bytes .size 2
  &(deviceID: 2) => bytes .size 2
  ? &(command: 3) => bytes .size 2
  ? &(status: 4) => bytes .size 2
  ? &(revisionID: 5) => bytes .size 1
  ? &(classCode: 6) => bytes .size 3
  ? &(cacheLineSize: 7) => bytes .size 1
  ? &(latencyTimer: 8) => bytes .size 1
  ? &(headerType: 9) => bytes .size 1
  ? &(BITS: 10) => bytes .size 1
}
]]></sourcecode>
        <section anchor="pcie-legacy-submod-name">
          <name>Submodule Naming</name>
          <t>The namespace used for legacy PCIe submodules is "legacy-pcie".</t>
          <t>The name is any arbitrary string chosen by the implementation.
For example, "legacy-pcie:0000:01:02.0" where "0000" is the domain, "01" the PCI bus id, "02" the device on the bus and "0" the device function.</t>
        </section>
      </section>
    </section>
    <section anchor="collated-cddl">
      <name>Collated CDDL</name>
      <sourcecode type="cddl"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

da-token = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device#1.0.0",
  &(eat_nonce: 10) => bytes .size 64,
  &(eat_submods: 266) => {+ device-name => $device-claims-set},
}
device-name = text .regexp "(legacy-pcie|spdm):.+"
$device-claims-set /= spdm-claims / cxl-claims / chi-claims / pcie-\
                                                        legacy-claims
spdm-claims = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device-spdm#1.0.0",
  spdm-artefacts,
  ? &(vca: 3804) => bytes,
}
spdm-artefacts //= ((
        &(measurements: 3802) => spdm-measurements,
        &(certificates: 3803) => spdm-certificates,
      ) // &(measurements: 3802) => spdm-measurements // &(\
                            certificates: 3803) => spdm-certificates)
spdm-measurement = {
  &(component-type: 1) => component-type,
  measurement,
}
measurement //= (&(digest-measurement: 2) => digest-measurement // &\
                             (raw-measurement: 3) => raw-measurement)
component-type /= &(immutable-rom: 0) / &(mutable-firmware: 1) / &(\
hardware-config: 2) / &(firmware-config: 3) / &(freeform-measurement\
-manifest: 4) / &(device-mode: 5) / &(mutable-firmware-version: 6) \
/ &(mutable-firmware-svn: 7) / &(hash-extend-measurement: 8) / &(\
           informational: 9) / &(structured-measurement-manifest: 10)
raw-measurement = bytes
digest-measurement = digest
digest = [
  alg: uint / text,
  val: bytes,
]
spdm-certificates = {
  default-cert-slot => cert-chain,
  ? aux-cert-slots => cert-chain,
}
cert-chain = bytes
default-cert-slot = 0
aux-cert-slots = 1 .. 7
spdm-measurements = {
  + block-id => spdm-measurement,
  ? "signature" => spdm-measurement-blocks-signature,
}
block-id = 1 .. 239
hash-algorithm-type /= &(tpm_alg_sha_256: 0) / &(tpm_alg_sha_384: 2\
) / &(tpm_alg_sha_512: 4) / &(tpm_alg_sha3_256: 8) / &(\
tpm_alg_sha3_384: 16) / &(tpm_alg_sha3_512: 32) / &(tpm_alg_sm3_256\
                                                                : 64)
spdm-measurement-blocks-signature = {
  &(slot: 1) => 0 .. 7,
  &(requester-nonce: 2) => bytes .size 32,
  &(responder-nonce: 3) => bytes .size 32,
  &(combined-spdm-prefix: 4) => bytes .size 100,
  &(IL1: 5) => bytes,
  &(base-hash-algo: 6) => hash-algorithm-type,
  &(signature: 7) => bytes,
}
cxl-claims = {&(eat_profile: 265) => "tag:linaro.org,2025:device-cxl\
                                                             #1.0.0"}
chi-claims = {&(eat_profile: 265) => "tag:linaro.org,2025:device-chi\
                                                             #1.0.0"}
pcie-legacy-claims = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device-pcie-legacy#1.0\
                                                                 .0",
  pcie-legacy-artefacts,
  ? $$pcie-legacy-claim-extension,
}
pcie-legacy-artefacts //= ((
        &(artefacts-text: 3805) => pcie-type-0-1-config-space-text,
        &(artefacts-bytes: 3806) => pcie-type-0-1-config-space-bytes,
      ) // &(artefacts-text: 3805) => pcie-type-0-1-config-space-\
text // &(artefacts-bytes: 3806) => pcie-type-0-1-config-space-bytes)
pcie-type-0-1-config-space-bytes = bytes .size 256
pcie-type-0-1-config-space-text = {
  &(vendorID: 1) => bytes .size 2,
  &(deviceID: 2) => bytes .size 2,
  ? &(command: 3) => bytes .size 2,
  ? &(status: 4) => bytes .size 2,
  ? &(revisionID: 5) => bytes .size 1,
  ? &(classCode: 6) => bytes .size 3,
  ? &(cacheLineSize: 7) => bytes .size 1,
  ? &(latencyTimer: 8) => bytes .size 1,
  ? &(headerType: 9) => bytes .size 1,
  ? &(BITS: 10) => bytes .size 1,
}
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="new-cwt-claims-registrations">
        <name>New CWT Claims Registrations</name>
        <t>IANA is requested to register the following claims in the "CBOR Web Token (CWT) Claims" registry <xref target="IANA.cwt"/>.</t>
        <section anchor="spdm-measurements-claim">
          <name> SPDM Measurements Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: spdm-measurements</t>
            </li>
            <li>
              <t>Claim Description: SPDM Measurements</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3802</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="spdm-measurements"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="spdm-certificates-claim">
          <name> SPDM Certificates Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: spdm-certificates</t>
            </li>
            <li>
              <t>Claim Description: SPDM Certificates</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3803</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="spdm-certificates"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="spdm-vca-claim">
          <name> SPDM VCA Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: spdm-vca</t>
            </li>
            <li>
              <t>Claim Description: SPDM Version, Capabilities and Algorithms</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3804</t>
            </li>
            <li>
              <t>Claim Value Type(s): bytes</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="spdm-vca"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="pcie-legacy-device-text-claim">
          <name> PCIe Legacy Device Text Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: pcie-legacy-device-text</t>
            </li>
            <li>
              <t>Claim Description: PCIe Legacy Device Textual Representation</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3805</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="pcie-legacy-device"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="pcie-legacy-device-binary-claim">
          <name> PCIe Legacy Device Binary Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: pcie-legacy-device-binary</t>
            </li>
            <li>
              <t>Claim Description: PCIe Legacy Device Binary Representation</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3806</t>
            </li>
            <li>
              <t>Claim Value Type(s): bytes</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="pcie-legacy-device"/> of RFCthis</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC4514">
          <front>
            <title>Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names</title>
            <author fullname="K. Zeilenga" initials="K." role="editor" surname="Zeilenga"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>The X.500 Directory uses distinguished names (DNs) as primary keys to entries in the directory. This document defines the string representation used in the Lightweight Directory Access Protocol (LDAP) to transfer distinguished names. The string representation is designed to give a clean representation of commonly used distinguished names, while being able to represent any distinguished name. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4514"/>
          <seriesInfo name="DOI" value="10.17487/RFC4514"/>
        </reference>
        <reference anchor="IANA.cwt" target="https://www.iana.org/assignments/cwt">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="SPDM" target="https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.3.2.pdf">
          <front>
            <title>Security Protocol and Data Model (SPDM) Specification Version: 1.3.2</title>
            <author>
              <organization>DMTF</organization>
            </author>
            <date year="2024" month="August" day="21"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 502?>

<section anchor="examples">
      <name>Examples</name>
      <sourcecode type="cbor-diag"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  / profile / 265: "tag:linaro.org,2025:device#1.0.0",
  / nonce / 10: h'\
f9efc3341597f75f8d94432ad39566a8c5704b2004ba001c094f475bfc057f9f25d7\
       aa40cd86cd30ebaae746fb19f008c1e6a1f23ad6a178e18dceda918f7f6e',
  / submods / 266: {
    "spdm:ACME:WIDGET-A:0123456789": {
      / profile / 265: "tag:linaro.org,2025:device-spdm#1.0.0",
      / measurements / 0x0eda: {
        1: {
          / component-type /  1: 2, / hardware config /
          / raw-measurement / 3: h'4f6d616861'
        }
      },
      / certificates / 0x0edb: {
        / device certs / 0: h'\
                          676f616e6e61747261646974696f6e6d6f6e676572'
        / no aux certs /
      }
    },
    "spdm:C=CA,O=ACME,OU=Widget-B,CN=9876543210": {
      / profile / 265: "tag:linaro.org,2025:device-spdm#1.0.0",
      / measurements / 0x0eda: {
        1: {
          / component-type / 1: 1, / mutable firmware /
          / digest-measurement / 2: [
            / alg / 1,
            / val / h'6b656e6e656c6c79'
          ]
        },
        6: {
          / component-type / 1: 2, / hardware config /
          / digest measurement / 2: [
            / alg / 0,
            / val / h'756e646572637279'
          ]
        }
      },
      / certificates / 0x0edb: {
        / device certs / 0: h'61746865697A656178696C6C6172',
        / aux certs (slot=2) / 2: h'23451576923AE99106783948598A'
      }
    }
  }
}
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thank you
Basma El Gaabouri,
James Bottomley,
Lukas Wunner,
Simon Frost
and
Yousuf Sait
for your comments and suggestions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
gmzE5MK1/hfnHptSGVAAAA==

-->

</rfc>
