<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.7) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fossati-seat-early-attestation-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Attestation in TLS/DTLS">Using Attestation in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
    <seriesInfo name="Internet-Draft" value="draft-fossati-seat-early-attestation-01"/>
    <author initials="Y." surname="Sheffer" fullname="Yaron Sheffer">
      <organization>Intuit</organization>
      <address>
        <email>yaronf.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="I." surname="Mihalcea" fullname="Ionut Mihalcea">
      <organization>Arm Limited</organization>
      <address>
        <email>Ionut.Mihalcea@arm.com</email>
      </address>
    </author>
    <author initials="Y." surname="Deshpande" fullname="Yogesh Deshpande">
      <organization>Arm Limited</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>
    <author initials="T." surname="Reddy" fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <email>k.tirumaleswar_reddy@nokia.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="13"/>
    <area>Security</area>
    <workgroup>TLS</workgroup>
    <keyword>attestation</keyword>
    <keyword>RATS</keyword>
    <keyword>TLS</keyword>
    <abstract>
      <?line 138?>

<t>The TLS handshake protocol allows authentication of one or both peers using static, long-term credentials.
In some cases, it is also desirable to ensure that the peer runtime environment is in a secure state.
Such an assurance can be achieved using remote attestation which is a process by which an entity produces Evidence about itself that another party can use to appraise whether that entity is found in a secure state.
This document describes a series of protocol extensions to the TLS 1.3 handshake that enable the binding of the TLS authentication key to a remote attestation session.
This enables an entity capable of producing attestation Evidence, such as a confidential workload running in a Trusted Execution Environment (TEE), or an IoT device that is trying to authenticate itself to a network access point, to present a more comprehensive set of security metrics to its peer.
These extensions have been designed to allow the peers to use any attestation technology, in any remote attestation topology, and to use them mutually.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://yaronf.github.io/draft-fossati-seat-early-attestation/draft-fossati-seat-early-attestation.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-fossati-seat-early-attestation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        SEAT Working Group mailing list (<eref target="mailto:seat@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/seat/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/seat/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/yaronf/draft-fossati-seat-early-attestation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 147?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Remote Attestation (RA) <xref target="RFC9334"/> is the process by which an entity produces evidence about itself that another party can use to evaluate the trustworthiness of that entity.
This document describes a series of protocol extensions to the TLS 1.3 handshake that enable the binding of the TLS authentication key to a remote attestation session.
This enables an attester, such as a confidential workload running in a Trusted Execution Environment (TEE) <xref target="I-D.ietf-teep-architecture"/>, or an IoT device that is trying to authenticate itself to a network access point, to present a more comprehensive set of security metrics to its peer.
This, in turn, allows for the implementation of authorization policies at the relying parties that are based on stronger security signals.</t>
      <t>Given the variety of deployed and emerging attestation technologies (e.g., <xref target="TPM1.2"/>, <xref target="TPM2.0"/>, <xref target="I-D.ietf-rats-eat"/>) these extensions have been explicitly designed to be agnostic to the attestation formats.
This is achieved by reusing the generic encapsulation defined in <xref target="I-D.ietf-rats-msg-wrap"/> for transporting Evidence and Attestation Results payloads in the TLS Attestation handshake message.</t>
      <t>This specification provides both one-way (server-only) and mutual (client and server) authentication using traditional TLS authentication combined with attestation, and allows the attestation topologies at each peer to be independent of each other.
The proposed design supports both background-check and passport topologies, as described in Sections <xref target="RFC9334" section="5.2" sectionFormat="bare"/> and <xref target="RFC9334" section="5.1" sectionFormat="bare"/> of <xref target="RFC9334"/>.
This is detailed in <xref target="evidence-extensions"/> and <xref target="attestation-results-extensions"/>.</t>
      <t>The protocol we propose is implemented completely at the TLS level, resulting in several related advantages:</t>
      <ul spacing="normal">
        <li>
          <t>Implementation is within a single system component.</t>
        </li>
        <li>
          <t>Security does not depend on application-level code, which tends to be less secure than widely shared infrastructure components.</t>
        </li>
        <li>
          <t>It is easier to reason about the application's security, since the peers' identities and security postures are known as soon as the handshake completes
and the TLS connection is established.</t>
        </li>
        <li>
          <t>Application code does not need to change. At most, some configuration is needed, similar to the current use of certificate trust stores.</t>
        </li>
      </ul>
      <t>This document does not mandate any particular attestation technology.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The reader is assumed to be familiar with the vocabulary and concepts defined in
<xref section="4" sectionFormat="of" target="RFC9334"/>.</t>
      <t>The following terms are used in this document:</t>
      <dl newline="true">
        <dt>TLS Identity Key (TIK):</dt>
        <dd>
          <t>A cryptographic key used by one of the peers to authenticate itself during the
TLS handshake. The protocol's security is critically dependent on the provenance, lifetime and
protection properties of the TIK. The TIK <bcp14>MUST</bcp14> be the X.509 certificate's end entity key and is maintained and protected by the TEE.</t>
        </dd>
        <dt>TIK-C, TIK-S:</dt>
        <dd>
          <t>The TIK that identifies the client or the server, respectively.</t>
        </dd>
        <dt>TIK-C-ID, TIK-S-ID:</dt>
        <dd>
          <t>An identifier for TIK-C or respectively, TIK-S. This may be a fingerprint
(cryptographic hash) of the public key, but other implementations are possible.</t>
        </dd>
        <dt>Attestation binder:</dt>
        <dd>
          <t>A cryptographic value used to bind the TLS handshake to the remote attestation session. May also be referred to as "binder" throughout the document.</t>
        </dd>
      </dl>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

</section>
    <section anchor="overview">
      <name>Overview</name>
      <t>The basic functional goal is to link the authenticated key exchange of TLS with an interleaved remote attestation session in such a way that the key used to sign the handshake can be proven to be residing within the boundaries of an attested TEE.
The requirement is that the attester can provide Evidence containing the security status of both the signing key and the platform that is hosting it.
The associated security goal is to obtain such binding so that no replay, relay or splicing from an adversary is possible.</t>
      <t>The protocol's security relies on the verifiable binding between the TLS Identity Key, the
specific TLS session
and the platform state through attestation Evidence or Attestation Results conveyed
in the CMW (Conceptual Message Wrapper) <xref target="I-D.ietf-rats-msg-wrap"/> payload.</t>
      <section anchor="authentication-vs-attestation">
        <name>Authentication vs. Attestation</name>
        <t>The protocol combines platform attestation with X.509 certificate authentication.</t>
        <t>Attestation when used alone is vulnerable to identity spoofing attacks, in particular when zero-day attacks exist for a class of hardware. (TODO: reference). Therefore it needs to be combined with traditional authentication, which in the case of TLS takes the form of CA-signed certificates.</t>
        <t>We RECOMMEND that regular applications use authentication and attestation in tandem, to gain the full security guarantees of an authenticated TLS handshake (for the peer/peers being authenticated) as
well as guarantees of platform integrity.</t>
      </section>
      <section anchor="integration-into-the-tls-handshake">
        <name>Integration into the TLS Handshake</name>
        <t>The lightweight integration of attestation into the TLS handshake is designed to have
minimal impact on the existing TLS security properties. The changes consist of:</t>
        <ul spacing="normal">
          <li>
            <t>Negotiation extensions: New TLS extensions are added to ClientHello and
EncryptedExtensions messages to negotiate the use of attestation and indicate
supported attestation formats and verifiers.</t>
          </li>
          <li>
            <t>Independent handshake message: A new <tt>Attestation</tt> handshake message is
introduced that carries attestation Evidence or Attestation Results. This message
is completely independent of the standard TLS handshake flow and does not
interfere with existing handshake messages or their processing.</t>
          </li>
          <li>
            <t>Independent key derivation: Key derivation for attestation (see <xref target="crypto-ops"/>) ensures independence of the regular TLS key schedule. As a result, attestation
processing does not affect the standard TLS key derivation and security properties.</t>
          </li>
        </ul>
        <t>This minimal integration approach provides an intuitive explanation of why the
addition of attestation does not adversely affect TLS security. The attestation
components operate independently, leaving the core TLS handshake protocol and
key derivation mechanisms unmodified. Nevertheless, formal validation of these
security properties is still required.</t>
      </section>
    </section>
    <section anchor="attestation-extensions">
      <name>Attestation Extensions</name>
      <t>As typical with new features in TLS, the client indicates support for the new
extension in the ClientHello message. The newly introduced extensions allow
attestation Evidence or Attestation Results to be exchanged. Freshness of the
exchanged Evidence is guaranteed through secret derivation from the TLS main
secret and message transcript (see <xref target="crypto-ops"/>) when the Background Check
Model is in use. In the Passport Model, freshness expectations are more relaxed
and are governed by the lifetime of the signed Attestation Results.</t>
      <t>When either the Evidence or the Attestation Results extension is successfully
negotiated, attestation Evidence or Attestation Results are conveyed in an
<tt>Attestation</tt> handshake message (see <xref target="attestation-message-section"/>). The
CMW payload in the Attestation message contains the attestation Evidence or
Attestation Results encoded according to <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
      <t>The attestation payload <bcp14>MUST</bcp14> contain assertions relating to the attester's TLS
Identity Key (TIK-C for client attester, TIK-S for server attester), which
associate the private key with the attestation information. The TEE's signature
over the Evidence or AttestationResults within the CMW <bcp14>MUST</bcp14> include an attestation binder derived
from the TLS main secret and the message transcript up to ServerHello (see <xref target="crypto-ops"/>)
and the attester's TLS identity public key, as specified in <xref target="attestation-message-section"/>.</t>
      <t>The relying party can obtain and appraise the remote Attestation Results either
directly from the Attestation message (in the Passport Model), or by relaying
the Evidence from the Attestation message to the Verifier and receiving the
Attestation Results. Subsequently, the attested key is used to verify the
CertificateVerify message, which remains unchanged from baseline TLS.</t>
      <t>When using the Passport Model, the remote Attestation Results obtained by the
attester from its trusted Verifiers can be cached and used for any number of
subsequent TLS handshakes, as long as the freshness policy requirements are
satisfied.</t>
      <t>In TLS a client has to demonstrate possession of the private key via the
CertificateVerify message, when client-based authentication is requested.
This behavior remains unchanged in the current protocol, with the CertificateVerify
message proving possession of the TIK.</t>
      <t>This protocol supports both monolithic and split implementations. In a monolithic
implementation, the TLS stack is completely embedded within the TEE. In a split
implementation, the TLS stack is located outside the TEE, but any private keys
(and in particular, the TIK) only exist within the TEE. In order to support
both options, only the TIK's identity, its public component and a short generated binder are ever
passed between the Client or Server TLS stack and its Attestation Service.
While the two types of implementations offer identical functionality,
their security properties often differ, see <xref target="sec-guarantees"/> for more details.</t>
      <section anchor="attestation-message-section">
        <name>Attestation Handshake Message</name>
        <t>When attestation is negotiated via the extensions defined in this document,
attestation Evidence or Attestation Results are conveyed in a new handshake
message type: <tt>Attestation</tt>. This message carries a CMW (Conceptual Message
Wrapper) payload as defined in <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
        <t>The <tt>Attestation</tt> message structure is defined as follows:</t>
        <figure anchor="_figure-attestation-message">
          <name>Attestation Handshake Message Structure.</name>
          <artwork><![CDATA[
    enum {
        /* other handshake message types defined in {{I-D.ietf-tls-rfc8446bis}} */
        attestation(TBD),
        (255)
    } HandshakeType;

    struct {
        HandshakeType msg_type;    /* handshake type */
        uint24 length;             /* bytes in message */
        select (Handshake.msg_type) {
            case attestation:
                Attestation;
            /* other handshake message types */
        };
    } Handshake;

    struct {
        opaque cmw_payload<1..2^24-1>;
    } Attestation;
]]></artwork>
        </figure>
        <t>The <tt>cmw_payload</tt> field contains a CMW structure as defined in <xref target="I-D.ietf-rats-msg-wrap"/>.
Both JSON and CBOR serializations are allowed in CMW, with the emitter choosing
which serialization to use.</t>
        <t>The CMW payload <bcp14>MUST</bcp14> contain attestation Evidence (in Background Check Model)
or Attestation Results (in Passport Model) that binds the TLS Identity Key (TIK)
to the platform and workload state. The TEE's signature over the Evidence or
AttestationResults within the CMW <bcp14>MUST</bcp14> include:</t>
        <ul spacing="normal">
          <li>
            <t>A binder derived from the TLS main secret and the message transcript, up to ServerHello,
ensuring freshness of the attestation.</t>
          </li>
          <li>
            <t>The attester's TLS identity public key (TIK-C for client attester, TIK-S for
server attester)</t>
          </li>
        </ul>
        <t>This binding ensures that the attested key is the one used in the TLS handshake
and provides freshness guarantees through secret derivation. See <xref target="crypto-ops"/> for details.</t>
      </section>
    </section>
    <section anchor="use-of-attestation-in-the-tls-handshake">
      <name>Use of Attestation in the TLS Handshake</name>
      <t>For both the Passport Model (described in section 5.1 of <xref target="RFC9334"/>) and
Background Check Model (described in Section 5.2 of <xref target="RFC9334"/>) the following
modes of operation are allowed when used with TLS, namely:</t>
      <ul spacing="normal">
        <li>
          <t>TLS client is the attester,</t>
        </li>
        <li>
          <t>TLS server is the attester, and</t>
        </li>
        <li>
          <t>TLS client and server mutually attest towards each other.</t>
        </li>
      </ul>
      <t>We will show the message exchanges of the first two cases in sub-sections below.
Mutual authentication via attestation combines these two (non-interfering)
flows, including cases where one of the peers uses the Passport Model for its
attestation, and the other uses the Background Check Model.</t>
      <section anchor="handshake-overview">
        <name>Handshake Overview</name>
        <t>The handshake defined here is analogous to certificate-based authentication in a regular TLS handshake.
The peer being attested first proves possession of the private key using the CertificateVerify message, which remains unchanged from baseline TLS. Following that, the TLS Identity Key (TIK) is bound by the TEE to the attestation credential being carried in a new Attestation handshake message (see <xref target="attestation-message-section"/>).</t>
        <t>The attestation Evidence or Attestation Results are conveyed in an <tt>Attestation</tt>
handshake message (see <xref target="attestation-message-section"/>), which carries a CMW
payload as defined in <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
      </section>
      <section anchor="tls-client-authenticating-using-evidence">
        <name>TLS Client Authenticating Using Evidence</name>
        <t>In this use case, the TLS server (acting as a relying party) challenges the TLS
client (as the attester) to provide Evidence. A session-specific value is derived
(see <xref target="crypto-ops"/>)
which incorporates randomness from both client and server, and this value is fed into the generation
of the Evidence.
The
client sends the Evidence in an <tt>Attestation</tt> handshake message after the
<tt>CertificateVerify</tt> message. The TLS server, when receiving the Evidence, will have
to contact the Verifier (which is not shown in the diagram).</t>
        <t>An example of this flow can be found in device onboarding where the
client initiates the communication with cloud infrastructure to
get credentials, firmware and other configuration data provisioned
to the device. For the server to consider the device genuine it needs
to present Evidence.</t>
        <figure anchor="_figure-background-check-model1">
          <name>TLS Client Providing Evidence to TLS Server.</name>
          <artwork><![CDATA[
       Client                                           Server

Key  ^ ClientHello
Exch | + evidence_proposal
     | + key_share*
     | + signature_algorithms*
     v                         -------->
                                                  ServerHello ^ Key
                                                 + key_share* | Exch
                                                              v
                                        {EncryptedExtensions} ^ Server
                                          + evidence_proposal | Params
                                         {CertificateRequest} v
                                                {Certificate} ^
                                          {CertificateVerify} | Auth
                                                   {Finished} v
                               <--------  [Application Data*]
     ^ {Certificate}
Auth | {CertificateVerify}
     | {Attestation}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]
]]></artwork>
        </figure>
      </section>
      <section anchor="tls-server-authenticating-using-evidence">
        <name>TLS Server Authenticating Using Evidence</name>
        <t>In this use case the TLS client challenges the TLS server to present Evidence.
The TLS server acts as an attester while the TLS client is the relying party.
The server sends the Evidence in an <tt>Attestation</tt> handshake message after the
<tt>CertificateVerify</tt> message. The TLS client, when receiving the Evidence,
will have to contact the Verifier (which is not shown in the diagram).</t>
        <t>An example of this flow can be found in confidential computing where
a compute workload is only submitted to the server infrastructure
once the client/user is assured that the confidential computing platform is
genuine.</t>
        <figure anchor="_figure-background-check-model2">
          <name>TLS Server Providing Evidence to TLS Client.</name>
          <artwork><![CDATA[
       Client                                           Server

Key  ^ ClientHello
Exch | + evidence_request
     | + key_share*
     | + signature_algorithms*
     v                         -------->
                                                  ServerHello ^ Key
                                                 + key_share* | Exch
                                                              v
                                        {EncryptedExtensions} ^ Server
                                          + evidence_request  | Params
                                         {CertificateRequest} v
                                                {Certificate} ^
                                          {CertificateVerify} |
                                                {Attestation} | Auth
                                                   {Finished} v
                               <--------  [Application Data*]
     ^ {Certificate}
Auth | {CertificateVerify}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]
]]></artwork>
        </figure>
      </section>
      <section anchor="tls-client-authenticating-using-attestation-results">
        <name>TLS Client Authenticating Using Attestation Results</name>
        <t>In this use case the TLS client, as the attester, provides Attestation Results
to the TLS server. The TLS client is the attester and the TLS server acts as
a relying party. Prior to delivering its Certificate message, the client must
contact the Verifier (not shown in the diagram) to receive the Attestation
Results that it will use as credentials. The client sends the Attestation
Results in an <tt>Attestation</tt> handshake message after the <tt>CertificateVerify</tt> message.</t>
        <figure anchor="_figure-passport-model1">
          <name>TLS Client Providing Results to TLS Server.</name>
          <artwork><![CDATA[
       Client                                           Server

Key  ^ ClientHello
Exch | + results_proposal
     | + key_share*
     | + signature_algorithms*
     v                         -------->
                                                  ServerHello ^ Key
                                                 + key_share* | Exch
                                                              v
                                        {EncryptedExtensions} ^ Server
                                           + results_proposal | Params
                                         {CertificateRequest} v
                                                {Certificate} ^
                                          {CertificateVerify} | Auth
                                                   {Finished} v
                               <--------  [Application Data*]
     ^ {Certificate}
Auth | {CertificateVerify}
     | {Attestation}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]
]]></artwork>
        </figure>
      </section>
      <section anchor="tls-server-authenticating-using-attestation-results">
        <name>TLS Server Authenticating Using Attestation Results</name>
        <t>In this use case the TLS client, as the relying party, requests Attestation
Results from the TLS server. Prior to delivering its Certificate message, the
server must contact the Verifier (not shown in the diagram) to receive the
Attestation Results that it will use as credentials. The server sends the
Attestation Results in an <tt>Attestation</tt> handshake message after the
<tt>CertificateVerify</tt> message.</t>
        <figure anchor="_figure-passport-model2">
          <name>TLS Server Providing Attestation Results to TLS Client.</name>
          <artwork><![CDATA[
       Client                                           Server

Key  ^ ClientHello
Exch | + results_request
     | + key_share*
     | + signature_algorithms*
     v                         -------->
                                                  ServerHello ^ Key
                                                 + key_share* | Exch
                                                              v
                                        {EncryptedExtensions} ^ Server
                                           + results_request  | Params
                                         {CertificateRequest} v
                                                {Certificate} ^
                                          {CertificateVerify} |
                                                {Attestation} | Auth
                                                   {Finished} v
                               <--------  [Application Data*]
     ^ {Certificate}
Auth | {CertificateVerify}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]
]]></artwork>
        </figure>
      </section>
      <section anchor="crypto-ops">
        <name>Cryptographic Operations</name>
        <t>This section defines the key derivation for attestation, which operates independently
from the regular TLS key schedule as described in <xref section="7.1" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>.</t>
        <t>The attestation key derivation uses HKDF <xref section="7.1" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/> to derive
attestation-specific secrets from the TLS main secret. Two attestation main
secrets are derived: one for the client (<tt>c_attest_main</tt>) and one for the
server (<tt>s_attest_main</tt>).</t>
        <t>The key derivation follows this structure:</t>
        <figure anchor="_figure-attestation-key-schedule">
          <name>Attestation Key Schedule.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="520" viewBox="0 0 520 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 136,48 L 136,64" fill="none" stroke="black"/>
                <path d="M 136,96 L 136,112" fill="none" stroke="black"/>
                <path d="M 136,144 L 136,160" fill="none" stroke="black"/>
                <path d="M 136,192 L 136,272" fill="none" stroke="black"/>
                <path d="M 72,80 L 96,80" fill="none" stroke="black"/>
                <path d="M 72,176 L 96,176" fill="none" stroke="black"/>
                <path d="M 136,208 L 184,208" fill="none" stroke="black"/>
                <path d="M 136,272 L 184,272" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="192,272 180,266.4 180,277.6" fill="black" transform="rotate(0,184,272)"/>
                <polygon class="arrowhead" points="192,208 180,202.4 180,213.6" fill="black" transform="rotate(0,184,208)"/>
                <polygon class="arrowhead" points="144,160 132,154.4 132,165.6" fill="black" transform="rotate(90,136,160)"/>
                <polygon class="arrowhead" points="144,112 132,106.4 132,117.6" fill="black" transform="rotate(90,136,112)"/>
                <polygon class="arrowhead" points="144,64 132,58.4 132,69.6" fill="black" transform="rotate(90,136,64)"/>
                <polygon class="arrowhead" points="104,176 92,170.4 92,181.6" fill="black" transform="rotate(0,96,176)"/>
                <polygon class="arrowhead" points="104,80 92,74.4 92,85.6" fill="black" transform="rotate(0,96,80)"/>
                <g class="text">
                  <text x="136" y="36">0</text>
                  <text x="32" y="84">(EC)DHE</text>
                  <text x="156" y="84">HKDF-Extract</text>
                  <text x="216" y="84">=</text>
                  <text x="264" y="84">Handshake</text>
                  <text x="332" y="84">Secret</text>
                  <text x="164" y="132">Derive-Secret(.,</text>
                  <text x="276" y="132">"derived",</text>
                  <text x="336" y="132">"")</text>
                  <text x="56" y="180">0</text>
                  <text x="156" y="180">HKDF-Extract</text>
                  <text x="216" y="180">=</text>
                  <text x="244" y="180">Main</text>
                  <text x="292" y="180">Secret</text>
                  <text x="260" y="212">Derive-Secret(.,</text>
                  <text x="340" y="212">"c</text>
                  <text x="400" y="212">attestation</text>
                  <text x="476" y="212">main",</text>
                  <text x="412" y="228">ClientHello...ServerHello)</text>
                  <text x="256" y="244">=</text>
                  <text x="320" y="244">c_attest_main</text>
                  <text x="260" y="276">Derive-Secret(.,</text>
                  <text x="340" y="276">"s</text>
                  <text x="400" y="276">attestation</text>
                  <text x="476" y="276">main",</text>
                  <text x="412" y="292">ClientHello...ServerHello)</text>
                  <text x="256" y="308">=</text>
                  <text x="320" y="308">s_attest_main</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                0
                |
                v
(EC)DHE ---> HKDF-Extract = Handshake Secret
                |
                v
            Derive-Secret(., "derived", "")
                |
                v
      0 ---> HKDF-Extract = Main Secret
                |
                +-----> Derive-Secret(., "c attestation main",
                |                     ClientHello...ServerHello)
                |              = c_attest_main
                |
                +-----> Derive-Secret(., "s attestation main",
                                      ClientHello...ServerHello)
                               = s_attest_main
]]></artwork>
          </artset>
        </figure>
        <t>The attestation main secrets (<tt>c_attest_main</tt> and <tt>s_attest_main</tt>)
are derived from the TLS main secret using Derive-Secret as defined in
<xref section="7.1" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>, with the labels "c attestation main" and
"s attestation main" respectively, and the handshake transcript up to and
including ServerHello as the context.</t>
        <t>The client's attestation binder (<tt>c_attest_binder</tt>) that will be signed by
the TEE is derived by applying HKDF-Expand-Label to <tt>c_attest_main</tt> with
the label "attestation" and the client's TLS public key as the context:</t>
        <artwork><![CDATA[
c_attest_binder = HKDF-Expand-Label(c_attest_main, "attestation",
                                    TLS_Client_Public_Key, Hash.length)
]]></artwork>
        <t>Similarly, the server's attestation binder (<tt>s_attest_binder</tt>) is derived
from <tt>s_attest_main</tt>:</t>
        <artwork><![CDATA[
s_attest_binder = HKDF-Expand-Label(s_attest_main, "attestation",
                                    TLS_Server_Public_Key, Hash.length)
]]></artwork>
        <t>The attestation binder is derived independently by both the attester and the
peer. The attester incorporates this attestation binder into the Evidence.
Upon receipt of the Attestation handshake message, the peer will have to derive
the expected attestation binder using the same inputs and verify that the
computed attestation binder matches the one in the Evidence. If this verification
fails, the peer will treat the attestation as invalid. This verification ensures
that the Evidence is bound to the specific TLS session and TLS public key being
attested.</t>
      </section>
      <section anchor="tik-binding">
        <name>Binding the TIK to the TEE</name>
        <t>This specification assumes that the TIK private key corresponding to the end-entity certificate used in the TLS handshake is generated inside a TEE and never leaves it. A platform could instead generate the TIK private key outside the TEE and compute the CertificateVerify signature using that external key. A relying party cannot detect this attack unless additional safeguards are in place.</t>
        <t>This risk is particularly relevant in split deployments, where the TLS stack does not reside inside the TEE. In such architectures, attesting the TEE alone does not prove that the TIK private key used by the TLS endpoint was generated, is stored, or is controlled by the TEE.</t>
        <t>To address this, the Evidence <bcp14>MUST</bcp14> include the TIK public key (TIK_pub). The relying party <bcp14>MUST</bcp14> verify that the TIK_pub included in the Evidence matches the public key presented in the TLS Certificate message. This binds the attestation Evidence to the TLS identity used for authentication.</t>
        <t>Without this binding, a non-TEE TLS endpoint can obtain Evidence from a separate TLS endpoint that genuinely runs inside a TEE and relay that Evidence to the relying party while executing the TLS handshake itself. If the Evidence only attests that a TLS stack is running in a TEE, the relying party cannot determine whether the attested TLS stack is the one that actually performed the handshake. Binding the Evidence to the TIK public key prevents this relay attack.</t>
        <t>The proposed binding ensures that the relying party does not establish a TLS session with a TLS endpoint whose TIK is not generated and controlled by the TEE. It does not attempt to protect the confidentiality of the TLS main secret in split deployments, where the TLS stack executes in the rich OS and remains susceptible to compromise.</t>
      </section>
      <section anchor="the-tls-stacks-interface-to-the-tee">
        <name>The TLS Stack's Interface to the TEE</name>
        <t>When the TEE signs the Evidence or Attestation Results, it also binds them to the TLS Identity public key and the TLS
session. TEE implementations differ, and some only allow a single user-provided challenge value to be added to the Evidence with no associated checks.
Therefore we adopt a defense-in-depth approach:</t>
        <ul spacing="normal">
          <li>
            <t>Separate attesting applications within the same TEE <bcp14>SHOULD NOT</bcp14> be capable of impersonating each other via Evidence or Attestation Results. Therefore, if multiple applications are expected to use attestation credentials, evidence/AR generation APIs <bcp14>SHOULD</bcp14> reflect identifiers for the calling contexts into the generated credential. These identifiers can be reflected as separate claims in the credential, or can be measured as part of more generic claims. A Relying Party <bcp14>SHOULD</bcp14> be capable of differentiating between the attesting applications based on their credentials.</t>
          </li>
          <li>
            <t>The RP <bcp14>SHOULD NOT</bcp14> base its trust decision only on the Attester's trust root. It <bcp14>SHOULD</bcp14> also ensure that the entire attested software stack is endorsed.</t>
          </li>
          <li>
            <t>The TEE itself, when possible, <bcp14>SHOULD</bcp14> generate the attestation secret by running the derivation operations defined in <xref target="crypto-ops"/>, and, if it holds the TIK, <bcp14>SHOULD</bcp14> validate the public key. The attestation secret can be generated by the TEE only if TLS is running inside the TEE.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="dtls-considerations">
      <name>DTLS Considerations</name>
      <t>The Attestation message <bcp14>MUST</bcp14> be handled using the existing DTLS handshake mechanisms for fragmentation, ordering, and retransmission to ensure reliable delivery.</t>
      <t>Note that Attestation messages typically exceed 1,500 bytes in size.
This means that the message will be split into multiple DTLS records, increasing the latency of handshake completion.
This is particularly the case over channels where reordering and loss are more common due to factors such as routing transients, intermittent connectivity or mobility.</t>
      <t>In DTLS, handshake messages that do not solicit a response are acknowledged using the DTLS ACK message. Because the Attestation handshake message does not elicit a response, the receiving peer <bcp14>MUST</bcp14> send a DTLS ACK upon receipt of the Attestation message. This ACK confirms only that the message was received; it does not indicate that attestation appraisal has completed.</t>
      <t>Once the attester receives the ACK, it <bcp14>MUST</bcp14> stop retransmitting the Attestation message. The receiving peer performs attestation appraisal asynchronously and applies its authorization policy once appraisal results become available.</t>
    </section>
    <section anchor="after-handshake">
      <name>After The Initial Handshake</name>
      <t>This section covers protocol behavior after the initial handshake, including
session resumption, reattestation and the interaction between them.</t>
      <section anchor="session-resumption">
        <name>Session Resumption</name>
        <t>TLS 1.3 supports session resumption using Pre-Shared Keys (PSK) as defined in
<xref section="4.6" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>. When using attestation, session resumption works
normally when reattestation is not required.</t>
        <t>If client reattestation is required according to local policy (e.g., based on timing
since the last attestation or changes in attestation state), session resumption
<bcp14>MUST</bcp14> be rejected. The decision to reject resumption is per local policy and may
depend on the timing of the resumption attempt relative to the required
reattestation period. When resumption is rejected, the client <bcp14>MUST</bcp14>
initiate a full handshake with attestation to obtain fresh attestation Evidence
or Attestation Results.</t>
        <t>The rationale for rejecting resumption when reattestation is required is that
attestation state may have changed since the original handshake, and fresh
verification is needed to ensure the peer's platform and workload remain in a
trustworthy state. If the client wishes to retain a long-running connection, it <bcp14>SHOULD</bcp14>
perform reattestation <xref target="reattestation"/> periodically, as per local policy.</t>
      </section>
      <section anchor="reattestation">
        <name>Reattestation</name>
        <t>Over time, attestation Evidence or Attestation Results may become stale and
require refresh. Long-lived TLS connections require updated assurance that
the peer continues to operate in a trustworthy state. This document
therefore supports reattestation, in which either peer <bcp14>MAY</bcp14> request fresh
Evidence at any time post-handshake. The attester <bcp14>MUST</bcp14> generate evidence
using a freshly derived attestation_binder.</t>
        <t>Reattestation is tied to the completion of an Extended Key Update (EKU) exchange <xref target="I-D.ietf-tls-extended-key-update"/>. TLS peers that require reattestation <bcp14>MUST</bcp14> support EKU,
since reattestation depends on the key schedule update defined in the EKU draft.
The first two messages of an EKU exchange introduce fresh key-exchange input and
make <tt>Main Secret N+1</tt> available to both peers.</t>
        <t>The Attestation message <bcp14>MUST</bcp14> be sent immediately before the attestor sends
its EKU(new_key_update) message. Once <tt>Main Secret N+1</tt> is available
(after the first two EKU messages), the attester derives a new
attestation_binder from <tt>Main Secret N+1</tt>, using the concatenation of the
EKU request and response messages and its TLS identity public key as context.</t>
        <t>The receiving peer, however, <bcp14>MUST NOT</bcp14> process the Attestation until the
EKU exchange and the authenticated transition step have completed. This
ensures that attestation bound to <tt>Main Secret N+1</tt> is accepted only after
both peers have confirmed that they share the same updated key state.</t>
        <t>For a client attester:</t>
        <artwork><![CDATA[
client_attestation_binder =
      Derive-Secret(Main Secret N+1,
                    "reattestation",
                    EKU(request) ||
                    EKU(response) ||
                    TLS_Client_Public_Key)
]]></artwork>
        <t>For a server attester:</t>
        <artwork><![CDATA[
server_attestation_binder =
      Derive-Secret(Main Secret N+1,
                    "reattestation",
                    EKU(request) ||
                    EKU(response) ||
                    TLS_Server_Public_Key)
]]></artwork>
        <t>Including the EKU request and response messages ensures that the resulting attestation binder
is bound to the specific EKU exchange and therefore reflects fresh key-exchange entropy
introduced by EKU.</t>
        <t>After deriving the fresh attestation_binder, the attester:</t>
        <ol spacing="normal" type="1"><li>
            <t>generates fresh Evidence using the new attestation_binder and</t>
          </li>
          <li>
            <t>sends a new <tt>Attestation</tt> handshake message containing the updated CMW payload.</t>
          </li>
        </ol>
        <t>The TLS peer validates the attestation by deriving and verifying the attestation binder as specified in <xref target="crypto-ops"/>.</t>
        <t>Reattestation uses the Attestation formats that were negotiated during the initial handshake,
there is no re-negotiation at this stage.</t>
        <t>The decision to initiate reattestation is per local policy and may be based on
factors such as elapsed time since the last attestation, changes in platform
state, or security policy requirements.</t>
      </section>
    </section>
    <section anchor="negotiating-protocol">
      <name>Negotiating This Protocol</name>
      <t>This section defines the TLS extensions used to negotiate the use of attestation
in the TLS handshake. Two models are supported: the Background Check Model, where
Evidence is exchanged and verified during the handshake, and the Passport Model,
where pre-verified Evidence in the form of Attestation Results are presented. The extensions defined
here allow peers to indicate their support for attestation and negotiate which
attestation format and Verifier to use.</t>
      <t><cref>Can we simplify this structure: remove the dual request/proposal, and unify the evidence+AR to a single
negotiation extension. But also express Passport mode with and without freshness.</cref></t>
      <section anchor="evidence-extensions">
        <name>Evidence Extensions (Background Check Model)</name>
        <t>The EvidenceType structure contains an indicator for the type of Evidence
expected in the <tt>Attestation</tt> handshake message. The Evidence contained in
the CMW payload is sent in the <tt>Attestation</tt> handshake message (see <xref target="attestation-message-section"/>).</t>
        <figure anchor="_figure-extension-evidence">
          <name>TLS Extension Structure for Evidence.</name>
          <artwork><![CDATA[
    enum { CONTENT_FORMAT(0), MEDIA_TYPE(1) } typeEncoding;

    struct {
        typeEncoding type_encoding;
        select (EvidenceType.type_encoding) {
            case CONTENT_FORMAT:
                uint16 content_format;
            case MEDIA_TYPE:
                opaque media_type<0..2^16-1>;
        };
    } EvidenceType;

    struct {
        select(Handshake.msg_type) {
            case client_hello:
                EvidenceType supported_evidence_types<1..2^8-1>;
            case server_hello:
            case encrypted_extensions:
                EvidenceType selected_evidence_type;
        }
    } evidenceRequestTypeExtension;

    struct {
        select(Handshake.msg_type) {
            case client_hello:
                EvidenceType supported_evidence_types<1..2^8-1>;
            case server_hello:
            case encrypted_extensions:
                EvidenceType selected_evidence_type;
        }
    } evidenceProposalTypeExtension;
]]></artwork>
        </figure>
        <t>Values for media_type are defined in <xref target="iana-media-types"/>.
Values for content_format are defined in <xref target="iana-content-formats"/>.</t>
      </section>
      <section anchor="attestation-results-extensions">
        <name>Attestation Results Extensions (Passport Model)</name>
        <figure anchor="_figure-extension-results">
          <name>TLS Extension Structure for Attestation Results.</name>
          <artwork><![CDATA[
    struct {
        opaque verifier_identity<0..2^16-1>;
    } VerifierIdentityType;

    struct {
        select(Handshake.msg_type) {
            case client_hello:
                VerifierIdentityType trusted_verifiers<1..2^8-1>;

            case server_hello:
            case encrypted_extensions:
                VerifierIdentityType selected_verifier;
        }
    } resultsRequestTypeExtension;

    struct {
        select(Handshake.msg_type) {
            case client_hello:
                VerifierIdentityType trusted_verifiers<1..2^8-1>;

            case server_hello:
            case encrypted_extensions:
                VerifierIdentityType selected_verifier;
        }
    } resultsProposalTypeExtension;
]]></artwork>
        </figure>
        <t>In the Passport Model, Attestation Results are sent in an <tt>Attestation</tt> handshake
message (see <xref target="attestation-message-section"/>) containing a CMW structure. The CMW
structure is defined in <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
      </section>
    </section>
    <section anchor="behavior">
      <name>TLS Client and Server Handshake Behavior</name>
      <t>The high-level message exchange in <xref target="_figure-overview"/> shows the
evidence_proposal, evidence_request, results_proposal, and results_request
extensions added to the ClientHello and the EncryptedExtensions messages.</t>
      <figure anchor="_figure-overview">
        <name>Attestation Message Overview.</name>
        <artwork><![CDATA[
       Client                                           Server

Key  ^ ClientHello
Exch | + key_share*
     | + signature_algorithms*
     | + psk_key_exchange_modes*
     | + pre_shared_key*
     | + evidence_proposal*
     | + evidence_request*
     | + results_proposal*
     v + results_request*
     -------->
                                                  ServerHello ^ Key
                                                 + key_share* | Exch
                                            + pre_shared_key* v
                                        {EncryptedExtensions} ^ Server
                                         + evidence_proposal* | Params
                                          + evidence_request* |
                                          + results_proposal* |
                                           + results_request* |
                                        {CertificateRequest*} v
                                               {Certificate*} ^
                                         {CertificateVerify*} |
                                               {Attestation*} | Auth
                                                   {Finished} v
                               <--------  [Application Data*]
     ^ {Certificate*}
Auth | {CertificateVerify*}
     | {Attestation*}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]
]]></artwork>
      </figure>
      <section anchor="background-check-model">
        <name>Background Check Model</name>
        <section anchor="client-hello">
          <name>Client Hello</name>
          <t>To indicate the support for passing Evidence in TLS following the
Background Check Model, clients include the evidence_proposal
and/or the evidence_request extensions in the ClientHello.</t>
          <t>The evidence_proposal extension in the ClientHello message indicates
the Evidence types the client is able to provide to the server.</t>
          <t>The evidence_request extension in the ClientHello message indicates
the Evidence types the client challenges the server to
provide in an <tt>Attestation</tt> handshake message.</t>
          <t>The evidence_proposal and evidence_request extensions sent in
the ClientHello each carry a list of supported Evidence types,
sorted by preference.  When the client supports only one Evidence
type, it is a list containing a single element.</t>
          <t>The client <bcp14>MUST</bcp14> omit Evidence types from the evidence_proposal
extension in the ClientHello if it cannot respond to a request
from the server to present a proposed Evidence type, or if
the client is not configured to use the proposed Evidence type
with the given server.  If the client has no Evidence types
to send in the ClientHello it <bcp14>MUST</bcp14> omit the evidence_proposal
extension in the ClientHello.</t>
          <t>The client <bcp14>MUST</bcp14> omit Evidence types from the evidence_request
extension in the ClientHello if it is not able to pass the
indicated verification type to a Verifier.  If the client does
not act as a relying party with regards to Evidence processing
(as defined in the RATS architecture) then the client <bcp14>MUST</bcp14>
omit the evidence_request extension from the ClientHello.</t>
        </section>
        <section anchor="server-hello">
          <name>Server Hello</name>
          <t>If the server receives a ClientHello that contains the
evidence_proposal extension and/or the evidence_request
extension, then three outcomes are possible:</t>
          <ul spacing="normal">
            <li>
              <t>The server does not support the extensions defined in this
document.  In this case, the server returns the EncryptedExtensions
without the extensions defined in this document.</t>
            </li>
            <li>
              <t>The server supports the extensions defined in this document, but
it does not have any Evidence type in common with the client.
Then, the server terminates the session with a fatal alert of
type "unsupported_evidence".</t>
            </li>
            <li>
              <t>The server supports the extensions defined in this document and
has at least one Evidence type in common with the client.  In
this case, the processing rules described below are followed.</t>
            </li>
          </ul>
          <t>The evidence_proposal extension in the ClientHello indicates
the Evidence types the client is able to provide to the server.  If the
server wants to request Evidence from the client, it <bcp14>MUST</bcp14> include the
evidence_proposal extension in the EncryptedExtensions. This
evidence_proposal extension in the EncryptedExtensions then indicates
what Evidence format the client is requested to provide in an
<tt>Attestation</tt> handshake message sent after the <tt>CertificateVerify</tt> message.
The Evidence contained in the CMW payload <bcp14>MUST</bcp14> include a binder derived from
the TLS main secret and the message transcript up to ServerHello (see <xref target="crypto-ops"/>)
in the TEE's signature, along with the client's TLS identity public key (TIK-C).
The value conveyed in the evidence_proposal extension by the server <bcp14>MUST</bcp14> be
selected from one of the values provided in the evidence_proposal extension
sent in the ClientHello.</t>
          <t>If none
of the Evidence types supported by the client (as indicated in the
evidence_proposal extension in the ClientHello) match the
server-supported Evidence types, then the evidence_proposal
extension in the ServerHello <bcp14>MUST</bcp14> be omitted.</t>
          <t>The evidence_request extension in the ClientHello indicates what
types of Evidence the client can challenge the server to return
in an <tt>Attestation</tt> handshake message. With the evidence_request
extension in the EncryptedExtensions, the server indicates the
Evidence type carried in the <tt>Attestation</tt> handshake message sent
after the CertificateVerify by the server. The Evidence
contained in the CMW payload <bcp14>MUST</bcp14> include a binder derived from
the TLS main secret and the message transcript up to ServerHello (see <xref target="crypto-ops"/>)
in the TEE's signature, along with
the server's TLS identity public key (TIK-S).
The Evidence type in the evidence_request extension <bcp14>MUST</bcp14> contain
a single value selected from the evidence_request extension in
the ClientHello.</t>
        </section>
      </section>
      <section anchor="passport-model">
        <name>Passport Model</name>
        <t>The <tt>results_proposal</tt> and <tt>results_request</tt> extensions are used to negotiate
the protocol defined in this document, and in particular to negotiate the Verifier identities supported by each peer. These
extensions are included in the ClientHello and ServerHello messages.</t>
        <section anchor="client-hello-1">
          <name>Client Hello</name>
          <t>To indicate the support for passing Attestation Results in TLS following the
Passport Model, clients include the results_proposal and/or the results_request
extensions in the ClientHello message.</t>
          <t>The results_proposal extension in the ClientHello message indicates the Verifier
identities from which the client can relay Attestation Results. The client sends the Attestation Results in an
<tt>Attestation</tt> handshake message after the <tt>CertificateVerify</tt> message.</t>
          <t>The results_request extension in the ClientHello message indicates the Verifier
identities from which the client expects the server to provide Attestation
Results in an <tt>Attestation</tt> handshake message sent after the CertificateVerify.</t>
          <t>The results_proposal and results_request extensions sent in the ClientHello each
carry a list of supported Verifier identities, sorted by preference.  When the
client supports only one Verifier, it is a list containing a single element.</t>
          <t>The client <bcp14>MUST</bcp14> omit Verifier identities from the results_proposal extension in
the ClientHello if it cannot respond to a request from the server to present
Attestation Results from a proposed Verifier, or if the client is not configured
to relay the Results from the proposed Verifier with the given server. If the
client has no Verifier identities to send in the ClientHello it <bcp14>MUST</bcp14> omit the
results_proposal extension in the ClientHello.</t>
          <t>The client <bcp14>MUST</bcp14> omit Verifier identities from the results_request extension in
the ClientHello if it is not configured to trust Attestation Results issued by
said verifiers. If the client does not act as a relying party with regards to
the processing of Attestation Results (as defined in the RATS architecture) then
the client <bcp14>MUST</bcp14> omit the results_request extension from the ClientHello.</t>
        </section>
        <section anchor="server-hello-1">
          <name>Server Hello</name>
          <t>If the server receives a ClientHello that contains the results_proposal
extension and/or the results_request extension, then three outcomes are
possible:</t>
          <ul spacing="normal">
            <li>
              <t>The server does not support the extensions defined in this document.  In this
case, the server returns the EncryptedExtensions without the extensions
defined in this document.</t>
            </li>
            <li>
              <t>The server supports the extensions defined in this document, but it does not
have any trusted Verifiers in common with the client. Then, the server
terminates the session with a fatal alert of type "unsupported_verifiers".</t>
            </li>
            <li>
              <t>The server supports the extensions defined in this document and has at least
one trusted Verifier in common with the client.  In this case, the processing
rules described below are followed.</t>
            </li>
          </ul>
          <t>The results_proposal extension in the ClientHello indicates the Verifier
identities from which the client is able to provide Attestation Results to the
server.  If the server
wants to request Attestation Results from the client, it <bcp14>MUST</bcp14> include the
results_proposal extension in the EncryptedExtensions. This results_proposal
extension in the EncryptedExtensions then indicates what Verifier the client is
requested to provide Attestation Results from in an <tt>Attestation</tt> handshake
message sent after the <tt>CertificateVerify</tt> message.  The value conveyed in the
results_proposal extension by the server <bcp14>MUST</bcp14> be selected from one of the
values provided in the results_proposal extension sent in the ClientHello.</t>
          <t>If none of the
Verifier identities proposed by the client (as indicated in the results_proposal
extension in the ClientHello) match the server-trusted Verifiers, then the
results_proposal extension in the ServerHello <bcp14>MUST</bcp14> be omitted.</t>
          <t>The results_request extension in the ClientHello indicates what Verifiers the
client trusts as issuers of Attestation Results for the server. With the
results_request extension in the EncryptedExtensions, the server indicates the
identity of the Verifier who issued the Attestation Results carried in the
<tt>Attestation</tt> handshake message sent after the CertificateVerify by the
server. The Verifier identity in the results_request extension <bcp14>MUST</bcp14> contain a
single value selected from the results_request extension in the ClientHello.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>TBD.</t>
      <section anchor="sec-guarantees">
        <name>Security Guarantees</name>
        <t>We note that as a pure cryptographic protocol, attested TLS as-is only guarantees that the Identity Key is known by the TEE. A number of additional guarantees must be provided by the platform and/or the TLS stack,
and the overall security level depends on their existence and quality of assurance:</t>
        <ul spacing="normal">
          <li>
            <t>The Identity Key is generated by the TEE.</t>
          </li>
          <li>
            <t>The Identity Key is never exported or leaked outside the TEE.</t>
          </li>
          <li>
            <t>The TLS protocol, whether implemented by the TEE or outside the TEE, is implemented correctly and (for example) does not leak any session key material.</t>
          </li>
        </ul>
        <t>These properties may be explicitly promised ("attested") by the platform, or they can be assured in other ways such as by providing source code, reproducible builds, formal verification etc. The exact mechanisms are out of scope of this document.</t>
      </section>
      <section anchor="freshness-guarantees">
        <name>Freshness Guarantees</name>
        <t><cref> TODO: Discuss freshness guarantees provided by secret derivation from
the TLS main secret and message transcript. Differences between Background Check and Passport mode.
</cref></t>
      </section>
      <section anchor="security-of-reattestation-after-extended-key-update">
        <name>Security of Reattestation After Extended Key Update</name>
        <t>Reattestation relies on the assumption that both peers have derived the same
<tt>Main Secret N+1</tt> during the preceding EKU exchange. EKU by itself does not
guarantee that the peers transitioned to a consistent key state in the presence
of an active attacker. Deployments that require stronger guarantees will have use an
authenticated transition mechanism discussed in <xref target="I-D.ietf-tls-extended-key-update"/>
(e.g., post-handshake client authentication or Exported Authenticators) to
detect key-schedule divergence before relying on reattestation results.</t>
      </section>
    </section>
    <section anchor="priv-cons">
      <name>Privacy Considerations</name>
      <t>In this section, we are assuming that the Attester is a TLS client, representing an individual person.
We are concerned about the potential leakage of privacy sensitive information about that person, such as the correlation of different connections initiated by them.</t>
      <t>In background-check mode, the Verifier not only has access to detailed information about the Attester's TCB through Evidence, but it also knows the exact time and the party with whom the secure channel establishment is attempted (i.e., the RP).
The privacy implications are similar to online OCSP <xref target="RFC6960"/>.
While the RP may trust the Verifier not to disclose any information it receives, the same cannot be assumed for the Attester, which generally has no prior relationship with the Verifier.
Some ways to address this include:</t>
      <ul spacing="normal">
        <li>
          <t>Client-side redaction of privacy-sensitive evidence claims,</t>
        </li>
        <li>
          <t>Using selective disclosure (e.g., SD-JWT <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/> with EAT <xref target="I-D.ietf-rats-eat"/>),</t>
        </li>
        <li>
          <t>Co-locating the Verifier role with the RP,</t>
        </li>
        <li>
          <t>Utilizing privacy-preserving attestation schemes (e.g., DAA <xref target="I-D.ietf-rats-daa"/>), or</t>
        </li>
        <li>
          <t>Utilizing Attesters manufactured with group identities (e.g., <xref target="FIDO-REQS"/>).</t>
        </li>
      </ul>
      <t>The latter two also have the property of hiding the peer's identity from the RP.</t>
      <t>Note that the equivalent of OCSP "stapling" involves using a passport topology where the Verifier's involvement is unrelated to the TLS session.</t>
      <t>Due to the inherent asymmetry of the TLS protocol, if the Attester acts as the TLS server, a malicious TLS client could potentially retrieve sensitive information from attestation Evidence without the client's trustworthiness first being established by the server.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="tls-extensions">
        <name>TLS Extensions</name>
        <t>IANA is asked to allocate four new TLS extensions, evidence_request,
evidence_proposal, results_request, results_proposal, from the "TLS
ExtensionType Values" subregistry of the "Transport Layer Security (TLS)
Extensions" registry <xref target="TLS-Ext-Registry"/>.  These extensions are used in the
ClientHello and the EncryptedExtensions messages. The values carried in these
extensions are taken from TBD.</t>
      </section>
      <section anchor="tls-alerts">
        <name>TLS Alerts</name>
        <t>IANA is requested to allocate a value in the "TLS Alerts"
subregistry of the "Transport Layer Security (TLS) Parameters" registry
<xref target="TLS-Param-Registry"/> and populate it with the following entries:</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD1</t>
          </li>
          <li>
            <t>Description: unsupported_evidence</t>
          </li>
          <li>
            <t>DTLS-OK: Y</t>
          </li>
          <li>
            <t>Reference: [This document]</t>
          </li>
          <li>
            <t>Comment:</t>
          </li>
          <li>
            <t>Value: TBD2</t>
          </li>
          <li>
            <t>Description: unsupported_verifiers</t>
          </li>
          <li>
            <t>DTLS-OK: Y</t>
          </li>
          <li>
            <t>Reference: [This document]</t>
          </li>
          <li>
            <t>Comment:</t>
          </li>
        </ul>
      </section>
      <section anchor="tls-handshake-message-types">
        <name>TLS Handshake Message Types</name>
        <t>IANA is requested to allocate a new value in the "TLS HandshakeType" registry
of the "Transport Layer Security (TLS) Parameters" registry <xref target="TLS-Param-Registry"/>,
as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD</t>
          </li>
          <li>
            <t>Description: attestation</t>
          </li>
          <li>
            <t>DTLS-OK: Y</t>
          </li>
          <li>
            <t>Reference: [This document]</t>
          </li>
          <li>
            <t>Comment: Used to carry attestation Evidence or Attestation Results in the TLS handshake</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>We would like to thank Paul Howard, Arto Niemi, and Hannes Tschofenig for their contributions to earlier versions of this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-tls-rfc8446bis">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <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.

   This document updates RFCs 5705, 6066, 7627, and 8422 and obsoletes
   RFCs 5077, 5246, 6961, 8422, and 8446.  This document also specifies
   new requirements for TLS 1.2 implementations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </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>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>
        <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-tls-extended-key-update">
          <front>
            <title>Extended Key Update for Transport Layer Security (TLS) 1.3</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Michael Tüxen" initials="M." surname="Tüxen">
              <organization>Münster Univ. of Applied Sciences</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Steffen Fries" initials="S." surname="Fries">
              <organization>Siemens</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date day="1" month="November" year="2025"/>
            <abstract>
              <t>   TLS 1.3 ensures forward secrecy by performing an ephemeral Diffie-
   Hellman key exchange during the initial handshake, protecting past
   communications even if a party's long-term keys are later
   compromised.  While the built-in KeyUpdate mechanism allows
   application traffic keys to be refreshed during a session, it does
   not incorporate fresh entropy from a new key exchange and therefore
   does not provide post-compromise security.  This limitation can pose
   a security risk in long-lived sessions, such as those found in
   industrial IoT or telecommunications environments.

   To address this, this specification defines an extended key update
   mechanism that performs a fresh Diffie-Hellman exchange within an
   active session, thereby ensuring post-compromise security.  By
   forcing attackers to exfiltrate new key material repeatedly, this
   approach mitigates the risks associated with static key compromise.
   Regular renewal of session keys helps contain the impact of such
   compromises.  The extension is applicable to both TLS 1.3 and DTLS
   1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-extended-key-update-07"/>
        </reference>
        <reference anchor="I-D.ietf-tls-pake">
          <front>
            <title>A Password Authenticated Key Exchange Extension for TLS 1.3</title>
            <author fullname="Laura Bauman" initials="L." surname="Bauman">
              <organization>Apple, Inc.</organization>
            </author>
            <author fullname="David Benjamin" initials="D." surname="Benjamin">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Samir Menon" initials="S." surname="Menon">
              <organization>Apple, Inc.</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Apple, Inc.</organization>
            </author>
            <date day="4" month="September" year="2025"/>
            <abstract>
              <t>   The pre-shared key mechanism available in TLS 1.3 is not suitable for
   usage with low-entropy keys, such as passwords entered by users.
   This document describes an extension that enables the use of
   password-authenticated key exchange protocols with TLS 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-pake-00"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6960">
          <front>
            <title>X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP</title>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="M. Myers" initials="M." surname="Myers"/>
            <author fullname="R. Ankney" initials="R." surname="Ankney"/>
            <author fullname="A. Malpani" initials="A." surname="Malpani"/>
            <author fullname="S. Galperin" initials="S." surname="Galperin"/>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document specifies a protocol useful in determining the current status of a digital certificate without requiring Certificate Revocation Lists (CRLs). Additional mechanisms addressing PKIX operational requirements are specified in separate documents. This document obsoletes RFCs 2560 and 6277. It also updates RFC 5912.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6960"/>
          <seriesInfo name="DOI" value="10.17487/RFC6960"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="I-D.fossati-tls-attestation">
          <front>
            <title>Using Attestation in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Paul Howard" initials="P." surname="Howard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Arto Niemi" initials="A." surname="Niemi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="30" month="April" year="2025"/>
            <abstract>
              <t>   The TLS handshake protocol allows authentication of one or both peers
   using static, long-term credentials.  In some cases, it is also
   desirable to ensure that the peer runtime environment is in a secure
   state.  Such an assurance can be achieved using attestation which is
   a process by which an entity produces evidence about itself that
   another party can use to appraise whether that entity is found in a
   secure state.  This document describes a series of protocol
   extensions to the TLS 1.3 handshake that enables the binding of the
   TLS authentication key to a remote attestation session.  This enables
   an entity capable of producing attestation evidence, such as a
   confidential workload running in a Trusted Execution Environment
   (TEE), or an IoT device that is trying to authenticate itself to a
   network access point, to present a more comprehensive set of security
   metrics to its peer.  These extensions have been designed to allow
   the peers to use any attestation technology, in any remote
   attestation topology, and mutually.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fossati-tls-attestation-09"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek USA</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="6" month="September" year="2024"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-31"/>
        </reference>
        <reference anchor="I-D.ietf-rats-daa">
          <front>
            <title>Direct Anonymous Attestation for the Remote Attestation Procedures Architecture</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Christopher Newton" initials="C." surname="Newton">
              <organization>University of Surrey</organization>
            </author>
            <author fullname="Liqun Chen" initials="L." surname="Chen">
              <organization>University of Surrey</organization>
            </author>
            <author fullname="Thanassis Giannetsos" initials="T." surname="Giannetsos">
              <organization>Ubitech</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <date day="3" month="September" year="2025"/>
            <abstract>
              <t>   This document maps the concept of Direct Anonymous Attestation (DAA)
   to the Remote Attestation Procedures (RATS) Architecture.  The
   protocol entity DAA Issuer is introduced and its mapping with
   existing RATS roles in DAA protocol steps is specified.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-daa-08"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-selective-disclosure-jwt">
          <front>
            <title>Selective Disclosure for JWTs (SD-JWT)</title>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete</organization>
            </author>
            <author fullname="Kristina Yasuda" initials="K." surname="Yasuda">
              <organization>Keio University</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="29" month="May" year="2025"/>
            <abstract>
              <t>   This specification defines a mechanism for the selective disclosure
   of individual elements of a JSON data structure used as the payload
   of a JSON Web Signature (JWS).  The primary use case is the selective
   disclosure of JSON Web Token (JWT) claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-selective-disclosure-jwt-22"/>
        </reference>
        <reference anchor="I-D.ietf-teep-architecture">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Architecture</title>
            <author fullname="Mingliang Pei" initials="M." surname="Pei">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Dave Wheeler" initials="D. M." surname="Wheeler">
              <organization>Amazon</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>A Trusted Execution Environment (TEE) is an environment that enforces the following: any code within the environment cannot be tampered with, and any data used by such code cannot be read or tampered with by any code outside the environment.  This architecture document discusses the motivation for designing and standardizing a protocol for managing the lifecycle of Trusted Applications running inside such a TEE.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teep-architecture-19"/>
        </reference>
        <reference anchor="TPM1.2" target="https://trustedcomputinggroup.org/resource/tpm-main-specification/">
          <front>
            <title>TPM Main Specification Level 2 Version 1.2, Revision 116</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2011" month="March"/>
          </front>
        </reference>
        <reference anchor="TPM2.0" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library Specification, Family "2.0", Level 00, Revision 01.59</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2019" month="November"/>
          </front>
        </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>
          </front>
        </reference>
        <reference anchor="TLS-Param-Registry" target="https://www.iana.org/assignments/tls-parameters">
          <front>
            <title>Transport Layer Security (TLS) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="iana-media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="iana-content-formats" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>CoAP Content-Formats</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="I-D.acme-device-attest">
          <front>
            <title>Automated Certificate Management Environment (ACME) Device Attestation Extension</title>
            <author fullname="Brandon Weeks" initials="B." surname="Weeks">
         </author>
            <author fullname="Ganesh Mallaya" initials="G." surname="Mallaya">
         </author>
            <author fullname="Sven Rajala" initials="S." surname="Rajala">
         </author>
            <date day="7" month="December" year="2025"/>
            <abstract>
              <t>   This document specifies new identifiers and a challenge for the
   Automated Certificate Management Environment (ACME) protocol which
   allows validating the identity of a device using attestation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-acme-device-attest-08"/>
        </reference>
        <reference anchor="FIDO-REQS" target="https://fidoalliance.org/specs/fido-security-requirements/">
          <front>
            <title>FIDO Authenticator Security Requirements</title>
            <author initials="B." surname="Peirani" fullname="Beatrice Peirani">
              <organization/>
            </author>
            <author initials="J." surname="Verrept" fullname="Johan Verrept">
              <organization/>
            </author>
            <date year="2021" month="November"/>
          </front>
        </reference>
        <reference anchor="RA-TLS" target="https://arxiv.org/abs/1801.05863">
          <front>
            <title>Integrating Remote Attestation with Transport Layer Security</title>
            <author initials="T." surname="Knauth" fullname="Thomas Knauth">
              <organization/>
            </author>
            <author initials="M." surname="Steiner" fullname="Michael Steiner">
              <organization/>
            </author>
            <author initials="S." surname="Chakrabarti" fullname="Somnath Chakrabarti">
              <organization/>
            </author>
            <author initials="L." surname="Lei" fullname="Li Lei">
              <organization/>
            </author>
            <author initials="C." surname="Xing" fullname="Cedric Xing">
              <organization/>
            </author>
            <author initials="M." surname="Vij" fullname="Mona Vij">
              <organization/>
            </author>
            <date year="2018" month="January"/>
          </front>
        </reference>
        <reference anchor="DICE-Layering" target="https://trustedcomputinggroup.org/resource/dice-layering-architecture/">
          <front>
            <title>DICE Layering Architecture Version 1.00 Revision 0.19</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1126?>

<section anchor="document-history">
      <name>Document History</name>
      <section anchor="draft-fossati-seat-early-attestation-00">
        <name>draft-fossati-seat-early-attestation-00</name>
        <t>Initial version of draft-fossati-seat-early-attestation.</t>
        <t>This version represents a major architectural change from <xref target="I-D.fossati-tls-attestation"/>.
The key changes include:</t>
        <ul spacing="normal">
          <li>
            <t>Removed certificate extension mechanism for conveying attestation Evidence</t>
          </li>
          <li>
            <t>Introduced new <tt>Attestation</tt> handshake message for carrying CMW (Conceptual Message Wrapper) payload</t>
          </li>
          <li>
            <t><tt>Attestation</tt> message sent after CertificateVerify when server is attester</t>
          </li>
          <li>
            <t><tt>Attestation</tt> message sent after CertificateVerify message when client is attester</t>
          </li>
          <li>
            <t>Removed use cases section</t>
          </li>
          <li>
            <t>Removed KAT (Key Attestation Token) and PAT (Platform Attestation Token) references, using CMW directly</t>
          </li>
          <li>
            <t>Nonces (client and server) and attester's TLS identity public key are included in TEE-signed Evidence/AttestationResults within CMW</t>
          </li>
          <li>
            <t>CertificateVerify remains unchanged from baseline TLS (no proof-of-possession needed)</t>
          </li>
          <li>
            <t>Added session resumption discussion (resumption <bcp14>MUST</bcp14> be rejected if reattestation is required per local policy)</t>
          </li>
          <li>
            <t>Added reattestation</t>
          </li>
        </ul>
        <!-- Start of Appendices -->

</section>
    </section>
    <section anchor="design-rationale">
      <name>Design Rationale</name>
      <t>This appendix explains the rationale for introducing a dedicated <tt>Attestation</tt>
handshake message, instead of embedding attestation in an extension inside
the TLS <tt>Certificate</tt> message. That approach fails to meet key security,
and privacy requirements.</t>
      <section anchor="requires-certificate-authentication">
        <name>Requires Certificate Authentication</name>
        <t>TLS 1.3 supports authentication modes where no <tt>Certificate</tt> message is sent:</t>
        <ul spacing="normal">
          <li>
            <t>PSK-based authentication</t>
          </li>
          <li>
            <t>PAKE-based authentication <xref target="I-D.ietf-tls-pake"/></t>
          </li>
        </ul>
        <t>A design that relies on a <tt>Certificate</tt> message extension cannot operate in
these cases. In contrast, a dedicated <tt>Attestation</tt> handshake message works
regardless of authentication mode, making it compatible with the full TLS
authentication spectrum.</t>
      </section>
      <section anchor="reattestation-not-fully-supported">
        <name>Reattestation Not Fully Supported</name>
        <t>TLS allows Post-Handshake client authentication <xref section="4.2.6" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>
but provides no mechanism for Post-Handshake server authentication. As a result, a design
that embeds attestation inside the <tt>Certificate</tt> message would allow only the client and
not the server to refresh its attestation. This is insufficient for deployments that
require periodic server reattestation.</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19e3fbxrXv//gUOPIfkVySltwkJ1Eep7IkN4pfqqQ0J6ur
tYfEkEINAjwYUAqr4/tZ7me5n+zu17wAUKIcN2m6otXVmCQwjz179mv2/s1w
OEyavCn0fvqdyctZetA02jSqyasyzcv0olalWVR1kz5XK12n53qyrPNmlW5f
PD/fSVWZpUeqUbNazW959ggfTtR4XOur/U4Xz88f4QNJVk1KNYeRZLWaNsNp
ZQw8NDRaNUOt6mI1VP7N4e5eYpbjeW4MfGpWC3jv5PjiaTJRjZ5V9Wo/NU2W
JPmi3k+bemmax7u7n+8+TlSt1b4bW3Jd1W9ndbVc7ONAkrd6Bd9k++lf0qCz
QXp2cHE+wCfSvyYJfFtmr1VRldDpSptkke8naVpPJzozzaqQb9O0qSbBP/My
02VjvzBAqFpPjfu8mkcfmzqfuIcn1XwO77pf87LIS9+N/rEZFrlphtDIuCrg
sWH18HfwC5B0rhYLWFh+NrnS5VLjYGXOW+fHBxdb2AZRcOt7IAeywR/xZ/x+
rvICvsdF+EOum+moqmf4vaonl/D9ZdMszP6jR/gYfpVf6ZF97BF+8WhcV9dG
P8IGHuGLs7y5XI7h1ZWqq3L6aJPFxvcKhR+DLvn9Ebc3yquNWtroodFlMy+2
kkQtm8uqBmoNoX/6y0ug7Q+j9PxST6e6tl8z2/6AA2r/BHRQZf4Pahc4tGyW
eWN/00xcmQiS7Q8z/GoEy520ez0ZpS/yS1VMtIq7PanKZdP5Le73oJ6nz/N5
3uis1Tm9PbJv/0HV897eYc5H2lwugPF1a9bVDH7o/rrpAPj9kXt/7RAuRulT
XrZ4ABeX1VyZ9m9x98/zEojc6rmhF0fCC38o6Blk3L6uz3SWrVod5/Vyrgpt
rlUd/x53/rJ6m6tW329HTfD26xrf/kOJD/Lcy6qew+tXtFdPhkfEHcOmMEOQ
Mp99/PGn4xzGBZ/3fh8+UKvGDOdmNryuFezuyfwaJGA5DRs7e3r46eef7u6n
1cQs+PPnv//9x/spvYtbVhq0ewQ7DTYHvFhkQ9pGnZ5hN0k78K/Or5lS8iv8
K/y1wo0Ge7HQExzlMMvNpKjMstbDv19DiybD/0aE0HpBYwWGmjTwINDCfgXP
XZy+2Bs93ieaN6qeaWjEig3SBToDKi+WDYg6EoQkrmptqmU90Y+axXwIy1QO
zUJP8mk+YdHBzbGyhB7SF/BIeh4+kj7XV7pIH6d/1jWqpRRGAbpDX+X8ae9T
asPJFfpzrIZsAy3z+NJDO0CWxfRQBjJwH/qFWaaPd/f2eKqPR7s/aapFPq5V
vbpttjKmUxDCyEzpiypbFhq2Fb0ZE2GQPlXzvFilWzCwrYHQZHc3IMTu3uiT
zz8EKV5WV3o+BlsDqIENgoIeHoMyPNMzUIdoBJwcvDwYIQuDjtSltRWGV6pY
ku7EN04VmC997yzwB93AYqLOVaUaznWWqyE2YeS54Bv70AQ6AW095H1nH5xU
wM++xUetp4S91WQOGwAINdGy65A4T0+OXg3Pjv903r/Q0zyrVFFA5xNN64tL
aehr2FZs6Qxr/T/LvNZkR0Sru4WtpwewEvATLmIV2G5nwVtbPUsWrBmJyiej
9FTnYAk6SSzS8gmIBDBpdPvn1vvfjnDz1HrRtN7/trpUZfRbhwUe44Y4OxjC
mvbTSdU/5ldsmozNo73PgA93P/ns09+H1AAVrcGcJXY70/Oq0ZHBeg3mxlpL
dwP6gCp5VuIjremJFot/a737AgyPRoPhV7defpFPLhVsstavrdfPR+nhpXpb
q7Gqm/bynFfzUsHUep5oNfN8BFu6/frzPPyy9cbhKP1vIGfrlUOdAT9Ev3Tn
++f87+25VqVyXzMLfKvKJYohEAKfwddHJ4fHQ1oYtHvfVzJmuAMLaSXSNdHm
wc5S2xmYOf6xQAns7gayb7T3QUTft8sCZ/x4N0mGw2EKDN3UatIkycWlJkcF
tktmYDV1uqgrcD+qIgUZAcY49SxbHUdUTVPwZKDfdFwBByw0jDtdkjdIXD8Z
pODqzEDpguSfgKmC76rCjJKTEtyYuU4nymgzSPMmzaH1wlRppg3s8jHoiKZK
Qe4iPZpL1cD/aeohrZfQCryry6sc7F8UMPg2qFSVkszS1LseJedLUHew95WB
ZlDEQX9lOtapAmKDcslksDXvVhXu1kvYGTQoJMJEG5OOV/IttIETARkHP2VL
+DE9vsphctCBGldgU+cN2CRTHrcqgTYwbBDg8AYOYGlocuBe1SqHf19fanqC
HpeWoedptQQnuWdaF5fwKzhoS5o6EGxS52Nt6Lk6h3/AuriVc9rLYJ+NLPHe
6PfBMkvHTHV4YgwOJ9KlmroXWisP3i5NoY90sKLYn4yTmzUB0SZqQT3xKIF+
2FXYgCXmIDW0gDgz0HnTXPgnRde7qFSGrFDi20Qky/nHPwK1uKGAQ7Yvjo93
BsirMJKT6iJlVclzh3GC/saWcFJ+qtqtJM611A32DNxD/LCo8rIZ4E8L2PvY
h0rnoKrR54ZvLpHsV7BousGpWm2aghIH6UWrAY0TSyOpoIVwrS4VvDrWuqQN
MSthXjgG3IZuJ1AbyEyqXEUEBDlyWVZFNVsNiDTwc886NdVCnsFgjDQFbc/T
+bJZQlerEUuIeZ5lhU6SBynqOFoybCBJerTc9tnBTnpzM3Q+wbt3RN1LvdE+
0u+xjzSaZLhW2AnJZ1il5hL0mTHMwm5b/Xr3Dj+k6w+/J3C1nAv07t2/8BbJ
DbEzqEhwFUQjgQ1MdM7ni4JsTaeZWEuKLw0jKfIJrq9okloXNBnkJvyaWQxG
NgaNlKW4FMDp5QwYzg0L9yFpr+SPMOqS2rlSwDXwG3SY6UVRreBl3E4wlnrW
FmxuX2KP23o0Gw2A+uxzIuXp3+D78L+dZ/zu3Q72tU5A6B8XOLcGtHooK1DN
zcrKwCpZ7g3HIs6DcBoqOqsTxygtWDHiSzMNhiG0AdtSLcyy4NczPc2xI1gP
GOlkfg37nNbCGrj4uteKQJFQSpxpaAhXVq2QZ0l5290SPue32RzYSc1A+fF4
I48TNyz2ZNgMAZNkeK1W6Tbs6CtdD6uyWHHAmeVauj0pcuJF+Iqf2WnvUZl+
rbIcP8NLPRsZmHhMRCDTPor6YtPCoW3Ci9gVXtRAdjZreMkw1LvQFO9FnqKf
Se6RjsCZLipkUF5pEAYLJLbMfKwmFJIus+HkUk/e0jAWYP2Qx+E7HqD8sLJP
1vBck1A36Sejx/TeJ6M9HEEoyT2zZLpReWHftVLbu8oG2AEbubkJI+81L3v0
2CixE2OZe+0mSUad3dbQFcqMAjzgYmU3Ma5JgUGCQcpNi9wz8F0NawabXOGb
KrtSIBlm4HonycP0JJYV0A0uIBta0AIIcrMCqTmnHoGbymYEbznHNqtg6UAZ
pbxSKCvAlCuEK4Y0IHg1A/uF9RxMNjOyvgWKRTHnGvRLr4F0MCPg8prIOa0V
SJ4lOwJuAAZHcEJSWCuTM7vU8E/snFQlsZkfxkfGya0BzmqivdnwUcpagwQf
bwKZGpAd+zUkCd+W1TXazmCpV/RfbMDvSLscJiHzQZYDdFLJnERjhZUfF7m5
1BlO4MCPjwjkSVlqFlrgjYLMHYEQAD1hQHWwl4CKbras3Xrh4zrDic3x9MDK
N5hFjRsHDQNg3YkGMTRlJUV2Ach0UD7GChFvBthhzGEq+DRaTKQZJktsvt+2
GqFFdFiVV0hL3DlIhwtwdXL+nRkbFimD5UIBC17I3MnmKYa6cmichAepkmqi
xtjfilqCSU/0ojGBqE3cNk0/7u5N6m5aodQh4QUj4YVcGt6oTThp2Ak3++mV
WaiJ/mprd+sdvA/rd5KJSfZM41HdybOd/WQ/PQDvbbVoqlmtFsDSZMJQq6Ar
yAOcxkZpn32QLWtRKUnkZI7ScP8HfIs0AwmFrRSk25xcLK09CaRX5CgU+VST
UwitJtiWkAlFiWYNbw2yk2fcI/wjffHd+QUuBv7w36NPdj8PeeYjNMAya6Li
lHFZYFAY4QXxV4qql+6YGtTF8TGuxsmz4eEAuxmeIw1tn2xNEZmnbHkA47JC
EluGdRLJtAUHtskUpwaHJ0fSJvwL1hDWpvSt1aSD6UFsLGxA3sK50xRWZCCk
wFpg4yxgaZpkO17kS2Uud9zSLmEf08IP0jGIG7bFY6uLuQ1kiMnBbIURh6oc
7WJd9zETRVSZnXBr5IE0CczsSsy2tSZz+gLmRCGEMT43xXgfO00m3eLet6AN
UI+zSysw7WaAsdLuwUXGU1x4A1lja8D/TV++on+fHf/pu5Oz4yP89/k3B8+f
u38k8sT5N6++e37k/+XfPHz14sXxyyN+Gb5No6+SrRcHP2yx3bD16vTi5NXL
g+dbnU1LBLaGQoPrpkm/mSTS5k8OT//f/937GLTvf5w9PXy8t/c5qGP+8Nne
f34MH65he3JvaB3JR6DIKgEdokEqoTYsCvTV8waIShaDuUSFAOuOa/vwL0iZ
v+6nX44ni72Pv5YvcMLRl5Zm0ZdEs+43nZeZiD1f9XTjqBl936J0PN6DH6LP
lu7Bl1/+Fx6Xp8O9z/7r6wTl/SvYmVe5vmZ+AWcBGHi6LCdiJc4q+L+cZCC8
+Ja1ciAMM2Ix/SPrOdxcyOZsP5a8poVWaIWv53SycMgJTNHMdcExJ5ShczIO
W/qaQ18sNYWJQEDk5K2KAUQOLNqPyvrC3vXMWK6xTnOhfXbuZQTWSaW+xCj3
TgAeW4DUtH6Fd6tgekvqjIxY+g2Gj89ZoUsSyB4hWXf0En0bNPgaHhXo12qS
E5Fd28F6VGPsnSlnnXRTcWslGlPQwWpANuMKhachrwoemtbVnOiQwdobVM+5
CaXcOvUFLRERxVEEJ2qaU5jA9j4GZ1lr7/mEupd2Y2LdHPpZlj/pEITCgla0
9UbScD59/tcErRdwWRNZ+8MX36fbh2x4oKf0gr2u9PsaxUK943098dzQBnoQ
ngBh61dmFPbWMvDFazJ+/Kp9StJRxS3Pq6VaUHox51NmDS7P1bIAr9WGkXNL
WHCEqql45eArcTwhMPSopX/ouhpmamUfgu2ag+2ImlWBplYcVQJ7PbsGcTwC
K+nV0at9VjlI7B2yL+AjBjpytm2t+R+7jKF/Gc/Qug6yLhgmt8Kigc3MVgMR
D749PBiK2x+QDK3c77WXfczotZ6xRestccMhxHgJyX+Ns60wdUnPKZgzUzKu
6RJ0hN9sSwXef6O95IgkX6zQt23kBo3GR2w5jjWtTfjWDiq3aw3dgAKKO3D8
k9PBG4X3kBvdORyNOwjcfWM7Z44s8tklbED8f2nCx46iqQdN+PGTE+yjLRiO
ScDyz+cocOZgVTs7ldgHJ8ab2LpazjJlc5Q1Am1Jg+xWTcG6G6Yv9axqch6J
d5v34ftrai+ICKFtoLKMx3NIFuU3QLiKbOI0PS7J7NLZsX9FoirEnaX0xNaw
uFAhIcj6BcmF64J5Zhx60FlfWIkeZpEHC4txZFgWb8F34jpoFZYwpTfBvn7T
fQyoTjlsHITGmSJTT1RdczhlY8lnzWBuFts0YXyhFYUhlYT8D3u+xQZTDMjj
ZK0PyePTNQoD3uVu/TvTMWLx57UNjsNjHWKhEgTjNb+SLJpn0WeWS2EE3mgN
cppt7GG1MBg+5IM0E0xs4rw2KxNwYtiXmYC7vizQCzcUpUaKDcI+YI5+vN57
VtMpeBtdasUTaEUc/DYQr9xtomBL4lFZRZEyG+lja2mZo3NDEVBVut17fUl+
WAKbIe/b0X7ApNEpoMRDD3cob8tw1j4ak+Kgybf164QuFtpu1r7BrI21x6mw
I1tUmWuUALkBn31ZzqsMd042gn0OQ4TmMG404N1VoMeUZ266FBpOeiiKTA2c
VxTWYCN1HW0HLwtApRrM5URvm/kW9+NUq0YYB+cyCL1VKwuMFQUuGA9vJk4w
WR0WSiQbzSUSw9O05dymDmUaRjOS+5g0rGethQ0UfArDv/RnQTpxv/m28kC3
ZM6SApKCfxXtNTQFrS7AMEAiz1B0WWQUhcDBGVs0/XuRjAxs5IkL16aHGK5N
XlSZLuQsGwTwCMQAPXhqQ7j0ALCBmxJwPvBt4H3T6QrasD+CVUdaHD7PwOSv
Sx+gcNESK9tYjfXJSTAicLg6lxNqHS0Afu5bhGDxkTvoMAhthVXitEw2uJel
qigaytYqn2kmd+kKIX4YgJafMLUJP8NqEAsmaPeKRWvZNRyEbVE8mG5MPxh9
0kuPEsOdGR6LVXUmh2jWlhYXImzPjoU8aukV/Rvc17jSFNiWZkLHC9wPzEXv
BPGGh7Q37bmHO0ukkBD9xDEn99OOGKCJc6ok5IY7QeIkNm4ZG0uSMooBmQuO
haFPhCdnKEgS5MQOGwUksxQLHFJcHCJEXk6KZaa9TxpGlnibAtN39mga7FH8
vmefLhdIyXOiAUuovp3rPK+Y3N69CINkyh1S2VOSWxlxZKPF/liSD7nFbaWt
bBNGgkhYL7fRZk0ykPgTPBV0FOnj6e28T8ZwpgSdBII7jIlW0Zrd2qLw5J/F
+qOhw0h0blVj3xYZpefLsQE1JZo0IDPHTHLjghtkV7KKP/QOz5/5WxmFdaBq
TJtGH6e0Qp/Gjqe8FNmB9bMyzh95tuXtHfTmJXLiNXFhEOoKT7Ala8zRxNho
zEShsUUkotmRMVeu0nJJmYnVFEtVhCyxMcEhOUyvskczXivQYfcqDNOQAE0w
K9uQXZFgBhYdaVqhcKlId4KLBwKmIeMGYxwScrJR4GD/X+Xq7iUAsnL7Qz5X
b7mZuaFB0irL4eJYgyuVU/C6vXLWGZZTHmtNDbwo6owlsUxJhiNurM6c8EBA
TE9nn8XHqkARIGiDsWqyXcF1btqhb9LVKng0iR8YOJFkMKjQ8jcwD5U8t0Ds
YbSNG6UO726vqNjPrpaNwcCbNMLxejrR8qtnkm1254Lox8CSY4eDwhz26BkR
qDA+gBQyJXzsviBCDPhlaQokpJWOA87lYBHpTGkWbBhahu1GqQY0B5HpqPXR
AE7wEBu/DiJmh+7MhOV2QAyaGnQWblZ8KJ/oEez1XFJ1muuKqpfIMmwfZVRY
iyODR5PYB3lxLgl7bX1GdzVtMGsrx/cHKasReG7ogxeSKkGmGh+kG4mjBeN1
wQoXhLt5cJsGESEWKWPjnfrM7tfQug6SOKJjhsG9LO6OaUaegxNUbgtyoVhk
tcVuuHfk1wUiExeItBaSMn2pKKJNYwvR9uKP13P/sjJydIopAv8H/ihhVoMc
Tm9cgu2jh3Lu1TU2mY+ioawpvoHVf/jINRkQevviydHOwP2y/fiTT3bo0zvP
DBfQzRcJfcvTCEYXPZTOzew1DuoLGXhwlIY/B0NYguv1+GPwXctZc/lFGv7B
e+NVw+6fnWnwJhfepNuu55HtdScYF/5RADOsBYp+xb9gqb6IfryT6MGA3n3R
Jtg6YlULBXoH65xeCyt9uTcaPf7b44+He1/bVqIxEVPc7KcPKBVBD3s2I6d2
f7V1+z4+t/w3okN35NNgGG9SUNBF5n0N3gyeaddx/BMUwt+ev3pJ4u/wyasz
SmkEefWPwD8kh5pfhWYD1anneUNHN5dVhYZQwvZT1IQkicruCp2m2FHpEx5o
Z7YdXrE1kzWCBV9pmaUc8EPtYHqPTThlIRET1J8wQI8uQZKzqPu8k7TPO0nu
551Q1Pag5ZR0Awd3OyWDrlcySCiOx4dScVQjJPoIRuA9ytvclM2cQwz2ttxD
MZjsSZYNL7ZPAp3pjt/h0YxPRWnFxhLJpODonp9dEPJfG5YB36HjrNGUAuWa
fscB7VYJec/RwFNbztD1BNLt6JhdVK/NlLu5kYpIDPJghK+f3VuNnLtGHnca
acKEnmReZWyqcPCR4qLBjvanYFxphNE6LHwpVsSSlJwlgbswgAErLb/KGrd/
palE7/u8SZcpLo8Dv14rTJ8I8xbxGOoao5CYPxAxu43EOSae5jU2AnYZFYbw
SffY2jjoHMBcR8kLzuNsORNo4ISixx00UoCUWt0uQVjb8DzQdCfB+D0dA+Lm
RVbmjq/xAK+b2rQ0cvTW4gtkNjA4Q7Np4LY2ay/3aj9XsAHolYXNMwCrz+2R
YSVfitrwCtEqBBo1ppqBmVrNqiW5dMGh4BovrKQwvz8F8LlZfHSL6alyNmf3
Na8UJROYOxxF71d/EG89fepT3EDcDG7RA0gKSmcIMrP6cqF9aZJMkw3RwJq9
NSl5w0hjN8x3/6BnbNIm7zkUS+7I3k7uNKmBQZHO4niFh/5AMgYBsTOi+AL5
FHiQiHsqcFhZdGyrCb2o+JApiHvt4GFogfaodlo+EdmzrWLxtMPFBXGqyQgU
sDCkq02WNDMy+TlQ2Bvis8fuk6qG/U2nG6B/smpO2oi5EZVDRxTa/Y7JB7an
KZFQGE6cWzxIkk3ihouMYSdotLVt/OlEd+V7mFBNGzZekjedffYmPnHxqyAx
mig8F9Rfkdimo22UI2jeyfmeC+5tu0I5PFDjDDHRq1lO6C7I+Ad4eK3Qw2YB
gbTBg1OJgrlKNyk4qcpxpThOzoK48fTJy5wcWkmcrObzZWkFGSm+SVEtO4nU
TZXMwGYIahAHKMLm16RBMQ2OhHScaJypRjFvIScBx8hK8ihREIX5mimTCEMv
dfAYrvsSZZfNBEmCahjPAd7nhD/ZYZv/sY2YJCj50r+FR23JMejY9H/T37nS
qtecXq8K7g1/Ain9mhLQH/rvnFH8WhWzqgbKzo38fLV2HEP5+7rj3m06B46+
/w1l+P3bCGcCk8Cpv8dAwr+rjd+/6cmveAcTkaXZvMuelYK5ENKA2byZm0AG
nHGI9d09ZtPXDMzmHu/fdITQO5jGQVi/fp9xPIV9j2UEG0ziS8uFafqXsOIA
4aYe/pXf/ls8swTHBcPrGbTdETeB+H1n90EwrOivsw86A/lrPNav+x7phBza
9T1DdAmKPRt2CJTzKWnEqAYLxA4+wPxIoQer0CV+ek+F7vS5COauzg4EY1fg
xXooBcViyBTwpY5opBSdbsQ9iQwGbk1a+rkUKI/ndgWaOAWa/jwKNCoJdSAF
rEUTJd9oHwvJDYfrCRCtafh8LdBpsRpNKltHxJN/BLzgSltqm47Ferl3HD5l
zySiF39W1SeHTb9pvrv/flnNJwuV/ttovvv3H+qbX7Hm/BdRko9DJSkKb72S
ZClCSnIDp7fHdb9TXQ5S1Y6zuehnX3tBDjKL5rYiasftXPipq2STlr89Akrg
iTsd/xf5FSPS4AFqsKg+VOPlfzpfgjDtV2trtRlXrqK61O0UksQl8VGJR8P+
J6Wnmwg/hjOm2w5zX0v3VP3pbar/Z9BUUiH9m492j79fQFP1rNS/jab61Wqa
fw0fzcItbOKbBTnL7+Ga/SS1EymAgc3CMr0yNDq8tNrnviojcSdGYNb9NJXR
m2K7kcpou4i9LX1Ib/FnVBm/+TYb//2yGuM33+Y33+aDKJfbfZo1xTFd9+Yw
QmN4ZZMLTHrzIDgbs8BLkq7AJ4SsS97eWpBmDxulZCqsQWuKlU/XX1eGth6r
KP1PTrxYm2jXc+TaGiudyn/z7OjpPVplpYdniOF5vz9o5PwUszbnB1TRdRUN
Kqgk4kNfOaLcpwwEW1VlT0DfTF7zy6/xvTc7AuPgHrSadvuNiR8ceZCLaLks
ThWVi0moT7IgU6XM1ayzt3Y733SFwFWyfXy4c/TNcUrsjURGhGWEGk2/CjId
zmneGzUYfjoiEg357e3RIN0SoiG+xtbOPdrb7R0gY3RvOrbfySbujmrSWemt
QbfB9hf0F6j70WgUaNKe2cUfv0ojHvlJEzCbTKD/7x4TaP19lUa8e2vyJfDz
0AmLngxMNJ7ObU2rTblsz8nt2vb2ot3V3klJsEnX5/Zx4ktE0Ti5Itlc6ASZ
moUa68L0chblavWtWAsKyMaGgqTgdjEUtuSzokIzTtmj9xKvDxGhwsLpI9NX
mRWQlL95I3mcZKuPXf3heJXYJB2fpoGpO4hWQN6K7FG87mH4HMmAI20vGBIq
cYRKt4IRbbmZu/HiogUJkfHkbC54a/wov9oj2Y5GMYi73WzDwFBe85Z5fUoj
ek1AIN8oczni7OwdHk5yzrhntlCKBf464psO8YMkGGLeFnvbWZsNZm0+yKyZ
ve6adWfjyrgCZolsC2Qdl8nZjosmhCoa5cnGaT+kD/t6swk9/izzu0UlR4AL
hxdwa8bYwOUUptEJoZgVXKaxYFCxniH4jDqj5ni8uViGkAseEyiRA7/eVuaq
Aanoc3PF6fZJVCdy0sg4DmyYJlPMqG2Pv6l1lPgr2alo61GtutR5hA3ZnOHE
nRmG1dictWfPIntQcBhsL967lLtnq+8EmuaJZCg3l4K+VrlEwJsHTf52KCnM
73qBRRmyL8hrxibC3EbgF5SsVWmLemnpYHdIKmKIYbM295nKz13pU04pRIjd
C2PEWZZYAUXQAmg8N5jc5s5RJ9WyoFcarTLXSO9QW2VhgjHI58H9yZk+L94y
HAKWgh9cI2ANtIlD6VSsMjJmw0gQvIWwJmtZEvSlxWSABoyaakzvztjmxVq0
Qk0cxGudGypr8wVqBZWjasTypMxgqsNj1F2qcRz4bLGgGMyhPRDYlbb0bYKC
NkbTChD4jS1Od6yDBCNwIdcc5b6u5wwLj2gHA0xBaMjptQpWe8AYDVWN/6xq
LgtEJISi6OAJVki8GonYEBRytGeiAmk3njjR/zV85oL31qrRyy3RkcoLttGs
LR8i+RH0JKkeMa/3RAVFJvhajt7M2ODcy9Uv+ErZNirU96D6GdvPFycMMIUX
zERcwmghgurquLAZscDxupWmtXJEGklbQF5clqa7Wxk/jB5tTyImOme3aAbm
tmwWiwUCzhQ5HNaklC7h3gJXx5WgMQQ4loB2uw92KiKWhrcQBOUbUbNWUXCX
E8n8B7ceRZFuWZSjSPR21jPmTuCZK6pSpoVjErLc8PhqjHu8tuIknp3bpdoi
0FoaifpgyL3WzrxE1GEcmmTjeKEsgKw9GxNReT2gDNBtvmgkJ7mxaDhhNkzO
YOF9/sLmMo25Rjvc7BoDLK/OhQE5h94sDVZP5oKBRojr1Tyn8i08XZAGz7FB
MB1PqCpCBUt0fCw1pVYAoj5oZVb1J67ThR4MxWl39zzcyS5TPzS8/XF14iA9
yRVoFebaylpKvUZ0YN4OdDOCA3DGxKShHKhnPjVNUrMFHd1iZUUzYuibKkQT
pDQCQkq3qG7X+Ha1wI0H3hzwoh7m5RCWDZlKsIoIavrcChKvTiLotaCQjEw5
nLBHuGSEAHdbBlBC16Yq+RDIl9hQ5csGgFcyelidaTpHtGxMJ4uGQ/XW1vC0
l0v0FkrAGttknUcHZ0Fye3pwemLsHKBDqhD1ALUesR9RfanWgl0t08mUR8q7
/mj8iAketCTJb9IJF/E6yT0pVD53G8Q3RGpW3pxrxXlris0MJDJVZVvMe24E
zZwzES+nJF5kevHyMGNSL00b3nHN8rvLBhoqJ4+uyHlIW/TsNOIHPNFzgBLA
exO+Goi2QBUC15A7yE/VVdWQmJKGaGO2b9bBbutA8Jtq2lByvJP+ICar2jCQ
94V100lDSQ6khcQc2I4iczRkI5F345XTVHTa52OSlQ9CR6UoYa0GSQDiZRA2
l1VhK0JPnrkBCE6WbpkoHWQvOyBhiwCGwJcNEYlzhmCMVGxkTWKl4REZPFIJ
wLNgJdYHlmIRqFFvFu5CInYABTbuKLYKAqAw3ErTWs0CVAjCZmCrh3QBxXXk
rtvgRiXEJiW+ldNbhE58WTXCED0DddhgBAwxQZisvcEnu7u+Ptzk/7B3E8G+
KgPVbOfqwj0MoIHb3YkhmiS40Ai+TOV4CG5vSYEo/uVkxbCbLfz53N2W0vYV
WMgYqepFopUYN2N9WmtLKSJUUZkAPwurSvCMg1UFKEUw0I27eKWuxGBD0uas
pKmmkDJoy8Zh4F+Rrkegh3FeMDwlOBtHVJnZgwVI9MoqzgOm60oaht8D9xLl
MG7PCYLyA5/MIlYh4h0cPvOm9RM9UXKdzx21a95SavdorUab2UzuPvErnp/D
g67b5R3xj9jixzfIIkJ8egELaXMKkpkP/LMvcH+7UVrQOTFCw2gDoyOpgqBs
LLgKhgFe2axlF+iRtiVt7PAZGSw8taZa+G3TOMt8zXQ69BFr2KwZmjKrcnJZ
V2W1NMXKojoRTjCK9Z47a1CuT3TQhBwjw0aaoPWjrvACZUYifpAeUFYCjuuE
6qSK4KDl5gHlLAwdD7TP9Ca4UQIUHAfF49PjcmnVtRGUzlqzjUY4X7A8wsBQ
QAgx8mi7KO41UJNzNk3PpZ0z1w6M3dbz+cblxgK8jsnh9XSHINvktNbDc75j
45lemXT79PzZztpo/MejT28/WEwDxKjorLNnAJhsb/he3kKw1ltkyW2AwqE0
gssnx32dJ+1TMZgcgv8UlmPkaiFvXeRzWh93DUihTLx5qtoB0LYAHAgtYadv
YonVXbX+O9lfvCGcUUJJO/hLSAwU0hjNCodL4Ilqlfj7VHCMPGgPUuqasE4W
g+BdBe41EyaJSQbd5VUmKxaPxA48ymnFWSW2yhBvSFgWAb937voJoMUJtaA3
jLEG4cKCvimOiPEJLg+KryX0PNTLNI4VBIQ96SwcXfRA0WVbUO2ZAATNLC/j
zYxLQdNIolitu3IlupSRI8AfmTU4G+yIEj8l/lq2lcXfkKiGUP0asygM8wyD
iPDVkdbO8vfKkKxmAy8RaduizM1N9BnRyokH2HyhFLg2D7LgOYubeRA3A4qE
qpnyub4fdiVftkHSGn4q+JISWTv0XpDeo/Q5TregU4z4Ih23zqBnM45GuPss
adVdLB5dqbxcMh09RC3Qsof+0RU42Ib4tk6WRrMnpHRO5BAsUDYHDn6wuYPC
N/7OLwYdI5xRvFdoGISGolMXEiPOV7BeZSLClZstVu6IJxiUHEyN8CbC1tZo
cu/be0tRcMkplytjVZB+R0RNt4+ffbfjb2a4ufmPSPpreYVOm3kdUA3QCQTf
esPw6nZRw+GwYSEYudDNQCRx/BRLP3dfQJQCwx3GeF0am0rpOnWuf/PgGR5e
mqcLz7mJOZxdEVc4n+DHBWHFZckcZd2bIAkiffm7vTfe2qAYirv0dXS3g0Pl
f/mcLr0mzLsxs5u3yypJzEzQEoIxb5f6+jWm/vHsd7zdRQZdd3B42GDHl2x7
o8UTBilhibMziG1C5i/DgA9Jl8s4NtzpdRDY4XhlE7oqyvIaHsFhn3aLsE8m
Br1bJQtXtw6kR5nWYXtsc4IzUV1rKua3N7C4uzbbpitenVu4Ybl1d8CmEWA/
OziiTPRC9IgzrEmCJFEgNjpltEd4/Qs1weCklvtnaK2S4BJh6YqchKCuUO5J
8/EyKxFpt5BcYwAf1YYz4jNtARF43bO6X8lhdZwA0xp6/4n2VrSR1xx7I0ML
G+yk/9ufM8nPMHusfag3S4COyO3UW2BNMnX+9lc/9U6qgEz9xOWqWNF4+6br
OUCwNwh2z8qTtUfSfdtIFKnEJU2foNUohRerJEA9H6+wMaz1nTpxZKfTsSxl
6WIRBgu9N3Ka1PbrFLKXU4ho08MHKPcfjyQ7Xm10H0PrTh+7HQNouJG/V5ws
BhuT6575jVd+0j6XwTbdk8DQhVgO44Mdq8AhMIUC0d5XwflIGBkKIDP9lXU9
ji+bTOy7wVoPy+CmDiVHkKaxd5bGfpFzLzom/TrnCFWo9eeSdkQKHKEFYSOj
rbXeyxuEPp612RMSmxQVD66B7OAHU3TBXUaCl5ng/E5tqODmQel/G9oIwm1J
w63LSyy28123kCR9CRScUUs50RzFc3eT7NPD/ZBbcrSWhHkn/m6A4AKTiBFa
zhJ+1YKLTjjCuACecA2EUAS0oeXqnj53QfHLfIjOtnIXszWhPvjUy127GATH
CJ02uJahHYXxdBac986eoMdccY5DfvwSFML060O8uRR5DYwBzhqIkocJLVvq
O7OlKqwsfmSr5Zh4y1JwvJ3V/7uDM75Ims/xkrLv+ptR+mQp54v6xwVlRLgl
QCaw96kxEh7mAzg8wdGXj2j85O65RQluxNleg1EJHN53yy1vbdsQAa+Gt7da
CM/SLk1Vu/MvgmEFFnAxAnfwJjxyh+xlzmjfrsaRLHw9utPAiP29Ucsb45m1
cHLTw1cvL45fXrx++ursxcHF9i6Y2C+Oj04OXl/8cHq8vbeTvqNZH+NtCLC+
67BZw2fow2vt3rDPWOjZkPSj6NleCNp4hF0UWsTC3fuUzW0wsHgnfNFtx0+r
24ZAy5KnQ2C4X+4isuzepw5ZFv8cVG04g3UU4dluirMrRu4lZut2hxczqxWU
rx30AoHqMhjuZ9GIXftiSfa0Tz9rWzL1Oriw6o5haD7BjUcREEtoZX+W2id8
1+3d32i3Ge1ORQS3iNfOsHf9D7XL3fHVRu5Fj2ZMgs0lj2Ke/Z8x2YJPKf1m
kPqW4FA3V6Ua0gNDoh+absGr8V5c87o8NBRzzsIV9qnXUNi30YVjiPWe68oD
mbcOUtreevbauvKd7f/OqVWbCPNz7f2+fu3lFK/ddW0hA/+TOLh3II6T7Ui6
TCxL8kvt/38X+t1bBthDxw1EQN85B0qDNXdZrbOArb2yvhQ7uZe5ErqqLUh1
tqQQArX3aoAWCGoIB4M2phRe+nPWJ/bY9OaBPUG1gL357HJY6CtddCCQuReh
u8P5fUf18Fyq3kEFHHTgkgYdVAqbBhKXiIcXrIVJcK1LIzmScsu1kT9Hefs9
q9jx54V5S3FjS9vXhJwdPgBvUpsZPhf80KFx329CxeCnNtVdRX2n6Ft++ZVX
1Hco+AtU1Pct1ntU1Pct7L0q2ntW/34V8V0eucf7PYAAD98DESBs5uG9EAG6
tfEP3wMRIAQEePiviwjw8BZIgIe9KDQPfymkAKtC+gpi7UUkFmPeAgH0hz7w
pwdWtrNwxlqUMNYURZoQoyDCVOOrQ/1FBqTN1oXk2P4yUSlLF7kYlNMjCaN0
IAMD5da9eVRisV2E3U2uK/U3nsa34fE1NEEyA55vyRmphSaPYDXbo+gM/UMM
ooXH6rBYEzukjXBu1hIM7YPbaC/2W9KeBqWtI/D8ClM8+Kbr4C7peD6DxPDX
Y6oRkQvWR2nq6hIsCJxNWpBMaE+YBBuinBFcFe4xMgWlYkBzkUFUzsznqdU8
b9p0djXfXd68dRE5W1lqb6RykAOe1jZzLXfBc5Uvg4mGw5Vj0yTmQOzB4pn7
bH7KFeltJXEF5rP8SpcO6KmVqIPJlWXVogfCE1JSaN+UQzLen2TvvSAdY3f9
egi13J5VfHKe2K2WxZWrFMagRbNuWIdKmK+aUJuTpueGA45Q13pG1Y9NQE5/
r3ayrUw74+Ps4OI8KlSkO2KinUDpa11ad0WMo1hM7AeUgMkuDQt7mZnwo0ud
VREh+SL24H7crr8S9H2L/PbrNbBzq8G9q5YNJlDJ6YhUGtDFNiGwl0sTtgqp
6T08sRfeocq1GVC4hIKd5q+rcHMGWtvSp675is1cu8rDjW7YG7VH7gTYhg3Q
rY7YcZgcTVkTmHQVbQ7GhaaMdrfFmVlG2AAMooxmywWB7oi2VTE3BXMDpH+h
qVwGG6A+tpZlNx669ZOnSWfS0AdKHWCwQuORZije75ohrioNMl7Y4Pr6elno
EGGI7hgiNmOLRWfvZzR8MGPByhaL63OtykYyJXlPd6/ltWB/VvYG1tSt+9Im
lnV53Gb7vNfLvJE9Qa6j6lgJ7MYkcdfChnTZ7N5v1pWbIbquPUJL20do8Q3U
ffe7JfZc+sNeOu0vXw2vqhtQOfqsze93XvW2w3PmOsjwbqFezRysrpRCCQ9K
Vl9iQ47MesF9WVccwHclmHf3kIQnlLFOAv4voe32vTmyl7zxKGMMrgryGpwb
3oSBg753uMg92H3Dtaaq18QbGDjhqtsMyYoR+N/LOXB7K72mjGB7q60fY+AY
gNXvK2JjU5M1XbKZa5B+7y6PvNPo6pEKkdLxE0Bax9I9uI1rk9Nr5KPE7/8u
rkXEyvExevJrlQGJn9FdMuB8pyX3rAq9w2AM7/hMnN/EkiSWA3c01PUK+bQu
PhqQq1Hb0TUB5GrFzN6ExoSqdTefKBG1z/lK682qzrXY3awklxQjJM7bQoh8
XIcvZHTSGlwbUqMddw/5IYi1v18cpu+ApTck0z6Z6QvFdFCvA0v+llOG9eEM
l9Hcavd+oZBoWZJgWYgduWyhJQEZZGJdpfyt4PIxUvCd9sim4PIXXRr+c8nA
CUet8JAztoJZ3RNNv2WAdSa9bs17jqp6IkodMuBuS9ZHlHp26yC9I6zkLuPr
hJVsaz89otQnRQIw1Fv2QyemdmdUKV0fVeqFwBYYHBco8rOmSFPLVo8jTQmZ
EQyCo+MWo+CTm/+auJM4PXHYqY9o94g9JfeSMz9p5TZRe3H4KQ7WMXZDr9Qx
ZsloiUblLkm1Nu2SOo9Ks1EMyipI6xevyU7dPCoVxiPjCOB6Gv2Tg1Ld+zV6
Y1Jrx7c2JJV8qJBUTzwKwxf3DUmtiUdRwOufGpIK41EcuJGQlGTJuM1jbgva
tGNSFMG5R1iqJybltsmHCUpFESkcHgFjteZ4R1xqfVAKG9w4LnU/2+l9jYWe
MFWfeODQVdI+PJBl7ISu1iqfu6JYd096bRDrNiGwcQyL/OwgPT4kVNIbvFo7
1c2SnO4R1WLm7g3x3Ea33ghPui7Ck6yJ8NzSwZ0BHtt0n4L1CHB3Bnk2WOD+
GI/MfdiRVT64swHj3R3buZeVv4blTGgd0YDp/kwyDmqzTnvb4gO7P20EJ7lz
SPcL4Ljgg4TsvLF3WVkDZp1XFYd77hvuXRfuScJwT5vBVm3OuT36karkjujH
fVaYkgrPbe1VDBxFwCcTTG+mWpMnRxYhRZ7+41LVIFO1tk/O3Bfw/Pca1bDF
ykHraEF1KdGFDzYmYjENBH9AmaG9HNS3mbpqSQfhh7l78CDiEpURLuJBWi7n
Y6AxFnB51NegMboKaKy9CJHXQzgJa5I57MNBYsNpmOKiisKXrXFmZVxHn9cM
pMWQBPDm/ywdBqODUSCovoueWfUhgY3WPMswveBTs2tZEWTvW/xXDLzr8NOw
ItLR3qJvOrTDFvpY3W6GkGPDpwmKeNIIqtA27nS5MnbHG6E4JDLHrPmEUUGQ
f7AfVMHSybCPhttIW+wKnBbBQyHeJ6NIQhdblmG2dtpLR45igwXbgqlmb4gF
9mfMwmu18gWM5Ifbi0tMtazpNCbTmNC6oAJZgrEcL/MC4cHoxKhowUk3E1sr
h/5OgJKGJhOawhgVmFQLf4NuYPnCnnpqa8TiTeVKx+KtxWVw6cWro1f76VFu
JktjfJlZyOUhd0tAOLx947agcTdgPIK+phKvMA46qZNMhS9HJXGjJCx8c+ID
KBHXyHLtcQ8+RruYFgHktAOrIJxsRqohCdGu5LchctIXag5CvYMJEJRYLtCd
43s5g+rqEX0CIjLooPcyHK29dJKKSIdfoCUcgnKUhEHjEQOsROZ4yIROmfAW
arosQVBoUW8ceVDWNAL7ME1dwfjqcNE9qjtBaJbJWmQFx6hpxlxkM843wB9J
BOgphldx0AcROjJuyGMrnIL75Kra4P1qiUB2R5dpZAgNOCPRObY17RxBqNpo
RLVDNHqAV8NdqUmPKkN8bKvLrPtjLKrPtUDcISs5tHFvI8hF09FddigcKIjF
JeNkg8Bew4JTRkodoQpUXIo50TXygRpbt3hRISNgUTdKRdxnsPILGbvRtEBX
yB58QE0xAnkZRsYdDJwII5sURXDh0D8cIGgE5mNrv618nzMsYPvaWtq2g9h4
QglOGpmczwkjfOCtAWCUFMQ33aFGgKAXh08weFEtZx4XwLntVFCLetw6wnRD
H5aUW40bxI3AjrMBxQnZFAyv6PGW59ZpZLQu1Bf5SI94RmencgZlyU11xCEK
reEbLgjIqCwQn/rV4fkpFmJUE7PASozv3e3wZ6ekpjhi1iEYEgh2VlEZDkSE
RMobFzoaOOFkA6miteYCNh6S0t5pxfZBIStSorOXE4QXM4G5zBfe83fJYsk5
QkGRAmxiUHfr4pJBwibikJQ+qE6By/M8OvQ86kr0GLB2AG/zHZFsmeIjQgNc
K5Ea50fDb7+/QJKabPj36+bdOx7r8QF9CdsWxI6Cr3ewvcNqiLgEDhDR0biu
Cu0neXZKnTd5kf+DQo0yVtqo9VUbXgNFDYbQZEhHBweu60wp7BrkVtSgXQI0
TcolIiGQXUEDwP2zCJ1Gafbm5unJ0avh2fGfzrlwGVmvwHHUBAtEnM93cFw6
64fhRnMHKSJYZ85jcLb+2WkEnkp7BzQDuAa4BaAR4twtmPICAY+3YJGvqgKj
lRbiyl7rBuywqIpqtgpAvy2dPzL2PbuzliXxmS/fCfDNYURHS5dIlJeXLIeU
Wc3nuqkjCHJvhObTWODKfdFB4zXBDCmgPZqD1dKEN1DzZRROrNJ1DQ24cld6
jTjlY4Y+JLUwfOkyWzyIWU5GFuM60a0fXu54u9nlWj9ITw5eHnQgeeWK1SCP
L6HnUGiZt2IyFMT0GHNb1oSIEuNW9NRg9RVqtdzBvjotx05YXJe4QVFhH1fD
boGuGdd6BgaMX8CtCzQliHmeqxWsmbPttqGdHd+QwTug5N2bG/gN7zobnslX
iGUmCNt9B+niit+7PswHotpuffdQvAHTRVjC+bkEMIsx3WBtouCaWx8lrrgY
c1v+za3k/mTjMiK8GiEgW8Jko58CwhElFtViWZAx2XhZ6I/XgWowd0OHA7SY
+zjHPfh0pNmwBzLsp305lPgMdvvq2X76A3w4s8eV++lfIgi/v8KPh9Uc/9nq
5/Ft/bi4+Ht2JKvkyx9tdckFJYbfuWy4p7pL55rDVoIl+AnLl/Yv3yBRxt6B
2KJbm2whDM37EAt0Mk9fDqvvASHZh3pDeL8eEJo9k5sHqvUVx4GuSTYX+VtR
Cqp8C1RaFuk31bWqs0F6UMP3L3M9zzkH5hu050C8g4auprrMZ9YIyrkkv87B
bOTAOB7B1wXaAogfTN/1uNhYaIVGLkGk25OUb3LE/YO1eWCfHF7yV1ySRPCG
w2kFLNXkYPCoZoh9raILAHd30YJmfCYZAZnfG7xrLxuyrzmPwpCS+zsi5/iD
TWhfqnVJTKExWmRD6gctUhR2dCmUQ1myxhwyCALiZNGFUD4o6J1AQTy40qu2
qXTsBcKJRw3bBKSL2kSWwyYxn237EN2hBV7g4rbr97VagNmzY5PdoJu43Z54
azfWSji1NiJsHDLZ+zXm0MCx0eAYyjdqqWpvO3fuZPDbMzBntzGQEe6riwqU
Dd+ceoq/n9qQY89DLkHEWKxHpGGWc7QNenpZUTRm2/rdeDEJkYA7UIH/tQ7h
sZUUdnF8PJRLEe2yPwpGZqWC3B6ClevDHvrZm2CWpQW1IrZFGDHyqHA02+S0
VNV0CP/DQ2yJCzLc7w60e0AV4j241hKvwH9uB1+3UaHRqlyPXNzGO/M9Ru8k
yZf/AfLjvJFbOg4WGOTNkexYOokiRSPB0jOHpQwihb4aOnhlC0em+OUfKarp
UwMiFGYLzMcGOoxHIjcRGyc9F/vZu9hgkHo+1lnW3sd83BceCKBV6mKA4cFe
cKR3QSF8uVompUv4UPDOtZZQlihADo9bt7qN4IYQx/SNiW7kOogiRT2w6q1Q
EtXTi48C/NM7ZIs5Ra7s6fmzIaPXxS3hTwfPjnt/64TAFghZD2t4kPLC2iic
DUSqNQPxpBbH3iMjJ2SJsuigm+BIsym00Ncueo+AZYR3TqWhW+4whNgl2QA0
ylu6NKQhGFXFlzN5exGRxtH6b71LN7fWy3kfSDX4nenTJfpa59ak4/VTfKvz
KYYGv7kjNBgC3z++A/o+wWiRxLQp5BHrrlZ/Foo0vqgtPeBsJJRiTGlcT74J
kjaNae0Yd/DRv8Js3DAYnlwo4adaZlSIFxxVUv4Bg2PSpQuBOZDam0Sgz+UU
+qE2cGJZK/zrALwttrjPzInsi/8P8oYXaSjdAAA=

-->

</rfc>
