<?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.39 (Ruby 3.4.9) -->
<?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-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.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-04"/>
    <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="May" day="27"/>
    <area>Security</area>
    <workgroup>TLS</workgroup>
    <keyword>attestation</keyword>
    <keyword>RATS</keyword>
    <keyword>TLS</keyword>
    <abstract>
      <?line 139?>

<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 TLS extensions 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 148?>

<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 extensions to the TLS handshake that enable the binding of the TLS connection and its 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 <tt>attestation</tt> extension.</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>The terms "appraise" and "verify" are used with distinctive semantics throughout the document:</dt>
        <dd>
          <t>"Appraise" covers the act of checking the validity of Attestation Results or Evidence, as per <xref target="RFC9334"/>, performed by Relying Parties and Verifiers respectively.
"Verify" covers all other checks performed by the two TLS peers, intended to assess the correctness of the cryptographic and protocol operations of the TLS layer.</t>
        </dd>
        <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 nonce value provided by the TLS stack to the TEE. It is used for binding attestation Evidence to a specific TLS handshake and for providing freshness.</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. A new <tt>Attestation</tt> extension is
introduced to the Certificate message. This extension carries attestation Evidence
or Attestation Results.</t>
          </li>
          <li>
            <t>Independent key derivation: Binder derivation for attestation (see <xref target="crypto-ops"/>) is completely independent of the
regular TLS key schedule. 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 an Attestation Binder mechanism (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> extension (see <xref target="attestation-extension-section"/>). The
CMW payload in the Attestation extension 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 the Verifier's signature over AttestationResults within the CMW <bcp14>MUST</bcp14> include an attestation binder derived
from the message transcript (see <xref target="crypto-ops"/>)
and the attester's TLS identity public key, as specified in <xref target="attestation-extension-section"/>.</t>
      <t>The relying party can obtain and appraise the remote Attestation Results either
directly from the Attestation extension (in the Passport Model), or by relaying
the Evidence from the Attestation extension to the Verifier and receiving the
Attestation Results. Subsequent verification of possession of the attested key in the
CertificateVerify message remains unchanged from baseline TLS.</t>
      <t>When using the Passport Model, the remote Attestation Results obtained by the
attester from its trusted Verifier can be cached and used for any number of
subsequent TLS handshakes, as long as the freshness policy requirements are
satisfied.</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-extension-section">
        <name>Attestation Extension</name>
        <t>As defined in Section 4.4.2 of <xref target="I-D.ietf-tls-rfc8446bis"/>, the TLS <tt>Certificate</tt> message
contains a <tt>certificate_list</tt>, which is a sequence of <tt>CertificateEntry</tt>
structures.</t>
        <t>When attestation is negotiated via the extensions defined in this document,
the <tt>attestation</tt> extension defined in this document <bcp14>MUST</bcp14> appear only in
the first <tt>CertificateEntry</tt> of the <tt>Certificate</tt> message and applies
exclusively to the end-entity certificate.</t>
        <t>The extension <bcp14>MUST NOT</bcp14> appear in any other <tt>CertificateEntry</tt>.</t>
        <t>If the <tt>attestation</tt> extension is received in any other position, the
receiver <bcp14>MUST</bcp14> abort the handshake with a fatal <tt>illegal_parameter</tt> alert.</t>
        <t>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> extension structure is defined as follows:</t>
        <figure anchor="_figure-attestation-extension">
          <name>Attestation Extension Structure.</name>
          <artwork><![CDATA[
    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 a binder ensuring that the attestation is associated with
this particular TLS connection,
as well as the attester's TLS identity public key (TIK-C for client attester, TIK-S for
server attester).</t>
        <t>This binding ensures that the attested key is the one used in the TLS handshake
and provides freshness guarantees through derivation from both peers' randomness.
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>As noted, each peer's attestation is carried in the <tt>Attestation</tt> extension within
that peer's Certificate message. This section describes how the attestation
is produced, bound to the TLS handshake and verified by the recipient.</t>
      <section anchor="crypto-ops">
        <name>Cryptographic Operations</name>
        <t>The cryptographic operations defined in this section bind attestation Evidence
to a specific TLS handshake. This binding prevents replay and relay of attestation
Evidence across different TLS connections, and ensures that attestation Evidence
presented during a handshake corresponds to the authenticated
TLS session in which it is conveyed.</t>
        <t>The attestation Evidence or Attestation Results are generated by a TEE and
signed using an attestation key. The signed Evidence includes
inputs originating from different trust domains.</t>
        <t>The attestation binder is provided by the TLS stack and serves as a
nonce that ensures freshness and binding to a specific TLS handshake,
as well as binding to the attester's TLS public key.</t>
        <section anchor="attestation-binder-definition">
          <name>Attestation Binder Definition</name>
          <t>The attestation binder is computed using primitives
defined in Section 4.4.1 and 7.1 of <xref target="I-D.ietf-tls-rfc8446bis"/>.</t>
          <t>Both peers derive a single attestation base from the same transcript
checkpoint, <tt>ClientHello...ServerHello</tt>.</t>
          <artwork><![CDATA[
attest_base = HKDF-Expand-Label(0, "attestation base",
                                Hash(ClientHello...ServerHello), Hash.length)

c_attest_binder = HKDF-Expand-Label(attest_base, "attestation",
                                    Hash(TLS_Client_Public_Key), Hash.length)
s_attest_binder = HKDF-Expand-Label(attest_base, "attestation",
                                    Hash(TLS_Server_Public_Key), Hash.length)
]]></artwork>
          <t><tt>TLS_Client_Public_Key</tt> and <tt>TLS_Server_Public_Key</tt> denote the DER-encoded
SubjectPublicKeyInfo of the peer's end-entity certificate. <tt>Hash</tt> is the
cipher suite hash function for the handshake (<xref section="7.1" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>).</t>
          <t>We note that <tt>HKDF-Expand-Label</tt> is used to produce binding values rather than keying material. <tt>HKDF-Extract</tt> is not invoked, as there is no input key material to combine. The "0" parameter denotes a byte string of <tt>Hash.length</tt> zeroes.</t>
        </section>
        <section anchor="verification">
          <name>Verification</name>
          <t>Upon receipt of an <tt>attestation</tt> extension, the peer <bcp14>MUST</bcp14> compute the attestation binder.</t>
          <t>If the peer's Evidence is rejected (binder mismatch, failed Evidence appraisal, or malformed CMW),
the receiver <bcp14>MUST</bcp14> send an <tt>attestation_failed</tt> fatal alert and abort the handshake
(see <xref target="tls-alerts"/>).</t>
          <t>Depending on the architecture (see also <xref target="stack-tee-interface"/>), either the peer verifies
the binding or else it delegates this responsibility to an external Verifier.</t>
          <ul spacing="normal">
            <li>
              <t>In the former case, the peer <bcp14>MUST</bcp14> compare the computed binder value to the attestation binder
included in the
signed Evidence or signed Attestation Results. If the values do not match, the peer <bcp14>MUST</bcp14> treat the
attestation as invalid.</t>
            </li>
            <li>
              <t>In the latter case, the RP <bcp14>MUST</bcp14> convey the binder to the
Verifier. The Verifier <bcp14>MUST</bcp14> appraise that the conveyed binder is identical to the one that was signed
in the Evidence or Attestation Results. If appraisal fails, the receiver <bcp14>MUST</bcp14> treat the
attestation as invalid.</t>
            </li>
          </ul>
          <t><cref>TODO: define a way to transport the binder to a remote Verifier. Possibly
as a (new) conceptual message (CM) within a collection. This would provide
the Verifier whatever information it cannot compute on its own, while
not forcing the TLS stack to parse the Evidence.</cref></t>
        </section>
        <section anchor="security-properties">
          <name>Security Properties</name>
          <t>Binding attestation Evidence to the TLS handshake transcript hash provides the
following security properties:</t>
          <ul spacing="normal">
            <li>
              <t>Replay protection: Evidence generated for a previous handshake cannot be
reused in a later handshake.</t>
            </li>
            <li>
              <t>Relay protection: Evidence obtained from one TLS connection cannot be
successfully presented in a different TLS connection, even in the presence of
a MiTM attacker.</t>
            </li>
          </ul>
          <t>In typical deployments where the TLS handshake executes outside the TEE, a
compromised host can execute the TLS handshake in the rich operating system and
use the TEE as a signing oracle by presenting the attestation binder value to
obtain valid-looking attestation Evidence.</t>
          <t>However an endorsed TEE (one that is operating as required by this protocol)
is required to verify the binder against the TLS public key associated
with the private key that it holds. This verification, in conjunction with the TEE's
endorsement being appraised, ensures that relay attacks are prevented.</t>
          <t>The attestation binder prevents replay of Evidence across TLS connections. The binding to the TLS identity key ensures that Evidence produced by one endpoint cannot be replayed in a TLS connection involving a different endpoint, as the verifier checks that the binder matches the public key presented in the current TLS connection. The additional binding to the transcript through ClientHello and ServerHello ensures that Evidence cannot be replayed across TLS connections, as ClientHello.random and ServerHello.random are independently generated by each peer for every TLS connection.</t>
        </section>
      </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 signed Evidence <bcp14>MUST</bcp14> include an Attestation Binder generated using the hash of the TIK public key (TIK_pub_hash) (see <xref target="crypto-ops"/>).</t>
        <t>The Relying Party <bcp14>MUST</bcp14> compute the hash of the TIK public key extracted from the TLS end-entity certificate using
the same hash algorithm and verify that it matches the TIK_pub_hash included in the Evidence. Successful
verification binds the attestation Evidence to the TLS identity used for authentication. This verification is performed by the Relying Party, as the Verifier may not be co-located with the Relying Party and may not have access to the TLS handshake or the TLS end-entity certificate, consistent with the RATS architecture.
Alternatively, in deployments where the Verifier is not co-located with the Relying Party, the Relying Party <bcp14>MAY</bcp14>
supply the Verifier with the hash of the TIK public key. The Verifier then compares this value with the TIK
public key hash included in the Evidence. If the values do not match, the attestation <bcp14>MUST</bcp14> be considered invalid.</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 - in and of itself - ensure security of the TLS stack when the stack is
outside the TEE, and see <xref target="sec-guarantees"/> for a further discussion.</t>
      </section>
      <section anchor="stack-tee-interface">
        <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.</t>
        <t>Architecturally we propose to add a thin shim between the traditional TLS stack and the TEE
as shown in <xref target="_figure-tls-tee-interface"/>. Implementations will choose whether to incorporate
the shim into the TEE (making for a "smarter" TEE and better protection
for the remote attestation protocol), or in case of a legacy TEE that cannot be modified,
the shim can be added to the TLS stack.</t>
        <figure anchor="_figure-tls-tee-interface">
          <name>TLS Stack Interface with the TEE</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="432" width="544" viewBox="0 0 544 432" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 8,192 L 8,256" fill="none" stroke="black"/>
                <path d="M 8,320 L 8,416" fill="none" stroke="black"/>
                <path d="M 24,368 L 24,400" fill="none" stroke="black"/>
                <path d="M 64,96 L 64,184" fill="none" stroke="black"/>
                <path d="M 64,256 L 64,312" fill="none" stroke="black"/>
                <path d="M 168,368 L 168,400" fill="none" stroke="black"/>
                <path d="M 272,104 L 272,192" fill="none" stroke="black"/>
                <path d="M 272,264 L 272,320" fill="none" stroke="black"/>
                <path d="M 432,32 L 432,96" fill="none" stroke="black"/>
                <path d="M 432,192 L 432,256" fill="none" stroke="black"/>
                <path d="M 432,320 L 432,416" fill="none" stroke="black"/>
                <path d="M 504,32 L 504,192" fill="none" stroke="black"/>
                <path d="M 504,256 L 504,416" fill="none" stroke="black"/>
                <path d="M 8,32 L 432,32" fill="none" stroke="black"/>
                <path d="M 456,32 L 504,32" fill="none" stroke="black"/>
                <path d="M 8,96 L 432,96" fill="none" stroke="black"/>
                <path d="M 8,192 L 432,192" fill="none" stroke="black"/>
                <path d="M 8,256 L 432,256" fill="none" stroke="black"/>
                <path d="M 8,320 L 432,320" fill="none" stroke="black"/>
                <path d="M 24,368 L 168,368" fill="none" stroke="black"/>
                <path d="M 24,400 L 168,400" fill="none" stroke="black"/>
                <path d="M 8,416 L 432,416" fill="none" stroke="black"/>
                <path d="M 456,416 L 504,416" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="280,264 268,258.4 268,269.6" fill="black" transform="rotate(270,272,264)"/>
                <polygon class="arrowhead" points="280,104 268,98.4 268,109.6" fill="black" transform="rotate(270,272,104)"/>
                <polygon class="arrowhead" points="72,312 60,306.4 60,317.6" fill="black" transform="rotate(90,64,312)"/>
                <polygon class="arrowhead" points="72,184 60,178.4 60,189.6" fill="black" transform="rotate(90,64,184)"/>
                <g class="text">
                  <text x="192" y="68">TLS</text>
                  <text x="232" y="68">Stack</text>
                  <text x="116" y="132">Transcript</text>
                  <text x="180" y="132">hash</text>
                  <text x="296" y="132">CMW</text>
                  <text x="344" y="132">(Signed</text>
                  <text x="372" y="148">Evidence/AR;</text>
                  <text x="88" y="164">TIK</text>
                  <text x="132" y="164">public</text>
                  <text x="176" y="164">key</text>
                  <text x="212" y="164">hash</text>
                  <text x="348" y="164">Nonce)</text>
                  <text x="492" y="212">Measured</text>
                  <text x="536" y="212">&amp;</text>
                  <text x="144" y="228">Early</text>
                  <text x="216" y="228">Attestation</text>
                  <text x="284" y="228">Shim</text>
                  <text x="500" y="228">Reported</text>
                  <text x="500" y="244">Components</text>
                  <text x="96" y="292">Nonce</text>
                  <text x="308" y="292">Signed</text>
                  <text x="384" y="292">Evidence/AR</text>
                  <text x="216" y="356">TEE</text>
                  <text x="48" y="388">TIK</text>
                  <text x="96" y="388">Private</text>
                  <text x="144" y="388">Key</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+----------------------------------------------------+  ------+
|                                                    |        |
|                     TLS Stack                      |        |
|                                                    |        |
+------+---------------------------------------------+        |
       |                         ^                            |
       | Transcript hash         | CMW (Signed                |
       |                         |      Evidence/AR;          |
       | TIK public key hash     |      Nonce)                |
       v                         |                            |
+--------------------------------+-------------------+        |
|                                                    |   Measured &
|              Early Attestation Shim                |    Reported
|                                                    |   Components
+------+---------------------------------------------+        |
       |                         ^                            |
       | Nonce                   | Signed Evidence/AR         |
       v                         |                            |
+--------------------------------+-------------------+        |
|                                                    |        |
|                        TEE                         |        |
| +-----------------+                                |        |
| | TIK Private Key |                                |        |
| +-----------------+                                |        |
+----------------------------------------------------+  ------+
]]></artwork>
          </artset>
        </figure>
        <t>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>
          <li>
            <t>As shown in the diagram, the TEE itself as well as the TLS stack and the shim <bcp14>SHOULD</bcp14>
all be measured and reported as part of the platform's remote attestation.</t>
          </li>
        </ul>
      </section>
      <section anchor="reattestation">
        <name>Reattestation</name>
        <t>Attestation Evidence or Attestation Results may become stale over time. For long-lived TLS connections, a relying party may require updated assurance that the peer continues to operate in a trustworthy state.</t>
        <section anchor="post-handshake-reattestation-using-client-authentication">
          <name>Post-Handshake Reattestation Using Client Authentication</name>
          <t>Post-handshake client authentication defined in <xref section="4.6.2" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/> can
be used to obtain updated attestation Evidence or Attestation Results from the TLS client. In this case, the TLS server sends a <tt>CertificateRequest</tt> message after the TLS handshake authentication. The client responds with the standard TLS authentication messages (<tt>Certificate</tt>, <tt>CertificateVerify</tt>, and <tt>Finished</tt>). If attestation has been negotiated for the TLS connection, the client includes the <tt>attestation</tt> extension in the <tt>Certificate</tt> message carrying updated Evidence or Attestation Results.</t>
          <t>The attestation binder can be derived from the post-handshake authentication
transcript defined in Section 4.4 of <xref target="I-D.ietf-tls-rfc8446bis"/>.</t>
          <t>This mechanism allows a server to request updated attestation from the client. However, TLS currently does not define a mechanism for post-handshake server authentication. To address this limitation, the subsequent sections discuss design options for handling attestation freshness.</t>
        </section>
        <section anchor="option-1-carrying-attestation-in-extended-key-update">
          <name>Option 1: Carrying Attestation in Extended Key Update</name>
          <t>One possible approach is to extend the Extended Key Update (EKU) mechanism by introducing a new <tt>ExtendedKeyUpdate</tt> message subtype to carry attestation Evidence or Attestation Results.</t>
          <t>However, this approach tightly couples attestation to EKU, even though the two serve different purposes.</t>
        </section>
        <section anchor="option-2-no-reattestation-reconnect-for-freshness">
          <name>Option 2: No Reattestation (Reconnect for Freshness)</name>
          <t>Another approach is to not support reattestation within an established TLS connection. When fresh attestation is required, the client and server terminate the existing TLS session and establish a new one, during which fresh Evidence or Attestation Results are exchanged as part of the handshake.</t>
          <t>This approach keeps the TLS protocol unchanged and avoids introducing post-handshake mechanisms. However, it will be disruptive for long-lived TLS connections.</t>
        </section>
        <section anchor="option-3-post-handshake-reattestation-using-certificateupdate">
          <name>Option 3: Post-Handshake Reattestation Using CertificateUpdate</name>
          <t>In this design, reattestation is supported using the <tt>CertificateUpdate</tt> message defined in <xref target="I-D.rosomakho-tls-cert-update"/>. Under this approach, the attester sends a <tt>CertificateUpdate</tt> message carrying a new <tt>Certificate</tt> message with updated attestation information. The refreshed attestation is bound to the existing TLS session using post-handshake TLS context.</t>
        </section>
      </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 appraised during the handshake, and the Passport Model,
where pre-appraised 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> extension. The Evidence contained in
the CMW payload is sent in the <tt>Attestation</tt> extension (see <xref target="attestation-extension-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> extension
(see <xref target="attestation-extension-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>Early Attestation Handshake 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*} ^
                                              + attestation*  |
                                         {CertificateVerify*} | Auth
                                                   {Finished} v
                               <--------  [Application Data*]
     ^ {Certificate*}
     | + attestation*
Auth | {CertificateVerify*}
     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> extension.</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> extension in the <tt>Certificate</tt> message.
The signed Evidence contained in the CMW payload <bcp14>MUST</bcp14> include an Attestation Binder as a nonce value (see <xref target="crypto-ops"/>)
in the TEE's signature.
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> extension. With the evidence_request
extension in the EncryptedExtensions, the server indicates the
Evidence type carried in the <tt>Attestation</tt> extension sent
after the CertificateVerify by the server. The signed Evidence contained in the CMW payload <bcp14>MUST</bcp14> include an Attestation Binder as a nonce value (see <xref target="crypto-ops"/>)
in the TEE's signature.
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> extension in the <tt>Certificate</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> extension in the <tt>Certificate</tt> message.</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> extension in
the <tt>Certificate</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> extension sent in the Certificate 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 the Attestation Binder.
Differences between Background Check and Passport mode.
</cref></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 five new TLS extensions, attestation, 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 values 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>
          <li>
            <t>Value: TBD3</t>
          </li>
          <li>
            <t>Description: attestation_failed</t>
          </li>
          <li>
            <t>DTLS-OK: Y</t>
          </li>
          <li>
            <t>Reference: [This document]</t>
          </li>
          <li>
            <t>Comment:</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>
      </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="2" month="March" year="2026"/>
            <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-09"/>
        </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="I-D.rosomakho-tls-cert-update">
          <front>
            <title>Certificate Update in TLS 1.3</title>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <date day="21" month="December" year="2025"/>
            <abstract>
              <t>   This document defines a mechanism that enables TLS 1.3 endpoints to
   update their certificates during the lifetime of a connection using
   Exported Authenticators.  A new extension is introduced to negotiate
   support for certificate update at handshake time.  When negotiated,
   either endpoint can provide a post-handshake authenticator containing
   an updated certificate, delivered via a new handshake message.  This
   mechanism allows long-lived TLS connections to remain valid across
   certificate rotations without requiring session termination.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rosomakho-tls-cert-update-01"/>
        </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 934?>

<section anchor="document-history">
      <name>Document History</name>
      <section anchor="draft-fossati-seat-early-attestation-04">
        <name>draft-fossati-seat-early-attestation-04</name>
        <ul spacing="normal">
          <li>
            <t>Register the <tt>attestation_failed</tt> alert for Evidence verification failure after
the <tt>attestation</tt> extension is processed; clarify roles of the three attestation-related
alerts in <xref target="tls-alerts"/>.</t>
          </li>
          <li>
            <t>Hash TLS public keys in <tt>HKDF-Expand-Label</tt> context so <tt>HkdfLabel</tt> stays
within the 255-octet limit (post-quantum public keys); see <xref target="crypto-ops"/>.</t>
          </li>
          <li>
            <t>Simplify attestation binder derivation to a single shared transcript
checkpoint (<tt>ClientHello...ServerHello</tt>) for both peers (see <xref target="crypto-ops"/>).</t>
          </li>
          <li>
            <t>Replaced Derive-Secret with HKDF-Expand-Label</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-03">
        <name>draft-fossati-seat-early-attestation-03</name>
        <ul spacing="normal">
          <li>
            <t>Replace the Attestation message by an Attestation (certificate) extension,
to bring this protocol within the requirements of the SEAT charter.</t>
          </li>
          <li>
            <t>Define the attestation binder and decouple it from the TLS key schedule.</t>
          </li>
          <li>
            <t>List multiple design options for reattestation.</t>
          </li>
          <li>
            <t>Add architecture diagram for TLS stack interface with the TEE.</t>
          </li>
          <li>
            <t>Add defense-in-depth guidance for measuring TEE, TLS stack, and shim.</t>
          </li>
          <li>
            <t>Remove various outdated sections.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-02">
        <name>draft-fossati-seat-early-attestation-02</name>
        <ul spacing="normal">
          <li>
            <t>Fix typo in key schedule. Clarify (again) that this is only adding to the schedule, not modifying any existing key derivations.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-01">
        <name>draft-fossati-seat-early-attestation-01</name>
        <t>(Submitted by mistake.)</t>
      </section>
      <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>
  </back>
  <!-- ##markdown-source:
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
cmYBFaOOrlO0pU7Yd+GrIPCOuHL2kpUFC8QMNa6hM6IaPpy7NdE1XRk6tjbG
ssKMA7y6BlERPVF4z7bM3SCPpHzX8NoH25iuqMMBBg5vSO4j3hdS3CQoFRMm
yCq6NSsg5AXfKTB2MB5SlUIC6yAWUEg2xAZJk3dVbfkyRMLo7lSjUjGXR18r
WwTdXzwvNhBl4CHztFYFIi9W+HABxYERDrLSemcmxMgBxUtgeS4demE1cBh9
saQrdPKRHtk7T/ZGUguUwU2Jh2F9IpMvcnFWw4qxwMCbo4szjOauJmaJ4dz+
PufzM+IN7H7oAAwBBERRYFFFZDetazysHS4KA5Zn8lUNuTK6rzRhQWmvRGam
XMiOlKg5Y/S4RQIzz5fejPI331xgGRXiOk2r/oHYCyQFWC4PidMCv0onFq8E
aEOPoy7Dh0sZDaA1p1azOpBTuj7BgO4A0qMZbMTF8fDbHy8RpCYb/nLbvHvH
cz05pIdAtmao0wavBMLZSJlimznrYFxXRVA66/yMBm/yIv+b3PhGcyVCrW/a
tRkM4Dr6I2RKx4eHbugsTek2oqqOOrRbgPKgXE1T8t5I6WSkn2WomEu3d3cv
To/fDM9P/nThC3nLRTxY0IAwn8x+6+7TNcvlee7K3srtUE5NcwrW+Rn0+Nop
N0Q7f13BsgskAeiEMHcHlrzE2hQ7iq9N0MbeQUhHG+xoAb29qGbrnnLRHxjb
zlLWqiQ8axXX1LZg7LG/Gykv58yHUrNeLHRTR4VrveQXN6ljuOmEFXffeU2F
AVK83gpkMN72EtweymX6HVulQvYNqMs3egM7ZZ9tXymL0BfEvdtCV1TxJyfJ
xtd48y0cYQ2I+LQSJdLp4evDljjiirphGgw8ou/oyt63DFbMyCbNfYpzx7T+
ONV9EE6/J6ujL/WjpZD3ZX443MJEncTNkJKEOLNuB2uC1HoG+qTfzZ1Ld2/S
y3QNG+iUc7xHb893BM1d27s7eIcXvw3P5RGWRJBCbH2nkGL7PDrjxFv+bTuq
e6LYgLoq+OEsDYT8IV10hpda+FvPEr9vkRfD7Z2MKebOju9nJ3k8EDlNAStt
B0BMGIj0KgAjwWVZLVcFVa0K6sf7k0qAYc3XLQ15aw9wxfvw61hz3Z8cb0Pq
C9LCb3DYN98dqJ/gx7k9FjpQf74Mtcq/wMujaoF/tsZ5ft84zv/4Gwz0cXug
7q137znKE3U4Qa0FephpLrZ/9yRtPWILlG/5KvK3whnT8i1s56rAkidpnQ3U
YQ3PX+d6kfPB+Teo1ACPAzFVTXWZz6wmkHNaa52D7sSuNjzUq4ucr8tjRO5R
7jFlATU9nPax9c1+k+PdGECJT+yXwzk/4qj+rE6nmBkLdNTkIPXTZohjraNb
6Z99whd2Ie6Jd6/3ZkH2N4epvrHxgt/R/fMYDpKoTkeRo89YB7DOvkTdg4JF
UCEwlpr43CFOyiWhhXdrMTFT+lx4iyGapXgrZOtuJ/qy7+ZLqWoC1hq8fptN
5TEMuMbjg6D65vNPPwX9sdENF5pSu1QjBezwslktwqH2vlTd8BOc14UtkdFT
4CsobRgUvVCcbBVeQKuUv4IWy6NtvIJ2jzbK342+4WISuagNb3I6pupiwwsu
dUj8pgOxRyDVx77vjsVoz+/xduU4pGc3uD9jLziKwnPWsdReCW78CndIqjIx
HQsOXaBGCgYG1jTHxR5zxTF81bMLSLeZ5ppWyHOj+nnoY0CdM1sVdO3cSzwJ
d1VSeyqKRYWHqPAj1oYPb9SUyo/0dXDFQm9VWdtBp5zsbJVnqYRUSv1HqsuD
zhXvb+LyVPN8wVtONVlugOhQDwNtiYsKmbAS05bb/Bx5x4v8VzyEQq9uDCew
RJiyd+nitT2r56K9In459Kr5q6FsywFf/oGl4bkwUrn2BYtwCE8xj5rufpLs
XqzG7LdG/FtAn5gZvveITp6h2Z2T/S8cm2z2LdraIly2mXNDGNKMf8H6POH9
AkryhAkT0YItsiGNgywFlSK6Y4u+CS3AoWxxFt0L5LlvXG+PD1M2XdEHnZ1K
9S+dcXmqyHUdVgJjqqY+bUUrqv5+5G/VfCUf/VinS7CV9mygHwwT9+sK2JH1
QRGG3ehCqitrXfXGFd16v85coS2618YfBPpOLVQxqQZPMp0PKnj3HXCcXfSm
hmztsgKldI+dX/j+zDqHez5yITpgIrCZhzDMcvaLwkhU3xwYeqfwHA9g5ys3
sjurM7xnoxV5B8xiaNq10f3M7BGGMFuYDqpRHfgB76XQA19BjtAWaxKTGwZn
s0uejqqaDuF/GEYgHtxSa5jLHvR7SLnp9jkaOAuuCOfvNFG7wWN7FuXuWwZT
tFPzzV0KucSb4iq8gRPM5Xyy9iNGbZLkq38BfeuikUp6h0u6GRnBjkmbyf8B
dkYtFMTCAAA=

-->

</rfc>
