Gaufre, Gopher over HTTP (GoH), and Gopher over TLS (GoT)

Sebastiaan Deckers <[email protected]>
Newsgroups gmane.network.gopher.general
Message-ID <CADVGGb_BWnHvW5_3EVSc-BpG1rO+6TT+mHSfS-uEEwqzhzk+SA@mail.gmail.com>
Hello,

I created Gaufre, a web client for Gopher that uses two experimental
protocols. No changes to the Gopher protocol, just transporting Gopher over
HTTP and TLS respectively. (Similar to the DNS over HTTP and DNS over TLS
protocols.)

Wanted to see what other Gopher developers think about these ideas. This
mailing list appears like the de facto Gopher dev discussion group.

Client: https://gopher.commons.host
Gopher over HTTP: https://gitlab.com/commonshost/goh
Gopher over TLS: https://gitlab.com/commonshost/goth

GoH allows a lightweight Gopher<->HTTP proxy that simply tunnels Gopher
data over HTTP request/response. Not rendering Gopher pages as HTML or
anything like that; simply piping the socket from TCP to HTTP. This gives
the GoH web client access to the raw Gopher data just like any native app
that would have access to TCP sockets.

GoT allows dual TLS & plaintext Gopher hosting on the same port. A GoT
client probes for TLS support on port 70/tcp by sending a TLS ClientHello
handshake packet including the SNI servername and ALPN protocol name
(currently just `gopher` but this should probably be versioned). If the
handshake fails, like with any standard plaintext Gopher server, the GoT
client simply reconnects as plaintext TCP. The GoT server can use the SNI
servername to implement virtual hosting of many Gopher domains on the same
IP:port, without modifications to the raw Gopher protocol. A fairly simple
TLS stripper/forwarder could add GoT support to existing Gopher
servers. This is similar to the elegant TLS proposal by Solène last year,
adding mainly the SNI and ALPN extensions.

As a proof of concept, try this to access a GoT Gopherhole with SNI and
ALPN:

echo -ne "/\r\n" | openssl s_client -ign_eof -servername commons.host -alpn
gopher -connect commons.host:70

Looking forward to feedback/discussion of these ideas if there is any
interest.

Regards,
Sebastiaan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.