<?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 xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fossati-seat-expat-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Application Layer Attestation">Remote Attestation with Exported Authenticators</title>
    <seriesInfo name="Internet-Draft" value="draft-fossati-seat-expat-02"/>
    <author initials="M. U." surname="Sardar" fullname="Muhammad Usama Sardar">
      <organization>TU Dresden</organization>
      <address>
        <email>muhammad_usama.sardar@tu-dresden.de</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>k.tirumaleswar_reddy@nokia.com</email>
      </address>
    </author>
    <author initials="Y." surname="Sheffer" fullname="Yaron Sheffer">
      <organization>Intuit</organization>
      <address>
        <email>yaronf.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="I." surname="Mihalcea" fullname="Ionut Mihalcea">
      <organization>Arm Limited</organization>
      <address>
        <email>ionut.mihalcea@arm.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="27"/>
    <area>Security</area>
    <workgroup>SEAT Working Group</workgroup>
    <keyword>Attestation</keyword>
    <keyword>TLS</keyword>
    <keyword>Exported Authenticators</keyword>
    <abstract>
      <?line 107?>

<t>This specification defines a method for two parties in a communication interaction to exchange Evidence and Attestation Results using exported authenticators, as defined in <xref target="RFC9261"/>. Additionally, it introduces the <tt>cmw_attestation</tt> extension, which allows attestation credentials to be included directly in the Certificate message sent during the Exported Authenticator-based post-handshake authentication. The approach supports both the passport and background check models from the RATS architecture while ensuring that attestation remains bound to the underlying communication channel.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://tls-attestation.github.io/exported-attestation/draft-fossati-seat-expat.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-fossati-seat-expat/"/>.
      </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://datatracker.ietf.org/wg/seat/about/"/>.
        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/tls-attestation/exported-attestation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 112?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>There is a growing need to demonstrate to a remote party that cryptographic keys are stored in a secure element, the device is in a known good state, secure boot has been enabled, and that low-level software and firmware have not been tampered with. Remote attestation provides this capability.</t>
      <t>More technically, an Attester produces a signed collection of Claims that constitute Evidence about its running environment(s). A Relying Party may consult an Attestation Result produced by a Verifier that has appraised the Evidence to make policy decisions regarding the trustworthiness of the Target Environment being assessed. This is, in essence, what <xref target="RFC9334"/> defines.</t>
      <t>At the time of writing, several standard and proprietary remote attestation technologies are in use. This specification aims to remain as technology-agnostic as possible concerning implemented remote attestation technologies. To streamline attestation in TLS, this document introduces the cmw_attestation extension, which allows attestation credentials to be conveyed directly in the Certificate message during the Exported Authenticator-based post-handshake authentication. This eliminates reliance on real-time certificate issuance from a Certificate Authority (CA), reducing handshake delays while ensuring Evidence remains bound to the TLS connection. The extension supports both the passport and background check models from the RATS architecture, enhancing flexibility for different deployment scenarios.</t>
      <t>This document builds upon three foundational specifications:</t>
      <ul spacing="normal">
        <li>
          <t>RATS (Remote Attestation Procedures) Architecture <xref target="RFC9334"/>: It defines how remote attestation systems establish trust between parties by exchanging Evidence and Attestation Results. These interactions can follow different models, such as the passport or the background check model, depending on the order of data flow in the system.</t>
        </li>
        <li>
          <t>TLS Exported Authenticators <xref target="RFC9261"/>: It offers bi-directional post-handshake authentication. Once a TLS connection is established, both peers can send an authenticator request message at any point after the handshake. This message from the server and the client uses the CertificateRequest and the ClientCertificateRequest messages, respectively. The peer receiving the authenticator request message can respond with an Authenticator consisting of Certificate, CertificateVerify, and Finished messages. These messages can then be validated by the other peer.</t>
        </li>
        <li>
          <t>RATS Conceptual Messages Wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/>: CMW provides a structured encapsulation of Evidence and Attestation Result, abstracting the underlying attestation technology.</t>
        </li>
      </ul>
      <t>This specification introduces the cmw_attestation extension, enabling Evidence to be included directly in the Certificate message during the Exported Authenticator-based post-handshake authentication defined in <xref target="RFC9261"/>.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL 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>
      <t>The reader is assumed to be familiar with the vocabulary and concepts defined in <xref target="RFC9334"/> and <xref target="RFC9261"/>.</t>
      <t>"Remote attestation credentials", or "attestation credentials", is used to refer to both Evidence and attestation results, when no distinction needs to be made between them.</t>
    </section>
    <section anchor="cmwattestation-extension-to-the-authenticators-certificate-message">
      <name>cmw_attestation Extension to the Authenticator's Certificate message</name>
      <t>This document introduces a new extension, called <tt>cmw_attestation</tt>, to the Authenticator's Certificate message.
This extension allows Evidence or Attestation Results to be included in the extensions field of the end-entity certificate in the Authenticator's Certificate message.</t>
      <t>As defined in <xref section="4.4.2" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>, the TLS Certificate message consists of a certificate_list, which is a sequence of CertificateEntry structures. Each CertificateEntry contains a certificate and a set of associated extensions. The cmw_attestation extension MUST appear only in the first CertificateEntry of the Certificate message and applies exclusively to the end-entity certificate. It MUST NOT be included in entries corresponding to intermediate or trust anchor certificates. This design ensures that attestation information is tightly bound to the entity being authenticated.</t>
      <t>The cmw_attestation extension is only included in the Certificate message during Exported Authenticator-based post-handshake authentication. This ensures that the attestation credentials are conveyed within the Certificate message, eliminating the need for modifications to the X.509 certificate structure.</t>
      <artwork><![CDATA[
struct {
    opaque cmw_data<1..2^16-1>;
} CMWAttestation;
]]></artwork>
      <t>cmw_data: Encapsulates the attestation credentials in CMW format <xref target="I-D.ietf-rats-msg-wrap"/>. The cmw_data field is encoded using CBOR or JSON.</t>
      <t>This approach eliminates the need for real-time certificate issuance from a Certificate Authority (CA) and minimizes handshake delays. Typically, CAs require several seconds to minutes to issue a certificate due to verification steps such as validating subject identity, signing the certificate, and distributing it. These delays introduce latency into the TLS handshake, making real-time certificate generation impractical. The cmw_attestation extension circumvents this issue by embedding attestation data within the Certificate message itself, removing reliance on external certificate issuance processes.</t>
      <section anchor="negotiation-of-the-cmwattestation-extension">
        <name>Negotiation of the cmw_attestation Extension</name>
        <t>Negotiation of support cmw_attestation extension follows the model defined in <xref section="5.2" sectionFormat="of" target="RFC9261"/>.</t>
        <t>Endpoints that wish to receive attestation credentials using Exported Authenticators MUST indicate support by including an empty cmw_attestation extension in the CertificateRequest or ClientCertificateRequest message.
The presence of this empty extension indicates that the requester understands this specification and is willing to process an attestation credential in the peer's Certificate message.</t>
        <t>An endpoint that supports this extension and receives a request containing it MAY include the cmw_attestation extension in its Certificate message, populated with attestation data. If the <tt>cmw_attestation</tt> extension appears in a Certificate message without it having been previously offered in the corresponding request, the receiver MUST abort the authenticator verification with an "unsupported_extension" alert. As specified in <xref section="9.3" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>, endpoints that do not recognize the cmw_attestation extension in a CertificateRequest or
ClientCertificateRequest MUST ignore it and continue processing the message as if the extension were absent.</t>
      </section>
      <section anchor="usage-in-exported-authenticator-based-post-handshake-authentication">
        <name>Usage in Exported Authenticator-based Post-Handshake Authentication</name>
        <t>The <tt>cmw_attestation</tt> extension is designed to be used exclusively in Exported Authenticator-based post-handshake authentication as defined in <xref target="RFC9261"/>. It allows attestation credentials to be transmitted in the Authenticator's Certificate message only in response to an Authenticator Request. This ensures that attestation credentials are provided on demand rather than being included in the initial TLS handshake.</t>
        <t>To maintain a cryptographic binding between the Evidence and the authentication request, the <tt>cmw_attestation</tt> extension MUST be associated with the <tt>certificate_request_context</tt> of the corresponding CertificateRequest or ClientCertificateRequest message (from the Server or Client, respectively). This association ensures that the Evidence is specific to the authentication event.</t>
      </section>
      <section anchor="ensuring-compatibility-with-x509-certificate-validation">
        <name>Ensuring Compatibility with X.509 Certificate Validation</name>
        <t>The <tt>cmw_attestation</tt> extension does not modify or replace X.509 certificate validation mechanisms. It serves as an additional source of authentication data rather than altering the trust model of PKI-based authentication. Specifically:</t>
        <ul spacing="normal">
          <li>
            <t>Certificate validation (e.g., signature verification, revocation checks) MUST still be performed according to TLS <xref target="I-D.ietf-tls-rfc8446bis"/> and PKIX <xref target="RFC5280"/>.</t>
          </li>
          <li>
            <t>The attestation credentials carried in <tt>cmw_attestation</tt> MUST NOT be used as a substitute for X.509 certificate validation but can be used alongside standard certificate validation for additional security assurances.</t>
          </li>
          <li>
            <t>Implementations MAY reject connections where the certificate is valid but the attestation credentials is missing or does not meet security policy.</t>
          </li>
        </ul>
      </section>
      <section anchor="applicability-to-client-and-server-authentication">
        <name>Applicability to Client and Server Authentication</name>
        <t>The <tt>cmw_attestation</tt> extension is applicable to both client and server authentication in Exported Authenticator-based post-handshake authentication.</t>
        <t>In TLS, one party acts as the Relying Party, and the other party acts as the Attester. Either the client or the server may fulfill these roles depending on the authentication direction.</t>
        <t>The Attester may respond with either:</t>
        <ul spacing="normal">
          <li>
            <t>Evidence (Background Check Model):
            </t>
            <ul spacing="normal">
              <li>
                <t>The Attester generates Evidence and includes it in the <tt>cmw_attestation</tt> extension to the Authenticator's Certificate message.</t>
              </li>
              <li>
                <t>The Relying Party forwards the Evidence to an external Verifier for evaluation and waits for an Attestation Result.</t>
              </li>
              <li>
                <t>The Relying Party grants or denies access, or continues or terminates the TLS connection, based on the Verifier's Attestation Result.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Attestation Result (Passport Model):
            </t>
            <ul spacing="normal">
              <li>
                <t>The Attester sends Evidence to a Verifier beforehand.</t>
              </li>
              <li>
                <t>The Verifier issues an Attestation Result to the Attester.</t>
              </li>
              <li>
                <t>The Attester includes the Attestation Result in the <tt>cmw_attestation</tt> extension to the Authenticator's Certificate message and sends it to the Relying Party.</t>
              </li>
              <li>
                <t>The Relying Party validates the Attestation Result directly without needing to contact an external Verifier.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>By allowing both Evidence and Attestation Results to be conveyed within <tt>cmw_attestation</tt>, this mechanism supports flexible attestation workflows depending on the chosen trust model.</t>
      </section>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>The <tt>cmw_attestation</tt> extension enables attestation credentials to be included in the Certificate message during Exported Authenticator-based post-handshake authentication, ensuring that attestation remains bound to the TLS connection.</t>
      <t>However, applications using this mechanism still need to negotiate the encoding format (e.g., JOSE or COSE) and specify how attestation credentials are processed. This negotiation can be done via application-layer signaling or predefined profiles. Future specifications may define mechanisms to streamline this negotiation.</t>
      <t>Upon receipt of a Certificate message containing the <tt>cmw_attestation</tt> extension, an endpoint MUST take the following steps to validate the attestation credentials:</t>
      <ul spacing="normal">
        <li>
          <t>Background Check Model:
          </t>
          <ul spacing="normal">
            <li>
              <t>Verify Integrity and Authenticity: The Evidence must be cryptographically verified against a known trust anchor, typically provided by the hardware manufacturer.</t>
            </li>
            <li>
              <t>Verify Certificate Request Binding and Freshness: The Evidence must be bound to the active TLS connection by verifying that the exporter value in the Evidence matches the exporter value computed using the label "Attestation Binding" and the certificate_request_context as the exporter context. This verification ensures correct connection binding, provides freshness, and prevents replay.</t>
            </li>
            <li>
              <t>Evaluate Security Policy Compliance: The Evidence must be evaluated against the Relying Party's security policies to determine if the attesting device and the private key storage meet the required criteria.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Passport Model:
          </t>
          <ul spacing="normal">
            <li>
              <t>Verify the Attestation Result: The Relying Party MUST check that the Attestation Result is correctly signed by the issuing authority and that it meets the Relying Party’s security requirements.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>By integrating <tt>cmw_attestation</tt> directly into the Certificate message during Exported Authenticator-based post-handshake authentication, this approach reduces latency and complexity while maintaining strong security guarantees.</t>
      <t>In the following examples, the server possesses an identity certificate, while the client is not authenticated during the initial TLS exchange.</t>
      <section anchor="client-as-attester">
        <name>Client as Attester</name>
        <section anchor="passport-model">
          <name>Passport Model</name>
          <t><xref target="fig-passport"/> shows the passport model.</t>
          <figure anchor="fig-passport">
            <name>Passport Model with Client as Attester</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="472" viewBox="0 0 472 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 24,48 L 24,368" fill="none" stroke="black"/>
                  <path d="M 224,48 L 224,208" fill="none" stroke="black"/>
                  <path d="M 224,280 L 224,368" fill="none" stroke="black"/>
                  <path d="M 432,48 L 432,368" fill="none" stroke="black"/>
                  <path d="M 32,96 L 216,96" fill="none" stroke="black"/>
                  <path d="M 32,192 L 216,192" fill="none" stroke="black"/>
                  <path d="M 32,240 L 424,240" fill="none" stroke="black"/>
                  <path d="M 32,272 L 424,272" fill="none" stroke="black"/>
                  <path d="M 32,368 L 216,368" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="432,240 420,234.4 420,245.6" fill="black" transform="rotate(0,424,240)"/>
                  <polygon class="arrowhead" points="224,368 212,362.4 212,373.6" fill="black" transform="rotate(0,216,368)"/>
                  <polygon class="arrowhead" points="224,96 212,90.4 212,101.6" fill="black" transform="rotate(0,216,96)"/>
                  <polygon class="arrowhead" points="40,272 28,266.4 28,277.6" fill="black" transform="rotate(180,32,272)"/>
                  <polygon class="arrowhead" points="40,192 28,186.4 28,197.6" fill="black" transform="rotate(180,32,192)"/>
                  <polygon class="arrowhead" points="40,96 28,90.4 28,101.6" fill="black" transform="rotate(180,32,96)"/>
                  <g class="text">
                    <text x="28" y="36">Client</text>
                    <text x="228" y="36">Server</text>
                    <text x="436" y="36">Verifier</text>
                    <text x="72" y="68">Regular</text>
                    <text x="120" y="68">TLS</text>
                    <text x="176" y="68">Handshake</text>
                    <text x="108" y="84">(Server-only</text>
                    <text x="184" y="84">auth)</text>
                    <text x="56" y="132">...</text>
                    <text x="92" y="132">time</text>
                    <text x="140" y="132">passes</text>
                    <text x="184" y="132">...</text>
                    <text x="88" y="164">Authenticator</text>
                    <text x="176" y="164">Request</text>
                    <text x="116" y="180">(CertificateReq)</text>
                    <text x="192" y="228">Sends</text>
                    <text x="252" y="228">Evidence</text>
                    <text x="180" y="260">Gets</text>
                    <text x="248" y="260">Attestation</text>
                    <text x="324" y="260">result</text>
                    <text x="68" y="292">Exported</text>
                    <text x="164" y="292">Authenticator(</text>
                    <text x="80" y="308">Certificate</text>
                    <text x="148" y="308">with</text>
                    <text x="100" y="324">cmw_attestation,</text>
                    <text x="108" y="340">CertificateVerify,</text>
                    <text x="72" y="356">Finished)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
Client                   Server                   Verifier
  |                        |                         |
  |  Regular TLS Handshake |                         |
  |    (Server-only auth)  |                         |
  |<---------------------->|                         |
  |                        |                         |
  |  ... time passes ...   |                         |
  |                        |                         |
  | Authenticator Request  |                         |
  |   (CertificateReq)     |                         |
  |<-----------------------|                         |
  |                        |                         |
  |                  Sends Evidence                  |
  |------------------------------------------------->|
  |                 Gets Attestation result          |
  |<-------------------------------------------------|
  | Exported Authenticator(|                         |
  | Certificate with       |                         |
  | cmw_attestation,       |                         |
  | CertificateVerify,     |                         |
  | Finished)              |                         |
  |----------------------->|                         |
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="background-check-model">
          <name>Background-check Model</name>
          <t><xref target="fig-background"/> shows an example using the background-check model,
where TE represents the Target Environment and AE represents the
Attesting Environment.
The TLS Client within TE establishes a TLS connection with the Server.
At a later time, the Server triggers an Authenticator Request.
The TE requests Evidence from the AE. The Evidence produced includes the TE's TCB measurements, including those relating to the TLS Client code and configuration.
The TE embeds this Evidence into an Exported Authenticator and sends it to the Server.
The Server forwards the Evidence to a Verifier for appraisal and receives an Attestation Result.</t>
          <figure anchor="fig-background">
            <name>Background Check Model with Client as Attester</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="464" width="568" viewBox="0 0 568 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 16,48 L 16,432" fill="none" stroke="black"/>
                  <path d="M 176,112 L 176,128" fill="none" stroke="black"/>
                  <path d="M 176,168 L 176,256" fill="none" stroke="black"/>
                  <path d="M 176,344 L 176,432" fill="none" stroke="black"/>
                  <path d="M 376,48 L 376,432" fill="none" stroke="black"/>
                  <path d="M 528,48 L 528,432" fill="none" stroke="black"/>
                  <path d="M 24,80 L 368,80" fill="none" stroke="black"/>
                  <path d="M 24,160 L 368,160" fill="none" stroke="black"/>
                  <path d="M 24,208 L 168,208" fill="none" stroke="black"/>
                  <path d="M 24,256 L 168,256" fill="none" stroke="black"/>
                  <path d="M 24,336 L 368,336" fill="none" stroke="black"/>
                  <path d="M 384,368 L 520,368" fill="none" stroke="black"/>
                  <path d="M 384,416 L 520,416" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="528,368 516,362.4 516,373.6" fill="black" transform="rotate(0,520,368)"/>
                  <polygon class="arrowhead" points="392,416 380,410.4 380,421.6" fill="black" transform="rotate(180,384,416)"/>
                  <polygon class="arrowhead" points="376,336 364,330.4 364,341.6" fill="black" transform="rotate(0,368,336)"/>
                  <polygon class="arrowhead" points="376,80 364,74.4 364,85.6" fill="black" transform="rotate(0,368,80)"/>
                  <polygon class="arrowhead" points="176,208 164,202.4 164,213.6" fill="black" transform="rotate(0,168,208)"/>
                  <polygon class="arrowhead" points="32,256 20,250.4 20,261.6" fill="black" transform="rotate(180,24,256)"/>
                  <polygon class="arrowhead" points="32,160 20,154.4 20,165.6" fill="black" transform="rotate(180,24,160)"/>
                  <polygon class="arrowhead" points="32,80 20,74.4 20,85.6" fill="black" transform="rotate(180,24,80)"/>
                  <g class="text">
                    <text x="12" y="36">TE</text>
                    <text x="44" y="36">(TLS</text>
                    <text x="96" y="36">Client)</text>
                    <text x="180" y="36">AE</text>
                    <text x="344" y="36">TLS</text>
                    <text x="388" y="36">Server</text>
                    <text x="532" y="36">Verifier</text>
                    <text x="176" y="52">|</text>
                    <text x="64" y="68">Regular</text>
                    <text x="112" y="68">TLS</text>
                    <text x="168" y="68">Handshake</text>
                    <text x="260" y="68">(Server-only</text>
                    <text x="336" y="68">auth)</text>
                    <text x="176" y="100">|</text>
                    <text x="56" y="116">...</text>
                    <text x="92" y="116">time</text>
                    <text x="140" y="116">passes</text>
                    <text x="188" y="116">..</text>
                    <text x="80" y="148">Authenticator</text>
                    <text x="168" y="148">Request</text>
                    <text x="268" y="148">(CertificateReq)</text>
                    <text x="56" y="196">Request</text>
                    <text x="124" y="196">Evidence</text>
                    <text x="72" y="228">Attestation</text>
                    <text x="60" y="244">Evidence</text>
                    <text x="60" y="276">Exported</text>
                    <text x="200" y="276">Authenticator(Certificate</text>
                    <text x="324" y="276">with</text>
                    <text x="92" y="292">cmw_attestation,</text>
                    <text x="100" y="308">CertificateVerify,</text>
                    <text x="64" y="324">Finished)</text>
                    <text x="404" y="356">Send</text>
                    <text x="460" y="356">Evidence</text>
                    <text x="432" y="388">Attestation</text>
                    <text x="412" y="404">Result</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 TE (TLS Client)      AE                  TLS Server           Verifier
  |                   |                        |                  |
  |  Regular TLS Handshake (Server-only auth)  |                  |
  |<------------------------------------------>|                  |
  |                   |                        |                  |
  |   ... time passes ...                      |                  |
  |                   |                        |                  |
  | Authenticator Request (CertificateReq)     |                  |
  |<-------------------------------------------|                  |
  |                   |                        |                  |
  | Request Evidence  |                        |                  |
  |------------------>|                        |                  |
  | Attestation       |                        |                  |
  | Evidence          |                        |                  |
  |<------------------|                        |                  |
  | Exported Authenticator(Certificate with    |                  |
  | cmw_attestation,                           |                  |
  | CertificateVerify,                         |                  |
  | Finished)                                  |                  |
  |------------------------------------------->|                  |
  |                   |                        | Send Evidence    |
  |                   |                        |----------------->|
  |                   |                        | Attestation      |
  |                   |                        | Result           |
  |                   |                        |<-----------------|
  |                   |                        |                  |
]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
      <section anchor="server-as-attester">
        <name>Server as Attester</name>
        <t>The flow for the Server as Attester is analogous, except that it uses a ClientCertificateRequest instead of CertificateRequest.</t>
      </section>
      <section anchor="api-requirements-for-attestation-support">
        <name>API Requirements for Attestation Support</name>
        <t>To enable attestation workflows, implementations of the Exported Authenticator API MUST support the following:</t>
        <ol spacing="normal" type="1"><li>
            <t>Authenticator Generation
            </t>
            <ul spacing="normal">
              <li>
                <t>The API MUST support the inclusion of attestation credentials within the Certificate message provided as input.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Authenticator Validation
            </t>
            <ul spacing="normal">
              <li>
                <t>The API MUST support verification that the Evidence in the Certificate message is cryptographically valid and correctly bound to the TLS connection and the associated certificate_request_context.</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="binding">
      <name>Cryptographic Binding of the Evidence to the TLS Connection</name>
      <t>The cryptographic operations defined in this section bind attestation Evidence
to a specific TLS connection. 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 connection in which it is conveyed.</t>
      <t>Attestation Evidence is generated by a TEE and signed using an attestation key.
The signed Evidence includes inputs originating from different trust domains.</t>
      <ul spacing="normal">
        <li>
          <t>The attestation binder is provided by the TLS stack and serves as an attestation
challenge that ensures freshness and binds the attestation to a specific TLS connection.</t>
        </li>
        <li>
          <t>A claim generated by the TEE itself, such as a hash of the AIK public key,
which ensures that the attested environment controls the AIK private key used
for TLS authentication.</t>
        </li>
      </ul>
      <section anchor="attestation-binder">
        <name>Attestation Binder</name>
        <t>The attester binds the attestation Evidence to the active TLS connection. To do so, the attester derives a
binding value using the TLS exporter. The exporter invocation uses:</t>
        <ul spacing="normal">
          <li>
            <t>the label "Attestation", and</t>
          </li>
          <li>
            <t>the certificate_request_context from the CertificateRequest message as the context_value (as defined in Section 7.5 of <xref target="I-D.ietf-tls-rfc8446bis"/>). In a Background Check model, this value contains the Verifier-provided nonce; and</t>
          </li>
          <li>
            <t>a key_length set to 256-bit (32 bytes).</t>
          </li>
        </ul>
        <artwork><![CDATA[
   TLS-Exporter("Attestation", certificate_request_context, 32)
]]></artwork>
        <t>The binding value is defined as:</t>
        <artwork><![CDATA[
   Hash(public_key || exported_value)
]]></artwork>
        <t>where exported_value is the output of the TLS exporter and public_key is the public key corresponding to the end-entity certificate used for authentication. The Hash function is the hash algorithm associated with the negotiated TLS 1.3 cipher suite (i.e., the HKDF hash).</t>
        <t>This binding value is included as an attestation challenge (or nonce) in the attestation Evidence. It binds the Evidence to the specific TLS connection and to the associated certificate_request_context, thereby providing freshness and preventing replay across TLS sessions.</t>
        <t>The TLS endpoint that receives the attestation Evidence computes the binding value using the same exporter and hash function invocation described for the attester. The endpoint either verifies the exporter binding itself or delegates this check to the Verifier. If it performs the check locally and the values do not match, the attestation Evidence is rejected. If the check is delegated, the endpoint conveys the computed binding value to the Verifier so that the comparison can be carried out during attestation validation.</t>
      </section>
      <section anchor="binding-the-authenticator-identity-key-aik-to-the-tee">
        <name>Binding the Authenticator Identity Key (AIK) to the TEE</name>
        <t>This specification assumes that the private key corresponding to the end-entity certificate carried in the exported authenticator referred to as the Authenticator Identity Key (AIK) is generated inside a TEE and never leaves it. A platform could instead generate the AIK 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 AIK private key used by the TLS endpoint was generated, is stored, or is controlled by the TEE.</t>
        <t>To address this risk, the Evidence MUST include the hash of the AIK public key (AIK_pub_hash). The AIK public key MUST be hashed using the hash algorithm associated with the negotiated TLS cipher suite for the TLS connection in which the Evidence is conveyed.</t>
        <t>The Relying Party MUST compute the hash of the AIK public key extracted from the TLS end-entity certificate using
the same hash algorithm and verify that it matches the AIK_pub_hash included in the Evidence. Successful
verification binds the attestation Evidence to the TLS identity used for authentication.</t>
      </section>
    </section>
    <section anchor="operational-overview">
      <name>Operational Overview</name>
      <t>This specification follows the Exported Authenticator model defined in Section 7 of <xref target="RFC9261"/>. In this model, the TLS stack creates and validates post-handshake authentication messages, while the application triggers the exchange and conveys the Authenticator Request and Authenticator messages between peers.</t>
      <t>Whenever attestation is required, the application initiates Exported Authenticator–based post-handshake authentication. The TLS stack constructs an Authenticator Request, using either a <tt>CertificateRequest</tt> or <tt>ClientCertificateRequest</tt> message, and indicates support for attestation by including an empty <tt>cmw_attestation</tt> extension.</t>
      <t>On the attesting side, the platform generates RATS conceptual message, either in the form of Evidence or an Attestation Result, depending on the deployment model. The TLS stack embeds the RATS conceptual message in the <tt>cmw_attestation</tt> extension and completes the Exported Authenticator by generating the corresponding <tt>CertificateVerify</tt> and <tt>Finished</tt> messages. The application then conveys the resulting Authenticator to the peer, as defined in <xref target="RFC9261"/>.</t>
      <t>Upon receipt, the application delivers the Authenticator to the TLS stack for processing. The TLS stack validates the certificate chain, the <tt>CertificateVerify</tt> signature, and the <tt>Finished</tt> message, and extracts the <tt>cmw_attestation</tt> extension. The TLS stack treats the contents of the <tt>cmw_attestation</tt> extension as opaque.</t>
      <t>If the <tt>cmw_attestation</tt> extension carries Evidence, the application acting as the Relying Party forwards it to a Verifier to obtain an Attestation Result. If the extension carries an Attestation Result, the application validates it directly. Based on the outcome of this processing, the application determines whether to continue using the TLS connection.</t>
      <t>While it is technically possible to create or validate Authenticator Requests and Authenticators at the application layer, Section 7 of <xref target="RFC9261"/> recommends that their creation and validation be handled within the TLS library.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document inherits the security considerations of <xref target="RFC9261"/> and <xref target="RFC9334"/>. The integrity of the exported authenticators must be guaranteed, and any failure in validating Evidence SHOULD be treated as a fatal error in the communication channel. Additionally, in order to benefit from remote attestation, Evidence MUST be protected using dedicated attestation keys chaining back to a trust anchor. This trust anchor will typically be provided by the hardware manufacturer.</t>
      <t>This specification assumes that the Hardware Security Module (HSM) or Trusted Execution Environment (TEE) is responsible for generating the Authenticator Identity Key (AIK) key pair and producing either Evidence or Attestation Results. The Evidence or Attestation Results MAY be included in a Certificate Signing Request (CSR), as defined in <xref target="I-D.ietf-lamps-csr-attestation"/>, enabling the CA to verify that the AIK private key is securely generated and stored and that the platform meets the required security standards before issuing a certificate.</t>
      <section anchor="security-guarantees">
        <name>Security Guarantees</name>
        <t>Note that as a pure cryptographic protocol, attested TLS as-is only guarantees that the identity key used for TLS handshake is known by the confidential environment, such as confidential virtual machine. 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 used for TLS handshake is generated within the trustworthy environment, such as Trusted Platform Module (TPM) or TEE.</t>
          </li>
          <li>
            <t>The identity key used for TLS handshake is never exported or leaked outside the trustworthy environment.</t>
          </li>
          <li>
            <t>For confidential computing use cases, the TLS protocol is implemented within the confidential environment, and is implemented correctly, e.g., it does not leak any session key material.</t>
          </li>
          <li>
            <t>The TLS stack including the code that performs the post-handshake phase must be measured.</t>
          </li>
          <li>
            <t>There must be no other way to initiate generation of evidence except from signed code.</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="using-the-tls-connection">
        <name>Using the TLS Connection</name>
        <t>Remote attestation in this document occurs within the context of a TLS handshake, and the TLS connection
remains valid after this process. Care must be taken when handling this TLS connection, as both the client
and server must agree that remote attestation was successfully completed before exchanging data with the
attested party.</t>
        <t>Session resumption presents special challenges since it happens at the TLS level, which is not aware of the
application-level Authenticator. The application (or the modified TLS library) must ensure that a resumed
session has already completed remote attestation before the session can be used normally, and race conditions are possible.</t>
        <t>One possible approach to avoid race conditions is as follows:</t>
        <ul spacing="normal">
          <li>
            <t>For any TLS handshake in which remote attestation is required, the TLS client ensures that any <tt>NewSessionTicket</tt> messages received from the TLS server are ignored or discarded.</t>
          </li>
          <li>
            <t>The client and server perform remote attestation over the established TLS connection.</t>
          </li>
          <li>
            <t>For subsequent TLS connections, the client applies the same policy: if remote attestation is required for a connection before any application traffic is exchanged, PSK-based resumption is prevented.</t>
          </li>
        </ul>
        <t>From a TLS handshake perspective this is possible.</t>
      </section>
      <section anchor="timing-for-remote-attestation">
        <name>Timing for Remote Attestation</name>
        <t>Remote attestation MUST be completed before sending any application data to the peer.
For use cases that require only a one-time attestation for the lifetime of a TLS connection, remote attestation can be performed immediately after the TLS handshake completes.</t>
      </section>
      <section anchor="evidence-freshness">
        <name>Evidence Freshness</name>
        <t>The Evidence carried in cmw_attestation does not require an additional freshness mechanism (such as a nonce <xref target="RA-TLS"/> or a timestamp). Freshness is already ensured by the exporter value derived using the certificate_request_context, as described in <xref target="binding"/>. Because this value is bound to the active TLS connection, the Evidence is guaranteed to be fresh for the connection in which it is generated.</t>
        <t>The Evidence presented in this protocol is valid only at the time it is generated and presented. To ensure that the attested peer continues to operate in a secure state, remote attestation may be re-initiated periodically. In this protocol, this can be accomplished by initiating a new Exported-Authenticator–based post-handshake authentication exchange, which results in a new certificate_request_context and therefore a newly derived exporter value to maintain freshness.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <section anchor="client-as-attester-1">
        <name>Client as Attester</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 model, 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 (i.e., the RP) with whom the secure channel establishment is attempted <xref target="RA-TLS"/>.
The privacy implications are similar to 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>Attester-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="RFC9711"/>),</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., Requirement 4.1 of <xref target="FIDO-REQS"/>).</t>
          </li>
        </ul>
        <t>The last 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 connection.</t>
      </section>
      <section anchor="server-as-attester-1">
        <name>Server as Attester</name>
        <t>For the case of the TLS server as the Attester, the server can ask for client authentication and only send the Evidence after successful client authentication. This limits the exposure of server's hardware-level Claims to be revealed only to authorized clients.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>// Note to RFC Editor: in this section, please replace RFCthis with the RFC number assigned to this document and remove this note.</t>
      <section anchor="tls-extension-type-registration">
        <name>TLS Extension Type Registration</name>
        <t>IANA is requested to register the following new extension type in the "TLS ExtensionType Values" registry <xref target="IANA.tls-extensiontype-values"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Extension Name</th>
              <th align="left">TLS 1.3</th>
              <th align="left">DTLS-Only</th>
              <th align="left">Recommended</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD</td>
              <td align="left">cmw_attestation</td>
              <td align="left">CT</td>
              <td align="left">N</td>
              <td align="left">Yes</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="tls-flags-extension-registry">
        <name>TLS Flags Extension Registry</name>
        <t>IANA is requested to add the following entry to the "TLS Flags" extension registry established by <xref target="I-D.ietf-tls-tlsflags"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD1</t>
          </li>
          <li>
            <t>Flag Name: CMW_Attestation</t>
          </li>
          <li>
            <t>Messages: CH, EE</t>
          </li>
          <li>
            <t>Recommended: Y</t>
          </li>
          <li>
            <t>Reference: RFCthis</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="I-D.ietf-tls-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="RFC9261">
          <front>
            <title>Exported Authenticators in TLS</title>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document describes a mechanism that builds on Transport Layer Security (TLS) or Datagram Transport Layer Security (DTLS) and enables peers to provide proof of ownership of an identity, such as an X.509 certificate. This proof can be exported by one peer, transmitted out of band to the other peer, and verified by the receiving peer.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9261"/>
          <seriesInfo name="DOI" value="10.17487/RFC9261"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="11" month="December" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS architecture (RFC
   9334) are protocol-agnostic data units that are conveyed between RATS
   roles during remote attestation procedures.  Conceptual Messages
   describe the meaning and function of such data units within RATS data
   flows without specifying a wire format, encoding, transport
   mechanism, or processing details.  The initial set of Conceptual
   Messages is defined in Section 8 of RFC 9334 and includes Evidence,
   Attestation Results, Endorsements, Reference Values, and Appraisal
   Policies.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-23"/>
        </reference>
        <reference anchor="I-D.ietf-tls-tlsflags">
          <front>
            <title>A Flags Extension for TLS 1.3</title>
            <author fullname="Yoav Nir" initials="Y." surname="Nir">
              <organization>Dell Technologies</organization>
            </author>
            <date day="14" month="September" year="2025"/>
            <abstract>
              <t>   A number of extensions are proposed in the TLS working group that
   carry no interesting information except the 1-bit indication that a
   certain optional feature is supported.  Such extensions take 4 octets
   each.  This document defines a flags extension that can provide such
   indications at an average marginal cost of 1 bit each.  More
   precisely, it provides as many flag extensions as needed at 4 + the
   order of the last set bit divided by 8.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-tlsflags-16"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="IANA.tls-extensiontype-values" target="https://www.iana.org/assignments/tls-extensiontype-values">
          <front>
            <title>Transport Layer Security (TLS) Extensions</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-lamps-csr-attestation">
          <front>
            <title>Use of Remote Attestation with Certification Signing Requests</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Cryptic Forest Software</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
         </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
         </author>
            <date day="11" month="February" year="2026"/>
            <abstract>
              <t>   Certification Authorities (CAs) issuing certificates to Public Key
   Infrastructure (PKI) end entities may require a certificate signing
   request (CSR) to include additional verifiable information to confirm
   policy compliance.  For example, a CA may require an end entity to
   demonstrate that the private key corresponding to a CSR's public key
   is secured by a hardware security module (HSM), is not exportable,
   etc.  The process of generating, transmitting, and verifying
   additional information required by the CA is called remote
   attestation.  While work is currently underway to standardize various
   aspects of remote attestation, a variety of proprietary mechanisms
   have been in use for years, particularly regarding protection of
   private keys.

   This specification defines an ASN.1 structure for remote attestation
   that can accommodate proprietary and standardized attestation
   mechanisms, as well as an attribute and an extension to carry the
   structure in PKCS#10 and Certificate Request Message Format (CRMF)
   messages, respectively.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-22"/>
        </reference>
        <reference anchor="RA-TLS" target="https://ieeexplore.ieee.org/document/10752524">
          <front>
            <title>Towards Validation of TLS 1.3 Formal Model and Vulnerabilities in Intel's RA-TLS Protocol</title>
            <author initials="M. U." surname="Sardar">
              <organization/>
            </author>
            <author initials="A." surname="Niemi">
              <organization/>
            </author>
            <author initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <author initials="T." surname="Fossati">
              <organization/>
            </author>
            <date year="2024" month="November"/>
          </front>
        </reference>
        <reference anchor="RelayAttacks" target="https://mailarchive.ietf.org/arch/msg/seat/x3eQxFjQFJLceae6l4_NgXnmsDY/">
          <front>
            <title>Relay Attacks in Intra-handshake Attestation for Confidential Agentic AI Systems</title>
            <author initials="M. U." surname="Sardar">
              <organization/>
            </author>
            <date year="2025" month="November"/>
          </front>
        </reference>
        <reference anchor="ID-Crisis" target="https://www.researchgate.net/publication/398839141_Identity_Crisis_in_Confidential_Computing_Formal_Analysis_of_Attested_TLS">
          <front>
            <title>Identity Crisis in Confidential Computing: Formal Analysis of Attested TLS</title>
            <author initials="M. U." surname="Sardar">
              <organization/>
            </author>
            <author initials="M." surname="Moustafa">
              <organization/>
            </author>
            <author initials="T." surname="Aura">
              <organization/>
            </author>
            <date year="2025" month="November"/>
          </front>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (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.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <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="FIDO-REQS" target="https://fidoalliance.org/specs/fido-security-requirements/">
          <front>
            <title>FIDO Authenticator Security and Privacy Requirements</title>
            <author initials="B." surname="Peirani">
              <organization/>
            </author>
            <author initials="J." surname="Verrept">
              <organization/>
            </author>
            <date year="2025" month="March"/>
          </front>
        </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.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>
      </references>
    </references>
    <?line 481?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>We would like to thank Chris Patton for his proposal to explore RFC 9261 for attested TLS.
We would also like to thank Eric Rescorla, Paul Howard, and Yogesh Deshpande for their input.</t>
    </section>
    <section numbered="false" anchor="appendix">
      <name>Appendix</name>
      <section numbered="false" anchor="post-handshake-vs-intra-handshake-privacy">
        <name>Post-handshake vs. Intra-handshake Privacy</name>
        <t>From the view of the TLS server, post-handshake attestation offers better privacy than intra-handshake attestation when the server acts as the Attester. In intra-handshake attestation, due to the inherent asymmetry of the TLS protocol, a malicious TLS client could potentially retrieve sensitive information from the Evidence without the client's trustworthiness first being established by the server. In post-handshake attestation, the server can ask for client authentication and only send the Evidence after successful client authentication.</t>
      </section>
      <section numbered="false" anchor="post-handshake-vs-intra-handshake-security">
        <name>Post-handshake vs. Intra-handshake Security</name>
        <t>Intra-handshake attestation proposal <xref target="I-D.fossati-tls-attestation"/> is vulnerable to diversion attacks <xref target="ID-Crisis"/>. It also does not bind the Evidence to the application traffic secrets, resulting in relay attacks <xref target="RelayAttacks"/>. Formal analysis of post-handshake attestation is a work-in-progress.</t>
      </section>
      <section numbered="false" anchor="document-history">
        <name>Document History</name>
        <t>-00</t>
        <ul spacing="normal">
          <li>
            <t>Expanded security considerations, in particular added security guarantees</t>
          </li>
          <li>
            <t>Added privacy considerations</t>
          </li>
          <li>
            <t>Corrected <xref target="fig-passport"/></t>
          </li>
        </ul>
        <t>-01</t>
        <ul spacing="normal">
          <li>
            <t>Added channel binding</t>
          </li>
          <li>
            <t>Added security analysis of intra-handshake attestation in Appendix</t>
          </li>
        </ul>
        <t>-02</t>
        <ul spacing="normal">
          <li>
            <t>Security considerations: Race conditions</t>
          </li>
          <li>
            <t>Security considerations: Timing of remote attestation</t>
          </li>
          <li>
            <t>Updated Client as Attester</t>
          </li>
          <li>
            <t>Added Server as Attester</t>
          </li>
          <li>
            <t>Added operational overview</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA71963LbRpb/dz4F/krVjrRF0pHtZBLN7lRkWY6VxLZGUiaT
Lys3gSaJMQhw0YBkxnFq32E/7evtk+y59Q0EKMmT+asqsUQCje7T5/I7lz6Y
TCajJm8KfZTsXehV1ejkuGm0aVSTV2VymzfL5PT9uqobnSXHbbPUZZOnqqlq
szdSs1mtb+DO4/W6wE/xlh/URtfhIHsj+EYvqnpzlJgmG42yKi3VCp6Y1Wre
TOaVMXDhxGjVTPT7Nfz/88cj085WuTFwf7NZw7Vnp1cvRmW7mun6aJTBgEej
tCqNLk1rjpKmbvUIZvJkpGqtjpJLnbZ13mxGt1X9blFX7Ro+Oz2+Sn6Cv/Ny
kXyLn43e6Q1ckB2Nkkk4Y/zz6odL/Gdg7aMbXbYwhSQJBoe/eK7xQ5JkpfIC
1g7r+ybXzXxa1Qv4VNXp8ihZNs3aHD16BEtSTa3Sd7qe2ose3S4e4V2P1Kxq
m0f4NNiPdgYUbwozUX7Gj7TMM/xwD24oFP4JN9jndG6c8ojTvOod4tHQFk2X
zarYG40UkKWqkRAT+C9JeGNftUu1Wqks+dGolUouVZ2pmr6HVaky/4UGP0qu
fkye19pkuqQvNRNqJXdft3j31NDd3zTtJONrp5nuPO9qWa2USV7wNHse9ENe
qroKH9LQLVNZ2TcFXSA7w0PP26KQ4fO6XalCm1tVJxc6yzY9j3hdvcsVfZ4C
4x0lz1S5UEVVa/qs1gu66ntVl7DT7+TKqi0blIuzMpObZXp776ZN8NTrGp/6
TYnPmKbVaq9DgJ9h8mVyudTzue4j9FnZtHkTPmCDd8yJ1b5Z4Ec4bGfUl6os
tUmuTLqs5rrMFz0j/1jmN7o2sOSkmiekCEBaLtNclync+6wqy8nFUufl5DLX
PIBVGy8nzy4uYzp8q+uVKjfhRHkSUz8JmO77aambzmTPqrJtklf5UhWpVj0z
Pa5XwAerHFg8HD/H+6Yrue8bVa+IEqOygqk0sDhk7osXJ18/efJUfn18ePi1
/PrV4R/p07PJc6LlBOWrnqdfPX365SxHzVSYwycywuMvD6Nra9WYycosJre1
Wm+NAv/NC7XgMSb062iUl/NwXu6GQq3WZpKaOpRemuPxBFTZEa3YKvqrClgq
M8lfVZFnrLVh7+Cy5HD6BKQIHlAkr6pMF4kqs+SvbVHqWs3yIm9y2NO8RH7S
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

-->

</rfc>
