<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fossati-tls-exported-attestation-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="Application Layer Attestation">Remote Attestation with Exported Authenticators</title>
    <seriesInfo name="Internet-Draft" value="draft-fossati-tls-exported-attestation-01"/>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <author initials="M. U." surname="Sardar" fullname="Muhammad Usama Sardar">
      <organization>TU Dresden</organization>
      <address>
        <email>muhammad_usama.sardar@tu-dresden.de</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>k.tirumaleswar_reddy@nokia.com</email>
      </address>
    </author>
    <author initials="Y." surname="Sheffer" fullname="Yaron Sheffer">
      <organization>Intuit</organization>
      <address>
        <email>yaronf.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="I." surname="Mihalcea" fullname="Ionut Mihalcea">
      <organization>Arm Limited</organization>
      <address>
        <email>ionut.mihalcea@arm.com</email>
      </address>
    </author>
    <date year="2025" month="May" day="20"/>
    <area>Security</area>
    <workgroup>TLS</workgroup>
    <keyword>Attestation</keyword>
    <keyword>TLS</keyword>
    <keyword>Key Attestation</keyword>
    <keyword>Exported Authenticators</keyword>
    <abstract>
      <?line 78?>

<t>This specification defines a method for two parties in a communication interaction to exchange Evidence and Attestation Results using exported authenticators, as defined in RFC 9261. Additionally, it introduces the <tt>cmw_attestation</tt> extension, which allows attestation credentials to be included directly in the Certificate message sent during the Exported Authenticator-based post-handshake authentication. The approach supports both the passport and background check models from the RATS architecture while ensuring that attestation remains bound to the underlying communication channel.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://hannestschofenig.github.io/exported-attestation/draft-fossati-tls-exported-attestation.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-fossati-tls-exported-attestation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        tls Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/tls/about/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tls-attestation/exported-attestation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 83?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>There is a growing need to demonstrate to a remote party that cryptographic keys are stored in a secure element, the device is in a known good state, secure boot has been enabled, and that low-level software and firmware have not been tampered with. Remote attestation provides this capability.</t>
      <t>More technically, an Attester produces a signed collection of Claims that constitute Evidence about its running environment(s). A Relying Party may consult an Attestation Result produced by a Verifier that has appraised the Evidence to make policy decisions regarding the trustworthiness of the Target Environment being assessed. This is, in essence, what RFC 9334 <xref target="RFC9334"/> defines.</t>
      <t>At the time of writing, several standard and proprietary remote attestation technologies are in use. This specification aims to remain as technology-agnostic as possible concerning implemented remote attestation technologies. To streamline attestation in TLS, this document introduces the cmw_attestation extension, which allows attestation credentials to be conveyed directly in the Certificate message during the Exported Authenticator-based post-handshake authentication. This eliminates reliance on real-time certificate issuance from a Certificate Authority (CA), reducing handshake delays while ensuring attestation evidence remains bound to the TLS session. The extension supports both the passport and background check models from the RATS architecture, enhancing flexibility for different deployment scenarios.</t>
      <t>This document builds upon three foundational specifications:</t>
      <ul spacing="normal">
        <li>
          <t>RATS (Remote Attestation Procedures) Architecture <xref target="RFC9334"/>: RFC 9334 defines how remote attestation systems establish trust between parties by exchanging Evidence and Attestation Results. These interactions can follow different models, such as the passport or the background check model, depending on the order of data flow in the system.</t>
        </li>
        <li>
          <t>TLS Exported Authenticators <xref target="RFC9261"/>: RFC 9261 offers bi-directional, post-handshake authentication. Once a TLS connection is established, both peers can send an authenticator request message at any point after the handshake. This message from the server and the client uses the CertificateRequest and the ClientCertificateRequest messages, respectively. The peer receiving the authenticator request message can respond with an Authenticator consisting of Certificate, CertificateVerify, and Finished messages. These messages can then be validated by the other peer.</t>
        </li>
        <li>
          <t>RATS Conceptual Messages Wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/>: CMW provides a structured encapsulation of Evidence and Attestation Result payloads, abstracting the underlying attestation technology.</t>
        </li>
      </ul>
      <t>This specification introduces the cmw_attestation extension, enabling attestation evidence to be included directly in the Certificate message during the Exported Authenticator-based post-handshake authentication defined in <xref target="RFC9261"/>. This approach enhances flexibility and efficiency, supporting key attestation mechanisms without being restricted to X.509 certificate encoding formats.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals as shown here.</t>
      <t>The reader is assumed to be familiar with the vocabulary and concepts defined in RFC 9334 and RFC 9261.</t>
      <t>"Remote attestation credentials", or "attestation credentials", is used to refer to both attestation evidence and attestation results, when no distinction needs to be made between them.</t>
    </section>
    <section anchor="cmwattestation-extension">
      <name>cmw_attestation Extension</name>
      <t>It introduces a new TLS extension, cmw_attestation, which enables the inclusion of either Attestation Evidence or Attestation Results in the extensions field associated with the end-entity certificate in the TLS Certificate message.</t>
      <t>As defined in Section 4.4.2 of <xref target="RFC8446"/>, the TLS Certificate message consists of a certificate_list, which is a sequence of CertificateEntry structures. Each CertificateEntry contains a certificate and a set of associated extensions. The cmw_attestation extension MUST appear only in the first CertificateEntry of the Certificate message and applies exclusively to the end-entity certificate. It MUST NOT be included in entries corresponding to intermediate or trust anchor certificates. This design ensures that attestation information is tightly bound to the entity being authenticated.</t>
      <t>The <tt>cmw_attestation</tt> extension is defined to be included only in the Certificate message during the Exported Authenticator-based post-handshake authentication. This ensures that attestation credentials is conveyed within the Certificate message without requiring modifications to the X.509 certificate structure.</t>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="80" width="256" viewBox="0 0 256 80" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
            <g class="text">
              <text x="28" y="36">struct</text>
              <text x="64" y="36">{</text>
              <text x="60" y="52">opaque</text>
              <text x="172" y="52">cmw_data&lt;1..2^16-1&gt;;</text>
              <text x="8" y="68">}</text>
              <text x="116" y="68">CMWAttestationExtension;</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
struct {
    opaque cmw_data<1..2^16-1>;
} CMWAttestationExtension;
]]></artwork>
      </artset>
      <t>cmw_data: Encapsulates the attestation credentials in a format compatible with CMW. The cmw_data field MUST be encoded using CBOR or JSON (as per <xref target="I-D.ietf-rats-msg-wrap"/>).</t>
      <t>This approach eliminates the need for real-time certificate issuance from a Certificate Authority (CA) and minimizes handshake delays. Typically, CAs require several seconds to minutes to issue a certificate due to verification steps such as validating subject identity, signing the certificate, and distributing it. These delays introduce latency into the TLS handshake, making real-time certificate generation impractical. The cmw_attestation extension circumvents this issue by embedding attestation data within the Certificate message itself, removing reliance on external certificate issuance processes.</t>
      <section anchor="negotiation-of-cmwattestationextension">
        <name>Negotiation of CMWAttestationExtension</name>
        <t>Clients and servers use the TLS flags extension defined in <xref target="I-D.ietf-tls-tlsflags"/> to indicate support for the functionality defined in this document. We refer to the previously defined "cmw_attestation" extension,
and the corresponding flag is called the "CMW_Attestation" flag.</t>
        <t>The "CMW_Attestation" flag proposed by the client in the ClientHello MUST be acknowledged in the EncryptedExtensions if the server also  supports the functionality defined in this document and is configured to use it.</t>
        <t>If the "CMW_Attestation" flag is not set, servers ignore any of the functionality specified in this document, and attestation credentials cannot be conveyed using "Exported TLS Authenticators".</t>
      </section>
      <section anchor="usage-in-post-handshake-authentication">
        <name>Usage in Post-Handshake Authentication</name>
        <t>The <tt>cmw_attestation</tt> extension is designed to be used exclusively in post-handshake authentication as defined in <xref target="RFC9261"/>. It allows attestation credentials to be transmitted in the authenticator (Certificate) message only in response to an authenticator request. This ensures that attestation credentials are provided on demand rather than being included in the initial TLS handshake.</t>
        <t>To maintain a cryptographic binding between the attestation evidence and the authentication request, the <tt>cmw_attestation</tt> extension MUST be associated with the certificate_request_context of the corresponding CertificateRequest or ClientCertificateRequest message. This binding ensures that:</t>
        <ul spacing="normal">
          <li>
            <t>The attestation evidence is specific to the authentication event and cannot be replayed across different TLS sessions.</t>
          </li>
          <li>
            <t>The attestation evidence remains tied to the cryptographic context of the TLS session.</t>
          </li>
        </ul>
      </section>
      <section anchor="ensuring-compatibility-with-x509-certificate-validation">
        <name>Ensuring Compatibility with X.509 Certificate Validation</name>
        <t>The <tt>cmw_attestation</tt> extension does not modify or replace X.509 certificate validation mechanisms. It serves as an additional source of authentication data rather than altering the trust model of PKI-based authentication. Specifically:</t>
        <ul spacing="normal">
          <li>
            <t>Certificate validation (e.g., signature verification, revocation checks) MUST still be performed according to TLS <xref target="RFC8446"/> and PKIX <xref target="RFC5280"/>.</t>
          </li>
          <li>
            <t>The attestation credentials carried in <tt>cmw_attestation</tt> MUST NOT be used as a substitute for X.509 certificate validation but can be used alongside standard certificate validation for additional security assurances.</t>
          </li>
          <li>
            <t>Implementations MAY reject connections where the certificate is valid but the attestation credentials is missing or does not meet security policy.</t>
          </li>
        </ul>
      </section>
      <section anchor="applicability-to-client-and-server-authentication">
        <name>Applicability to Client and Server Authentication</name>
        <t>The <tt>cmw_attestation</tt> extension is applicable to both client and server authentication in Exported Authenticator-based post-handshake authentication.</t>
        <t>In TLS, one party acts as the relying party, and the other party acts as the attester. Either the client or the server may fulfill these roles depending on the authentication direction.</t>
        <t>The attester may respond with either:</t>
        <ul spacing="normal">
          <li>
            <t>Attestation Evidence (Background Check Model):
            </t>
            <ul spacing="normal">
              <li>
                <t>The attester generates Evidence and includes it in the <tt>cmw_attestation</tt> extension.</t>
              </li>
              <li>
                <t>The relying party forwards the Evidence to an external Verifier for evaluation and waits for an Attestation Result.</t>
              </li>
              <li>
                <t>The relying party grants or denies access, or continues or terminates the TLS session, based on the Verifier's Attestation Result.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Attestation Result (Passport Model):
            </t>
            <ul spacing="normal">
              <li>
                <t>The attester sends Evidence to a Verifier beforehand.</t>
              </li>
              <li>
                <t>The Verifier issues an Attestation Result to the attester.</t>
              </li>
              <li>
                <t>The attester includes the Attestation Result in the <tt>cmw_attestation</tt> extension and sends it to the relying party.</t>
              </li>
              <li>
                <t>The relying party validates the Attestation Result directly without needing to contact an external Verifier.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>By allowing both Evidence and Attestation Results to be conveyed within <tt>cmw_attestation</tt>, this mechanism supports flexible attestation workflows depending on the chosen trust model.</t>
      </section>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>The <tt>cmw_attestation</tt> extension enables attestation credentials to be included in the Certificate message during Exported Authenticator-based post-handshake authentication, ensuring that attestation remains bound to the TLS session.</t>
      <t>However, applications using this mechanism still need to negotiate the encoding format (e.g., JOSE or COSE) and specify how attestation credentials are processed. This negotiation can be done via application-layer signaling or predefined profiles. Future specifications may define mechanisms to streamline this negotiation.</t>
      <t>Upon receipt of a Certificate message containing the <tt>cmw_attestation</tt> extension, an endpoint MUST take the following steps to validate the attestation credentials:</t>
      <ul spacing="normal">
        <li>
          <t>Background Check Model:
          </t>
          <ul spacing="normal">
            <li>
              <t>Verify Integrity and Authenticity: The attestation evidence must be cryptographically verified against a known trust anchor, typically provided by the hardware manufacturer.</t>
            </li>
            <li>
              <t>Ensure Certificate Binding and Freshness: The attestation evidence must be explicitly associated with the <tt>certificate_request_context</tt> in the authenticator request to ensure relevance, freshness, and protection against replay.</t>
            </li>
            <li>
              <t>Evaluate Security Policy Compliance: The attestation evidence must be evaluated against the relying party's security policies to determine if the attesting device and the private key storage meet the required criteria.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Passport Model:
          </t>
          <ul spacing="normal">
            <li>
              <t>Verify the Attestation Result: The relying party MUST check that the Attestation Result is correctly signed by the issuing authority and that it meets the relying party’s security requirements.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>By integrating <tt>cmw_attestation</tt> directly into the Certificate message during Exported Authenticator-based post-handshake authentication, this approach reduces latency and complexity while maintaining strong security guarantees.</t>
      <t>In the following examples, the server possesses an identity certificate, while the client is not authenticated during the initial TLS exchange.</t>
      <t><xref target="fig-passport"/> shows the passport model while <xref target="fig-background"/> illustrates the background-check model.</t>
      <figure anchor="fig-passport">
        <name>Passport Model with Client as Attester</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="472" viewBox="0 0 472 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 24,48 L 24,400" fill="none" stroke="black"/>
              <path d="M 224,48 L 224,208" fill="none" stroke="black"/>
              <path d="M 224,280 L 224,400" fill="none" stroke="black"/>
              <path d="M 432,48 L 432,400" fill="none" stroke="black"/>
              <path d="M 32,96 L 216,96" fill="none" stroke="black"/>
              <path d="M 32,192 L 216,192" fill="none" stroke="black"/>
              <path d="M 32,240 L 424,240" fill="none" stroke="black"/>
              <path d="M 32,272 L 424,272" fill="none" stroke="black"/>
              <path d="M 32,368 L 216,368" fill="none" stroke="black"/>
              <path d="M 232,400 L 424,400" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="432,240 420,234.4 420,245.6" fill="black" transform="rotate(0,424,240)"/>
              <polygon class="arrowhead" points="240,400 228,394.4 228,405.6" fill="black" transform="rotate(180,232,400)"/>
              <polygon class="arrowhead" points="224,368 212,362.4 212,373.6" fill="black" transform="rotate(0,216,368)"/>
              <polygon class="arrowhead" points="224,96 212,90.4 212,101.6" fill="black" transform="rotate(0,216,96)"/>
              <polygon class="arrowhead" points="40,272 28,266.4 28,277.6" fill="black" transform="rotate(180,32,272)"/>
              <polygon class="arrowhead" points="40,192 28,186.4 28,197.6" fill="black" transform="rotate(180,32,192)"/>
              <polygon class="arrowhead" points="40,96 28,90.4 28,101.6" fill="black" transform="rotate(180,32,96)"/>
              <g class="text">
                <text x="28" y="36">Client</text>
                <text x="228" y="36">Server</text>
                <text x="436" y="36">Verifier</text>
                <text x="72" y="68">Regular</text>
                <text x="120" y="68">TLS</text>
                <text x="176" y="68">Handshake</text>
                <text x="108" y="84">(Server-only</text>
                <text x="184" y="84">auth)</text>
                <text x="56" y="132">...</text>
                <text x="92" y="132">time</text>
                <text x="140" y="132">passes</text>
                <text x="184" y="132">...</text>
                <text x="88" y="164">Authenticator</text>
                <text x="176" y="164">Request</text>
                <text x="124" y="180">(ClientCertificateReq)</text>
                <text x="192" y="228">Sends</text>
                <text x="252" y="228">Evidence</text>
                <text x="180" y="260">Gets</text>
                <text x="248" y="260">Attestation</text>
                <text x="324" y="260">result</text>
                <text x="68" y="292">Exported</text>
                <text x="164" y="292">Authenticator(</text>
                <text x="80" y="308">Certificate</text>
                <text x="148" y="308">with</text>
                <text x="100" y="324">cmw_attestation,</text>
                <text x="108" y="340">CertificateVerify,</text>
                <text x="72" y="356">Finished)</text>
                <text x="308" y="388">Finished</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
Client                   Server                   Verifier
  |                        |                         |
  |  Regular TLS Handshake |                         |
  |    (Server-only auth)  |                         |
  |<---------------------->|                         |
  |                        |                         |
  |  ... time passes ...   |                         |
  |                        |                         |
  | Authenticator Request  |                         |
  | (ClientCertificateReq) |                         |
  |<-----------------------|                         |
  |                        |                         |
  |                  Sends Evidence                  |
  |------------------------------------------------->|
  |                 Gets Attestation result          |
  |<-------------------------------------------------|
  | Exported Authenticator(|                         |
  | Certificate with       |                         |
  | cmw_attestation,       |                         |
  | CertificateVerify,     |                         |
  | Finished)              |                         |
  |----------------------->|                         |
  |                        |      Finished           |
  |                        |<------------------------|
]]></artwork>
        </artset>
      </figure>
      <t><xref target="fig-background"/> shows an example using the background-check model.</t>
      <figure anchor="fig-background">
        <name>Background Check Model with a Separate Client-Side Attester</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="448" width="568" viewBox="0 0 568 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 24,48 L 24,432" fill="none" stroke="black"/>
              <path d="M 184,112 L 184,128" fill="none" stroke="black"/>
              <path d="M 184,168 L 184,256" fill="none" stroke="black"/>
              <path d="M 184,344 L 184,432" fill="none" stroke="black"/>
              <path d="M 384,48 L 384,432" fill="none" stroke="black"/>
              <path d="M 536,48 L 536,432" fill="none" stroke="black"/>
              <path d="M 32,80 L 376,80" fill="none" stroke="black"/>
              <path d="M 32,160 L 376,160" fill="none" stroke="black"/>
              <path d="M 32,208 L 176,208" fill="none" stroke="black"/>
              <path d="M 32,256 L 176,256" fill="none" stroke="black"/>
              <path d="M 32,336 L 376,336" fill="none" stroke="black"/>
              <path d="M 392,368 L 528,368" fill="none" stroke="black"/>
              <path d="M 392,416 L 528,416" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="536,368 524,362.4 524,373.6" fill="black" transform="rotate(0,528,368)"/>
              <polygon class="arrowhead" points="400,416 388,410.4 388,421.6" fill="black" transform="rotate(180,392,416)"/>
              <polygon class="arrowhead" points="384,336 372,330.4 372,341.6" fill="black" transform="rotate(0,376,336)"/>
              <polygon class="arrowhead" points="384,80 372,74.4 372,85.6" fill="black" transform="rotate(0,376,80)"/>
              <polygon class="arrowhead" points="184,208 172,202.4 172,213.6" fill="black" transform="rotate(0,176,208)"/>
              <polygon class="arrowhead" points="40,256 28,250.4 28,261.6" fill="black" transform="rotate(180,32,256)"/>
              <polygon class="arrowhead" points="40,160 28,154.4 28,165.6" fill="black" transform="rotate(180,32,160)"/>
              <polygon class="arrowhead" points="40,80 28,74.4 28,85.6" fill="black" transform="rotate(180,32,80)"/>
              <g class="text">
                <text x="28" y="36">Client</text>
                <text x="196" y="36">Attester</text>
                <text x="388" y="36">Server</text>
                <text x="532" y="36">Verifier</text>
                <text x="184" y="52">|</text>
                <text x="72" y="68">Regular</text>
                <text x="120" y="68">TLS</text>
                <text x="176" y="68">Handshake</text>
                <text x="268" y="68">(Server-only</text>
                <text x="344" y="68">auth)</text>
                <text x="184" y="100">|</text>
                <text x="64" y="116">...</text>
                <text x="100" y="116">time</text>
                <text x="148" y="116">passes</text>
                <text x="196" y="116">..</text>
                <text x="88" y="148">Authenticator</text>
                <text x="176" y="148">Request</text>
                <text x="272" y="148">(ClientCertReq)</text>
                <text x="64" y="196">Request</text>
                <text x="132" y="196">Evidence</text>
                <text x="48" y="228">Key</text>
                <text x="112" y="228">Attestation</text>
                <text x="44" y="244">as</text>
                <text x="92" y="244">Evidence</text>
                <text x="68" y="276">Exported</text>
                <text x="208" y="276">Authenticator(Certificate</text>
                <text x="332" y="276">with</text>
                <text x="96" y="292">cmw_attestation</text>
                <text x="108" y="308">CertificateVerify,</text>
                <text x="72" y="324">Finished)</text>
                <text x="412" y="356">Send</text>
                <text x="468" y="356">Evidence</text>
                <text x="440" y="388">Attestation</text>
                <text x="420" y="404">Result</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
Client              Attester                 Server           Verifier
  |                   |                        |                  |
  |  Regular TLS Handshake (Server-only auth)  |                  |
  |<------------------------------------------>|                  |
  |                   |                        |                  |
  |   ... time passes ...                      |                  |
  |                   |                        |                  |
  | Authenticator Request (ClientCertReq)      |                  |
  |<-------------------------------------------|                  |
  |                   |                        |                  |
  | Request Evidence  |                        |                  |
  |------------------>|                        |                  |
  | Key Attestation   |                        |                  |
  | as Evidence       |                        |                  |
  |<------------------|                        |                  |
  | Exported Authenticator(Certificate with    |                  |
  | cmw_attestation                            |                  |
  | CertificateVerify,                         |                  |
  | Finished)                                  |                  |
  |------------------------------------------->|                  |
  |                   |                        | Send Evidence    |
  |                   |                        |----------------->|
  |                   |                        | Attestation      |
  |                   |                        | Result           |
  |                   |                        |<-----------------|
  |                   |                        |                  |
]]></artwork>
        </artset>
      </figure>
      <section anchor="api-requirements-for-attestation-support">
        <name>API Requirements for Attestation Support</name>
        <t>To enable attestation workflows, implementations of the Exported Authenticator API MUST support the following:</t>
        <ol spacing="normal" type="1"><li>
            <t>Authenticator Generation
            </t>
            <ul spacing="normal">
              <li>
                <t>The API MUST support the inclusion of attestation credentials within the Certificate message provided as input.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Context Retrieval
            </t>
            <ul spacing="normal">
              <li>
                <t>The certificate_request_context MUST be provided in all cases to ensure proper validation of attestation evidence.</t>
              </li>
              <li>
                <t>The receiving endpoint MUST use the "get context" API to retrieve the <tt>certificate_request_context</tt> associated with the exported authenticator as attestation-based authentication requires strict enforcement of the request context. This ensures that the freshness of attestation evidence can be verified.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Authenticator Validation
            </t>
            <ul spacing="normal">
              <li>
                <t>The API MUST verify that the attestation evidence within the Certificate message is cryptographically valid and bound to the certificate_request_context.</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document inherits the security considerations of RFC 9261 and RFC 9334. The integrity of the exported authenticators must be guaranteed, and any failure in validating Evidence SHOULD be treated as a fatal error in the communication channel. Additionally, in order to benefit from remote attestation, Evidence MUST be protected using dedicated attestation keys chaining back to a trust anchor. This trust anchor will typically be provided by the hardware manufacturer.</t>
      <t>This specification assumes that the Hardware Security Module (HSM) or Trusted Execution Environment (TEE) is responsible for generating the key pair and producing either attestation evidence or attestation results, which is included in the Certificate Signing Request (CSR) as defined in <xref target="I-D.ietf-lamps-csr-attestation"/>. This attestation enables the CA to verify that the private key is securely stored and that the platform meets the required security standards before issuing a certificate.</t>
      <section anchor="using-the-tls-connection">
        <name>Using the TLS Connection</name>
        <t>Remote attestation in this document occurs within the context of a TLS handshake, and the TLS connection
remains valid after this process. Care must be taken when handling this TLS connection, as both the client
and server must agree that remote attestation was successfully completed before exchanging data with the
attested party.</t>
        <t>Session resumption presents special challenges since it happens at the TLS level, which is not aware of the
application-level Authenticator. The application (or the modified TLS library) must ensure that a resumed
session has already completed remote attestation before the session can be used normally, and race conditions are possible.</t>
      </section>
      <section anchor="evidence-freshness">
        <name>Evidence Freshness</name>
        <t>The attestation evidence carried in cmw_attestation does not require an additional freshness mechanism, such as a nonce or timestamp, since freshness is inherently provided by the certificate_request_context in the authenticator request.</t>
        <t>The evidence presented in this protocol is valid only at the time it is generated and presented. To ensure that the attested peer remains in a secure state, remote attestation may be re-initiated periodically. In the current protocol, this can be achieved by initiating a new Exported Authenticator-based post-handshake authentication exchange, which will generate a new certificate_request_context to maintain freshness.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="updates-to-iana-considerations">
        <name>Updates to IANA Considerations</name>
        <t>This section defines the necessary updates to the IANA "TLS ExtensionType Values" registry to include the newly introduced <tt>cmw_attestation</tt> extension.</t>
        <section anchor="tls-extension-type-registration">
          <name>TLS Extension Type Registration</name>
          <t>IANA is requested to register the following new extension type in the "TLS ExtensionType Values" registry:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Value</th>
                <th align="left">Extension Name</th>
                <th align="left">TLS 1.3</th>
                <th align="left">DTLS 1.3</th>
                <th align="left">Recommended</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD</td>
                <td align="left">cmw_attestation</td>
                <td align="left">Y</td>
                <td align="left">Y</td>
                <td align="left">Yes</td>
                <td align="left">This Document</td>
              </tr>
            </tbody>
          </table>
          <section anchor="tls-flags-extension-registry">
            <name>TLS Flags Extension Registry</name>
            <t>IANA is requested to add the following entry to the "TLS Flags" extension registry
<xref target="TLS-Ext-Registry"/>:</t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD1</t>
              </li>
              <li>
                <t>Flag Name: CMW_Attestation</t>
              </li>
              <li>
                <t>Messages: CH, EE</t>
              </li>
              <li>
                <t>Recommended: Y</t>
              </li>
              <li>
                <t>Reference: [This document]</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC9261">
          <front>
            <title>Exported Authenticators in TLS</title>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document describes a mechanism that builds on Transport Layer Security (TLS) or Datagram Transport Layer Security (DTLS) and enables peers to provide proof of ownership of an identity, such as an X.509 certificate. This proof can be exported by one peer, transmitted out of band to the other peer, and verified by the receiving peer.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9261"/>
          <seriesInfo name="DOI" value="10.17487/RFC9261"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <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>Intel</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="15" month="April" year="2025"/>
            <abstract>
              <t>   This document defines a conceptual message wrapper (CMW) format - an
   encapsulation method applicable to any RATS conceptual message, such
   as Evidence, Attestation Results, Endorsements, and Reference Values.
   It also describes a collection type that aggregates one or more CMWs
   into a single message.

   In addition, this document specifies a corresponding CBOR tag, JSON
   Web Tokens (JWT) and CBOR Web Tokens (CWT) claims, and an X.509
   extension.  These mechanisms enable the embedding of enveloped
   conceptual messages into CBOR-based protocols, web APIs, and PKIX
   protocols.  Moreover, a Media Type and a CoAP Content-Format are
   defined for transporting CMWs over HTTP, MIME, CoAP, and other
   Internet protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-13"/>
        </reference>
        <reference anchor="I-D.ietf-tls-tlsflags">
          <front>
            <title>A Flags Extension for TLS 1.3</title>
            <author fullname="Yoav Nir" initials="Y." surname="Nir">
              <organization>Dell Technologies</organization>
            </author>
            <date day="15" month="March" year="2025"/>
            <abstract>
              <t>   A number of extensions are proposed in the TLS working group that
   carry no interesting information except the 1-bit indication that a
   certain optional feature is supported.  Such extensions take 4 octets
   each.  This document defines a flags extension that can provide such
   indications at an average marginal cost of 1 bit each.  More
   precisely, it provides as many flag extensions as needed at 4 + the
   order of the last set bit divided by 8.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-tlsflags-15"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-lamps-csr-attestation">
          <front>
            <title>Use of Remote Attestation with Certification Signing Requests</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
              <organization>Beyond Identity</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel Corporation</organization>
            </author>
            <date day="19" month="March" year="2025"/>
            <abstract>
              <t>   A PKI end entity requesting a certificate from a Certification
   Authority (CA) may wish to offer trustworthy claims about the
   platform generating the certification request and the environment
   associated with the corresponding private key, such as whether the
   private key resides on a hardware security module.

   This specification defines an attribute and an extension that allow
   for conveyance of Evidence and Attestation Results in Certificate
   Signing Requests (CSRs), such as PKCS#10 or Certificate Request
   Message Format (CRMF) payloads.  This provides an elegant and
   automatable mechanism for transporting Evidence to a Certification
   Authority.

   Including Evidence and Attestation Results along with a CSR can help
   to improve the assessment of the security posture for the private
   key, and can help the Certification Authority to assess whether it
   satisfies the requested certificate profile.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-18"/>
        </reference>
        <reference anchor="TLS-Ext-Registry" target="https://www.iana.org/assignments/tls-extensiontype-values">
          <front>
            <title>Transport Layer Security (TLS) Extensions</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2023" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 323?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>We would like to thank Chris Patton for his proposal to explore RFC 9261 for attested TLS.
We would also like to thank Paul Howard and Yogesh Deshpande for their input.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Vc63LbRpb+z6folX+sVEXS8WWyE81syrIsx5pYtleSJ+Oa
mnWaQJPsFQhw0YBoju3Uvsa+3j7Jfuf0BQ0QpC5JWGWLBNDdp8/91hiNRoNK
V5k6FHvnalFUShxVlTKVrHSRi5Wu5uLk07IoK5WKo7qaq7zSiayK0uwN5GRS
qmuMPFouM7pKQ17LtSrjSfYGuKNmRbk+FKZKB4O0SHK5wIppKafVaFoYgwdH
VWZGyi01ks340TePBqaeLLQx+FWtlxh5enL5cpDXi4kqDwcppj8cJEVuVG5q
cyiqslYDwPVkIEslD8WFSupSV+vBqiivZmVRLw/F5euLwZVa40p6OBCjGGD6
Sbfx50e17t7Zgo3BtcprgCGEWwDbwQ8L7k9YV+cz8QPdwtWF1Bk/8Uyrajou
yhkuyjKZH4p5VS3N4cOH2JSsSplcqXLsH3q4mj3EoIdyUtTVQ1oK5KknIADh
LkLZwz487mFAJuknBvhl5jLPccUk82Kqcj0b2ynHuuid4+HtSDaeV4tsbzCQ
QFFRElJG+CeEJfvlvFhII17aSfgGNidz/U8efChe61yWBd9QDlU8ZOzWfZbx
Aw5v8dRn9VwuFjIV741cSHEhy1SWPStcvhcvSmVSlcerLNzojzWNHhse/ayq
R6l9dpyqsN60zjK3HV3WC5kps5KlOFdpuu5Z8E1xpSVfT8CIh+K5zGcyK0rF
10o146d+lGUOul+5J4s6r0hqTvPUDXaA7l2Nq2jVjyWt+iynNcZJsdjrYOUD
kJWLi7maTlUfNk7zqtZVvMCaRkyZ8Z7N6BJN25n1FbOOuAy80zPz+1xfq9Jg
y6KYClYTkJyLRKs8wdjnRZ6PzudK56MLrewEXqm8Gj0/v2jj4QdVLmS+jgG1
QIwbIADup3Guqg6wp0VeV+JMz2WWKNkD6VG5AN8tNDg5nl/TuPHCjXsmywVj
YjDIC8BSYXfE3ecvj7978uSp//r420fu6+NHj75zX//46N+6D5yOXjCKR6Ws
zGhhZqNVKZetOyRh+DfN5MwcYlmdT+OFw3OZXCzNKDFlLIb0BBTZ6ORTNToH
ixnCIu9ONJJpP0AGkHT05shecSbhspS5IfF2Wt0rUrGPaQ+gCitoXCxk3ChZ
zlTV6LDVajXWMpesuyTU9yxfQGOah1ZvuMGkIkfXMquVm4b1OSTmWpF+F4+/
efxkMBiNRmANQyqxAh4u59oIs1SJnnrDk6qpJoaUYqGwuVQAU6JaFWIpy0rj
hs5xD9Rb1Lkfo/NK0Yz0vSqE+pRAIc6UOLnWKbGokHnaMojnytRZZURtSJ97
3cfobGzBUEC9WXBSWhUkF0TzsThKU03zyCxbD4WuCICySGsSBswgfk4Wq48R
BX8WAU1DsZrrZC4wtFhhlxFQCeSfVpeZoV1MFKZNsjrF6qkuVVJlawKDFjhW
wAWjTAFN0KbYLMxmJVIQFjuiZ/ot3GgiDa4tC1ONgKTUzOWVijdOeh+6HdeW
y7KQANXUS5rJiEkBN4KmXoILmJ8IrxNYNzKW+JrMVXIlFkWqsIVpWSz46fOj
yws2i5DKpKpLRSjIlCAz76CVVQsTJYltTgvSrMAFTYOvqszWNKBN/YStXza2
3LXQaZqpweAB6UMmCpt8sJrCypoYC9CuaJpcKZ49hceUE08Cm/gpaX1yoYjj
1ha6pFwvq2IGuQb1BDwOzIPpDDBqmUMC/wntTWWKpGPIMKfqWie8Kj9ylRer
XMwKcDVtVQ39oElRVGIOdpsolQMxcpKpdMjo5eXBK6NMXatMmGJarWhpujfV
5YJ/zOW1Ejnm4PEVtIgiuMjvGwvnEMYIBmVJNIhbAVsil3KiM2gE4PAMOxIg
1Jzwy/wtcyc7kOKlZ3PsF3oAayRFlikrerANx5nUC+NwRkjVVV3Fgkg+DyTG
iLLOcxa+/FrDShHO9s0BZAvwWiq/Y/Qv5Jpngrw2kMRS7GECJ64B1l9VCckA
qAwD4ZQYWWriehYLDwoovSDeXxZwetcgVaJZCZIZh8vgxQheqIH6KYEpqCVD
m6TLl6wkxUkDPXBPYyAaeEylJEREd6gR0J4uYVGSfkDFmgSWRnz+7GzO169e
8YEER5VdWS8ULbeCrsbMxCywwjIj3snh0qTMA9j9soTxkOXa821MaaZkkRUz
Up3EKgCmNspB11a9lnSFEz/SfmH0eiRnOXQGmB+XoT2MBosSYRJVMh31Ymk5
H3i+AQ4sXmATcOoXcAHbz2FdGKWhZUyEGDWjtqNfO+r1ntoVwF+r9S2162+m
WLEtlcFDycmHB6YymFZwI2s9mY2Y6EkEAOKlmp9gfSpbwB2x+WdLfnx0MMQM
wBGB2QAAVSyhrDoat4U8LxC9WhfEEMTQwSwEXP/2dmEIAAE572CaqU/aKiX2
AFJNXi+bOLXMijWzhUmgKktdkNBcthhmUusshX1fEuvNSwX0ESTSWu0235NH
NrLQ7PcEz+/KAsoF4JkDuJeRFYuE97ARae+/zItVnxyYNfQoxIwuTDJt5lbB
gB+rFelu7+VAlzk3hrBxkyPDpDEqdoRIrefYNUlChD1LBOiSmsTEtMlGnhZ+
91NuSJhXOSvGwgoKom4oWqgoCnNBMqzkRMhuk0wyc9CWaNuhED5VQCG+Y0IA
CxTokZVMptnwJtF6y/jh5SDZubNJOkI1mVTm1aWi+Qk/0MqkRtueH+j233Bj
qyD85J7kawAA/ApEzsriKcDi5No/HjjcqBIa25lxiDXCJkwA9Wu6eubcregf
PeZHex5waxgSduJiCiGytRVN2hYuJ0pfe121e1+EAZqmyK2vwAa2NYIsLwIO
pvk0BngY/2Cbu7b+ykudM6oDpJ43/W9eldYgHYyAQVOgwMabWQr/lbyTcZDK
Y7Iyy6qG4J75SX6CKwYnB4rv7KcD8FF/EEZshQcaf0eS3alZflNoG3g+kB/p
vZcbxAyCss4KmVJk4GIYj+fIOe21euRZ9UU7tzds7BRu1d33iBd+E4sWx0eR
MDuBCCGE1evYZKzWCclqCqgojbAeentCQMHBbu1zoUgVagPFSXxKPqT1tsC9
VamTyjryfxv/4ZvvWtYTMxessWy8TYbigbhUJewvk4XjAl6OUohGnL2/uBzy
/+LNW3w7P/mP96fnJy+G4uLV0evX7o+9d/Hq7fvXL/xf//zx27OzkzcvaAiu
tC+cHX2wQvL23eXp2zdHry19YsNFLponJvTMslQcmFIgapJSTyyqnx+/E4+c
+0jJCbiP/J2yE/i+AoXsQkUOJrA/QbY1UUTJkqORLCPHX1fkEGF+M6fYhIKk
sUUK3BHS7kRGuCALi2HANZUL0A+TsMYg9rkuEjmBGJWWpokV183YmcwjPRAC
6cFgryc4iTy1vSHZpL3tdzXF8Ba0Uk1JLxdWxfdKCS3ejjPZeg4ZQ4ifIDek
66zloOjQu4oLoCKYaGx5wXzUldaQSBkMTls+q8RkK7ZMkUB3RnvX1QZ/Vh2w
PBunnJRm1RirpaCvirI3veGkPywK+dMqI3YyRaJZ7QYiwhCOCK8QzJb7mQc3
sEeJULDSovOFM7tPx0/Hjwnqz5//hfjy6dNvv34d7prKmxqOsGQMw0fY7sqj
hwN4Q3aM992ySSeUX2wUPCzPCSmfjSewUsWebmsZyx2Yu2IIGhQ16LNmdquS
tnrDiRhLnsMe4nRY3Q04XCjZhwyGhfOshvxA4gKy894r7yfWWIDtvO5q2QOK
QLEkzZYUpTP5rP0Lq2cg3rRZ9gDZH4W6npP9b2Y3TqlDESHyt7GEMpvJm5Db
tN5XpWdzskStqMLB7iLmxqIgbLbKZ0cGTeiG4zpmL8b57x7Ebdt/HGhScsVH
mSRpO2Dzdo18NM1gwutuYhSPuU0TF/gdqPvll1+ElOZ6NrBXxWebI19KCAwz
Lnnqf340Hj/+z0ffjh59/6fBV3KQIuURlNifaLbBwA86FCfBXXLqaeuuKddl
mYBSdUs8QckCVjVYrJEiGzawSmK2nTiDDWzZzOzx87fnxJN/uXj7RuxT5gEa
cLuzd+DjwMbxaEJtgpgzflP2hH9drM0Cipkx+z8p2OvE29jieunzZ8dHxlFV
NSkcBb6w5gWz1AxfweurjlZKa3YIrjmt5ZwuxFZLE0I450MTvkw9+S9oYKFT
K2FDztJ5nk9i9502QOYOPkXNY3XlPXWXMwgGjOuNcNHoSpMVCHseUh7NOmN9
SJ2pHFu26mCxZKcZiLlJlSa6hEd0TXUG6yFZ3FBYvIATlHY9YWalG0RMV0Zl
0yGH5dcW4Cb7QkuXlBvoZYglJQEos0eG/4F4o2YFeD1kPfslaDCwYZxhZNtg
kP2VgEMuCEW7bnnTvdUjeHess1Mn/NZntkUSsjR17uJl4tRoupaXORY/qcZf
4hRACSepqE3WDNrrEGcvcl4GIaRtWROCkHUeGN+lW/eAm49xGwE/5LR8/01O
aRamiQld3Owpy79eqSwrgtaQCaXWsebM71aRuqKkvUqb+pbQ01ZcnplCNGms
2+OP6Wl1+1TPOJYEHomwECI4f9MdW6dxlKmHnzEMPAEhLTinH5yCNiAuaOwB
Zbjh1MaaGKG2rQo0Zsgq1r1g/4gNOx0hlsffW5nJxTuyhq+ChjtqWcNbmmtX
LLD2mj322KvBIrujzHYhrhVowuW5Vba3oiLoQldVwyHt5Mh+pDIOgs7wLoXl
cmMLRFvyRXfxDCjOc1kJ8luoBkWEhKKc29pF7ryj2IezMYGmGdoqmOSJyhma
HVuyIK161URb+YwimO0BUgczNk7i/Q1vKm428tgTYMQevZvwI3niGO2Zvq1N
erJfwPVNmTFHBL/lmBic573ctvcoN+O1YgcN6trLfiNXpVrCWFKInpSFMVGm
Ncqcw2rsWNjn3SutgoPcpl8HTXFOnkX1xOf1j523ZRMsjHrrMMbm8K/OX7iN
8KaFsuqKndG1YGbHjpM+T/Q6TBwlbFhCWc9xmoFkJ1TPhSnq0oZx3bQSmfNY
GGQG89yqydmsNI199+Opc9y7nvqFT7bBEWPqH/eDu6/Gs7F1liTn9mN3ixwG
SnG4YrNKrsyB5XRT6SwjLoBbSv4uswGY2IdWRKg4AGbeAbR/c1f/8PiP30CH
9TBHW4mXpVP9m6SKwz3Wq5ID5HriS6/kGewkFdw/TsmGCbIinxnwZlNn3DKS
po6J6dtKKF9Ucr6PtnbqC4MukDk7+gCEspva5OmpQkX1+Y6iIKHkBRnKnTGH
EdxaSInqMmJbpaoGMFvqtTLjmh2dqIBYVrEwiS6sf3APSyfdrJkKmaikmdf7
HW1e1/mviUbhbriSaZH7lgX42MYXd0pXTec7w6DhXZ5943HpKv1jcaKd9AUH
zPmYbhdUmJ/W2ZREoOK4oSwocbVRJeqKtq/pOCfQr8gTtqoRNuPFctub9dp/
3hSqjrlQdUYq4YA7FUVrbheEALxWjt8ZV2N7eG4yb+MwbwupJAcrSdnjqtNf
IKOwIvQlkNQoapRyrg3tVlJHBItTX4fDtnVhHii4IH5XOdf3EwpSOGdKJgOB
peLbFSe8QxQc2Y+hsDzmSOWB/FfTC0aHEK4qsv/O1w+3op/KbKaNmgYhE4Wd
K2LwZqPhJod9ZkvnhzfTnmc3Fw4Epud6ZriZ6E5wCX4dVmzRYRt5fG1r6+Kh
SuNzP5SecKaDc5RJ1ctCIMTztfV62asjLXNjq1un58GFyhsbd50XwX434ZEt
3WRtFUyt2FP2vjfEPpkjhstjW81J87iEfrNK9dnwW/bJ3Zz7u7+mHd61Ya3t
pr0qVpT7GXoTYa2ejca6KGe3wnen5S7XoFzmtFXQ8p7LX95enLB3jL82OWV9
2TX3IdwQhCRxw1IepTacW5CSZbnWMgZ9lHErKXtMmbO6S5raRmmYFYaBcsYv
a3ao2h0XrOvts3Ftr2q1BVUdcIDE90tGdqL00mbpt1USKAzy3uLObkySrzy1
lX32pSqiPEfghRcwm26jJJyT6F2eCJurfsNkFaMtllN3opqVvg4auJHbyreG
CgvbKtIOD8i5dQ4ruW8z4sQqdBvG6fwhHWRwA0Lw6ZIsc1gw7iVEHFpPJcun
06gcXrSl6rkLr7jiD6M9p964WwCuPhEHaVJ6fTHizzuCxJ/7w3bf00B9vxZO
aGHYV+62m3rQhr5XrnIFKo8mG7+5fVqrrJoG6Xe2N5DCKpspvM0W3SwNKTYs
Bsxr2yfVNv+bKmuplU9U2YVonOsk9e7bstTXBClVrqkJldiefV27Fieb4bdj
BfCFZMvdttItXuy3T4c9No1FxDYFsRLcZlZdnYmtm8v9OD4jg+6rPkXgf55M
W3+9x2/9v//53whlbn/chG5toWZhsjnwTXGPuiGcav6dDETVqj1wNx4I67Pn
tjZO0dAnjs65Jc/nbKyeKQv64/c5qyV5eIqzzqd5RyupT5LmMsPYKafOTM5T
k2LzVYB24t+uG+dVbajUKsPFpbI44+Rb6wHQ589TPRv53jEEt9RB0GkosyG6
XdE+3/SWYQTMXG37rk2n8WwUNZ7ZupYta7kgbfPjQrbNj3eawO9fem7zZ+sN
8cUOO1cz6m9gFDSZ0BuHCbFv4RpxGpEwfHDjan8e9X6+v8Vq99rbeDy2rcZL
bl3m37cYdr/V2t1lPnV347D9vqzfwT0xOfq9MNn9XLSjnv5hW2Dc/vm+f7Uf
SHEetXxSVsW3Q8n2j12tXyvu34SSWM+ykb8dJjdaY243rKcj8TbDfMfiQefm
7mFbqXPDattu2j+he/K2w7YS9AuX7z8figexmrZHwv59r+0MuNK8S1SZcNxj
76tX8y21bRU9R6ZsgkIUc18NHo6XdD8bWv0GbX4X2d2p2m+pt+8qU33csY2+
99jLFl1+tzl+PRz9Sj7S4ay8d85xFz31u+7FQ99o8TvPcRclsRWOzhH2e+1F
bhijO8/RQ5e7w7HFmPQZi61zdDtHdny2zrHFXtxpji3G4y5z3IHVfyP9QY5J
ixXuPkcPaHeH46hLwHvMcd5xc+4xxyZT/zb6IzbA0ZkaZ4L7c0TuHAZIhMCX
JMFqzdEFFeRiu0wlrHenrJ98LMwVhBinFzZ3y80BNpPan7wdNqf3XH7OVZr7
JZUXtgVQ137UikwPBwM6I90a8UNoAqOGRJst752l1fK8LW95Q59XSG1JamJb
1lS5eDymYyRcRT9X1Al7LbMGlF29Cb6nIcwamueNzdq4tBN1LcFXieqjnR34
TNG4Wbc5rNNOQvoesT06Y+oA2WOEcaM7w69ukTHrbfTuPe3OdePobS199XSf
eDHCHroA0OC4hPnGc4xPxzkQ+lpimFl8Ym4bknzu2ec1QcInXaaKGhk2mera
p7bkZuE4LHJTw6Dpy7RyPZpPOMbZ/h10oLM/D5qk4jE1uqdOHEz35KLO54Dc
JcFCKihpjSGkhdNy4UTFkydPbVelDqllR5QtLzgIKcuQaHJnzqkPbSp1Vtvz
wlGDaTAa7tALN1YpWfnGg6msZCZUWRalT9f2H9bvvkMhd4cJuaCTq6mubBPu
5hHKYQNEJJqU1w3dbZBSl8aKqc6n9rG+TbaRQraFyDhD7vi11QO/4gp3SJzH
qmB37rzvwJc9SxNJwis/NvAH7EANTb3/6uLsgMoqlwQMFjv5hCdsBTw6db5/
eXJyQJzqOtS4REeGwPfdusiMMsVLqUufCHcnhd2pkl7pKMpOkSuclnEnMXbV
3S5c43Hj/l+cH2w08u1+80lzkCwGLzogc3wUeqMjUY+T49rljanN0L2tIeSb
+dlMVlRKa2WeXfo8SJ9vhDGuVt0ksVvHL1zbpMc4H3QJHS6DQc9Rp43G0iLB
ki0DF/V+yW7fta8GtM+8Dnw10mkqd14Vy7haH0whM6uTfqp45fYIFM2dhYpk
e1p+HUo46m1zx4Ooq4WnkzM6a83Y7Tn8vJLctU4w0IuX1i4dzsc/LWKjM8+h
o5vWG7iKfupL7oMLW1llrlwsefolvrMfxCJHrdxzakTO6bwoqEI9fvRGiOVS
0dmfKqCO36wRsTVnw1kmrf4ctOqe/BqOliEK70sJb0/bd60y9giH67LN9KSU
5frAYsp5DbaUbHeh0oGrF9v3VmR0BC9GUg9KHd6ssbBj42Yufr+Re4sHdZcm
zFBW87r6r3uXg+sk9LIfinpxk86GiQ6Nad1wLDRg+YMP7b6/xvyH6m9zJF1i
oFM/lMsw9DqToSNgM5DVz5xbLXuqmbscul1lRNeTFLboWCpqvCZbUyRF1rSm
2RxR9M4OzTUV33LkX9PhJuKXX8TEjzpYUn+E28pv/FoZ976YHg6gUjo3oo5s
ocZOU+oitQZrLFzpCPNwY6rfgatXOXaRyZycSsagm8hqODq6+CsOCPuKkZcv
tqYeN276XdSqor7mQH3uJKH3XG04U6SBl67rpuh/xFplVwf2r2sgBEHRkeNX
rkXdTEE3eJo9+yID1zlwuV5yJy1g3eMXv9FbuezRDLaJbsKVrTr6N9TsbC4D
7A9EaxHBq7h3frkmRIZFG8+w/uwrPeK69ZoSIeG26aWhN3R55r/FZhDGfbEX
OWXjZ3kjFzZlwKA+Gj/BtxfN13NF/h6iGQBGv7gZ2uebvgx83qAv6fGl51vn
wY1hmFFcPn8h+lNCX8SHEJ9/EM1XULb5xezwwhtgwMiEsJR4yedzms37169t
IQM0XLdImzu2CEjnKaOzNAHfg793X/L2D+4lYRIc0i4f4RcNZxrwiw3i4yW4
6d+OgHuv4Caf0AsUGnocig98wZHkUPy9FXn8w74/i/xi7tNqjtRwcmHwE8Kl
os5S2LErZbck8ytxPC8xyTsg3nUEOyUJrQBFz29jW9IbEpuAZRr8SmsYx83U
fCKnPf87WWfiVbHy7zv6UGCDc/EC/y3xW/mjT7r0sf7/A45D+aMNVQAA

-->

</rfc>
