4 ms·
> One option is each site you authenticate to needs to issue you a certificate for your identity on that site. … The other option is you get one certificate fro
by nybble41 6y ago
> One option is each site you authenticate to needs to issue you a certificate for your identity on that site. … The other option is you get one certificate from some acceptable trusted CA, or maybe you just mint your own, and then use that everywhere.
There is a third option: You keep a single master secret in the browser, and combine that with the identity of the site (e.g. the domain name) via a secure trapdoor function to create a unique per-site key pair which is then used for public-key authentication with only that site. The site-specific secret is easily recreated from the master, but without the master secret there is no feasible way to correlate two site-specific identities.
This is the approach used by modern (Hierarchical Deterministic) Bitcoin wallets. Older versions used distinct random private keys for every transaction, which as you say made key management rather painful. A single key which can be backed up once and used for any number of separate authentication channels is far more ergonomic.
Middleboxes are indeed a major problem for TLS mutual authentication. IMHO this would be a good reason to favor TLS client certificates for popular web sites—perhaps we could finally get enough pressure to see these MitM-boxes booted off the network.