Live data from Hacker News

Zxcvbn: realistic password strength estimation

tech.dropbox.com

41–50 of 134 posts

Re: Zxcvbn: realistic password strength estimation

#41

The article mentions that non-English language support as a future improvement. Since the article is long that it's easy to miss this point and to put that in perspective how important that is here's an example: yehtohaasanhaiguesskarna That means "This is easy to guess" in Hindi transliteration. Only English support would say it will take "centuries" to guess. ( http://dl.dropbox.com/u/209/zxcvbn/test/index.html )

That's not that great of an example:

    password:	This is easy to guess
    entropy:	52.13
    crack time (seconds):	246474312966
    crack time (display):	centuries
    score from 0 to 4:	4

Re: Zxcvbn: realistic password strength estimation

#42

It certainly needs a rule for putting spaces between the words. "correct horse battery staple" and "correcthorsebatterystable" should be treated as being approximately equal in strength.

Not to mention: horsebattery -- 3 minutes h orsebattery -- 8 years ho rsebattery -- centuries horseb attery -- 85 years horsebat tery -- 54 years Which at the very least is a little odd, even if the reason (breaking up the words into less word-like structures) is clear. Also: abcde -- instant a b c d e -- centuries

Also,

  pas sw ord
Will apparently take centuries to crack. I see the reasoning, but can this be correct?

Re: Zxcvbn: realistic password strength estimation

#43

> One in nine people had a password in this top 500 list. These passwords include some real stumpers: password1, compaq, 7777777, merlin, rosebud. Looks unbelievable at first. How could people be so stupid? But I use such passwords all the time. I use a variety of websites where I have no need or desire for security. Want to post burrito reviews on burritophile.com as me? I picked something simple and easy to guess,…

It always bothers me a bit when I see analysis of password strength for compromised sites without any mention of the possibility that the account might just not be important to users.

But there is a caveat. If the account is somehow identifiable as yours (say, because your friends know it's your account) then suddenly it's a possible social attack vector. Perhaps a weak one, but probably not something to be ignored, either.

Re: Zxcvbn: realistic password strength estimation

#44
post #2

> Bank of America doesn’t allow passwords over 20 characters, disallowing correcthorsebatterystaple. Passwords can contain some symbols, but not & or !, disallowing the other two passwords Can anyone elaborate why "&" or "!" wouldn't be allowed?

This may not be their reason, but I used to have a password with @ in it. Then I went to Germany and discovered the keyboards there didn't have @ on them. That was a fun time.

You can usually type some easy combination (here it's Ctrl+Alt+2 or AltGr+2) to get it. It's not like Germans don't write email addresses.

Re: Zxcvbn: realistic password strength estimation

#45
post #30

I feel like this is a stupid question, but what is wrong with having your password be something like "p4ssw0rd"? eg: a dictionary word where a few of the letters are switched for numbers, and maybe even a symbol at the end ("p4ssw0rd$") are these terrible passwords for some reason?

Password crackers will use a "dictionary" - a list of words.

Dictionary building software can create lists of words with those common substitutions. (swapping uppercase for lowercase, or subbing certain numbers for letters, etc.) They can also add numbers to the words.

Ideally, use a good diceware phrase to secure a password safe. Then use the strong password generation features of that password safe to create all the other passwords you need.

(You can write the diceware passphrase down if you need to while you're learning it. Just treat it like high value currency, and destroy it when you've learnt the phrase.)

Access control is a problem waiting for an easier solution.

Re: Zxcvbn: realistic password strength estimation

#46

This seems like a great step forward, but it's still a bunch of ad-hoc rules. While the ruleset is definitely well-put-together and fairly comprehensive, it still doesn't seem like the most accurate measure. It seems like password strength basically boils down to: 1) imagine the space of all possible passwords 2) put them in order from most to least likely (123456 would be at the top, some giant 64 character random m…

That's probably the wrong way to think about it, and might -- as it does in this case -- lead to a ridiculously oversized password-guessing implementation which tries to do too much fancy business.

The most obvious way to do password strength checking would not (I don't think) let you "use this list to begin cracking", but would instead estimate the Kolmogorov complexity of the password, as a proxy for its entropy.

That sounds daunting, but it's actually pretty simple in principle: append the password to a couple concatenated dictionaries plus popular password files, and see how much it compresses with your favorite zipping algorithm. Compare it to how much 'password1' zips, because you know that's the first one that they try and therefore it has complexity 2^0. If the zipping algorithm is good, it will automatically figure out most of these tricks directly from the 'bad password lists'.

I would say a little more: it is probably the case that you can "steal" the dictionary from one zipping and force a zipping algorithm to use that dictionary. If this is the case, the dictionary needed reduces to 64 KiB (I believe) rather than the 600 KB that the above script requires. I don't know how much effort it takes to get zlib-with-a-static-preset running in JS but then again, I don't know how much time it took zxcvbn to reach its final form either.

Using /usr/share/dict/american-english for my dictionary is a bit crap because it does not yet speak l33t, but my dictionary can be used for "correcthorsebatterystaple". XKCD estimates 44 bits = 5.5 bytes; gzip --best estimates 7 bytes, maybe more if we had more sequences ending in '1' to better compress 'password1'. (Some extra bits are to be expected purely due to the diverse number of password-guessing algorithms; 'switch one character to l33t, switch two characters to l33t, end with a number' offer a couple extra bits which XKCD ignores in order to establish a lower bound.)

Re: Zxcvbn: realistic password strength estimation

#47

I'm surprised to see that "correct horse battery staple" type pass-phrases really have to be quite long to score well, but that even comically short email addresses ("dlk3@mit.edu") score very highly. In fact, it looks like my ever-so-clever words-and-numbers web passwords ("Happy314Day") are all terrible, but all my email addresses all make maximum strength 4-point passwords. I wonder if that's because email address…

[deleted]

Re: Zxcvbn: realistic password strength estimation

#48

> One in nine people had a password in this top 500 list. These passwords include some real stumpers: password1, compaq, 7777777, merlin, rosebud. Looks unbelievable at first. How could people be so stupid? But I use such passwords all the time. I use a variety of websites where I have no need or desire for security. Want to post burrito reviews on burritophile.com as me? I picked something simple and easy to guess,…

I'd love to see a set of data that compares weak passwords with used-Mailinator. I only ever use weak ones with Mailinator accounts, and I doubt I'm the only one (though maybe not enough to account for a majority of weak-password users).

Re: Zxcvbn: realistic password strength estimation

#49

Earlier quoted context omitted.

Did hindi take "guess" as a loanword or is that just a massive coincidence

Loan word. I can't remember the the Hindi word for "guess" right now. PS: Although I don't remember the exact words but there were some which are strikingly similar in both languages. But I found this for you. http://en.wikipedia.org/wiki/List_of_English_words_of_Hindi_...

That's a neat list. Thug, Punch, Loot, Jodhpurs, Dinghy, Cummerbund, Cot, Bungalow, ...

Re: Zxcvbn: realistic password strength estimation

#50
post #41

The article mentions that non-English language support as a future improvement. Since the article is long that it's easy to miss this point and to put that in perspective how important that is here's an example: yehtohaasanhaiguesskarna That means "This is easy to guess" in Hindi transliteration. Only English support would say it will take "centuries" to guess. ( http://dl.dropbox.com/u/209/zxcvbn/test/index.html )

That's not that great of an example: password: This is easy to guess entropy: 52.13 crack time (seconds): 246474312966 crack time (display): centuries score from 0 to 4: 4

Yes, he explicitly says that common phrases (like "this is easy to guess" and "harry potter") are a type of pattern he would like to include in the system but didn't for technical reasons.
Post reply on HN