UDP Speedy Secure Shell (USSH)
draft-x1co-ussh-03
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Author | x1co! | ||
| Last updated | 2026-06-17 | ||
| RFC stream | (None) | ||
| Intended RFC status | (None) | ||
| Formats | |||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-x1co-ussh-03
Independent Submission X. x1co
Internet-Draft x1colegal
Intended status: Experimental 17 June 2026
Expires: 19 December 2026
UDP Speedy Secure Shell (USSH)
draft-x1co-ussh-03
Abstract
This document describes UDP Speedy Secure Shell (USSH), an
experimental remote shell protocol built on top of USTPS. USSH
provides an interactive shell session over a secure UDP-based
transport while preserving USTPS transport semantics, including
challenge-validated session setup, per-session key establishment,
selective retransmission, and unordered transport behavior beneath
the shell layer.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 19 December 2026.
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
x1co Expires 19 December 2026 [Page 1]
Internet-Draft USSH June 2026
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Relationship to USTPS . . . . . . . . . . . . . . . . . . . . 2
4. Session Establishment . . . . . . . . . . . . . . . . . . . . 3
5. Message Identification . . . . . . . . . . . . . . . . . . . 3
6. Protocol Model . . . . . . . . . . . . . . . . . . . . . . . 3
7. Interactive Stream Handling . . . . . . . . . . . . . . . . . 4
8. Head-of-Line Considerations . . . . . . . . . . . . . . . . . 4
9. Endpoint Binding . . . . . . . . . . . . . . . . . . . . . . 4
10. Security Model . . . . . . . . . . . . . . . . . . . . . . . 5
11. Operational Status . . . . . . . . . . . . . . . . . . . . . 5
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
13. Security Considerations . . . . . . . . . . . . . . . . . . . 5
14. Normative References . . . . . . . . . . . . . . . . . . . . 5
15. Informative References . . . . . . . . . . . . . . . . . . . 6
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
USSH is an experimental secure shell protocol built directly on top
of USTPS rather than on TCP. Its goal is to provide interactive
remote shell access while preserving the properties of the underlying
USTPS transport, including packet-level authenticated protection for
DATA packets, per-client session keys, selective retransmission, and
lack of transport-level Head-of-Line blocking.
USSH is not intended to be wire-compatible with SSH. It is a
distinct protocol with its own packetization and control semantics.
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
3. Relationship to USTPS
USSH uses USTPS as its secure transport substrate. The outer secure
envelope, readable plaintext control records, and binary UPACK DATA
framing are provided by USTPS. USSH then defines its own application
messages for shell authentication, PTY setup, standard input
delivery, standard output delivery, resize events, keepalives, and
session termination.
x1co Expires 19 December 2026 [Page 2]
Internet-Draft USSH June 2026
USTPS remains unordered at the transport layer. USSH therefore
performs application-layer reconstruction where terminal behavior
requires ordered reconstruction of logical streams such as standard
output.
All datagram-size, MTU, fragmentation, retry-token, nonce, and
transport-sequence considerations are inherited from USTPS. USSH
does not define a second transport layer beneath itself.
4. Session Establishment
A USSH client first establishes a USTPS session with the server. In
current public implementations, this includes a plaintext HELLO, a
plaintext challenge containing a token and generated Base64 session
identifier, and a validated challenge response before DATA traffic is
accepted.
Only after the secure USTPS session exists does the client perform
USSH authentication and request an interactive shell or PTY-backed
session.
5. Message Identification
USSH application messages are carried inside USTPS DATA packets.
They are not identified by the outer USTPS secure-envelope magic.
The outer encrypted USTPS envelope uses USS1, while the inner USTPS
DATA frame uses UPAK.
Implementers should therefore distinguish between the secure
envelope, USTPS control, USTPS DATA framing, and the USSH application
payload when analyzing packet captures or decrypted data. Readable
transport control such as ACK: ..., NACK: ..., and HELLO: ... is a
USTPS transport feature, not a USSH application record format.
6. Protocol Model
Current implementations support password-based authentication after
the secure USTPS session is established. Once authenticated, the
server launches a PTY-backed shell on behalf of the client.
USSH messages currently cover at least the following categories:
* Authentication and session setup
* Standard input delivery
* Standard output delivery
x1co Expires 19 December 2026 [Page 3]
Internet-Draft USSH June 2026
* Terminal resize events
* Keepalive and liveness signaling
* Session close and exit signaling
USSH uses its own application-level sequence numbering where needed
for shell-specific logical streams such as standard input ordering.
This sequence numbering is independent from the outer USTPS transport
seq and exists only to preserve the expected shell byte-stream
behavior.
7. Interactive Stream Handling
Interactive shells are highly sensitive to stream corruption and
terminal redraw behavior. Although USTPS is unordered at the
transport layer, a shell's logical input and output streams often
require application-level ordering. USSH therefore reconstructs
ordered logical output where needed before presenting terminal bytes
to the local client terminal.
This reconstruction is an application-layer behavior of USSH. It
does not convert USTPS itself into an ordered transport.
8. Head-of-Line Considerations
USSH inherits the lack of transport-level Head-of-Line blocking from
USTPS. However, because terminal streams and PTY behavior often
require coherent ordered interpretation, USSH may temporarily delay
terminal-visible output while reconstructing the correct logical
order of shell output fragments.
That delay occurs at the application layer and is distinct from
transport-level Head-of-Line blocking.
9. Endpoint Binding
Current public implementations bind a USSH session to the source IP
address and UDP port that successfully completed the underlying USTPS
retry-token challenge. Automatic path migration has been removed
from the current public implementation because it created practical
reliability and security problems.
If the client changes network and therefore changes source IP address
or UDP port, the existing session is expected to end and the client
is expected to reconnect cleanly.
x1co Expires 19 December 2026 [Page 4]
Internet-Draft USSH June 2026
10. Security Model
USSH relies on USTPS for mandatory AEAD protection of DATA packets
and per-client key establishment. Current public implementations
additionally support persistent server host keys, TOFU-based server
identity continuity, and application-level authentication before
granting shell access.
Implementations SHOULD carefully protect shell spawn logic, PTY
handling, session teardown, and terminal state restoration. Clients
SHOULD restore local terminal settings even when the session closes
unexpectedly.
Old or duplicate USTPS transport packets that arrive late are handled
according to USTPS duplicate and stale-packet rules. Old or
duplicate USSH application chunks SHOULD likewise be ignored once the
corresponding logical application sequence space has already advanced
past them.
11. Operational Status
USSH has been implemented and exercised as a Beta-grade experimental
protocol. Public development has focused on stability over the USTPS
substrate, interactive shell usability, session liveness, terminal
negotiation, and making the client restore terminal state correctly
when sessions close unexpectedly.
12. IANA Considerations
This document has no IANA actions.
13. Security Considerations
Remote shell protocols expose high-impact capabilities. In addition
to the security requirements inherited from USTPS, USSH
implementations MUST authenticate clients before granting shell
access, MUST avoid leaking shell access to unauthenticated peers, and
SHOULD defend against terminal-state corruption and stale-session
reuse.
Applications and operators should understand that USSH is
experimental and not interchangeable with SSH security review,
ecosystem hardening, or deployment maturity.
14. Normative References
x1co Expires 19 December 2026 [Page 5]
Internet-Draft USSH June 2026
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, May 2017,
<https://www.rfc-editor.org/info/rfc8174>.
15. Informative References
[USTPS-DRAFT]
x1co, X., "UDP Speedy Transmission Protocol Secure
(USTPS)", Work in Progress, Internet-Draft, draft-x1co-
ustps-05, June 2026,
<https://datatracker.ietf.org/doc/draft-x1co-ustps/>.
Author's Address
x1co
x1colegal
Email: x1colegal@outlook.com.br
x1co Expires 19 December 2026 [Page 6]