<?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.27 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-evidence-trans-01" category="std" consensus="true" submissionType="IETF" tocDepth="6" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title>Evidence Transformations</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-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 Corporation</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="April" day="08"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>Evidence, RATS, attestation, verifier, supply chain, RIM, appraisal</keyword>
    <abstract>
      <?line 90?>

<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 99?>

<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="3" month="March" year="2025"/>
            <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-07"/>
        </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="3" month="March" year="2025"/>
            <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.

   This document does not aim to define a conceptual message format for
   Endorsements and Reference Values.  Instead, it extends RFC9334 to
   provide further details on Reference Values and Endorsements, as
   these topics were outside the scope of the RATS charter when RFC9334
   was developed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-06"/>
        </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 620?>

<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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

-->

</rfc>
