<?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.19 (Ruby 3.2.3) -->
<?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-ietf-rats-multi-verifier-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="RATS Many-Verifiers">Remote Attestation with Multiple Verifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-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="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="May" day="05"/>
    <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>
  </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">
                <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">
                <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="2" month="March" year="2026"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-10"/>
        </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>
