[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Gopher over TLS



On Sat, Mar 14, 2020 at 1:36 PM Emil Engler <me@emilengler.com> 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.


Reply to: