<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<?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-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Attestation in TLS/DTLS">Using Attestation in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
    <seriesInfo name="Internet-Draft" value="draft-fossati-seat-early-attestation-06"/>
    <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="August" day="05"/>
    <area>Security</area>
    <workgroup>TLS</workgroup>
    <keyword>attestation</keyword>
    <keyword>RATS</keyword>
    <keyword>TLS</keyword>
    <abstract>
      <?line 142?>

<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 151?>

<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 Section 4.4.2 of <xref target="I-D.ietf-tls-rfc8446bis"/>, the TLS <tt>Certificate</tt> message
contains a <tt>certificate_list</tt>, which is a sequence of <tt>CertificateEntry</tt>
structures.</t>
        <t>When attestation is negotiated via the 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.2" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>, 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 Section 4.4.1 and 7.1 of <xref target="I-D.ietf-tls-rfc8446bis"/>.</t>
          <t>Both peers derive a single attestation base from the same transcript
checkpoint, <tt>ClientHello...ServerHello</tt>.</t>
          <artwork><![CDATA[
attest_base = HKDF-Expand-Label(0, "attestation base",
                                Hash(ClientHello...ServerHello), Hash.length)

c_attest_binder = HKDF-Expand-Label(attest_base, "attestation",
                                    Hash(TLS_Client_Public_Key), Hash.length)
s_attest_binder = HKDF-Expand-Label(attest_base, "attestation",
                                    Hash(TLS_Server_Public_Key), Hash.length)
]]></artwork>
          <t><tt>TLS_Client_Public_Key</tt> and <tt>TLS_Server_Public_Key</tt> denote the DER-encoded
SubjectPublicKeyInfo of the peer's end-entity certificate. <tt>Hash</tt> is the
cipher suite hash function for the handshake (<xref section="7.1" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>).</t>
          <t>We note that <tt>HKDF-Expand-Label</tt> is used to produce binding values rather than keying material. <tt>HKDF-Extract</tt> is not invoked, as there is no input key material to combine. The "0" parameter denotes a byte string of <tt>Hash.length</tt> zeroes.</t>
          <t><tt>HKDF-Expand-Label</tt> is defined in <xref section="7.1" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>, 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-TEE TLS endpoint can obtain Evidence from a separate TLS endpoint that genuinely runs
inside a TEE and relay that Evidence to the relying party while executing the TLS handshake itself. If the
Evidence only attests that a TLS stack is running in a TEE, the relying party cannot determine whether the
attested TLS stack is the one that actually performed the handshake. Binding the Evidence to the TIK public key
prevents this relay attack.</t>
        <t>The proposed binding ensures that the relying party does not establish a TLS session with a TLS endpoint whose TIK is not generated and controlled by the TEE. It does not - in and of itself - ensure security of the TLS stack when the stack is
outside the TEE, and see <xref target="sec-guarantees"/> for a further discussion.</t>
      </section>
      <section anchor="stack-tee-interface">
        <name>The TLS Stack's Interface to the TEE</name>
        <t>When the TEE signs the Evidence or Attestation Results, it also binds them to the TLS Identity public key and the TLS
session. TEE implementations differ, and some only allow a single user-provided challenge value to be added to the Evidence with no associated checks.</t>
        <t>Architecturally we propose to add a thin shim between the traditional TLS stack and the TEE
as shown in <xref target="_figure-tls-tee-interface"/>. Implementations will choose whether to incorporate
the shim into the TEE (making for a "smarter" TEE and better protection
for the remote attestation protocol), or in case of a legacy TEE that cannot be modified,
the shim can be added to the TLS stack.</t>
        <figure anchor="_figure-tls-tee-interface">
          <name>TLS Stack Interface with the TEE</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="432" width="544" viewBox="0 0 544 432" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 8,192 L 8,256" fill="none" stroke="black"/>
                <path d="M 8,320 L 8,416" fill="none" stroke="black"/>
                <path d="M 24,368 L 24,400" fill="none" stroke="black"/>
                <path d="M 64,96 L 64,184" fill="none" stroke="black"/>
                <path d="M 64,256 L 64,312" fill="none" stroke="black"/>
                <path d="M 168,368 L 168,400" fill="none" stroke="black"/>
                <path d="M 272,104 L 272,192" fill="none" stroke="black"/>
                <path d="M 272,264 L 272,320" fill="none" stroke="black"/>
                <path d="M 432,32 L 432,96" fill="none" stroke="black"/>
                <path d="M 432,192 L 432,256" fill="none" stroke="black"/>
                <path d="M 432,320 L 432,416" fill="none" stroke="black"/>
                <path d="M 504,32 L 504,192" fill="none" stroke="black"/>
                <path d="M 504,256 L 504,416" fill="none" stroke="black"/>
                <path d="M 8,32 L 432,32" fill="none" stroke="black"/>
                <path d="M 456,32 L 504,32" fill="none" stroke="black"/>
                <path d="M 8,96 L 432,96" fill="none" stroke="black"/>
                <path d="M 8,192 L 432,192" fill="none" stroke="black"/>
                <path d="M 8,256 L 432,256" fill="none" stroke="black"/>
                <path d="M 8,320 L 432,320" fill="none" stroke="black"/>
                <path d="M 24,368 L 168,368" fill="none" stroke="black"/>
                <path d="M 24,400 L 168,400" fill="none" stroke="black"/>
                <path d="M 8,416 L 432,416" fill="none" stroke="black"/>
                <path d="M 456,416 L 504,416" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="280,264 268,258.4 268,269.6" fill="black" transform="rotate(270,272,264)"/>
                <polygon class="arrowhead" points="280,104 268,98.4 268,109.6" fill="black" transform="rotate(270,272,104)"/>
                <polygon class="arrowhead" points="72,312 60,306.4 60,317.6" fill="black" transform="rotate(90,64,312)"/>
                <polygon class="arrowhead" points="72,184 60,178.4 60,189.6" fill="black" transform="rotate(90,64,184)"/>
                <g class="text">
                  <text x="192" y="68">TLS</text>
                  <text x="232" y="68">Stack</text>
                  <text x="116" y="132">Transcript</text>
                  <text x="180" y="132">hash</text>
                  <text x="296" y="132">CMW</text>
                  <text x="344" y="132">(Signed</text>
                  <text x="372" y="148">Evidence/AR;</text>
                  <text x="88" y="164">TIK</text>
                  <text x="132" y="164">public</text>
                  <text x="176" y="164">key</text>
                  <text x="212" y="164">hash</text>
                  <text x="348" y="164">Nonce)</text>
                  <text x="492" y="212">Measured</text>
                  <text x="536" y="212">&amp;</text>
                  <text x="144" y="228">Early</text>
                  <text x="216" y="228">Attestation</text>
                  <text x="284" y="228">Shim</text>
                  <text x="500" y="228">Reported</text>
                  <text x="500" y="244">Components</text>
                  <text x="96" y="292">Nonce</text>
                  <text x="308" y="292">Signed</text>
                  <text x="384" y="292">Evidence/AR</text>
                  <text x="216" y="356">TEE</text>
                  <text x="48" y="388">TIK</text>
                  <text x="96" y="388">Private</text>
                  <text x="144" y="388">Key</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+----------------------------------------------------+  ------+
|                                                    |        |
|                     TLS Stack                      |        |
|                                                    |        |
+------+---------------------------------------------+        |
       |                         ^                            |
       | Transcript hash         | CMW (Signed                |
       |                         |      Evidence/AR;          |
       | TIK public key hash     |      Nonce)                |
       v                         |                            |
+--------------------------------+-------------------+        |
|                                                    |   Measured &
|              Early Attestation Shim                |    Reported
|                                                    |   Components
+------+---------------------------------------------+        |
       |                         ^                            |
       | Nonce                   | Signed Evidence/AR         |
       v                         |                            |
+--------------------------------+-------------------+        |
|                                                    |        |
|                        TEE                         |        |
| +-----------------+                                |        |
| | TIK Private Key |                                |        |
| +-----------------+                                |        |
+----------------------------------------------------+  ------+
]]></artwork>
          </artset>
        </figure>
        <t>We adopt a defense-in-depth approach:</t>
        <ul spacing="normal">
          <li>
            <t>Separate attesting applications within the same TEE <bcp14>SHOULD NOT</bcp14> be capable of impersonating each other via Evidence or Attestation Results. Therefore, if multiple applications are expected to use attestation credentials, evidence/AR generation APIs <bcp14>SHOULD</bcp14> reflect identifiers for the calling contexts into the generated credential. These identifiers can be reflected as separate claims in the credential, or can be measured as part of more generic claims. A Relying Party <bcp14>SHOULD</bcp14> be capable of differentiating between the attesting applications based on their credentials.</t>
          </li>
          <li>
            <t>The RP <bcp14>SHOULD NOT</bcp14> base its trust decision only on the Attester's trust root. It <bcp14>SHOULD</bcp14> also ensure that the entire attested software stack is endorsed.</t>
          </li>
          <li>
            <t>The TEE itself, when possible, <bcp14>SHOULD</bcp14> generate the attestation secret by running the derivation operations defined in <xref target="crypto-ops"/>, and, if it holds the TIK, <bcp14>SHOULD</bcp14> validate the public key. The attestation secret can be generated by the TEE only if TLS is running inside the TEE.</t>
          </li>
          <li>
            <t>As shown in the diagram, the TEE itself as well as the TLS stack and the shim <bcp14>SHOULD</bcp14>
all be measured and reported as part of the platform's remote attestation.</t>
          </li>
        </ul>
      </section>
      <section anchor="reattestation">
        <name>Reattestation</name>
        <t>Attestation Evidence or Attestation Results may become stale over time. For long-lived TLS connections, a relying party may require updated assurance that the peer continues to operate in a trustworthy state.</t>
        <section anchor="post-handshake-reattestation-using-client-authentication">
          <name>Post-Handshake Reattestation Using Client Authentication</name>
          <t>Post-handshake client authentication defined in <xref section="4.6.2" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/> can
be used to obtain updated attestation Evidence or Attestation Results from the TLS client. In this case, the TLS server sends a <tt>CertificateRequest</tt> message after the TLS handshake authentication. The client responds with the standard TLS authentication messages (<tt>Certificate</tt>, <tt>CertificateVerify</tt>, and <tt>Finished</tt>). If attestation has been negotiated for the TLS connection, the client includes the <tt>remoteAttestation</tt> extension in the <tt>Certificate</tt> message carrying updated Evidence or Attestation Results.</t>
          <t>The attestation binder can be derived from the post-handshake authentication
transcript defined in Section 4.4 of <xref target="I-D.ietf-tls-rfc8446bis"/>.</t>
          <t>This mechanism allows a server to request updated attestation from the client. However, TLS currently does not define a mechanism for post-handshake server authentication. To address this limitation, the subsequent sections discuss design options for handling attestation freshness.</t>
        </section>
        <section anchor="option-1-carrying-attestation-in-extended-key-update">
          <name>Option 1: Carrying Attestation in Extended Key Update</name>
          <t>One possible approach is to extend the Extended Key Update (EKU) mechanism by introducing a new <tt>ExtendedKeyUpdate</tt> message subtype to carry attestation Evidence or Attestation Results.</t>
          <t>However, this approach tightly couples attestation to EKU, even though the two serve different purposes.</t>
        </section>
        <section anchor="option-2-no-reattestation-reconnect-for-freshness">
          <name>Option 2: No Reattestation (Reconnect for Freshness)</name>
          <t>Another approach is to not support reattestation within an established TLS connection. When fresh attestation is required, the client and server terminate the existing TLS session and establish a new one, during which fresh Evidence or Attestation Results are exchanged as part of the handshake.</t>
          <t>This approach keeps the TLS protocol unchanged and avoids introducing post-handshake mechanisms. However, it will be disruptive for long-lived TLS connections.</t>
        </section>
        <section anchor="option-2-no-reattestation-reconnect-for-freshness-1">
          <name>Option 2: No Reattestation (Reconnect for Freshness)</name>
          <t>Another approach is to not support reattestation within an established TLS connection. When fresh attestation is required, the client establishes a new TLS connection, exchanging fresh Evidence or Attestation Results as part of the
handshake.</t>
          <t>This approach keeps the TLS protocol unchanged and avoids introducing post-handshake mechanisms. Application-level mechanisms can be implemented to improve its usability, for example client and server signaling of the need for
reattestation, and establishing the new connection before tearing down the old one (make-before-break) to avoid a gap in connectivity.</t>
          <t>Note: This is a workaround while the WG determines which of the other options can be progressed.</t>
        </section>
        <section anchor="option-3-post-handshake-reattestation-using-certificateupdate">
          <name>Option 3: Post-Handshake Reattestation Using CertificateUpdate</name>
          <t>In this design, reattestation is supported using the <tt>CertificateUpdate</tt> message defined in <xref target="I-D.rosomakho-tls-cert-update"/>. Under this approach, the attester sends a <tt>CertificateUpdate</tt> message carrying a new <tt>Certificate</tt> message with updated attestation information. The refreshed attestation is bound to the existing TLS session using post-handshake TLS context.</t>
        </section>
      </section>
    </section>
    <section anchor="negotiating-protocol">
      <name>Negotiating This Protocol</name>
      <t>This section defines the TLS 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>
    <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="I-D.ietf-tls-rfc8446bis"/>). 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 (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>.</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>
      <section anchor="sec-guarantees">
        <name>Security Guarantees</name>
        <t>We note that as a pure cryptographic protocol, attested TLS as-is only guarantees that the Identity Key is known by the TEE. A number of additional guarantees must be provided by the platform and/or the TLS stack,
and the overall security level depends on their existence and quality of assurance:</t>
        <ul spacing="normal">
          <li>
            <t>The Identity Key is generated by the TEE.</t>
          </li>
          <li>
            <t>The Identity Key is never exported or leaked outside the TEE.</t>
          </li>
          <li>
            <t>The TLS protocol, whether implemented by the TEE or outside the TEE, is implemented correctly and (for example) does not leak any session key material.</t>
          </li>
        </ul>
        <t>These properties may be explicitly promised ("attested") by the platform, or they can be assured in other ways such as by providing source code, reproducible builds, formal verification etc. The exact mechanisms are out of scope of this document.</t>
      </section>
      <section anchor="freshness-guarantees">
        <name>Freshness Guarantees</name>
        <t><cref> TODO: Discuss freshness guarantees provided by the Attestation Binder.
Differences between Background Check and Passport mode.
</cref></t>
      </section>
    </section>
    <section anchor="priv-cons">
      <name>Privacy Considerations</name>
      <t>In this section, we are assuming that the Attester is a TLS client, representing an individual person.
We are concerned about the potential leakage of privacy sensitive information about that person, such as the correlation of different connections initiated by them.</t>
      <t>In background-check mode, the Verifier not only has access to detailed information about the Attester's TCB through Evidence, but it also knows the exact time and the party with whom the secure channel establishment is attempted (i.e., the RP).
The privacy implications are similar to online OCSP <xref target="RFC6960"/>.
While the RP may trust the Verifier not to disclose any information it receives, the same cannot be assumed for the Attester, which generally has no prior relationship with the Verifier.
Some ways to address this include:</t>
      <ul spacing="normal">
        <li>
          <t>Client-side redaction of privacy-sensitive evidence claims,</t>
        </li>
        <li>
          <t>Using selective disclosure (e.g., SD-JWT <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/> with EAT <xref target="I-D.ietf-rats-eat"/>),</t>
        </li>
        <li>
          <t>Co-locating the Verifier role with the RP,</t>
        </li>
        <li>
          <t>Utilizing privacy-preserving attestation schemes (e.g., DAA <xref target="I-D.ietf-rats-daa"/>), or</t>
        </li>
        <li>
          <t>Utilizing Attesters manufactured with group identities (e.g., <xref target="FIDO-REQS"/>).</t>
        </li>
      </ul>
      <t>The latter two also have the property of hiding the peer's identity from the RP.</t>
      <t>Note that the equivalent of OCSP "stapling" involves using a passport topology where the Verifier's involvement is unrelated to the TLS session.</t>
      <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>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>We would like to thank Paul Howard, Arto Niemi, and Hannes Tschofenig for their contributions to earlier versions of this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-tls-rfc8446bis">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <abstract>
              <t>   This document specifies version 1.3 of the Transport Layer Security
   (TLS) protocol.  TLS allows client/server applications to communicate
   over the Internet in a way that is designed to prevent eavesdropping,
   tampering, and message forgery.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="11" month="December" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS architecture (RFC
   9334) are protocol-agnostic data units that are conveyed between RATS
   roles during remote attestation procedures.  Conceptual Messages
   describe the meaning and function of such data units within RATS data
   flows without specifying a wire format, encoding, transport
   mechanism, or processing details.  The initial set of Conceptual
   Messages is defined in Section 8 of RFC 9334 and includes Evidence,
   Attestation Results, Endorsements, Reference Values, and Appraisal
   Policies.

   This document introduces the Conceptual Message Wrapper (CMW) that
   provides a common structure to encapsulate these messages.  It
   defines a dedicated CBOR tag, corresponding JSON Web Token (JWT) and
   CBOR Web Token (CWT) claims, and an X.509 extension.

   This allows CMWs to be used in CBOR-based protocols, web APIs using
   JWTs and CWTs, and PKIX artifacts like X.509 certificates.
   Additionally, the draft defines a media type and a CoAP content
   format to transport CMWs over protocols like HTTP, MIME, and CoAP.

   The goal is to improve the interoperability and flexibility of remote
   attestation protocols.  Introducing a shared message format such as
   CMW enables consistent support for different attestation message
   types, evolving message serialization formats without breaking
   compatibility, and avoiding the need to redefine how messages are
   handled within each protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-23"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6960">
          <front>
            <title>X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP</title>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="M. Myers" initials="M." surname="Myers"/>
            <author fullname="R. Ankney" initials="R." surname="Ankney"/>
            <author fullname="A. Malpani" initials="A." surname="Malpani"/>
            <author fullname="S. Galperin" initials="S." surname="Galperin"/>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document specifies a protocol useful in determining the current status of a digital certificate without requiring Certificate Revocation Lists (CRLs). Additional mechanisms addressing PKIX operational requirements are specified in separate documents. This document obsoletes RFCs 2560 and 6277. It also updates RFC 5912.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6960"/>
          <seriesInfo name="DOI" value="10.17487/RFC6960"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="I-D.fossati-tls-attestation">
          <front>
            <title>Using Attestation in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Paul Howard" initials="P." surname="Howard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Arto Niemi" initials="A." surname="Niemi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="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.rosomakho-tls-cert-update">
          <front>
            <title>Certificate Update in TLS 1.3</title>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <date day="18" month="June" year="2026"/>
            <abstract>
              <t>   This document defines a mechanism that enables TLS 1.3 endpoints to
   update their certificates during the lifetime of a connection using
   Exported Authenticators.  A new extension is introduced to negotiate
   support for certificate update at handshake time.  When negotiated,
   either endpoint can provide a post-handshake authenticator containing
   an updated certificate, delivered via a new handshake message.  This
   mechanism allows long-lived TLS connections to remain valid across
   certificate rotations without requiring session termination.

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

<section anchor="document-history">
      <name>Document History</name>
      <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="I-D.ietf-tls-rfc8446bis"/>),
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="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"/>). Both messages are already held by the TLS stack at the point
attestation runs, so computing the binder requires no change to the TLS
protocol.  Additionally, TLS stacks typically expose handshake messages via callback
interfaces before the handshake completes; the application can obtain ClientHello
and ServerHello through these existing hooks without any new protocol interface.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA919a3Pc1pXgd/wKDFU1Ju1GS5QfE9OeTGiSihmJEkPS0bhS
CYlu3GbDRAM9AJp0D0f7W/a37C/b87wPAE1SimtqdlWpmA3gvs4997zPuUmS
RG3eFmYv/qnJy+t4v21N06ZtXpVxXsYXdVo2y6pu4zfp2tTxuZmu6rxdx9sX
b8534rTM4sO0Ta/rdPHAt4f4cZROJrW53esN8eb8OX4QZdW0TBcwk6xOZ20y
q5oGPkoak7aJSetinaSuZVKk+HfUrCaLvGngSbteQtvjo4tX0RTeXVf1ei9u
2iyK8mW9F7f1qmlfvnjx7YuXUVqbdM/OL7qr6pvrulot93Ay0Y1Zw5NsL/5r
7A04is/2L85H+EX8tyiCp2V2mRZVCYOuTRMt870ojuvZ1GRNuy7kaRy31dT7
My8zU7b6oAFg1WbW2N/rRfCzrfOp/XhaLRbQ1r7NyyIv3TDm1zYp8qZNoJNJ
VcBnSfX5F/AGwLpIl0vYXP42ujXlyuBkZc1b50f7F1vYB0Fw6z2AA1Hhj/ga
ny/SvIDnuBF/yE07G1f1NT5P6+kcns/bdtnsPX+On+Gj/NaM9bPn+OD5pK7u
GvMcO3iODa/zdr6aQNN1Wlfl7PlTNhzb8Z57Q3L7Mfc3zqsn9fSkj8bzdlFs
RVG6audVDdBKYHz6l5cA25/H8fnczGam1seMuj/jhLqvAA5pmf8n9QsYWrar
vNV3hoErC0Gw/eEaH41hu6PuqMfj+CSfp8XUpOGwx1W5anvvwnH360X8Jl/k
rck6g1Prsbb+Q1ovBkeHNR+aZr4ExDedVVfX8KL/9qkT4PZj237jFC7G8Sve
tnACF/NqkTbdd+Hwb/ISgNwZuaWGY8GFPxT0DSLu0NBnJsvWnYHzerVIC9Pc
pXX4Phz8bXWTp52xb8at1/qyxtZ/KPFDXntZ1Qtofktn9Tg5JOxI2qJJgMr8
7quvvpnkMC/4vful/0Gdtk2yaK6TuzqF0z1d3AEFLGd+Z2evDr759psXe3E1
bZb8+9svv/xqL6a2eGSlQz0jOKh3OKBhkSV0jHojw2mSfuCv3tssTeUt/OW/
rfCgwVkszBRnmWR5My2qZlWb5Jc76LHJ8L9+i2aZT00Cz6fyfmrfV6uyARIO
HdJQyzq/TafrZAZcyiCxlynI8wC6xiwJAICl0xZGBwDrI/murhrAmZt5RVCZ
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
RsnNqk12XoA40f8FWuCNtbbVAAA=

-->

</rfc>
