<?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.40 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-reddy-seat-expat-transport-02" 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-02"/>
    <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="August" day="26"/>
    <area>Security</area>
    <workgroup>SEAT</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 58?>

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

<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>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>
        <t>An Initiator that does not receive a response (AuthenticatorResponse or
AuthError) to an outstanding AuthenticatorRequest within an
implementation-defined timeout <bcp14>MAY</bcp14> terminate the connection. This applies
to the HTTP binding and to Shim Mode over TLS 1.3; the retransmission-based
behaviour for Shim Mode over DTLS 1.3 is described in
<xref target="dtls-considerations"/>.</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>
      <t>The Exported Authenticator exchange, including any re-attestation, is
carried on its own Extended CONNECT stream and does not block other HTTP
streams on the same connection. Whether a given application message must 
wait for a fresh, validated AuthenticatorResponse before proceeding is an 
application (Relying Party) policy decision and is out of scope for this
transport; messages that do not depend on fresh attestation <bcp14>MAY</bcp14> proceed in
parallel with an in-progress exchange.</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 0xE5A7A19C. If the first 4 bytes of a
message in Shim Mode do not match 0xE5A7A19C, the receiver <bcp14>MUST</bcp14> terminate
the connection immediately. The leading byte of the magic
(0xE5) is deliberately outside the ASCII range, so it cannot be mistaken
for the first byte of an ASCII application-protocol token (e.g., an HTTP
method). 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: 0xE5A7A19C */
    opaque  body<1..2^32-1>;
} AuthFrame;
]]></artwork>
      <t>Note: The magic value 0xE5A7A19C is an opaque 32-bit constant chosen so
that its leading byte lies outside the ASCII range. It serves solely as a
framing guard against misinterpretation of application-layer data. This
follows the approach used by the STUN magic cookie <xref target="RFC8489"/>, which
distinguishes STUN from other protocols multiplexed on the same transport.</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="alpn-considerations">
      <name>ALPN Considerations</name>
      <t>An application protocol running over Shim Mode <bcp14>MAY</bcp14> register a
dedicated ALPN identifier for that specific binding (e.g.,
"coap-altea" for CoAP over Shim Mode). The application protocol
specification is responsible for determining whether explicit
ALPN signaling is needed and for defining the corresponding
registration.</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, Markus Rudy 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 the Bundeswehr Munich</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm Limited</organization>
            </author>
            <date day="4" month="July" 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-03"/>
        </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="RFC8489">
          <front>
            <title>Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="M. Petit-Huguenin" initials="M." surname="Petit-Huguenin"/>
            <author fullname="G. Salgueiro" initials="G." surname="Salgueiro"/>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="R. Mahy" initials="R." surname="Mahy"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with NAT traversal. It can be used by an endpoint to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs and does not require any special behavior from them.</t>
              <t>STUN is not a NAT traversal solution by itself. Rather, it is a tool to be used in the context of a NAT traversal solution.</t>
              <t>This document obsoletes RFC 5389.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8489"/>
          <seriesInfo name="DOI" value="10.17487/RFC8489"/>
        </reference>
        <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 864?>

<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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
vAmJAAA=

-->

</rfc>
