Hop: A Modern Transport and Remote Access Protocol

a simpler and more secure alternative to SSH

Paul Flammarion, George Hosono, Wilson Nguyen, Laura Bauman, Daniel Rebelsky, Gerry Wan, David Adrian, Zakir Durumeric

USENIX Security ’26

Why SSH Struggles in Today’s Environment

  • In-band negotiation: State-machine complexity → crypto downgrade
  • Probing: Key-oracle → identity exposure to active scanners
  • Unbounded agent forwarding: ssh -A → lateral-movement vector
  • TOFU: Unscalable manual key checks → MITM attacks

30 Years: 35 RFCs expanded attack surface & protocol complexity

→ What if we take a clean-slate approach instead of patching SSH?

Noise Handshake & Hidden Mode

  • Fixed Cipher Suites: Prevent downgrade attacks (e.g., Terrapin)
  • Hidden Mode: Unauthenticated probes get no response
Noise handshake: the client sends Encaps(skem), ekem, s and the server replies Encaps(ekem), s, ss

Automated Host Identity

  • Hop Certificates: native, chain of trust, avoid parsing complexity
  • Native ACME Protocol: Automated certificate issuance
  • Replace Trust-On-First-Use
FieldSize (bytes)
Header4
Validity Period16
Public Key32
Parent Fingerprint32
Identities6–514
Parent Signature64
Root Hop Cert signs Intermediate Hop Cert, which signs Leaf Hop Cert

Hop Inner Sub-Protocols over UDP

Protocol stack: SSH runs Connection, Userauth and Transport over TCP; Hop runs Remote Access, Tubes and Transport over UDP

Secure Delegation: AuthGrant

  • Replaces agent forwarding (ssh -A)
  • Bastions operate as dumb UDP pipes without keys
AuthGrant flow between the client, the bastion and the target host
Would you like to Who,│allow bob.cloud.com what,│to run the command 'sudo reboot' to whom,│as alice │on private.server.com and when?│from Wed Apr 9 16:03:28 EDT 2025 │until Wed Apr 9 16:04:28 EDT 2025? Yes > No

Hop in Practice

  • Reference implementation in Go (~18k LoC)
  • Feature parity with SSH:
    • Interactive remote login shell
    • Remote command execution
    • Local and remote port forwarding
  • Faster Session Establishment
Time to shell: Hop 0.43 s, SSH 1.18 s

Link and Contact