Ditching mandatory TLS
Sean Conner
sean at conman.org
Sat Jul 4 22:12:17 BST 2020
It was thus said that the Great Drew DeVault once stated:
> Unpopular opinion time: Gemini should not have mandatory TLS.
>
> - TLS is not conveinent for local development
> - TLS is inherently dependent on a centralized oligarchy of CAs
> - Baking TLS into the protocol is going to be a bad look when The Next
> TLS comes out
> - Some alternative modes of internet access have built-in encryption
> guarantees: yggdrasil, cjdns, Tor; and for these adding TLS is
> redundant (and arguably worse)
I won't argue that TLS is a bad choice, but before throwing out
alternatives like yggdrasil, cjdns or noise, instead *just implement the
damn thing* [1][2]---write both a Gemini server and client (for bonus
points---implement ALL THE ENCRYPTIONS!) so the rest of us can see how easy
it is, and *then* we can have an actual discussion about transitioning away
from TLS (or including other mechanisms).
This has already been done once:
https://lists.orbitalfox.eu/archives/gemini/2020/000457.html
and the follow-up:
> #### About my previous proposal
>
> I'll have to think harder about it (within my limited cryptographic
> expertise), and perhaps submit it to a cryptographers community for
> feedback.
>
> At the moment I can see only a minor privacy flaw in it: the client
> discloses its identity (and proof of identity) to any server; instead
> it should first wait for the server to disclose its identity (and
> proof of identity) before proceeding.
>
> This issue stems from the fact that the ransport_prepare function
> is "symmetrical" and tries to reduce network round-trips; instead the
> client could first wait for the server verifier and then send its own
> (i.e. just a minor change to that function).
(https://lists.orbitalfox.eu/archives/gemini/2020/000477.html)
-spc (Note: not much from Ciprian since then ... )
[1] I disagreed with solderpunk about the status codes when he first
proposed Gemini. In stead of hashing it out over months, I just
went ahead and wrote a Gemini server with the status codes I thought
it should have. We then spent a few months hashing it out, but at
least there was an implementation (or two by the time the discussion
came to an end) backing up the argument(s).
[2] This applies to anyone, not just Drew.
More information about the Gemini
mailing list