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

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

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

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="overview">
      <name>Overview</name>
      <t>The basic functional goal is to link the authenticated key exchange of TLS with an interleaved remote attestation session in such a way that the key used to sign the handshake can be proven to be residing within the boundaries of an attested TEE.
The requirement is that the attester can provide Evidence containing the security status of both the signing key and the platform that is hosting it.
The associated security goal is to obtain such binding so that no replay, relay or splicing from an adversary is possible.</t>
      <t>The protocol's security relies on the verifiable binding between the TLS Identity Key, the
specific TLS session
and the platform state through attestation Evidence or Attestation Results conveyed
in the CMW (Conceptual Message Wrapper) <xref target="I-D.ietf-rats-msg-wrap"/> payload.</t>
      <section anchor="authentication-vs-attestation">
        <name>Authentication vs. Attestation</name>
        <t>The protocol combines platform attestation with X.509 certificate authentication.</t>
        <t>Attestation when used alone is vulnerable to identity spoofing attacks, in particular when zero-day attacks exist for a class of hardware. (TODO: reference). Therefore it needs to be combined with traditional authentication, which in the case of TLS takes the form of CA-signed certificates.</t>
        <t>We RECOMMEND that regular applications use authentication and attestation in tandem, to gain the full security guarantees of an authenticated TLS handshake (for the peer/peers being authenticated) as
well as guarantees of platform integrity.</t>
      </section>
      <section anchor="integration-into-the-tls-handshake">
        <name>Integration into the TLS Handshake</name>
        <t>The lightweight integration of attestation into the TLS handshake is designed to have
minimal impact on the existing TLS security properties. The changes consist of:</t>
        <ul spacing="normal">
          <li>
            <t>Negotiation extensions: New TLS extensions are added to ClientHello and
EncryptedExtensions messages to negotiate the use of attestation and indicate
supported attestation formats and verifiers. A new <tt>Attestation</tt> extension is
introduced to the Certificate message. This extension carries attestation Evidence
or Attestation Results.</t>
          </li>
          <li>
            <t>Independent key derivation: Binder derivation for attestation (see <xref target="crypto-ops"/>) is completely independent of the
regular TLS key schedule. Attestation processing does not affect the standard TLS key derivation and security properties.</t>
          </li>
        </ul>
        <t>This minimal integration approach provides an intuitive explanation of why the
addition of attestation does not adversely affect TLS security. The attestation
components operate independently, leaving the core TLS handshake protocol and
key derivation mechanisms unmodified. Nevertheless, formal validation of these
security properties is still required.</t>
      </section>
    </section>
    <section anchor="attestation-extensions">
      <name>Attestation Extensions</name>
      <t>As typical with new features in TLS, the client indicates support for the new
extension in the ClientHello message. The newly introduced extensions allow
attestation Evidence or Attestation Results to be exchanged. Freshness of the
exchanged Evidence is guaranteed through an Attestation Binder mechanism (see <xref target="crypto-ops"/>)
when the Background Check
Model is in use. In the Passport Model, freshness expectations are more relaxed
and are governed by the lifetime of the signed Attestation Results.</t>
      <t>When either the Evidence or the Attestation Results extension is successfully
negotiated, attestation Evidence or Attestation Results are conveyed in an
<tt>attestation</tt> extension (see <xref target="attestation-extension-section"/>). The
CMW payload in the Attestation extension contains the attestation Evidence or
Attestation Results encoded according to <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
      <t>The attestation payload <bcp14>MUST</bcp14> contain assertions relating to the attester's TLS
Identity Key (TIK-C for client attester, TIK-S for server attester), which
associate the private key with the attestation information. The TEE's signature
over the Evidence, or the Verifier's signature over AttestationResults within the CMW <bcp14>MUST</bcp14> include an attestation binder derived
from the message transcript (see <xref target="crypto-ops"/>)
and the attester's TLS identity public key, as specified in <xref target="attestation-extension-section"/>.</t>
      <t>The relying party can obtain and appraise the remote Attestation Results either
directly from the Attestation extension (in the Passport Model), or by relaying
the Evidence from the Attestation extension to the Verifier and receiving the
Attestation Results. Subsequent verification of possession of the attested key in the
CertificateVerify message remains unchanged from baseline TLS.</t>
      <t>When using the Passport Model, the remote Attestation Results obtained by the
attester from its trusted Verifier can be cached and used for any number of
subsequent TLS handshakes, as long as the freshness policy requirements are
satisfied.</t>
      <t>This protocol supports both monolithic and split implementations. In a monolithic
implementation, the TLS stack is completely embedded within the TEE. In a split
implementation, the TLS stack is located outside the TEE, but any private keys
(and in particular, the TIK) only exist within the TEE. In order to support
both options, only the TIK's identity, its public component and a short generated binder are ever
passed between the Client or Server TLS stack and its Attestation Service.
While the two types of implementations offer identical functionality,
their security properties often differ, see <xref target="sec-guarantees"/> for more details.</t>
      <section anchor="attestation-extension-section">
        <name>Attestation Extension</name>
        <t>As defined in Section 4.4.2 of <xref target="I-D.ietf-tls-rfc8446bis"/>, the TLS <tt>Certificate</tt> message
contains a <tt>certificate_list</tt>, which is a sequence of <tt>CertificateEntry</tt>
structures.</t>
        <t>When attestation is negotiated via the extensions defined in this document,
the <tt>attestation</tt> extension defined in this document <bcp14>MUST</bcp14> appear only in
the first <tt>CertificateEntry</tt> of the <tt>Certificate</tt> message and applies
exclusively to the end-entity certificate.</t>
        <t>The extension <bcp14>MUST NOT</bcp14> appear in any other <tt>CertificateEntry</tt>.</t>
        <t>If the <tt>attestation</tt> extension is received in any other position, the
receiver <bcp14>MUST</bcp14> abort the handshake with a fatal <tt>illegal_parameter</tt> alert.</t>
        <t>This message carries a CMW (Conceptual Message Wrapper) payload as defined in <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
        <t>The <tt>attestation</tt> extension structure is defined as follows:</t>
        <figure anchor="_figure-attestation-extension">
          <name>Attestation Extension Structure.</name>
          <artwork><![CDATA[
    struct {
        opaque cmw_payload<1..2^24-1>;
    } Attestation;
]]></artwork>
        </figure>
        <t>The <tt>cmw_payload</tt> field contains a CMW structure as defined in <xref target="I-D.ietf-rats-msg-wrap"/>.
Both JSON and CBOR serializations are allowed in CMW, with the emitter choosing
which serialization to use.</t>
        <t>The CMW payload <bcp14>MUST</bcp14> contain attestation Evidence (in Background Check Model)
or Attestation Results (in Passport Model) that binds the TLS Identity Key (TIK)
to the platform and workload state. The TEE's signature over the Evidence or
AttestationResults within the CMW <bcp14>MUST</bcp14> include a binder ensuring that the attestation is associated with
this particular TLS connection,
as well as the attester's TLS identity public key (TIK-C for client attester, TIK-S for
server attester).</t>
        <t>This binding ensures that the attested key is the one used in the TLS handshake
and provides freshness guarantees through derivation from both peers' randomness.
See <xref target="crypto-ops"/> for details.</t>
      </section>
    </section>
    <section anchor="use-of-attestation-in-the-tls-handshake">
      <name>Use of Attestation in the TLS Handshake</name>
      <t>For both the Passport Model (described in Section 5.1 of <xref target="RFC9334"/>) and
Background Check Model (described in Section 5.2 of <xref target="RFC9334"/>) the following
modes of operation are allowed when used with TLS, namely:</t>
      <ul spacing="normal">
        <li>
          <t>TLS client is the attester,</t>
        </li>
        <li>
          <t>TLS server is the attester, and</t>
        </li>
        <li>
          <t>TLS client and server mutually attest towards each other.</t>
        </li>
      </ul>
      <t>As noted, each peer's attestation is carried in the <tt>Attestation</tt> extension within
that peer's Certificate message. This section describes how the attestation
is produced, bound to the TLS handshake and verified by the recipient.</t>
      <section anchor="crypto-ops">
        <name>Cryptographic Operations</name>
        <t>The cryptographic operations defined in this section bind attestation Evidence
to a specific TLS handshake. This binding prevents replay and relay of attestation
Evidence across different TLS connections, and ensures that attestation Evidence
presented during a handshake corresponds to the authenticated
TLS session in which it is conveyed.</t>
        <t>The attestation Evidence or Attestation Results are generated by a TEE and
signed using an attestation key. The signed Evidence includes
inputs originating from different trust domains.</t>
        <t>The attestation binder is provided by the TLS stack and serves as a
nonce that ensures freshness and binding to a specific TLS handshake,
as well as binding to the attester's TLS public key.</t>
        <section anchor="attestation-binder-definition">
          <name>Attestation Binder Definition</name>
          <t>The attestation binder is computed using primitives
defined in Section 4.4.1 and 7.1 of <xref target="I-D.ietf-tls-rfc8446bis"/>.</t>
          <artwork><![CDATA[
c_attest_base = Derive-Secret(0, "c attestation base",
                              ClientHello...Server-Finished)
s_attest_base = Derive-Secret(0, "s attestation base",
                              ClientHello...EncryptedExtensions)

c_attest_binder = HKDF-Expand-Label(c_attest_base, "attestation",
                                    TLS_Client_Public_Key, Hash.length)
s_attest_binder = HKDF-Expand-Label(s_attest_base, "attestation",
                                    TLS_Server_Public_Key, Hash.length)
]]></artwork>
          <t>We note that despite the use of the <tt>Derive-Secret</tt> primitive, none of these values are secret. Similarly we do not call <tt>HKDF-Extract</tt> which would not be effective.</t>
        </section>
        <section anchor="verification">
          <name>Verification</name>
          <t>Upon receipt of an <tt>attestation</tt> extension, the peer <bcp14>MUST</bcp14> compute the attestation binder.</t>
          <t>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 and abort the handshake.</t>
            </li>
            <li>
              <t>In the latter case, the RP <bcp14>MUST</bcp14> convey the binder to the
Verifier. The Verifier <bcp14>MUST</bcp14> verify that the conveyed binder is identical to the one that was signed
in the Evidence or Attestation Results.</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 verified, ensures that relay attacks are prevented.</t>
          <t>An active MiTM attacker cannot mount a successful attack because the attestation binder is derived from the TLS handshake transcript, including encrypted handshake messages that are not visible to eavesdroppers. An active attacker also cannot replay or relay attestation Evidence across TLS connections, since the attestation binder is bound to the specific TLS handshake transcript and the TLS identity key. Any attempt to reuse valid Evidence in a different TLS connection results in a binder mismatch and verification failure.</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>
        <t>This section discusses design options for handling attestation freshness.</t>
        <section anchor="option-1-carrying-attestation-in-extended-key-update">
          <name>Option 1: Carrying Attestation in Extended Key Update</name>
          <t>One possible approach is to extend the Extended Key Update (EKU) mechanism by introducing a new <tt>ExtendedKeyUpdate</tt> message subtype to carry attestation Evidence or Attestation Results.</t>
          <t>However, this approach tightly couples attestation to EKU, even though the two serve different purposes.</t>
        </section>
        <section anchor="option-2-no-reattestation-reconnect-for-freshness">
          <name>Option 2: No Reattestation (Reconnect for Freshness)</name>
          <t>Another approach is to not support reattestation within an established TLS connection. When fresh attestation is required, the client and server terminate the existing TLS session and establish a new one, during which fresh Evidence or Attestation Results are exchanged as part of the handshake.</t>
          <t>This approach keeps the TLS protocol unchanged and avoids introducing post-handshake mechanisms. However, it will be disruptive for long-lived TLS connections.</t>
        </section>
        <section anchor="option-3-post-handshake-reattestation-using-certificateupdate">
          <name>Option 3: Post-Handshake Reattestation Using CertificateUpdate</name>
          <t>In this design, reattestation is supported using the <tt>CertificateUpdate</tt> message defined in <xref target="I-D.rosomakho-tls-cert-update"/>. Under this approach, the attester sends a <tt>CertificateUpdate</tt> message carrying a new <tt>Certificate</tt> message with updated attestation information. The refreshed attestation is bound to the existing TLS session using post-handshake TLS context.</t>
        </section>
      </section>
    </section>
    <section anchor="negotiating-protocol">
      <name>Negotiating This Protocol</name>
      <t>This section defines the TLS extensions used to negotiate the use of attestation
in the TLS handshake. Two models are supported: the Background Check Model, where
Evidence is exchanged and verified during the handshake, and the Passport Model,
where pre-verified Evidence in the form of Attestation Results are presented. The extensions defined
here allow peers to indicate their support for attestation and negotiate which
attestation format and Verifier to use.</t>
      <t><cref>Can we simplify this structure: remove the dual request/proposal, and unify the evidence+AR to a single
negotiation extension. But also express Passport mode with and without freshness.</cref></t>
      <section anchor="evidence-extensions">
        <name>Evidence Extensions (Background Check Model)</name>
        <t>The EvidenceType structure contains an indicator for the type of Evidence
expected in the <tt>Attestation</tt> extension. The Evidence contained in
the CMW payload is sent in the <tt>Attestation</tt> extension (see <xref target="attestation-extension-section"/>).</t>
        <figure anchor="_figure-extension-evidence">
          <name>TLS Extension Structure for Evidence.</name>
          <artwork><![CDATA[
    enum { CONTENT_FORMAT(0), MEDIA_TYPE(1) } typeEncoding;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-selective-disclosure-jwt-22"/>
        </reference>
        <reference anchor="I-D.ietf-teep-architecture">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Architecture</title>
            <author fullname="Mingliang Pei" initials="M." surname="Pei">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Dave Wheeler" initials="D. M." surname="Wheeler">
              <organization>Amazon</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>A Trusted Execution Environment (TEE) is an environment that enforces the following: any code within the environment cannot be tampered with, and any data used by such code cannot be read or tampered with by any code outside the environment.  This architecture document discusses the motivation for designing and standardizing a protocol for managing the lifecycle of Trusted Applications running inside such a TEE.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teep-architecture-19"/>
        </reference>
        <reference anchor="I-D.rosomakho-tls-cert-update">
          <front>
            <title>Certificate Update in TLS 1.3</title>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <date day="21" month="December" year="2025"/>
            <abstract>
              <t>   This document defines a mechanism that enables TLS 1.3 endpoints to
   update their certificates during the lifetime of a connection using
   Exported Authenticators.  A new extension is introduced to negotiate
   support for certificate update at handshake time.  When negotiated,
   either endpoint can provide a post-handshake authenticator containing
   an updated certificate, delivered via a new handshake message.  This
   mechanism allows long-lived TLS connections to remain valid across
   certificate rotations without requiring session termination.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rosomakho-tls-cert-update-01"/>
        </reference>
        <reference anchor="TPM1.2" target="https://trustedcomputinggroup.org/resource/tpm-main-specification/">
          <front>
            <title>TPM Main Specification Level 2 Version 1.2, Revision 116</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2011" month="March"/>
          </front>
        </reference>
        <reference anchor="TPM2.0" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library Specification, Family "2.0", Level 00, Revision 01.59</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2019" month="November"/>
          </front>
        </reference>
        <reference anchor="TLS-Ext-Registry" target="https://www.iana.org/assignments/tls-extensiontype-values">
          <front>
            <title>Transport Layer Security (TLS) Extensions</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="TLS-Param-Registry" target="https://www.iana.org/assignments/tls-parameters">
          <front>
            <title>Transport Layer Security (TLS) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="iana-media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="iana-content-formats" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>CoAP Content-Formats</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="I-D.acme-device-attest">
          <front>
            <title>Automated Certificate Management Environment (ACME) Device Attestation Extension</title>
            <author fullname="Brandon Weeks" initials="B." surname="Weeks">
         </author>
            <author fullname="Ganesh Mallaya" initials="G." surname="Mallaya">
         </author>
            <author fullname="Sven Rajala" initials="S." surname="Rajala">
         </author>
            <date day="7" month="December" year="2025"/>
            <abstract>
              <t>   This document specifies new identifiers and a challenge for the
   Automated Certificate Management Environment (ACME) protocol which
   allows validating the identity of a device using attestation.

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

<section anchor="document-history">
      <name>Document History</name>
      <section anchor="draft-fossati-seat-early-attestation-03">
        <name>draft-fossati-seat-early-attestation-03</name>
        <ul spacing="normal">
          <li>
            <t>Replace the Attestation message by an Attestation (certificate) extension,
to bring this protocol within the requirements of the SEAT charter.</t>
          </li>
          <li>
            <t>Define the attestation binder and decouple it from the TLS key schedule.</t>
          </li>
          <li>
            <t>List multiple design options for reattestation.</t>
          </li>
          <li>
            <t>Add architecture diagram for TLS stack interface with the TEE.</t>
          </li>
          <li>
            <t>Add defense-in-depth guidance for measuring TEE, TLS stack, and shim.</t>
          </li>
          <li>
            <t>Remove various outdated sections.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-02">
        <name>draft-fossati-seat-early-attestation-02</name>
        <ul spacing="normal">
          <li>
            <t>Fix typo in key schedule. Clarify (again) that this is only adding to the schedule, not modifying any existing key derivations.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-01">
        <name>draft-fossati-seat-early-attestation-01</name>
        <t>(Submitted by mistake.)</t>
      </section>
      <section anchor="draft-fossati-seat-early-attestation-00">
        <name>draft-fossati-seat-early-attestation-00</name>
        <t>Initial version of draft-fossati-seat-early-attestation.</t>
        <t>This version represents a major architectural change from <xref target="I-D.fossati-tls-attestation"/>.
The key changes include:</t>
        <ul spacing="normal">
          <li>
            <t>Removed certificate extension mechanism for conveying attestation Evidence</t>
          </li>
          <li>
            <t>Introduced new <tt>Attestation</tt> handshake message for carrying CMW (Conceptual Message Wrapper) payload</t>
          </li>
          <li>
            <t><tt>Attestation</tt> message sent after CertificateVerify when server is attester</t>
          </li>
          <li>
            <t><tt>Attestation</tt> message sent after CertificateVerify message when client is attester</t>
          </li>
          <li>
            <t>Removed use cases section</t>
          </li>
          <li>
            <t>Removed KAT (Key Attestation Token) and PAT (Platform Attestation Token) references, using CMW directly</t>
          </li>
          <li>
            <t>Nonces (client and server) and attester's TLS identity public key are included in TEE-signed Evidence/AttestationResults within CMW</t>
          </li>
          <li>
            <t>CertificateVerify remains unchanged from baseline TLS (no proof-of-possession needed)</t>
          </li>
          <li>
            <t>Added session resumption discussion (resumption <bcp14>MUST</bcp14> be rejected if reattestation is required per local policy)</t>
          </li>
          <li>
            <t>Added reattestation</t>
          </li>
        </ul>
        <!-- Start of Appendices -->

</section>
    </section>
  </back>
  <!-- ##markdown-source:
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
/jc2f4cgB7gAAA==

-->

</rfc>
