Re: Gopher over TLS

Ciprian Dorin Craciun <[email protected]>
Newsgroups gmane.network.gopher.general
Message-ID <CA+Tk8fzd5uGWzEhM-gr5KT-ZjnCAc6ToxXV0rXvMQ=EcgD2h0g@mail.gmail.com>
On Sat, Mar 14, 2020 at 1:36 PM Emil Engler <[email protected]> wrote:
> Hi, I thought about writing a standard for a secure Gopher protocol
> (short gophers).
> Have there been any proposals for this yet and what's the general
> consensus about this on this ML




Side-note:  Apparently there is a new ("competing") protocol that is
being developed by a group of Gopher enthusiast named Gemini, which
basically adds MIME support, uses a Markdown-based syntax instead of
Gopher maps and uses TLS by default.

  https://gemini.circumlunar.space/




In that context, I made the proposal of replacing TLS with a simpler
NaCL / libsodium alternative.  And by "simpler" I mean that given one
has access to `libsodium`, or is able to copy-paste the 4
cryptographic primitives (basically XSalsa20, Poly1305, Ed25519 and
Curve25519), one should be able to implement this in a few lines of
code.

Fortunately, that proposal (given it has nothing tied or specific to
Gemini) can be re-used for Gopher (or any other message based
protocol).


Bellow is the thread and my proof-of-concept Python-based
implementation, together with a diagram, analysis and description:

* proposal document --
https://github.com/cipriancraciun/gemini-experiments/blob/master/nacl/documentation/protocol-v1.md
* proof-of-concept code --
https://github.com/cipriancraciun/gemini-experiments/tree/master/nacl/sources
* mailing list thread --
https://lists.orbitalfox.eu/archives/gemini/2020/000457.html

(Full disclaimer:  I am not a cryptographer;  I am aware of "not
implementing your own crypto";  I have not "invented" new
cryptographic primitives but instead reused existing ones the way they
were meant;  I have studied the Noise Protocol a few other proposals;
and tried my best.  See the thread for a lengthy take on this.)

(If there are any cryptographers out there, please take a look if you
want.  Thanks!)

Hope this is useful,
Ciprian.
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.