<?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.30 (Ruby 3.4.8) -->
<?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-04" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="RATS Many-Verifiers">Remote Attestation with Multiple Verifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-deshpande-rats-multi-verifier-04"/>
    <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="Labiod" fullname="Houda Labiod">
      <organization>Huawei Technologies France S.A.S.U.</organization>
      <address>
        <email>houda.labiod@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 year="2026" month="February" day="07"/>
    <area>Security</area>
    <workgroup>RATS</workgroup>
    <abstract>
      <?line 66?>

<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. It only covers the architectural aspects introduced by the Multi Verifier concept, which is neutral with regard to specific wire formats, encoding, transport mechanisms, or processing details.</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 70?>

<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 are essentially a verdict of attestation. The results are consumed by the Relying Party to conclude the trustworthiness of the Attester, before making any critical decisions about the Attester, such as admitting it to the 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>In a Composite Attester system, it may not be possible for a single Verifier to possess all the capabilities or information required to conduct a complete appraisal of the Attester. Please refer to <xref target="sec-need-multiverifier"/> for motivation of this document. Multiple Verifiers need to collaborate to reach a conclusion on 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="sec-need-multiverifier">
      <name>Need for Multiple Verifiers</name>
      <t>To conduct the task of Evidence appraisal, a Verifier requires:</t>
      <ol spacing="normal" type="1"><li>
          <t>Reference Values from trusted supply chain actors producing, aggregating, or administering Attesters (Reference Value Providers)</t>
        </li>
        <li>
          <t>Endorsements from trusted supply chain actors producing, certifying, or compliance checking Attesters (Endorsers)</t>
        </li>
        <li>
          <t>Appraisal Policy for Evidence, which is under the control of the Verifier Owner</t>
        </li>
      </ol>
      <t>The Verifier inputs listed above are linked to the shape of the Attesters.
Typically, Composite Attesters come with a varying degree of heterogeneity of Evidence formats, depending on the type of Attesting Environments that come with each Component Attester, for example, CPU variants or GPU/FPGA variants. When conducting Evidence appraisal for a Composite Attester, the following challenges remain:</t>
      <ol spacing="normal" type="1"><li>
          <t>An Attester's composition can change over time based on market requirements and availability (e.g., a set of racks in a data center gets thousands of new FPGAs).
It is highly unlikely that there is always one appropriate Verifier that satisfies all the requirements that a complex and changing Composite Attesters imposes.
It may not be economically viable to build and maintain such a degree of complexity in a single Verifier.</t>
        </li>
        <li>
          <t>A Verifier Owner may have an Appraisal Policy for Evidence of a Component Attester that is internal to them and which they may choose not to reveal to a “monolithic" Verifier.</t>
        </li>
        <li>
          <t>A Reference Values Provider may not wish to reveal its Reference Values or their lifecycle to a monolithic Verifier.</t>
        </li>
        <li>
          <t>There may not be a single actor in the ecosystem that can stand up and take ownership of verifying every Component Attester due to a lack of knowledge, complexity, regulations or associated cost.</t>
        </li>
        <li>
          <t>The mix today is a combination of Verifier services provided by component manufacturers, Verifiers provided by integrators, and Verifiers under local authority (i.e., close to the attester). Rarely is it just one of these.</t>
        </li>
      </ol>
    </section>
    <section anchor="reference-use-cases">
      <name>Reference Use Cases</name>
      <t>This section covers generic use cases that demonstrate the applicability of Multi Verifier, regardless of specific solutions.
Its purpose is to motivate various aspects of the architecture presented in this document.
There are many other use cases; this document does not contain a complete list.</t>
      <section anchor="verification-of-devices-containing-heterogenous-components">
        <name>Verification of Devices containing heterogenous components</name>
        <t>A device may contain a central processing unit (CPU), as well as heterogeneous acceleration components (such as GPUs, NPUs and TPUs) from different suppliers.</t>
        <t>These components can be used to speed up processing or assist with AI inference.
Trustworthiness assessment of the device requires trust in all of these components.
However, due to business concerns such as scalability, complexity and cost of infrastructure, the Verifier for each type of component may be deployed separately by each vendor.</t>
        <t>When these Verifiers operate together, they must interact with each other, understand the topology and interoperate using standardised protocols.
For instance, they may need to exchange partial Evidence relating to the relevant component or partial Attestation Results for it.</t>
        <t>Attester: A Device having multiple components</t>
        <t>Relying Party: An entity which is making trust decisions for such an Attester</t>
      </section>
      <section anchor="verification-of-workloads-operating-in-confidential-computing-environment">
        <name>Verification of Workloads operating in Confidential Computing environment</name>
        <t>As organisations move more workloads into untrusted or shared environments, Confidential Computing is becoming increasingly important.
In such a system, an application or workload (which could be an AI model, database process or financial service, for example) is executed inside a TEE-protected virtual machine (VM).
When the workload starts, the TEE can generate a cryptographic attestation report providing:</t>
        <ol spacing="normal" type="1"><li>
            <t>The workload is running on a platform with a known state.</t>
          </li>
          <li>
            <t>The workload is running the correct application.</t>
          </li>
        </ol>
        <t>The platform is often built by an independent TEE vendor, while the workloads are deployed by workload owners from different parts of the supply chain.</t>
        <t>Verification of Attestation for such a system requires independent, yet mutually coordinated, verification of: Platform claims appraised by a Platform Verifier and Workload claims appraised by a Workload Verifier.</t>
        <t>Attester: A layered Attester containing a platform and a workload running in a CC environment</t>
        <t>Relying Party: An entity which is making trust decisions, such as a key release to a workload</t>
      </section>
    </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 Component Verifier.</t>
          </dd>
          <dt>Composite Evidence:</dt>
          <dd>
            <t>Evidence produced by a Composite Attester.
Also referred to as CE in the document.</t>
          </dd>
          <dt>Partial Evidence:</dt>
          <dd>
            <t>It is an extract from a Composite Evidence. It consists of at least one or more Component Evidence.
Also referred to as PE in the document.</t>
          </dd>
          <dt>Lead Verifier:</dt>
          <dd>
            <t>A Verifier which acts as a main Verifier to receive Composite Evidence from a Composite Attester in a Hierarchical pattern <xref target="sec-lead-verifier"/>.
Also referred to as LV in the document.</t>
          </dd>
          <dt>Component Verifier:</dt>
          <dd>
            <t>A Verifier which is responsible for the Verification of one single component or a layer.
Also referred to as CV in the document.</t>
          </dd>
          <dt>Partial Attestation Results:</dt>
          <dd>
            <t>Attestation Results produced by a Component Verifier, which contains partial results from atleast one or more Component Attesters.</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>
        <figure anchor="fig-h-pattern">
          <name>Hierarchical Pattern</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="536" viewBox="0 0 536 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,128 L 8,192" fill="none" stroke="black"/>
                <path d="M 136,128 L 136,192" fill="none" stroke="black"/>
                <path d="M 216,128 L 216,192" fill="none" stroke="black"/>
                <path d="M 256,48 L 256,128" fill="none" stroke="black"/>
                <path d="M 256,192 L 256,272" fill="none" stroke="black"/>
                <path d="M 312,80 L 312,120" fill="none" stroke="black"/>
                <path d="M 312,200 L 312,240" fill="none" stroke="black"/>
                <path d="M 344,128 L 344,192" fill="none" stroke="black"/>
                <path d="M 424,32 L 424,96" fill="none" stroke="black"/>
                <path d="M 424,128 L 424,192" fill="none" stroke="black"/>
                <path d="M 424,224 L 424,288" fill="none" stroke="black"/>
                <path d="M 528,32 L 528,96" fill="none" stroke="black"/>
                <path d="M 528,128 L 528,192" fill="none" stroke="black"/>
                <path d="M 528,224 L 528,288" fill="none" stroke="black"/>
                <path d="M 424,32 L 528,32" fill="none" stroke="black"/>
                <path d="M 256,48 L 416,48" fill="none" stroke="black"/>
                <path d="M 312,80 L 424,80" fill="none" stroke="black"/>
                <path d="M 424,96 L 528,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 136,128" fill="none" stroke="black"/>
                <path d="M 216,128 L 344,128" fill="none" stroke="black"/>
                <path d="M 424,128 L 528,128" fill="none" stroke="black"/>
                <path d="M 136,144 L 208,144" fill="none" stroke="black"/>
                <path d="M 344,144 L 416,144" fill="none" stroke="black"/>
                <path d="M 144,176 L 216,176" fill="none" stroke="black"/>
                <path d="M 352,176 L 424,176" fill="none" stroke="black"/>
                <path d="M 8,192 L 136,192" fill="none" stroke="black"/>
                <path d="M 216,192 L 344,192" fill="none" stroke="black"/>
                <path d="M 424,192 L 528,192" fill="none" stroke="black"/>
                <path d="M 424,224 L 528,224" fill="none" stroke="black"/>
                <path d="M 312,240 L 424,240" fill="none" stroke="black"/>
                <path d="M 256,272 L 416,272" fill="none" stroke="black"/>
                <path d="M 424,288 L 528,288" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="424,272 412,266.4 412,277.6" fill="black" transform="rotate(0,416,272)"/>
                <polygon class="arrowhead" points="424,144 412,138.4 412,149.6" fill="black" transform="rotate(0,416,144)"/>
                <polygon class="arrowhead" points="424,48 412,42.4 412,53.6" fill="black" transform="rotate(0,416,48)"/>
                <polygon class="arrowhead" points="360,176 348,170.4 348,181.6" fill="black" transform="rotate(180,352,176)"/>
                <polygon class="arrowhead" points="320,200 308,194.4 308,205.6" fill="black" transform="rotate(270,312,200)"/>
                <polygon class="arrowhead" points="320,120 308,114.4 308,125.6" fill="black" transform="rotate(90,312,120)"/>
                <polygon class="arrowhead" points="216,144 204,138.4 204,149.6" fill="black" transform="rotate(0,208,144)"/>
                <polygon class="arrowhead" points="152,176 140,170.4 140,181.6" fill="black" transform="rotate(180,144,176)"/>
                <g class="text">
                  <text x="284" y="36">PE_1</text>
                  <text x="468" y="68">Verifier</text>
                  <text x="512" y="68">1</text>
                  <text x="392" y="100">PAR_1</text>
                  <text x="472" y="116">...</text>
                  <text x="156" y="132">CE</text>
                  <text x="372" y="132">PE_i</text>
                  <text x="52" y="164">Attester</text>
                  <text x="96" y="164">/</text>
                  <text x="116" y="164">RP</text>
                  <text x="244" y="164">Lead</text>
                  <text x="300" y="164">Verifier</text>
                  <text x="468" y="164">Verifier</text>
                  <text x="512" y="164">i</text>
                  <text x="192" y="196">AAR</text>
                  <text x="392" y="196">PAR_i</text>
                  <text x="472" y="212">...</text>
                  <text x="392" y="228">PAR_n</text>
                  <text x="468" y="260">Verifier</text>
                  <text x="512" y="260">n</text>
                  <text x="284" y="292">PE_n</text>
                  <text x="32" y="308">Legend:</text>
                  <text x="8" y="324">-</text>
                  <text x="32" y="324">CE:</text>
                  <text x="88" y="324">Composite</text>
                  <text x="164" y="324">Evidence</text>
                  <text x="8" y="340">-</text>
                  <text x="36" y="340">AAR:</text>
                  <text x="100" y="340">Aggregated</text>
                  <text x="192" y="340">Attestation</text>
                  <text x="272" y="340">Results</text>
                  <text x="8" y="356">-</text>
                  <text x="40" y="356">PE_i:</text>
                  <text x="96" y="356">Partial</text>
                  <text x="164" y="356">Evidence</text>
                  <text x="212" y="356">of</text>
                  <text x="244" y="356">i-th</text>
                  <text x="304" y="356">Component</text>
                  <text x="380" y="356">Attester</text>
                  <text x="8" y="372">-</text>
                  <text x="36" y="372">PAR:</text>
                  <text x="88" y="372">Partial</text>
                  <text x="168" y="372">Attestation</text>
                  <text x="248" y="372">Results</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                                 PE_1               .------------.
                               .------------------->|            |
                               |                    | Verifier 1 |
                               |      .-------------+            |
                               |      |       PAR_1 '------------'
                               |      v                  ...
.---------------. CE      .----+----------. PE_i    .------------.
|               +-------->|               +-------->|            |
| Attester / RP |         | Lead Verifier |         | Verifier i |
|               |<--------+               |<--------+            |
'---------------'     AAR '----+----------'   PAR_i '------------'
                               |      ^                  ...
                               |      |       PAR_n .------------.
                               |      '-------------+            |
                               |                    | Verifier n |
                               '------------------->|            |
                                 PE_n               '------------'
Legend:
- CE: Composite Evidence
- AAR: Aggregated Attestation Results
- PE_i: Partial Evidence of i-th Component Attester
- PAR: Partial Attestation Results
]]></artwork>
          </artset>
        </figure>
        <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 required knowledge to break down the Composite Evidence into Partial Evidence. It decodes the Composite Evidence to extract the Component Attesters Evidence. This may lead to "N" Partial Evidence, one for each Component Attester.</t>
            </li>
            <li>
              <t>Lead Verifier delegates each Partial Evidence to its own Component Verifier (CV) and receives Component Attester Attestation Results also known as Partial Attestation Results after successful Appraisal of Evidence.
There are many protocols to determine how a Lead Verifier can select the Component Verifiers.
This document does not mandate any specific protocol for determining the Component Verifiers</t>
            </li>
            <li>
              <t>Once the Lead Verifier receives Partial Attestation Results from all the Verifiers, it combines the results from each Verifier to construct an 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 Partial Evidence (example PE_1) is not protected. In such cases, the Lead Verifer upon processing of Composite Evidence may wrap the Partial Evidence (example PE_1) in a signed Conceptual Message Wrapper (CMW), and send it to each Verifier (example Verifier 1).</t>
        </section>
        <section anchor="component-verifier">
          <name>Component Verifier</name>
          <t>The role of a Component Verifier is to receive Partial Evidence from the Lead Verifier and produce Partial 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 Verifiers (example Verifier 1).
Each Component Verifiers are provisioned with the Trust Anchors (see <xref target="RFC6024"/>) for the Lead Verifier.</t>
          <t>Also, each of the Component Verifier is fully trusted by the Lead Verifier.
Lead Verifier is provisioned with the Trust Anchors (see <xref target="RFC6024"/>) for Verifier 1..N.</t>
        </section>
      </section>
      <section anchor="sec-verifier-cascade">
        <name>Cascaded Pattern</name>
        <t>Figure below shows the block diagram of a Cascaded Pattern.</t>
        <figure anchor="fig-c-pattern">
          <name>Cascaded Pattern</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="584" viewBox="0 0 584 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,80 L 8,144" fill="none" stroke="black"/>
                <path d="M 136,80 L 136,144" fill="none" stroke="black"/>
                <path d="M 200,32 L 200,208" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,208" fill="none" stroke="black"/>
                <path d="M 352,32 L 352,208" fill="none" stroke="black"/>
                <path d="M 400,32 L 400,208" fill="none" stroke="black"/>
                <path d="M 528,32 L 528,208" fill="none" stroke="black"/>
                <path d="M 576,32 L 576,208" fill="none" stroke="black"/>
                <path d="M 200,32 L 248,32" fill="none" stroke="black"/>
                <path d="M 352,32 L 400,32" fill="none" stroke="black"/>
                <path d="M 528,32 L 576,32" fill="none" stroke="black"/>
                <path d="M 8,80 L 136,80" fill="none" stroke="black"/>
                <path d="M 136,96 L 192,96" fill="none" stroke="black"/>
                <path d="M 248,96 L 344,96" fill="none" stroke="black"/>
                <path d="M 400,96 L 440,96" fill="none" stroke="black"/>
                <path d="M 488,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 144,128 L 200,128" fill="none" stroke="black"/>
                <path d="M 256,128 L 352,128" fill="none" stroke="black"/>
                <path d="M 408,128 L 440,128" fill="none" stroke="black"/>
                <path d="M 488,128 L 528,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 136,144" fill="none" stroke="black"/>
                <path d="M 200,208 L 248,208" fill="none" stroke="black"/>
                <path d="M 352,208 L 400,208" fill="none" stroke="black"/>
                <path d="M 528,208 L 576,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="528,96 516,90.4 516,101.6" fill="black" transform="rotate(0,520,96)"/>
                <polygon class="arrowhead" points="416,128 404,122.4 404,133.6" fill="black" transform="rotate(180,408,128)"/>
                <polygon class="arrowhead" points="352,96 340,90.4 340,101.6" fill="black" transform="rotate(0,344,96)"/>
                <polygon class="arrowhead" points="264,128 252,122.4 252,133.6" fill="black" transform="rotate(180,256,128)"/>
                <polygon class="arrowhead" points="200,96 188,90.4 188,101.6" fill="black" transform="rotate(0,192,96)"/>
                <polygon class="arrowhead" points="152,128 140,122.4 140,133.6" fill="black" transform="rotate(180,144,128)"/>
                <g class="text">
                  <text x="224" y="52">V</text>
                  <text x="376" y="52">V</text>
                  <text x="552" y="52">V</text>
                  <text x="224" y="68">e</text>
                  <text x="376" y="68">e</text>
                  <text x="552" y="68">e</text>
                  <text x="156" y="84">CE</text>
                  <text x="224" y="84">r</text>
                  <text x="272" y="84">CE,</text>
                  <text x="312" y="84">PAR_1</text>
                  <text x="376" y="84">r</text>
                  <text x="424" y="84">CE,</text>
                  <text x="476" y="84">PAR_1..2</text>
                  <text x="552" y="84">f</text>
                  <text x="224" y="100">i</text>
                  <text x="376" y="100">i</text>
                  <text x="464" y="100">...</text>
                  <text x="552" y="100">i</text>
                  <text x="52" y="116">Attester</text>
                  <text x="96" y="116">/</text>
                  <text x="116" y="116">RP</text>
                  <text x="224" y="116">f</text>
                  <text x="376" y="116">f</text>
                  <text x="552" y="116">f</text>
                  <text x="224" y="132">i</text>
                  <text x="376" y="132">i</text>
                  <text x="464" y="132">...</text>
                  <text x="552" y="132">i</text>
                  <text x="176" y="148">AAR</text>
                  <text x="224" y="148">e</text>
                  <text x="328" y="148">AAR</text>
                  <text x="376" y="148">e</text>
                  <text x="468" y="148">AAR=PAR_1..n</text>
                  <text x="552" y="148">e</text>
                  <text x="224" y="164">r</text>
                  <text x="376" y="164">r</text>
                  <text x="552" y="164">r</text>
                  <text x="224" y="196">1</text>
                  <text x="376" y="196">2</text>
                  <text x="552" y="196">n</text>
                  <text x="32" y="244">Legend:</text>
                  <text x="8" y="260">-</text>
                  <text x="32" y="260">CE:</text>
                  <text x="88" y="260">Composite</text>
                  <text x="164" y="260">Evidence</text>
                  <text x="8" y="276">-</text>
                  <text x="36" y="276">AAR:</text>
                  <text x="100" y="276">Aggregated</text>
                  <text x="192" y="276">Attestation</text>
                  <text x="272" y="276">Results</text>
                  <text x="8" y="292">-</text>
                  <text x="36" y="292">PAR:</text>
                  <text x="88" y="292">Partial</text>
                  <text x="168" y="292">Attestation</text>
                  <text x="248" y="292">Results</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                        .-----.            .-----.               .-----.
                        |  V  |            |  V  |               |  V  |
                        |  e  |            |  e  |               |  e  |
.---------------. CE    |  r  | CE, PAR_1  |  r  | CE, PAR_1..2  |  f  |
|               +------>|  i  +----------->|  i  +----- ... ---->|  i  |
| Attester / RP |       |  f  |            |  f  |               |  f  |
|               |<------+  i  |<-----------+  i  |<---- ... -----+  i  |
'---------------'   AAR |  e  |        AAR |  e  |  AAR=PAR_1..n |  e  |
                        |  r  |            |  r  |               |  r  |
                        |     |            |     |               |     |
                        |  1  |            |  2  |               |  n  |
                        '-----'            '-----'               '-----'

Legend:
- CE: Composite Evidence
- AAR: Aggregated Attestation Results
- PAR: Partial Attestation Results
]]></artwork>
          </artset>
        </figure>
        <t>In this topological pattern, the Attestation Verification happens in sequence. Verifiers are cascaded to perform the Attestation Appraisal.
Each Verifier in the chain has the knowledge to derive or extract the Partial Evidence, which it can appraise, from the Composite Evidence.</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 extracts the
Partial Evidence from 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 Partial Evidence, that it can appraise. It has now all the Partial Attestation Results and creates the Aggregated Attestation Results(AAR). It returns
the AAR to the N-1 Verifier (from where it received the Composite Evidence and Partial AR). The process is repeated, i.e. AAR is returned in the chain until the Verifier, which recieved the initial Composite Evidence is reached. At this point in time the Aggregated Attestation Results are signed and the AAR is sent to the Attester (in Passport Model) or Relying Party (in background check model).</t>
        <t>As shown in the picture, the Partial Attestation Results and Composite Evidence is transmitted to a chain of Verifier, till the Appraisal is complete.
Upon completion, the last Verifier in the chain combines the incoming Partial Attestation Results, combines the results from it own Evidence Appraisal and passes the Aggregated Attestation Results to the Verifier from which it receives Composite Evidence.</t>
        <t>There are many protocols to determine how a Verifier can select the next Verifier to route the CE and PAR.
This document does not mandate any specific protocol for determining the Verifiers in cascade.</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>The Verifier is not part of the Attester’s Trusted Computing Base (TCB), but acts as a critical component in the Relying Party’s trust decision chain. Therefore, its security directly affects the reliability of the entire remote attestation process.  When multiple Verifiers coordinate to conduct an appraisal, this may increase the attack surface, depending on the system architecture and trust assumptions.</t>
      <t>Any mistake in the appraisal procedure conducted by one or more Verifiers could lead to severe security implications, such as incorrect Attestation Result of a component or a composition to the Relying party. This section details the security threats and mitigation strategies specific to the multi-verifier topologies described in this document. In addition to the considerations herein, Verifiers MUST follow the guidance detailed in the Security and Privacy considerations of a RATS Verifier as detailed in <xref section="11" sectionFormat="of" target="I-D.draft-ietf-rats-corim"/> and the RATS Architecture Section <xref target="RFC9334" section="11" sectionFormat="bare"/> and Section <xref target="RFC9334" section="12" sectionFormat="bare"/> of <xref target="RFC9334"/>.</t>
      <section anchor="adversarial-model">
        <name>Adversarial Model</name>
        <t>The security analysis in this section assumes that attackers may:</t>
        <ol spacing="normal" type="1"><li>
            <t>Eavesdrop on any communication channel between Verifiers.</t>
          </li>
          <li>
            <t>Inject, modify, replay, or delay messages traversing the network.</t>
          </li>
          <li>
            <t>Compromise one or more Verifiers in the ecosystem, attempting to leak sensitive information (e.g., Evidence, Reference Values) or manipulate Attestation Results.</t>
          </li>
          <li>
            <t>Perform Man-in-the-Middle (MitM) attacks between any two communicating entities.</t>
          </li>
        </ol>
        <t>The system is designed to be resilient under the assumption that the cryptographic keys used for signing Evidence and Attestation Results (by authentic entities) are not compromised.</t>
      </section>
      <section anchor="general-considerations">
        <name>General Considerations</name>
        <t>All communications between entities (Attester-Verifier, Verifier-Verifier, Verifier-RP) MUST be secured using mutually authenticated, confidential, and integrity-protected channels (e.g., TLS).</t>
        <t>It is recommended that any two verifiers establishing a communication channel perform mutual attestation before exchanging  any attestation messages.</t>
      </section>
      <section anchor="security-for-topological-patterns">
        <name>Security for Topological Patterns</name>
        <section anchor="hierarchical-pattern">
          <name>Hierarchical Pattern</name>
          <t>The hierarchical pattern introduces a central trust entity, the Lead Verifier (LV). The security of the entire system relies on the integrity and correct operation of the LV.</t>
          <section anchor="threats-and-mitigations">
            <name>Threats and Mitigations</name>
            <section anchor="lv-compromise">
              <name>LV Compromise</name>
              <t><strong>Threat:</strong> A compromised LV can orchestrate attacks, such as approving malicious attestations, wrongly aggregating attestation results or leaking sensitive evidence. This is a single point of failure from a trust perspective.</t>
              <t><strong>Mitigation:</strong> The LV MUST be hardened and operate and store its Keys in a secure environment. Its operation SHOULD be auditable.
Component Verifiers should be made available suitable trust anchors so that they can establish required trust in the authority of the LV.</t>
            </section>
            <section anchor="communication-security-lv-cv">
              <name>Communication Security (LV &lt;-&gt; CV)</name>
              <t><strong>Threat:</strong> Eavesdropping or manipulation of evidence/results in transit.</t>
              <t><strong>Mitigation:</strong> All communications between the LV and CVs MUST be mutually authenticated and confidential (e.g., using TLS with client authentication). This ensures integrity, confidentiality, and authenticity of the messages exchanged between the Verifiers.</t>
            </section>
            <section anchor="evidence-integrity-and-origin-authentication-lv-cv">
              <name>Evidence Integrity and Origin Authentication (LV -&gt; CV)</name>
              <t><strong>Threat:</strong> The LV could forward manipulated evidence to a CV, or an attacker could inject fake evidence.</t>
              <t><strong>Mitigation:</strong> The conceptual message containing the Partial Evidence MUST be integrity-protected and authenticated. If the Partial Evidence is natively signed by the Component Attester at origin, the CV can verify it directly. If the Partial Evidence lacks inherent signatures (e.g., in UCCS), the LV MUST sign the Partial Evidence using a key that the CV trusts. This prevents any on-path attacker from altering the Partial Evidence.</t>
            </section>
            <section anchor="results-integrity-and-origin-authentication-cv-lv">
              <name>Results Integrity and Origin Authentication (CV -&gt; LV)</name>
              <t><strong>Threat:</strong> Partial Attestation Results could be manipulated in transit or forged by a malicious CV.</t>
              <t><strong>Mitigation:</strong> Each Partial Attestation Result MUST be digitally signed by the CV.
 LV should maintain a list of trust anchors for the CV's it communicates with.
The LV MUST validate the signature using the required trust anchor for the CV, before adding the Partial Attestation Results to the Aggregated Attestation Results.</t>
            </section>
            <section anchor="replay-attacks">
              <name>Replay Attacks</name>
              <t><strong>Threat:</strong> An adversary Component Verifier replays old Evidence or Attestation Results.</t>
              <t><strong>Mitigation:</strong> The LV is responsible for enforcing freshness (via nonces, epochs, or timestamps). This freshness value MUST be propagated to CVs and back to the LV, to ensure final AR can be validated against the original challenge.</t>
            </section>
          </section>
        </section>
        <section anchor="cascaded-pattern">
          <name>Cascaded Pattern</name>
          <t>The cascaded pattern distributes trust but requires each Verifier in the chain to be trusted to correctly handle and forward  Attestation messages. The chain's security is only as strong as its weakest link.</t>
          <section anchor="threats-and-mitigations-1">
            <name>Threats and Mitigations</name>
            <section anchor="verifier-compromise">
              <name>Verifier Compromise</name>
              <t><strong>Threat:</strong> Any compromised Verifier in the chain can block, delay, or manipulate the attestation process. It can inject false partial results, drop evidence, or leak sensitive information.</t>
              <t><strong>Mitigation:</strong> Relying Parties and Verifiers MUST be configured with strict trust policies defining the allowed paths and trusted Verifiers. Operations should be logged for auditability.</t>
            </section>
            <section anchor="communication-security">
              <name>Communication Security</name>
              <t><strong>Threat:</strong> Eavesdropping or manipulation of evidence and results between Verifiers.</t>
              <t><strong>Mitigation:</strong> Each hop between Verifiers MUST be secured with mutually authenticated and confidential channels (e.g., TLS with client authentication).</t>
            </section>
            <section anchor="evidence-and-results-protection">
              <name>Evidence and Results Protection</name>
              <t><strong>Threat:</strong> Lack of end-to-end security allows intermediate Verifiers to manipulate evidence or results that are not intended for them to appraise.</t>
              <t><strong>Mitigation:</strong> End-to-end integrity protection is RECOMMENDED. The Composite Evidence should be signed by the Attester. Partial and Aggregated Attestation Results SHOULD be signed by the Verifier that generated them. This allows subsequent Verifiers and the Relying Party to verify that results have not been tampered with by intermediate nodes.</t>
            </section>
            <section anchor="replay-attacks-1">
              <name>Replay Attacks</name>
              <t><strong>Threat:</strong> An adversary replays old Evidence or Attestation Results.</t>
              <t><strong>Mitigation:</strong> The first Verifier in the chain (the one receiving evidence from the Attester/RP) is responsible for enforcing freshness (via nonces, epochs, or timestamps) for the entire cascade. This freshness value MUST be propagated with the Evidence and Results through the chain so the final AR can be validated against the original challenge.</t>
            </section>
          </section>
        </section>
        <section anchor="security-of-the-hybrid-pattern">
          <name>Security of the Hybrid Pattern</name>
          <t>As the hybrid pattern is the composition of  hierarchical pattern and cascade pattern, all the threats and mitigations that are applicable for these two patterns are also applicable for the general hybrid pattern.</t>
        </section>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The appraisal of a Composite Attester requires exchange of attestation related messages, for example, Partial Evidence and Partial Attestation Results, among multiple Verifiers. This can potentially leak sensitive information about the Attester's configuration, identities and the nature of composition.</t>
      <t>However, when carefully designed, a multi-verifier architecture can actually mitigate these privacy concerns. By distributing appraisal responsibilities and ensuring that no single Verifier has access to the full set of Evidence, the risk of comprehensive device profiling or tracking is reduced.</t>
      <t>Nonetheless, such benefits depend on strong implementation practices.</t>
      <ul spacing="normal">
        <li>
          <t>Minimization: Attesters should only generate Evidence that is strictly necessary for the appraisal policy. Verifiers should only request necessary claims.</t>
        </li>
        <li>
          <t>Confidentiality: Evidence containing sensitive information should be encrypted so that it can only be accessed by the intended Verifier and not by any unauthorised parties (including other Verifiers in the hierarchy, cascade or hybrid pattern). This is crucial in multi-tenant environments.</t>
        </li>
        <li>
          <t>Policy Handling: Verifiers should be careful not to leak their internal appraisal policies (e.g., through error messages or timing side channels) when communicating with other Verifiers or Attesters, as this information could be exploited by an attacker to manipulate appraisal.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank
Simon Frost
and
Usama Sardar
for their reviews and suggestions.</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>
        <reference anchor="I-D.draft-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="20" month="October" year="2025"/>
            <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-09"/>
        </reference>
        <reference anchor="RFC6024">
          <front>
            <title>Trust Anchor Management Requirements</title>
            <author fullname="R. Reddy" initials="R." surname="Reddy"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>A trust anchor represents an authoritative entity via a public key and associated data. The public key is used to verify digital signatures, and the associated data is used to constrain the types of information for which the trust anchor is authoritative. A relying party uses trust anchors to determine if a digitally signed object is valid by verifying a digital signature using the trust anchor's public key, and by enforcing the constraints expressed in the associated data for the trust anchor. This document describes some of the problems associated with the lack of a standard trust anchor management mechanism and defines requirements for data formats and push-based protocols designed to address these problems. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6024"/>
          <seriesInfo name="DOI" value="10.17487/RFC6024"/>
        </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>
      <contact initials="T." surname="Giannetsos" fullname="Thanassis Giannetsos">
        <organization>UBITECH Ltd.</organization>
        <address>
          <email>agiannetsos@ubitech.eu</email>
        </address>
      </contact>
      <contact initials="S." surname="Bellock" fullname="Steven Bellock">
        <organization>NVIDIA</organization>
        <address>
          <email>sbellock@nvidia.com</email>
        </address>
      </contact>
      <contact initials="G." surname="Arfaoui" fullname="Ghada Arfaoui">
        <organization>ORANGE</organization>
        <address>
          <email>ghada.arfaoui@orange.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
