<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-endorsements-13" category="info" consensus="true" submissionType="IETF" updates="9334" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="RATS Endorsements">Remote Attestation Procedures (RATS) Endorsements</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-13"/>
    <author initials="D." surname="Thaler" fullname="Dave Thaler">
      <organization>Armidale Consulting</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>USA</country>
        </postal>
        <email>dave.thaler.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>NVIDIA</organization>
      <address>
        <email>tfossati@nvidia.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="14"/>
    <area>Security</area>
    <workgroup>RATS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 70?>

<t>In the IETF Remote Attestation Procedures (RATS) architecture (RFC 9334), a Verifier accepts Evidence and uses Appraisal Policy for Evidence, typically with additional input from Endorsements and Reference Values, to generate Attestation Results in formats that are useful for Relying Parties.
This document illustrates the purpose and role of Endorsements and discusses some considerations in the choice of message format for Endorsements in the scope of the RATS architecture.</t>
      <t>This document does not aim to define a conceptual message format for Endorsements and Reference Values.
Instead, it updates RFC 9334 by refining the description of Endorsements and Reference Values.
Specifically, this document classifies the RATS conceptual messages as actual state, reference state, or appraisal policy, and adds considerations on conditionally endorsed values, endorsing verification keys, timeliness, and multiple Endorsements.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Remote ATtestation ProcedureS Working Group mailing list (rats@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ietf-rats-wg/rats-endorsements"/>.</t>
    </note>
  </front>
  <middle>
    <?line 79?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref section="3" sectionFormat="of" target="RFC9334"/> provides an overview of the roles and conceptual messages in the IETF Remote ATtestation procedureS (RATS) architecture.
As discussed in that document, a Verifier accepts a well-defined set of RATS conceptual messages: Evidence, Endorsements,
and Reference Values, as well as Appraisal Policy for Evidence.
A Verifier appraises Evidence using Appraisal Policy for Evidence, typically against a set of Reference Values.</t>
      <t>This document updates <xref target="RFC9334"/> to provide further details on Reference Values and Endorsements.
Specifically, this document updates <xref target="RFC9334"/> as follows:</t>
      <ul spacing="normal">
        <li>
          <t>It classifies the conceptual messages described in <xref section="8" sectionFormat="of" target="RFC9334"/> into actual state, reference state, and appraisal policy (<xref target="statetypes"/>).</t>
        </li>
        <li>
          <t>It clarifies how Endorsements differ from Evidence and Reference Values (<xref target="conceptual"/>).</t>
        </li>
        <li>
          <t>It refines the treatment of Endorsements in <xref target="RFC9334"/> by adding considerations on conditionally endorsed values, the endorsement of verification keys, timeliness, and the handling of multiple Endorsements.</t>
        </li>
      </ul>
      <t>Readers of <xref target="RFC9334"/> are expected to read it together with this document; where the two differ in their description of Endorsements and Reference Values, this document takes precedence.</t>
    </section>
    <section anchor="statetypes">
      <name>Actual State vs Reference State</name>
      <t>Appraisal policies (Appraisal Policy for Evidence, and Appraisal Policy for
Attestation Results) involve comparing the actual state of an Attester against
desired or undesired states, to determine how trustworthy the Attester
is for the Relying Party's purposes. The state of an Attester includes
the structural composition of the Attester as the arrangement of its
various execution environments, which are typically organized
hierarchically.</t>
      <t>The state of an Attester also encompasses the combination of static and
dynamic composition (e.g., provisioned and deployed software, firmware, and
microcode), static and dynamic configuration, and the resulting operational state
of its components at a certain point in time. Thus, a Verifier needs to receive
conceptual messages with information about actual state, and information about desired/undesired
states, and an appraisal policy that controls how the two are compared.</t>
      <t>Each Attester in general has at least one Attesting Environment and one Target
Environment (e.g., hardware, firmware, or operating system).  Typically, each
Attester has multiple Target Environments, each with their own "Claims sets"
representing their actual state. Additionally,
there can be multiple Target Environments and Attesting Environments that are components of an Attester.</t>
      <t>"Actual state" is a group of Claims sets about the actual state of the Attester at a
given point in time. Each Claims set holds Claims about a specific Target Environment
that is essential to determining trustworthiness. Each Claim
has a name
and a singleton value, being a value collected from a Target Environment of a specific Attester at a given point
in time. Some Claims may inherently have multiple values, such as a list of
files in a given location on the device, but in the context of this document such
a list is treated as a single unit, representing one Attester at one point in time.</t>
      <t>"Reference state" is a group of Claims sets about the desired or undesired state of
an Attester.  Typically, each Claim has a name and
a set of potential values, being the values that are allowed/disallowed
when determining the trustworthiness of the Attester.
Generally, there may be varying degrees of gradation beyond just "allowed" or "disallowed."
Reference state can have a set of values per claim per Target Environment.
This is contrasted with actual state, which has a single value per claim per Target Environment.
Actual state applies to one device at one point in time.
Appraisal policy then specifies how to match the actual state values against a set of Reference Values.</t>
      <t>Some examples of such matching include:</t>
      <ul spacing="normal">
        <li>
          <t>An actual value must be in the set of allowed Reference Values.</t>
        </li>
        <li>
          <t>An actual value must not be in the set of disallowed Reference Values.</t>
        </li>
        <li>
          <t>An actual value must be in a range where two Reference Values are the min and max.</t>
        </li>
      </ul>
      <section anchor="conceptual">
        <name>RATS Conceptual Messages</name>
        <t>RATS "conceptual messages" (see <xref section="1" sectionFormat="of" target="RFC9999"/>) fall into the above categories as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Actual state: Evidence, Endorsements, Attestation Results</t>
          </li>
          <li>
            <t>Reference state: Reference Values</t>
          </li>
          <li>
            <t>Appraisal policy: Appraisal Policy for Evidence, Appraisal Policy for Attestation Results</t>
          </li>
        </ul>
        <t>Evidence and Endorsements are both "actual state" messages, but they differ in who asserts the Claims and about which Environment.
Evidence is a set of Claims about a Target Environment, generated (and typically signed) by the Attesting Environment.
Endorsements, by contrast, are provided by an Endorser -- a role distinct from the Attester, such as a manufacturer or certification body -- and typically carry Claims about an Attesting Environment that has no lower-layer Attesting Environment of its own to vouch for it, or other Claims about the Attester's features that the Attester is not in a position to self-assert.
See also <xref section="4.2" sectionFormat="of" target="RFC9334"/>.</t>
        <t>Hints (or suggestions) for how to perform a comparison might
be supplied by a Reference Value Provider (as part of Reference Values),
an Endorser (in an Endorsement), and/or an Attester (in Evidence),
but the Verifier Owner is authoritative for Appraisal Policy for Evidence,
and the Relying Party Owner is authoritative for Appraisal Policy for
Attestation Results as depicted in <xref section="3" sectionFormat="of" target="RFC9334"/>.</t>
        <t><xref target="input"/> shows an example of Verifier input for a layered Attester
as discussed in <xref section="3.2" sectionFormat="of" target="RFC9334"/>.</t>
        <figure anchor="input">
          <name>Example Verifier Input</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="584" viewBox="0 0 584 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 112,32 L 112,240" fill="none" stroke="black"/>
                <path d="M 112,272 L 112,320" fill="none" stroke="black"/>
                <path d="M 144,32 L 144,80" fill="none" stroke="black"/>
                <path d="M 144,112 L 144,160" fill="none" stroke="black"/>
                <path d="M 144,192 L 144,240" fill="none" stroke="black"/>
                <path d="M 144,272 L 144,320" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,80" fill="none" stroke="black"/>
                <path d="M 248,112 L 248,160" fill="none" stroke="black"/>
                <path d="M 248,192 L 248,240" fill="none" stroke="black"/>
                <path d="M 248,272 L 248,320" fill="none" stroke="black"/>
                <path d="M 312,80 L 312,176" fill="none" stroke="black"/>
                <path d="M 384,32 L 384,80" fill="none" stroke="black"/>
                <path d="M 384,112 L 384,160" fill="none" stroke="black"/>
                <path d="M 384,192 L 384,240" fill="none" stroke="black"/>
                <path d="M 384,272 L 384,320" fill="none" stroke="black"/>
                <path d="M 528,32 L 528,80" fill="none" stroke="black"/>
                <path d="M 528,112 L 528,160" fill="none" stroke="black"/>
                <path d="M 528,192 L 528,240" fill="none" stroke="black"/>
                <path d="M 528,272 L 528,320" fill="none" stroke="black"/>
                <path d="M 560,32 L 560,320" fill="none" stroke="black"/>
                <path d="M 112,32 L 128,32" fill="none" stroke="black"/>
                <path d="M 144,32 L 248,32" fill="none" stroke="black"/>
                <path d="M 384,32 L 528,32" fill="none" stroke="black"/>
                <path d="M 544,32 L 560,32" fill="none" stroke="black"/>
                <path d="M 144,80 L 248,80" fill="none" stroke="black"/>
                <path d="M 384,80 L 528,80" fill="none" stroke="black"/>
                <path d="M 144,112 L 248,112" fill="none" stroke="black"/>
                <path d="M 384,112 L 528,112" fill="none" stroke="black"/>
                <path d="M 144,160 L 248,160" fill="none" stroke="black"/>
                <path d="M 384,160 L 528,160" fill="none" stroke="black"/>
                <path d="M 144,192 L 248,192" fill="none" stroke="black"/>
                <path d="M 272,190 L 360,190" fill="none" stroke="black"/>
                <path d="M 272,194 L 360,194" fill="none" stroke="black"/>
                <path d="M 384,192 L 528,192" fill="none" stroke="black"/>
                <path d="M 112,240 L 128,240" fill="none" stroke="black"/>
                <path d="M 144,240 L 248,240" fill="none" stroke="black"/>
                <path d="M 384,240 L 528,240" fill="none" stroke="black"/>
                <path d="M 112,272 L 128,272" fill="none" stroke="black"/>
                <path d="M 144,272 L 248,272" fill="none" stroke="black"/>
                <path d="M 384,272 L 528,272" fill="none" stroke="black"/>
                <path d="M 112,320 L 128,320" fill="none" stroke="black"/>
                <path d="M 144,320 L 248,320" fill="none" stroke="black"/>
                <path d="M 384,320 L 528,320" fill="none" stroke="black"/>
                <path d="M 544,320 L 560,320" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="368,192 356,186.4 356,197.6" fill="black" transform="rotate(0,360,192)"/>
                <polygon class="arrowhead" points="320,176 308,170.4 308,181.6" fill="black" transform="rotate(90,312,176)"/>
                <polygon class="arrowhead" points="280,192 268,186.4 268,197.6" fill="black" transform="rotate(180,272,192)"/>
                <g class="text">
                  <text x="312" y="36">Appraisal</text>
                  <text x="172" y="52">Actual</text>
                  <text x="224" y="52">state</text>
                  <text x="300" y="52">Policy</text>
                  <text x="344" y="52">for</text>
                  <text x="432" y="52">Reference</text>
                  <text x="496" y="52">state</text>
                  <text x="188" y="68">(layer</text>
                  <text x="228" y="68">N)</text>
                  <text x="308" y="68">Evidence</text>
                  <text x="444" y="68">(layer</text>
                  <text x="484" y="68">N)</text>
                  <text x="576" y="68">R</text>
                  <text x="576" y="84">e</text>
                  <text x="576" y="100">f</text>
                  <text x="576" y="116">e</text>
                  <text x="68" y="132">Evidence</text>
                  <text x="172" y="132">Actual</text>
                  <text x="224" y="132">state</text>
                  <text x="432" y="132">Reference</text>
                  <text x="496" y="132">state</text>
                  <text x="576" y="132">r</text>
                  <text x="188" y="148">(layer</text>
                  <text x="228" y="148">2)</text>
                  <text x="444" y="148">(layer</text>
                  <text x="484" y="148">2)</text>
                  <text x="576" y="148">e</text>
                  <text x="576" y="164">n</text>
                  <text x="576" y="180">c</text>
                  <text x="576" y="196">e</text>
                  <text x="172" y="212">Actual</text>
                  <text x="224" y="212">state</text>
                  <text x="316" y="212">Comparison</text>
                  <text x="432" y="212">Reference</text>
                  <text x="496" y="212">state</text>
                  <text x="188" y="228">(layer</text>
                  <text x="228" y="228">1)</text>
                  <text x="296" y="228">Rules</text>
                  <text x="444" y="228">(layer</text>
                  <text x="484" y="228">1)</text>
                  <text x="576" y="228">V</text>
                  <text x="576" y="244">a</text>
                  <text x="576" y="260">l</text>
                  <text x="576" y="276">u</text>
                  <text x="52" y="292">Endorsements</text>
                  <text x="172" y="292">Actual</text>
                  <text x="224" y="292">state</text>
                  <text x="432" y="292">Reference</text>
                  <text x="496" y="292">state</text>
                  <text x="576" y="292">e</text>
                  <text x="188" y="308">(layer</text>
                  <text x="228" y="308">0)</text>
                  <text x="444" y="308">(layer</text>
                  <text x="484" y="308">0)</text>
                  <text x="576" y="308">s</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
             .-- .------------.   Appraisal    .-----------------. --.
             |   |Actual state|   Policy for   | Reference state |   |
             |   |  (layer N) |   Evidence     |    (layer N)    |   | R
             |   '------------'       |        '-----------------'   | e
             |                        |                              | f
             |   .------------.       |        .-----------------.   | e
    Evidence |   |Actual state|       |        | Reference state |   | r
             |   |  (layer 2) |       |        |    (layer 2)    |   | e
             |   '------------'       |        '-----------------'   | n
             |                        v                              | c
             |   .------------.  <==========>  .-----------------.   | e
             |   |Actual state|   Comparison   | Reference state |   |
             |   |  (layer 1) |   Rules        |    (layer 1)    |   | V
             '-- '------------'                '-----------------'   | a
                                                                     | l
             .-- .------------.                .-----------------.   | u
Endorsements |   |Actual state|                | Reference state |   | e
             |   |  (layer 0) |                |    (layer 0)    |   | s
             '-- '------------'                '-----------------' --'
]]></artwork>
          </artset>
        </figure>
        <t><xref target="input"/> shows Endorsements only at layer 0 as a typical example, not as a general rule.</t>
        <t>A Trust Anchor Store is a special case of
state above, where the Reference State would be the set of trust anchors
accepted (or rejected) by the Verifier, and the Actual State would be
a trust anchor used to appraise Evidence or Endorsements.</t>
        <t>In layered attestation using DICE <xref target="TCG-DICE"/>, for example, the actual state of each layer
is signed by a key held by the next lower layer.  Thus in the example diagram
above, the layer 2 actual state (e.g., OS state) is signed by a layer 1 key
(e.g., a signing key used by the firmware), the layer 1 actual state (e.g.,
firmware state) is signed by a layer 0 key (e.g., a hardware key stored in ROM),
and the layer 0 actual state (hardware specs and key ID) is signed by a layer 0
key (e.g., a vendor key) which is matched against the Verifier's trust anchor
store, which is part of the layer 0 reference state depicted above.</t>
      </section>
    </section>
    <section anchor="conditionally-endorsed-values">
      <name>Conditionally Endorsed Values</name>
      <t>The example depicted in <xref target="input"/> shows Evidence containing actual state for layers 1 through N,
and an Endorsement containing actual state for layer 0. However,
some claims in Endorsements might be conditional and so are only treated as actual
state if a condition is met.</t>
      <t>A claim is conditional if it only applies if other actual state matches Reference Values, according to some matching policy.
For example, an Endorser for a given CPU might provide additional information about the CPU's supported features based on the current firmware configuration.
Alternatively, an Endorser might provide information indicating that a specific security certification (e.g., <xref target="GP-Cert"/> and <xref target="OCP-SAFE"/>) is associated with the device if the serial number falls within a given range and the firmware is configured in a specific way.</t>
      <figure anchor="conditional">
        <name>Conditional Endorsements</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="464" viewBox="0 0 464 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,80 L 8,112" fill="none" stroke="black"/>
              <path d="M 72,120 L 72,176" fill="none" stroke="black"/>
              <path d="M 128,80 L 128,112" fill="none" stroke="black"/>
              <path d="M 168,176 L 168,208" fill="none" stroke="black"/>
              <path d="M 248,80 L 248,112" fill="none" stroke="black"/>
              <path d="M 280,176 L 280,208" fill="none" stroke="black"/>
              <path d="M 344,80 L 344,112" fill="none" stroke="black"/>
              <path d="M 376,112 L 376,128" fill="none" stroke="black"/>
              <path d="M 376,160 L 376,176" fill="none" stroke="black"/>
              <path d="M 456,80 L 456,112" fill="none" stroke="black"/>
              <path d="M 256,48 L 448,48" fill="none" stroke="black"/>
              <path d="M 8,80 L 128,80" fill="none" stroke="black"/>
              <path d="M 248,80 L 456,80" fill="none" stroke="black"/>
              <path d="M 144,94 L 232,94" fill="none" stroke="black"/>
              <path d="M 144,98 L 232,98" fill="none" stroke="black"/>
              <path d="M 8,112 L 128,112" fill="none" stroke="black"/>
              <path d="M 248,112 L 456,112" fill="none" stroke="black"/>
              <path d="M 168,176 L 280,176" fill="none" stroke="black"/>
              <path d="M 88,192 L 168,192" fill="none" stroke="black"/>
              <path d="M 280,192 L 360,192" fill="none" stroke="black"/>
              <path d="M 168,208 L 280,208" fill="none" stroke="black"/>
              <path d="M 448,48 L 456,64" fill="none" stroke="black"/>
              <path d="M 248,64 L 256,48" fill="none" stroke="black"/>
              <path d="M 88,192 C 79.16936,192 72,184.83064 72,176" fill="none" stroke="black"/>
              <path d="M 360,192 C 368.83064,192 376,184.83064 376,176" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="240,96 228,90.4 228,101.6" fill="black" transform="rotate(0,232,96)"/>
              <polygon class="arrowhead" points="152,96 140,90.4 140,101.6" fill="black" transform="rotate(180,144,96)"/>
              <polygon class="arrowhead" points="80,120 68,114.4 68,125.6" fill="black" transform="rotate(270,72,120)"/>
              <g class="text">
                <text x="304" y="36">Conditional</text>
                <text x="404" y="36">Endorsements</text>
                <text x="44" y="100">Actual</text>
                <text x="96" y="100">State</text>
                <text x="296" y="100">Condition</text>
                <text x="400" y="100">claims-sets</text>
                <text x="192" y="116">Endorsement</text>
                <text x="180" y="132">Matching</text>
                <text x="168" y="148">Rules</text>
                <text x="356" y="148">[condition</text>
                <text x="412" y="148">is</text>
                <text x="444" y="148">met]</text>
                <text x="224" y="196">claims-sets</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                                Conditional Endorsements
                               .-----------------------.
                              /                         \
.--------------.              .-----------+-------------.
| Actual State | <==========> | Condition | claims-sets |
'--------------'  Endorsement '-----------+---+---------'
        ^         Matching                    |
        |         Rules                [condition is met]
        |                                     |
        |           .-------------.           |
         '----------+ claims-sets +----------'
                    '-------------'
]]></artwork>
        </artset>
      </figure>
      <t>Thus, actual state is determined by starting with a collection of unconditional Claims and adding any conditional Claims whose conditions are met based on the actual state (<xref target="conditional"/>).
This process is then repeated until no more conditional Claims are added.</t>
      <t>Verifier policies around matching actual state against
reference state are normally expressed in Appraisal Policy for Evidence.
Similarly, reference state is normally expressed in the Reference Values
conceptual message.  Such policies allow a Verifier and Relying Parties to make
their decisions about the trustworthiness of an Attester.</t>
      <t>The use of conditionally endorsed values, however, is different in that
a matching policy is not about trustworthiness (and hence not "appraisal" per se)
but rather about whether an Endorser's claim is applicable or not, and thus
usable as input to trustworthiness appraisal or not.</t>
      <t>As such the matching policy for conditionally endorsed values must be up to the Endorser not the Verifier Owner and/or Relying Party Owner.
Thus, an Endorsement format that supports conditionally endorsed values (e.g., <xref target="I-D.ietf-rats-corim"/>) would probably include some minimal matching policy (e.g., exact match against a singleton reference value).
This unfortunately complicates the Verifier design as it may need multiple parsers for matching policies.</t>
    </section>
    <section anchor="endorsing-keys">
      <name>Endorsing Verification Keys</name>
      <t>Attesting Environments have cryptographic keys that allow authenticating the Evidence that they produce.</t>
      <t>Typically,
the bottom-most Attesting Environment in an Attester will sign Claims about one or more Target Environments
(see also the DICE example at the end of <xref target="conceptual"/>)
with a private key that the Attesting Environment possesses, and the Verifier will appraise
the resulting Evidence with a public key it possesses, called a verification key.
While use of public key cryptography is typical for a verification key, cryptography other than public key may also be used.</t>
      <t>Endorsing the linkage between such verification keys and their associated Attesting Environments is crucial to the appraisal process.</t>
      <t>The Verifier must have access to a verification key for each Attesting Environment. Such a key
could be provisioned directly in the Verifier. However, for scalability the Verifier
typically is provisioned with a trusted root CA certificate (a trust anchor). This means that an
Endorsement from an Endorser includes the Attesting Environment's verification key material
in the form of a certificate that chains up to that trust anchor (a certification path).  Such a certificate
might be stored in the Verifier, or might be resolved on demand via some protocol,
or might be passed to the Verifier along with the Evidence to appraise, depending on the protocol or general remote attestation procedure.
Details are out of scope of this document and left to protocol or procedure specifications.
A specific detail that is out of scope is whether an unreachable Endorser only postpones the appraisal of Evidence or
renders it permanently impossible, which depends on whether the Endorsement
remains retrievable and applicable to the previously collected Evidence.</t>
      <t>Specific protocol documents are also responsible for documenting what
particular algorithm or cryptographic protocol is used for the appraisal
of the Evidence. The verification key (i.e., a key with the purpose of signature checking) could be, typically, a symmetric key, a raw public key, or a certified public key.</t>
      <t>Evidence can contain an identifier for the Attester
(e.g., <tt>ueid</tt> <xref target="RFC9711"/>) in a dedicated "identity claim"
that can be used by the Verifier to look up its verification key for the Attester.
The granularity at which such identifiers, and therefore the signature-checking keys
endorsed for them, apply (e.g., per instance, class, or other Claims) is out of scope
of this document.</t>
      <t>While identity Claims are another
type of Claims that may be endorsed, some implementations might treat them
differently. For example, a Verifier might perform a first step to
cryptographically appraise that the Evidence
has been generated by the Attester that has the key material associated
with the identifier in the identity Claim(s) before spending effort on
another step to appraise other Claims for determining trustworthiness.</t>
      <t>This document treats identity Claims the same as other Claims but allows
Appraisal Policy for Evidence to have multiple phases if desired.</t>
    </section>
    <section anchor="timeliness">
      <name>Timeliness</name>
      <t><xref section="8.1" sectionFormat="of" target="RFC9334"/> discusses timeliness of Claims in Evidence.  When
additional "static" Claims (i.e., Claims representing invariant properties of the environment) are provided in Endorsements, no additional steps
are needed for timeliness of those Claims since they are static rather than
dynamically varying over time.  Once timeliness of Evidence is appraised,
any matching conditionally endorsed values can be applied.</t>
      <t>If Endorsements ever carry dynamic Claims in the future (e.g., whether
any vulnerabilities in the version of firmware are currently known), then
the same timeliness considerations as for Claims in Evidence would apply,
and would be the responsibility of specific protocol documents. See
<xref section="10" sectionFormat="of" target="RFC9334"/> and <xref section="A" sectionFormat="of" target="RFC9334"/> for further discussion.</t>
      <t>This distinction between static and dynamic Claims is about the invariance
of properties of the environment, not about the Endorser's assessment of
those properties.  A condition in a Conditionally Endorsed Value (<xref target="conditional"/>)
is static in the sense that, once matched against sufficiently timely
Evidence, it deterministically selects a claims-set; however, the verdict an
Endorser attaches to a given condition can itself change over time as the
Endorser's own knowledge evolves, even though the condition's matching value
does not.  For example, an Endorser might issue a Conditional Endorsement
stating that if a given RoT firmware measurement matches value H, the device
is trusted, and later, after a vulnerability is discovered in that firmware,
issue a further Conditional Endorsement stating that if the same value H is
matched, the device is untrusted.  Both Endorsements may be signed by an
Endorser that remains in good standing, so this is a different problem than
Endorser standing: it is about which of two (or more) temporally scoped,
and potentially contradictory, Endorsements apply at the time of
appraisal.  Endorsement formats therefore need a way to bind a validity
period to Endorsement content, in addition to any validity information
about the Endorser's standing (discussed below), so that a Verifier can
determine which Endorsement supersedes others given the same condition.
For example, <xref target="I-D.ietf-rats-corim"/> provides a <tt>rim-validity</tt> window in the
corim-map for this purpose.
Conversely, an attacker, or a party that merely relays Endorsements (e.g., a
CoSERV server <xref target="I-D.ietf-rats-coserv"/>), might present only an older Endorsement and
withhold a newer one that supersedes or revokes it.  A validity period alone
does not prevent this, because the older Endorsement can still be within its
validity window.  A Verifier therefore needs to obtain Endorsements from a
source it trusts to supply the current set (e.g., directly from the Endorser
over an authenticated channel, see <xref target="security"/>), or to learn of revocations or
supersession through a separate mechanism (e.g., a revocation list or a
sequence number covering the Endorser's Endorsements), as determined by the
specific protocol or appraisal policy.</t>
      <t>The Endorser's standing (i.e., the fact that its signing key
or certificate is still valid or its trust anchor is still recognized) is a
further, independent consideration, logically separate from the validity
of the Endorsement content discussed above.  Whether the Endorser's standing
is evaluated relative to the time the Evidence was generated or the time of
appraisal is a decision for the specific protocol or appraisal policy, and
needs to be documented as part of the timeliness of the Endorsement itself.
For example, the CoRIM data model provides a <tt>signature-validity</tt> window
that bounds the validity of the Endorser's signature, distinct from the
<tt>rim-validity</tt> window discussed above, and the CoRIM processor described
in <xref section="8" sectionFormat="of" target="I-D.ietf-rats-corim"/> checks it, together with revocation and
trust anchor status, relative to the time of appraisal.</t>
    </section>
    <section anchor="multiple-endorsements">
      <name>Multiple Endorsements</name>
      <t><xref target="input"/> shows an example with an Endorsement at layer 0, such as
a hardware manufacturer providing claims about the hardware. However, the
same could be done at other layers in addition.  For example, an OS vendor
might provide additional static Claims about the OS software it provides,
and application developers might provide additional static Claims about
the applications they release.</t>
      <t><xref target="multiple"/> depicts an example with an Attester consisting of an application,
OS, firmware, and hardware, each from a different vendor that provides
an Endorsement for their own Target Environment, containing additional Claims
about that Target Environment.  Thus each Target Environment (application, OS, firmware,
and hardware) has one set of Claims ("claims set 1") in the Evidence, and an additional
set of Claims ("claims set 2") in the Endorsement from its manufacturer.
A Verifier that trusts each Endorser would thus use the Claims sets from both conceptual messages (Endorsements and Evidence) when comparing against reference state for a given Target Environment.</t>
      <figure anchor="multiple">
        <name>Multiple Endorsements</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="512" width="520" viewBox="0 0 520 512" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 128,32 L 128,112" fill="none" stroke="black"/>
              <path d="M 128,144 L 128,224" fill="none" stroke="black"/>
              <path d="M 128,256 L 128,336" fill="none" stroke="black"/>
              <path d="M 128,368 L 128,448" fill="none" stroke="black"/>
              <path d="M 232,48 L 232,96" fill="none" stroke="black"/>
              <path d="M 232,160 L 232,208" fill="none" stroke="black"/>
              <path d="M 232,272 L 232,320" fill="none" stroke="black"/>
              <path d="M 232,384 L 232,432" fill="none" stroke="black"/>
              <path d="M 336,48 L 336,96" fill="none" stroke="black"/>
              <path d="M 336,160 L 336,208" fill="none" stroke="black"/>
              <path d="M 336,272 L 336,320" fill="none" stroke="black"/>
              <path d="M 336,384 L 336,432" fill="none" stroke="black"/>
              <path d="M 352,32 L 352,112" fill="none" stroke="black"/>
              <path d="M 352,144 L 352,224" fill="none" stroke="black"/>
              <path d="M 352,256 L 352,336" fill="none" stroke="black"/>
              <path d="M 352,368 L 352,448" fill="none" stroke="black"/>
              <path d="M 368,32 L 368,448" fill="none" stroke="black"/>
              <path d="M 384,48 L 384,96" fill="none" stroke="black"/>
              <path d="M 384,160 L 384,208" fill="none" stroke="black"/>
              <path d="M 384,272 L 384,320" fill="none" stroke="black"/>
              <path d="M 384,384 L 384,432" fill="none" stroke="black"/>
              <path d="M 432,456 L 432,480" fill="none" stroke="black"/>
              <path d="M 488,48 L 488,96" fill="none" stroke="black"/>
              <path d="M 488,160 L 488,208" fill="none" stroke="black"/>
              <path d="M 488,272 L 488,320" fill="none" stroke="black"/>
              <path d="M 488,384 L 488,432" fill="none" stroke="black"/>
              <path d="M 512,32 L 512,448" fill="none" stroke="black"/>
              <path d="M 128,32 L 352,32" fill="none" stroke="black"/>
              <path d="M 368,32 L 512,32" fill="none" stroke="black"/>
              <path d="M 232,48 L 336,48" fill="none" stroke="black"/>
              <path d="M 384,48 L 488,48" fill="none" stroke="black"/>
              <path d="M 80,64 L 112,64" fill="none" stroke="black"/>
              <path d="M 232,96 L 336,96" fill="none" stroke="black"/>
              <path d="M 384,96 L 488,96" fill="none" stroke="black"/>
              <path d="M 128,112 L 352,112" fill="none" stroke="black"/>
              <path d="M 128,144 L 352,144" fill="none" stroke="black"/>
              <path d="M 232,160 L 336,160" fill="none" stroke="black"/>
              <path d="M 384,160 L 488,160" fill="none" stroke="black"/>
              <path d="M 80,176 L 112,176" fill="none" stroke="black"/>
              <path d="M 232,208 L 336,208" fill="none" stroke="black"/>
              <path d="M 384,208 L 488,208" fill="none" stroke="black"/>
              <path d="M 128,224 L 352,224" fill="none" stroke="black"/>
              <path d="M 128,256 L 352,256" fill="none" stroke="black"/>
              <path d="M 232,272 L 336,272" fill="none" stroke="black"/>
              <path d="M 384,272 L 488,272" fill="none" stroke="black"/>
              <path d="M 80,288 L 112,288" fill="none" stroke="black"/>
              <path d="M 232,320 L 336,320" fill="none" stroke="black"/>
              <path d="M 384,320 L 488,320" fill="none" stroke="black"/>
              <path d="M 128,336 L 352,336" fill="none" stroke="black"/>
              <path d="M 128,368 L 352,368" fill="none" stroke="black"/>
              <path d="M 232,384 L 336,384" fill="none" stroke="black"/>
              <path d="M 384,384 L 488,384" fill="none" stroke="black"/>
              <path d="M 80,400 L 112,400" fill="none" stroke="black"/>
              <path d="M 232,432 L 336,432" fill="none" stroke="black"/>
              <path d="M 384,432 L 488,432" fill="none" stroke="black"/>
              <path d="M 128,448 L 352,448" fill="none" stroke="black"/>
              <path d="M 368,448 L 512,448" fill="none" stroke="black"/>
              <path d="M 80,496 L 416,496" fill="none" stroke="black"/>
              <path d="M 416,496 C 424.83064,496 432,488.83064 432,480" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="440,456 428,450.4 428,461.6" fill="black" transform="rotate(270,432,456)"/>
              <polygon class="arrowhead" points="120,400 108,394.4 108,405.6" fill="black" transform="rotate(0,112,400)"/>
              <polygon class="arrowhead" points="120,288 108,282.4 108,293.6" fill="black" transform="rotate(0,112,288)"/>
              <polygon class="arrowhead" points="120,176 108,170.4 108,181.6" fill="black" transform="rotate(0,112,176)"/>
              <polygon class="arrowhead" points="120,64 108,58.4 108,69.6" fill="black" transform="rotate(0,112,64)"/>
              <g class="text">
                <text x="16" y="52">App</text>
                <text x="36" y="68">Endorser</text>
                <text x="176" y="68">Endorsement</text>
                <text x="280" y="68">app</text>
                <text x="432" y="68">app</text>
                <text x="260" y="84">claims</text>
                <text x="304" y="84">set</text>
                <text x="328" y="84">2</text>
                <text x="412" y="84">claims</text>
                <text x="456" y="84">set</text>
                <text x="480" y="84">1</text>
                <text x="504" y="100">E</text>
                <text x="504" y="116">v</text>
                <text x="504" y="132">i</text>
                <text x="504" y="148">d</text>
                <text x="12" y="164">OS</text>
                <text x="504" y="164">e</text>
                <text x="36" y="180">Endorser</text>
                <text x="176" y="180">Endorsement</text>
                <text x="284" y="180">OS</text>
                <text x="436" y="180">OS</text>
                <text x="504" y="180">n</text>
                <text x="260" y="196">claims</text>
                <text x="304" y="196">set</text>
                <text x="328" y="196">2</text>
                <text x="412" y="196">claims</text>
                <text x="456" y="196">set</text>
                <text x="480" y="196">1</text>
                <text x="504" y="196">c</text>
                <text x="504" y="212">e</text>
                <text x="36" y="276">Firmware</text>
                <text x="36" y="292">Endorser</text>
                <text x="176" y="292">Endorsement</text>
                <text x="284" y="292">firmware</text>
                <text x="436" y="292">firmware</text>
                <text x="260" y="308">claims</text>
                <text x="304" y="308">set</text>
                <text x="328" y="308">2</text>
                <text x="412" y="308">claims</text>
                <text x="456" y="308">set</text>
                <text x="480" y="308">1</text>
                <text x="36" y="388">Hardware</text>
                <text x="36" y="404">Endorser</text>
                <text x="176" y="404">Endorsement</text>
                <text x="284" y="404">hardware</text>
                <text x="436" y="404">hardware</text>
                <text x="260" y="420">claims</text>
                <text x="304" y="420">set</text>
                <text x="328" y="420">2</text>
                <text x="412" y="420">claims</text>
                <text x="456" y="420">set</text>
                <text x="480" y="420">1</text>
                <text x="36" y="500">Attester</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
               .---------------------------. .-----------------.
App            |            .------------. | | .------------.  |
Endorser ----> |Endorsement |    app     | | | |    app     |  |
               |            |claims set 2| | | |claims set 1|  |
               |            '------------' | | '------------' E|
               '---------------------------' |                v|
                                             |                i|
               .---------------------------. |                d|
OS             |            .------------. | | .------------. e|
Endorser ----> |Endorsement |     OS     | | | |     OS     | n|
               |            |claims set 2| | | |claims set 1| c|
               |            '------------' | | '------------' e|
               '---------------------------' |                 |
                                             |                 |
               .---------------------------. |                 |
Firmware       |            .------------. | | .------------.  |
Endorser ----> |Endorsement |  firmware  | | | |  firmware  |  |
               |            |claims set 2| | | |claims set 1|  |
               |            '------------' | | '------------'  |
               '---------------------------' |                 |
                                             |                 |
               .---------------------------. |                 |
Hardware       |            .------------. | | .------------.  |
Endorser ----> |Endorsement |  hardware  | | | |  hardware  |  |
               |            |claims set 2| | | |claims set 1|  |
               |            '------------' | | '------------'  |
               '---------------------------' '-----------------'
                                                     ^
                                                     |
Attester -------------------------------------------'
]]></artwork>
        </artset>
      </figure>
      <t>When Target Environments from different vendors each have their own
Endorser, a Verifier must be able to distinguish
which Endorser is allowed to provide an Endorsement about which
Target Environment.  For example, the OS Endorser might be trusted to
provide additional claims about the OS, but not about the hardware.
Thus, it is not as simple as saying that a Verifier has a trusted
set of Endorsers. The authority for the binding between Target Environment
and Endorser comes from the Appraisal Policy for Evidence, which is
independent of the Endorser, the Target Environment, and the Evidence.
Evidence cannot establish that authority on its own: a Verifier that relied
solely on a Claim in Evidence naming the Endorser for a Target Environment
would be trusting the Attester to select the party allowed to vouch for it.
Evidence can still play a supporting role, e.g., Claims from a Target
Environment might include an identifier that the Verifier uses to locate
candidate Endorsements, but the Verifier accepts an Endorsement
only if the Appraisal Policy for Evidence authorizes that Endorser
for that Target Environment (for example, by listing the Endorser's
trust anchor as acceptable for that class of Target Environment).
An Endorsement format specification should explain how this concern
is addressed.</t>
    </section>
    <section anchor="endorsement-format-considerations">
      <name>Endorsement Format Considerations</name>
      <t>This section discusses considerations around formats for Endorsements.</t>
      <section anchor="formats-security">
        <name>Security Considerations for Formats</name>
        <t>In many scenarios, a Verifier can also support a variety of different formats,
and while code size may not be a huge concern, simplicity and correctness of code
is essential to security.  "Complexity is the enemy of security" is a popular
security mantra and hence to increase security, any decrease in complexity
helps.  As such, using the same format for both Evidence and Endorsements
can reduce complexity and hence increase security.</t>
      </section>
      <section anchor="scalability">
        <name>Scalability Considerations for Formats</name>
        <t>This document assumes that Reference Value Providers typically
provide the same information to a potentially large number of clients
(Verifiers, or potentially to other entities for later relay to a Verifier),
and are generally on devices that are not constrained nodes, and hence additional
scalability, including code size, is not a significant concern.  This document also assumes
the same is true of Endorsers.</t>
        <t>The scenario where scalability in terms of code size is strongest, however, is
when a Verifier is embedded into a constrained node.  For example, when a constrained
node is a Relying Party for most purposes, but still needs a way to establish
trust in the Verifier it will use.  In such a case, the Relying Party may have
a constrained Verifier embedded in it that is only capable of appraising Evidence
provided by its desired Verifier.  Thus, the Relying Party uses its embedded Verifier
for purposes of appraising its desired Verifier which it treats as only an Attester,
and once appraised, then uses it for appraisal of all other Attesters.
In this scenario, the embedded Verifier may have code and data size constraints,
and a very simple (by comparison) Appraisal Policy for Evidence and desired state (e.g.,
a required trust anchor that Evidence must be signed with and little else).</t>
        <t>Using the same message format for Evidence, Endorsements, and (later) Attestation Results received
from the later Verifier, can provide code size savings due to having only a single parser
in this limited case.</t>
        <t>Similarly, an embedded constrained Verifier can choose to not support conditionally
endorsed values to avoid the complexity introduced by them.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t><xref section="7.4" sectionFormat="of" target="RFC9334"/> discusses how a Verifier stores one or more trust anchors in its trust anchor store.
A Verifier expresses its trust in an Endorser by storing a trust anchor for that Endorser.
The binding from an Endorsement to a given Target Environment is done as discussed in <xref target="endorsing-keys"/> of this document.</t>
      <t><xref target="RFC9334"/> (especially Sections 3.2 and 12) also discusses security considerations around the remote attestation of layers, and sources of appraisal policies.
<xref target="endorsing-keys"/> of this document covers additional considerations in these areas, while <xref target="formats-security"/> covers additional considerations around Endorsement formats.</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 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>A Verifier can use cryptographically protected, mutually authenticated secure channels to all its trusted input sources, particularly, Endorsers and Reference Value Providers.
Signing the Endorsement or Reference Values themselves protects their integrity and authenticates their source, but a mutually authenticated channel additionally lets the source authenticate and authorize the requesting Verifier and protects potentially sensitive content (see <xref target="privacy"/>) against disclosure to unauthorized parties.
These links should reach as deep as possible into the Verifier, potentially terminating within the appraisal session context, to avoid on-path attacks.
Minimizing the use of intermediaries is also important, as each intermediary is another party that might need to be trusted.
Refer to <xref section="12.2" sectionFormat="of" target="RFC9334"/> for information on conceptual message protection.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>The privacy considerations regarding conceptual messages, as discussed in <xref section="11" sectionFormat="of" target="RFC9334"/>, apply.
In particular, since Endorsements and Reference Values can contain privacy-sensitive information (e.g., Personally Identifiable Information (PII)) about a large number of devices, strong confidentiality protection is required at the time of conveyance.</t>
      <t>Utilizing the public part of an asymmetric key pair that is used for Evidence generation to identify an Attesting Environment raises privacy considerations that must be carefully considered.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not require any actions by IANA.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC9999">
          <front>
            <title>Remote ATtestation procedureS (RATS) Conceptual Message Wrapper (CMW)</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>The conceptual messages introduced by the Remote ATtestation procedureS (RATS) architecture (RFC 9334) are protocol-agnostic data units that are conveyed between RATS roles during RATS interactions. Conceptual messages describe the meaning and function of such data units within RATS data flows without specifying a wire format, encoding, transport mechanism, or processing details. The initial set of conceptual messages is defined in Section 8 of RFC 9334 and includes Evidence, Attestation Results, Endorsements, Reference Values, and Appraisal Policies.</t>
              <t>This document introduces the Conceptual Message Wrapper (CMW) that provides a common structure to encapsulate these messages. It defines a dedicated Concise Binary Object Representation (CBOR) tag, corresponding JSON Web Token (JWT) and CBOR Web Token (CWT) claims, and an X.509 extension.</t>
              <t>Together, these mechanisms allow CMWs to be used in CBOR-based protocols, web APIs using JWTs and CWTs, and PKIX artifacts such as X.509 certificates. Additionally, this document defines media types and CoAP Content-Formats that may be used to identify CMWs when transported over protocols such as HTTP, MIME, and CoAP.</t>
              <t>The goal is to improve the interoperability and flexibility of remote attestation protocols. Introducing a shared message format such as CMW enables consistent support for different attestation message types, enables the evolution of message serialization formats without breaking compatibility, and avoids the need to redefine how messages are handled within each protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9999"/>
          <seriesInfo name="DOI" value="10.17487/RFC9999"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-11"/>
        </reference>
        <reference anchor="I-D.ietf-rats-coserv">
          <front>
            <title>Concise Selector for Endorsements and Reference Values</title>
            <author fullname="Paul Howard" initials="P." surname="Howard">
              <organization>Arm</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Shefali Kamal" initials="S." surname="Kamal">
              <organization>Fujitsu</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>AMD</organization>
            </author>
            <author fullname="Ding Ma" initials="D." surname="Ma">
              <organization>Alibaba Cloud</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   In the Remote Attestation Procedures (RATS) architecture, Verifiers
   require Endorsements and Reference Values to assess the
   trustworthiness of Attesters.  This document specifies the Concise
   Selector for Endorsements and Reference Values (CoSERV), a structured
   query/result format designed to facilitate the discovery and
   retrieval of these artifacts from various providers.  CoSERV defines
   a query language and corresponding result structure using CDDL, which
   can be serialized in CBOR format, enabling efficient interoperability
   across diverse systems.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-coserv-07"/>
        </reference>
        <reference anchor="TCG-DICE" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-v1.2_pub.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2025" month="April"/>
          </front>
        </reference>
        <reference anchor="GP-Cert" target="https://globalplatform.org/certifications/security-certification/">
          <front>
            <title>Security Certification</title>
            <author>
              <organization>GlobalPlatform</organization>
            </author>
            <date year="2026" month="March"/>
          </front>
        </reference>
        <reference anchor="OCP-SAFE" target="https://www.opencompute.org/projects/ocp-safe-program">
          <front>
            <title>The OCP Security Appraisal Framework and Enablement (S.A.F.E.) Program</title>
            <author>
              <organization>Open Compute Project</organization>
            </author>
            <date year="2026" month="March"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 501?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors wish to thank the following individuals for feedback and ideas that contributed to this document:
<contact fullname="Roman Danyliw"/>,
<contact fullname="Serhii Nikolaichuk"/>,
<contact fullname="Anton Sokolov"/>,
<contact fullname="Mike Bishop"/>,
<contact fullname="Yogesh Deshpande"/>,
<contact fullname="Thomas Hardjono"/>,
<contact fullname="Laurence Lundblade"/>,
<contact fullname="Kathleen Moriarty"/>,
<contact fullname="Ketan Talaulikar"/>,
<contact fullname="Michael Richardson"/>,
<contact fullname="Mohamed Boucadair"/>,
<contact fullname="Jim Fenton"/>,
<contact fullname="Jen Linkova"/>,
<contact fullname="Deb Cooley"/>,
<contact fullname="Steven Bellock"/>,
<contact fullname="Ned Smith"/>, and
<contact fullname="Carl Wallace"/></t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
