Haddock: Built because I want web apps to make passwords fun
stephencelis.com
stephencelis.com
Also - something I learned from working at a big company: For secure memorable passwords, it's better to take a phrase and abbreviate it than to take a couple words and concatenate them together with numbers and symbols. So from "Haddock: Built because I want web apps to make passwords fun", you might get "H:Bb1wwa2mpf", which looks like random noise to any password cracker yet is still reasonably memorable to anyone who remembers the original phrase.
You can get a lot of use out of song lyrics for this, say "Bbmap,dmc2tlbtlwd" from American Pie or "Yccatyl,bycnl" from Hotel California or "Mhfjl2b" from Comfortably Numb. Long, line noise, completely unrecognizable - yet you'll never forget the underlying lyric.
And "H:Bb1wwa2mpf" may be more secure than a similar-length haddock password, but its pseudo-acrostic nature is much less digestible to your average user. Meanwhile, with a few potential modifications I outlined, haddock would still be more memorable _and_ just as secure:
Actually - since any good programmer won't put a maximum length on their passwords, I wonder if it'd be better to get users into the habit of picking really long phrases as passwords. Type in "Haddock: Built because I want webapps to make passwords fun" in the password prompt. Maybe that'll just take too long to input though, each time you want to login.
I still agree with you that this kind of phrasal munging is a good method, but I also think haddock has the slight, memorable edge :)
Haddock uses the UNIX wordlist with a known algorithm for password generation: words = %W(#{random_word} #{random_symbol}#{random_word}) if I'm reading the source right. It seems like it's reducing the search space drastically for a gain in memorability that is difficult to quantify. Might be a win, but might be a loss.
But I don't really know this stuff so well-- any real crypto folks care to comment?
The search space for a length n is: 2 x 26^(n/3) x 10^(n/6) x 30 x 26^(n/2) = 60 x 26^(5/6 x n) x 10^(n/6) = 60 x 10^(5/6 x n x log10(26)) x 10^(n/6) =~ 6 x 10^(1.17914n) x 10^(0.16666n) = 6 x 10^(1.34581n)
So that's about a 6 followed by 1.5n zeroes of search space for length n, approximately. Using only 100 characters of the ASCII code tables, you have a search space of 10^(2n) possible passwords, which is about n/2 orders of magnitude larger than Haddock's search space.
Disclaimer: I'm a HS student, no crypto folk, so the above might be wrong, but it's basic combinatorial stuff. And that's just theory, in practice, with just "password1", "letmein" and "123456" for a dictionary attack, you can hack into like 3% of the accounts of a site that doesn't use Haddock.
Edit: Oh, I didn't even think of this: THE WORDS ARE ALL VALID ENGLISH WORDS! That makes hacking in a lot easier.
In the end, though, these passwords should be "secure enough" for most purposes, and should be generally more secure than the password of your average user. Using haddock to generate temporary passwords will hopefully just encourage users to be better about passwords in general.
Also, it may be that giving users memorable passwords beats letting them make their own, whereupon many of them choose weak ones.
First attempt: quick typing, conscious mistake.
Second attempt: quick typing, wrong password again.
Third attempt: okay, I'll type it in carefully now. Wrong password.
Fourth attempt: oh, yes, that was my Yahoo! password. Remembers password and enters it cautiously, because he/she knows that he has a maximum of 5 login attempts.
Five are enough for me. Or at most 10. 100 seem ridiculous. How often does it happen that you mistype your password 99 times and get it right on the one-hundredth, before you're tired of being shown the "wrong password" message and click the "forgot password" link?
I would suggest trimming the wordlist before use, if you plan to use it for handing out passwords.
Hell, we got crap for adding the tags "Russian" and "Jew" to people who were, in fact, from Russia and Jewish.
Not very reassuing to anyone with a business. It wouldn't be hard to filter potentially offensive passwords, especially given that false positives don't matter.
45john5hit