xkcd #936, Aug. 10, 2011

I just finished creating a login on an Oklahoma government site. It had a requirement that a special character be included in the password. Not just any special character, but 1 of 4 specific special characters. Somehow, that seems counterproductive.

Obligatory Dilbert.

There’s lots of words in this thread. I have some experience in this realm. Simplicio is right.

What’s being missed here is that there are TWO different methods to attacking a password here, brute force and dictionary. All the badguy would have to do is take a dictionary that had all four words in it, and run a cracker so that it used the dictionary words four times.

Wow, you say, because that’s UBERsomethingTimes Ten to the fourth.

To which I’d reply:
John the Ripper is EXCESSIVELY good at out-thinking human methodology in character substitution. L0s3r would be found as a matter of course, as would L0s3r1 through L0s3r9999, assuming the only entry in your dictionary was ‘loser’.

OCLHashcat on a two year old i7 with two videocards was testing SEVEN HUNDRED AND SEVENTY MILLION guesses a second.

If you used xkcd’s method, and the badguy has your hash, and his dictionary has all four words, and he told the system to iterate using any four words in the dictionary he would crack the password

And it really doesn’t matter if he took 6 minutes or 72 hours. If he’s got your hash, he can run it for weeks…or just spool up a few more instances on Amazon’s EC2 cloud.

Here’s some suggested reading: "Crack Me If You Can" - DEFCON 2010

But again the point of the cartoon is not what password is most secure, but rather have we, in general practice, gone down a path where we try one type of secure password that, because they are difficult to remember, encourages people to engage in insecure practices (such as writing it down or using the same password for multiple uses) instead of using encouraging equally (at least) secure methods that don’t have the same memory problem.

The point of the cartoon is not that everybody should use a passphrase consisting of four common words. That would be stupid. The point is that when the pattern isn’t known for certain a four word passphrase is at least as secure (and probably more so) than the common single-altered word password from a brute force perspective while the person using the latter is more likely to corrupt their own security.

I think you’re missing the point. *Every *password is crackable, given enough time. There’s no way around that.

The value in the XKCD approach is that it gives a verifiable *minimum *amount of password entropy in a form that humans can easily remember. 4 words from a list of 2048 gives a guaranteed 44 bits of entropy. That’s not a lot for an offline cracker–if you want protection from that, add a couple more words–but it’s good for a purely online thing where you can count on retry limits and the like.

Yeah, in principle, 10 randomly generated characters gives something like 60 bits of entropy. The problem is that no one does that, and even if they tried, they wouldn’t be able to remember the password. As you say, password guessing programs are very good at replicating the usual tricks that people use, and this means that real password entropy is far less than one might expect.

It’s not being missed. I mentioned it days ago in this thread (post #69).

True, but only if the cracker knows that you’re using that approach. In real life, he won’t know that you strung together four dictionary words. For all he knows, it could be a 31-digit number with a punctuation mark in the middle of it, or the first letter of each line of a sonnet, or a random collection of letters with each one in a prime position (letter #1, 2, 3, 5, 7, 11, 13…) being capitalized.

[quote=“Gary “Wombat” Robson, post:85, topic:592273”]

In real life, he won’t know that you strung together four dictionary words. For all he knows, it could be a 31-digit number with a punctuation mark in the middle of it, or the first letter of each line of a sonnet, or a random collection of letters with each one in a prime position (letter #1, 2, 3, 5, 7, 11, 13…) being capitalized.
[/QUOTE]
In real life, someone with a huge nerd following has put it out there that the use of four concatenated, single-case common words provides as security that compares well with traditional and variable methods.

In real life, this idea just might catch on. That would be bad.

Bad? Why? The comparison isn’t against your proposed scheme–which almost no one uses–but against the scheme that almost everyone uses, which is to pick a single dictionary word and make the minimal number of 1337 modifications necessary to appease the password strength checker. The XKCD scheme is far superior to that method, and is no more difficult to remember.

Also, can you even demonstrate that your scheme has a high amount of entropy? How about all the people that pick “Iwtbot,iwtwot”, “Y,tIwttvotsod,Iwfne”, or even “Nggyu,Nglyd”? I’ll bet that the first letters of common phrases have far less entropy than your think.

[quote=“Gary “Wombat” Robson, post:85, topic:592273”]

True, but only if the cracker knows that you’re using that approach. In real life, he won’t know that you strung together four dictionary words. For all he knows, it could be a 31-digit number with a punctuation mark in the middle of it, or the first letter of each line of a sonnet, or a random collection of letters with each one in a prime position (letter #1, 2, 3, 5, 7, 11, 13…) being capitalized.
[/QUOTE]

The attacker doesn’t care. The attacker downloads ALL of the hashes for a poorly protected website and uses the kinds of things people typically use in a dictionary to crack them…They then see if that password is used in other places that Google says has the same email or account name.

Now they’ll use 4 dictionary words in addition to [LocalSportsTeam]1-99 as guess possibilities.

I haven’t seen discussed the method I’ve used for a while, and I wonder if it’s any more secure than any other method.

For myself (and I brought this up in another thread on this comic), I use a “key-pattern” on a typical QWERTY keyboard.

The advantages that I see:

  1. All you have to remember is the pattern (e.g. zig-zagging from z to 1 to x to 2 to c to 3, etc)
  2. The string is about as random as you can get, and I imagine the permutations of possible patterns are astronomical
  3. you can devise a pattern that’s clustered to one part of the keyboard for easy, one-finger pecking on mobile devices and such.
  4. you can make the password as long as you want by any pattern you wish to devise.

Anyone else do this?

These two points contradict each other. If there’s a pattern, it’s not random. It might take a cracking program a long time if it wasn’t programmed to include passwords of that form, but if the folks writing the program know that that’s how you (or others) generate passwords, they can cut down their brute-forcing enormously.

Let me know if someone else has already said this, but I feel like throwing out a disclaimer that the artist did for an earlier informational graphic:

If you base important decision making entirely off of a cartoon on the internet, you only have yourself to blame.

I would suggest that this thread is largely proof that none of us are doing that. Here we are, debating it.

Indeed, I’d say the SDMB is taking it to heart. :smiley:

I think the cartoon has merits, and has made a point well, we’re just adding detail to it, based on experience.

ETA: Like making your house harder to break into than your neighbors, if your password is too expensive to break, compared to the other 100,000 hashes in the password dump, that’s what you’re looking to do. Let the bad guys compromise GrandmaAz1954 Password: Fluffy1

Right. I suppose what I meant that it’s as random as you can get, while still remaining memorable. Still, I’m under the assumption that an adequate pattern (far more complex than the simple example I gave above), would offer an astronomical amount of permutations to try and resolve.

Even if just sticking with alpha-numeric, you’re talking about a configuration consisting of 36 possible characters. (anyone care to do the math? Including the possibility of repeating characters as many times as you want?)

If I devise a 12 character pattern (e.g. qmpzwnoxebic), might that be stronger than two or three unrelated words from the dictionary (giving a total of 12 characters)?