<?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.23 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-smith-rats-evidence-trans-01" category="std" consensus="true" submissionType="IETF" tocDepth="6" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title>Evidence Transformations</title>
    <seriesInfo name="Internet-Draft" value="draft-smith-rats-evidence-trans-01"/>
    <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>Altera</organization>
      <address>
        <email>andrew.draper@altera.com</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="February" day="28"/>
    <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 anchor="terminology">
        <name>Terminology</name>
        <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>
        <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>
      </section>
    </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-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>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>
        <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-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>
        <ol group="ueid" 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 DiceUeid entry populates the <tt>ae</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 <tt>ae</tt>.<tt>environment-map</tt>.<tt>instance-id</tt>.</t>
          </li>
          <li>
            <t>The ECT.<tt>authority</tt> field is set up based on the signer of the certificate containing DiceUeid 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="I-D.ietf-rats-eat"/> 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="I-D.ietf-rats-eat"/> 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="I-D.ietf-rats-eat"/> 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 = 2</t>
        </li>
        <li>
          <t>VendorId    = 0x570 #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 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 CBor Web Token (CWT):</t>
      <ul spacing="normal">
        <li>
          <t>ID          = 0xA (IANA CBOR)</t>
        </li>
        <li>
          <t>VendorIdLen = 2</t>
        </li>
        <li>
          <t>VendorId    = 0x18 #6.18</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-spdm-rats-eat-cwt">
      <name>Transforming SPDM RATS EAT CWT</name>
      <t>The RATS EAT CWT shall be reported in any of the assigned Measurement Blocks range [0xF0 - 0xFC]
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 in range [0xF0 - 0xFC] (refer to #Transforming SPDM RATS EAT CWT] )</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 and Privacy 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>Intel</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="18" month="October" year="2024"/>
            <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-06"/>
        </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>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>Linaro</organization>
            </author>
            <date day="8" month="November" year="2024"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture, a
   Verifier accepts Evidence and, using Appraisal Policy typically with
   additional input from Endorsements and Reference Values, generates
   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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-05"/>
        </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="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek USA</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="6" month="September" year="2024"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, 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.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-31"/>
        </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 619?>

<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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
hM46DeJAEk6zbCw6V4M3LeS0TnCU2UOjf2S84hUtRrRLFEeDEYx0oSgTUEnM
AGxLdmumCbIx1TNi6wWRjc3vsJn6OqJxwvBaFI4OA0IGvGCKw1LuFUXvib7l
CuQoc52mm9JCArG5Oo9Q2bug2l4YaU8AqBOcgdycmbsS4juzBvgSt8JgyueU
yqQx4sjfoLfqR8e/0e/qgzeW/pqHICS69djE6h+/0m6z5ob4DWveeOxY82aH
66x5E0zToHe9/2ib3i0grm3vHK7bvGvPS8TslBdeC+q7TsQ4kAOEVd0Uq0yQ
XTmaNWjnhcGAPHFIJhoXoJwoV+jVtAPSx1swMBEQfrPL0Y0sQeI7DPpaQGiD
uvEqc8kkWc3E24GZ8XrRxYrXg0c3eD3T6e/U69FeW7tMf7rjq43yLinj+N1t
8l5cf2MYsuI+8Vmn+7Qdmu7zwvWfHaIkOh3prbDWvg43MQuQfNpiGfOAOAis
X+2oos0TX2gfjO7Yuls+ZRC/W7dMgtf7YmujaszL4Y0VYbxjF/urB/1n8aDM
EaZBzYeuvHC86Gqna/3oSvMVT9rZ4nP50u4Bf/Wm2pu2MfkafypX/am80Z/K
v3t/2i3bf32PKls8qrzOo8p/WI9asWlfbHb4U/mrP/3Vn97en4rD09Exn1UN
re875J1TLBvYffhQuz2MF6UXMgMDJRniqeMfnmLZChis/YUZDeCDPvTF0yUw
4+V0irZwc5+gDRcqcPoRhXHX3hMC2keFeEh790/E5kQcUpq5uC+2JuJMXokJ
vAbfp+Tctv7+zw/2N79/C+1PkpBF8UqfG2kfFHIFJbH5flPYJCNxls7t8y1x
qp8ev7EPt8WzN4Izre2zHWgggvqzXXGcKYV2C8uBRVNTsg3f7VV8QKlqXqah
1E+SuJCKwwm8mWI7P3CwsuWzXpRYs862eei24SznrqaPxDOZn/fp0mtY49x6
oq7QMpLgbPk7G7bPY3GS2K1uiAG6Ww7cmbrADU1a+tbFY6tbPIbRD6rReqe7
tee5qJjhm+Ip1qlSABqAr55YnNqEdqgLrYmnabgUVDIHDzgZFgzxjO/4rw+/
e9ac0za4Cm59Ej5XyX4lId7HQP0ktE8OVwns4NLEtHrpaeXWGOBQKwFLnaww
PFhHwsYpH0hIXafxqOPvH+2KdVRt1OX7q6q0cQ0MFAuAQf9Dl8jHtHhJvl+k
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
o79AOHQRET84OLIrYKD2/wMPVDqXkHcAAA==

-->

</rfc>
