<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-evidence-trans-03" category="std" consensus="true" submissionType="IETF" tocDepth="6" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="EvTrans">Evidence Transformations</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-evidence-trans-03"/>
    <author initials="F." surname="D'Amato" fullname="Fabrizio D'Amato">
      <organization>AMD</organization>
      <address>
        <email>fabrizio.damato@amd.com</email>
      </address>
    </author>
    <author initials="A." surname="Draper" fullname="Andrew Draper">
      <organization>Independent</organization>
      <address>
        <email>andrew.draper@freeside.org.uk</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Independent</organization>
      <address>
        <email>ned.smith.ietf@outlook.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>Evidence, RATS, attestation, verifier, supply chain, RIM, appraisal</keyword>
    <abstract>
      <?line 89?>

<t>Remote Attestation Procedures (RATS) enable Relying Parties to assess the trustworthiness of a remote Attester to decide if continued interaction is warrented.
Evidence structures can vary making appraisals challenging for Verifiers.
Verifiers need to understand Evidence encoding formats and some of the Evidence semantics to appraise it.
Consequently, Evidence may require format transformation to an internal representation that preserves original semantics.
This document specifies Evidence transformation methods for DiceTcbInfo, concise evidence, and SPDM measurements block structures.
These Evidence structures are converted to the CoRIM internal representation and follow CoRIM defined appraisal procedures.</t>
    </abstract>
  </front>
  <middle>
    <?line 98?>

<section anchor="sec-intro">
      <name>Introduction</name>
      <t>Remote Attestation Procedures (RATS) <xref target="RFC9334"/> enable Relying Parties to assess the trustworthiness of a remote Attester to decide if continued interaction is warrented.
Evidence structures can vary making appraisals challenging for Verifiers.
Verifiers need to understand Evidence encoding formats and some of the Evidence semantics to appraise it.
Consequently, Evidence may require format transformation to an internal representation that preserves original semantics.
This document specifies Evidence transformation methods for DiceTcbInfo <xref target="DICE.Attest"/>, concise evidence <xref target="TCG.CE"/>, and SPDM measurements block <xref target="SPDM"/> structures.
These Evidence structures are converted to the CoRIM internal representation (Section 2.1 <xref target="I-D.ietf-rats-corim"/>) and follow CoRIM defined appraisal procedures (Section 8 <xref target="I-D.ietf-rats-corim"/>).</t>
    </section>
    <section anchor="requirements-language-and-terminology">
      <name>Requirements Language and Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -6?>
      </t>
      <t>This document uses terms and concepts defined by the RATS architecture.
For a complete glossary. See <xref section="4" sectionFormat="of" target="RFC9334"/>.
Addintional RATS architecture and terminology is found in <xref target="I-D.ietf-rats-endorsements"/>.
RATS architecture terms and concepts are always referenced as proper nouns, i.e., with Capital Letters.
Additional terminology from CoRIM <xref target="I-D.ietf-rats-corim"/>, <xref target="DICE.CoRIM"/>, CBOR <xref target="STD94"/>, CDDL <xref target="RFC8610"/> and COSE <xref target="STD96"/> may also apply.</t>
      <t>In this document, Evidence structures are expressed in their respective "external representations".
There are many possible Evidence structures including those mentioned above.</t>
      <t>The CoRIM specification defines an "internal representation" for Evidence (Section 8.2.1.3 <xref target="I-D.ietf-rats-corim"/>).
This document defines mapping operations that convert from an external representation to an internal representation.
The conversion steps are also known as "transformation".</t>
    </section>
    <section anchor="sec-verifier-rec">
      <name>Verifier Reconciliation</name>
      <t>This document assumes the reader is familiar with Verifier reconciliation as described in <xref section="2" sectionFormat="of" target="I-D.ietf-rats-corim"/>.
It describes how a Verifier should process the CoRIM to enable CoRIM authors to convey their intended meaning and how a Verifier reconciles its various inputs.
Evidence is one of its inputs.
The Verifier is expected to create an internal representation from an external representation.
By using an internal representation, the Verifier processes Evidence inputs such that they can be appraised consistently.</t>
      <t>This document defines format transformations for Evidence in DICE <xref target="DICE.Attest"/>, SPDM <xref target="SPDM"/>, and concise evidence <xref target="TCG.CE"/> formats that are transformed into a Verifier's internal representation.
This document uses the CoMID internal representation (<xref section="8.2.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>) as the transformation target.
Other internal representations are possible but out of scope for this document.</t>
    </section>
    <section anchor="sec-dice-trans">
      <name>Transforming DICE Certificate Extension Evidence</name>
      <t>This section defines how Evidence from an X.509 certificate <xref target="RFC5280"/> containing a DICE certificate extension <xref target="DICE.Attest"/> is transformed into an internal representation that can be processed by Verifiers.</t>
      <t>Verifiers supporting the DICE certificate Evidence extensions SHOULD implement this transformation.</t>
      <section anchor="sec-ueid">
        <name>DiceUeid Transformation</name>
        <t>This section defines the transformation method for the DiceUeid certificate extension.
This extension is identified by the following object identifier:</t>
        <ul spacing="normal">
          <li>
            <t>tcg-dice-Ueid - "2.23.133.5.4.4"</t>
          </li>
        </ul>
        <t>The DiceUeid extension does not create evidence directly.
The <tt>ueid</tt> OCTET STRING within this extension is used to populate the <tt>instance-id</tt> field within evidence created by other extensions.
Section <xref target="sec-tcb-info"/> describes extensions which use this value.</t>
      </section>
      <section anchor="sec-tcb-info">
        <name>DiceTcbInfo Transformation</name>
        <t>This section defines transformation methods for DICE certificate extensions DiceTcbInfo, DiceMultiTcbInfo, and DiceMultiTcbInfoComp.</t>
        <t>These extensions are identified by the following object identifiers:</t>
        <ul spacing="normal">
          <li>
            <t>tcg-dice-TcbInfo - "2.23.133.5.4.1"</t>
          </li>
          <li>
            <t>tcg-dice-MultiTcbInfo - "2.23.133.5.4.5"</t>
          </li>
          <li>
            <t>tcg-dice-MultiTcbInfoComp - "2.23.133.5.4.8"</t>
          </li>
        </ul>
        <t>Each DiceTcbInfo entry in a MultiTcbInfo is converted to a CoRIM ECT (see <xref section="8.2.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>) using the transformation steps in this section.
Each DiceMultiTcbInfo entry is independent of the others such that each is transformed to a separate ECT entry.
A list of Evidence ECTs (i.e., <tt>ae = [ + ECT]</tt>) is constructed using CoRIM attestation evidence internal representation (see <xref section="8.2.1.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>).
Each DiceMultiTcbInfoComp entry is converted to a DiceMultiTcbInfo entry then processed as a DiceMultiTcbInfo.</t>
        <t>For each DiceTcbInfo (DTI) entry in a DiceMultiTcbInfo allocate an ECT structure.</t>
        <ol group="dtt" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The DiceTcbInfo (DTI) entry populates the <tt>ae</tt> ECT.</t>
          </li>
        </ol>
        <ol group="dtt2" spacing="normal" type="%i"><li>
            <t>The DTI entry populates the <tt>ae</tt> ECT <tt>environment-map</tt></t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>type</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>class-id</tt>).
The binary representation of DTI.<tt>type</tt> MUST be equivalent to the binary representation of <tt>class-id</tt> without the CBOR tag.</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>vendor</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>vendor</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>model</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>model</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>layer</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>layer</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>index</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>index</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="dtt2" spacing="normal" type="%i"><li>
            <t>If a DiceUeid (UEID) extension is present, then this populates the <tt>instance-id</tt> field within the ECT <tt>environment-map</tt>.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If DiceUeid extension is present: <strong>copy</strong>(UEID.<tt>ueid</tt>, ECT.<tt>environment-map</tt>.<tt>instance-id</tt>.<tt>tagged-ueid-type</tt>).
The CBOR tag #6.550 is prepended to the DiceUeid OCTET STRING then copied to ECT.<tt>environment-map</tt>.<tt>instance-id</tt>.</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="dtt2" spacing="normal" type="%i"><li>
            <t>The DTI entry populates the <tt>ae</tt> ECT <tt>elemenet-list</tt>.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>version</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>version-map</tt>.<tt>version</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>svn</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>svn</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>vendorInfo</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>raw-value</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>Foreach FWID in FWIDLIST: <strong>copy</strong>(DTI.<tt>FWID</tt>.<tt>digest</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>digests</tt>.<tt>digest</tt>.<tt>val</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>Foreach FWID in FWIDLIST: <strong>copy</strong>(DTI.<tt>FWID</tt>.<tt>hashAlg</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>digests</tt>.<tt>digest</tt>.<tt>alg</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>Foreach INTEGRITYREGISTER in IRLIST: <strong>copy</strong>(DTI.<tt>INTEGRITYREGISTER</tt>.<tt>registerNum</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>integrity-registers</tt>.<tt>integrity-register-id-type-choice</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>Foreach FWID in INTEGRITYREGISTER.FWIDLIST: <strong>copy</strong>(DTI.<tt>FWID</tt>.<tt>digest</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>integrity-registers</tt>.<tt>digest-type</tt>.<tt>val</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>Foreach FWID in INTEGRITYREGISTER.FWIDLIST: <strong>copy</strong>(DTI.<tt>FWID</tt>.<tt>alg</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>integrity-registers</tt>.<tt>digest-type</tt>.<tt>alg</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="dtt2" spacing="normal" type="%i"><li>
            <t>The DTI entry populates the <tt>ae</tt> ECT <tt>elemenet-list</tt>.<tt>flags</tt>. Foreach <em>f</em> in DTI.<tt>OperationalFlags</tt> and each <em>m</em> in DTI.<tt>OperationalFlagsMask</tt>:</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notConfigured</tt> = 1 AND <em>f</em>.<tt>notConfigured</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-configured</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notConfigured</tt> = 1 AND <em>f</em>.<tt>notConfigured</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-configured</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notSecure</tt> = 1 AND <em>f</em>.<tt>notSecure</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-secure</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notSecure</tt> = 1 AND <em>f</em>.<tt>notSecure</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-secure</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>recovery</tt> = 1 AND <em>f</em>.<tt>recovery</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-recovery</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>recovery</tt> = 1 AND <em>f</em>.<tt>recovery</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-recovery</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>debug</tt> = 1 AND <em>f</em>.<tt>debug</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-debug</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>debug</tt> = 1 AND <em>f</em>.<tt>debug</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-debug</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notReplayProtected</tt> = 1 AND <em>f</em>.<tt>notReplayProtected</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-replay-protected</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notReplayProtected</tt> = 1 AND <em>f</em>.<tt>notReplayProtected</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-replay-protected</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notIntegrityProtected</tt> = 1 AND <em>f</em>.<tt>notIntegrityProtected</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-integrity-proteccted</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notIntegrityProtected</tt> = 1 AND <em>f</em>.<tt>notIntegrityProtected</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-integrity-proteccted</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notRuntimeMeasured</tt> = 1 AND <em>f</em>.<tt>notRuntimeMeasured</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-runtime-meas</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notRuntimeMeasured</tt> = 1 AND <em>f</em>.<tt>notRuntimeMeasured</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-runtime-meas</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notImmutable</tt> = 1 AND <em>f</em>.<tt>notImmutable</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-immutable</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notImmutable</tt> = 1 AND <em>f</em>.<tt>notImmutable</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-immutable</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notTcb</tt> = 1 AND <em>f</em>.<tt>notTcb</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-tcb</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notTcb</tt> = 1 AND <em>f</em>.<tt>notTcb</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-tcb</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="dtt" spacing="normal" type="Step %d."><li>
            <t>The ECT.<tt>authority</tt> field is set up based on the signer of the certificate containing DTI as described in <xref target="sec-authority"/>.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
      <section anchor="sec-cmw">
        <name>DiceConceptualMessageWrapper Transformation</name>
        <t>This section defines the transformation method for the DiceConceptualMessageWrapper certificate extension.
This extension is identified by the following object identifier:</t>
        <ul spacing="normal">
          <li>
            <t>tcg-dice-Ueid - "2.23.133.5.4.9"</t>
          </li>
        </ul>
        <t>The DiceConceptualMessageWrapper entry OCTET STRING may contain a CBOR array, JSON array, or CBOR tagged value.
If the entry contains a CBOR tag value of #6.571 or #6.1668557429, or a Content ID of 10571, or a Media Type of "application/ce+cbor",
the contents are transformed according to <xref target="sec-ce-trans"/>.</t>
      </section>
      <section anchor="sec-authority">
        <name>Authority field in DICE/SPDM ECTs</name>
        <t>The ECT authority field is an array of <tt>$crypto-keys-type-choice</tt> values.</t>
        <t>When adding Evidence to the ACS, the Verifier SHALL add the public key representing the signer of that Evidence (for example the DICE certificate or SPDM MEASUREMENTS response) to the ECT authority field.
The Verifier SHALL add the authority of the signers of each certificate in the certificate path of the end-entity signing key to the ECT <tt>authority</tt> list.
Having each authority in a certificate path in the ECT <tt>authority</tt> field lets conditional endorsement conditions match multiple authorities or match an authority that is scoped more broadly than the immediate signer of the Evidence artifact.</t>
        <t>Each signer authority value MUST be represented using <tt>tagged-cose-key-type</tt>.</t>
      </section>
    </section>
    <section anchor="sec-ce-trans">
      <name>Transforming TCG Concise Evidence</name>
      <t>This section defines how Evidence from TCG <xref target="TCG.CE"/> is transformed into an internal representation that can be processed by Verifiers.</t>
      <t>Verifiers supporting the TCG Concise Evidence format SHOULD implement this transformation.</t>
      <t>Concise evidence may be recognized by any of the following registered types:</t>
      <table>
        <thead>
          <tr>
            <th align="left">CBOR tag</th>
            <th align="left">C-F ID</th>
            <th align="left">TN Tag</th>
            <th align="left">Media Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">#6.571</td>
            <td align="left">10571</td>
            <td align="left">#6.1668557429</td>
            <td align="left">"application/ce+cbor"</td>
          </tr>
        </tbody>
      </table>
      <t>A Concise Evidence entry is converted to a CoRIM ECT (see <xref section="8.2.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>) using the transformation steps in this section.
A list of Evidence ECTs (i.e., <tt>ae = [ + ECT]</tt>) is constructed using CoRIM attestation evidence internal representation (see <xref section="8.2.1.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>).
The Concise Evidence scheme uses CoRIM CDDL definitions to define several Evidence representations called <em>triples</em>.
Cases where Concise Evidence CDDL is identical to CoRIM CDDL the transformation logic uses the structure names in common.</t>
      <section anchor="sec-evidence-triple">
        <name>Transforming the ce.evidence-triples</name>
        <t>The <tt>ce.evidence-triples</tt> structure is a list of <tt>evidence-triple-record</tt>.
An <tt>evidence-triple-record</tt> consists of an <tt>environment-map</tt> and a list of <tt>measurement-map</tt>.
For each <tt>evidence-triple-record</tt> an <tt>ae</tt> ECT is constructed.</t>
        <ol group="cet" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> ECT entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The Concise Evidence (CE) entry populates the <tt>ae</tt> ECT <tt>environment</tt> fields.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(CE.<tt>evidence-triple-record</tt>.<tt>environment-map</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="cet2" spacing="normal" type="%i"><li>
            <t>For each ce in CE.<tt>[ + measurement-map]</tt>; and each ect in ECT.<tt>[ + element-list]</tt>:</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(ce.<tt>mkey</tt>, ect.<tt>element-map</tt>.<tt>element-id</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(ce.<tt>mval</tt>, ect<tt>.</tt>element-map<tt>.</tt>element-claims`)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="cet" spacing="normal" type="Step %d."><li>
            <t>The signer of the envelope containing CE is copied to the ECT.<tt>authority</tt> field as described in <xref target="sec-authority"/>.
For example, a CE may be wrapped by an EAT token <xref target="RFC9711"/> or DICE certificate <xref target="DICE.Attest"/>.
The signer identity MUST be expressed using <tt>$crypto-key-type-choice</tt>.
A profile or other arrangement is used to coordinate which <tt>$crypto-key-type-choice</tt> is used for both Evidence and Reference Values.</t>
          </li>
          <li>
            <t>If CE has a profile, the profile is converted to a <tt>$profile-type-choice</tt> then copied to the ECT<tt>.</tt>profile` field.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
      <section anchor="sec-identity-triple">
        <name>Transforming the ce.identity-triples</name>
        <t>The <tt>ce.identity-triples</tt> structure is a list of <tt>ev-identity-triple-record</tt>.
An <tt>ev-identity-triple-record</tt> consists of an <tt>environment-map</tt> and a list of <tt>$crypto-key-type-choice</tt>.
For each <tt>ev-identity-triple-record</tt> an <tt>ae</tt> ECT is constructed where the <tt>$crypto-key-type-choice</tt> values are copied as ECT Evidence measurement values.
The ECT internal representation accommodates keys as a type of measurement.
In order for the <tt>$crypto-key-type-choice</tt> keys to be verified a CoRIM <tt>identity-triples</tt> claim MUST be asserted.</t>
        <ol group="ikt" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> ECT entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The Concise Evidence (CE) entry populates the <tt>ae</tt> ECT <tt>environment</tt> fields.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(CE.<tt>ce-identity-triple-record</tt>.<tt>environment-map</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(<em>null</em>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="ikt2" spacing="normal" type="%i"><li>
            <t>For each cek in CE.<tt>[ + $crypto-key-type-choice ]</tt>; and each ect in ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>intrep-keys</tt>.<tt>[ + typed-crypto-key ]</tt>:</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(cek, ect.<tt>key</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>set</strong>( &amp;(identity-key: 1), ect.<tt>key-type</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="ikt" spacing="normal" type="Step %d."><li>
            <t>The signer of the envelope containing CE is copied to the ECT.<tt>authority</tt> field.
For example, a CE may be wrapped by an EAT token <xref target="RFC9711"/> or DICE certificate <xref target="DICE.Attest"/>.
The signer identity MUST be expressed using <tt>$crypto-key-type-choice</tt>.
A profile or other arrangement is used to coordinate which <tt>$crypto-key-type-choice</tt> is used for both Evidence and Reference Values.</t>
          </li>
          <li>
            <t>If CE has a profile, the profile is converted to a <tt>$profile-type-choice</tt> then copied to the ECT<tt>.</tt>profile` field.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
      <section anchor="sec-attest-key-triple">
        <name>Transforming the ce.attest-key-triples</name>
        <t>The <tt>ce.attest-key-triples</tt> structure is a list of <tt>ev-attest-key-triple-record</tt>.
An <tt>ev-attest-key-triple-record</tt> consists of an <tt>environment-map</tt> and a list of <tt>$crypto-key-type-choice</tt>.
For each <tt>ev-attest-key-triple-record</tt> an <tt>ae</tt> ECT is constructed where the <tt>$crypto-key-type-choice</tt> values are copied as ECT Evidence measurement values.
The ECT internal representation accommodates keys as a type of measurement.
In order for the <tt>$crypto-key-type-choice</tt> keys to be verified a CoRIM <tt>attest-key-triples</tt> claim MUST be asserted.</t>
        <ol group="akt" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> ECT entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The Concise Evidence (CE) entry populates the <tt>ae</tt> ECT <tt>environment</tt> fields.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(CE.<tt>ce-attest-key-triple-record</tt>.<tt>environment-map</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(<em>null</em>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="akt2" spacing="normal" type="%i"><li>
            <t>For each cek in CE.<tt>[ + $crypto-key-type-choice ]</tt>; and each ect in ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>intrep-keys</tt>.<tt>[ + typed-crypto-key ]</tt>:</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(cek, ect.<tt>key</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>set</strong>( &amp;(attest-key: 0), ect.<tt>key-type</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="akt" spacing="normal" type="Step %d."><li>
            <t>The signer of the envelope containing CE is copied to the ECT.<tt>authority</tt> field.
For example, a CE may be wrapped by an EAT token <xref target="RFC9711"/> or DICE certificate <xref target="DICE.Attest"/>.
The signer identity MUST be expressed using <tt>$crypto-key-type-choice</tt>.
A profile or other arrangement is used to coordinate which <tt>$crypto-key-type-choice</tt> is used for both Evidence and Reference Values.</t>
          </li>
          <li>
            <t>If CE has a profile, the profile is converted to a <tt>$profile-type-choice</tt> then copied to the ECT<tt>.</tt>profile` field.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
    </section>
    <section anchor="dmtf-spdm-structure-definitons">
      <name>DMTF SPDM Structure Definitons</name>
      <t>This section defines how a Verifier shall parse a DMTF Measurement Block.</t>
      <t>DMTF Measurement Block Definition:</t>
      <ul spacing="normal">
        <li>
          <t>Byte Offset 0: DMTFSpecMeasurementValueType
          </t>
          <ul spacing="normal">
            <li>
              <t>Bit 7     = 0b Digest / 1b Raw bit stream</t>
            </li>
            <li>
              <t>Bit [6:0] = Indicate what is measured
              </t>
              <ul spacing="normal">
                <li>
                  <t>0x0 Immutable Rom</t>
                </li>
                <li>
                  <t>0x1 Mutable FW</t>
                </li>
                <li>
                  <t>0x2 HW Config</t>
                </li>
                <li>
                  <t>0x3 FW config</t>
                </li>
                <li>
                  <t>0x4 Freeform Manifest</t>
                </li>
                <li>
                  <t>0x5 Structured Representation of debug and device mode</t>
                </li>
                <li>
                  <t>0x6 Mutable FW Version Number</t>
                </li>
                <li>
                  <t>0x7 Mutable FW Secure Version Number</t>
                </li>
                <li>
                  <t>0x8 Hash-Extend Measurement (new in SPDM 1.3)</t>
                </li>
                <li>
                  <t>0x9 Informational (new in SPDM 1.3)</t>
                </li>
                <li>
                  <t>0xA Structured Measurement Manifest (new in SPDM 1.3)</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
        <li>
          <t>Byte Offset 1: DMTFSpecMeasurementValueSize</t>
        </li>
        <li>
          <t>Byte Offset 3: DMTFSpecMeasurementValue</t>
        </li>
      </ul>
      <t>Structured Manifest Block Definition (only for &gt;=SPDM 1.3):</t>
      <ul spacing="normal">
        <li>
          <t>Byte Offset 0: Standard Body or Vendor Defined Header (SVH)</t>
        </li>
        <li>
          <t>Byte Offset 2 + VendorIdLen: Manifest</t>
        </li>
      </ul>
      <t>Standard Body or Vendor Defined Header (SVH) Definition (only for &gt;=SPDM 1.3):</t>
      <ul spacing="normal">
        <li>
          <t>Byte Offset 0: ID</t>
        </li>
        <li>
          <t>Byte Offset 1: VendorIdLen</t>
        </li>
        <li>
          <t>Byte Offset 2: VendorId</t>
        </li>
      </ul>
      <t>DMTF Header for Concise Evidence Manifest Block:</t>
      <t>If SPDM Version 1.2:</t>
      <ul spacing="normal">
        <li>
          <t>DMTFSpecMeasurementValueType = 0x84 (Raw Bit / Freeform Manifest)</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValueSize = Size of tagged-spdm-toc CBOR Tag</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValue     = tagged-spdm-toc CBOR Tag</t>
        </li>
      </ul>
      <t>if SPDM &gt;=Version 1.3:</t>
      <ul spacing="normal">
        <li>
          <t>DMTFSpecMeasurementValueType = 0x8A (Raw Bit / Structured Manifest)</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValueSize = Size of Structured Manifest</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValue     = Structured Manifest</t>
        </li>
      </ul>
      <t>SVH for Concise Evidence Manifest Block:</t>
      <ul spacing="normal">
        <li>
          <t>ID          = 0xA (IANA CBOR)</t>
        </li>
        <li>
          <t>VendorIdLen = 3</t>
        </li>
        <li>
          <t>VendorId    = (0xd9 0x02 0x3a) #6.570(spdm-toc-map)</t>
        </li>
      </ul>
      <t>Structured Manifest Block Definition for Concise Evidence:</t>
      <ul spacing="normal">
        <li>
          <t>SVH      = SVH for Concise Evidence Manifest Block</t>
        </li>
        <li>
          <t>Manifest = tagged-spdm-toc CBOR Tag Payload</t>
        </li>
      </ul>
      <t>DMTF Header for signed CBOR Web Token (CWT):</t>
      <t>If SPDM Version 1.2:</t>
      <ul spacing="normal">
        <li>
          <t>DMTFSpecMeasurementValueType = 0x84 (Raw Bit / Freeform Manifest)</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValueSize = Size of CWT</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValue     = CWT # COSE_Sign1</t>
        </li>
      </ul>
      <t>if SPDM = Version 1.3:</t>
      <ul spacing="normal">
        <li>
          <t>DMTFSpecMeasurementValueType = 0x8A (Raw Bit / Structured Manifest)</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValueSize = Size of Structured Manifest</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValue     = Structured Manifest</t>
        </li>
      </ul>
      <t>SVH for signed CBOR Web Token (CWT):</t>
      <ul spacing="normal">
        <li>
          <t>ID          = 0xA (IANA CBOR)</t>
        </li>
        <li>
          <t>VendorIdLen = 1</t>
        </li>
        <li>
          <t>VendorId    = 0xd2 #6.18(COSE_Sign1)</t>
        </li>
      </ul>
      <t>Structured Manifest Block Definition for CBOR Web Token (CWT):</t>
      <ul spacing="normal">
        <li>
          <t>SVH      = SVH for CBOR Web Token (CWT)</t>
        </li>
        <li>
          <t>Manifest = COSE_Sign1 Payload</t>
        </li>
      </ul>
    </section>
    <section anchor="transforming-spdm-measurement-block-digest">
      <name>Transforming SPDM Measurement Block Digest</name>
      <ol group="mbk" spacing="normal" type="Step %d."><li>
          <t>if DMTFSpecMeasurementValueType is in range [0x80 - 0x83]:  </t>
          <ul empty="true">
            <li>
              <t><strong>copy</strong>(SPDM.<tt>MeasurementBlock</tt>.DMTFSpecMeasurementValue , ECT.<tt>environment</tt>.<tt>measurement-map</tt>.<tt>mval</tt>.<tt>digests</tt>).</t>
            </li>
          </ul>
        </li>
        <li>
          <t>if DMTFSpecMeasurementValueType is in range [0x88]:  </t>
          <ul empty="true">
            <li>
              <t><strong>copy</strong>(SPDM.<tt>MeasurementBlock</tt>.DMTFSpecMeasurementValue , ECT.<tt>environment</tt>.<tt>measurement-map</tt>.<tt>mval</tt>.<tt>integrity-registers</tt>).</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section anchor="transforming-spdm-measurement-block-raw-value">
      <name>Transforming SPDM Measurement Block Raw Value</name>
      <ol group="mbrv" spacing="normal" type="Step %d."><li>
          <t>if DMTFSpecMeasurementValueType is in range [0x7]:  </t>
          <ul empty="true">
            <li>
              <t><strong>copy</strong>(SPDM.<tt>MeasurementBlock</tt>.DMTFSpecMeasurementValue , ECT.<tt>environment</tt>.<tt>measurement-map</tt>.<tt>mval</tt>.<tt>svn</tt>).</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section anchor="transforming-eat-conveyed-by-spdm">
      <name>Transforming EAT Conveyed by SPDM</name>
      <t>The EAT shall be reported in Measurement Block 0xFD.
The Concise Evidence CBOR Tag is serialized inside eat-measurements (273) claim ($measurements-body-cbor /= bytes .cbor concise-evidence-map)
Subsequently the transformation steps defined in <xref target="sec-ce-trans"/>.</t>
    </section>
    <section anchor="sec-spdm-trans">
      <name>Transforming SPDM Evidence</name>
      <t>This section defines how Evidence from SPDM <xref target="SPDM"/> is transformed into an internal representation that can be processed by Verifiers.</t>
      <t>Verifiers supporting the SPDM Evidence format SHOULD implement this transformation.
SPDM Responders SHALL support a minimum version of 1.2</t>
      <t>Theory of Operations:</t>
      <ul spacing="normal">
        <li>
          <t>The SPDM Requestor SHALL retrieve the measurement Manifest at Block 0xFD (Manifest Block) and send its payload to the Verifier
          </t>
          <ul spacing="normal">
            <li>
              <t>The Verifier SHALL decode the payload as a tagged-spdm-toc CBOR tag.</t>
            </li>
            <li>
              <t>The Verifier SHALL extract the tagged-concise-evidence CBOR TAG from the tagged-spdm-toc CBOR tag</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>The<tt>concise-evidence</tt> has a format that is similar to CoRIM <tt>triples-map</tt> (their semantics follows the matching rules described above).</t>
      <ul spacing="normal">
        <li>
          <t>For every <tt>spdm-indirect</tt> measurement the Verifier shall ask the SPDM Requestor to retrieve the measurement block indicated by the index
          </t>
          <ul spacing="normal">
            <li>
              <t>if the index is in range [0x1 - 0xEF] (refer to #Transforming SPDM Measurement Block Digest)</t>
            </li>
            <li>
              <t>if the index is 0xFD (refer to #Transforming EAT Conveyed by SPDM] )</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>The TCG DICE Concise Evidence Binding for SPDM specification <xref target="TCG.CE"/> describes a process for converting the SPDM Measurement Block to Concise Evidence.
Subsequently the transformation steps defined in <xref target="sec-ce-trans"/>.</t>
      <t>The keys provided in the ECT.<tt>authority</tt> field SHOULD include the key which signed the SPDM MEASUREMENTS response carrying the Evidence and keys which authorized that key as described in <xref target="sec-authority"/>.```</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft,
and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalogue of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code,
which may serve as Evidence of valuable experimentation and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see fit".</t>
    </section>
    <section anchor="sec-sec">
      <name>Security Considerations</name>
      <t>Evidence appraisal is at the core of any RATS protocol flow, mediating all interactions between Attesters and their Relying Parties.
The Verifier is effectively part of the Attesters' and Relying Parties' trusted computing base (TCB).
Any mistake in the appraisal process could have security implications.
For instance, it could lead to the subversion of an access control function, which creates a chance for privilege escalation.</t>
      <t>Therefore, the Verifier’s code and configuration, especially those of the CoRIM processor, are primary security assets that must be built and maintained as securely as possible.</t>
      <t>The protection of both the Attester and Verifier systems should be considered throughout their entire lifecycle, from design to operation.
This includes the following aspects:</t>
      <ul spacing="normal">
        <li>
          <t>Minimizing implementation complexity (see also <xref section="6.1" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>);</t>
        </li>
        <li>
          <t>Using memory-safe programming languages;</t>
        </li>
        <li>
          <t>Using secure defaults;</t>
        </li>
        <li>
          <t>Minimizing the attack surface by avoiding unnecessary features that could be exploited by attackers;</t>
        </li>
        <li>
          <t>Applying the principle of least privilege to the system's users;</t>
        </li>
        <li>
          <t>Minimizing the potential impact of security breaches by implementing separation of duties in both the software and operational architecture;</t>
        </li>
        <li>
          <t>Conducting regular, automated audits and reviews of the system, such as ensuring that users' privileges are correctly configured and that any new code has been audited and approved by independent parties;</t>
        </li>
        <li>
          <t>Failing securely in the event of errors to avoid compromising the security of the system.</t>
        </li>
      </ul>
      <t>The appraisal process should be auditable and reproducible.
The integrity of the code and data during execution should be made an explicit objective, for example ensuring that the appraisal functions are computed in an attestable trusted execution environment (TEE).</t>
      <t>The integrity of public and private key material and the secrecy of private key material must be ensured at all times.
This includes key material carried in attestation key triples and key material used to assert or verify the authority of triples (such as public keys that identify trusted supply chain actors).
For more detailed information on protecting Trust Anchors, refer to <xref section="12.4" sectionFormat="of" target="RFC9334"/>.</t>
      <t>The Verifier should use cryptographically protected, mutually authenticated secure channels to all its trusted input sources (i.e., Attesters, Endorsers, RVPs, Verifier Owners).
The Attester should use cryptographically protected, mutually authenticated secure channels to all its trusted input sources (i.e., Verifiers, Relying Parties).
These links must reach as deep as possible - possibly terminating within the Attesting Environment of an Attester or within the appraisal session context of a Verifier - to avoid man-in-the-middle attacks.
Also consider minimizing the use of intermediaries: each intermediary becomes another party that needs to be trusted and therefore factored in the Attesters and Relying Parties' TCBs.
Refer to <xref section="12.2" sectionFormat="of" target="RFC9334"/> for information on Conceptual Messages protection.</t>
    </section>
    <section anchor="sec-iana-cons">
      <name>IANA Considerations</name>
      <t>There are no IANA considerations.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-11"/>
        </reference>
        <reference anchor="DICE.CoRIM" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-Endorsement-Architecture-for-Devices-V1-R38_pub.pdf">
          <front>
            <title>DICE Endorsement Architecture for Devices</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2022" month="November"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.38" value=""/>
        </reference>
        <reference anchor="DICE.Attest" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-Version-1.2-rc-1_9January25.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2025" month="January"/>
          </front>
          <seriesInfo name="Version 1.2, Revision 1" value=""/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="SPDM" target="https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.3.0.pdf">
          <front>
            <title>Security Protocol and Data Model (SPDM)</title>
            <author>
              <organization>Distributed Management Task Force</organization>
            </author>
            <date year="2023" month="May"/>
          </front>
          <seriesInfo name="Version 1.3.0" value=""/>
        </reference>
        <reference anchor="TCG.CE" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.0-Revision-54_pub.pdf">
          <front>
            <title>TCG DICE Concise Evidence Binding for SPDM</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
          <seriesInfo name="Version 1.00, Revision 0.54" value=""/>
        </reference>
        <reference anchor="I-D.ietf-rats-endorsements">
          <front>
            <title>Remote Attestation Procedures (RATS) Endorsements</title>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Armidale Consulting</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>NVIDIA</organization>
            </author>
            <date day="14" month="October" year="2026"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture (RFC
   9334), a Verifier accepts Evidence and uses Appraisal Policy for
   Evidence, typically with additional input from Endorsements and
   Reference Values, to generate Attestation Results in formats that are
   useful for Relying Parties.  This document illustrates the purpose
   and role of Endorsements and discusses some considerations in the
   choice of message format for Endorsements in the scope of the RATS
   architecture.

   This document does not aim to define a conceptual message format for
   Endorsements and Reference Values.  Instead, it updates RFC 9334 by
   refining the description of Endorsements and Reference Values.
   Specifically, this document classifies the RATS conceptual messages
   as actual state, reference state, or appraisal policy, and adds
   considerations on conditionally endorsed values, endorsing
   verification keys, timeliness, and multiple Endorsements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-13"/>
        </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="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="STD96">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <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="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
      </references>
    </references>
    <?line 621?>

<section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <t>The authors would like to thank the following people for their valuable contributions to the specification.</t>
      <t>Henk Birkholz</t>
      <t>Email: henk.birkholz@ietf.contact</t>
      <t>Yogesh Deshpande</t>
      <t>Email: yogesh.deshpande@arm.com</t>
      <t>Thomas Fossati</t>
      <t>Email: Thomas.Fossati@linaro.org</t>
      <t>Dionna Glaze</t>
      <t>Email: dionnaglaze@google.com</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank James D. Beaney, Francisco J. Chinchilla, Vincent R. Scarlata, and Piotr Zmijewski for review feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
egAA

-->

</rfc>
