<?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.31 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-richardson-rats-composite-attesters-04" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="composites">Taxonomy of Composite Attesters</title>
    <seriesInfo name="Internet-Draft" value="draft-richardson-rats-composite-attesters-04"/>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="Y." surname="Deshpande" fullname="Yogesh Deshpande">
      <organization>Arm</organization>
      <address>
        <email>yogesh.deshpande@arm.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Internet</area>
    <workgroup>RATS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 58?>

<t>This document clarifies and extends the meaning of Composite Attester from RFC9334.
A system of annotated diagram components is defined as a small language to explain the different ways that components can interact to form composites.
These diagram components are then used to define a few popular classes of composites.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-richardson-rats-composite-attesters/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        rats Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mcr/composite-attesters"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document clarifies and extends the meaning of Composite Attester from <xref section="3.3" sectionFormat="comma" target="RFC9334"/>.</t>
      <t>A system of anotated diagram components are defined to allow relationships to be expressed consistently.</t>
      <t>These diagram components are then used to describe a number of classes of Composite Attester which are being seen in the nascent Remote Attestation industry.
These classes are representative, but are not intended to be complete: more complexity, more layers and more sub-components are always possible.</t>
      <t>The aim is to describe the Composite Attester topology in a way that helps understanding the resulting Evidence composition that flows from the Attesting Environment(s), to the Verifier(s).</t>
      <t>Additionally, there is a need for freshness artifacts is flow in the opposite direction, and in Composite Remote Attestation, the amount of freshness and origin of the freshness needs to be understood.</t>
      <section anchor="caveats-of-current-definition">
        <name>Caveats of Current Definition</name>
        <t><xref section="3.3" sectionFormat="comma" target="RFC9334"/> says:</t>
        <blockquote>
          <t>A composite device is an entity composed of multiple sub-entities
such that its trustworthiness has to be determined by the appraisal
of all these sub-entities.</t>
          <t>Each sub-entity has at least one Attesting Environment collecting the
Claims from at least one Target Environment.  Then, this sub-entity
generates Evidence about its trustworthiness; therefore, each sub-
entity can be called an "Attester".  Among all the Attesters, there
may be only some that have the ability to communicate with the
Verifier while others do not.</t>
        </blockquote>
        <t>In this description, it was left vague as to whether or not each Attesting Environment signs the Evidence that it generates, and whether or not the Evidence is evaluated by a Verifier operated by the Lead Attester, or if it's passed by the Lead Attester along with the Evidence from the Lead Target Environment.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>Lead Attester:</dt>
        <dd>
          <t>This term is from RFC9334, and includes the (Lead) Attesting Environment, and the (Lead) Target Environment.</t>
        </dd>
        <dt>Target Environment:</dt>
        <dd>
          <t>This term is from RFC9334, this refers to the environment for which Evidence is gathered.</t>
        </dd>
        <dt>Attesting Environment:</dt>
        <dd>
          <t>This term is from RFC9334, this refers to the thing which gathers the Evidence.</t>
        </dd>
        <dt>Component:</dt>
        <dd>
          <t>This is the pieces which are attached to the Lead Attester.  There are one to many of these, typically each with their own application specific processor.</t>
        </dd>
        <dt>Component Evidence:</dt>
        <dd>
          <t>This is the Evidence that is collected by the Component Attesting Environment about the Component Target Environment.</t>
        </dd>
        <dt>Component Attesting Environment:</dt>
        <dd>
          <t>This term is new, and refers to an Attesting Environment residing inside a component of the whole.</t>
        </dd>
        <dt>Component Target Environment:</dt>
        <dd>
          <t>This term is new, and refers to an environment for which Evidence is collected.</t>
        </dd>
        <dt>Local Verifier:</dt>
        <dd>
          <t>When an Attesting Environment <em>appraises</em> Evidence from another Attesting Environment, then it operates as a Local Verifier.  Mere examination of the signature on the Evidence (perhaps using a local credential) is not appraisal.</t>
        </dd>
        <dt>Local Validation:</dt>
        <dd>
          <t>in some classes, Evidence is passed around, and must remain integral.  Local Validation involves checking the authenticity of the end-point. This could involve a signature, or require physical security of that end-point.</t>
        </dd>
        <dt>Verifier le petit:</dt>
        <dd>
          <t>(Or, "Le Petit Verificateur").  This is the Verifier that examines the Component Evidence.  This may treat the Lead Attester as a component.</t>
        </dd>
        <dt>Verifier le grand:</dt>
        <dd>
          <t>(Or, "Le Grand Verificateur"). This is the Verifier that examines the arrangement and relationships between Components.</t>
        </dd>
      </dl>
    </section>
    <section anchor="notation-system">
      <name>Notation System</name>
      <t>This notation system is used in subsequent examples to compose more complex system.
The notations presented here should be considered in analogy to atoms in Chemistry, with the composed class examples below, to be molecules.
(Alternatively, the notations here are Baryons and Leptons in the Standard Model of Physics, with examples being atoms of the periodic table)</t>
      <t>This process was developed when it was realized that the set of classes that could be formed via Composition was unbounded, and so any attempt to enumerate them all would never end.</t>
      <section anchor="nodes">
        <name>Nodes</name>
        <section anchor="conveyer">
          <name>Conveyer</name>
          <t>A Conveyer is a system component that produces or relays Conceptual Messages.</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="48" viewBox="0 0 48 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
                <path d="M 40,32 L 40,64" fill="none" stroke="black"/>
                <path d="M 8,32 L 40,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 40,64" fill="none" stroke="black"/>
                <g class="text">
</g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
  .---.
  |   |
  '---'
]]></artwork>
          </artset>
          <t>It is represented by a rectangular shape with rounded corners.</t>
          <t>The following sections describe specialised types of Conveyors.</t>
        </section>
        <section anchor="attester">
          <name>Attester</name>
          <t>An Attester is a special kind of Conveyer which produces Evidence.</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="72" viewBox="0 0 72 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 64,32 L 64,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 64,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 64,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 64,96" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">TE</text>
                  <text x="36" y="84">AK</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
  .------.
  |  TE  |
  +------+
  |  AK  |
  '------'
]]></artwork>
          </artset>
          <t>Internally, it is composed of an Attesting Environment, identified by the attestation key (AK), and a Target Environment (TE), i.e., the Trusted Computing Base (TCB) measured by the Attester.</t>
          <t>An Attester exposes the following Interface (see <xref target="interface"/>):</t>
          <table>
            <thead>
              <tr>
                <th align="left">Direction</th>
                <th align="left">Name</th>
                <th align="left">Description</th>
                <th align="left">Mandatory</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">IN</td>
                <td align="left">
                  <tt>Nonce</tt></td>
                <td align="left">Fixed size parameter (typically 32 or 64 bytes) used to bind the produced Evidence to a randomly selected parameter chosen by the caller.</td>
                <td align="left">Y</td>
              </tr>
              <tr>
                <td align="left">IN</td>
                <td align="left">
                  <tt>UserData</tt></td>
                <td align="left">Typically a variable-size parameter that allows the binding of arbitrary application data (e.g., an authentication key held by a confidential computing workload) to the attestation Evidence.</td>
                <td align="left">N</td>
              </tr>
              <tr>
                <td align="left">IN</td>
                <td align="left">
                  <tt>ClaimsSelection</tt></td>
                <td align="left">A parameter that allows the user to select which claims should appear in the Evidence. The format is attester-specific (e.g., PCR selection for TPM-like attesters)</td>
                <td align="left">N</td>
              </tr>
              <tr>
                <td align="left">OUT</td>
                <td align="left">
                  <tt>Evidence</tt></td>
                <td align="left">The Evidence signed by the AK.  It contains either the full set of claims or a subset thereof, as well as the nonce supplied by the caller and any user data.</td>
                <td align="left">Y</td>
              </tr>
              <tr>
                <td align="left">OUT</td>
                <td align="left">
                  <tt>OtherData</tt></td>
                <td align="left">Related Conceptual Messages, such as Attestation Results, Endorsement, etc.</td>
                <td align="left">N</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="connectors">
        <name>Connectors</name>
        <section anchor="interface">
          <name>Interface</name>
          <t>An Interface is connected to a Node (such as an Attester) and outputs a RATS Conceptual Messages.</t>
          <t>It is represented by a T-shaped connector.</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="64" width="32" viewBox="0 0 32 64" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 16,32 L 16,48" fill="none" stroke="black"/>
                <path d="M 8,32 L 24,32" fill="none" stroke="black"/>
                <g class="text">
</g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
-+-
 |
]]></artwork>
          </artset>
          <t>An Interface has a name and some input and output parameters.</t>
          <t>Input and output parameters are defined by their name and type.</t>
          <t>A <tt>?</tt> signals an optional parameter.</t>
          <t><cref>
    TODO: align this with Attester's interface description.
</cref></t>
        </section>
        <section anchor="depends-on">
          <name>Depends-on</name>
          <t>The Depends-on connector describes a chain of trust between two adjacent Attesters within a layered attester arrangement.
Examples of such an arrangement include DICE <xref target="TCG-DICE"/> and Arm CCA <xref target="I-D.ffm-rats-cca-token"/> in delegated mode.</t>
          <t>It is represented by an arrow connector pointing from the dependent node to the dependent node, i.e. from the "higher" to the "lower" component in the chain of trust.</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="120" viewBox="0 0 120 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
                <path d="M 8,112 L 8,144" fill="none" stroke="black"/>
                <path d="M 24,64 L 24,104" fill="none" stroke="black"/>
                <path d="M 40,32 L 40,64" fill="none" stroke="black"/>
                <path d="M 40,112 L 40,144" fill="none" stroke="black"/>
                <path d="M 8,32 L 40,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 40,64" fill="none" stroke="black"/>
                <path d="M 8,112 L 40,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 40,144" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="32,104 20,98.4 20,109.6" fill="black" transform="rotate(90,24,104)"/>
                <g class="text">
                  <text x="24" y="52">B</text>
                  <text x="76" y="84">depends-on</text>
                  <text x="24" y="132">A</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
     .---.
     | B |
     '-+-'
       | depends-on
       v
     .-+-.
     | A |
     '---'
]]></artwork>
          </artset>
        </section>
        <section anchor="router">
          <name>Router</name>
          <t>TBD</t>
        </section>
        <section anchor="trusted-hw-path">
          <name>Trusted HW path</name>
          <t>TBD - it may be an implementation detail rather than a conceptual relation between attesters.</t>
        </section>
        <section anchor="collection-bus">
          <name>Collection (Bus)</name>
          <t>A Collection connector describes the collection of Conceptual Messages.</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="120" viewBox="0 0 120 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
                <path d="M 8,144 L 8,176" fill="none" stroke="black"/>
                <path d="M 24,64 L 24,144" fill="none" stroke="black"/>
                <path d="M 40,144 L 40,176" fill="none" stroke="black"/>
                <path d="M 80,144 L 80,176" fill="none" stroke="black"/>
                <path d="M 96,64 L 96,144" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,64" fill="none" stroke="black"/>
                <path d="M 112,144 L 112,176" fill="none" stroke="black"/>
                <path d="M 8,32 L 112,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 112,64" fill="none" stroke="black"/>
                <path d="M 16,112 L 32,112" fill="none" stroke="black"/>
                <path d="M 88,112 L 104,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 40,144" fill="none" stroke="black"/>
                <path d="M 80,144 L 112,144" fill="none" stroke="black"/>
                <path d="M 8,176 L 40,176" fill="none" stroke="black"/>
                <path d="M 80,176 L 112,176" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="104,104 92,98.4 92,109.6" fill="black" transform="rotate(90,96,104)"/>
                <polygon class="arrowhead" points="32,104 20,98.4 20,109.6" fill="black" transform="rotate(90,24,104)"/>
                <g class="text">
                  <text x="60" y="52">Binder</text>
                  <text x="24" y="164">A</text>
                  <text x="96" y="164">B</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
  .------------.
  |   Binder   |
  '-+--------+-'
    |        |
    v        v
   -+-      -+-
    |        |
  .-+-.    .-+-.
  | A |    | B |
  '---'    '---'
]]></artwork>
          </artset>
          <t>A lead Attester is responsible for the binding function.</t>
          <t>A binder is one of:</t>
          <ul spacing="normal">
            <li>
              <t>Signature of the lead Attester</t>
            </li>
            <li>
              <t>Projection</t>
            </li>
          </ul>
          <t>The signature of the lead Attester can bind over a broadcast nonce.</t>
          <t>A Projection is described as a topo-sorted set of <tt>(src, dst)</tt> tuples.</t>
        </section>
      </section>
      <section anchor="example-of-notation-system">
        <name>Example of Notation System</name>
        <section anchor="cca-delegated">
          <name>CCA Delegated</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="216" viewBox="0 0 216 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 8,176 L 8,240" fill="none" stroke="black"/>
                <path d="M 40,32 L 40,64" fill="none" stroke="black"/>
                <path d="M 40,128 L 40,168" fill="none" stroke="black"/>
                <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
                <path d="M 96,176 L 96,240" fill="none" stroke="black"/>
                <path d="M 32,32 L 48,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 96,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
                <path d="M 8,176 L 96,176" fill="none" stroke="black"/>
                <path d="M 8,208 L 96,208" fill="none" stroke="black"/>
                <path d="M 8,240 L 96,240" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="48,168 36,162.4 36,173.6" fill="black" transform="rotate(90,40,168)"/>
                <g class="text">
                  <text x="72" y="36">RSI</text>
                  <text x="104" y="36">ABI</text>
                  <text x="168" y="36">(nonce[64])</text>
                  <text x="32" y="84">TE:</text>
                  <text x="64" y="84">wkl</text>
                  <text x="128" y="100">Realm</text>
                  <text x="32" y="116">AK:</text>
                  <text x="64" y="116">RAK</text>
                  <text x="92" y="148">depends-on</text>
                  <text x="32" y="196">TE:</text>
                  <text x="64" y="196">RMM</text>
                  <text x="140" y="212">Platform</text>
                  <text x="32" y="228">AK:</text>
                  <text x="68" y="228">CPAK</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
    -+- RSI ABI (nonce[64])
     |
 .---+------.
 | TE: wkl  |
 +----------+ Realm
 | AK: RAK  |
 '---+------'
     | depends-on
     v
 .---+------.
 | TE: RMM  |
 +----------+ Platform
 | AK: CPAK |
 '----------'
]]></artwork>
          </artset>
        </section>
        <section anchor="class-0">
          <name>Class 0</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="96" viewBox="0 0 96 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 40,32 L 40,64" fill="none" stroke="black"/>
                <path d="M 88,64 L 88,128" fill="none" stroke="black"/>
                <path d="M 32,32 L 48,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 88,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 88,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 88,128" fill="none" stroke="black"/>
                <g class="text">
                  <text x="72" y="36">API</text>
                  <text x="32" y="84">TE:</text>
                  <text x="60" y="84">TE</text>
                  <text x="32" y="116">AK:</text>
                  <text x="64" y="116">LAK</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
    -+- API
     |
 .---+-----.
 | TE: TE  |
 +---------+
 | AK: LAK |
 '---------'
]]></artwork>
          </artset>
          <t>Or</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="328" viewBox="0 0 328 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 40,32 L 40,64" fill="none" stroke="black"/>
                <path d="M 88,64 L 88,128" fill="none" stroke="black"/>
                <path d="M 136,144 L 136,208" fill="none" stroke="black"/>
                <path d="M 144,80 L 144,112" fill="none" stroke="black"/>
                <path d="M 160,112 L 160,144" fill="none" stroke="black"/>
                <path d="M 216,144 L 216,208" fill="none" stroke="black"/>
                <path d="M 232,144 L 232,208" fill="none" stroke="black"/>
                <path d="M 256,112 L 256,144" fill="none" stroke="black"/>
                <path d="M 272,80 L 272,112" fill="none" stroke="black"/>
                <path d="M 320,144 L 320,208" fill="none" stroke="black"/>
                <path d="M 32,32 L 48,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 88,64" fill="none" stroke="black"/>
                <path d="M 144,80 L 272,80" fill="none" stroke="black"/>
                <path d="M 8,96 L 136,96" fill="none" stroke="black"/>
                <path d="M 144,112 L 272,112" fill="none" stroke="black"/>
                <path d="M 8,128 L 88,128" fill="none" stroke="black"/>
                <path d="M 136,144 L 216,144" fill="none" stroke="black"/>
                <path d="M 232,144 L 320,144" fill="none" stroke="black"/>
                <path d="M 136,176 L 216,176" fill="none" stroke="black"/>
                <path d="M 232,176 L 320,176" fill="none" stroke="black"/>
                <path d="M 136,208 L 216,208" fill="none" stroke="black"/>
                <path d="M 232,208 L 320,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="144,96 132,90.4 132,101.6" fill="black" transform="rotate(0,136,96)"/>
                <g class="text">
                  <text x="72" y="36">API</text>
                  <text x="32" y="84">TE:</text>
                  <text x="60" y="84">&lt;&gt;</text>
                  <text x="164" y="100">&lt;&gt;</text>
                  <text x="32" y="116">AK:</text>
                  <text x="64" y="116">LAK</text>
                  <text x="160" y="164">TE:</text>
                  <text x="192" y="164">VGA</text>
                  <text x="256" y="164">TE:</text>
                  <text x="292" y="164">SCSI</text>
                  <text x="160" y="196">AK:</text>
                  <text x="188" y="196">&lt;&gt;</text>
                  <text x="256" y="196">AK:</text>
                  <text x="284" y="196">&lt;&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
    -+- API
     |
 .---+-----.
 | TE: <>  |      .---------------.
 +---------+----->| <>            |
 | AK: LAK |      '-+-----------+-'
 '---------'        |           |
                 .--+------. .--+-------.
                 | TE: VGA | | TE: SCSI |
                 +---------+ +----------+
                 | AK: <>  | | AK: <>   |
                 '---------' '----------'
]]></artwork>
          </artset>
        </section>
        <section anchor="class-1">
          <name>Class 1</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="328" viewBox="0 0 328 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 40,32 L 40,64" fill="none" stroke="black"/>
                <path d="M 88,64 L 88,128" fill="none" stroke="black"/>
                <path d="M 136,144 L 136,208" fill="none" stroke="black"/>
                <path d="M 144,80 L 144,112" fill="none" stroke="black"/>
                <path d="M 160,112 L 160,144" fill="none" stroke="black"/>
                <path d="M 216,144 L 216,208" fill="none" stroke="black"/>
                <path d="M 232,144 L 232,208" fill="none" stroke="black"/>
                <path d="M 256,112 L 256,144" fill="none" stroke="black"/>
                <path d="M 272,80 L 272,112" fill="none" stroke="black"/>
                <path d="M 320,144 L 320,208" fill="none" stroke="black"/>
                <path d="M 32,32 L 48,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 88,64" fill="none" stroke="black"/>
                <path d="M 144,80 L 272,80" fill="none" stroke="black"/>
                <path d="M 8,96 L 136,96" fill="none" stroke="black"/>
                <path d="M 144,112 L 272,112" fill="none" stroke="black"/>
                <path d="M 8,128 L 88,128" fill="none" stroke="black"/>
                <path d="M 136,144 L 216,144" fill="none" stroke="black"/>
                <path d="M 232,144 L 320,144" fill="none" stroke="black"/>
                <path d="M 136,176 L 216,176" fill="none" stroke="black"/>
                <path d="M 232,176 L 320,176" fill="none" stroke="black"/>
                <path d="M 136,208 L 216,208" fill="none" stroke="black"/>
                <path d="M 232,208 L 320,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="144,96 132,90.4 132,101.6" fill="black" transform="rotate(0,136,96)"/>
                <g class="text">
                  <text x="72" y="36">API</text>
                  <text x="32" y="84">TE:</text>
                  <text x="56" y="84">A</text>
                  <text x="192" y="100">Binding=?</text>
                  <text x="32" y="116">AK:</text>
                  <text x="64" y="116">LAK</text>
                  <text x="160" y="164">TE:</text>
                  <text x="184" y="164">B</text>
                  <text x="256" y="164">TE:</text>
                  <text x="280" y="164">C</text>
                  <text x="160" y="196">AK:</text>
                  <text x="188" y="196">BK</text>
                  <text x="256" y="196">AK:</text>
                  <text x="284" y="196">CK</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
    -+- API
     |
 .---+-----.
 | TE: A   |      .---------------.
 +---------+----->| Binding=?     |
 | AK: LAK |      '-+-----------+-'
 '---------'        |           |
                 .--+------. .--+-------.
                 | TE: B   | | TE: C    |
                 +---------+ +----------+
                 | AK: BK  | | AK: CK   |
                 '---------' '----------'
]]></artwork>
          </artset>
          <t>Notes:</t>
          <ol spacing="normal" type="1"><li>
              <t>A seems to have both lead and "normal" attester functionality</t>
            </li>
            <li>
              <t>Binding between collection entries is unspecified</t>
            </li>
            <li>
              <t>is CMW signed or not?</t>
            </li>
          </ol>
          <t>Questions:</t>
          <ol spacing="normal" type="1"><li>
              <t>scope of LAK: the signing key over the collection CMW, or signing key over Target A, or both?</t>
            </li>
          </ol>
        </section>
        <section anchor="class-2">
          <name>Class 2</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="464" width="264" viewBox="0 0 264 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
                <path d="M 8,112 L 8,176" fill="none" stroke="black"/>
                <path d="M 24,64 L 24,104" fill="none" stroke="black"/>
                <path d="M 40,288 L 40,320" fill="none" stroke="black"/>
                <path d="M 56,176 L 56,288" fill="none" stroke="black"/>
                <path d="M 72,352 L 72,416" fill="none" stroke="black"/>
                <path d="M 88,72 L 88,112" fill="none" stroke="black"/>
                <path d="M 96,320 L 96,352" fill="none" stroke="black"/>
                <path d="M 96,416 L 96,448" fill="none" stroke="black"/>
                <path d="M 104,32 L 104,64" fill="none" stroke="black"/>
                <path d="M 104,112 L 104,176" fill="none" stroke="black"/>
                <path d="M 144,112 L 144,144" fill="none" stroke="black"/>
                <path d="M 152,208 L 152,288" fill="none" stroke="black"/>
                <path d="M 160,352 L 160,416" fill="none" stroke="black"/>
                <path d="M 168,288 L 168,320" fill="none" stroke="black"/>
                <path d="M 200,80 L 200,112" fill="none" stroke="black"/>
                <path d="M 200,144 L 200,176" fill="none" stroke="black"/>
                <path d="M 8,32 L 104,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 160,96 L 224,96" fill="none" stroke="black"/>
                <path d="M 8,112 L 104,112" fill="none" stroke="black"/>
                <path d="M 104,128 L 144,128" fill="none" stroke="black"/>
                <path d="M 8,144 L 104,144" fill="none" stroke="black"/>
                <path d="M 160,160 L 224,160" fill="none" stroke="black"/>
                <path d="M 8,176 L 104,176" fill="none" stroke="black"/>
                <path d="M 48,240 L 64,240" fill="none" stroke="black"/>
                <path d="M 144,240 L 160,240" fill="none" stroke="black"/>
                <path d="M 40,288 L 168,288" fill="none" stroke="black"/>
                <path d="M 40,320 L 168,320" fill="none" stroke="black"/>
                <path d="M 72,352 L 160,352" fill="none" stroke="black"/>
                <path d="M 72,384 L 160,384" fill="none" stroke="black"/>
                <path d="M 72,416 L 160,416" fill="none" stroke="black"/>
                <path d="M 88,448 L 104,448" fill="none" stroke="black"/>
                <path d="M 240,80 C 231.16936,80 224,87.16936 224,96" fill="none" stroke="black"/>
                <path d="M 240,80 C 248.83064,80 256,87.16936 256,96" fill="none" stroke="black"/>
                <path d="M 160,96 C 151.16936,96 144,103.16936 144,112" fill="none" stroke="black"/>
                <path d="M 240,112 C 231.16936,112 224,104.83064 224,96" fill="none" stroke="black"/>
                <path d="M 240,112 C 248.83064,112 256,104.83064 256,96" fill="none" stroke="black"/>
                <path d="M 240,144 C 231.16936,144 224,151.16936 224,160" fill="none" stroke="black"/>
                <path d="M 240,144 C 248.83064,144 256,151.16936 256,160" fill="none" stroke="black"/>
                <path d="M 160,160 C 151.16936,160 144,152.83064 144,144" fill="none" stroke="black"/>
                <path d="M 152,176 C 143.16936,176 136,183.16936 136,192" fill="none" stroke="black"/>
                <path d="M 152,176 C 160.83064,176 168,183.16936 168,192" fill="none" stroke="black"/>
                <path d="M 240,176 C 231.16936,176 224,168.83064 224,160" fill="none" stroke="black"/>
                <path d="M 240,176 C 248.83064,176 256,168.83064 256,160" fill="none" stroke="black"/>
                <path d="M 152,208 C 143.16936,208 136,200.83064 136,192" fill="none" stroke="black"/>
                <path d="M 152,208 C 160.83064,208 168,200.83064 168,192" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="200,160 188,154.4 188,165.6" fill="black" transform="rotate(0,192,160)"/>
                <polygon class="arrowhead" points="200,96 188,90.4 188,101.6" fill="black" transform="rotate(0,192,96)"/>
                <polygon class="arrowhead" points="160,248 148,242.4 148,253.6" fill="black" transform="rotate(270,152,248)"/>
                <polygon class="arrowhead" points="96,72 84,66.4 84,77.6" fill="black" transform="rotate(270,88,72)"/>
                <polygon class="arrowhead" points="64,248 52,242.4 52,253.6" fill="black" transform="rotate(270,56,248)"/>
                <polygon class="arrowhead" points="32,104 20,98.4 20,109.6" fill="black" transform="rotate(90,24,104)"/>
                <g class="text">
                  <text x="52" y="52">Verifier</text>
                  <text x="240" y="100">B</text>
                  <text x="52" y="132">RP</text>
                  <text x="52" y="164">Conveyer</text>
                  <text x="240" y="164">C</text>
                  <text x="152" y="196">A</text>
                  <text x="88" y="308">Binding=?</text>
                  <text x="96" y="372">TE:</text>
                  <text x="124" y="372">&lt;&gt;</text>
                  <text x="96" y="404">AK:</text>
                  <text x="128" y="404">LAK</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
.-----------.
| Verifier  |
'-+---------'
  |       ^             |   .-.
  v       |       .---->+--+ B |
.---------+-.    |      |   '-'
|    RP     +----+
+-----------+    |      |   .-.
| Conveyer  |     '---->+--+ C |
'-----+-----'    .-.    |   '-'
      |         | A |
      |          '+'
      |           |
     -+-         -+-
      ^           ^
      |           |
    .-+-----------+-.
    | Binding=?     |
    '------+--------'
           |
        .--+-------.
        | TE: <>   |
        +----------+
        | AK: LAK  |
        '--+-------'
           |
          -+-
]]></artwork>
          </artset>
          <t>Questions and notes are the same as Class 1.</t>
          <t>Besides, there are further questions:</t>
          <ol spacing="normal" type="1"><li>
              <t>a question whether a lead attester is in front of B and C</t>
            </li>
            <li>
              <t>a question about unnecessary conflation of RP/Verifier and Lead attester -- they probably need to be modelled as separate entities</t>
            </li>
          </ol>
        </section>
      </section>
    </section>
    <section anchor="composite-attesters-examples">
      <name>Composite Attesters Examples</name>
      <t>(EDNOTE: the diagrams in this section will get rewritten using the notation system abover)</t>
      <section anchor="class-0-composite-attester">
        <name>Class 0 Composite Attester</name>
        <t>In this first, somewhat degenerate scenario, the Lead Attester has access to the entire memory/environment of all of the components.
Examples of situations like this include classic PCI-buses, ISA-buses, VME, S100/IEEE 696-1983.
In these situations, secondary components might not boot on their own.
(It might even be that the lead environment (the chassis) will place code into RAM for these systems, with no ROM at all)</t>
        <t>In this case, it is possible for the Lead Attesting Environment to collect Claims about each of the components without the components having to have their own Attesting Environment.</t>
        <t>There is no Verifier le petit, since there are no components that can create Evidence other than the Lead Attester.</t>
        <t>At this Class, all of these components can be considered part of the same system.
In the classic PCI or ISA environment, the components are hard drive interfaces,
video interfaces, and network interfaces.
For many such systems considering the system to be a composite is unncessary additional complexity.</t>
        <t>The benefit of applying the composite mechanism in this case is that it is no longer necessary to consider the exhaustive combinatorics of all possible components being attached to the lead attester.
It is, for instance, already the case the reference values for a target environment may change depending upon how much memory is installed in the target environment.</t>
        <t>In this degenerate, or Class <em>0</em> Composite Attester, the Claims gathered about the components would be included in the Lead Attester's signed Evidence (such as an EAT), as sub-components in UCCS form <xref target="RFC9781"/>.
The signature from the Lead Attester applies to all the Claims, but the Verifier can evaluate each component separately.</t>
        <figure anchor="class0diagram">
          <name>Class 0 Composite Attester</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="416" viewBox="0 0 416 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,96 L 8,448" fill="none" stroke="black"/>
                <path d="M 24,112 L 24,288" fill="none" stroke="black"/>
                <path d="M 40,176 L 40,240" fill="none" stroke="black"/>
                <path d="M 96,176 L 96,240" fill="none" stroke="black"/>
                <path d="M 112,176 L 112,240" fill="none" stroke="black"/>
                <path d="M 120,296 L 120,400" fill="none" stroke="black"/>
                <path d="M 168,176 L 168,240" fill="none" stroke="black"/>
                <path d="M 176,368 L 176,416" fill="none" stroke="black"/>
                <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
                <path d="M 200,112 L 200,288" fill="none" stroke="black"/>
                <path d="M 232,72 L 232,360" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,64" fill="none" stroke="black"/>
                <path d="M 288,368 L 288,416" fill="none" stroke="black"/>
                <path d="M 408,96 L 408,448" fill="none" stroke="black"/>
                <path d="M 184,32 L 272,32" fill="none" stroke="black"/>
                <path d="M 184,64 L 272,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 224,96" fill="none" stroke="black"/>
                <path d="M 240,96 L 408,96" fill="none" stroke="black"/>
                <path d="M 24,112 L 200,112" fill="none" stroke="black"/>
                <path d="M 40,176 L 96,176" fill="none" stroke="black"/>
                <path d="M 112,176 L 168,176" fill="none" stroke="black"/>
                <path d="M 40,240 L 96,240" fill="none" stroke="black"/>
                <path d="M 112,240 L 168,240" fill="none" stroke="black"/>
                <path d="M 24,288 L 200,288" fill="none" stroke="black"/>
                <path d="M 176,368 L 288,368" fill="none" stroke="black"/>
                <path d="M 120,400 L 168,400" fill="none" stroke="black"/>
                <path d="M 176,416 L 288,416" fill="none" stroke="black"/>
                <path d="M 8,448 L 184,448" fill="none" stroke="black"/>
                <path d="M 248,448 L 408,448" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="240,72 228,66.4 228,77.6" fill="black" transform="rotate(270,232,72)"/>
                <polygon class="arrowhead" points="176,400 164,394.4 164,405.6" fill="black" transform="rotate(0,168,400)"/>
                <g class="text">
                  <text x="228" y="52">Verifier</text>
                  <text x="60" y="132">Target</text>
                  <text x="64" y="148">Environ</text>
                  <text x="268" y="180">Evidence</text>
                  <text x="344" y="180">includes:</text>
                  <text x="64" y="196">VGA</text>
                  <text x="140" y="196">SCSI</text>
                  <text x="248" y="196">-</text>
                  <text x="316" y="196">SHA256(VGArom)</text>
                  <text x="64" y="212">rom</text>
                  <text x="136" y="212">rom</text>
                  <text x="248" y="212">-</text>
                  <text x="320" y="212">SHA256(SCSIrom)</text>
                  <text x="248" y="228">-</text>
                  <text x="304" y="228">SHA256(boot</text>
                  <text x="372" y="228">rom)</text>
                  <text x="108" y="260">Claims</text>
                  <text x="160" y="324">Collect</text>
                  <text x="156" y="340">Claims</text>
                  <text x="224" y="388">Attesting</text>
                  <text x="232" y="404">Environment</text>
                  <text x="216" y="452">Chassis</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                               .----------.
                               | Verifier |
                               '----------'
                                     ^
         .---------------------------|---------------------.
         | .---------------------.   |                     |
         | | Target              |   |                     |
         | | Environ             |   |                     |
         | |                     |   |                     |
         | | .------. .------.   |   |Evidence includes:   |
         | | | VGA  | | SCSI |   |   | - SHA256(VGArom)    |
         | | | rom  | | rom  |   |   | - SHA256(SCSIrom)   |
         | | |      | |      |   |   | - SHA256(boot rom)  |
         | | '------' '------'   |   |                     |
         | |       Claims        |   |                     |
         | |                     |   |                     |
         | '---------------------'   |                     |
         |             |             |                     |
         |             | Collect     |                     |
         |             | Claims      |                     |
         |             |             |                     |
         |             |      .-------------.              |
         |             |      | Attesting   |              |
         |             '----->| Environment |              |
         |                    '-------------'              |
         |                                                 |
         '----------------------Chassis--------------------'
]]></artwork>
          </artset>
        </figure>
        <t>However, more modern buses like PCIe, InfiniBand, Thunderbolt, DisplayPort, USB, Firewire and others do not provided direct electrical access to target component system memory.
While some seem to be very high speed serialized versions of the old I/O buses, there is a network-like protocol, and non-trivial deserialization occurs at each end.
That implies that there can be mutable firmware in each component which mitigates access.
That firmware itself might not be trustworthy.
If it can even be seen by the Lead Attester, the mitigation mechanism can present whatever view the Lead Attester expects to see.
So, a system with such interfaces would be a Class 1.</t>
      </section>
      <section anchor="class-1-composite-attester">
        <name>Class 1 Composite Attester</name>
        <t>In this Class, each component or slot has its own Attesting Environment and hence produces its own signed Evidence.</t>
        <t>RFC 9334 gives the following example:</t>
        <blockquote>
          <t>For example, a carrier-grade router consists of a chassis and
multiple slots.  The trustworthiness of the router depends on all its
slots' trustworthiness.  Each slot has an Attesting Environment, such
as a TEE, collecting the Claims of its boot process, after which it
generates Evidence from the Claims.</t>
        </blockquote>
        <t>The Lead Attester simply relays the Evidence along with its own:</t>
        <blockquote>
          <t>Among these slots, only a "main" slot can communicate with the
Verifier while other slots cannot.  However, other slots can
communicate with the main slot by the links between them inside the
router.  The main slot collects the Evidence of other slots, produces
the final Evidence of the whole router, and conveys the final
Evidence to the Verifier.  Therefore, the router is a composite
device, each slot is an Attester, and the main slot is the lead
Attester.</t>
        </blockquote>
        <t>Note that the Lead Attester does <em>not</em> evaluate the Evidence, and does not run its own
Verifier.</t>
        <figure anchor="class1diagram">
          <name>Class 1 Composite Attester</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="584" viewBox="0 0 584 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,96 L 8,360" fill="none" stroke="black"/>
                <path d="M 32,112 L 32,336" fill="none" stroke="black"/>
                <path d="M 48,128 L 48,176" fill="none" stroke="black"/>
                <path d="M 96,184 L 96,288" fill="none" stroke="black"/>
                <path d="M 136,128 L 136,176" fill="none" stroke="black"/>
                <path d="M 184,256 L 184,304" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,64" fill="none" stroke="black"/>
                <path d="M 240,72 L 240,248" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
                <path d="M 296,256 L 296,304" fill="none" stroke="black"/>
                <path d="M 312,192 L 312,336" fill="none" stroke="black"/>
                <path d="M 424,208 L 424,256" fill="none" stroke="black"/>
                <path d="M 424,288 L 424,336" fill="none" stroke="black"/>
                <path d="M 544,208 L 544,256" fill="none" stroke="black"/>
                <path d="M 544,288 L 544,336" fill="none" stroke="black"/>
                <path d="M 576,96 L 576,360" fill="none" stroke="black"/>
                <path d="M 192,32 L 280,32" fill="none" stroke="black"/>
                <path d="M 192,64 L 280,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 232,96" fill="none" stroke="black"/>
                <path d="M 248,96 L 576,96" fill="none" stroke="black"/>
                <path d="M 32,112 L 232,112" fill="none" stroke="black"/>
                <path d="M 248,112 L 312,112" fill="none" stroke="black"/>
                <path d="M 48,128 L 136,128" fill="none" stroke="black"/>
                <path d="M 48,176 L 136,176" fill="none" stroke="black"/>
                <path d="M 424,208 L 544,208" fill="none" stroke="black"/>
                <path d="M 320,240 L 416,240" fill="none" stroke="black"/>
                <path d="M 184,256 L 296,256" fill="none" stroke="black"/>
                <path d="M 424,256 L 544,256" fill="none" stroke="black"/>
                <path d="M 96,288 L 176,288" fill="none" stroke="black"/>
                <path d="M 424,288 L 544,288" fill="none" stroke="black"/>
                <path d="M 184,304 L 296,304" fill="none" stroke="black"/>
                <path d="M 320,304 L 416,304" fill="none" stroke="black"/>
                <path d="M 32,336 L 120,336" fill="none" stroke="black"/>
                <path d="M 232,336 L 312,336" fill="none" stroke="black"/>
                <path d="M 424,336 L 544,336" fill="none" stroke="black"/>
                <path d="M 8,368 L 224,368" fill="none" stroke="black"/>
                <path d="M 360,368 L 576,368" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="328,304 316,298.4 316,309.6" fill="black" transform="rotate(180,320,304)"/>
                <polygon class="arrowhead" points="328,240 316,234.4 316,245.6" fill="black" transform="rotate(180,320,240)"/>
                <polygon class="arrowhead" points="248,72 236,66.4 236,77.6" fill="black" transform="rotate(270,240,72)"/>
                <polygon class="arrowhead" points="184,288 172,282.4 172,293.6" fill="black" transform="rotate(0,176,288)"/>
                <g class="text">
                  <text x="236" y="52">Verifier</text>
                  <text x="328" y="132">Evidence-Collection</text>
                  <text x="424" y="132">CMW</text>
                  <text x="84" y="148">Target</text>
                  <text x="120" y="148">A</text>
                  <text x="260" y="148">1:</text>
                  <text x="360" y="148">CMW(Evidence(Attester</text>
                  <text x="460" y="148">A)</text>
                  <text x="88" y="164">Environ</text>
                  <text x="260" y="164">2:</text>
                  <text x="376" y="164">Evidence(Attester</text>
                  <text x="460" y="164">B)</text>
                  <text x="260" y="180">3:</text>
                  <text x="376" y="180">Evidence(Attester</text>
                  <text x="464" y="180">C))</text>
                  <text x="128" y="212">Collect</text>
                  <text x="124" y="228">Claims</text>
                  <text x="364" y="228">Evidence</text>
                  <text x="408" y="228">B</text>
                  <text x="468" y="228">Attester</text>
                  <text x="512" y="228">B</text>
                  <text x="232" y="276">Attesting</text>
                  <text x="240" y="292">Environment</text>
                  <text x="468" y="308">Attester</text>
                  <text x="512" y="308">C</text>
                  <text x="132" y="324">Attester</text>
                  <text x="176" y="324">A</text>
                  <text x="364" y="324">Evidence</text>
                  <text x="408" y="324">C</text>
                  <text x="140" y="340">Lead</text>
                  <text x="196" y="340">Attester</text>
                  <text x="264" y="372">Composite</text>
                  <text x="332" y="372">Device</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                             .----------.
                             | Verifier |
                             '----------'
                                   ^
      .----------------------------|-----------------------------------------.
      |  .-------------------------|--------.                                |
      |  | .----------.            | Evidence-Collection CMW                 |
      |  | | Target A |            | 1: CMW(Evidence(Attester A)             |
      |  | | Environ  |            | 2:     Evidence(Attester B)             |
      |  | '----------'            | 3:     Evidence(Attester C))            |
      |  |       |                 |        |                                |
      |  |       |Collect          |        |             .--------------.   |
      |  |       |Claims           |        |  Evidence B | Attester B   |   |
      |  |       |                 |        |<------------|              |   |
      |  |       |          .-------------. |             '--------------'   |
      |  |       |          | Attesting   | |                                |
      |  |       '--------->| Environment | |             .--------------.   |
      |  |                  '-------------' |<------------| Attester C   |   |
      |  |        Attester A                |  Evidence C |              |   |
      |  '-----------Lead Attester----------'             '--------------'   |
      |                                                                      |
      .---------------------------Composite Device---------------------------.
]]></artwork>
          </artset>
        </figure>
        <t>This diagram is intended to be identical to Figure 4 of <xref target="RFC9334"/>, but has been stretched out to allow the relationship to other classes to be clearer.</t>
      </section>
      <section anchor="class-2-compositehybrid-attester">
        <name>Class 2 Composite/Hybrid Attester</name>
        <t>In this scenario, the Components relay their Evidence to the Lead Attester.
The Lead Attester operates a Verifier itself.
It evaluates the Components' Evidence against Reference Values, Endorsements, etc. producing <em>Attestation Results</em>
These Attestation Results (or their selectively disclosed version: SD-CWT/SD-JWT)
are then included as part of the Lead Attester's Evidence to it's remote Verifier, using the RATS Concise Message Wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/>
Also the Lead Attester's Verifier can be a target environment, whose claims can be reported in Lead Attester Evidence. This ensures that
the remote Verifier can fully trust the verification done by Lead Attester.</t>
        <figure anchor="class2diagram">
          <name>Class 2 Composite Attester</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="576" width="592" viewBox="0 0 592 576" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,128 L 8,544" fill="none" stroke="black"/>
                <path d="M 32,144 L 32,528" fill="none" stroke="black"/>
                <path d="M 48,160 L 48,208" fill="none" stroke="black"/>
                <path d="M 96,216 L 96,320" fill="none" stroke="black"/>
                <path d="M 136,160 L 136,208" fill="none" stroke="black"/>
                <path d="M 184,288 L 184,352" fill="none" stroke="black"/>
                <path d="M 184,448 L 184,512" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,80" fill="none" stroke="black"/>
                <path d="M 240,88 L 240,280" fill="none" stroke="black"/>
                <path d="M 240,360 L 240,440" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,80" fill="none" stroke="black"/>
                <path d="M 296,288 L 296,352" fill="none" stroke="black"/>
                <path d="M 296,448 L 296,512" fill="none" stroke="black"/>
                <path d="M 320,224 L 320,472" fill="none" stroke="black"/>
                <path d="M 320,488 L 320,528" fill="none" stroke="black"/>
                <path d="M 344,368 L 344,480" fill="none" stroke="black"/>
                <path d="M 384,432 L 384,464" fill="none" stroke="black"/>
                <path d="M 424,192 L 424,200" fill="none" stroke="black"/>
                <path d="M 448,352 L 448,384" fill="none" stroke="black"/>
                <path d="M 448,448 L 448,480" fill="none" stroke="black"/>
                <path d="M 552,352 L 552,384" fill="none" stroke="black"/>
                <path d="M 552,448 L 552,480" fill="none" stroke="black"/>
                <path d="M 584,128 L 584,544" fill="none" stroke="black"/>
                <path d="M 192,32 L 280,32" fill="none" stroke="black"/>
                <path d="M 192,80 L 280,80" fill="none" stroke="black"/>
                <path d="M 8,128 L 232,128" fill="none" stroke="black"/>
                <path d="M 248,128 L 584,128" fill="none" stroke="black"/>
                <path d="M 32,144 L 232,144" fill="none" stroke="black"/>
                <path d="M 248,144 L 320,144" fill="none" stroke="black"/>
                <path d="M 48,160 L 136,160" fill="none" stroke="black"/>
                <path d="M 48,208 L 136,208" fill="none" stroke="black"/>
                <path d="M 184,288 L 296,288" fill="none" stroke="black"/>
                <path d="M 96,320 L 176,320" fill="none" stroke="black"/>
                <path d="M 184,352 L 296,352" fill="none" stroke="black"/>
                <path d="M 448,352 L 552,352" fill="none" stroke="black"/>
                <path d="M 344,368 L 440,368" fill="none" stroke="black"/>
                <path d="M 448,384 L 552,384" fill="none" stroke="black"/>
                <path d="M 352,432 L 384,432" fill="none" stroke="black"/>
                <path d="M 184,448 L 296,448" fill="none" stroke="black"/>
                <path d="M 448,448 L 552,448" fill="none" stroke="black"/>
                <path d="M 384,464 L 440,464" fill="none" stroke="black"/>
                <path d="M 304,480 L 344,480" fill="none" stroke="black"/>
                <path d="M 448,480 L 552,480" fill="none" stroke="black"/>
                <path d="M 184,512 L 296,512" fill="none" stroke="black"/>
                <path d="M 32,528 L 320,528" fill="none" stroke="black"/>
                <path d="M 8,544 L 240,544" fill="none" stroke="black"/>
                <path d="M 320,544 L 584,544" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="360,432 348,426.4 348,437.6" fill="black" transform="rotate(180,352,432)"/>
                <polygon class="arrowhead" points="312,480 300,474.4 300,485.6" fill="black" transform="rotate(180,304,480)"/>
                <polygon class="arrowhead" points="248,360 236,354.4 236,365.6" fill="black" transform="rotate(270,240,360)"/>
                <polygon class="arrowhead" points="184,320 172,314.4 172,325.6" fill="black" transform="rotate(0,176,320)"/>
                <g class="text">
                  <text x="220" y="52">Lead</text>
                  <text x="236" y="68">Verifier</text>
                  <text x="328" y="164">Evidence-Collection</text>
                  <text x="424" y="164">CMW</text>
                  <text x="84" y="180">Target</text>
                  <text x="120" y="180">A</text>
                  <text x="260" y="180">1:</text>
                  <text x="360" y="180">CMW(Evidence(Attester</text>
                  <text x="464" y="180">A),</text>
                  <text x="88" y="196">Environ</text>
                  <text x="260" y="196">2:</text>
                  <text x="352" y="196">AR(Attester</text>
                  <text x="412" y="196">B)</text>
                  <text x="260" y="212">3:</text>
                  <text x="352" y="212">AR(Attester</text>
                  <text x="416" y="212">C))</text>
                  <text x="128" y="244">Collect</text>
                  <text x="124" y="260">Claims</text>
                  <text x="232" y="308">Attesting</text>
                  <text x="240" y="324">Environment</text>
                  <text x="208" y="340">+</text>
                  <text x="228" y="340">RP</text>
                  <text x="84" y="356">Attester</text>
                  <text x="128" y="356">A</text>
                  <text x="380" y="356">Evidence</text>
                  <text x="424" y="356">B</text>
                  <text x="492" y="372">Attester</text>
                  <text x="536" y="372">B</text>
                  <text x="168" y="420">AR(Attester</text>
                  <text x="228" y="420">B)</text>
                  <text x="168" y="436">AR(Attester</text>
                  <text x="228" y="436">C)</text>
                  <text x="224" y="468">Chassis</text>
                  <text x="492" y="468">Attester</text>
                  <text x="536" y="468">C</text>
                  <text x="232" y="484">Component</text>
                  <text x="380" y="484">Evidence</text>
                  <text x="424" y="484">C</text>
                  <text x="228" y="500">Verifier</text>
                  <text x="272" y="548">Chassis</text>
                  <text x="312" y="548">A</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                             .----------.
                             | Lead     |
                             | Verifier |
                             '----------'
                                   |
                                   |
      .----------------------------|------------------------------------------.
      |  .-------------------------|---------.                                |
      |  | .----------.            | Evidence-Collection CMW                  |
      |  | | Target A |            | 1: CMW(Evidence(Attester A),             |
      |  | | Environ  |            | 2:     AR(Attester B),                   |
      |  | '----------'            | 3:     AR(Attester C))                   |
      |  |       |                 |         |                                |
      |  |       |Collect          |         |                                |
      |  |       |Claims           |         |                                |
      |  |       |                 |         |                                |
      |  |       |          .-------------.  |                                |
      |  |       |          | Attesting   |  |                                |
      |  |       '--------->| Environment |  |                                |
      |  |                  |  + RP       |  |                                |
      |  |  Attester A      '-------------'  |   Evidence B  .------------.   |
      |  |                         ^         |  .------------| Attester B |   |
      |  |                         |         |  |            '------------'   |
      |  |                         |         |  |                             |
      |  |           AR(Attester B)|         |  |                             |
      |  |           AR(Attester C)|         |  |<---.                        |
      |  |                  .-------------.  |  |    |       .------------.   |
      |  |                  | Chassis     |  |  |    '-------| Attester C |   |
      |  |                  | Component   |<----'Evidence C  '------------'   |
      |  |                  | Verifier    |  |                                |
      |  |                  '-------------'  |                                |
      |  '-----------------------------------'                                |
      '-----------------------------Chassis A---------------------------------'
]]></artwork>
          </artset>
        </figure>
        <t>The Verifier's signing credentials may be part of the same Attesting Environment as the Evidence signing credential used by the Lead Attesting environment.
Or they could be in a different environment, such as in a different TEE.</t>
      </section>
      <section anchor="class-3b-composite-background-check-attester">
        <name>Class 3B Composite Background-Check Attester</name>
        <t>In this scenario, the Components relay their Evidence to the Lead Attester.
The Lead Attester does <em>not</em> operates a Verifier itself.</t>
        <t>Instead, the Lead Attester, conveys the Evidence to the Lead Verifier along with it's own Evidence.
The Component Evidence is not placed within the Lead Attester's Evidence (DEBATE).
The Lead Attester needs to communicate how each component is attached, and that would be within its Evidence.</t>
        <figure anchor="class3Bdiagram">
          <name>Class 3B Composite Background-check Attester</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="448" width="592" viewBox="0 0 592 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,112 L 8,416" fill="none" stroke="black"/>
                <path d="M 32,128 L 32,400" fill="none" stroke="black"/>
                <path d="M 48,160 L 48,208" fill="none" stroke="black"/>
                <path d="M 96,216 L 96,320" fill="none" stroke="black"/>
                <path d="M 136,160 L 136,208" fill="none" stroke="black"/>
                <path d="M 184,288 L 184,336" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,80" fill="none" stroke="black"/>
                <path d="M 240,88 L 240,280" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,80" fill="none" stroke="black"/>
                <path d="M 296,288 L 296,336" fill="none" stroke="black"/>
                <path d="M 328,128 L 328,144" fill="none" stroke="black"/>
                <path d="M 328,224 L 328,400" fill="none" stroke="black"/>
                <path d="M 368,32 L 368,80" fill="none" stroke="black"/>
                <path d="M 456,304 L 456,336" fill="none" stroke="black"/>
                <path d="M 456,368 L 456,400" fill="none" stroke="black"/>
                <path d="M 472,192 L 472,200" fill="none" stroke="black"/>
                <path d="M 480,32 L 480,80" fill="none" stroke="black"/>
                <path d="M 560,304 L 560,336" fill="none" stroke="black"/>
                <path d="M 560,368 L 560,400" fill="none" stroke="black"/>
                <path d="M 584,112 L 584,416" fill="none" stroke="black"/>
                <path d="M 192,32 L 280,32" fill="none" stroke="black"/>
                <path d="M 368,32 L 480,32" fill="none" stroke="black"/>
                <path d="M 288,64 L 360,64" fill="none" stroke="black"/>
                <path d="M 192,80 L 280,80" fill="none" stroke="black"/>
                <path d="M 368,80 L 480,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 232,112" fill="none" stroke="black"/>
                <path d="M 248,112 L 584,112" fill="none" stroke="black"/>
                <path d="M 32,128 L 232,128" fill="none" stroke="black"/>
                <path d="M 248,128 L 328,128" fill="none" stroke="black"/>
                <path d="M 48,160 L 136,160" fill="none" stroke="black"/>
                <path d="M 48,208 L 136,208" fill="none" stroke="black"/>
                <path d="M 184,288 L 296,288" fill="none" stroke="black"/>
                <path d="M 456,304 L 560,304" fill="none" stroke="black"/>
                <path d="M 96,320 L 176,320" fill="none" stroke="black"/>
                <path d="M 336,320 L 448,320" fill="none" stroke="black"/>
                <path d="M 184,336 L 296,336" fill="none" stroke="black"/>
                <path d="M 456,336 L 560,336" fill="none" stroke="black"/>
                <path d="M 456,368 L 560,368" fill="none" stroke="black"/>
                <path d="M 336,384 L 448,384" fill="none" stroke="black"/>
                <path d="M 32,400 L 328,400" fill="none" stroke="black"/>
                <path d="M 456,400 L 560,400" fill="none" stroke="black"/>
                <path d="M 8,416 L 240,416" fill="none" stroke="black"/>
                <path d="M 320,416 L 584,416" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="344,384 332,378.4 332,389.6" fill="black" transform="rotate(180,336,384)"/>
                <polygon class="arrowhead" points="344,320 332,314.4 332,325.6" fill="black" transform="rotate(180,336,320)"/>
                <polygon class="arrowhead" points="296,64 284,58.4 284,69.6" fill="black" transform="rotate(180,288,64)"/>
                <polygon class="arrowhead" points="184,320 172,314.4 172,325.6" fill="black" transform="rotate(0,176,320)"/>
                <g class="text">
                  <text x="220" y="52">Lead</text>
                  <text x="416" y="52">Component</text>
                  <text x="236" y="68">Verifier</text>
                  <text x="412" y="68">Verifier</text>
                  <text x="328" y="164">Evidence-Collection</text>
                  <text x="424" y="164">CMW</text>
                  <text x="84" y="180">Target</text>
                  <text x="120" y="180">A</text>
                  <text x="260" y="180">1:</text>
                  <text x="360" y="180">CMW(Evidence(Attester</text>
                  <text x="464" y="180">A),</text>
                  <text x="88" y="196">Environ</text>
                  <text x="260" y="196">2.</text>
                  <text x="376" y="196">Evidence(Attester</text>
                  <text x="460" y="196">B)</text>
                  <text x="260" y="212">3:</text>
                  <text x="376" y="212">Evidence(Attester</text>
                  <text x="464" y="212">C))</text>
                  <text x="128" y="244">Collect</text>
                  <text x="124" y="260">Claims</text>
                  <text x="232" y="308">Attesting</text>
                  <text x="388" y="308">Evidence</text>
                  <text x="432" y="308">B</text>
                  <text x="240" y="324">Environment</text>
                  <text x="500" y="324">Attester</text>
                  <text x="544" y="324">B</text>
                  <text x="164" y="372">Attester</text>
                  <text x="208" y="372">A</text>
                  <text x="388" y="372">Evidence</text>
                  <text x="432" y="372">C</text>
                  <text x="500" y="388">Attester</text>
                  <text x="544" y="388">C</text>
                  <text x="272" y="420">Chassis</text>
                  <text x="312" y="420">A</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                             .----------.          .-------------.
                             | Lead     |          | Component   |
                             | Verifier |<---------| Verifier    |
                             '----------'          '-------------'
                                   |
      .----------------------------|------------------------------------------.
      |  .-------------------------|----------.                               |
      |  |                         |          |                               |
      |  | .----------.            | Evidence-Collection CMW                  |
      |  | | Target A |            | 1: CMW(Evidence(Attester A),             |
      |  | | Environ  |            | 2.     Evidence(Attester B),             |
      |  | '----------'            | 3:     Evidence(Attester C))             |
      |  |       |                 |          |                               |
      |  |       |Collect          |          |                               |
      |  |       |Claims           |          |                               |
      |  |       |                 |          |                               |
      |  |       |          .-------------.   |                               |
      |  |       |          | Attesting   |   |   Evidence B  .------------.  |
      |  |       '--------->| Environment |   |<--------------| Attester B |  |
      |  |                  '-------------'   |               '------------'  |
      |  |                                    |                               |
      |  |            Attester A              |   Evidence C  .------------.  |
      |  |                                    |<--------------| Attester C |  |
      |  '------------------------------------'               '------------'  |
      '-----------------------------Chassis A---------------------------------'
]]></artwork>
          </artset>
        </figure>
        <t>The Lead Verifier, acting a Relying Party, connects to Component Verifiers capable of evaluating the Component Evidence, retrieving Attestation Results from those Verifiers as part of evaluating the Lead Attester.</t>
        <t>This case is similar to Class 1, however the integration of the component attestation results in Class 1 is not included in the Evidence, while in this case, it is.</t>
      </section>
      <section anchor="class-3p-composite-passport-model-attester">
        <name>Class 3P Composite Passport-Model Attester</name>
        <t>In this scenario, the Components relay their Evidence to the Lead Attester.
The Lead Attester does <em>not</em> operates a Verifier itself.
Instead, the Lead Attester, acting as a Presenter (term To-Be-Defined), connects to an appropriate Verifier, in passport mode.
It retrieves an Attestation Result from the Verifier, which it then includes within the  Evidence that the Lead Attester produces.</t>
        <t>The Lead Attester's Verifier considers the Components during it's assessment.
It needs to consider if the component has been assessed by a Verifier it trusts, if the component is appropriately connected to the Lead Attester, and if there are an appropriate number of such components.</t>
        <figure anchor="class3Pdiagram">
          <name>Class 3P Composite Password Attester</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="576" width="584" viewBox="0 0 584 576" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,96 L 8,384" fill="none" stroke="black"/>
                <path d="M 24,112 L 24,368" fill="none" stroke="black"/>
                <path d="M 40,144 L 40,192" fill="none" stroke="black"/>
                <path d="M 88,200 L 88,304" fill="none" stroke="black"/>
                <path d="M 128,144 L 128,192" fill="none" stroke="black"/>
                <path d="M 176,272 L 176,320" fill="none" stroke="black"/>
                <path d="M 176,496 L 176,544" fill="none" stroke="black"/>
                <path d="M 184,32 L 184,80" fill="none" stroke="black"/>
                <path d="M 232,88 L 232,264" fill="none" stroke="black"/>
                <path d="M 240,392 L 240,488" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,80" fill="none" stroke="black"/>
                <path d="M 288,272 L 288,320" fill="none" stroke="black"/>
                <path d="M 304,496 L 304,544" fill="none" stroke="black"/>
                <path d="M 320,192 L 320,368" fill="none" stroke="black"/>
                <path d="M 424,160 L 424,168" fill="none" stroke="black"/>
                <path d="M 456,240 L 456,272" fill="none" stroke="black"/>
                <path d="M 456,304 L 456,336" fill="none" stroke="black"/>
                <path d="M 560,240 L 560,272" fill="none" stroke="black"/>
                <path d="M 560,304 L 560,336" fill="none" stroke="black"/>
                <path d="M 576,96 L 576,384" fill="none" stroke="black"/>
                <path d="M 184,32 L 272,32" fill="none" stroke="black"/>
                <path d="M 184,80 L 272,80" fill="none" stroke="black"/>
                <path d="M 8,96 L 224,96" fill="none" stroke="black"/>
                <path d="M 240,96 L 576,96" fill="none" stroke="black"/>
                <path d="M 24,112 L 224,112" fill="none" stroke="black"/>
                <path d="M 240,112 L 320,112" fill="none" stroke="black"/>
                <path d="M 40,144 L 128,144" fill="none" stroke="black"/>
                <path d="M 40,192 L 128,192" fill="none" stroke="black"/>
                <path d="M 456,240 L 560,240" fill="none" stroke="black"/>
                <path d="M 328,256 L 448,256" fill="none" stroke="black"/>
                <path d="M 176,272 L 288,272" fill="none" stroke="black"/>
                <path d="M 456,272 L 560,272" fill="none" stroke="black"/>
                <path d="M 88,304 L 168,304" fill="none" stroke="black"/>
                <path d="M 456,304 L 560,304" fill="none" stroke="black"/>
                <path d="M 176,320 L 288,320" fill="none" stroke="black"/>
                <path d="M 328,320 L 448,320" fill="none" stroke="black"/>
                <path d="M 456,336 L 560,336" fill="none" stroke="black"/>
                <path d="M 24,368 L 320,368" fill="none" stroke="black"/>
                <path d="M 8,384 L 256,384" fill="none" stroke="black"/>
                <path d="M 336,384 L 576,384" fill="none" stroke="black"/>
                <path d="M 176,496 L 304,496" fill="none" stroke="black"/>
                <path d="M 176,544 L 304,544" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="336,320 324,314.4 324,325.6" fill="black" transform="rotate(180,328,320)"/>
                <polygon class="arrowhead" points="336,256 324,250.4 324,261.6" fill="black" transform="rotate(180,328,256)"/>
                <polygon class="arrowhead" points="248,392 236,386.4 236,397.6" fill="black" transform="rotate(270,240,392)"/>
                <polygon class="arrowhead" points="176,304 164,298.4 164,309.6" fill="black" transform="rotate(0,168,304)"/>
                <g class="text">
                  <text x="212" y="52">Lead</text>
                  <text x="228" y="68">Verifier</text>
                  <text x="328" y="132">Evidence-Collection</text>
                  <text x="424" y="132">CMW</text>
                  <text x="260" y="148">1:</text>
                  <text x="360" y="148">CMW(Evidence(Attester</text>
                  <text x="464" y="148">A),</text>
                  <text x="76" y="164">Target</text>
                  <text x="112" y="164">A</text>
                  <text x="260" y="164">2:</text>
                  <text x="352" y="164">AR(Attester</text>
                  <text x="412" y="164">B)</text>
                  <text x="80" y="180">Environ</text>
                  <text x="260" y="180">3:</text>
                  <text x="352" y="180">AR(Attester</text>
                  <text x="416" y="180">C))</text>
                  <text x="120" y="228">Collect</text>
                  <text x="116" y="244">Claims</text>
                  <text x="380" y="244">Evidence</text>
                  <text x="424" y="244">B</text>
                  <text x="500" y="260">Attester</text>
                  <text x="544" y="260">B</text>
                  <text x="224" y="292">Attesting</text>
                  <text x="232" y="308">Environment</text>
                  <text x="380" y="308">Evidence</text>
                  <text x="424" y="308">C</text>
                  <text x="500" y="324">Attester</text>
                  <text x="544" y="324">C</text>
                  <text x="156" y="356">Attester</text>
                  <text x="200" y="356">A</text>
                  <text x="288" y="388">Chassis</text>
                  <text x="328" y="388">A</text>
                  <text x="292" y="468">Evidence-&gt;</text>
                  <text x="260" y="484">&lt;-</text>
                  <text x="304" y="484">Results</text>
                  <text x="224" y="516">Component</text>
                  <text x="280" y="516">B,C</text>
                  <text x="232" y="532">Verifier(s)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                             .----------.
                             | Lead     |
                             | Verifier |
                             '----------'
       .---------------------------|------------------------------------------.
       | .-------------------------|----------.                               |
       | |                         |  Evidence-Collection CMW                 |
       | | .----------.            |  1: CMW(Evidence(Attester A),            |
       | | | Target A |            |  2:     AR(Attester B),                  |
       | | | Environ  |            |  3:     AR(Attester C))                  |
       | | '----------'            |          |                               |
       | |       |                 |          |                               |
       | |       |Collect          |          |                               |
       | |       |Claims           |          |   Evidence B   .------------. |
       | |       |                 |          |<---------------| Attester B | |
       | |       |          .-------------.   |                '------------' |
       | |       |          | Attesting   |   |                               |
       | |       '--------->| Environment |   |   Evidence C   .------------. |
       | |                  '-------------'   |<---------------| Attester C | |
       | |                                    |                '------------' |
       | |            Attester A              |                               |
       | '------------------------------------'                               |
       '-------------------------------Chassis A------------------------------'
                                    ^
                                    |
                                    |
                                    |
                                    | Evidence->
                                    | <- Results
                            .---------------.
                            | Component B,C |
                            | Verifier(s)   |
                            '---------------'
]]></artwork>
          </artset>
        </figure>
        <t>For instance, when accessing a vehicle such as a car, where each tire is it's own component, then a car with three wheels is not trusthworthy.  Most cars should have four wheels.  A car with five wheels might be acceptable, if at least one wheel is installed into the "spare" holder. (And, it may be of concern if the spare is flat, but the car can still be operated)</t>
        <t>A more typical digital use case would involve a main CPU with a number of attached specialized intelligent components that contain their own firmware, such as Graphical Processors (GPU), Network Processors (NPU).</t>
      </section>
      <section anchor="class-4-dual-composite-attester">
        <name>Class 4 Dual Composite Attester</name>
        <t>In certain systems, it is possible to have two independent Attesting Environments in an Attester to collect claims about a single Target Environment. In such cases, one of the Attesting Environment, acts as a Primary, while the other acts as a Secondary Attesting Environment.</t>
        <t>The two Attesting Environments will have a fixed and collaborative structure where each can be responsible for a subset of Evidence. Because of the collaborative structure it may be arranged that either of the Attesting Environment can present Evidence collected by the other (but this is deployment specific).</t>
        <figure anchor="class4diagram">
          <name>Class 4 Composite (Dual) Attester</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="512" width="464" viewBox="0 0 464 512" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,144 L 8,480" fill="none" stroke="black"/>
                <path d="M 24,176 L 24,224" fill="none" stroke="black"/>
                <path d="M 72,232 L 72,336" fill="none" stroke="black"/>
                <path d="M 112,176 L 112,224" fill="none" stroke="black"/>
                <path d="M 160,304 L 160,352" fill="none" stroke="black"/>
                <path d="M 216,360 L 216,400" fill="none" stroke="black"/>
                <path d="M 272,304 L 272,352" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
                <path d="M 312,288 L 312,336" fill="none" stroke="black"/>
                <path d="M 328,72 L 328,104" fill="none" stroke="black"/>
                <path d="M 368,32 L 368,64" fill="none" stroke="black"/>
                <path d="M 368,112 L 368,280" fill="none" stroke="black"/>
                <path d="M 368,344 L 368,400" fill="none" stroke="black"/>
                <path d="M 424,288 L 424,336" fill="none" stroke="black"/>
                <path d="M 456,144 L 456,480" fill="none" stroke="black"/>
                <path d="M 280,32 L 368,32" fill="none" stroke="black"/>
                <path d="M 280,64 L 368,64" fill="none" stroke="black"/>
                <path d="M 328,112 L 368,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 360,144" fill="none" stroke="black"/>
                <path d="M 376,144 L 456,144" fill="none" stroke="black"/>
                <path d="M 24,176 L 112,176" fill="none" stroke="black"/>
                <path d="M 24,224 L 112,224" fill="none" stroke="black"/>
                <path d="M 312,288 L 424,288" fill="none" stroke="black"/>
                <path d="M 160,304 L 272,304" fill="none" stroke="black"/>
                <path d="M 72,336 L 152,336" fill="none" stroke="black"/>
                <path d="M 312,336 L 424,336" fill="none" stroke="black"/>
                <path d="M 160,352 L 272,352" fill="none" stroke="black"/>
                <path d="M 216,400 L 256,400" fill="none" stroke="black"/>
                <path d="M 328,400 L 368,400" fill="none" stroke="black"/>
                <path d="M 8,480 L 456,480" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="376,344 364,338.4 364,349.6" fill="black" transform="rotate(270,368,344)"/>
                <polygon class="arrowhead" points="336,72 324,66.4 324,77.6" fill="black" transform="rotate(270,328,72)"/>
                <polygon class="arrowhead" points="160,336 148,330.4 148,341.6" fill="black" transform="rotate(0,152,336)"/>
                <g class="text">
                  <text x="324" y="52">Verifier</text>
                  <text x="256" y="180">Evidence-Collection</text>
                  <text x="352" y="180">CMW</text>
                  <text x="60" y="196">Target</text>
                  <text x="96" y="196">A</text>
                  <text x="188" y="196">1:</text>
                  <text x="260" y="196">CMW(EAT(Target</text>
                  <text x="336" y="196">A))</text>
                  <text x="64" y="212">Environ</text>
                  <text x="104" y="260">Collect</text>
                  <text x="100" y="276">Claims</text>
                  <text x="360" y="308">Attesting</text>
                  <text x="408" y="308">2</text>
                  <text x="208" y="324">Attesting</text>
                  <text x="256" y="324">1</text>
                  <text x="368" y="324">Environment</text>
                  <text x="216" y="340">Environment</text>
                  <text x="288" y="404">Partial</text>
                  <text x="292" y="420">Evidence</text>
                  <text x="292" y="436">(signed)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                                           .----------.
                                           | Verifier |
                                           '----------'
                                                 ^
                                                 |
                                                 -----.
                                                      |
         .--------------------------------------------|----------.
         |                                            |          |
         | .----------.        Evidence-Collection CMW|          |
         | | Target A |        1: CMW(EAT(Target A))  |          |
         | | Environ  |                               |          |
         | '----------'                               |          |
         |       |                                    |          |
         |       |Collect                             |          |
         |       |Claims                              |          |
         |       |                             .-------------.   |
         |       |          .-------------.    | Attesting 2 |   |
         |       |          | Attesting 1 |    | Environment |   |
         |       '--------->| Environment |    '-------------'   |
         |                  '-------------'           ^          |
         |                         |                  |          |
         |                         |                  |          |
         |                         '-----Partial -----'          |
         |                               Evidence                |
         |                               (signed)                |
         |                                                       |
         |                                                       |
         '-------------------------------------------------------'
]]></artwork>
          </artset>
        </figure>
        <t>Example of one such system is a CPU system of a desktop from a Vendor X, which has its built in Attesting Environment, integrated into a product Y which requires a mandatory TPM support. (EDIT: This example to be clarified)</t>
        <t>There is an assumption that the Attesting Environment 1 (AE1) "trusts" Attesting Environment 2 (AE2), which means that AE2 has to verify the signature from AE1, otherwise AE2 can become a "signing fool".
This verification can be based upon a local credential.</t>
        <t>In such situations one can anchor the Roots of Trust of Vendor X's CPU Attestation using a secondary Attesting Environment with the TPM Attestation.
Alternatively, generate a TPM Quote and anchor it to Root of Trust of CPU Attestation based of Vendor X's Attesting Environment.</t>
        <t>A Verifier/RP may decide to direct the Attestation Request to an AE of choice to reflect the relevant subset of Evidence required for trust asssessment.</t>
      </section>
      <section anchor="class-5-mixed-composite-attester">
        <name>Class 5 Mixed Composite Attester</name>
        <t>As soon as there is more than one Component, it is reasonable that the different Components interact with the Lead Attester in different ways.
A Mixed Composite Attester would have a components that come from different classes.
This is not a class itself, but a class of classes.</t>
        <t>Degenerately, all previous classes can be considered mixes of one, but such a trivial category does not help discussionn.  Except that adding/moving/replacing Components in the field can change things, so some system architectures will need to always consider themselves to be Mixed Composite Attesters, even if when shipped, they might be degenerate instances.</t>
      </section>
    </section>
    <section anchor="attestation-results-as-evidence">
      <name>Attestation Results as Evidence</name>
      <t>In cases 2, 3B and 3P Attestation Results are included as Evidence.
This results in a Verifier that must evaluate these results.
It must be able to validate the signatures on the Evidence.</t>
      <t>This creates <em>stacked</em> Remote Attestation.
This is very much different and <em>distinct</em> from <xref section="3.2" sectionFormat="comma" target="RFC9334"/> Layered Attestation.</t>
      <t>Layered Attestion produces a <em>single</em> set of Evidence, with claims about different layers.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>YYY</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>ZZZ</t>
    </section>
    <section anchor="nonce-architecture">
      <name>Nonce Architecture</name>
      <t>In all classes other than the class 0 and class 1, there are cases that multiple (local or external) Verifiers exist in the system. To address the conflict between different nonces generated by different Verifiers, there are possible candidate solutions as follows</t>
      <ul spacing="normal">
        <li>
          <t>Using one unique nonce from one external Verifier: This Verifier initiates the attestation progress and other Verifiers use the same nonce to challenge their corresponding Attesters. To ensure the integrity of the nonce, this nonce SHOULD be signed by this initial Verifier.</t>
        </li>
        <li>
          <t>Each Verifier uses their own nonce: The Evidence in such a case is the mixing of certain Evidences and Attestation Result-as-Evidences. The receiver of the Attestation Results (the Attester) can apply the technique in <xref section="A.2" sectionFormat="comma" target="RFC9334"/> to ensure the freshness of the Attestation Result-as-Evidences.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Jun Zhang contributed the terms "Le Petit" and "Le Grand" to qualify Verifier, the original thought for Class 5 Composite Atteser and the description of the Nonce architecture.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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>
        <reference anchor="RFC9334" target="https://www.rfc-editor.org/info/rfc9334" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9334.xml">
          <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.ietf-rats-msg-wrap" target="https://datatracker.ietf.org/doc/html/draft-ietf-rats-msg-wrap-23" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-rats-msg-wrap.xml">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="11" month="December" year="2025"/>
            <abstract>
              <t>The Conceptual Messages introduced by the RATS architecture (RFC 9334) are protocol-agnostic data units that are conveyed between RATS roles during remote attestation procedures. Conceptual Messages describe the meaning and function of such data units within RATS data flows without specifying a wire format, encoding, transport mechanism, or processing details. The initial set of Conceptual Messages is defined in Section 8 of RFC 9334 and includes Evidence, Attestation Results, Endorsements, Reference Values, and Appraisal Policies. This document introduces the Conceptual Message Wrapper (CMW) that provides a common structure to encapsulate these messages. It defines a dedicated CBOR tag, corresponding JSON Web Token (JWT) and CBOR Web Token (CWT) claims, and an X.509 extension. This allows CMWs to be used in CBOR-based protocols, web APIs using JWTs and CWTs, and PKIX artifacts like X.509 certificates. Additionally, the draft defines a media type and a CoAP content format to transport CMWs over protocols like HTTP, MIME, and CoAP. The goal is to improve the interoperability and flexibility of remote attestation protocols. Introducing a shared message format such as CMW enables consistent support for different attestation message types, evolving message serialization formats without breaking compatibility, and avoiding the need to redefine how messages are handled within each protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-23"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="TCG-DICE" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Layering-Architecture-r19_pub.pdf">
          <front>
            <title>DICE Layering Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.19" value=""/>
        </reference>
        <reference anchor="I-D.ffm-rats-cca-token" target="https://datatracker.ietf.org/doc/html/draft-ffm-rats-cca-token-02" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ffm-rats-cca-token.xml">
          <front>
            <title>Arm's Confidential Compute Architecture Reference Attestation Token</title>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek Inc</organization>
            </author>
            <date day="2" month="September" year="2025"/>
            <abstract>
              <t>The Arm Confidential Compute Architecture (CCA) is series of hardware and software innovations that enhance Arm’s support for Confidential Computing for large, compute-intensive workloads. Devices that implement CCA can produce attestation tokens as described in this memo, which are the basis for trustworthiness assessment of the Confidential Compute environment. This document specifies the CCA attestation token structure and semantics. The CCA attestation token is a profile of the Entity Attestation Token (EAT). This specification describes what claims are used in an attestation token generated by CCA compliant systems, how these claims get serialized to the wire, and how they are cryptographically protected. This informational document is published as an independent submission to improve interoperability with Arm's architecture. It is not a standard nor a product of the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ffm-rats-cca-token-02"/>
        </reference>
        <reference anchor="RFC9781" target="https://www.rfc-editor.org/info/rfc9781" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9781.xml">
          <front>
            <title>A Concise Binary Object Representation (CBOR) Tag for Unprotected CBOR Web Token Claims Sets (UCCS)</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="N. Cam-Winget" initials="N." surname="Cam-Winget"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="May" year="2025"/>
            <abstract>
              <t>This document defines the Unprotected CWT Claims Set (UCCS), a data format for representing a CBOR Web Token (CWT) Claims Set without protecting it by a signature, Message Authentication Code (MAC), or encryption. UCCS enables the use of CWT claims in environments where protection is provided by other means, such as secure communication channels or trusted execution environments. This specification defines a CBOR tag for UCCS and describes the UCCS format, its encoding, and its processing considerations. It also discusses security implications of using unprotected claims sets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9781"/>
          <seriesInfo name="DOI" value="10.17487/RFC9781"/>
        </reference>
      </references>
    </references>
    <?line 737?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA919+3ojt7Hn/3wKfJo/JM2QnBnNxIm1jh2Kkm3Fc1EkOl5n
v80x2ATJjprdTKNbHGY0eZbzLOfJti649YUUKU+yZ7e/xEN1AwWgUCj8qlAA
er1ep4iLRJ2KkfyQpdliLbKpGGaLZabjQolBUShdqFx35Hicq7tTEdlvujPJ
olQuIO8kl9Oil8fRXOYTnaW9XBa651L2pKXSe/G603kidCHTyX/IJEshc5GX
qtOJlzn91MXJixdfvjjpyFzJU3GZQrZUFZ3V7FRcD0Y34qcsv43Tmfguz8pl
53bl0/TOsRqdSBanIk6nWacTZRNIeirKYtr7XWcZnwp4nohIpqLUSsg8l2tx
FE+FTBKxVvpYZLmYSz0Xc5WrjhBFFp3iB/ips7zI1VSfEomJmsoyKTSksN/X
C/6Mf3ZkWcyz/LTT6UFV4OXbvrh27IHUzLe3+Eol1U9ZDjW+AQapZAEVvcmm
xQqYQQ3HgtRCxsmpWET5s1gV0z9om7QfSVvc931xFue38yz5hyvse5Xehm+p
nG9zWabzbKpycXM58tTnkLg/Non/gOX0oywtZFTYIn7ui3Ol50ss3ZXxczaD
d5UPVMwgX3jaa0rUn9hEf5D5AqgvLOVRX3ybaS2L2NEdzbOF1MFrovomTmWe
ecIFpepPOdUfEvrch6SdTprlC3h3p04h+dnw6uVrEKdvh797+dvX8AJ+ffnq
1Wv8dtk772NzWYQXetZb5XIJYr9YdVCoAjKj4Xe988vhBf4GUeFhhC/EG7lW
OQrpII/mMACioiRxEsLKhaCHWjFCoVcTGnRl4UUbE2ggozSWeyr+DOMnzlLx
sv+iK67VXUx/vei//JKSTmQBxf+xTNbi5MXJC66TzGcKRsO8KJb69PnzgouK
bEkzLAgZ9Hy17GH/qrR4Xi6TTE70c2xJz7akF7akl7/88j+W5bi/nEwNy6bT
hRn0kewV2a1KT2F4LfDPTudOpSVxjMo7FZgQ/uJOwz9YwLCjIE1czMsxyffz
Fg0CI6rXE3KsixyFsTOax1qAIioXUHcRJTKPp8AyAYIl1Ado0ATG6FyJhZIp
8rZVu4lpni2sFPQ7AxjM8HqBiWWaZoXE/pnEcpbLBSvAFErTAotW0ziFryCd
UugFKpJEprNSzhTqBvVhmcg4pSpM4imMM6zmSq6xVrIIiaFWilGVQbswK8pa
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
RLTlf8GFAAA=

-->

</rfc>
