<?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.43 (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-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <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-08"/>
    <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="October" day="14"/>
    <area>Security</area>
    <workgroup>SEAT</workgroup>
    <keyword>attestation</keyword>
    <keyword>RATS</keyword>
    <keyword>TLS</keyword>
    <abstract>
      <?line 143?>

<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 TLS extension that enables the negotiation and 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.
This extension has 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 152?>

<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 an extension to the TLS handshake that enables 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"/>) this extension has 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>remoteAttestation</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="negotiating-protocol"/>.</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="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>
        <dt>Two-sided uniqueness:</dt>
        <dd>
          <t>The property that each peer independently contributes fresh nonces and key-exchange material to the handshake, so that neither peer alone can determine the transcript hash. The attestation binder derived from that transcript is therefore guaranteed to be unique to the specific connection, even if one of the peers is adversarial.</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 extension: A new <tt>remoteAttestation</tt> TLS extension is added to ClientHello, EncryptedExtensions, CertificateRequest, and Certificate messages to negotiate the use of attestation, indicate supported attestation formats and Verifiers, and carry the attestation credential.</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-extension">
      <name>Attestation Extension</name>
      <t>As typical with new features in TLS, the client indicates support for the new extension in the ClientHello message.
The newly introduced extension allows 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 the extension is successfully negotiated, attestation Evidence or Attestation Results are conveyed in a <tt>remoteAttestation</tt> extension (see <xref target="remote-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 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="remote-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="remote-attestation-extension-section">
        <name>Remote Attestation Extension</name>
        <t>As defined in <xref section="4.5.1" sectionFormat="of" target="RFC9846"/>, 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 extension defined in this document,
the <tt>remoteAttestation</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>remoteAttestation</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>remoteAttestation</tt> extension structure is defined in <xref target="_figure-remote-attestation-extension"/>.
As per <xref section="4.3" sectionFormat="of" target="RFC9846"/>, a single extension is used across the entire handshake.
The extension is used in ClientHello, EncryptedExtensions, and CertificateRequest messages for protocol negotiation (see <xref target="negotiating-protocol"/>).
The extension is used in Certificate messages for carrying attestation credentials.</t>
        <figure anchor="_figure-remote-attestation-extension">
          <name>TLS Extension Structure for Remote Attestation negotiation.</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 {
        opaque verifier_identity<0..2^16-1>;
    } VerifierIdentityType;

    enum { evidence(0), result(1), (255) } AttestationMechanism;

    struct {
        AttestationMechanism mechanism;
        select (mechanism) {
            case evidence: EvidenceType;
            case result:   VerifierIdentityType;
        } argument;
    } AttestationScheme;

    struct {
        select (Handshake.msg_type) {
            case client_hello:
                AttestationScheme server_attester_schemes<0..2^16-1>;

                AttestationScheme client_attester_schemes<0..2^16-1>;

            case encrypted_extensions:
                AttestationScheme chosen_server_scheme;

            case certificate_request:
                AttestationScheme chosen_client_scheme;

            case certificate:
                opaque cmw_payload<1..2^24-1>;
        };
    } remoteAttestation;
]]></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 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>remoteAttestation</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 Sections <xref target="RFC9846" section="4.1" sectionFormat="bare"/> and <xref target="RFC9846" section="7.1" sectionFormat="bare"/> of <xref target="RFC9846"/>.</t>
          <t>Both peers derive a single attestation base from the same transcript
checkpoint through ServerHello.</t>
          <t>The transcript <bcp14>MUST</bcp14> be computed as <tt>Transcript-Hash</tt> through ServerHello,
as defined in <xref section="4.1" sectionFormat="of" target="RFC9846"/>.  When the handshake includes
a HelloRetryRequest, the first ClientHello is not hashed as sent; the
transcript uses the synthetic <tt>message_hash</tt> message specified in that
section instead.</t>
          <artwork><![CDATA[
attest_base = HKDF-Expand-Label(0, "attestation base",
                    Transcript-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="RFC9846"/>).</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>
          <t><tt>HKDF-Expand-Label</tt> is defined in <xref section="7.1" sectionFormat="of" target="RFC9846"/>, which builds on the HKDF construction <xref target="RFC5869"/>; its use here does not modify the TLS protocol or the TLS key schedule.</t>
        </section>
        <section anchor="verification">
          <name>Verification</name>
          <t>Upon receipt of a <tt>remoteAttestation</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-Target-Environment TLS endpoint can obtain Evidence from a separate TLS endpoint that runs
inside a Target Environment 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 Target Environment, 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 need fresh Evidence or Attestation Results to reassess the trustworthiness of the peer.</t>
        <t>Similarly to the initial handshake, Early Attestation implements
reattestation at the TLS layer, using Extended Key Update (EKU)
<xref target="I-D.ietf-tls-extended-key-update"/>. This document defines a new <tt>ExtendedKeyUpdate</tt> subtype,
<tt>attestation_update</tt>, which carries a <tt>cmw_payload</tt> as defined in
<xref target="remote-attestation-extension-section"/>. Reattestation is available
only when EKU is also negotiated.</t>
        <t>Either peer <bcp14>MAY</bcp14> initiate EKU per its own policy. Each completed EKU
exchange triggers reattestation: a peer that attested in the
handshake <bcp14>MUST</bcp14> send <tt>attestation_update</tt>, using the scheme chosen in
the handshake. A peer that did not attest during the handshake <bcp14>MUST
NOT</bcp14> send <tt>attestation_update</tt>.</t>
        <t>Each peer waits for <tt>attestation_update</tt> only from a peer that
attested in the handshake. The two <tt>attestation_update</tt> messages are
independent; no order between them is required.</t>
        <t>This document extends <tt>ExtendedKeyUpdateType</tt> and <tt>ExtendedKeyUpdate</tt>
(<xref section="4" sectionFormat="of" target="I-D.ietf-tls-extended-key-update"/>) as follows:</t>
        <artwork><![CDATA[
enum {
    attestation_update(TBD4),
    (255)
} ExtendedKeyUpdateType;

struct {
    ExtendedKeyUpdateType eku_type;
    select (eku_type) {
        case attestation_update: {
            opaque cmw_payload<1..2^24-1>;
        }
    };
} ExtendedKeyUpdate;
]]></artwork>
        <figure anchor="_figure-reattestation">
          <name>Reattestation after EKU (DTLS ACKs omitted)</name>
          <artwork><![CDATA[
Initiator                                        Responder

[EKU(key_update_request)]N      -------->
                                <--------  [EKU(key_update_response)]N
[EKU(key_update_finish)]N       -------->
                 (EKU complete, N+1 in use)
[EKU(attestation_update)]N+1*   -------->
                                <--------  [EKU(attestation_update)]N+1*

* Sent only by a peer that attested in the handshake.
]]></artwork>
        </figure>
        <t>The attester sends <tt>attestation_update</tt> after the EKU exchange
completes (Sections <xref target="I-D.ietf-tls-extended-key-update" section="5" sectionFormat="bare"/> and <xref target="I-D.ietf-tls-extended-key-update" section="6" sectionFormat="bare"/> of <xref target="I-D.ietf-tls-extended-key-update"/>), under the N+1 application
traffic secrets, not the old keys (<xref section="7" sectionFormat="of" target="I-D.ietf-tls-extended-key-update"/>).
After the EKU exchange completes, the relying party expects
<tt>attestation_update</tt> from the attester. Each relying party sets a
timeout, per local policy, for receiving
<tt>attestation_update</tt>. On expiry, it aborts with a fatal
<tt>attestation_required</tt> alert. If appraisal fails, it aborts
with a fatal <tt>attestation_failed</tt> alert, as in <xref target="crypto-ops"/>. No
message is sent on success.</t>
        <t>A peer that receives <tt>attestation_update</tt> from a peer that did not
attest in the handshake, or before the EKU exchange completes, <bcp14>MUST</bcp14>
abort with an <tt>unexpected_message</tt> alert.</t>
        <t>Reattestation does not block application data. Until the relying
party completes appraisal of <tt>attestation_update</tt> or aborts with an
alert, it continues to rely on the outcome of the previous
successful appraisal.</t>
        <t>While reattestation is in progress, a peer <bcp14>MUST NOT</bcp14> initiate another
EKU exchange or post-handshake client authentication
(<xref section="4.7.2" sectionFormat="of" target="RFC9846"/>). Reattestation completes at the
attester when it sends <tt>attestation_update</tt> (TLS) or receives the
ACK for it (DTLS), and at the relying party when appraisal
completes. If both peers are attesting, reattestation completes
after both independent exchanges have completed. A relying party
that receives <tt>key_update_request</tt> or <tt>CertificateRequest</tt> before
its appraisal completes defers its response until appraisal
completes (Sections <xref target="I-D.ietf-tls-extended-key-update" section="5" sectionFormat="bare"/> and <xref target="I-D.ietf-tls-extended-key-update" section="6" sectionFormat="bare"/> of <xref target="I-D.ietf-tls-extended-key-update"/>, <xref section="4.7.2" sectionFormat="of" target="RFC9846"/>).
An attester that receives <tt>key_update_request</tt> or
<tt>CertificateRequest</tt> before it has sent <tt>attestation_update</tt> <bcp14>MUST</bcp14>
abort with an <tt>unexpected_message</tt> alert.</t>
        <t>The binder is derived as in <xref target="crypto-ops"/>, with
<tt>Transcript-Hash(ClientHello...ServerHello)</tt> replaced by
<tt>transcript_hash_N+1</tt> (<xref section="7" sectionFormat="of" target="I-D.ietf-tls-extended-key-update"/>):</t>
        <artwork><![CDATA[
attest_base_N+1 = HKDF-Expand-Label(0, "attestation base",
                      transcript_hash_N+1, Hash.length)

c_attest_binder_N+1 = HKDF-Expand-Label(attest_base_N+1, "attestation",
                      Hash(TLS_Client_Public_Key), Hash.length)
s_attest_binder_N+1 = HKDF-Expand-Label(attest_base_N+1, "attestation",
                      Hash(TLS_Server_Public_Key), Hash.length)
]]></artwork>
        <t><tt>transcript_hash_N+1</tt> covers the initial handshake, all prior EKU exchanges, and the key shares of the current exchange. Each reattestation therefore uses a fresh binder.</t>
      </section>
      <section anchor="session-resumption">
        <name>Session Resumption</name>
        <t>This specification targets long-lived TLS connections that use post-handshake
mechanisms, in particular Extended Key Update and reattestation
(<xref target="reattestation"/>). Session resumption (including early data) is not
supported with this protocol: <xref target="I-D.ietf-tls-extended-key-update"/> requires endpoints that enable EKU to
disable resumption using PSKs established via <tt>NewSessionTicket</tt>, and
reattestation depends on EKU.</t>
        <t>Endpoints that negotiate <tt>remoteAttestation</tt> as defined in this document
<bcp14>MUST NOT</bcp14> offer or accept session resumption for the connection. Fresh
attestation on a new connection requires a full handshake as in
<xref target="_figure-overview"/>. Establishing an initial connection with a pre-shared
key alone, without that certificate-based attestation exchange, is not
supported.</t>
      </section>
    </section>
    <section anchor="negotiating-protocol">
      <name>Negotiating This Protocol</name>
      <t>This section defines the TLS extension used to negotiate the use of attestation in the TLS handshake.
Both remote attestation topologies 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 extension defined in <xref target="_figure-remote-attestation-extension"/> allows peers to indicate their support for attestation and negotiate which attestation format and, if required, which Verifier to use.</t>
      <t>The <tt>remoteAttestation</tt> extension structure contains indicators for both remote attestation topologies, and allows both peers to act as attesters independently during the handshake.</t>
      <t>The client selects the remote attestation schemes it supports for both server- or client-as-attester.
The client <bcp14>MUST</bcp14> populate at least one AttestationScheme structure.</t>
      <t>The server replies with its preferred schemes for both server- and client-as-attester.
The selected server-as-attester scheme is sent in the EncryptedExtensions message.
While for Background Check the server scheme can be extracted from the CMW sent by the server as part of its Certificate message, for Passport model the Verifier which issued the Attestation Results must be confirmed by the server explicitly.
In order to preserve symmetry and aid the client in handling the server's attestation token, the server explicitly sends its scheme as part of EncryptedExtensions.
The selected client-as-attester scheme is sent in the CertificateRequest message.
The server <bcp14>MUST</bcp14> omit the <tt>remoteAttestation</tt> extension from EncryptedExtensions and CertificateRequest messages if it does not support the corresponding proposed schemes, or if it does not want the corresponding peer to engage in remote attestation.</t>
      <t>The <tt>remoteAttestation</tt> extension used to negotiate support for the protocol described in this document is defined in <xref target="_figure-remote-attestation-extension"/>.</t>
      <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"/>.
The verifier_identity field can be used to carry an identifier for a Verifier instance.
The identifier needs to be stable across the lifetime of the connection (potentially across Verifier credential rotation), for example a subjectAltName.</t>
      <section anchor="negotiation-integrity">
        <name>Negotiation Integrity</name>
        <t>The <tt>remoteAttestation</tt> extension is negotiated by both peers. Finished is computed and verified by both peers over the complete handshake transcript. Tampering with the extension changes that transcript, causing Finished to fail. Negotiation downgrade is therefore already detected by TLS 1.3's existing transcript integrity.</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 <tt>remoteAttestation</tt> extension added to the ClientHello, the EncryptedExtensions, the CertificateRequest, and the Certificate 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*
     v + remoteAttestation*
     -------->
                                                  ServerHello ^ Key
                                                 + key_share* | Exch
                                            + pre_shared_key* v
                                        {EncryptedExtensions} ^ Server
                                         + remoteAttestation* | Params
                                        {CertificateRequest*} |
                                         + remoteAttestation* v
                                               {Certificate*} ^
                                        + remoteAttestation*  |
                                         {CertificateVerify*} | Auth
                                                   {Finished} v
                               <--------  [Application Data*]
     ^ {Certificate*}
     | + remoteAttestation*
Auth | {CertificateVerify*}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]
]]></artwork>
      </figure>
      <section anchor="client-hello">
        <name>Client Hello</name>
        <t>The <tt>remoteAttestation</tt> extension defined in <xref target="negotiating-protocol"/> enables the two peers to use either the Background Check Model or the Passport Model for remote attestation.</t>
        <t>To indicate support for either Evidence (for Background Check) or Attestation Results (for Passport), the client includes schemes with either <tt>evidence</tt> or <tt>result</tt> as the AttestationMechanism in the ClientHello extension.
For Evidence, the scheme indicates the expected Evidence type.
For Attestation Results, the scheme indicates the identity of the Verifier from which results can be relayed.
In both cases, whether the scheme is sent as <tt>server_attester_schemes</tt> or <tt>client_attester_schemes</tt> indicates which peer is expected to produce the attestation credential.</t>
        <t>The <tt>remoteAttestation</tt> extension carries a list of supported schemes, sorted by preference.
If the client only supports one attestation credential type, it is a list containing a single element.</t>
        <t>The client <bcp14>MUST</bcp14> omit schemes from the <tt>client_attester_schemes</tt> field in the extension if it cannot respond to a request from the server to present an attestation credential of the proposed type, or if the client is not configured to use the proposed scheme with the given server.
If the client chooses to include <tt>client_attester_schemes</tt>, it <bcp14>MUST</bcp14> be capable of authenticating itself with a certificate.</t>
        <t>For the Background Check Model, the client <bcp14>MUST</bcp14> omit Evidence types from the <tt>server_attester_schemes</tt> field in the extension if it is not able to pass the Evidence type to a Verifier.</t>
      </section>
      <section anchor="server-hello">
        <name>Server Hello</name>
        <t>If the server receives a ClientHello that contains the <tt>remoteAttestation</tt> extension, then three outcomes are possible:</t>
        <ul spacing="normal">
          <li>
            <t>The server does not support the extension defined in this document.
In this case, the server returns the EncryptedExtensions without the <tt>remoteAttestation</tt> extension.</t>
          </li>
          <li>
            <t>The server supports the extension defined in this document, but it does not have any remote attestation scheme in common with the client.
Then, the server terminates the session with a fatal alert of type "unsupported_attestation_schemes".</t>
          </li>
          <li>
            <t>The server supports the extension defined in this document and has at least one remote attestation scheme in common with the client.
In this case, the processing rules described below are followed.</t>
          </li>
        </ul>
        <t>The <tt>remoteAttestation</tt> extension in the ClientHello indicates the attestation schemes for both peers to act as relying parties.
For schemes conveyed under <tt>server_attester_schemes</tt> the server is expected to act as an attester, while the client is the relying party.
For schemes conveyed under <tt>client_attester_schemes</tt> the server is expected to act as a relying party, while the client is the attester.</t>
        <t>If the server chooses to attest itself, it <bcp14>MUST</bcp14> select one of the schemes provided by the client in <tt>server_attester_schemes</tt>.
The server <bcp14>MUST</bcp14> then also include the <tt>remoteAttestation</tt> extension in the EncryptedExtensions message, and <bcp14>MUST</bcp14> include the chosen attestation scheme in the <tt>chosen_server_scheme</tt>.
The server <bcp14>MUST</bcp14> populate the Certificate message extension according to its chosen scheme.
If the server has chosen an <tt>evidence</tt> scheme, 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.</t>
        <t>Both schemes selected for <tt>chosen_server_scheme</tt> and <tt>chosen_client_scheme</tt> <bcp14>MUST</bcp14> be selected from the schemes provided in the <tt>remoteAttestation</tt> extension sent in the ClientHello.</t>
        <t>If both <tt>server_attester_schemes</tt> and <tt>client_attester_schemes</tt> are empty, or if the server does not want to proceed with remote attestation, the server <bcp14>MUST</bcp14> terminate the session as described above, with a fatal alert of type "unsupported_attestation_schemes".</t>
      </section>
      <section anchor="certificate-request">
        <name>Certificate Request</name>
        <t>If the server chooses to request that the client attests itself, it <bcp14>MUST</bcp14> select one of the schemes provided by the client in <tt>client_attester_schemes</tt>.
The server <bcp14>MUST</bcp14> then also send a CertificateRequest message that includes the <tt>remoteAttestation</tt> extension (see <xref target="_figure-remote-attestation-extension"/>), and <bcp14>MUST</bcp14> include the chosen attestation scheme in <tt>chosen_client_scheme</tt>.</t>
      </section>
      <section anchor="following-server-hello">
        <name>Following Server Hello</name>
        <t>Upon receipt of the EncryptedExtensions and potentially of the CertificateRequest messages, the client can verify that the server's choices are valid.
The client <bcp14>MUST</bcp14> check that at least one remote attestation scheme was returned, and that the returned schemes were among the corresponding proposed lists.
If the server has rejected that one peer act as an attester by not selecting a corresponding scheme, and the client's policy demands that the remote attestation take place, the client <bcp14>MUST</bcp14> terminate the session with a fatal alert of type "attestation_required".</t>
        <t>If the server has selected a valid <tt>chosen_client_scheme</tt>, the client <bcp14>MUST</bcp14> populate the Certificate message extension according to that scheme.
If the server has chosen an <tt>evidence</tt> scheme for the client, 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.</t>
      </section>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <section anchor="relay-resistance">
        <name>Relay Resistance</name>
        <t>A relay attack succeeds when Evidence produced in one TLS connection can be
presented by a different party in another TLS connection. Preventing it
requires that Evidence be bound to a value that is unique to the TLS connection
in which it is conveyed, so that Evidence generated in any one connection
cannot be replayed in any other.</t>
        <t>This mechanism meets that requirement by binding Evidence to the handshake
transcript checkpoint <tt>ClientHello...ServerHello</tt> (see <xref target="crypto-ops"/>), a value
that is unique to each connection. The binding does not rely on the application
traffic secrets, nor on any value exported from the completed handshake such as
the Exported Keying Material (EKM; <xref section="7.5" sectionFormat="of" target="RFC9846"/>). EKM is an equally
valid per-connection anchor; the remainder of this section shows that binding to
the transcript checkpoint and binding to EKM provide equivalent relay
resistance.</t>
        <t>The two approaches differ only in which connection-unique value the Evidence is
anchored to:</t>
        <ul spacing="normal">
          <li>
            <t>A post-handshake binding anchors Evidence to EKM, a value that becomes
available only after the handshake completes.</t>
          </li>
          <li>
            <t>The mechanism in this document anchors Evidence to
<tt>Transcript-Hash(ClientHello...ServerHello)</tt>.</t>
          </li>
        </ul>
        <t>Both anchors are unique per connection. The transcript checkpoint commits to
both peers' fresh ephemeral key-exchange contributions, that is, the client's
and server's <tt>key_share</tt> entries in the transcript (whether (EC)DHE public keys
or a PQC KEM public key and ciphertext), as well as <tt>ClientHello.random</tt> and
<tt>ServerHello.random</tt>.  After a HelloRetryRequest, these are the values from the
updated ClientHello and the ServerHello, as included in <tt>Transcript-Hash</tt>
(<xref section="4.1" sectionFormat="of" target="RFC9846"/>).</t>
        <t>Because each peer independently contributes fresh material, neither peer alone
controls the transcript, and the resulting binder is unique to the specific
connection (two-sided uniqueness).</t>
        <t>The two constructions therefore offer equal relay resistance.</t>
        <t>The relay resistance of this mechanism does not depend on the transcript being secret.
It relies instead on the attestation binder, which is unique to the connection and
bound to the attester's TLS identity key, being carried in Evidence signed by the
TEE (see <xref target="crypto-ops"/> and <xref target="tik-binding"/>); the confidentiality of ClientHello
and ServerHello is not required.</t>
        <t>Although <tt>ClientHello</tt> and <tt>ServerHello</tt> are visible to an on-path observer, an
eavesdropper cannot reuse them to complete a new TLS connection, as it does not know
the ephemeral private keys behind the key shares they carry. Nor can the client or
server reproduce an earlier transcript: each contributes fresh key-exchange material
to every handshake, so every connection yields a different transcript, and therefore a
different binder.</t>
        <t>The rationale for anchoring to the transcript rather than to an exporter value is
given in <xref target="transcript-vs-exporter"/>.</t>
        <section anchor="worked-example-relay">
          <name>Worked Example: Relay Attempt Under Handshake-Secret Compromise</name>
          <t>The server holds a TLS authentication key (the TIK), certified by a CA. The client truststore has the CA and verifies the end-entity certificate chains to it. The client checks that the public key in the end-entity certificate matches the TIK and relies on CertificateVerify for proof of possession. Each handshake also uses a fresh ephemeral (EC)DHE key share, carried in ClientHello/ServerHello, from which the connection secrets are derived.</t>
          <t><cref>This example is deliberately generic; it will be updated in future revisions based on the outcome of confidential-computing-specific discussions.</cref></t>
          <t>Suppose an attacker obtains a connection's handshake secret (or the ephemeral
private key from which it is derived). The attacker can then derive that
connection's handshake traffic secrets and decrypt the handshake, including the
Evidence carried in the encrypted <tt>Certificate</tt> message. This compromises the
confidentiality of that single connection. It does not let the attacker replay
the Evidence in a different TLS session: the Evidence is bound to this
connection's <tt>ClientHello...ServerHello</tt> transcript and to the TIK, and any other
TLS connection uses fresh key shares, yielding a different transcript and a different
binder. The exposed Evidence therefore does not match any other connection and is
rejected. Consistent with TLS 1.3 forward secrecy, the impact is confined to the
compromised session. <xref target="_figure-relay-attempt"/> illustrates this case.</t>
          <figure anchor="_figure-relay-attempt">
            <name>Even having read the Evidence from connection 1, the attacker cannot reproduce connection 1's transcript on connection 2: the client contributes fresh randomness and key share, so the binder does not match and the handshake is aborted</name>
            <artwork><![CDATA[
Legend:  CR = ClientHello.random    SR = ServerHello.random
         cks = client key_share     sks = server key_share
         T = Transcript-Hash(ClientHello...ServerHello)
         E = Evidence signed by the Attesting Environment, bound to T

   Client                     Server                        Attacker
      |                              |                            |
      |== Connection 1 : Client <-> Server =======================|
      |  CH_1 { CR_1, cks_1 } ------>|                            |
      |<----- SH_1 { SR_1, sks_1 }   |                            |
      |        T1 = Hash(CH_1..SH_1) |                            |
      |<----- {Certificate: E}       |                            |
      |        E bound to T1         |                            |
      |                              |   attacker has obtained    |
      |                              |   connection 1's handshake |
      |                              |   secret: decrypts conn 1  |
      |                              |   and reads Evidence E     |
      |                              |                            |
      |== Connection 2 : Client <-> Attacker (posing as server) ==|
      |  CH_2 { CR_2, cks_2 } ----------------------------------->|
      |     CR_2 != CR_1 , cks_2 != cks_1                         |
      |     (client contributes fresh values; attacker            |
      |      cannot control them)                                 |
      |                                                           |
      |<---------------------- SH_2 { SR_1, sks_1 }               |
      |     attacker replays connection 1's server values         |
      |     to try to reproduce T1                                |
      |<-------------------- {Certificate: replayed E (bound T1)} |
      |                                                           |
      |  T2 = Hash(CH_2..SH_2)                                    |
      |  CH_2 != CH_1  =>  T2 != T1                               |
      |  client computes binder over T2 ;                         |
      |  E is bound to T1  =>  binder mismatch                    |
      |                                                           |
      |<-------------------- >> attestation_failed <<             |
      |                        handshake aborted                  |
      |                                                           |
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="key-substitution-resistance">
        <name>Key Substitution Resistance</name>
        <t>A peer may hold an authentication private key that was generated and
protected within an Attesting Environment, but has since been compromised
via a side-channel attack and imported into a second Attesting Environment.
Channel binding as defined in <xref target="relay-resistance"/> does not prevent this,
since it is not relay or replay of Evidence across connections, but
Evidence from an Attesting Environment vouching for a key it did not generate.</t>
        <t>Preventing this requires Evidence to assert that the TIK was generated within
the Attesting Environment, has never existed outside it, and is non-exportable,
not merely that it is currently protected. <xref target="I-D.reddy-rats-key-binding"/>
defines this key-provenance property via the <tt>local</tt> and <tt>never-extractable</tt>
key-attributes conveyed alongside the Subject Public Key, and it applies
equally to intra-handshake and post-handshake attestation. These attributes
are therefore only as trustworthy as that environment itself, as established
by appraisal against applicable reference values and endorsements and by the
trust anchor for the Attestation Key (<xref target="RFC9334"/>).</t>
        <t>A summary of the security properties this mechanism provides is given in
<xref target="security-properties-summary"/>.</t>
      </section>
      <section anchor="pcs">
        <name>Evidence Confidentiality After Compromise</name>
        <t>The relay-resistance analysis in <xref target="relay-resistance"/> shows that Evidence exposed by a handshake-secret compromise cannot be relayed on a different connection. It says nothing about Evidence sent later on that same connection.</t>
        <t>Suppose an attacker obtains a connection's handshake secret, as in <xref target="worked-example-relay"/>, and new Evidence is subsequently carried on that same connection (see <xref target="reattestation"/>). If that Evidence is protected under a compromised handshake secret, the attacker decrypts it too.</t>
        <t>Preventing this requires Post-Compromise Security (PCS): new Evidence is sent only after the connection has moved to fresh traffic secrets, independent of the compromised one. <xref target="I-D.ietf-tls-extended-key-update"/> provides this via Extended Key Update (EKU). Reattestation (<xref target="reattestation"/>) sends new Evidence only after EKU completes.</t>
      </section>
      <section anchor="reattestation-freshness">
        <name>Reattestation Freshness</name>
        <t>Each reattestation is bound to <tt>transcript_hash_N+1</tt> of the EKU exchange that precedes it (see <xref target="reattestation"/>). Evidence generated for an earlier generation does not match the current binder and is rejected.</t>
      </section>
      <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>Evidence appraised at handshake time reflects the Target Environment's state at that moment. Cases that can cause that appraisal to go stale without the Relying Party being aware include:</t>
        <ul spacing="normal">
          <li>
            <t>The connection remains open and continues to carry data after the Target Environment's state has changed and no reattestation has occurred.</t>
          </li>
          <li>
            <t>Some Claims describe configuration state that can change at runtime without a reboot. If the Attesting Environment does not re-collect such a Claim before each attestation, it keeps asserting a stale value even after reattestation.</t>
          </li>
        </ul>
        <t>The Relying Party cannot observe the Target Environment directly and so has no way to detect that its state has changed. A Relying Party that needs assurance about current state applies local policy for how long an appraisal remains acceptable and requests attestation once that interval elapses, using the mechanism in <xref target="reattestation"/>. Session resumption is not used to carry forward an appraisal to a new connection (see <xref target="session-resumption"/>).</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>
      <section anchor="server-attester-privacy">
        <name>Server Attestation to Unauthenticated Clients</name>
        <t>Due to the inherent asymmetry of the TLS handshake, when the Attester acts as the
TLS server it produces attestation before the client has authenticated. As a
result, any unauthenticated client that completes the handshake can read
the Claims carried in the server's Evidence, without its own trustworthiness first
being established by the server. The following considerations bound the impact of
this exposure and offer mitigations.</t>
        <ul spacing="normal">
          <li>
            <t>Passport model with selective disclosure: In the Passport topology
(<xref section="5.1" sectionFormat="of" target="RFC9334"/>), the server presents a Verifier-signed
Attestation Result instead of the Evidence, so the Evidence never reaches the
client. As the signer, the Verifier can issue this result in
selectively-disclosable form (SD-CWT <xref target="I-D.ietf-spice-sd-cwt"/> or SD-JWT <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/>), letting
the server reveal only a subset of Claims.</t>
          </li>
        </ul>
        <t>See <xref target="I-D.ounsworth-rats-privacy-framework"/> for a broader treatment of privacy in the RATS context.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="tls-extensions">
        <name>TLS Extensions</name>
        <t>IANA is asked to allocate a new TLS extension, <tt>remoteAttestation</tt>, from the
"TLS ExtensionType Values" subregistry of the "Transport Layer Security (TLS)
Extensions" registry <xref target="TLS-Ext-Registry"/>.  This extension is used in the
ClientHello, EncryptedExtensions, CertificateRequest, and Certificate messages.
The values carried in this extension are defined in
<xref target="_figure-remote-attestation-extension"/>.</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_attestation_schemes</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: attestation_required</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 anchor="tls-extendedkeyupdate-message-subtypes">
        <name>TLS ExtendedKeyUpdate Message Subtypes</name>
        <t>IANA is requested to add the following entry to the "TLS
ExtendedKeyUpdate Message Subtypes" registry established by
<xref target="I-D.ietf-tls-extended-key-update"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD4</t>
          </li>
          <li>
            <t>Description: attestation_update</t>
          </li>
          <li>
            <t>DTLS-OK: Y</t>
          </li>
          <li>
            <t>Reference: [This document]</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>We would like to thank Serhii Nikolaichuk for his implementation and review of this document.</t>
      <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="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </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="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="4" month="July" year="2026"/>
            <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 (typically a private
   key with a corresponding certificate) 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 execution of the key exchange
   negotiated during the initial handshake 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-13"/>
        </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="23" month="July" year="2026"/>
            <abstract>
              <t>   This draft has been withdrawn.

About This Document

   This note is to be removed before publishing as an RFC.

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-fossati-tls-attestation/.

   Source for this draft and an issue tracker can be found at
   https://github.com/yaronf/draft-tls-attestation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fossati-tls-attestation-10"/>
        </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-spice-sd-cwt">
          <front>
            <title>Selective Disclosure CBOR Web Tokens (SD-CWT)</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>mesur.io</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
         </author>
            <date day="1" month="June" year="2026"/>
            <abstract>
              <t>   This specification describes a data minimization technique for use
   with CBOR Web Tokens (CWTs).  The approach is inspired by the
   Selective Disclosure JSON Web Token (SD-JWT), with changes to align
   with CBOR Object Signing and Encryption (COSE) and CWTs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spice-sd-cwt-08"/>
        </reference>
        <reference anchor="I-D.ounsworth-rats-privacy-framework">
          <front>
            <title>Privacy Framework for Remote ATtestation procedureS</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Cryptic Forest Software</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <author fullname="Guiliano Lehmann" initials="G." surname="Lehmann">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <date day="18" month="June" year="2026"/>
            <abstract>
              <t>   This document extends the RATS Architecture to consider "coercive
   uses of RATS" where a malicious Verifier or Relying Party uses RATS
   protocols to extract sensitive information from an Attester or a
   victim Verifier that it would not otherwise be inclined to disclose.
   This over-disclosure can include revealing sensitive measurements,
   stable identifiers, device fingerprints, vendor information, or
   conclusions derived from Evidence.  This document defines a privacy
   framework for Remote Attestation that identifies this threat
   surfaces; classifies claims produced by Attesters and Presenters;
   restricts sensitive Evidence disclosure to authorized Trusted
   Verifiers using confidentiality protection; and describes privacy-
   preserving Attestation Results based on data minimization, Selective
   Disclosure, and Zero-Knowledge Proofs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-rats-privacy-framework-00"/>
        </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.reddy-rats-key-binding">
          <front>
            <title>Key Attestation for Entity Attestation Tokens (EAT)</title>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="15" month="August" year="2026"/>
            <abstract>
              <t>   This document defines an Entity Attestation Token (EAT) profile and a
   new EAT claim that convey the subject public key and its protection
   properties within attestation evidence.  Combined with protocol-level
   proof of possession from the surrounding protocol, this establishes a
   cryptographic binding between a private key and an attested execution
   environment.

   The subject public key is conveyed using the EAT cnf claim defined in
   [RFC8747] and [RFC7800], and freshness uses the EAT eat_nonce claim
   defined in [RFC9711].  The proof of possession of the subject key is
   obtained from the surrounding protocol, such as TLS certificate-based
   authentication or CSR signature verification.  Because the EAT is
   signed by a hardware-backed Attestation Key (AK), successful
   verification of the EAT signature together with protocol-level proof
   of possession establishes a cryptographic binding between the private
   key and the attested platform state.  This mechanism addresses key
   substitution attacks that arise when attestation evidence and the
   certificate private keys are validated independently.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-reddy-rats-key-binding-02"/>
        </reference>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </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 1064?>

<section anchor="document-history">
      <name>Document History</name>
      <section anchor="draft-fossati-seat-early-attestation-08">
        <name>draft-fossati-seat-early-attestation-08</name>
        <ul spacing="normal">
          <li>
            <t>Defined reattestation using Extended Key Update; removed other reattestation options. Appraisal failure is signalled with the <tt>attestation_failed</tt> alert.</t>
          </li>
          <li>
            <t>Defined <tt>attestation_update</tt> wire format and message flow; reattestation does not block application data.</t>
          </li>
          <li>
            <t>Added <xref target="why-eku"/>.</t>
          </li>
          <li>
            <t>Added <xref target="session-resumption"/>: session resumption (and early data) not supported since it conflicts with EKU.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-07">
        <name>draft-fossati-seat-early-attestation-07</name>
        <ul spacing="normal">
          <li>
            <t>Added relay resistance and key substitution resistance into separate sections.</t>
          </li>
          <li>
            <t>Added <xref target="pcs"/> (Post-Compromise Security via EKU).</t>
          </li>
          <li>
            <t>Added <xref target="reattestation-freshness"/>.</t>
          </li>
          <li>
            <t>Filled in <xref target="freshness-guarantees"/> (was a TODO).</t>
          </li>
          <li>
            <t>Added <xref target="negotiation-integrity"/>.</t>
          </li>
          <li>
            <t>Adopted RFC 9334 terminology (Attesting Environment).</t>
          </li>
          <li>
            <t>Scoped <xref target="negotiation-integrity"/> to certificate-based auth; corrected to CertificateVerify.</t>
          </li>
          <li>
            <t>Reframed <xref target="reattestation-freshness"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-06">
        <name>draft-fossati-seat-early-attestation-06</name>
        <ul spacing="normal">
          <li>
            <t>Add a Security Considerations subsection on relay resistance, showing that
transcript binding (<tt>ClientHello...ServerHello</tt>) and EKM binding offer equal
relay resistance (see <xref target="relay-resistance"/>).</t>
          </li>
          <li>
            <t>Expand Privacy Considerations to cover server attestation to unauthenticated
clients, with mitigations (selective disclosure via
SD-CWT, and the Passport model) (see <xref target="server-attester-privacy"/>).</t>
          </li>
          <li>
            <t>Add an appendix with the design rationale for anchoring the binder to the
transcript rather than to an exporter secret (see <xref target="transcript-vs-exporter"/>).</t>
          </li>
          <li>
            <t>Add an appendix noting that the <tt>ClientHello...ServerHello</tt> transcript can be
computed using existing TLS-stack APIs, requiring no new interface (see
<xref target="transcript-apis"/>).</t>
          </li>
          <li>
            <t>Clarify that <tt>HKDF-Expand-Label</tt> is the TLS 1.3 wrapper over <tt>HKDF-Expand</tt>
(<xref target="RFC5869"/>) and that its use does not modify the TLS protocol or the key
schedule.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-05">
        <name>draft-fossati-seat-early-attestation-05</name>
        <ul spacing="normal">
          <li>
            <t>Change extension model to a single <tt>remoteAttestation</tt> extension that covers all handshake messages which need extending.</t>
          </li>
        </ul>
      </section>
      <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>
    <section anchor="transcript-vs-exporter">
      <name>Design Rationale: Why the Transcript and Not the Exporter</name>
      <t><xref target="relay-resistance"/> establishes that binding to the
<tt>ClientHello...ServerHello</tt> transcript checkpoint and binding to an exported
value (EKM) offers two independent methods to provide equal relay resistance. This appendix discusses the rationale behind anchoring the
attestation binder to the transcript rather than to an exporter
secret.</t>
      <ul spacing="normal">
        <li>
          <t>Attestation happens during the handshake. When Evidence is produced and bound
as part of the handshake, EKM does not yet exist: it is derived only after the
handshake completes. Evidence produced during the handshake therefore cannot be
anchored to EKM.</t>
        </li>
        <li>
          <t>TLS 1.3 defines an <tt>early_exporter_secret</tt> (<xref section="7.5" sectionFormat="of" target="RFC9846"/>),
which is available earlier. However, it is only meaningful when a PSK is in use.
With no PSK, the Early Secret is HKDF-Extract(0, 0), so the early_exporter_secret
has no secret input; moreover, it is derived from the ClientHello alone and
carries no contribution from the server side of the handshake. It therefore does
not provide the two-sided uniqueness (<xref target="terminology"/>) the binder requires.</t>
        </li>
      </ul>
    </section>
    <section anchor="why-eku">
      <name>Design Rationale: Why Extended Key Update for Reattestation</name>
      <ul spacing="normal">
        <li>
          <t>Post-handshake authentication (<xref section="4.7.2" sectionFormat="of" target="RFC9846"/>) is
client-only. TLS has no post-handshake server authentication.</t>
        </li>
        <li>
          <t>Reattestation without a key update sends Evidence under traffic
secrets that may be compromised (<xref target="pcs"/>). EKU moves the connection
to fresh secrets first.</t>
        </li>
        <li>
          <t>Exported Authenticators operate at the application layer, while
this document keeps attestation within TLS.</t>
        </li>
      </ul>
    </section>
    <section anchor="transcript-apis">
      <name>Computing the Handshake Transcript with Existing TLS APIs</name>
      <t>The attestation binder is computed over <tt>Transcript-Hash(ClientHello...ServerHello)</tt>
(see <xref target="crypto-ops"/>), using the transcript hash defined in <xref section="4.1" sectionFormat="of" target="RFC9846"/>
(including HelloRetryRequest handling).</t>
      <t>Where the TLS stack exposes its handshake transcript hash at the ServerHello
checkpoint, implementations use that value.</t>
      <t>Where it exposes only the handshake messages, for example through a message
callback, the transcript can be rebuilt from them; the <tt>message_hash</tt>
substitution <bcp14>MUST</bcp14> then be applied after a HelloRetryRequest, because
concatenating the messages as sent does not give the transcript hash.</t>
    </section>
    <section anchor="security-properties-summary">
      <name>Summary of Security Properties</name>
      <t>This appendix summarizes the security properties relevant to binding attestation
to the TLS handshake.</t>
      <t>Transcript integrity and cryptographic binding:
While a MiTM can intercept the TLS handshake and replay arbitrary messages
(including fake key shares, copied certificates, or spoofed Evidence), it cannot
complete the TLS connection. The TLS peer's private key signs the handshake
transcript via CertificateVerify. Because substituting key shares alters that
transcript, a MiTM lacking the peer's private key cannot produce a valid
signature over the tampered transcript or derive the correct Finished MAC, so the
peer rejects the connection.</t>
      <t>Explicit key confirmation:
Although the Certificate message is evaluated before the Finished MAC, TLS 1.3
enforces explicit key confirmation via the Finished MAC over the complete
handshake transcript before the connection is established. No application data is
exchanged until key confirmation succeeds, so a failed confirmation aborts the
connection regardless of the earlier Certificate and Evidence processing.</t>
      <t>TLS connection uniqueness and replay resistance:
As established in <xref target="relay-resistance"/>, TLS 1.3 generates fresh ephemeral key
shares for every connection, and the signed attestation Evidence is bound, via
the handshake transcript, to the connection's ephemeral key shares. The Evidence also
binds the attester's public key used in the end-entity certificate for
authentication (<xref target="tik-binding"/>). Evidence is therefore bound to a single
connection and to the identity key used in that handshake: an attacker cannot
replay Evidence from a past connection, because the key share in the new handshake
will not match the key bound in the old Evidence.</t>
      <t>Forward secrecy:
Forward secrecy is inherited from TLS 1.3 and is not a property added by this
mechanism. Because TLS 1.3 mandates ephemeral key exchange, compromise of a
long-term authentication key does not compromise past session keys: an attacker
cannot recompute past shared secrets or tamper with past encrypted handshake
transcripts.</t>
      <t>Hardware-enforced execution isolation:
This property is provided by the platform, not by this mechanism. When the target
environment runs only measured, appraised code, isolation prevents an attacker
from running arbitrary code inside it to make the TEE attest a key that was not
generated locally within the environment and could be exported from it. Its strength
depends on the platform's isolation and measurement assurances (see <xref target="sec-guarantees"/>),
which are the subject of work in the RATS working group.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
