<?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.18 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-michel-remote-terminal-http3-00" category="exp" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="RTH3">Remote terminal over HTTP/3 connections</title>
    <seriesInfo name="Internet-Draft" value="draft-michel-remote-terminal-http3-00"/>
    <author fullname="François Michel">
      <organization>UCLouvain</organization>
      <address>
        <email>francois.michel@uclouvain.be</email>
      </address>
    </author>
    <author fullname="Olivier Bonaventure">
      <organization>UCLouvain and WELRI</organization>
      <address>
        <email>olivier.bonaventure@uclouvain.be</email>
      </address>
    </author>
    <date year="2024" month="July" day="31"/>
    <area>sec</area>
    <workgroup>Security Dispatch</workgroup>
    <keyword>ssh</keyword>
    <keyword>http</keyword>
    <keyword>h3</keyword>
    <keyword>quic</keyword>
    <keyword>tls</keyword>
    <abstract>
      <?line 153?>

<t>The secure shell (SSH) traditionally offers its secure services over an insecure network using the TCP transport protocol. This document defines mechanisms to access remote terminals by running the SSH Connection protocol over HTTP/3 using Extended CONNECT.
Remote terminals over HTTP/3 enables additional benefits such as the scalability offered by HTTP
multiplexing, relying on TLS for secure channel establishment leveraging X.509 certificates, HTTP Authentication schemes for client and server authentication, UDP port forwarding
and stronger resilience against packet injection attacks and middlebox interference.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://francoismichel.github.io/ssh3-spec/draft-michel-remote-terminal-http3.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-michel-remote-terminal-http3/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/francoismichel/ssh3-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 162?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The SSH protocol <xref target="SSH-ARCH"/> provides a secure way to access computers remotely over an untrusted network. SSH is currently the most popular way to access Unix hosts and network equipments remotely. Built atop the unencrypted TCP protocol  <xref target="TCP"/>, SSH proposes its own mechanisms to establish a secure channel <xref target="SSH-TRANSPORT"/> and perform user authentication <xref target="SSH-AUTH"/>. Once the secure session is established and the user is authenticated and authorized, SSH uses the Connection protocol to run and manage
remote processes and functionalities executed on the remote host <xref target="SSH-CONNECT"/>.
Among others, SSH provides different services such as remote program execution, shell access, and TCP port forwarding.
<xref target="ssh2-architecture"/> provides a graphical representation of the SSHv2 protocol stack.</t>
      <figure anchor="ssh2-architecture">
        <name>The SSHv2 architecture protocol stack.</name>
        <artwork><![CDATA[
     +------------------------------------------------------------+
     |                           SSHv2                            |
     | +---------------+   +---------------+   +----------------+ |
     | | SSH Transport |   |   SSH Auth.   |   | SSH Connection | |
     | |   (RFC4253)   |   |   (RFC4252)   |   |   (RFC4254)    | |
     | +---------------+   +---------------+   +----------------+ |
     |  secure channel            user            SSH services    |
     |   establishment       authentication                       |
     +------------------------------------------------------------+
                                   |
                                   |  - reliable transport
                                   v
               +----------------------------------------+
               |                  TCP                   |
               +----------------------------------------+
]]></artwork>
      </figure>
      <t>This document defines mechanisms to run the SSH Connection protocol
<xref target="SSH-CONNECT"/> over HTTP/3. The secure channel establishment uses TLS included in QUIC <xref target="QUIC"/> <xref target="QUIC-TLS"/> while user authentication
is performed using existing HTTP authentication schemes.
<xref target="architecture-goal"/> provides a graphical representation of the architecture proposed in this document.
One benefit of the approach is that the HTTP3 and QUIC layers can
evolve independently of this architecture. For instance, new encryption and MAC algorithms
can be added to TLS and used in this architecture without impacting the specification or
adding new code points in this specification for these new algorithms.</t>
      <figure anchor="architecture-goal">
        <name>The proposed architecture.</name>
        <artwork><![CDATA[
                 +---------------------------------+
                 |     Remote Terminal over H3     |
                 |   +-------------------------+   |
                 |   |     SSH Connection      |   |
                 |   |       (~RFC4254)        |   |
                 |   +-------------------------+   |
                 |            services             |
                 +---------------------------------+
                   | - user authentication   | - reliable transport
                   | - URL multiplexing      | - secure channel
                   v                         |    establishment
             +-----------------------+       | - streams multiplexing
             |        HTTP/3         |       |            & datagrams
             +-----------------------+       v
             +----------------------------------------------+
             |                 QUIC / TLS                   |
             +----------------------------------------------+

]]></artwork>
      </figure>
      <t>The mechanisms used for establishing a remote terminal session
are similar to the WebTransport session establishment <xref target="WEBTRANSPORT-H3"/>.
WebTransport is also a good transport layer candidate for this protocol. The current
prototype <xref target="PROTOTYPE"/> is built directly over HTTP/3 since there is no public
WebTransport implementation meeting all our requirements as of now.
The semantics of HTTP/2 being comparable to HTTP/3, the mechanisms
defined in this document could be implemented using HTTP/2 if a fallback
to TCP is required. There is an ongoing effort to be able to run HTTP/3 over QUIC on TCP Streams
<xref target="QUIC-ON-STREAMS"/>. This document
is a first introductory document. We limit its current scope to HTTP/3
using the classical QUIC.</t>
      <section anchor="how-remote-terminals-benefits-from-http3">
        <name>How remote terminals benefits from HTTP/3</name>
        <t>Using HTTP/3 and QUIC brings several different benefits that are
highlighted in this section.</t>
        <section anchor="quic-datagrams-streams-multiplexing-and-connection-migration">
          <name>QUIC: datagrams, streams multiplexing and connection migration</name>
          <t>Using QUIC, data can be sent through both reliable streams and unreliable datagrams. This makes the protocol
able to support port forwarding for both UDP <xref target="UDP"/> and TCP-based protocols. Being based exclusively on TCP, SSHv2 does not offer UDP port forwarding and therefore provides no support to UDP-based protocols such as RTP or QUIC.
This lack of UDP support in SSHv2 may become problematic as the use of QUIC-based applications (HTTP/3, MOQT <xref target="MOQT"/>, DOQ <xref target="DOQ"/>) grows. Support for UDP port forwarding in this architecture also allows accessing real-time media content such as low-latency live video available on the server.
The stream multiplexing capabilities of QUIC allow reducing the head-of-line blocking that SSHv2 encounters when multiplexing several SSH channels over the same TCP connection.</t>
          <t>QUIC also supports connection migration (<xref section="9" sectionFormat="of" target="QUIC"/>).
Using connection migration, a mobile host roaming between networks can
maintain established connections alive across different networks by migrating them
on their newly acquired IP address. This avoids disrupting the remote terminal session
upon network changes.
Finally, QUIC also offers a significantly reduced connection establishment
time compared to the SSHv2 session establishment.</t>
        </section>
        <section anchor="protecting-transport-layer-control-fields">
          <name>Protecting transport-layer control fields</name>
          <t>Since QUIC integrates authentication and encryption as part of its transport
features, it makes remote terminals over HTTP/3 robust to transport-layer attacks that were possible
with TCP, such as packet injections or reset attacks <xref target="RFC5961"/>. For instance, the
recent Terrapin attack <xref target="TERRAPIN"/> manipulates the TCP
sequence number to alter the SSH extension negotiation mechanism <xref target="RFC8308"/>
and downgrade the client authentication algorithms. QUIC control information
such as packet numbers and frame formats is
authenticated and encrypted starting from the Handshake encryption level.
Furthermore, QUIC prevents middlebox interference.</t>
        </section>
        <section anchor="leveraging-the-x509-ecosystem">
          <name>Leveraging the X.509 ecosystem</name>
          <t>By using TLS for their secure channel establishment, HTTPS and QUIC leverage the X.509 certificates
ecosystem with low implementation effort. TLS and QUIC libraries already implement support
for generating, parsing and verifying X.509 certificates. Similarly to classical OpenSSH certificates,
this avoids encouraging users to rely on the Trust On First Use pattern when connecting to their
remote hosts. Relying on the X.509 certificates ecosystem additionally enables servers to use
ACME <xref target="ACME"/> to automatically (with no additional user action) generate X.509 certificates for their
domain names using well-known certificate authorities such as Let's Encrypt. These certificates are publicly valid and can be verified like classical TLS certificates. Client certificates can also be issued
and used as an authentication method for the client.</t>
        </section>
        <section anchor="http-authentication-compatibility-with-existing-authentication-systems">
          <name>HTTP authentication: compatibility with existing authentication systems</name>
          <t>Using HTTP authentication schemes for user authentication allows implementing
diverse authentication
mechanisms such as the classical password-based and public key authentication,
but also popular
web authentication mechanisms such as OpenID Connect <xref target="OpenID.Core"/>, SAML2
<xref target="OASIS.saml-core-2.0-os"/> or the recent Passkeys/WebAuthn standard
<xref target="WebAuthn"/>. All these authentication schemes are already deployed
for managing access to critical resources in different organizations. Sharing
computing resources
using SSHv2 through these mechanisms generally requires the deployment of
a middleware managing the
mapping between identities and SSH keys or certificates. HTTP
authentication allows welcoming these authentication methods directly
and and being interfaced naturally with existing infrastructures. As a
proof-of-concept, OpenID Connect support has been added to our prototype <xref target="PROTOTYPE"/>.
Other web authentication standards such as Passkeys/WebAuthn <xref target="WebAuthn"/>
allow administrators to restrict remote access to specific client devices in addition to users.</t>
        </section>
        <section anchor="url-multiplexing-and-undiscoverability">
          <name>URL multiplexing and undiscoverability</name>
          <t>Relying on HTTP allows easily placing remote terminal endpoints as resources accessible through specific URLs.
First, this makes it easier to integrate remote terminal endpoints on web servers that already perform
user authentication and authorization. Second, it allows placing several remote terminal server instances on the same physical machine on the same port. These instances can run in different virtual machines, containers or
simply different users with user's priviledges and be multiplexed on a URL-basis.
Finally, remote terminal endpoints can be placed behind secret URLs, reducing the exposure of remote terminal hosts to
scanning and brute force attacks. This goes in line with the will of having undiscoverable resources
also tackled by other IETF working groups <xref target="HTTP-CONCEALED"/>. This property is not provided by SSHv2 since
the SSHv2 server announces its SSH version string to any connected TCP client. If wanted, remote terminal hosts can be made
indistinguishable from any HTTP server. This is however only complementary to and <bcp14>MUST NOT</bcp14> replace user authentication.</t>
        </section>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

</section>
    <section anchor="establishing">
      <name>Establishing a remote terminal session</name>
      <t>A remote terminal session can be started using the HTTP/3 Extended CONNECT
method <xref target="EXTENDED-CONNECT"/>. The <tt>:protocol</tt> pseudo-header <bcp14>MUST</bcp14> be set
to <tt>remote-terminal</tt> and the <tt>:scheme</tt> pseudo-header <bcp14>MUST</bcp14> be set to <tt>https</tt>.
If a remote terminal client or server supports the UDP forwarding feature, it <bcp14>MUST</bcp14> indicate support for HTTP/3 datagrams by sending a SETTINGS_H3_DATAGRAM value set to 1 in their
SETTINGS frame (<xref section="2.1.1" sectionFormat="of" target="HTTP-DATAGRAM"/>).</t>
      <t>A remote terminal server listens for CONNECT requests with the <tt>remote-terminal</tt>
protocol on URI templates having the <tt>username</tt> variable. Example URIs can be
found below.</t>
      <artwork><![CDATA[
https://example.org:4443/abcd?user={username}
https://proxy.example.org:4443/1234{?username}
]]></artwork>
      <t>[[Note: In the current prototype <xref target="PROTOTYPE"/>, percent-encoding is used for characters outside the allowed set of <xref target="URI"/>. An alternative can be to perform base64url encoding of the username instead.]]</t>
      <t><xref target="session-establishment"/> illustrates a successful remote terminal session
establishment.</t>
      <figure anchor="session-establishment">
        <name>Successful remote terminal session establishment.</name>
        <artwork><![CDATA[
       Client
          |                QUIC HANDSHAKE                 |
          |<--------------------------------------------->|
          |                                               |
          | HTTP/3, Stream x CONNECT /<path>?user=<user>  |
          |         :protocol="remote-terminal"                      |
          |         Authorization=<auth_material>         |
          |---------------------------------------------->|
          |                                               |
          |               HTTP/3, Stream x 200 OK         |
          |<----------------------------------------------|
          |                                               |
          |             Session established               |
        --+-----------------------------------------------+--
          |                                               |
          |    (endpoints now run the SSH Connection)     |
          |    (protocol over QUIC streams          )     |
          |                                               |
]]></artwork>
      </figure>
      <t>Authentication material is placed inside the <tt>Authorization</tt> header of the Extended CONNECT request. The format and value of <tt>&lt;auth_material&gt;</tt> depends on the HTTP authentication scheme used (<xref target="authenticating-the-client"/> explores several examples of authentication mechanisms). If a
remote terminal endpoint is available to the HTTP/3 server and if the user is successfully authenticated and authorized, the server responds
with a 2xx HTTP status code and the session is established.</t>
      <t>The stream ID used for the Extended CONNECT request is then remembered by each endpoint as the remote terminal session ID, uniquely identifying this session.</t>
      <section anchor="authenticating-the-client">
        <name>Authenticating the client</name>
        <t>Authorization of the CONNECT request is done using HTTP Authorization
as defined in <xref target="HTTP-SEMANTICS"/>, with no restriction on the
authentication scheme used. If no Authorization header is present in the
request or if the authentication
scheme is not supported by the server, the server <bcp14>SHOULD</bcp14> respond with a
401 (Unauthorized) response message. Once the user authentication is successful, the remote terminal server can process the request and start the session. This section only provides example user authentication
mechanisms. Other mechanisms may be proposed in the future in separate
documents. The two first examples are implemented by our current
prototype <xref target="PROTOTYPE"/>. The third example leverages the Concealed authentication
scheme <xref target="HTTP-CONCEALED"/> and will be preferred for public key
authentication in future versions of our prototype.</t>
        <section anchor="password-authentication-using-http-basic-authentication">
          <name>Password authentication using HTTP Basic Authentication</name>
          <t>Password-based authentication is performed using the HTTP
Basic authentication scheme <xref target="HTTP-BASIC"/>. The user-id part of the
<tt>&lt;credentials&gt;</tt> in the Authorization header defined in <xref target="HTTP-BASIC"/>
            <bcp14>MUST</bcp14> be equal to
the <tt>username</tt> variable in the request URI defined in <xref target="establishing"/>.</t>
          <artwork><![CDATA[
  Client
     |                QUIC HANDSHAKE                 |
     |<--------------------------------------------->|
     |                                               |
     | HTTP/3, Stream x CONNECT /<path>?user=<user>  |
     |         :protocol="remote-terminal"           |
     |         Authorization="Basic <credentials>"   |
     |---------------------------------------------->|
     |                                               |
     |               HTTP/3, Stream x 200 OK         |
     |<----------------------------------------------|
     |                                               |
     |             Session established               |
     +-----------------------------------------------+
     |                                               |
]]></artwork>
        </section>
        <section anchor="public-key-authentication-using-oauth2-and-jwts">
          <name>Public key authentication using OAUTH2 and JWTs</name>
          <t>Classical public key authentication can be performed using the OAUTH2 framework <xref target="OAUTH2"/>:
the HTTP Bearer authentication scheme is used to carry an OAUTH access token encoded in the JWT <xref target="JWT"/> format <xref target="OAUTH2-JWT"/>.</t>
          <artwork><![CDATA[
  Client
     |                QUIC HANDSHAKE                 |
     |<--------------------------------------------->|
     |                                               |
     | HTTP/3, Stream x CONNECT /<path>?user=<user>  |
     |         :protocol="remote-terminal"           |
     |         Authorization="Bearer <JWT token>"    |
     |---------------------------------------------->|
     |                                               |
     |               HTTP/3, Stream x 200 OK         |
     |<----------------------------------------------|
     |                                               |
     |             Session established               |
     +-----------------------------------------------+
     |                                               |
]]></artwork>
          <t>For classical client-server public key authentication with no
third-party involved, only the following claims are required (see
<xref target="JWT"/> for their definition):</t>
          <ul spacing="normal">
            <li>
              <t><tt>sub</tt>: set to <tt>remote-terminal-&lt;user&gt;</tt></t>
            </li>
            <li>
              <t><tt>iat</tt>: set to the date of issuance of the JWT</t>
            </li>
            <li>
              <t><tt>exp</tt>: set to a short expiration value to limit the token replay window</t>
            </li>
          </ul>
          <t>The <tt>jti</tt> claim may also be used to prevent the token from
being replayed.</t>
        </section>
        <section anchor="public-key-authentication-using-http-concealed-authentication">
          <name>Public key authentication using HTTP Concealed authentication</name>
          <t>Public key authentication can also be performed using the HTTP Concealed
Authentication scheme <xref target="HTTP-CONCEALED"/>. The <tt>&lt;k&gt;</tt> parameter designates
the key ID of the public key used by the authentication process.</t>
          <artwork><![CDATA[
  Client
     |                QUIC HANDSHAKE                 |
     |<--------------------------------------------->|
     |                                               |
     | HTTP/3, Stream x CONNECT /<path>?user=<user>  |
     |    :protocol="remote-terminal"                |
     |    Concealed k=<k>, a=<a>,s=<s>,v=<v>,p=<p>   |
     |---------------------------------------------->|
     |                                               |
     |               HTTP/3, Stream x 200 OK         |
     |<----------------------------------------------|
     |                                               |
     |             Session established               |
     +-----------------------------------------------+
     |                                               |
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="mapping-the-ssh-connection-protocol">
      <name>Mapping the SSH Connection protocol</name>
      <t>This document reuses the SSH Connection protocol defined in <xref target="SSH-CONNECT"/>. SSH Channels are run over their dedicated HTTP streams and carry SSH messages. The <tt>boolean</tt> and <tt>string</tt> data types defined in <xref target="SSH-ARCH"/> are reused. The <tt>byte</tt>, <tt>uint32</tt> and <tt>uint64</tt> data types are replaced by variable-length integers as defined in <xref section="16" sectionFormat="of" target="QUIC"/>.</t>
      <section anchor="channels">
        <name>Channels</name>
        <t>Similarly to <xref target="SSH-TRANSPORT"/>, this document defines bidirectional channels over
which the endpoints exchange messages. Each channel runs over a bidirectional
HTTP/3 stream and is attached to a single remote terminal session. In this document,
channels are therefore not assigned a channel number conversely to SSHv2.</t>
        <section anchor="opening-a-channel">
          <name>Opening a channel</name>
          <t>Channels can be opened on HTTP/3 client-initiated bidirectional
streams. By default, HTTP/3 considers every client-initiated
bidirectional stream as a request stream. Similarly to WebTransport,
this protocol extends HTTP/3 using a specific signal value. A remote terminal client can open a stream with
this signal value to indicate that it is not a request stream and that
the remaining stream bytes will be used arbitrarily by the protocol
to carry the content of a channel.
For experimental purpose, the signal value is chosen at random and will
change over time. The current signal value is <tt>0x5e67730e</tt>. The content of an HTTP/3 stream carrying a remote terminal
channel is illustrated below.</t>
          <artwork><![CDATA[
Channel {
    Signal Value (i) = 0x5e67730e,
    Session ID (i),
    Channel Type Length (i)
    Channel Type (..)
    Maximum Message Size (i)
    SSH messages (..)
}
]]></artwork>
          <t>The first value sent on the HTTP/3 stream is the Signal Value. The
Channel Type is a UTF-8-encoded string whose length is defined
by the Channel Type Length field.</t>
          <t>[[Note: SSHv2 uses text-based channel types. Should we keep that or
use something else instead ? If we change, we loose a 1-1 mapping with SSHv2.]]</t>
          <t>The Maximum Message Size field defines the maximum size in bytes of
SSH messages.</t>
          <t>The remaining bytes of the stream are interpreted as a sequence of
messages. Their format and length can vary depending on the message type
(see <xref target="messages"/>).</t>
        </section>
        <section anchor="channel-types">
          <name>Channel types</name>
          <t>This document defines the following channel types, the four first being
also defined in <xref target="SSH-CONNECT"/>:</t>
          <ul spacing="normal">
            <li>
              <t>session</t>
            </li>
            <li>
              <t>x11</t>
            </li>
            <li>
              <t>direct-tcp</t>
            </li>
            <li>
              <t>reverse-tcp</t>
            </li>
            <li>
              <t>direct-udp</t>
            </li>
            <li>
              <t>reverse-udp</t>
            </li>
          </ul>
          <t>The direct-tcp and direct-udp channels offer TCP and UDP port
forwarding from a local port on the client towards a remote address
accessible from the remote host.
The reverse-tcp and reverse-udp channels offer
the forwarding of UDP packets and TCP connections arriving on a specific port
on the remote host to the client.</t>
        </section>
        <section anchor="port-forwarding">
          <name>Port forwarding</name>
          <t>The HTTP bidirectional stream attached to the <tt>direct-tcp</tt> or <tt>reverse-tcp</tt>
channel directly carries the TCP payload to forward.</t>
          <t>For UDP forwarding, UDP packets are carried through HTTP Datagrams
(<xref section="2" sectionFormat="of" target="HTTP-DATAGRAM"/>) whose Quarter Stream IDs refer directly to the
HTTP Stream ID of the corresponding <tt>direct-udp</tt> or <tt>reverse-udp</tt> channel.</t>
          <t>Forwarding of other layers (e.g. IP) is left for future
versions of the document.</t>
        </section>
        <section anchor="messages">
          <name>Messages</name>
          <t>Messages are exchanged over channels similarly to SSHv2. The same
message
format as the one defined in <xref target="SSH-CONNECT"/> applies, with channel
numbers removed from the messages headers as channel run over dedicated
HTTP streams. Hereunder is an example showing the wire format of the
<tt>exit-status</tt> message. Its SSHv2 variant is described in
<xref section="6.10" sectionFormat="of" target="SSH-CONNECT"/>.</t>
          <artwork><![CDATA[
ExitStatusMessage {
    Message Type (string) = "exit-status",
    Want Reply (bool) = false,
    Exit Status (i)
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="remote-terminal-and-masque">
      <name>Remote terminal and MASQUE</name>
      <t>This protocol shares common objectives with the MASQUE proxy <xref target="MASQUE"/> and while it
is currently out of scope of this introductory document, interactions between
the two protocols may exist in the future. For instance, a MASQUE endpoint
can be integrated with a remote terminal endpoint to provide diverse forwarding services.
Another possible outcome is the integration of remote terminals in the MASQUE
family of proxies in the form of a "<tt>CONNECT-SHELL</tt>" endpoint.</t>
    </section>
    <section anchor="version-negotiation">
      <name>Version Negotiation</name>
      <t>For remote terminal implementations to be able to follow the versions of this draft
while being interoperable with a large amount of peers, we define the
"<tt>remote-terminal-version</tt>" header to list the supported draft versions. The value
of this field sent by the client is a comma-separated list of strings
representing the filenames of the supported drafts without the "<tt>draft-</tt>"
prefix.
For instance, remote terminal clients implementing this draft in versions 00 and 01
send the "<tt>remote-terminal-version: michel-remote-terminal-http3-00,michel-remote-terminal-http3-01</tt>"
HTTP header in the CONNECT request.
Upon receiving this header, the server chooses a version from the ones
supported by the client. It then sets this single version as the value
of the "<tt>remote-terminal-version</tt>" header.</t>
    </section>
    <section anchor="compatibility-tcp-only-networks">
      <name>Compatibility TCP-only networks</name>
      <t>This protocol can also be made available on networks supporting only TCP
using either HTTP/2 <xref target="HTTP2"/> or HTTP/3 <xref target="HTTP3"/> with QUIC on Streams <xref target="QUIC-ON-STREAMS"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Running a remote terminal endpoint with weak or no authentication methods exposes
the host to non-negligible risks allowing attackers to gain full control
of the server. Remote terminal servers should not be run without authentication
and user authentication material should be verified thoroughly. Public
key authentication should be preferred to passwords.</t>
      <t>It is recommended to deploy public TLS certificates on remote terminal
servers similarly to classical HTTPS servers.
Using valid public TLS certificates on the server allows their
automatic verification on the client with no explicit user action
required. Connecting a remote terminal client to a server with a certificate
that cannot be validated using the client's trusted Certificate Authorities
exposes the user to the same risk incurred by SSHv2
endpoints relying on host keys: the user needs to manually validate the
certificate before connecting. Ignoring this verification may allow an attacker
to impersonate the server and access the keystrokes typed by the user during the
session.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="http-upgrade-token">
        <name>HTTP Upgrade Token</name>
        <t>This document will request IANA to register "remote-terminal" in the "HTTP Upgrade
Tokens" registry maintained at <eref target="https://www.iana.org/assignments/http-upgrade-tokens">https://www.iana.org/assignments/http-upgrade-tokens</eref>.</t>
        <t>[[Note: This may be removed if we decide to run remote terminals atop WebTransport instead of
HTTP/3 only.]]</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="HTTP2">
          <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="HTTP3">
          <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="SSH-ARCH">
          <front>
            <title>The Secure Shell (SSH) Protocol Architecture</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell (SSH) Protocol is a protocol for secure remote login and other secure network services over an insecure network. This document describes the architecture of the SSH protocol, as well as the notation and terminology used in SSH protocol documents. It also discusses the SSH algorithm naming system that allows local extensions. The SSH protocol consists of three major components: The Transport Layer Protocol provides server authentication, confidentiality, and integrity with perfect forward secrecy. The User Authentication Protocol authenticates the client to the server. The Connection Protocol multiplexes the encrypted tunnel into several logical channels. Details of these protocols are described in separate documents. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4251"/>
          <seriesInfo name="DOI" value="10.17487/RFC4251"/>
        </reference>
        <reference anchor="SSH-AUTH">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="SSH-TRANSPORT">
          <front>
            <title>The Secure Shell (SSH) Transport Layer Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell (SSH) is a protocol for secure remote login and other secure network services over an insecure network.</t>
              <t>This document describes the SSH transport layer protocol, which typically runs on top of TCP/IP. The protocol can be used as a basis for a number of secure network services. It provides strong encryption, server authentication, and integrity protection. It may also provide compression.</t>
              <t>Key exchange method, public key algorithm, symmetric encryption algorithm, message authentication algorithm, and hash algorithm are all negotiated.</t>
              <t>This document also describes the Diffie-Hellman key exchange method and the minimal set of algorithms that are needed to implement the SSH transport layer protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4253"/>
          <seriesInfo name="DOI" value="10.17487/RFC4253"/>
        </reference>
        <reference anchor="SSH-CONNECT">
          <front>
            <title>The Secure Shell (SSH) Connection Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>Secure Shell (SSH) is a protocol for secure remote login and other secure network services over an insecure network.</t>
              <t>This document describes the SSH Connection Protocol. It provides interactive login sessions, remote execution of commands, forwarded TCP/IP connections, and forwarded X11 connections. All of these channels are multiplexed into a single encrypted tunnel.</t>
              <t>The SSH Connection Protocol has been designed to run on top of the SSH transport layer and user authentication protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4254"/>
          <seriesInfo name="DOI" value="10.17487/RFC4254"/>
        </reference>
        <reference anchor="HTTP-SEMANTICS">
          <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="HTTP-BASIC">
          <front>
            <title>The 'Basic' HTTP Authentication Scheme</title>
            <author fullname="J. Reschke" initials="J." surname="Reschke"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document defines the "Basic" Hypertext Transfer Protocol (HTTP) authentication scheme, which transmits credentials as user-id/ password pairs, encoded using Base64.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7617"/>
          <seriesInfo name="DOI" value="10.17487/RFC7617"/>
        </reference>
        <reference anchor="JWT">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="QUIC">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="QUIC-TLS">
          <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="QUIC-RECOVERY">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="OAUTH2-JWT">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="EXTENDED-CONNECT">
          <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="HTTP-DATAGRAM">
          <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="WEBTRANSPORT-H3">
          <front>
            <title>WebTransport over HTTP/3</title>
            <author fullname="Alan Frindell" initials="A." surname="Frindell">
              <organization>Facebook</organization>
            </author>
            <author fullname="Eric Kinnear" initials="E." surname="Kinnear">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   WebTransport [OVERVIEW] is a protocol framework that enables clients
   constrained by the Web security model to communicate with a remote
   server using a secure multiplexed transport.  This document describes
   a WebTransport protocol that is based on HTTP/3 [HTTP3] and provides
   support for unidirectional streams, bidirectional streams and
   datagrams, all multiplexed within the same HTTP/3 connection.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-webtrans-http3-09"/>
        </reference>
        <reference anchor="HTTP-CONCEALED">
          <front>
            <title>The Concealed HTTP Authentication Scheme</title>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <author fullname="David Oliver" initials="D." surname="Oliver">
              <organization>Guardian Project</organization>
            </author>
            <author fullname="Jonathan Hoyland" initials="J." surname="Hoyland">
              <organization>Cloudflare Inc.</organization>
            </author>
            <date day="23" month="July" year="2024"/>
            <abstract>
              <t>   Most HTTP authentication schemes are probeable in the sense that it
   is possible for an unauthenticated client to probe whether an origin
   serves resources that require authentication.  It is possible for an
   origin to hide the fact that it requires authentication by not
   generating Unauthorized status codes, however that only works with
   non-cryptographic authentication schemes: cryptographic signatures
   require a fresh nonce to be signed.  At the time of writing, there
   was no existing way for the origin to share such a nonce without
   exposing the fact that it serves resources that require
   authentication.  This document proposes a new non-probeable
   cryptographic authentication scheme.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-unprompted-auth-09"/>
        </reference>
        <reference anchor="URI">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="DOQ">
          <front>
            <title>DNS over Dedicated QUIC Connections</title>
            <author fullname="C. Huitema" initials="C." surname="Huitema"/>
            <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>This document describes the use of QUIC to provide transport confidentiality for DNS. The encryption provided by QUIC has similar properties to those provided by TLS, while QUIC transport eliminates the head-of-line blocking issues inherent with TCP and provides more efficient packet-loss recovery than UDP. DNS over QUIC (DoQ) has privacy properties similar to DNS over TLS (DoT) specified in RFC 7858, and latency characteristics similar to classic DNS over UDP. This specification describes the use of DoQ as a general-purpose transport for DNS and includes the use of DoQ for stub to recursive, recursive to authoritative, and zone transfer scenarios.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9250"/>
          <seriesInfo name="DOI" value="10.17487/RFC9250"/>
        </reference>
        <reference anchor="TCP">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
        <reference anchor="UDP">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </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="OAUTH2">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="MOQT">
          <front>
            <title>Media over QUIC Transport</title>
            <author fullname="Luke Curley" initials="L." surname="Curley">
              <organization>Discord</organization>
            </author>
            <author fullname="Kirill Pugin" initials="K." surname="Pugin">
              <organization>Meta</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This document defines the core behavior for Media over QUIC Transport
   (MOQT), a media transport protocol designed to operate over QUIC and
   WebTransport, which have similar functionality.  MOQT allows a
   producer of media to publish data and have it consumed via
   subscription by a multiplicity of endpoints.  It supports
   intermediate content distribution networks and is designed for high
   scale and low latency distribution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-05"/>
        </reference>
        <reference anchor="MASQUE">
          <front>
            <title>The MASQUE Proxy</title>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <date day="7" month="September" year="2023"/>
            <abstract>
              <t>   MASQUE (Multiplexed Application Substrate over QUIC Encryption) is a
   set of protocols and extensions to HTTP that allow proxying all kinds
   of Internet traffic over HTTP.  This document defines the concept of
   a "MASQUE Proxy", an Internet-accessible node that can relay client
   traffic in order to provide privacy guarantees.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schinazi-masque-proxy-01"/>
        </reference>
        <reference anchor="OPENSSH-5.4">
          <front>
            <title>OpenSSH release 5.4</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="Web" value="https://www.openssh.com/txt/release-5.4"/>
        </reference>
        <reference anchor="QUIC-ON-STREAMS">
          <front>
            <title>QUIC on Streams</title>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <author fullname="Lucas Pardue" initials="L." surname="Pardue">
              <organization>Cloudflare</organization>
            </author>
            <date day="16" month="February" year="2024"/>
            <abstract>
              <t>   This document specifies a polyfill of QUIC version 1 that runs on top
   of bi-directional streams such as TLS.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the QUIC Working Group
   mailing list (quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/quic/.

   Source for this draft and an issue tracker can be found at
   https://github.com/kazuho/draft-kazuho-quic-quic-on-streams.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kazuho-quic-quic-on-streams-00"/>
        </reference>
        <reference anchor="PUTTY-CERTIFICATES">
          <front>
            <title>PuTTY Certificates</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="Web" value="https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/putty-certificates/"/>
        </reference>
        <reference anchor="TECTIA-CERTIFICATES">
          <front>
            <title>Tectia Certificates</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="Web" value="https://privx.docs.ssh.com/docs/enabling-certificate-based-authentication-for-ssh-connections"/>
        </reference>
        <reference anchor="RFC5961">
          <front>
            <title>Improving TCP's Robustness to Blind In-Window Attacks</title>
            <author fullname="A. Ramaiah" initials="A." surname="Ramaiah"/>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="M. Dalal" initials="M." surname="Dalal"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>TCP has historically been considered to be protected against spoofed off-path packet injection attacks by relying on the fact that it is difficult to guess the 4-tuple (the source and destination IP addresses and the source and destination ports) in combination with the 32-bit sequence number(s). A combination of increasing window sizes and applications using longer-term connections (e.g., H-323 or Border Gateway Protocol (BGP) [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5961"/>
          <seriesInfo name="DOI" value="10.17487/RFC5961"/>
        </reference>
        <reference anchor="ACME">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <author fullname="D. McCarney" initials="D." surname="McCarney"/>
            <author fullname="J. Kasten" initials="J." surname="Kasten"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8555"/>
          <seriesInfo name="DOI" value="10.17487/RFC8555"/>
        </reference>
        <reference anchor="TERRAPIN">
          <front>
            <title>Terrapin Attack: Breaking SSH Channel Integrity By Sequence Number Manipulation</title>
            <author initials="F." surname="Bäumer" fullname="Fabian Bäumer">
              <organization/>
            </author>
            <author initials="M." surname="Brinkmann" fullname="Marcus Brinkmann">
              <organization/>
            </author>
            <author initials="J." surname="Schwenk" fullname="Jörg Schwenk">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <seriesInfo name="DOI" value="10.48550/arXiv.2312.12422"/>
        </reference>
        <reference anchor="RFC8308">
          <front>
            <title>Extension Negotiation in the Secure Shell (SSH) Protocol</title>
            <author fullname="D. Bider" initials="D." surname="Bider"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This memo updates RFCs 4251, 4252, 4253, and 4254 by defining a mechanism for Secure Shell (SSH) clients and servers to exchange information about supported protocol extensions confidentially after SSH key exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8308"/>
          <seriesInfo name="DOI" value="10.17487/RFC8308"/>
        </reference>
        <reference anchor="OpenID.Core">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura" fullname="N. Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley" fullname="J. Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros" fullname="B. de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore" fullname="C. Mortimore">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Web" value="http://openid.net/specs/openid-connect-core-1_0.html"/>
        </reference>
        <reference anchor="OASIS.saml-core-2.0-os">
          <front>
            <title>Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0</title>
            <author initials="S." surname="Cantor" fullname="S. Cantor.">
              <organization/>
            </author>
            <author initials="J." surname="Kemp" fullname="J. Kemp">
              <organization/>
            </author>
            <author initials="R." surname="Philpott" fullname="R. Philpott">
              <organization/>
            </author>
            <author initials="E." surname="Maler" fullname="E. Maler">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Web" value="http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf"/>
        </reference>
        <reference anchor="WebAuthn">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials Level 3</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Web" value="https://www.w3.org/TR/webauthn-3/"/>
        </reference>
        <reference anchor="PROTOTYPE">
          <front>
            <title>SSH3: faster and rich secure shell using HTTP/3</title>
            <author initials="F." surname="Michel" fullname="François Michel">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Web" value="https://github.com/francoismichel/ssh3"/>
        </reference>
      </references>
    </references>
    <?line 648?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We warmly thank Maxime Piraux, Lucas Pardue and David Schinazi for their precious
comments on the document before the submission. We also thank Ryan Hurst for all the
motivating discussions around the protocol.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
SnzLVcl4PLcqCok70HkqP24cqv8PwHD2UGFxAAA=

-->

</rfc>
