<?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-12" 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-12"/>
    <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="12"/>
    <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 defined in <xref 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="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:
H4sIAAAAAAAAA9Vd6XPjxpX/3n8FivNhxA3JOeJcyjoVZQ5bm4xnShrbtbW7
iZtEk4QFAgwaoExrZv/2fVdfACiNnVRtRbtJRiTQx+t3v99rzedz1RZtac6z
x1dmV7cmu2hbY1vdFnWVvWvqlcm7xtjs7Ori/fU0e1XldWPNzlStfaz0ctmY
w3mG3yVfqbxeVXoHw+aNXrfzwrTreaNbOzfRU/Nnz1W3zzVMeJ797pe//EzZ
brkrrIW52+Me3r589f61WtWVNZXt4KG26Yy63ciM39bNTVFtsi+autsrWHSV
/02XdWXkwWLf0L9s+/zp0989fa50Y/R5Nrk2q64p2uNE3dzCHFVrmsq085e4
VLXS7XlWVOta7YtzlWVtvTrPjsbCP23dtI1ZW//7cRd+Vbprt3VzrubwNnz2
cpG93+rSNPAgk+KlPpjwWd1sdFX8SIQ+zy6aXZHDN9kL2GxXtrAteMbsdFEC
DeHFRUsvLpCSf9zg54tVvcNFwJIMLHkygV9WdW7cP2GD8s/GbGgSeaSr2ga+
+vr6wq31y0X2p6K52dblj361X5rqJv4U1nuevW50V23rtWmy68v38KnjgMEX
svQtjLJYyih/tEW7WPsnF7mJ1n+1NbCWttHWmuw3v/Kbefzrz57/7leP/Y5e
6mYHR5238V6+MM1OV0e3n/eL7HVtLdDWb+f9tt5pG32c0v+rby5fXl6Edbdr
fvCP1aHIC020VlUNs7TFwSBfXL1+gSx7nhFb62a1lQ/hRz5c7W6VQlbqvfab
Z8/kCaNxG5fzl4sgIau6KXZuBPz3yBPWNAf/CP4Cz7x/8cX85eWLVzgLHIxw
Y0Y/dHiT9ygKJgce2+271kvOhB4SNTDBIRIlcAFbK1qzakEPyKO62eCRbdt2
b8+fPGl53JUbdoOjLmDOJ7d7WB/IV9U+6fZlrXP7BMefR+PP4/Hnh2eL53/b
d8vFPl/TXKgdQDz2TVHOsudPnyNjfPFu/sI07cmNflHWS12+K3WLpE9250Q/
wwGKdbGiNYxva0PD7GUY2s8qfss+sTLaPPn8SbTwN8gYtPBfw6dvX7ybX1+8
Pn1Eb/emkuMxqH2/B7Ik63+/NThK5vdxsd83urC6RBHcmVtQiRnoQdDGelmS
ms3OrhcXi9eLV4spDrmBx8b3e3t7u6hhAXyOhja85zXYJ/VqP7d6beZ7HuLE
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
P3wBxjf7FkRSr3AD6v8AMDFE2xF3AAA=

-->

</rfc>
