<?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-01" 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-01"/>
    <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).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <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:
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

-->

</rfc>
