Hacker News new | ask | show | jobs
by mdahlstrand 3099 days ago
Sounds like a great solution - would browsers need to support it? Do you have any resources on implementing it?
3 comments

Browsers has supported it since the late nineties. The problem are on the practical side. If you ever log in from more than one machine, all must have your private key, and the mechanism for synchronising keys between machines are not there. You have to manually install your key each place. It has also been too hard for most people to make and handle public/private key pairs. Also, if you don't have the private key with you, there is no way you can log in to the site. All of these problem and many other usability problems would have to be solved for client side certificates to be a success.
> If you ever log in from more than one machine, all must have your private key, and the mechanism for synchronising keys between machines are not there.

I don't think that's good practice. What's better is to have a separate key/certificate per device that's used to access a service. That way, even if one machine is compromised (or stolen), then the user can still use other devices to log in. Also, the service provider can disable certificate log in on a per device rather than a per account basis.

> Also, if you don't have the private key with you, there is no way you can log in to the site.

That's not necessarily true. Some HTTP server software (e.g., nginx) do have the option of requesting/asking for a TLS client certificate rather than requiring one. If one is not provided, then it's still possible to connect and log in. Server side policy can be much more strict in terms of locking the account in case of incorrect credentials or restricting access to certain account features if the client certificate wasn't provided.

Chrome already syncs data between platforms. Seems reasonably straightforward to include client certs in that data.
Already supported by browsers. Massive PITA to use. The old Startcom SSL webapp was an example.

Private keys and certs aren't as portable as passwords. Backing them up, copying them to another device, etc. lacks good UI.

This is how web auth was supposed to work. It turned out to be too hard to deploy outside of enterprises.

U2F is the modern re-do of client certs.