Trust model for addresses and certificates (DANE etc..)
southerntofu at thunix.net
southerntofu at thunix.net
Fri May 29 09:29:46 BST 2020
Hey,
I've been following Gemini from afar, that's a really cool project you've got! I'm curious about the threat model with gemini and how we can increase security in ways that are not user-hostile, and do not concentrate power in the hands of third parties.
A TOFU approach to certificates (trust on first use, i.e. blind trust) can be easier to deal with, but strongly lacks any security guarantee. Especially, so far user agents of all sorts have been terrible at making a UX to inspect and verify server/peer certificates, so i think it's not so good.
DANE is a RFC that describes how to distribute TLS public keys over the DNS (+ DNSSEC). It consists of TLSA records containing the server's public key, which can also be CNAME'd to, like in the example in the spec:
example.com. IN MX 0 mx1.example.com.
example.com. IN MX 0 mx2.example.com.
_25._tcp.mx1.example.com. IN CNAME tlsa201._dane.example.com.
_25._tcp.mx2.example.com. IN CNAME tlsa201._dane.example.com.
tlsa201._dane.example.com. IN TLSA 2 0 1 e3b0c44298fc1c149a...
Using DANE to distribute certificates reduces the attack surface, because the DNS is already a SPOF for a gemini server. I personally believe the gemini spec should strongly encourage admins to use DANE to distribute their server certificates.
A different approach to this problem is the GNU Name System, which is a DNS-compatible, fully autonomous and secure naming system: https://datatracker.ietf.org/doc/draft-schanzen-gns/
GNS has much stronger security guarantees than DNSSEC, which is ideal for bootstrapping a secure connection to a remote server. It's also entirely decentralized and name seizures are made impossible by introducing cryptographic forms of zone delegation (instead of IP-based delegation as DNS does). I would recommend people investigate it, because interpersonal concerns set aside, GNS is in my view the best proposal for a secure, censorship-free naming system.
There was a presentation at ICANN about GNS, which you can view here: https://git.gnunet.org/gnunet-videos-2019.git/plain/ICANN66/GNU_Name_System_-_2019_ICANN66__Martin_Schanzenbach.webm
I hope this message brings you food for thought. Long live the free internet, burn all prisons and borders!
More information about the Gemini
mailing list