Towards SSH3: how HTTP/3 improves secure shells (2312.08396v1)
Abstract: The SSH protocol was designed in the late nineties to cope with the security problems of the telnetf family of protocols. It brought authentication and confidentiality to remote access protocols and is now widely used. Almost 30 years after the initial design, we revisit SSH in the light of recent protocols including QUIC, TLS 1.3 and HTTP/3. We propose, implement and evaluate SSH3, a protocol that provides an enhanced feature set without compromise compared to SSHv2. SSH3 leverages HTTP-based authorization mechanisms to enable new authentication methods in addition to the classical password-based and private/public key pair authentications. SSH3 users can now configure their remote server to be accessed through the identity provider of their organization or using their Google or Github account. Relying on HTTP/3 and the QUIC protocol, SSH3 offers UDP port forwarding in addition to regular TCP forwarding as well as a faster and secure session establishment. We implement SSH3 over quic-go and evaluate its performance.
- 1983. Telnet Protocol Specification. RFC 854. (May 1983). https://doi.org/10.17487/RFC0854
- 2023. FFmpeg. (2023). http://www.ffmpeg.org.
- 2023. GStreamer. (2023). https://gstreamer.freedesktop.org/.
- 2023. Remote Desktop Protocol: Basic Connectivity and Graphics Remoting. (2023). https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/5073f4ed-1e93-45e1-b039-6e30c385867c
- Let’s Encrypt: an automated certificate authority to encrypt the entire web. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 2473–2487.
- Martin Arlitt and Carey Williamson. 2005. An analysis of TCP reset behaviour on the internet. ACM SIGCOMM Computer Communication Review 35, 1 (2005), 37–44.
- Analyzing real-time video delivery over cellular networks for remote piloting aerial vehicles. In Proceedings of the 22nd ACM Internet Measurement Conference. 98–112.
- Steven M Bellovin. 1989. Security problems in the TCP/IP protocol suite. ACM SIGCOMM Computer Communication Review 19, 2 (1989), 32–48.
- Robert T. Braden. 1989. Requirements for Internet Hosts - Communication Layers. RFC 1122. (Oct. 1989). https://doi.org/10.17487/RFC1122
- Brian Campbell and Mike Bishop. 2023. Client-Cert HTTP Header Field. RFC 9440. (July 2023). https://doi.org/10.17487/RFC9440
- denis bider. 2020. QUIC-based UDP Transport for Secure Shell (SSH). Internet-Draft draft-bider-ssh-quic-09. Internet Engineering Task Force. https://datatracker.ietf.org/doc/draft-bider-ssh-quic/09/ Work in Progress.
- Marlon Dutra. 2016. Scalable and secure access with SSH. (September 2016). https://engineering.fb.com/2016/09/12/security/scalable-and-secure-access-with-ssh/.
- A QUIC implementation in pure go. (2023). https://github.com/quic-go/quic-go
- Pavel Fatin. 2023. typometer. (2023). https://github.com/pavelfatin/typometer
- HTTP Semantics. RFC 9110. (June 2022). https://doi.org/10.17487/RFC9110
- Roy T. Fielding and Julian Reschke. 2014. Hypertext Transfer Protocol (HTTP/1.1): Authentication. RFC 7235. (June 2014). https://doi.org/10.17487/RFC7235
- HTTP Authentication: Basic and Digest Access Authentication. RFC 2617. (June 1999). https://doi.org/10.17487/RFC2617
- WebTransport over HTTP/3. Internet-Draft draft-ietf-webtrans-http3-08. Internet Engineering Task Force. https://datatracker.ietf.org/doc/draft-ietf-webtrans-http3/08/ Work in Progress.
- Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework. RFC 3584. (Aug. 2003). https://doi.org/10.17487/RFC3584
- APNIC Blog Geoff Houston. [n. d.]. A look at QUIC use. https://stats.labs.apnic.net/quic. ([n. d.]). Accessed: 2022-02-09.
- Rainer Gerhards. 2009. The Syslog Protocol. RFC 5424. (March 2009). https://doi.org/10.17487/RFC5424
- Dick Hardt. 2012. The OAuth 2.0 Authorization Framework. RFC 6749. (Oct. 2012). https://doi.org/10.17487/RFC6749
- Jana Iyengar and Martin Thomson. 2021. QUIC: A UDP-Based Multiplexed and Secure Transport. RFC 9000. (May 2021). https://doi.org/10.17487/RFC9000
- JSON Web Token (JWT). RFC 7519. (May 2015). https://doi.org/10.17487/RFC7519
- Michael B. Jones and Dick Hardt. 2012. The OAuth 2.0 Authorization Framework: Bearer Token Usage. RFC 6750. (Oct. 2012). https://doi.org/10.17487/RFC6750
- Brian Kantor. 1991. BSD Rlogin. RFC 1282. (Dec. 1991). https://doi.org/10.17487/RFC1282
- The quic transport protocol: Design and internet-scale deployment. In Proceedings of the conference of the ACM special interest group on data communication. 183–196.
- Multipath Extension for QUIC. Internet-Draft draft-ietf-quic-multipath-06. Internet Engineering Task Force. https://datatracker.ietf.org/doc/draft-ietf-quic-multipath/06/ Work in Progress.
- Chris M. Lonvick and Tatu Ylonen. 2006a. The Secure Shell (SSH) Authentication Protocol. RFC 4252. (Jan. 2006). https://doi.org/10.17487/RFC4252
- Chris M. Lonvick and Tatu Ylonen. 2006b. The Secure Shell (SSH) Connection Protocol. RFC 4254. (Jan. 2006). https://doi.org/10.17487/RFC4254
- Chris M. Lonvick and Tatu Ylonen. 2006c. The Secure Shell (SSH) Protocol Architecture. RFC 4251. (Jan. 2006). https://doi.org/10.17487/RFC4251
- Chris M. Lonvick and Tatu Ylonen. 2006d. The Secure Shell (SSH) Transport Layer Protocol. RFC 4253. (Jan. 2006). https://doi.org/10.17487/RFC4253
- François Michel. 2023. SSH3: Redesigning SSH over the HTTP/3 protocol stack. (2023). https://github.com/francoismichel/ssh3
- Bram Moolenaar. [n. d.]. Vim, the editor. https://www.vim.org/. ([n. d.]). Accessed: 2023-11-30.
- An Unreliable Datagram Extension to QUIC. RFC 9221. (March 2022). https://doi.org/10.17487/RFC9221
- Eric Rescorla. 2018. The Transport Layer Security (TLS) Protocol Version 1.3. RFC 8446. (Aug. 2018). https://doi.org/10.17487/RFC8446
- Openid connect core 1.0. The OpenID Foundation (2014), S3. https://openid.net/specs/openid-connect-core-1_0.html
- The Signature HTTP Authentication Scheme. Internet-Draft draft-ietf-httpbis-unprompted-auth-05. Internet Engineering Task Force. https://datatracker.ietf.org/doc/draft-ietf-httpbis-unprompted-auth/05/ Work in Progress.
- Martin Thomson and Sean Turner. 2021. Using TLS to Secure QUIC. RFC 9001. (May 2021). https://doi.org/10.17487/RFC9001
- The TCP Authentication Option. RFC 5925. (June 2010). https://doi.org/10.17487/RFC5925
- Manfred Touron. 2023. quicssh. (2023). https://github.com/moul/quicssh
- Detecting Forged TCP Reset Packets.. In NDSS.
- Tatu Ylonen. 1996. SSH–secure login connections over the Internet. In Proceedings of the 6th USENIX Security Symposium, Vol. 37. 40–52.