Rethinking Passwords
queue.acm.org
queue.acm.org
While many sites would think this is a good password "x5tRwz3m" Length: 8 Strength: Weak. Entropy: 36 bits. Charset Size: 62 characters Is impossible for me to remember. A easy to remember mixed (seemly, but not random) password like that is much easier to generate and use in a off-line dictionary attack.
"I like Microsoft's login page." Length: 30 Strength: Very Strong. Entropy: 147.3 bits Charset Size: 73 characters
is a sentence and people are pretty good at remembering them.
Add in a tiny bit of complexity "I like M?icrosoft's login p!age."
Length: 32 Strength: Very Strong. Entropy: 163.5 bits. Charset Size: 83 characters.
It is exceptionally unlikely that a cracking attempt will reveal that password and that some other type of flaw will be needed to reveal the password or gain access to the account.
Other tools also... https://www.grc.com/haystack.htm http://www.passwordmeter.com/
For the passphrase, 30 characters chosen from 73 is 185.7 bits (log(2,73)* 30). Even this isn't correct though, because the characters aren't randomly chosen. As the author says: "Not so for human-created passwords, where a sea of associations and language rules greatly reduces the search space." In other words, knowing that the first word is "I" limits the possibilities for the next word, and so on.
How would an attacker know what the first letter is? Yes an attacker can guess if sentence passwords are used that (a|A),(the|The),and (i|I) would be very common starters but after that the bigger search space complicates things.
https://www.grc.com/haystack.htm
Read the sections on entropy and padding. Just using sentences alone does present attackers the ability to use an encyclopedia attack, but a few randomly placed symbols (padding) turns the endeavor back in to an exhaustive search.
Or he might read HN, and see that your preferred passphrase method is composed of english sentences with common substitutions.
Maybe a website you're using leaks its password DB, and your "padding method" is exposed, reducing the search space back to what it was before the padding. I'm going to have to disagree with GRC here. "D0g.........." is a very bad password, especially if you use ".........." as your padding on every website.
Even without this, common substitutions like '3' for 'e' or '!' or 'i' are accounted for in everything but the most naive cracking tools.
Perhaps less likely, a timing attack in the auth system exposes the first few characters of your password, but not the rest.
Why put up with these issues, when something like xkcd's 4 random words works well, is easy to remember and type, and calculates entropy in a uncontroversial way?
(http://world.std.com/~reinhold/diceware.html)
And substituting some symbols for letters doesn't add much security. Depending on the mode of attack there are precomputed sentences with a variety of substitution.
Be careful with GRC. Some people don't have a high opinion of his analyses:
The actual randomness of such a password is a factor when using some intelligent means to walk the keys pace, such as Markov chains.
Indeed. Today every webapp developer is a security specialist.
> Certain audit reports (e.g., date and time of last login) should be provided by the system directly to the user.
In 2013, this still makes sense, but is not often implemented.
MD5(master_password || ':' || domain || length)
to derive passwords.Another problem with any Supergenpass-like password generator is that once the attacker steals or guesses your master password, she will be able to generate your future passwords. I describe password generators like Supergenpass as a rough equivalent of password manager with the attacker having a permanent read-only access to the encrypted database.
Your vitriol is misguided here, while at the same time understandable. The "requirements" of things like one upper case letter, a digit, a nonchar etc... were put in place when systems had only 8 characters for passwords. Ideally these wouldn't be hard requirements but work on a sliding scale based on length. In other words, 8 chars NEEDS the extra entropy and character classes to work. The longer you go however the less need you have for this requirement. Not that it goes away mind you, just that once you reach 12 char passwords, requiring those character classes becomes less useful than optimizing for something a human can remember.
Basically I agree, requiring many character classes is non-useful and harmful. But only for long passwords, or passphrases rather. "one two three four" is a much harder password to crack, even with perfect foreknowledge that I only used lowercase words, didn't capitalize, and didn't put a punctuation character on the end than say "Ab&2x.!(" is. The latter looks like it would be harder to guess, but its length betrays its search space. It is also less secure in that it encourages users to write the password down.
Moving on to the real crux of the issue.
The bigger underlying problem you elude to, but never enumerated, is that security wise, we've NEVER had mathematically proven security in computers up until about 3 years ago, if even that. Even then this is leading edge research. What I mean by that is cryptography right now has only recently had A mathematical proof of it doing what we want it to be doing. Basically, making sure that A and B can communicate without worrying about third party C reading it. Even then this new cryptography could be flawed.
Read up on homomorphic encryption, Craig Gentry's Phd thesis paper: http://crypto.stanford.edu/craig/craig-thesis.pdf
And a more general introduction to its concepts (the math is quite involved): http://www.americanscientist.org/issues/pub/2012/5/alice-and...
The problem here is we are in the dark ages of cryptography and computers. We like to think we're running on advanced things here, but the truth is this stuff is anything but. Things change, slowly. But you can't make fundamental shifts quickly just by hunkering down to solve things. It has to be provably useful.
As to alternatives to passwords, I can't find the research paper right now but there was research done that would have you play games/type stuff and look at how you type/do things. The best part is you yourself don't even know your own password, it is a tertiary aspect of you behavior. The intention was for securing data for military purposes so that even under torture you wouldn't be able to give up your own secrets. This too is only a few years old.
Hopefully some security minded people can correct me on my hastily written reply here or tell me why I myself am wrong. >.<
Sidenote: I wish my 2nd factor for passwords opened my front door and started my car. Kill physical keys, keep passwords.
pik = Math.random(); // random number [0,1]http://www.itl.nist.gov/fipspubs/fip181.htm
APG is one of those: http://www.adel.nursat.kz/apg/
but it's old, around ten years since its last update.