<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-reddy-seat-expat-transport-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="ALTEA">Application-Layer Transport for Exported Authenticators and Attestation</title>
    <seriesInfo name="Internet-Draft" value="draft-reddy-seat-expat-transport-00"/>
    <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 fullname="Hannes Tschofenig">
      <organization abbrev="UniBw M.">University of the Bundeswehr Munich</organization>
      <address>
        <postal>
          <city>Neubiberg</city>
          <region>Bavaria</region>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <date year="2026" month="June" day="23"/>
    <area>Security</area>
    <workgroup>SEAT</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 57?>

<t>This document defines a binary, application-layer transport
protocol for exchanging Exported Authenticator messages between
two peers over TLS. It provides the signaling required to initiate
and complete post-handshake authentication exchanges at the
application layer, without requiring modifications to the TLS
layer itself.</t>
      <t>While primarily intended to support attestation exchange, the
transport is generic and can be used independently for any
Exported Authenticator exchange.</t>
      <t>The document further specifies how protocol messages are
conveyed as Capsules over an HTTP connection established
using the Extended CONNECT method, with support for both
HTTP/2 and HTTP/3. In addition, it defines how the protocol
can operate directly over TLS or DTLS 1.3 without an HTTP
binding, using a so-called "Shim Mode".</t>
    </abstract>
  </front>
  <middle>
    <?line 77?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>TLS Exported Authenticators <xref target="RFC9261"/> provide a mechanism for
post-handshake authentication over an established TLS 1.3 connection.
Either peer may request an Exported Authenticator from the other after
the TLS handshake has completed. However, <xref target="RFC9261"/> defines only the
authenticator mechanism itself; it does not define how authenticator
requests, responses, or errors are signaled between peers. Each
application protocol is therefore responsible for defining its own
transport and signaling mechanism.</t>
      <t><xref target="I-D.fossati-seat-expat"/> extends Exported Authenticators to carry
attestation Evidence and Attestation Results, enabling attestation
to be performed after the TLS handshake. As with <xref target="RFC9261"/>,
it defines the semantics and content of the messages, but not the
application-layer transport used to carry them.</t>
      <t>This document defines such a transport. It specifies a binary
application-layer protocol for exchanging Exported Authenticator
messages between two peers over an established TLS connection. The
protocol is generic: although it is primarily motivated by attestation
exchange, it can be used for any Exported Authenticator exchange.</t>
      <t>The specification defines:</t>
      <ul spacing="normal">
        <li>
          <t>Binary message structures, using the presentation
language of <xref target="RFC8446"/>, for carrying Exported Authenticator requests,
responses, and errors.</t>
        </li>
        <li>
          <t>A capability negotiation mechanism that allows peers to determine the
supported attestation message patterns and Conceptual Message Wrapper
(CMW) encoding formats before exchanging Exported Authenticator
 messages.</t>
        </li>
        <li>
          <t>An HTTP binding in which protocol messages are carried as Capsules
<xref target="RFC9297"/> over an HTTP connection established using the Extended
CONNECT method <xref target="RFC8441"/> <xref target="RFC9220"/>.</t>
        </li>
        <li>
          <t>A direct TLS and DTLS 1.3 binding, referred to as Shim Mode, for use
cases where the protocol is run directly over the secure transport
without an HTTP binding.</t>
        </li>
      </ul>
      <t>In the HTTP binding, the client sends an Extended CONNECT request using
the upgrade token "exported-authenticator". Once the connection has been
established, both peers exchange protocol messages as Capsules on the
resulting HTTP stream. This design supports both HTTP/2 and HTTP/3 and
allows the Exported Authenticator exchange to be multiplexed with other
application traffic.</t>
      <t>The protocol supports re-attestation on an HTTPS connection. Either peer
may request a fresh Exported Authenticator at any time. However,
re-attestation is not supported in Shim Mode.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <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?>

<ul spacing="normal">
          <li>
            <t>"TLS" refers to TLS 1.3 and DTLS 1.3 unless otherwise specified. References to TLS
connections, exporters, and Exported Authenticators apply equally to DTLS as defined in <xref target="RFC9261"/>. In the context of Shim Mode (<xref target="shim-mode"/>), "TLS" also encompasses DTLS.</t>
          </li>
          <li>
            <t>The term "terminate the connection" refers to closing the underlying secure transport
connection carrying this protocol.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>The client initiates the protocol using one of the two bindings defined
in this document:</t>
      <ul spacing="normal">
        <li>
          <t>In the TLS binding (<xref target="shim-mode"/>), the client establishes a TLS
connection with the server. The attestation exchange begins immediately
after the TLS handshake completes, with no additional connection setup
step.</t>
        </li>
        <li>
          <t>In the HTTP binding (<xref target="http-binding"/>), the client sends an Extended
CONNECT request with the HTTP upgrade token "exported-authenticator"
and the Capsule-Protocol header field set to true. The server signals
acceptance with a 2xx response that also includes the Capsule-Protocol
header field.</t>
        </li>
      </ul>
      <t>If attestation features are used, once the connection is established,
the server sends an auth_capabilities (EXPAT_AUTH_CAPABILITIES Capsule
in the HTTP binding) message advertising its supported attestation
models and CMW types. The client replies with an auth_capabilities message
containing its selected attestation model and CMW type chosen from the
server's advertised list. If no common attestation model or CMW type
exists, the client sends an auth_error (EXPAT_AUTH_ERROR Capsule in
the HTTP binding) message and terminates the connection.</t>
      <t>Once capabilities are exchanged successfully, either peer may act as
Initiator and send an auth_request (EXPAT_AUTH_REQUEST Capsule in the
HTTP binding) message at any time. The other peer (the Responder)
replies with either an authenticator (EXPAT_AUTHENTICATOR Capsule in
the HTTP binding) message or an auth_error (EXPAT_AUTH_ERROR Capsule
in the HTTP binding) message.</t>
      <figure anchor="fig-overview-shim">
        <name>Protocol overview: TLS binding (Shim Mode)</name>
        <artwork><![CDATA[
Server                                   Client
  |                                        |
  | [TLS binding]                          |
  |<===TLS Handshake======================>|
  |                                        |
  |   [if attestation features are used]   |
  |                                        |
  +----auth_capabilities------------------>|
  |<---auth_capabilities-------------------+
  |                                        |
  |   [either peer may now initiate]       |
  |                                        |
  |<---auth_request(id=1) -----------------+
  +----authenticator(id=1) --------------->|
  |                                        |
  +----auth_request(id=0x8001) ----------->|
  |<---authenticator(id=0x8001) -----------+
]]></artwork>
      </figure>
      <figure anchor="fig-overview-http">
        <name>Protocol overview: HTTP binding</name>
        <artwork><![CDATA[
Server                                   Client
  |                                        |
  | [HTTP binding]                         |
  |<---Extended CONNECT (upgrade token)----+
  +----200 OK (Capsule-Protocol: ?1)------>|
  |                                        |
  |   [if attestation features are used]   |
  |                                        |
  +----EXPAT_AUTH_CAPABILITIES Capsule---->|
  |<---EXPAT_AUTH_CAPABILITIES Capsule-----+
  |                                        |
  |   [either peer may now initiate]       |
  |                                        |
  |<---EXPAT_AUTH_REQUEST(id=1) -----------+
  +----EXPAT_AUTHENTICATOR(id=1) --------->|
  |                                        |
  +----EXPAT_AUTH_REQUEST(id=0x8001) ----->|
  |<---EXPAT_AUTHENTICATOR(id=0x8001) -----+
]]></artwork>
      </figure>
    </section>
    <section anchor="mdef">
      <name>Message Definitions</name>
      <t>All structures use the presentation language of TLS 1.3 <xref target="RFC8446"/>.
All multi-byte integers are in network byte order.</t>
      <t>A peer <bcp14>MUST NOT</bcp14> have more than one outstanding AuthenticatorRequest in
each direction at any time. A peer awaiting a response <bcp14>MUST</bcp14> be prepared
to receive and process an AuthenticatorRequest from the other peer. A peer <bcp14>MUST</bcp14>
treat any message that does not conform to the sequencing and matching rules
defined in this document, or that does not match an outstanding request
where required, as a protocol_error.</t>
      <section anchor="authmessagetype">
        <name>AuthMessageType</name>
        <artwork><![CDATA[
enum {
    auth_request(1),
    authenticator(2),
    auth_error(3),
    auth_capabilities(4),
    (255)
} AuthMessageType;
]]></artwork>
        <t>Values 5-254 are unassigned and available for future assignment via the
IANA registry defined in <xref target="iana-auth-message-type"/>. The
AuthMessageType enum applies to the Shim Mode framing (<xref target="shim-mode"/>)
and DTLS binding (<xref target="dtls-considerations"/>); in the HTTP binding, message
type discrimination is performed by the Capsule Type field instead (see
<xref target="iana-capsule-types"/>).</t>
      </section>
      <section anchor="authcapabilities">
        <name>AuthCapabilities</name>
        <artwork><![CDATA[
enum {
    background_check(1),
    passport(2),
    (255)
} AttestationModel;

opaque cmw_type<1..255>;

struct {
    AuthMessageType  msg_type;             /* auth_capabilities(4)  */
    AttestationModel models<1..255>;       /* RATS models           */
    cmw_type         cmw_types<1..2^16-1>; /* CMW media types       */
} AuthCapabilities;
]]></artwork>
        <t>If attestation-related features defined in <xref target="I-D.fossati-seat-expat"/>
are to be used, the server <bcp14>MUST</bcp14> send an AuthCapabilities message
(EXPAT_AUTH_CAPABILITIES Capsule in the HTTP binding) immediately after
accepting the Extended CONNECT request (i.e., after sending the 2xx
response) in the HTTP binding, or immediately after the TLS handshake
completes in Shim Mode, before any other message. The client <bcp14>MUST</bcp14> reply
with its own AuthCapabilities message before sending any other message.</t>
        <t>Whether attestation features are used on a given connection is determined
by the TLS-layer negotiation defined in <xref target="I-D.fossati-seat-expat"/>,
specifically via the TLS flag registered in that document. A server <bcp14>MUST NOT</bcp14>
send an AuthCapabilities message on a connection where that TLS flag was
not negotiated during the TLS handshake.</t>
        <t>Both fields <bcp14>MUST</bcp14> be non-empty. A peer that receives an AuthCapabilities
message (EXPAT_AUTH_CAPABILITIES Capsule in the HTTP binding) with an
empty models or cmw_types field <bcp14>MUST</bcp14> send an AuthError message
(EXPAT_AUTH_ERROR Capsule in the HTTP binding) with error_code
protocol_error(1) and terminate the connection.</t>
        <t>The cmw_types field contains a vector of UTF-8 media type strings (e.g.,
"application/cmw+cbor"), each individually length-prefixed as defined by
the cmw_type type above.</t>
        <t>The AuthCapabilities message sent by the client conveys the selected
attestation model and CMW type for the connection. The client <bcp14>MUST</bcp14>
select a single attestation model and a single CMW type from the
server's advertised lists and include only the selected values in
its AuthCapabilities message.</t>
        <t>If the client does not support any attestation model or CMW type
advertised by the server, it <bcp14>MUST</bcp14> send an AuthError message
(EXPAT_AUTH_ERROR Capsule in the HTTP binding) with error_code
protocol_error(1) and terminate the connection.</t>
        <t>If the client selects an attestation model or CMW type that was not
advertised by the server, the server <bcp14>MUST</bcp14> send an AuthError message
(EXPAT_AUTH_ERROR Capsule in the HTTP binding) with error_code
protocol_error(1) and terminate the connection.</t>
        <t>A peer that sends an AuthCapabilities message and does not receive
a corresponding response <bcp14>MUST</bcp14> treat this as a protocol_error and
terminate the connection. This rule applies to the HTTP binding
and Shim Mode over TLS 1.3; the analogous behaviour for Shim Mode
over DTLS 1.3 is described in <xref target="dtls-considerations"/>.</t>
        <t>If the AuthCapabilities exchange is omitted, peers <bcp14>MUST NOT</bcp14> use
attestation-related features defined in <xref target="I-D.fossati-seat-expat"/>.</t>
        <t>A peer that receives an AuthCapabilities message (EXPAT_AUTH_CAPABILITIES
Capsule in the HTTP binding) outside of the initial capability exchange
<bcp14>MUST</bcp14> treat it as a protocol_error.</t>
        <t>A client that requires attestation and does not receive an AuthCapabilities
message (EXPAT_AUTH_CAPABILITIES Capsule in the HTTP binding) as the first
message from the server <bcp14>MUST</bcp14> send an AuthError message (EXPAT_AUTH_ERROR
Capsule in the HTTP binding) with error_code protocol_error(1) and
terminate the connection. When determining whether an AuthCapabilities
message was received as the first message, unknown Capsule Types that
are silently ignored per <xref target="RFC9297"/> <bcp14>MUST NOT</bcp14> be counted.</t>
      </section>
      <section anchor="authenticatorrequest">
        <name>AuthenticatorRequest</name>
        <artwork><![CDATA[
struct {
    AuthMessageType msg_type;          /* auth_request(1)     */
    uint16          request_id;        /* request identifier  */
    opaque          authenticator_request<1..2^24-1>;
                                       /* certificate request */
} AuthenticatorRequest;
]]></artwork>
        <t>The authenticator_request field contains a CertificateRequest or
ClientCertificateRequest message encoded as a TLS handshake message,
as defined in <xref target="RFC9261"/>.</t>
        <t>The request_id is used to correlate protocol messages, while the
certificate_request_context contained within authenticator_request is
used by <xref target="RFC9261"/> for binding the resulting Authenticator.</t>
        <section anchor="request-id">
          <name>Request ID</name>
          <t>The request_id namespace is split on the high bit to avoid collision when
both peers initiate requests concurrently:</t>
          <ul spacing="normal">
            <li>
              <t>Client-initiated requests: 0x0001 to 0x7FFF</t>
            </li>
            <li>
              <t>Server-initiated requests: 0x8001 to 0xFFFF</t>
            </li>
            <li>
              <t>0x0000 and 0x8000 are reserved for use in AuthError messages
(EXPAT_AUTH_ERROR Capsules in the HTTP binding) when no specific
request is implicated. A Client <bcp14>MUST</bcp14> use 0x0000 and a Server <bcp14>MUST</bcp14>
use 0x8000 for these messages. Any AuthError message received during
the AuthCapabilities exchange <bcp14>MUST</bcp14> use these reserved values.</t>
            </li>
          </ul>
          <t>A receiver that receives an AuthError message with a reserved
request_id that does not correspond to the sender's role
(i.e., 0x0000 from the server or 0x8000 from the client) <bcp14>MUST</bcp14>
treat it as a protocol_error and terminate the connection.</t>
          <t>The Initiator <bcp14>MUST NOT</bcp14> reuse a request_id that is currently pending,
except when retransmitting a request over DTLS 1.3 as described in
<xref target="dtls-considerations"/>. When the maximum value in its range is reached,
the Initiator wraps around within its assigned range and <bcp14>MUST</bcp14> select the
next request_id that is not currently in use by a pending request.</t>
        </section>
      </section>
      <section anchor="authenticatorresponse">
        <name>AuthenticatorResponse</name>
        <artwork><![CDATA[
struct {
   AuthMessageType msg_type;                      /* authenticator(2) */
   uint16          request_id;
   opaque          authenticator_blob<1..2^24-1>; /* RFC 9261         */
                                                  /* Authenticator    */
} AuthenticatorResponse;
]]></artwork>
        <t>The request_id <bcp14>MUST</bcp14> match the corresponding AuthenticatorRequest.</t>
        <t>The authenticator_blob contains the Authenticator structure. When used
with <xref target="I-D.fossati-seat-expat"/>, the Certificate message within the
Authenticator carries the cmw_attestation extension.</t>
        <t>A receiver that receives an AuthenticatorResponse message
(EXPAT_AUTHENTICATOR Capsule in the HTTP binding) when no request is
outstanding, or with a request_id that does not match any outstanding
request, <bcp14>MUST</bcp14> treat it as a protocol_error.</t>
        <t>A receiver that receives more than one AuthenticatorResponse message
(EXPAT_AUTHENTICATOR Capsule in the HTTP binding) for the same
request_id <bcp14>MUST</bcp14> treat it as a protocol_error.</t>
        <t>The Initiator <bcp14>MUST</bcp14> verify the Authenticator as specified in <xref target="RFC9261"/>
and abort the request if verification fails.</t>
      </section>
      <section anchor="autherror">
        <name>AuthError</name>
        <artwork><![CDATA[
enum {
    protocol_error(1),
    authenticator_failed(2),
    request_id_conflict(3),
    internal_error(4),
    attestation_service_unavailable(5),
    attestation_validation_failed(6),
    attestation_policy_violation(7),
    (255)
} AuthErrorCode;

struct {
    AuthMessageType msg_type;    /* auth_error(3)                        */
    uint16          request_id;  /* 0x0000 (client) or 0x8000 (server)  */
                                 /* if no request is implicated          */
    AuthErrorCode   error_code;
} AuthError;
]]></artwork>
        <t>AuthError messages (EXPAT_AUTH_ERROR Capsules in the HTTP binding) are
bidirectional: either peer may send one at any time.</t>
        <t>Error code semantics:</t>
        <dl newline="true">
          <dt>protocol_error(1):</dt>
          <dd>
            <t>A message was malformed, received out of sequence, or violated a
requirement of this specification (including capability mismatch at
session setup).</t>
          </dd>
          <dt>authenticator_failed(2):</dt>
          <dd>
            <t>The sender was unable to produce a valid Authenticator because the
required attestation Evidence could not be collected.</t>
          </dd>
          <dt>request_id_conflict(3):</dt>
          <dd>
            <t>The received request_id is already in use for an outstanding request
(e.g., due to protocol violation or peer misbehavior).</t>
          </dd>
          <dt>internal_error(4):</dt>
          <dd>
            <t>An unrecoverable internal error occurred that prevents further
processing of the protocol.</t>
          </dd>
          <dt>attestation_service_unavailable(5):</dt>
          <dd>
            <t>The attestation service (TEE or Verifier) is unreachable or timed out.</t>
          </dd>
          <dt>attestation_validation_failed(6):</dt>
          <dd>
            <t>A cryptographic check on the received Authenticator
failed (e.g., signature invalid or Attestation Binder mismatch).</t>
          </dd>
          <dt>attestation_policy_violation(7):</dt>
          <dd>
            <t>The Authenticator is cryptographically valid but does not satisfy the
Relying Party's attestation policy.</t>
          </dd>
        </dl>
        <t>Upon sending or receiving an AuthError message (EXPAT_AUTH_ERROR Capsule
in the HTTP binding) with any error_code other than
attestation_service_unavailable(5), the peer <bcp14>MUST</bcp14> terminate the
connection immediately.</t>
        <t>If the error_code is attestation_service_unavailable(5), the connection
<bcp14>MAY</bcp14> remain open as the failure is transient. The initiator <bcp14>MUST</bcp14> retry
with a new AuthenticatorRequest message (EXPAT_AUTH_REQUEST Capsule in
the HTTP binding) using a new request_id. The initiator <bcp14>MUST</bcp14> apply an
exponential backoff strategy between retries to avoid overwhelming the
attestation service.</t>
        <t>A receiver that receives an AuthError message (EXPAT_AUTH_ERROR Capsule
in the HTTP binding) with a request_id that does not correspond to any
outstanding request and is not a reserved value (0x0000 or 0x8000) <bcp14>MUST</bcp14>
terminate the connection immediately. Any AuthError message sent with a
reserved request_id (0x0000 or 0x8000) <bcp14>MUST</bcp14> be treated as a
session-level error and results in immediate termination.</t>
      </section>
    </section>
    <section anchor="http-binding">
      <name>HTTP Binding</name>
      <section anchor="http-upgrade-token">
        <name>HTTP Upgrade Token</name>
        <t>The HTTP upgrade token defined by this document is:</t>
        <artwork><![CDATA[
exported-authenticator
]]></artwork>
        <t>This token is registered in the "HTTP Upgrade Token Registry" as
defined in <xref target="iana-upgrade-token"/>.</t>
      </section>
      <section anchor="connection-establishment">
        <name>Connection Establishment</name>
        <t>The client initiates the protocol by sending an Extended CONNECT request
<xref target="RFC8441"/><xref target="RFC9220"/> with the following pseudo-header fields and header
fields:</t>
        <artwork><![CDATA[
:method    = CONNECT
:protocol  = exported-authenticator
:scheme    = https
:path      = <configured path, e.g. /.well-known/expat/>
:authority = <server authority>
Capsule-Protocol: ?1
]]></artwork>
        <t>The server <bcp14>MUST</bcp14> respond with a 2xx (successful) response that also
includes:</t>
        <artwork><![CDATA[
Capsule-Protocol: ?1
]]></artwork>
        <t>If the server does not support the "exported-authenticator" upgrade
token, it <bcp14>MUST</bcp14> respond with a 4xx or 5xx response. The client <bcp14>MUST</bcp14>
treat any non-2xx response as a failure and <bcp14>MUST NOT</bcp14> send any Capsules
on the stream.</t>
        <t>Once a 2xx response has been received, both client and server switch
to the Capsule Protocol <xref target="RFC9297"/> on the HTTP stream. All subsequent
bytes on that stream are Capsules as defined in Section 3.2 of
<xref target="RFC9297"/>.</t>
      </section>
      <section anchor="capsule-framing">
        <name>Capsule Framing</name>
        <t>Each protocol message defined in <xref target="mdef"/> <bcp14>MUST</bcp14> be sent as exactly one
Capsule. The Capsule Type field identifies the message type as specified
in <xref target="iana-capsule-types"/>. The Capsule Value field contains the body of
the message: all fields of the relevant struct from <xref target="mdef"/>, excluding
the msg_type field, which is replaced by the Capsule Type.</t>
        <t>Unknown Capsule Types <bcp14>MUST</bcp14> be silently ignored per Section 3.2 of
<xref target="RFC9297"/>. This provides forward compatibility: future extensions <bcp14>MAY</bcp14>
define new Capsule Types without requiring version negotiation.</t>
      </section>
      <section anchor="capsule-type-to-message-mapping">
        <name>Capsule Type to Message Mapping</name>
        <t>The following table maps Capsule Type names to the protocol messages
defined in <xref target="mdef"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Capsule Type Name</th>
              <th align="left">Protocol Message</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">EXPAT_AUTH_REQUEST</td>
              <td align="left">AuthenticatorRequest</td>
            </tr>
            <tr>
              <td align="left">EXPAT_AUTHENTICATOR</td>
              <td align="left">AuthenticatorResponse</td>
            </tr>
            <tr>
              <td align="left">EXPAT_AUTH_ERROR</td>
              <td align="left">AuthError</td>
            </tr>
            <tr>
              <td align="left">EXPAT_AUTH_CAPABILITIES</td>
              <td align="left">AuthCapabilities</td>
            </tr>
          </tbody>
        </table>
        <t>Capsule Type values are assigned in the IANA registry defined in
<xref target="iana-capsule-types"/>.</t>
      </section>
      <section anchor="bidirectionality">
        <name>Bidirectionality</name>
        <t>After the connection is established, both client and server <bcp14>MAY</bcp14> send
any Capsule Type at any time, subject to the sequencing and request_id
rules in <xref target="mdef"/>. Either peer <bcp14>MAY</bcp14> initiate an EXPAT_AUTH_REQUEST
Capsule, consistent with the request_id namespace split defined in <xref target="mdef"/>.</t>
      </section>
      <section anchor="tls-requirement">
        <name>TLS Requirement</name>
        <t>This protocol <bcp14>MUST</bcp14> be used only over TLS 1.3 or later versions.
When operating over HTTP/3, TLS 1.3 is used internally by QUIC as
specified in <xref target="RFC9001"/>, satisfying this requirement. DTLS is not
applicable to the HTTP transport; DTLS 1.3 is supported only for
the Shim Mode defined in this document.</t>
      </section>
      <section anchor="operation-over-http2-and-http3">
        <name>Operation over HTTP/2 and HTTP/3</name>
        <t>When operating over HTTP/2 <xref target="RFC9113"/> or HTTP/3 <xref target="RFC9114"/>, the
Extended CONNECT mechanism is used as defined in <xref target="RFC8441"/> and
<xref target="RFC9220"/>, respectively. In both cases, the server <bcp14>MUST</bcp14> advertise
the SETTINGS_ENABLE_CONNECT_PROTOCOL setting with value 1 before the
client <bcp14>MAY</bcp14> send an Extended CONNECT request with the
"exported-authenticator" upgrade token.</t>
      </section>
      <section anchor="path-configuration">
        <name>Path Configuration</name>
        <t>The path is carried in the :path pseudo-header field of the Extended
CONNECT request. This document registers the well-known URI suffix
"expat" (see <xref target="iana-well-known"/>), yielding the default path
/.well-known/expat/.</t>
      </section>
    </section>
    <section anchor="use-with-draft-fossati-seat-expat">
      <name>Use with draft-fossati-seat-expat</name>
      <t>When used with <xref target="I-D.fossati-seat-expat"/>:</t>
      <ul spacing="normal">
        <li>
          <t>An auth_capabilities (EXPAT_AUTH_CAPABILITIES Capsule in the HTTP
binding) message <bcp14>MUST</bcp14> advertise at least one AttestationModel and one
CMW media type (e.g., "application/cmw+cbor" or "application/cmw+json").</t>
        </li>
        <li>
          <t>The authenticator_blob in an authenticator (EXPAT_AUTHENTICATOR Capsule
in the HTTP binding) message contains an Authenticator whose Certificate
message carries the cmw_attestation extension with Evidence
(background-check model) or an Attestation Result (passport model).</t>
        </li>
        <li>
          <t>The Initiator applies the Authenticator validation procedure defined
in <xref target="I-D.fossati-seat-expat"/> to the received Authenticator.</t>
        </li>
      </ul>
      <t>For re-attestation on long-lived connections, either peer <bcp14>MAY</bcp14> send a
new auth_request (EXPAT_AUTH_REQUEST Capsule in the HTTP binding)
message at any time. Re-attestation is not supported in Shim Mode;
implementations requiring re-attestation <bcp14>MUST</bcp14> use the HTTP binding.</t>
    </section>
    <section anchor="dtls-considerations">
      <name>DTLS 1.3 Considerations</name>
      <t>When this protocol is used in Shim Mode over DTLS 1.3 <xref target="RFC9147"/>,
message loss and reordering may occur. In such environments,
retransmission of messages may be required. The Capsule Protocol and
the HTTP binding are not used over DTLS; all references in this section
are to the Shim Mode framing defined in <xref target="shim-mode"/>.</t>
      <t>If a peer does not receive a response to an AuthCapabilities message,
it <bcp14>MUST</bcp14> retransmit using the same exponential backoff and timeout
mechanism as the DTLS handshake retransmission defined in <xref target="RFC9147"/>.
If no response is received after the retransmission timeout expires,
the peer <bcp14>MUST</bcp14> treat it as a protocol_error and terminate the connection.</t>
      <t>If a peer does not receive a response (AuthenticatorResponse or
AuthError) for an outstanding AuthenticatorRequest within an
implementation-defined timeout, it <bcp14>MAY</bcp14> retransmit the request.</t>
      <t>A retransmitted AuthenticatorRequest <bcp14>MUST</bcp14> use the same request_id and
authenticator_request value as the original.</t>
      <t>A receiver that receives a duplicate AuthenticatorRequest with the
same request_id and identical authenticator_request value <bcp14>MUST</bcp14> treat
it as a retransmission and <bcp14>MAY</bcp14> resend the corresponding
AuthenticatorResponse.</t>
      <t>A receiver that receives duplicate AuthenticatorResponse messages for
the same request_id and identical authenticator_blob <bcp14>MUST</bcp14> treat them
as retransmissions and ignore duplicates.</t>
      <t>A receiver <bcp14>MUST</bcp14> ensure that retransmission does not result in multiple
distinct cryptographic operations for the same request_id. To achieve
this, the receiver <bcp14>SHOULD</bcp14> cache the generated AuthenticatorResponse for
a period sufficient to handle potential retransmissions. If a duplicate
AuthenticatorRequest is received, the cached AuthenticatorResponse
<bcp14>SHOULD</bcp14> be returned.</t>
      <t>Fatal AuthError messages require best-effort coordinated termination.
A peer that receives a fatal AuthError <bcp14>MUST</bcp14> stop sending application
data and <bcp14>SHOULD</bcp14> send a close_notify alert. The sender of a fatal
AuthError <bcp14>MAY</bcp14> retransmit the error if it continues to receive any
records from the peer. If no records are received for a period
exceeding the retransmission timeout, the sender <bcp14>SHOULD</bcp14> assume the
peer has terminated and terminate the connection locally.</t>
    </section>
    <section anchor="shim-mode">
      <name>Direct TLS and DTLS Usage (Shim Mode)</name>
      <t>Shim Mode is intended for short-lived TLS connections where attestation
exchange is performed immediately after the TLS handshake is complete.
Re-attestation on long-lived connections is not supported in this mode;
implementations requiring re-attestation <bcp14>MUST</bcp14> use the HTTP binding
instead.</t>
      <t>This protocol <bcp14>MAY</bcp14> be used directly over a TLS 1.3 connection without
the HTTP binding defined in this document. In this mode, the messages
defined in <xref target="mdef"/> are exchanged immediately after the TLS handshake
completes and before any application data is sent.</t>
      <t>Each message <bcp14>MUST</bcp14> be framed as an AuthFrame. A receiver <bcp14>MUST</bcp14> verify the
magic field is equal to 0x414C5441. If the first 4 bytes of a message
in Shim Mode do not match 0x414C5441, the receiver <bcp14>MUST</bcp14> terminate the
connection immediately. This prevents the misinterpretation of
application-layer data (e.g., HTTP methods) as large ALTEA frame
lengths. As per <xref target="RFC8446"/> Section 3.4, the body field is encoded with
a 4-byte length prefix in network byte order. Receivers <bcp14>MUST</bcp14> use this
length to delimit message boundaries and parse msg_type from the first
byte of the body.</t>
      <artwork><![CDATA[
struct {
    uint32   magic;          /* Constant: 0x414C5441 ("ALTA") */
    opaque  body<1..2^32-1>;
} AuthFrame;
]]></artwork>
      <t>Note: The magic value 0x414C5441 is the ASCII encoding of "ALTA" and
serves solely as a framing guard against misinterpretation of
application-layer data.</t>
      <t>Peers <bcp14>MUST</bcp14> complete the protocol exchange before sending application
protocol messages (e.g., HTTP request/response). Messages defined in
this document <bcp14>MUST NOT</bcp14> be interleaved with application data.</t>
      <t>After the protocol exchange is complete, all subsequent data on the
connection is interpreted as application protocol data.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="transport-security">
        <name>Transport Security</name>
        <t>Although <xref target="RFC9261"/> supports both TLS 1.2 and TLS 1.3, this protocol
restricts use to TLS 1.3 as TLS 1.2 is deprecated. When attestation
features defined in <xref target="I-D.fossati-seat-expat"/> are used, TLS 1.3 is
further required because the attestation binding depends on the TLS
exporter defined in TLS 1.3. When operating over HTTP/3, TLS 1.3 is
provided by QUIC <xref target="RFC9001"/>.</t>
      </section>
      <section anchor="capability-mismatch">
        <name>Capability Mismatch</name>
        <t>Capability mismatch at session setup is treated as a fatal error. This
prevents silent downgrade to unauthenticated operation.</t>
      </section>
      <section anchor="capability-downgrade">
        <name>Capability Downgrade</name>
        <t>Implementations that require attestation <bcp14>MUST</bcp14> ensure that the
AuthCapabilities exchange is performed. Failure to receive or process
an AuthCapabilities message (EXPAT_AUTH_CAPABILITIES Capsule in the
HTTP binding) when attestation is expected <bcp14>MUST</bcp14> be treated as a
protocol_error to prevent downgrade attacks.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-upgrade-token">
        <name>HTTP Upgrade Token Registration</name>
        <t>IANA is requested to register the following entry in the "HTTP Upgrade
Token Registry" defined in Section 16.7 of <xref target="RFC9110"/>:</t>
        <dl newline="true">
          <dt>Value:</dt>
          <dd>
            <t>exported-authenticator</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>Exported Authenticator Transport</t>
          </dd>
          <dt>Expected Version Tokens:</dt>
          <dd>
            <t>None</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>This document</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-capsule-types">
        <name>HTTP Capsule Types</name>
        <t>IANA is requested to register the following entries in the "HTTP
Capsule Types" registry defined in Section 5.4 of <xref target="RFC9297"/>.</t>
        <t>Registration policy: Specification Required.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Capsule Type Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">EXPAT_AUTH_REQUEST</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">TBD2</td>
              <td align="left">EXPAT_AUTHENTICATOR</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">TBD3</td>
              <td align="left">EXPAT_AUTH_ERROR</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">TBD4</td>
              <td align="left">EXPAT_AUTH_CAPABILITIES</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-well-known">
        <name>Well-Known URI Registration</name>
        <t>IANA is requested to register the following Well-Known URI in the
"Well-Known URIs" registry defined in <xref target="RFC8615"/>:</t>
        <dl newline="true">
          <dt>URI Suffix:</dt>
          <dd>
            <t>expat</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Related Information:</dt>
          <dd>
            <t>For use with the "exported-authenticator" HTTP upgrade token.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-auth-message-type">
        <name>AuthMessageType Registry</name>
        <t>IANA is requested to create a new registry "Transport Message Types"
under a new "Exported Authenticator Transport" registry group.</t>
        <t>This registry maps conceptual message type names to their struct
definitions, for use in the Shim Mode framing (<xref target="shim-mode"/>) and
DTLS binding (<xref target="dtls-considerations"/>). In the HTTP binding, message
type discrimination is performed by the Capsule Type field; see
<xref target="iana-capsule-types"/>.</t>
        <t>Registration policy: Specification Required for values 5-254.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Reserved</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">auth_request</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">authenticator</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">auth_error</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">auth_capabilities</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">5-254</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">255</td>
              <td align="left">Reserved</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="autherrorcode-registry">
        <name>AuthErrorCode Registry</name>
        <t>IANA is requested to create a new registry "Error Codes"
under the same registry group.</t>
        <t>Registration policy: Specification Required for values 8-191; Private Use
for 192-254.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Reserved</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">protocol_error</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">authenticator_failed</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">request_id_conflict</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">internal_error</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">attestation_service_unavailable</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">attestation_validation_failed</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">attestation_policy_violation</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">8-191</td>
              <td align="left">Unassigned (Specification Required)</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">192-254</td>
              <td align="left">Private Use</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">255</td>
              <td align="left">Reserved</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="attestation-model-registry">
        <name>Attestation Model Registry</name>
        <t>IANA is requested to create a new registry "Attestation Models" under
the same registry group.</t>
        <t>Registration policy: Specification Required for values 3-254.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Reserved</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">background_check</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">passport</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">3-254</td>
              <td align="left">Unassigned (Specification Required)</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">255</td>
              <td align="left">Reserved</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Ionut Mihalcea and Thomas Fossati for the comments.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8441">
          <front>
            <title>Bootstrapping WebSockets with HTTP/2</title>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <date month="September" year="2018"/>
            <abstract>
              <t>This document defines a mechanism for running the WebSocket Protocol (RFC 6455) over a single stream of an HTTP/2 connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8441"/>
          <seriesInfo name="DOI" value="10.17487/RFC8441"/>
        </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.fossati-seat-expat">
          <front>
            <title>Remote Attestation with Exported Authenticators</title>
            <author fullname="Muhammad Usama Sardar" initials="M. U." surname="Sardar">
              <organization>TU Dresden</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm Limited</organization>
            </author>
            <date day="26" month="February" year="2026"/>
            <abstract>
              <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 [RFC9261].
   Additionally, it introduces the cmw_attestation 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>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fossati-seat-expat-02"/>
        </reference>
        <reference anchor="RFC9220">
          <front>
            <title>Bootstrapping WebSockets with HTTP/3</title>
            <author fullname="R. Hamilton" initials="R." surname="Hamilton"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The mechanism for running the WebSocket Protocol over a single stream of an HTTP/2 connection is equally applicable to HTTP/3, but the HTTP-version-specific details need to be specified. This document describes how the mechanism is adapted for HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9220"/>
          <seriesInfo name="DOI" value="10.17487/RFC9220"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9297">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.</t>
              <t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.</t>
              <t>HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9297"/>
          <seriesInfo name="DOI" value="10.17487/RFC9297"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9113">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
              <t>This document obsoletes RFCs 7540 and 8740.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9113"/>
          <seriesInfo name="DOI" value="10.17487/RFC9113"/>
        </reference>
        <reference anchor="RFC9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </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="STET" target="https://github.com/GoogleCloudPlatform/stet">
          <front>
            <title>STET: Split-Trust Encryption Tool</title>
            <author>
              <organization>Google LLC</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.draft-ietf-httpbis-secondary-server-certs">
          <front>
            <title>Secondary Certificate Authentication of HTTP Servers</title>
            <author fullname="Eric Gorbaty" initials="E." surname="Gorbaty">
              <organization>Apple</organization>
            </author>
            <author fullname="Mike Bishop" initials="M." surname="Bishop">
              <organization>Akamai</organization>
            </author>
            <date day="17" month="June" year="2026"/>
            <abstract>
              <t>   This document defines a way for HTTP/2 and HTTP/3 servers to send
   additional certificate-based credentials after a TLS connection is
   established, based on TLS Exported Authenticators.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-secondary-server-certs-02"/>
        </reference>
      </references>
    </references>
    <?line 842?>

<section anchor="design-rationale">
      <name>Design Rationale</name>
      <t><xref target="I-D.draft-ietf-httpbis-secondary-server-certs"/> defines a mechanism for HTTP/2
and HTTP/3 servers to present additional certificate-based credentials
after TLS connection establishment using TLS Exported Authenticators
<xref target="RFC9261"/>. However, it has several limitations that prevent its use
for mutual post-handshake attestation. The protocol is strictly
unidirectional: the client is explicitly prohibited from sending
certificate frames, and there is no mechanism for the server to
challenge the client to present a certificate. Once a CERTIFICATE frame is
received and validated, it is cached for the lifetime of the connection with
no mechanism to request re-authentication, making re-attestation impossible.</t>
      <t>For these reasons, this document does not use the mechanism
defined in <xref target="I-D.draft-ietf-httpbis-secondary-server-certs"/>.</t>
    </section>
    <section anchor="motivating-example-stet">
      <name>Motivating Example: STET</name>
      <t>The Split-Trust Encryption Tool (STET) <xref target="STET"/> requires attestation as a
precondition for key release from a KMS, and implements this using
a four-message gRPC protocol (BeginSession, Handshake, NegotiateAttestation,
Finalize) with attestation evidence bound to the TLS session via
Exported Keying Material. The result is an application-specific
implementation that does not support re-attestation on an established
TLS connection or server attestation.</t>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <section anchor="draft-reddy-seat-expat-transport-00">
        <name>draft-reddy-seat-expat-transport-00</name>
        <t>Initial version.</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
