<?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.24 (Ruby 3.3.6) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-deshpande-rats-multi-verifier-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="RATS MultiVerifier">Remote Attestation MultiVerifier</title>
    <seriesInfo name="Internet-Draft" value="draft-deshpande-rats-multi-verifier-00"/>
    <author initials="Y." surname="Deshpande" fullname="Yogesh Deshpande">
      <organization>Arm Ltd</organization>
      <address>
        <email>yogesh.deshpande@arm.com</email>
      </address>
    </author>
    <author initials="J." surname="Zhang" fullname="Jun Zhang">
      <organization>Huawei Technologies France S.A.S.U.</organization>
      <address>
        <email>junzhang1@huawei.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholtz" fullname="Henk Birkholtz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date/>
    <area>Security</area>
    <workgroup>RATS</workgroup>
    <abstract>
      <?line 52?>

<t>IETF RATS Architecture, defines the key role of a Verifier.  In a complex system, this role needs to be performed by multiple Verfiers coordinating together to assess the full trustworthiness of an Attester. This document focuses on various topological patterns for a multiple Verifier system.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ietf-rats/draft-deshpande-multi-verifier"/>.</t>
    </note>
  </front>
  <middle>
    <?line 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A Verifier plays a Central Role in any Remote Attestation System. A Verifier appraises the Attester and produces Attestation Results, which is essentially a verdict of attestation. The results are consumed by the Relying Party to conclude the trustworthiness of the Attester, prior to making any critical decisions about the Attester, such as admitting to network or releasing confidential resources to it.
Attesters can come in wide varieties of shape and form. For example Attesters can be endpoints (edge or IoT devices) or complex machines in the cloud. Composite Attester <xref target="sec-glossary"/>, generate Evidence that consists of multiple parts. For example, in data center servers, it is not uncommon for separate attesting environments (AE) to serve a subsection of the entire machine. One AE might measure and attest to what was booted on the main CPU, while another AE might measure and attest to what was booted machine's GPU. Throughout this document we use the term Component Attester <xref target="sec-glossary"/> to address the sub-entity or an individual layer which produces its own Evidence in a Composite Attester system.</t>
      <t>A Verifier needs Reference Values and Endorsements from the supply chain actors (for example OEM/ODM) to conduct the appraisal of an Attester. Given the range of Component Attesters in a Composite Attester, it is possible that a single Verifier may not have all the capabilities or the information required to conduct the complete appraisal of the Composite Attester. In this case, multiple Verifiers need to collaborate to conclude the appraisal and produce the Attestation Results.</t>
      <t>This document describes various topological patterns of multiple Verifiers that work in a coordinated manner to conduct appraisal of a Composite Attester to produce an Attestation Results.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <t>This document uses terms and concepts defined by the RATS architecture. For a complete glossary, see <xref section="4" sectionFormat="of" target="RFC9334"/>.</t>
      <t>Specifically this document heavily uses the terms Layered Attester <xref section="3.2" sectionFormat="of" target="RFC9334"/> and Composite Device <xref section="3.3" sectionFormat="of" target="RFC9334"/></t>
      <section anchor="sec-glossary">
        <name>Glossary</name>
        <t>This document uses the following terms:</t>
        <dl>
          <dt>Composite Attester:</dt>
          <dd>
            <t>A Composite Attester is either a Composite Device or a Layered Attester or any composition involving a combination of one or more Composite Devices or Layered Attesters.</t>
          </dd>
          <dt>Component Attester:</dt>
          <dd>
            <t>A Component Attester is a single Attester of a Composite Attester. For this document, a Component Attester is an entity which produces a single Evidence which can be appraised by a Verifier.</t>
          </dd>
          <dt>Composite Evidence:</dt>
          <dd>
            <t>Evidence produced by a Composite Attester.</t>
          </dd>
          <dt>Lead Verifier:</dt>
          <dd>
            <t>A Verifier which acts as a Main Verifier to receive Composite Evidence from a Composite Attester.</t>
          </dd>
          <dt>Aggregated Attestation Results:</dt>
          <dd>
            <t>An Aggregated Attestation Results (AAR) refers to a collection of Attestation Results produced upon completion of appraisal of a Composite Attester.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-multi-verifier">
      <name>Multi Verifier topological patterns</name>
      <t>A Composite Attester has multiple Component Attesters. Each Attester requires a different set of Verifiers. Hence multiple Verifiers collaborate to appraise a Composite Attester.</t>
      <section anchor="sec-lead-verifier">
        <name>Hierarchical Pattern</name>
        <t>Figure below shows the block diagram of a Hierarchical Pattern.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="584" viewBox="0 0 584 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,176 L 8,256" fill="none" stroke="black"/>
              <path d="M 104,176 L 104,256" fill="none" stroke="black"/>
              <path d="M 280,32 L 280,512" fill="none" stroke="black"/>
              <path d="M 368,32 L 368,512" fill="none" stroke="black"/>
              <path d="M 480,48 L 480,144" fill="none" stroke="black"/>
              <path d="M 480,192 L 480,288" fill="none" stroke="black"/>
              <path d="M 480,400 L 480,496" fill="none" stroke="black"/>
              <path d="M 528,288 L 528,400" fill="none" stroke="black"/>
              <path d="M 576,48 L 576,144" fill="none" stroke="black"/>
              <path d="M 576,192 L 576,288" fill="none" stroke="black"/>
              <path d="M 576,400 L 576,496" fill="none" stroke="black"/>
              <path d="M 280,32 L 368,32" fill="none" stroke="black"/>
              <path d="M 480,48 L 576,48" fill="none" stroke="black"/>
              <path d="M 368,96 L 472,96" fill="none" stroke="black"/>
              <path d="M 376,128 L 480,128" fill="none" stroke="black"/>
              <path d="M 480,144 L 576,144" fill="none" stroke="black"/>
              <path d="M 8,176 L 104,176" fill="none" stroke="black"/>
              <path d="M 104,192 L 272,192" fill="none" stroke="black"/>
              <path d="M 480,192 L 576,192" fill="none" stroke="black"/>
              <path d="M 368,208 L 472,208" fill="none" stroke="black"/>
              <path d="M 112,240 L 280,240" fill="none" stroke="black"/>
              <path d="M 8,256 L 104,256" fill="none" stroke="black"/>
              <path d="M 376,256 L 480,256" fill="none" stroke="black"/>
              <path d="M 480,288 L 576,288" fill="none" stroke="black"/>
              <path d="M 480,400 L 576,400" fill="none" stroke="black"/>
              <path d="M 368,416 L 472,416" fill="none" stroke="black"/>
              <path d="M 376,448 L 480,448" fill="none" stroke="black"/>
              <path d="M 480,496 L 576,496" fill="none" stroke="black"/>
              <path d="M 280,512 L 368,512" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
              <polygon class="arrowhead" points="480,208 468,202.4 468,213.6" fill="black" transform="rotate(0,472,208)"/>
              <polygon class="arrowhead" points="480,96 468,90.4 468,101.6" fill="black" transform="rotate(0,472,96)"/>
              <polygon class="arrowhead" points="384,448 372,442.4 372,453.6" fill="black" transform="rotate(180,376,448)"/>
              <polygon class="arrowhead" points="384,256 372,250.4 372,261.6" fill="black" transform="rotate(180,376,256)"/>
              <polygon class="arrowhead" points="384,128 372,122.4 372,133.6" fill="black" transform="rotate(180,376,128)"/>
              <polygon class="arrowhead" points="280,192 268,186.4 268,197.6" fill="black" transform="rotate(0,272,192)"/>
              <polygon class="arrowhead" points="120,240 108,234.4 108,245.6" fill="black" transform="rotate(180,112,240)"/>
              <g class="text">
                <text x="412" y="84">Evidence</text>
                <text x="456" y="84">1</text>
                <text x="524" y="100">Verifier</text>
                <text x="568" y="100">1</text>
                <text x="404" y="148">AR</text>
                <text x="424" y="148">1</text>
                <text x="160" y="180">Composite</text>
                <text x="236" y="180">Evidence</text>
                <text x="412" y="196">Evidence</text>
                <text x="456" y="196">2</text>
                <text x="60" y="212">Attester</text>
                <text x="308" y="212">Lead</text>
                <text x="44" y="228">or</text>
                <text x="164" y="228">Aggregated</text>
                <text x="324" y="228">Verifier</text>
                <text x="36" y="244">RP</text>
                <text x="524" y="244">Verifier</text>
                <text x="568" y="244">2</text>
                <text x="168" y="260">Attestation</text>
                <text x="244" y="260">Result</text>
                <text x="160" y="276">(AAR)</text>
                <text x="396" y="276">AR</text>
                <text x="416" y="276">2</text>
                <text x="412" y="404">Evidence</text>
                <text x="456" y="404">N</text>
                <text x="524" y="452">Verifier</text>
                <text x="568" y="452">N</text>
                <text x="388" y="468">AR</text>
                <text x="408" y="468">N</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                                  +----------+
                                  |          |             +-----------+
                                  |          |             |           |
                                  |          | Evidence 1  |           |
                                  |          +------------>+ Verifier 1|
                                  |          |             |           |
                                  |          +<------------+           |
                                  |          |   AR 1      +-----------+
                                  |          |
+-----------+  Composite Evidence |          |
|           +-------------------->|          | Evidence 2  +-----------+
|  Attester |                     | Lead     +------------>+           |
|   or      |  Aggregated         | Verifier |             |           |
|  RP       |<--------------------+          |             | Verifier 2|
+-----------+  Attestation Result |          +<------------+           |
                 (AAR)            |          |  AR 2       |           |
                                  |          |             +-----+-----+
                                  |          |                   |
                                  |          |                   |
                                  |          |                   .
                                  |          |                   |
                                  |          |                   |
                                  |          |                   |
                                  |          | Evidence N  +-----+-----+
                                  |          +------------>+           |
                                  |          |             |           |
                                  |          +<------------+ Verifier N|
                                  |          | AR N        |           |
                                  |          |             |           |
                                  |          |             +-----------+
                                  +----------+
]]></artwork>
        </artset>
        <t>The following sub-sections describe the various roles that exist in this pattern.</t>
        <section anchor="lead-verifier">
          <name>Lead Verifier</name>
          <t>In this topological pattern, there is an Entity known as Lead Verifier.</t>
          <t>Lead Verifier is the central entity in communication with the Attester (directly in passport model or indirectly via the Relying Party in background-check model).
It receives Attestation Evidence from a Composite Attester. If the Composite Attestation Evidence is signed, then it validates the integrity of the Evidence by validating the signature. If signature verification fails, the Verification is terminated. Otherwise it performs the following steps.</t>
          <ul spacing="normal">
            <li>
              <t>Lead Verifier has the knowledge about the overall structure of the Composite Evidence. It decodes the Composite Evidence to extract the Component Attester Evidence. This may lead to "N" Evidence, one for each Component Attester.</t>
            </li>
            <li>
              <t>Lead Verifier delegates each Component Attester Evidence to their own Verifier and receives Component Attester Attestation Results after successful Appraisal of Evidence.</t>
            </li>
            <li>
              <t>Once the Lead Verifier receives Attestation Results from all the Verifiers, it combines the results from each Verifier to construct a Aggregated Attestation Results (AAR). The Lead verifier may apply its own policies and also add extra claims as part of its appraisal.</t>
            </li>
            <li>
              <t>Lead Verifier conveys the AAR to the Attester (in Passport model) or to the Relying Party (in background check model).</t>
            </li>
          </ul>
          <t>The overall verdict may be dependent on the Appraisal Policy of the Lead Verifier.</t>
          <t>In certain topologies, it is possible that only the Composite Evidence is signed to provide the overall integrity, while the individual Component Attester Evidence (example Evidence 1) is not protected. In such cases, the Lead Verifer upon processing of Composite Evidence may wrap the Component Attester Evidence (example Evidence 1) in a signed Conceptual Message Wrapper (CMW), and send it to each Verifier (example Verifier 1).</t>
        </section>
        <section anchor="verifier-for-component-attester">
          <name>Verifier for Component Attester</name>
          <t>The role of a Component Attester Verifier is to receive Component Attester Evidence from the lead Verifier and produce Attestation Results to the Lead Verifier.</t>
        </section>
        <section anchor="trust-relationships">
          <name>Trust Relationships</name>
          <t>In this topology the Lead Verifier is fully trusted by Component Attester Verifiers (example Verifier 1).</t>
          <t>Also, each of the Component Attester Verifier is fully trusted by the Lead Verifier. Lead Verifier is provisioned with the Trust Anchors for Verifier 1..N.</t>
        </section>
      </section>
      <section anchor="cascaded-pattern-sec-verifier-cascade-">
        <name>Cascaded Pattern {: #sec-verifier-cascade }</name>
        <t>Figure below shows the block diagram of a Cascaded Pattern.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="752" viewBox="0 0 752 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,160" fill="none" stroke="black"/>
              <path d="M 80,48 L 80,160" fill="none" stroke="black"/>
              <path d="M 256,32 L 256,192" fill="none" stroke="black"/>
              <path d="M 352,32 L 352,192" fill="none" stroke="black"/>
              <path d="M 440,32 L 440,192" fill="none" stroke="black"/>
              <path d="M 536,32 L 536,192" fill="none" stroke="black"/>
              <path d="M 648,32 L 648,192" fill="none" stroke="black"/>
              <path d="M 744,32 L 744,192" fill="none" stroke="black"/>
              <path d="M 256,32 L 352,32" fill="none" stroke="black"/>
              <path d="M 440,32 L 536,32" fill="none" stroke="black"/>
              <path d="M 648,32 L 744,32" fill="none" stroke="black"/>
              <path d="M 8,48 L 80,48" fill="none" stroke="black"/>
              <path d="M 80,80 L 248,80" fill="none" stroke="black"/>
              <path d="M 352,80 L 432,80" fill="none" stroke="black"/>
              <path d="M 536,80 L 640,80" fill="none" stroke="black"/>
              <path d="M 88,144 L 256,144" fill="none" stroke="black"/>
              <path d="M 360,144 L 440,144" fill="none" stroke="black"/>
              <path d="M 544,144 L 648,144" fill="none" stroke="black"/>
              <path d="M 8,160 L 80,160" fill="none" stroke="black"/>
              <path d="M 256,192 L 352,192" fill="none" stroke="black"/>
              <path d="M 440,192 L 536,192" fill="none" stroke="black"/>
              <path d="M 648,192 L 744,192" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="648,80 636,74.4 636,85.6" fill="black" transform="rotate(0,640,80)"/>
              <polygon class="arrowhead" points="552,144 540,138.4 540,149.6" fill="black" transform="rotate(180,544,144)"/>
              <polygon class="arrowhead" points="440,80 428,74.4 428,85.6" fill="black" transform="rotate(0,432,80)"/>
              <polygon class="arrowhead" points="368,144 356,138.4 356,149.6" fill="black" transform="rotate(180,360,144)"/>
              <polygon class="arrowhead" points="256,80 244,74.4 244,85.6" fill="black" transform="rotate(0,248,80)"/>
              <polygon class="arrowhead" points="96,144 84,138.4 84,149.6" fill="black" transform="rotate(180,88,144)"/>
              <g class="text">
                <text x="136" y="68">Composite</text>
                <text x="212" y="68">Evidence</text>
                <text x="388" y="68">(CE)</text>
                <text x="580" y="68">(CE)</text>
                <text x="140" y="100">(CE)</text>
                <text x="384" y="100">Partial</text>
                <text x="428" y="100">AR</text>
                <text x="576" y="100">Partial</text>
                <text x="620" y="100">AR</text>
                <text x="44" y="116">Attester</text>
                <text x="300" y="116">Verifier</text>
                <text x="344" y="116">1</text>
                <text x="484" y="116">Verifier</text>
                <text x="528" y="116">2</text>
                <text x="692" y="116">Verifier</text>
                <text x="736" y="116">N</text>
                <text x="36" y="132">or</text>
                <text x="140" y="132">Aggregated</text>
                <text x="28" y="148">RP</text>
                <text x="136" y="164">Attestation</text>
                <text x="216" y="164">Results</text>
                <text x="392" y="164">(AAR)</text>
                <text x="576" y="164">(AAR)</text>
                <text x="136" y="180">(AAR)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                               +-----------+          +-----------+             +-----------+
+--------+                     |           |          |           |             |           |
|        |  Composite Evidence |           |  (CE)    |           |   (CE)      |           |
|        +-------------------->+           +--------->+           +------------>+           |
|        |     (CE)            |           |Partial AR|           | Partial AR  |           |
|Attester|                     | Verifier 1|          | Verifier 2|             | Verifier N|
|  or    |  Aggregated         |           |          |           |             |           |
| RP     +<--------------------+           +<---------+           +<------------+           |
+--------+ Attestation Results |           |  (AAR)   |           |  (AAR)      |           |
              (AAR)            |           |          |           |             |           |
                               +-----------+          +-----------+             +-----------+
]]></artwork>
        </artset>
        <t>In this topological pattern, the Attestation Verification happens in sequence. Verifiers are cascaded to perform the Attestation Appraisal. Each Verifier in the chain possess the knowledge of the entire Composite Attester topology.</t>
        <t>Attester may send the Composite Evidence(CE) to any of the Verifier (directly in the passport model, or indirectly via the Relying Party in the background-check model). The Verifier which processes the Composite Evidence, Verifies the signature on the Evidence, if present. It decodes the Composite Evidence performs Appraisal of the Component Attester whose Reference Values and Endorsements are in its database. Once the appraisal is complete, it forwards the Composite Evidence and partial Attestation Results to the subsequent Verifier.</t>
        <t>The process is repeated, until the entire appraisal is complete. The last Verifier, i.e. Verifier-N, completes its Appraisal of the Component Attester Evidence and returns the complete Attestation Results to the N-1 Verifier, which passed Evidence to it. The N-1 Verifier then simply passes the Aggregated Attestation Results(AAR) from where it received its Combined Evidence. Alternatively, it may also modify the AAR based on the inspection of received AAR. For example, it may add its own Verifier Added Claims (policy claims) and produce a new AAR. The process is repeated, until the Verifier, which recieved the initial Evidence is reached. At this point in time the Aggregated Attestation Results are signed and the Aggregated Attestation Results are sent to the Attester (in Passport Model) or Relying Party (in background check model).</t>
        <t>As shown in the picture, the partial results and Combined Evidence is transmitted to a chain of Verifier, till the Appraisal is complete.
The Verifier combines the incoming partial results, combines the results from it own Evidence Appraisal and passes the Aggregated Attestation Results to the Verifier from which it receives Combined Evidence.</t>
        <section anchor="trust-relationships-1">
          <name>Trust Relationships</name>
        </section>
        <section anchor="verifiers">
          <name>Verifiers</name>
          <t>In the cascaded pattern, the communicating Verifiers fully trust each other. Each Verifier has the trust anchor for the Verifier it is communicating to (i.e. either sending information or receiving information). This prevents man in the middle attack for the partial Attestation Results received by a Verifier or a Aggregated Attestation Results (AAR) which it receives in the return path.</t>
        </section>
        <section anchor="relying-party-and-verifiers">
          <name>Relying Party and Verifiers</name>
          <t>In the cascaded pattern, the RP may communicate with any Verifier and thus receive its Attestation Results. Hence RP fully trusts all the Verifiers.</t>
        </section>
      </section>
      <section anchor="hybrid-pattern">
        <name>Hybrid Pattern</name>
        <t>In a particular deployment, there is a possibility that the two models presented above can be combined to produce a hybrid pattern. For example Verifier 2 in the Cascaded Pattern becomes the Lead Verifier for the remaining Verifers from 3, to N.</t>
      </section>
    </section>
    <section anchor="freshness">
      <name>Freshness</name>
      <t>The Verifier needs to ensure that the claims included in the Evidence reflect the latest state of the Attester. As per RATS Architecture, the recommended freshness is ascertained using either Synchronised Clocks, Epoch IDs, or nonce, embedded in the Evidence.
In the case of Hierarchical Pattern, the Verification of Freshness should be checked by the Lead Verifier.</t>
      <t>In the Cascaded Pattern, the freshness is always checked by the first Verifier in communication with either the Attester (Passport Model) or Relying Party (Background Check Model).
# Security Considerations</t>
      <t><cref>TODO</cref></t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cbor-tag-registrations">
        <name>CBOR Tag Registrations</name>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t><cref>TODO</cref></t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="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>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="T." surname="Fossati" fullname="Thomas Fossati">
        <organization>Linaro</organization>
        <address>
          <email>Thomas.Fossati@linaro.org</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81b2XIbxxV9n6/oSA8hTQLRVkmsUtmGScpiSlxCUnY5L6nG
TAPoaDADd88AgmX5W/It+bKce7unZwUXy1UJXwjM9HLXc5dujEajqNBFql6K
K7XMCyUmRaFsIQudZ+KsTAv9vTJ6ppWJ5HRq1BoDJzfXnVdJHmdyiUUSI2fF
KFF2sZJZokZGFna0pLGjtR88evIkSmSBwR+PJzcnn6IYX+a52b4UOpvlkV6Z
l6IwpS2ePXny5ZNnkTRKvhTXKi6NLrbRJjfv5yYvV46SKAK1WfJPmeYZ1twq
G630yygSwsxildhim/rHQhR53PioQWBWVA9sbgqjZjZ83y5bXwuj4zA4zpdL
zA1vC/WhGKXaFiNMm+YpXozyLw7wBpJZytVKZ3M3NpJlscgNCBzhrRPaj/kc
AhPHldTwIjcYPzFL8bZI8FUtpU6xAA8cB/F+I81yDFqai/2tzMQ/FjKbV6u8
KeVGaXGj4kWWp/lcKyteG5nFSlyPJ+Pr8btxvYP4V5n9TLOffrPged3l36js
vfhWm/eLPC1+rvbAemW2yGfKiOvTm8ZyCwwfT93wn7+xuhjPwlDwEUVxnkGy
07IgmYhRtc3NIl9K0JlbC1PEgryRzPTPbJkvxVudSZPzC7+XmzL2U75JecAY
syL8kWWZJZ6vFbYRV6+Pvnz+/MVLwfYpTbzAmNFoJOQUipZxEUWnJzevnalP
8FoXKi5Kow5FomY6gwiLhRLv1VaYPFUinwkpKm8YC3Ga4Tskt0rVB1iSLdTy
EDO0dcMzBcOECYqpEitliDSViOlWsKdgEq1FS1kskpsErBSwIMyYK+xraKq0
VllHxqxMU+cx8A3sktELIinz3kw03dDusMaSDFfM8AHzBZx8LY3OSyJnxeYR
y1SsJOaZzGKcASdNsphFz9PYCW2pkySFLh+D78LkSRmTjqJoUo9fpXJrsdIR
NjfY4IrEoCGlbDsEPNduedFYAU5kpLZe8hVfWCARK94Tb5pLXCkLqu2h2Cx0
vBBgHlLB7lqm6RaUAI4SeDTLqZ5GclLCuLkCyAMFZLb06qGdr1S6JV1cSlNs
SREYEKdlovjtgBaa5B6CVp2z/pbyPS1DAoiBayz2RMXaggrsPM3LojPVluAD
TiGTpS68PcCUaLv38A5QnSpp6TlImunEMUvM5KUh8WA4HDCqVoRxwUJgpayJ
DSawLaiCEAKE24VcKRYwGegYzmiE+iDJqEV7DZixypJVrgGJYk8lc0X0nOY3
4GitsfU+fa/8YSljlg7tShzGaV4mY3GE1zkQoqHcjx+tikfzlFzabD99OhRz
lSn4rBIna2IwJqnLgpUE9GWyg7GuoCHbIvuQtkTsgW9COGTGysAOYCS6IAvJ
8kKUGYE7DIhM3yosQts5EyHZqmytTZ4x/Iu9yck+iZXXgVHZcgqK2f685kkJ
sCLP81hcZODvBC4zXxRiCX0BVFjGbgdabEMcbaDoaQ6/SMhHaSWgXCaOLt+x
Rac0KWcseOBqnpI/WvHd5Tsyd4TS+cJZWxMhNkoAIZxRKwQiVk9Gb3aqh2Ep
SUyFS5DGiPiHnxCMZJB+oqG3ElYJPMAKzjeD/2rS4CarlUsIMWQYAX4aAOFA
9UohsvDc72VaYk2SxkmW5MYqp7OZyZeevNUKUBAvSLDAfAwRe7OGkV+cnP3p
4vhs33s54RpP9FAELrog+x3ii9MWAuyc40JfbnYXW5UZ4rHV09TbNqwKdtcE
36XcsqkuJBkdYT95kVzJqU61817Dz0LUgwkZ9VMJS0y6zDivLDpc0Zs+gWMK
bGwmsbTwpl5csKwFt0WaAsTYebogWe/UQO8G2LUAHEqO2rEL6Q8Qcwo2bw1d
TSio6WORMmJqF6N9eGXPyDIXWyv5tBU9ZIgYXNEfDKFL/mNMzNbkCIzsYPmY
cgjN34k5l0iAKNjvo7N31zePDt1/cX7Bn69O/v7u9OrkmD5fv5m8fRs+RH7E
9ZuLd2+P60/1zKOLs7OT82M3GU9F61H06GzyI94QVY8uLm9OL84nbx85ZG7K
nCKhy1c0AefKKJKYtFGljITmfHt0+Z9/P30BYPgDMqxnT59+CVBwX/769C8v
8GWDhNDtlmfwPfcVmt9GkLWShrUCi4Y160KmQGYgl10QKADr1Dh69TUSOyVG
f/76q55hcEZDYOWkTDanVvB4l7LVEZySOtlI6lyMkLUrVJCGmKsUGLj2mP6C
7GAUcsZPn6Dd6xWC9oxML912hLZQcq3xtKyyFkfbW4I+kNPA0WqD5+Nn3S2Y
ldryjjmgtqY8706ByT0W33keoo8vxeMmTotPw3KjRBJOm284syBKUaT0TR4P
UZkM+QKlWJpDkuwTzALucc5hYcuCp9HEj87Webrm1IieTzn3dfEUMEozlrlR
vQ0Y87rrk/f18bfJQTugaVujbU3jsOs7o2kp/LAa2F81Ez4QdiJe2C6EPDfA
Z1VV0su226gwmoqpZjJbYRm/g584QH4UvVUyCUt6oYQY48hAVLSccoozCpLh
LaDAqFgh2ok+IS7C7th0Mp8bNWe8HUBLRwWA9NZRSLsmV/ugYMaInrOlpGmd
eA3NCQIpoZ/K1f34O3GeUZxbHk0Z9INOcLZ2y4NcbtBlFpBtCFIDmcJYnCBd
q8f7IE4KSfSMM50CGMVVTIhxYyrSoYaB6NeJypV57eT5sXiDeYyVxOalY1N8
ZB5RbSSBxU/Raz2n7HOqACEM2Q5Tpmkevwe1cm7k0sl3aE3s9uuvvwop7XrO
Vf3tfwej8Hdwj+G/DH5sr/N5CzW//fLQhYLnPP2shZrMjL46qE316YMp2vHi
wRS9apJ08NsXoo+TK5IPL/sZWosO2hQN4FdreJP7loCDoIdV+axLJoYFP24L
uJ7NkNzb6au24GgyQk/FWQMr64WC6m9TJb5dXVbfXo0G/g6Gp7Z2eNYTaR9+
f7NNOKQf5uAXNolng6z1Fur93QEJB58PCb8DLb/bEuP/Cyr+F0sEhzz/LNXe
5pAPpGjHi8/F1uCQ5w+mCG50/jtQ9DtGxObfQ9G+lRsgqYhcjV0XN9SX8m06
G7oJnKxUDQXq0vtegfqgbREK4lXIVh4jOWpl0FFUNUcGMkMucpEduVrgxNUC
7zOqa5ECttbpZuY0hxs1vnXuCwnNSeyyzLANI+0GtVe7N76XIFeMi5QHr6S1
q9wUKJ8SlVIAoW6cf7/WcqC5jVlTGfNhW5aM4oVCIsez98fRaVFVAO22+z2K
AHE63F/qLAC2rZ6jbmfZZdQbW8tU09Gh9d2tQs0NdxfdgmEqah4/lGtZ6vVh
JelqfewevgmXvnoJzqSmjgON/775XLuugmsTjcUFqXJDaTNI8sc33foZjK6o
+vyirVtO+PnkCKpPuVFed/pzEEO9D1uYkvsS/UZcxSG4oD5YDGXYHUMov1cf
+DCrHtEuTOvVuB9AbUXK6Wnmo/NH4fUhF97cGKVipL/QAJ8wEs5J7K45LTpB
nzbc+a2Pe7KkNrCB6UMlnpxxb7iMUVnbWZmKSbOuC9wStReZ7zi2yR406Wp5
Z9G+3RpqKm7aukaF14Vpjmf2m3UzHVWwguEc9ylz3YkUk7luNoAlN6+rjjkA
R8fat7tlarkR7/Qv4lTqJZfxdCJCoqBZoeYd0F5M/cqtP2lDcHAqagALkOGy
hSd8wOOHtUFkr4Uioo0iDMyV3VcncsQd8DhRK8Un9NUBSK3NS+I2uH0XPQHD
sTIFNSwqJFZ2uLfOTcgd/hPwxzd56XnLTwP+VCcyDpTCEcdtRr9XnTHUpd9+
dQKFvagxSVADVvjUj9rtHplqbrEe9zIwngyeRF6dN7Q5IYFujFzdhQM7qMq4
S8WSOHItVeLuDFtK4NcPhjq3sImjsx/2XWvXQm8kbkKglvmH9evKdN+H0vCE
cKZPo7OU+qx9gItWvOz0p3bwG46C0pb5N08lhvzS23nX7oiNGzr/JQ/gGXah
V7aXF2wHgAdv6RR/6w6QXdvuFh7tLlFO4PqHTurN4LFbUr1d+5z1SWVvoINq
TAlph2N9ksULOkgjNdakjcfnrp10JG0sE0wLrSTfMAu3g2I3glpm9+8odZd9
SDepU7ze8biXjx4MDxpKZXdkuHeU6OHx7Z0K+rx3dLI/tHr1fOfqw42NJkcH
dz3ul0VN2ltEDJBCsYIuK0yu2rTXz3u0V+a8q5fS6H4NPn62s6NxzrS7Fsuu
BssgH/fXqu+7HNzVdWmO2PF41G2iNCxyCL26NuM7LDse92hvsXVrf+a3SEbc
/veZvuqKwbvKtJbUWoXAgkJdxuf3Vv1Uuty5xmS+LlQhESUNrjborRkSGd/e
r6HVX4jhGwmUqVQ3KepyoX2tZPBE2gUZCgbVM0oAOCgPpzrsmXQckIWcqg7Z
zRqS3rTryMP7FpIM3DuKSc5wOydPPqnZWd4cVhNsu76rksV6nJ5hMUVXv+5T
NYV6bjJ4HaIdSDeL3Kp7XDkhw9AZp910+2iKbG5clyD16RNdrPBn0JyvgpKN
pFsBO4jlRKVCyN2JCt9KInMtmukKCd1LmTY2SLcJ4w5FCdtKm1Y2SKDTWipt
vShoHjccYnR+GEa7uz33kWmLOaOg08y2L6rcwun56GmDGm9JdFMyadWbunDU
N4e7JoPVSyqreI6vf26t0Rz+cR65cQ2e0BdJmOUjVxkmjWJ7khLU8F3UdMt6
5nqOijY4hJ5tQ91FhhLuf+nMruojzrAJxnXvuPkFkySUh4HJSULYdOQqwr2V
q6NcgbjfynulyNTGLX4PQ+nKHNRpRdQ5wjVbaLOyMpSiUoUz8ffO+PIgA4Ve
qnsInn3KVyXSI9t9ZpCt3VrOnoVy9iF17KS6pVKhpPbXhR1kmuompiPE3eho
2wWXLUZmli53uvghfSRoHO5iQe07EJNBr4xaWNrqS2i62UgMdeg5vKV9AVtq
XcibtK9u3ddNKpHXVZ7zGL6ZW7QaPR1viW6pq5p1o3VhvRGAWyG90SqFAOqQ
3Sh/fNVEzb1uXK66dm6c5BKHK5wWT67B0N4JfO8xKPqbMRSF6XnzZl5e9Z06
L/Z9Xw7Ra81hZCmDfbkr13TNEyYZSLktFgTAaN0kcfdy7nXdoq8tT4sDaZL3
wlfBbc8hS7mnmpAWE3TVMlSuvqTMpFWeF4sysORCy8DVO38PAos21Gz7LTx/
02E7NTpUkJwmSifRuEwltTRXab5193zqZr5vKNHFy63rKbGhbHKHDbbKPQim
pvlaVTd74srSmzcIxcLRUJ0ytK5c14VLJfheMT1VdJvbDvQXKgsx9GOJLPgA
uwC54vNDIoSLdPEaFC/o9nobS8KPFpABU6IVmPX9Re1ueCYVdQEzjJrR3RzX
aJF8L5k0FXLZ+mAAKEqtpIFfXTja3c9uaI9ZRSMrwfp+H93u4T6Y97brLVzV
5BnfoDqitgHA7mSVw45Pjy3nrlnOSaJaTlUyQPy4Ya9M8NDdlYEjA4wMYqTI
UKYJa52ixq4+S1Tt1dWrW7/NcrqhH1R01ptp00jHdhwRedm0I+Dd4e/bOvYd
cew787HvcfhpFrUHLeRmpL/a+iqG7r+6uTi+ePUn/si/EZmcT3ojqTX07cWV
uJFzbDzX9Csc/wpTJnEogDihjoaW/i/JsjYkyzYAAA==

-->

</rfc>
