Removing expiry dates for TOFU

A thought from one without enough knowledge to have a right to thoughts:

Getting broad acceptance of Gemini both theoretically as a viable 
standard and practically as a growing community is important. Having 
community members developing their own clients and servers - not so much.

I am sure I will always be using a client which someone else wrote, just 
as I use a  web browser someone else wrote. And I am dead certain I will 
never try to write my own server, as I will never try to write my own 
Apache.

Best to all,

Terry B.


On 07/08/2020 08:39 PM, Thomas Karpiniec wrote:
>> From: Gemini <gemini-bounces at lists.orbitalfox.eu> On Behalf Of Solderpunk
>> A proposal: "TOFU-TOTS".  You know, like tater tots, but without
>> potatoes in them.  Or rather, trust-on-first-use augmented by
>> trust-over-time-and-space.
> Setting aside that I already put my support behind the oligarchy, this 
is an interesting problem and I'll weigh in. :)
>
> I agree that that this proposal would provide fairly effective 
protection against MITM. I worry that it is so unusual that it would push 
newbies away from setting up gemini servers. Faced with regular rotation 
requirements I suspect that many people would automate the process with 
cronjobs, meaning that the keys for the next certificate are sitting right 
there on the server ready to be nabbed.
>
> More annoyingly, suppose the current private key is compromised and the 
legitimate server owner realises it - they don't have any good options. 
One is to put up with being spoofable until their next-advertised 
certificate becomes valid, which may be 10 months in the future. Otherwise 
they could do an out-of-turn certificate rotation, which clients will warn 
on just as harshly as any other unexpected change. (Further down the 
thread, Baschdel suggested backup certificates to alleviate this. But what 
if you're compromised twice? To me the complexity creep feels 
disproportionate to the advantages.)
>
> A suggestion: what if instead of publishing a future certificate, we 
publish our own CA certificate, which is used to sign our server 
certificates? A client should cache this CA certificate permanently and 
use it to verify all future requests to that domain. A diligent system 
administrator will keep their CA key material offline. Someone who doesn't 
care so much can just generate everything on their server.
>
> * Client logic is simpler
> * Keys and certificates can be rotated at will by the sysadmin and they 
can choose whatever expiry they are comfortable with
> * Relies on familiar concepts of TLS trust ("oh I'm my own CA, okay") 
and sysadmins can choose their own level of caution
> * Uses the existing feature of TLS libraries to verify a connection 
against a given CA. Clients don't have to handle public keys or 
fingerprints - they just download the CA certificate and feed it into their TLS library.
> * Combines neatly with LetsEncrypt-style certificate management - you 
are just adding one extra trusted CA. If it can be verified by either 
that, or one of the normal roots, then you're okay.
> * Only slightly more complicated openssl commands required when setting up a server
>
> Cheers, Tom

---

Previous in thread (35 of 37): 🗣️ Hannu Hartikainen (hannu.hartikainen+gemini (a) gmail.com)

Next in thread (37 of 37): 🗣️ Solderpunk (solderpunk (a) posteo.net)

View entire thread.