<?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.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-michel-ssh3-00" category="exp" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.4 -->
  <front>
    <title abbrev="SSH3">Secure shell over HTTP/3 connections</title>
    <seriesInfo name="Internet-Draft" value="draft-michel-ssh3-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="February" day="28"/>
    <area>sec</area>
    <workgroup>Security Dispatch</workgroup>
    <keyword>ssh</keyword>
    <keyword>ssh3</keyword>
    <keyword>http</keyword>
    <keyword>h3</keyword>
    <keyword>quic</keyword>
    <keyword>tls</keyword>
    <abstract>
      <?line 154?>

<t>The secure shell (SSH) traditionally offers its secure services over an insecure network using the TCP transport protocol. This document defines mechanisms
to run the SSH protocol over HTTP/3 using Extended CONNECT.
Running SSH 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-ssh3.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-michel-ssh3/"/>.
      </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 164?>

<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 and uses the name "SSH3" to refer to
this solution. 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, focusing the design of SSH on the Connection protocol itself.
<xref target="ssh3-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 SSH. For instance, new encryption and MAC algorithms
can be added to TLS and used in SSH3 without impacting the specification or
adding new code points in SSH3 for these new algorithms.</t>
      <figure anchor="ssh3-architecture-goal">
        <name>The proposed SSH3 architecture.</name>
        <artwork><![CDATA[
                 +---------------------------------+
                 |              SSH3               |
                 |   +-------------------------+   |
                 |   |     SSH Connection      |   |
                 |   |       (~RFC4254)        |   |
                 |   +-------------------------+   |
                 |          SSH 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 an SSH3 conversation
are similar to the WebTransport session establishment <xref target="WEBTRANSPORT-H3"/>.
WebTransport is also a good transport layer candidate for SSH3. The current
SSH3 prototype <xref target="SSH3-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-ssh-benefits-from-http3">
        <name>How SSH benefits from HTTP/3</name>
        <t>Using HTTP/3 and QUIC as a substrate for SSH brings several different benefits that are
highlighted in this section.</t>
        <section anchor="quic-datagrams-support-streams-multiplexing-and-connection-migration">
          <name>QUIC: datagrams support, streams multiplexing and connection migration</name>
          <t>Using QUIC, SSH3 can send data through both reliable streams and unreliable datagrams. This makes SSH3
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 with SSH3 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 SSH conversation
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 SSH3 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 are all
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 SSH 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 SSH3 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 HTTPS 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. Adding HTTP
authentication to SSH allows welcoming these authentication methods directly
and interfaces SSH3 more naturally with existing architectures. As a
proof-of-concept, OpenID Connect support has been added to our SSH3 prototype <xref target="SSH3-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 SSH endpoints as resources accessible through specific URLs.
First, this makes it easier to integrate SSH endpoints on web servers that already perform
user authentication and authorization. Second, it allows placing several SSH 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, SSH3 endpoints can be placed behind secret URLs, reducing the exposure of SSH3 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-SIGNATURE"/>. This property is not provided by SSHv2 since
the SSHv2 server announces its SSH version string to any connected TCP client. If wanted, SSH3 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 an SSH3 conversation</name>
      <t>We choose the term "conversation" to avoid ambiguities with the existing
concepts of SSH shell session and QUIC connection.
An SSH3 conversation 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>ssh3</tt> and the <tt>:scheme</tt> pseudo-header <bcp14>MUST</bcp14> be set to <tt>https</tt>.
If an SSH3 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>An SSH3 server listens for CONNECT requests with the <tt>ssh3</tt>
protocol on URI templates having the <tt>username</tt> variable. Example URIs can be
found below.</t>
      <artwork><![CDATA[
https://example.org:4443/ssh3?user={username}
https://proxy.example.org:4443/ssh3{?username}
]]></artwork>
      <t>[[Note: In the current prototype <xref target="SSH3-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="ssh3-conversation-establishment"/> illustrates a successful SSH3 conversation
establishment.</t>
      <figure anchor="ssh3-conversation-establishment">
        <name>SSH3 successful conversation establishment.</name>
        <artwork><![CDATA[
       Client
          |                QUIC HANDSHAKE                 |
          |<--------------------------------------------->|
          |                                               |
          | HTTP/3, Stream x CONNECT /<path>?user=<user>  |
          |         :protocol="ssh3"                      |
          |         Authorization=<auth_material>         |
          |---------------------------------------------->|
          |                                               |
          |               HTTP/3, Stream x 200 OK         |
          |<----------------------------------------------|
          |                                               |
          |           Conversation 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="ssh3-authenticating-the-client"/> explores several examples of authentication mechanisms). If an SSH3 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 conversation is established.</t>
      <t>The stream ID used for the Extended CONNECT request is then remembered by each endpoint as the SSH conversation ID, uniquely identifying this SSH conversation.</t>
      <section anchor="ssh3-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 SSH3 server can process the request and start the conversation. 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="SSH3-PROTOTYPE"/>. The third example leverages the Signature authentication
scheme <xref target="HTTP-SIGNATURE"/> 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="ssh3"                      |
     |         Authorization="Basic <credentials>"   |
     |---------------------------------------------->|
     |                                               |
     |               HTTP/3, Stream x 200 OK         |
     |<----------------------------------------------|
     |                                               |
     |           Conversation 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="ssh3"                      |
     |         Authorization="Bearer <JWT token>"    |
     |---------------------------------------------->|
     |                                               |
     |               HTTP/3, Stream x 200 OK         |
     |<----------------------------------------------|
     |                                               |
     |           Conversation 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>ssh3-&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-signature-authentication">
          <name>Public key authentication using HTTP Signature authentication</name>
          <t>Public key authentication can also be performed using the HTTP Signature
Authentication scheme <xref target="HTTP-SIGNATURE"/>. The <tt>&lt;k&gt;</tt> parameter designates
the key ID of the public key used by the authentication process.
Classical SSH implementations usually do not assign IDs to public keys.
The value <tt>&lt;k&gt;</tt> can therefore be set to the cryptographic hash of
the public key instead.</t>
          <artwork><![CDATA[
  Client
     |                QUIC HANDSHAKE                 |
     |<--------------------------------------------->|
     |                                               |
     | HTTP/3, Stream x CONNECT /<path>?user=<user>  |
     |    :protocol="ssh3"                           |
     |    Signature k=<k>, a=<a>,s=<s>,v=<v>,p=<p>   |
     |---------------------------------------------->|
     |                                               |
     |               HTTP/3, Stream x 200 OK         |
     |<----------------------------------------------|
     |                                               |
     |           Conversation 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"/>, SSH3 defines bidirectional channels over
which the endpoints exchange SSH messages. Each channel runs over a bidirectional
HTTP/3 stream and is attached to a single SSH conversation. 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>SSH 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,
SSH3 extends HTTP/3 using a specific signal value. An SSH3 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 SSH3 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>0xaf3627e6</tt>. The content of an HTTP/3 stream carrying an SSH3
channel is illustrated below.</t>
          <artwork><![CDATA[
Channel {
    Signal Value (i) = 0xaf3627e6,
    Conversation 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 SSH
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> SSH message for SSH3. 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="ssh3-and-masque">
      <name>SSH3 and MASQUE</name>
      <t>SSH3 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 SSH3 to provide diverse forwarding services.
Another possible outcome is the integration of SSH3 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 SSH3 implementations to be able to follow the versions of this draft
while being interoperable with a large amount of peers, we define the
"<tt>ssh-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, SSH3 clients implementing this draft in versions 00 and 01
send the "<tt>ssh-version: michel-ssh3-00,michel-ssh3-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>ssh-version</tt>" header.</t>
    </section>
    <section anchor="compatibility-with-sshv2-and-tcp-only-networks">
      <name>Compatibility with SSHv2 and TCP-only networks</name>
      <t>While the protocol described in this document is not directly compatible with SSHv2,
mechanisms can be defined in the future to announce the availability of SSH3 and upgrade
to SSH3 from SSHv2 sessions. SSH3 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"/>
as a substrate for SSH3.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Running an SSH3 endpoint with weak or no authentication methods exposes
the host to non-negligible risks allowing attackers to gain full control
of the server. SSH3 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 SSH3
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 an SSH3 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
conversation.</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 "ssh3" 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 SSH3 atop WebTransport instead of
HTTP/3 only.]]</t>
      </section>
    </section>
  </middle>
  <back>
    <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="23" month="October" year="2023"/>
            <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-08"/>
        </reference>
        <reference anchor="HTTP-SIGNATURE">
          <front>
            <title>The Signature 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="January" year="2024"/>
            <abstract>
              <t>   Existing 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, and there is 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-06"/>
        </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="24" month="January" 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-02"/>
        </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="SSH3-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 661?>

<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:
H4sIAAAAAAAAA+192XLcRrbge35FDhUxLY0L4CrZYkjyLZGURTc3k8VWO/p2
NFGFJAuXKKCMhcUyxf6W+zARE/MD8wHjH5uzZSKBKlJLuyNuxHSFTbGAXE6e
PPs5mQyCQFVJlZptvXJmRnVhdDk2aarzG1Po94PByeqmHuVZZkZVkmflioqG
w8LcYPOz95srahRV5iov5tva3E6VivNRFk1gtLiILqtgkoxgtKAsx5vB2poq
6+EkKUsYqJpPoVGSxWZq4EdWqayeDE2xrWIYcFvBlKXJyrrc1pdRWhoFM26q
qDDRti7NSM3y4vqqyOvptiawk2qud5NyGlWjsbo2c3gfbyutAw1z23836Zdx
VU35F/7+S52M6JcqLdWNyWqY/onWMvqHH/ALg/sBJk2yK/0DvsLHkyhJscm/
mdtoMk1NOMon+DwqRuNtmqjcXl31Xq7CcDB0Uo3rIaDwsoiyUZ6UjKZVQlM5
NaMVaJQCHsoKGtlh2o1DHiRM8qbb6gLSw3E1SVeUiupqnANydQAja31Zpylv
08o7GPW3/wXD6kPqtkIN8uIqypJfI9zzbX2+c5DXN1GS0TvDq3bAhzzfv9Wj
lFuFQ7OyZKbjNLlJgKje5lkEaK6A1h6dTEdZrD/sHZzut6bNeZhw2AzTmVpl
eTGB0W4MUgDS8Ma2Pn2383J9fVMebNoHW/AACDnon+68p2dbG8/X7bPzATwr
LkfwbEOeDU77R2cnx6cD23hTXuwcHx3t7bjHWzJRcLZ32D8a7O+c2RnX7Ju3
/bP9HXr67Yv1b+Hpjx+4+7fP11/C15/O5fXLtbU1+R4MDs7ss3X77HRv5/hP
e6c/2xcI6zECvxHYIV+uvfgOnu79ebB3tLu324L2u62tdQvTbn/Q/+G0f8id
Nl4iWB/23rpVB+8Bc/vBbpiY6jKYmWEFRFAGSKKbbsX7Pxz1B+ene15LbDBM
yqDOpkU+mVYmDpAkocv56T5Ntvnyuxfwdff4J5n7Oa55sHNiQcHxz3dPBGHf
KZVkl/4+84rp9YtvtxCBh8c/DTwYJvkvAYE7zYsKX/fPfjoXIMvROMmiX5Ng
EpW/1CYAKG/nAaH4+GTvCDf4ebi1TYQI0oAF5jGILnijC5OaqDQaWkgDx270
CZDC7RcSbyLT+ElpisSUuBrbBnBuho38mM1mYQ5zAUOTDKluq1WZM+A5iQyO
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
b7iCGs8i16zrwOuk81++2g7V/wMdpe4ooHIAAA==

-->

</rfc>
