I read a good essay/rant on passwords today, which was written/posted yesterday. Here's an excerpt:
I think it's a great read, and it even has a section on the stupidity of bank's websites almost requiring you to have an insecure password. Read the rest of it here. But be warned, it does contain some strong language.
I don't know much about encryption, but the essay seems to make some valid points and it makes me wonder why we use passwords instead of having a single private key to handle all that crap for us.
Mozilla is working on a solution called BrowserID, as discussed here, but as pointed out in the initial post, it is tied to your e-mail account, which isn't necessarily desirable.
So could someone--who presumably has more knowledge than me on this subject--tell me why we are using passwords for every single website we visit when we could just be using public-key cryptography to handle the details for us?
Quote from: http://me.veekun.com/blog/2011/12/04/fuck-passwords/
When i do my hacker thing and connect to a server from a terminal/console/black box with letters in it, it uses public-key cryptography to prove who i am. I have a private key and a public key. The public key can be used to lock boxes in such a way that only my private key can unlock them again. I give out my public key; the server picks some big random number and encrypts it; if i can tell the server what random number it picked, then it knows i have the private key and must be who i say i am.
(Okay, that's still a bit oversimplified. The actual mechanism for how this usually works is pretty cool, if you want to read about it. It has a pretty picture using paint mixing.)
While my key is still protected by a password, the experience is radically different in a few critical ways.
- It's called a passphrase, not a password. And, indeed, my passphrase(s) tend to be phrases, 50+ characters long, decorated with punctuation in some way that makes sense to me. They're very easy to remember, yet i can't imagine how you'd even approach trying to crack them.
- I type the passphrase in once, when i boot up my machine. The private key is unlocked for the rest of the session, and it's used automatically when i connect to any server that has the corresponding public key. Logins are instant and seamless; i log in and out of stuff all day long.
- The passphrase stays on my machine. It's not sent to the server to be double-checked, like virtually all passwords on the Web are. Something like Firesheep simply cannot work; you can't sniff my passphrase out of the air if it's not there to begin with.
- Even if i connect to server A, and then hop from there to server B, i can defer all the key-checking back to my desktop. Server A doesn't need to have my private key on it to connect somewhere else in my name.
- You know those SSL certificate warnings? You know how you always ignore them? Yeah, you shouldn't do that. They're the only warning you get that someone might have hijacked the connection to your bank or whatever. It's a shame that browsers have trained most of us to ignore the warnings, because they're the only thing making SSL useful.
- Anyway, in the case of SSH: the server has its own public key, which it broadcasts to me as part of the login process. The first time i connect to a server, the public key is remembered on my machine. If i ever try to connect again, and the public key is different, the connection stops immediately. It's the same idea as the certificate warnings, except that public keys are supposed to last forever and you don't need to bleed cash to get one, so a changed key is actually a legitimate cause for concern. (Most SSL warnings are about a certificate that the website owner created himself, because getting a signed one is considerably pricey.)
- And best of all, i can use the same set of keys for any number of servers. Or i can use a separate key for every server. It's entirely up to me. It doesn't matter what my username is on each server. It doesn't matter whether the servers are related in any way. It doesn't even have to be my account; any account can have any number of public keys linked to it, so sharing an account is just a matter of giving it several people's keys.
I think it's a great read, and it even has a section on the stupidity of bank's websites almost requiring you to have an insecure password. Read the rest of it here. But be warned, it does contain some strong language.
I don't know much about encryption, but the essay seems to make some valid points and it makes me wonder why we use passwords instead of having a single private key to handle all that crap for us.
Mozilla is working on a solution called BrowserID, as discussed here, but as pointed out in the initial post, it is tied to your e-mail account, which isn't necessarily desirable.
So could someone--who presumably has more knowledge than me on this subject--tell me why we are using passwords for every single website we visit when we could just be using public-key cryptography to handle the details for us?












- carpe noctem


