6 ms·
This method fails as soon as you have to change a password: - One of the sites is compromised - One of your devices is stolen/lost and you have to change some
by jeremysmyth 11y ago
This method fails as soon as you have to change a password:
- One of the sites is compromised
- One of your devices is stolen/lost and you have to change some passwords
- One of the sites has a password expiration policy
Pretty soon you end up with multiple password schemes and you're in precisely the same situation as before, wondering which password goes with which site, only this time you have to perform algorithmic dances in addition to memory feats.
- veli_joza 11y agoPreviously on HN there was a MasterPassword[1] app that solves the issues changing passwords, too short site names as well as doing computation in head. [1] http://masterpasswordapp.com/ http://masterpasswordapp.com/
- Beltiras 11y agoAdd the idea of a nonce to the scheme and it covers the edge-cases you bring up.
- DavidSJ 11y agoIt also fails to handle sites having different (and non-intersecting) password "security" requirements.
- oniony 11y agoEven if none of the sites are compromised; even if your device is not stolen or lost; even if the sites don't use password expiration it doesn't work very well because some sites are just plain stupid with their password restrictions. Some of the things you'll face: • Passwords that prevent double characters within the password: not ideal when using a scheme. • Passwords with a minimum/maximum length: I've seen sites with a minimum of six characters and other sites with a maximum of eight characters. That means, to cover them all, you really have to choose a password of exactly six, seven or eight characters and even then it's no guarantee. • Sites that prevent certain punctuation and other sites that require punctuation. That means you have to remember which sites require which. • Likewise, sites that require/prohibit capital letters or require a mix of case. It's a nightmare doing anything other than recording them somewhere. And recording them somewhere is not great either as you always have to carry that thing with you and, if it's electronic, remember to charge it.
- redblacktree 11y ago> maximum length This one really grinds my gears because it also indicates that they're most likely storing your password in the clear. Hashes are all the same length.
- msellout 11y agoOr worse, if they ask you to type your password into a phone keypad (eg. the 9 button stands in for [9w-zW-Z] and 0 for all punctuation). Not only does this mean they're storing your password in plaintext, but reducing the character set to just 0-9. A major financial company does this, of all the terrible places.
- kragen 11y agoIt doesn't imply they're storing your password in plaintext, no.
- mikeash 11y agoIt doesn't guarantee it, but it does imply it pretty heavily. The alternative is that they're smart enough to come up with a clever scheme like hashing your password in both its raw form and when converted to 0-9, but not smart enough to realize how converting your password to 0-9 makes it vastly less secure.
- kragen 11y agoNo, it's easy for them to convert your password to 0-9 when you enter it on a regular keyboard, before hashing it. It does make it vastly less secure, yes, but it doesn't imply plaintext storage.
- mikeash 11y agoIsn't that what I said in my second paragraph? As I said, for that to happen, you need people smart enough to come up with that scheme but not smart enough to realize how insecure it is. Possible but unlikely. "Imply" does not require a complete guarantee.
- tekism 11y agoJust add a "2" to the end of the existing password, duh.
- ap22213 11y agoIt's not all that bad, seriously. I've been using an algorithm-based scheme across probably hundreds of sites for probably 10 years. There are 3 'tricks': 1. First, use several different initial functions for different levels of security, each with different levels of complexity (i.e. f1(user,domain), f2(user,domain), etc). 2. Then, use a function for password requirement rules (i.e. g(f(user,domain),rules)). 3. Finally, use a final function for rotating passwords (i.e. h(g(f(user,domain),rules),rotation)). So, all together, maybe 5 different algorithms, each of different levels of complexity. You'd think that this would be very difficult to manage, but it hasn't been in practice. Very, very few times do I pick the wrong initial algorithm when trying to derive my password. And, in that case, I can quickly iterate to the correct password within 3-4 tries. Most of the time I get it on the first try. Sometimes, I get it on the 2nd-3rd try. Very, very rarely (< 1%), I cannot derive it within 5 tries. And, at that point, I just do a password reset (and rotate the password using the h function).