<?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-10" category="info" consensus="true" submissionType="IETF" updates="9334" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="RATS Endorsements">RATS Endorsements</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-10"/>
    <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="September" day="16"/>
    <area>Security</area>
    <workgroup>RATS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 68?>

<t>In the IETF Remote Attestation Procedures (RATS) architecture, 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 extends RFC9334 to provide further details on Reference Values and Endorsements, as these topics were outside the scope of the RATS charter when RFC9334 was developed.</t>
    </abstract>
    <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 76?>

<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 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>When <xref target="RFC9334"/> was developed, providing details of Reference Values and Endorsements were outside the scope of the RATS Working Group's charter.
However, this has since changed, and the purpose of this document is to update <xref target="RFC9334"/> to provide further details on Reference Values and Endorsements.</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 its "shape",
i.e., the structural composition of the Attester as the arrangement of its
various execution environments, which are typically organized
hierarchically.
The state of an Attester also encompasses the combination of static and
dynamic composition (e.g., provisioned and deployed software, firmware, and
micro-code), 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, operating system, etc.).  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.  Generally speaking, 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 in <xref target="RFC9334"/> 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 do 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"/> below 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 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 below.
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 verification 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 verification
of the Attester. 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., <xref target="RFC9711"/> <tt>ueid</tt>) 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 just 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>Specific protocol documents are also responsible for documenting how timeliness
of the Endorsement itself (e.g., using a certificate lifetime) is provided.</t>
      <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 contradicting, 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, 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, distinct from the <tt>signature-validity</tt> window.</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, 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 binding between Target Environment and Endorser might
be part of the Appraisal Policy for Evidence, or might be specified
as part of the Evidence itself (e.g., claims from a Target Environment
might include an identifier of what Endorser can provide additional
claims about it), or some combination of the two.
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-considerations">
      <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 man-in-the-middle attacks.
Minimizing the use of intermediaries is also vital, 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 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>
      </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="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 476?>

<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="Serhii Nikolaichuk"/>,
<contact fullname="Anton Sokolov"/>,
<contact fullname="Yogesh Deshpande"/>,
<contact fullname="Thomas Hardjono"/>,
<contact fullname="Laurence Lundblade"/>,
<contact fullname="Kathleen Moriarty"/>,
<contact fullname="Michael Richardson"/>,
<contact fullname="Jim Fenton"/>,
<contact fullname="Jen Linkova"/>,
<contact fullname="Steven Bellock"/>,
<contact fullname="Ned Smith"/>, and
<contact fullname="Carl Wallace"/></t>
    </section>
  </back>
  <!-- ##markdown-source:
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
rAt8+BRMYfYdyI/OcVnq/wBaklSwRW8AAA==

-->

</rfc>
