Password authentication over Gemini
Sean Conner sean at conman.org
Mon Aug 19 21:51:36 BST 2019
It was thus said that the Great solderpunk once stated:
> > You're already asking for clients to generate a temporary certificate.
>
> Which is just some random bytes which can't be tied to anything or
> anyone, so what's to be afraid of?
I'm not so much afraid as I'm confused. I came up with a status code
proposal back in June [1] where I had status codes for both password
authentication and certificate authentication:
unauthorized
general
rejected 301 *
password
require 310
rejected 311
expired 312
certificate
require 320
rejected 321
expired 322
future 323
which you rejected outright and decided to go with just certificate
authentication. I can only suppose you have changed your mind somewhat on
this.
> > Before going too down far this rabbit hole, why not make a few temporary
> > certificates and hitting:
> >
> > gemini://gemini.conman.org/private/
> >
> > There's nothing there that generates a status of 10, but it is asking for
> > temporary certificates. It's not even expecting any set information. It
> > might be instructive to know what what is and isn't required for a
> > certificate.
>
> Nothing at all is expected of an ephemeral cert generated in response to
> a 61 status. It's just a random session ID, or rather, some hash of the
> cert becomes a random ID.
>
> If a server throws up a 62 then it's expecting a *particular*
> certificate from an authorised whitelist. I never really imagined any
> of the metadata fields on a certificate being used as part of the
> validation (on a self-signed certificate they don't count for much),
> though a guess if a server wanted to they could use them.
A username is a username. Of the two protected areas on my Gemini server
[2], one requires a certificate I signed in order to access. You generate a
CSR (certificate signing request), I sign it and send back the certificate.
It is also possible to send me (out of band) a certificate that you
generated that will also be checked upon each request, but there has to be
*some* unique information to check (that's not to say it has to leak your
real name or location or anything).
Right now, the conman-labs-private area just checks the issuer of the
certificate. The other private area one will accept *any* certificate (aka a
temporary or transient certificate) and doesn't even bother checking the
certificate.
-spc
[1] geminmi://gemini.conman.org/notes/possible-error-codes.txt
[2] gemini://gemini.conman.org/private/
gemini://gemini.conman.org/conman-labs-private/
Archive home | About this archive