←back to thread

532 points tempaccount420 | 1 comments | | HN request time: 0.211s | source
Show context
temp0826 ◴[] No.45396500[source]
I don't know why it makes me a little sad that every application layer protocol is being absorbed into http.
replies(9): >>45396579 #>>45396700 #>>45396749 #>>45396886 #>>45396904 #>>45398062 #>>45398924 #>>45400059 #>>45421671 #
chrisfosterelli ◴[] No.45396579[source]
It feels a little like a kludge as long as we keep calling it http. The premise makes sense -- best practices for connection initialization have become very complex and a lot of protocols need the same building blocks, so its beneficial to piggyback on the approach taken by one of the most battle tested protocols -- but it's not really hypertext we're using it to transfer anymore so it feels funny.
replies(1): >>45396633 #
xg15 ◴[] No.45396633[source]
Yeah, building it on top of QUIC is reasonable, but trying to shoehorn SSH into HTTP semantics feels silly.
replies(1): >>45396975 #
conradludgate ◴[] No.45396975[source]
It's on top of HTTP CONNECT, which is intended for converting an existing request (QUIC stream) into a transparent byte stream. This removes the need to deal with request/response semantics.

The reasons states to use http3 and not QUIC directly makes sense with littlest downside - you can run it behind any standard http3 reverse proxy, under some subdomain or path of your choosing, without standing out to port scanners. While security through obscurity is not security, there's no doubt that it reduces the CPU overhead that many scanners might incur if they discover your SSH server and try a bunch of login attempts.

Running over HTTP3 has an additional benefit. It becomes harder to block. If your ssh traffic just looks like you're on some website with lots of network traffic, eg google meet, then it becomes a lot harder to block it without blocking all web traffic over http3. Even if you do that, you could likely still get a working but suboptimal emulation over http1 CONNECT

replies(2): >>45398095 #>>45398417 #
1. thayne ◴[] No.45398417[source]
> you can run it behind any standard http3 reverse proxy

As long as said proxy supports a http CONNECT to a bi-directional connection. Which most I know of do, but may require additional configuration.

Another advantage of using http/3 is it makes it easier to authenticate using something like oauth 2, oidc, saml, etc. since it can use the normal http flow instead of needing to copy a token from the http flow to a different flow.