# Password Strength

**URL:** <https://boards.straightdope.com/t/password-strength/594262>\
**Category:** Factual Questions\
**Created:** [August 27, 2011, 3:35am UTC](https://boards.straightdope.com/t/password-strength/594262 "2011-08-27T03:35:37Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Ximenean](https://avatars.discourse-cdn.com/v4/letter/x/aca169/32.png) [@Ximenean](https://boards.straightdope.com/u/Ximenean)\
**Post date:** [August 27, 2011, 8:39pm UTC](https://boards.straightdope.com/t/password-strength/594262/21 "2011-08-27T20:39:35Z")

</div>

> [@Chronos](#):
>
> It’s not unprecedented. Computers have long been able to construct strings based on English usage rules. Basically, you just construct big tables of “if the last word (or two words, or three words, or whatever) were \_\_\_, then the most likely next words are \_\_\_, \_\_\_, or \_\_\_, with this set of probabilities”. Of course, most such constructed strings quickly degenerate into gibberish, but it’s still a much smaller search space than a bunch of independently-selected random words.

That is a long way from “incorporating the techniques discussed”. That requires understanding the techniques discussed, i.e. full-on artificial intelligence.

---

<div class="post-metadata">

**Author:** ![gatorslap](https://avatars.discourse-cdn.com/v4/letter/g/bb73d2/32.png) [@gatorslap](https://boards.straightdope.com/u/gatorslap)\
**Post date:** [August 28, 2011, 3:35am UTC](https://boards.straightdope.com/t/password-strength/594262/22 "2011-08-28T03:35:23Z")

</div>

What about sites that have all kinds of rules about what your password can be? Apple (for iTunes and such) requires that your password include a mix of numbers and capital and lowercase letters, and it has to begin with a capital letter and end with a number. While that might “sound” like a more secure type of password, isn’t it actually less secure because it specifies a format?

How much does password strength really matter, anyway? When the Playstation Network passwords got hacked, it was the whole database, because it wasn’t salted. It didn’t matter what your password was; they got it.

---

<div class="post-metadata">

**Author:** ![md2000](https://avatars.discourse-cdn.com/v4/letter/m/73ab20/32.png) [@md2000](https://boards.straightdope.com/u/md2000)\
**Post date:** [August 28, 2011, 5:07am UTC](https://boards.straightdope.com/t/password-strength/594262/23 "2011-08-28T05:07:52Z")

</div>

> [@The\_Niply\_Elder](#):
>
> There is also the very likely scenario that a hacker gets his hands on a list of hashed passwords to a site, in which case a computer can happily attempt cracking as fast as possible until the hash is broken, then you try that password on the real site once, successfully. Cracked.

I think a lot of the discussions are based on outdated scenarios.

Back in the good old days (1990’s) a lot of computers were very insecure, to the extent that a hacker might get his hands on the database of passwords. Unix/linux would have the passwords irreversibly one-way encrypted; the password you entered was encrypted and then compared with the database. With the full database in their hands, the first thing a hacker would do is encode every word in the dictionary, and look for matches. Then, just for fun, try every word followed by 0 to 9 and then 00 to 99. After that, you can try the old aaaaa, aaaaab, aaaaac trick.

In this scenario, the most easily cracked passwords were those that were a shorter valid dictionary word, even followed by a digit or two. Using upper case on anything but the first letter would obviously slow things down tremendously, and using the “numbers for letters” trick even more so. Using incorrect spellings, nonsense or scrambled words, even more.

Similarly, in the good old days, Windows NT4 kept a parallel login password hash, (for LANMAN compatibility, IIRC) where all passwords were broken into 8-character chunks and converted to upper case before being encrypted. If you could get your hands on the password database, or capture traffic across the network, password cracking was a breeze. The security gap did not bother Microsoft at the time, since an Intel 486-66 would take months to decode all the passwords. (Nobody there had though of the dictionary attack at the time…)

I once downloaded l0phtcrack and ran it against our company’s world-wide password database from the master domain controller, just to see. It does the dictionary, then “plus digits”, then a brute force attack. Within about 5 minutes it had decoded 30% of the passwords, and within half an hour, about 66%. Some were easy to guess; some guy, say Sam Easthouse, has a login “seasthouse” and a password of 8 unkown characters plus “SE1” as his password. What are the odds the first 8 were “SEASTHOU” ? A Pentium II-250, IIRC was well on the way to doing a full crack of several thousand users within 8 days. I had though my password, “snowcone1”, was secure, but it found that in 5 minutes too. Apparently current dictionaries include common invalid words and incorrect spelling.

Today, with mixed case, punctuation, and no Microsoft-enabled shortcuts, a dictionary attack still requires access to the encrypted database. Unlike the old 10Mbps ethernet days, all traffic is switched, so unless you are the network admin, you cannot easily monitor traffic to capture encrypted passwords flying by… (unless it is a wifi network, which is a whole different security story.) The people to most fear nowadays are the people with the keys, the network and server administrators. They still have that access for their own reasons, or may accidentally expose the data to the outside despite all the safeguards in place.

So this, then, is the value of complex passwords. If someone gets their hands on it and is trying to crack the encrypted database, you do not want them to guess it easily. DO not use a dictionary word, nor a dictionary word plus 1 or 2 digits. Put punctuation and irregular mixed case in the mix and things are tough. Make it longer than 8 or 9 characters. etc.

Random words? Lets say there are 10,000 random “common words”. Let’s ignore punctuation or case, type it all in lower case. 4 words, ((10)^5)^4)=10^20; use the substitution 10^3 ~ 2^10 and I get about 2^66 possibilities. Add in case and punctuation, or digits, and predictability is even worse. So quotes are also not predictable

The cartoon uses 11 bits for “common word” or one of 2,000 if I read it right. It also misrepresents the troubador example by having on “capitalize first letter” as the only choice, thus creating 1 bit extra entropy vs. say, 10 bits if any of 10 characters could be upper case; plus there are several other substitutions such as 7 for T… But thecartoonist is on the right track. However, his flaw in in the “entropy” characterization. For Tr0b4dour to have that little entropy, the pattern must be known to the decoder. A l0phtcrack-type program specifically designed to target leetspeek is wasting its time if the password is, say, 2 simple words from the dictionary with a punctuation symbol in between; whereas say “bell%poWder” is trivial to crack provided the cracker knows that was the construction algorithm. To try to encompass every password contruction algorithm is like trying to encompass all possible code schemes. There are too many, and it is trivial to create a new one with a tiny variation on an old one - a creative exercise for minds, an improbably task for computer programs. (Igpay Atinlay, anyone?)

As long as the encryption algorithm is 1-way and gives no partial answers (moderm ones should be) then the only real advantage is to have a non-dictionary and LONG password. But, beyond say, 15 to 20 characters (75^(15 or 20) choices) the rest are not necessary nowadays.

---

<div class="post-metadata">

**Author:** ![Clark\_K](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@Clark\_K](https://boards.straightdope.com/u/Clark_K)\
**Post date:** [August 28, 2011, 5:31am UTC](https://boards.straightdope.com/t/password-strength/594262/24 "2011-08-28T05:31:23Z")

</div>

I appreciate the conversation, but I have to say I’m still confused about the wisdom of using dictionary words as XKCD advocates or using nonsense words, whether an acronym or a real word altered with numbers and punctuation.

I think I’ll stick with my current system, which produces a password of maybe eight or 10 random letters and a numeral. It’s easy for me to remember.

---

<div class="post-metadata">

**Author:** ![Clark\_K](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@Clark\_K](https://boards.straightdope.com/u/Clark_K)\
**Post date:** [August 28, 2011, 5:47am UTC](https://boards.straightdope.com/t/password-strength/594262/25 "2011-08-28T05:47:00Z")

</div>

nm

---

<div class="post-metadata">

**Author:** ![md2000](https://avatars.discourse-cdn.com/v4/letter/m/73ab20/32.png) [@md2000](https://boards.straightdope.com/u/md2000)\
**Post date:** [August 28, 2011, 6:06am UTC](https://boards.straightdope.com/t/password-strength/594262/26 "2011-08-28T06:06:26Z")

</div>

As I said, xckd’s “a dictionary word is too easy to guess” only holds true if the transforms mentioned (leading captial, number substitution, 2 or less trailing number/punctuation) are definitely the only transformations done on the word. Add your own unpredictable creative transform (swap first two letters, double every vowel, or include both the letter and the number substitution) and the complexity from unpredictability again goes through the roof.

Simple rule is “do not use only a single dictionary word”. If you do transform one, be sure the transform is relatively complex and unpredictable.

---

<div class="post-metadata">

**Author:** ![Pasta](https://avatars.discourse-cdn.com/v4/letter/p/ecccb3/32.png) [@Pasta](https://boards.straightdope.com/u/Pasta)\
**Post date:** [August 28, 2011, 6:05pm UTC](https://boards.straightdope.com/t/password-strength/594262/27 "2011-08-28T18:05:57Z")

</div>

> [@md2000](#):
>
> As I said, xckd’s “a dictionary word is too easy to guess” only holds true if the transforms mentioned (leading captial, number substitution, 2 or less trailing number/punctuation) are definitely the only transformations done on the word. Add your own unpredictable creative transform (swap first two letters, double every vowel, or include both the letter and the number substitution) and the complexity from unpredictability again goes through the roof.

The point of the comic is both security and memorability, and not just about _your_ password but about _people’s_ passwords. No one is going to use more than a handful of transformations, lest they end up with a password that they can’t remember any better than a random string. The comic picks several common transformations (leading cap, some numeric noise, some punctuation noise, optional l33t substitutions letter by letter) that cover a lot of ground. To this list, we could add randomly swapping the first two letters or not, doubling every vowel or not, capitalizing _any_ letter at random, placing the “noise” at the beginning instead of the end, using the word backwords or not, and another four or five choice transformations, and we will still have less password space defined than if we used the random word method, even with a tiny 2000 word corpus.

Notes:

(1) The point isn’t that a hacker will get _your_ password. The point is that a hacker can get the majority of passwords this way. The point is that encouraging transformation-style passwords leads to password lists that are generally much less secure on the whole, even though you may think yours is a-okay.

(2) The other point of the comic is that a password drawn from a transformation system is going to be hard to remember. You can transform the bejeezus out of an initially easy-to-remember base word, but you’ve eliminated the easy-to-remember aspect in doing so. Again, you may have a brilliant method for remembering your passwords, but the comic is about the population in general.

One underlying problem is that systems designed to test for password strength aren’t very smart. So, they enforce a few rules like “need mixed case” and “need at least one numeral”. These requirements encourage algorithmic transformations, leading to algorithmic reduction of the apparent entropy. How are you going to verify, on the fly, that a random-word style password is secure? It is a difficult problem, and password schemes that have a verifiable amount of (ostensible) entropy have become favored over time, even if more secure and easier-to-remember systemst are available in principle.

---

<div class="post-metadata">

**Author:** ![tellyworth](https://avatars.discourse-cdn.com/v4/letter/t/977dab/32.png) [@tellyworth](https://boards.straightdope.com/u/tellyworth)\
**Post date:** [August 28, 2011, 10:25pm UTC](https://boards.straightdope.com/t/password-strength/594262/28 "2011-08-28T22:25:51Z")

</div>

> [@Musicat](#):
>
> Since most every site I use nowdays, especially banks, doesn’t allow infinite retries without a lockout, and doesn’t allow retries for several minutes after the lockout, and probably logs all attempts, it makes discussion of password strength mostly moot. A dictionary attack won’t be very effective even on a password like “Klaatu barada nikto” if the system only allows 4 tries per hour and reports 10 tries a day to some security authority.

Generally only true of financial institutions. Few general purpose sites use a lockout. Any site that does is vulnerable to a DoS attack: deliberately generate login failures on many accounts.

Also, the bad guys generally don’t try millions of passwords on one account when they’re attacking an active login system. They’ll try a small number of passwords against millions of accounts. They avoid lockouts by only trying each account once per hour or whatever. And they have a huge number of IP addresses, so as to avoid per-IP rate limiting.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [August 28, 2011, 10:37pm UTC](https://boards.straightdope.com/t/password-strength/594262/29 "2011-08-28T22:37:26Z")

</div>

> [@](#):
>
> And they have a huge number of IP addresses, so as to avoid per-IP rate limiting.

Which they get from PC users who are sloppy about their personal security, and allow them to be turned into zombies.

---

<div class="post-metadata">

**Author:** ![Procrustus](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/procrustus/32/2994_2.png) [@Procrustus](https://boards.straightdope.com/u/Procrustus)\
**Post date:** [August 28, 2011, 10:43pm UTC](https://boards.straightdope.com/t/password-strength/594262/30 "2011-08-28T22:43:09Z")

</div>

The SDMB requires a password, but if someone hacks in as me, I’ll survive. I don’t care about security of my NYT, SDMB, youtube, facebook, etc., passwords. Just as long as my bank is secure, I’m happy. I use my daughter’s name and a four digit number. No random computer hacker knows my daughter’s name, so I think I’m safe.

---

<div class="post-metadata">

**Author:** ![brocks](https://avatars.discourse-cdn.com/v4/letter/b/7feea3/32.png) [@brocks](https://boards.straightdope.com/u/brocks)\
**Post date:** [August 28, 2011, 11:09pm UTC](https://boards.straightdope.com/t/password-strength/594262/31 "2011-08-28T23:09:54Z")

</div>

> [@Procrustus](#):
>
> The SDMB requires a password, but if someone hacks in as me, I’ll survive. I don’t care about security of my NYT, SDMB, youtube, facebook, etc., passwords. Just as long as my bank is secure, I’m happy. I use my daughter’s name and a four digit number. No random computer hacker knows my daughter’s name, so I think I’m safe.

Procrustina?

---

<div class="post-metadata">

**Author:** ![tellyworth](https://avatars.discourse-cdn.com/v4/letter/t/977dab/32.png) [@tellyworth](https://boards.straightdope.com/u/tellyworth)\
**Post date:** [August 28, 2011, 11:41pm UTC](https://boards.straightdope.com/t/password-strength/594262/32 "2011-08-28T23:41:27Z")

</div>

> [@Pasta](#):
>
> (1) The point isn’t that a hacker will get _your_ password. The point is that a hacker can get the majority of passwords this way. The point is that encouraging transformation-style passwords leads to password lists that are generally much less secure on the whole, even though you may think yours is a-okay.

This.

I used to deal daily with people whose passwords were “hacked”. Invariably it turned out to be one of three things:

1. The user had the same password on many sites, and one of those sites had been compromised.

2. The user had fallen for a phishing attack or social engineering.

3. The user had been hacked by an acquaintance, either by revealing their password, or using a predictable one.

Note that 1 and 2 succeed regardless of the password strength. And the stronger your passwords are, the more likely you are to reuse them.

The only likely scenario where a bad guy will try a large dictionary attack against _your_ account is when they’ve managed to download a password hashtable from a compromised site. And in that case, the site has already been hacked. The main reason they’ll try cracking passwords is to catch users who have reused those same passwords on other sites. They will use dictionaries that include common letter/number transformations, prefixes and suffixes and so on. But since the site has already been compromised it doesn’t really matter in this scenario if your password is weak enough to be cracked, provided you haven’t reused a similar password elsewhere.

When they’re attacking an active login system without the benefit of a copy of the password hashtable, bad guys won’t try millions of passwords against a single account - it’s too slow, too much effort to spend on the small benefit of cracking one account. Instead they’ll use a small dictionary of the most common passwords, and try those against millions of different accounts.

Very weak passwords are bad, they’ll easily fall for the second scenario. But for the most part, moderately strong passwords are probably no worse than very strong ones _provided they are never reused_. And a strong password that is reused is just as bad as a weak one.

The problem I have with most password schemes is that they totally ignore the reuse problem. If you rely on memory and transforms for your passwords, and you have more than about 8 of them, I’d wager you’ve reused at least one, or at least used a predictable system.

> [@jtgain](#):
>
> If I can’t make my password the dog’s name or something else easy to remember, then it goes on a yellow sticky note next to the monitor.

Ironically your sticky note solution might be the most secure suggestion here for the population as a whole. Ok, maybe not if you keep it stuck to your monitor in a cube farm. But people are usually better at [securing paper](http://www.schneier.com/blog/archives/2005/06/write_down_your.html) than securing passwords. And if you can’t remember them without referring to notes, it’s a pretty good sign your passwords are strong and unique.

I have hundreds of passwords. I only know 6. The rest are all randomly generated and stored in a password vault.

---

<div class="post-metadata">

**Author:** ![tellyworth](https://avatars.discourse-cdn.com/v4/letter/t/977dab/32.png) [@tellyworth](https://boards.straightdope.com/u/tellyworth)\
**Post date:** [August 28, 2011, 11:50pm UTC](https://boards.straightdope.com/t/password-strength/594262/33 "2011-08-28T23:50:01Z")

</div>

> [@Procrustus](#):
>
> I use my daughter’s name and a four digit number. No random computer hacker knows my daughter’s name, so I think I’m safe.

See my comments above about reuse. If you’ve used the same scheme on another site, even with different digits, and that site gets hacked, all similar passwords could be unsafe.

---

<div class="post-metadata">

**Author:** ![tellyworth](https://avatars.discourse-cdn.com/v4/letter/t/977dab/32.png) [@tellyworth](https://boards.straightdope.com/u/tellyworth)\
**Post date:** [August 28, 2011, 11:51pm UTC](https://boards.straightdope.com/t/password-strength/594262/34 "2011-08-28T23:51:21Z")

</div>

> [@tellyworth](#):
>
> 1. The user had the same password on many sites, and one of those sites had been compromised.

Missed the edit window. I meant to add: or their email account.

---

<div class="post-metadata">

**Author:** ![Procrustus](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/procrustus/32/2994_2.png) [@Procrustus](https://boards.straightdope.com/u/Procrustus)\
**Post date:** [August 28, 2011, 11:56pm UTC](https://boards.straightdope.com/t/password-strength/594262/35 "2011-08-28T23:56:56Z")

</div>

> [@brocks](#):
>
> Procrustina?

Procrustina2008

---

<div class="post-metadata">

**Author:** ![tellyworth](https://avatars.discourse-cdn.com/v4/letter/t/977dab/32.png) [@tellyworth](https://boards.straightdope.com/u/tellyworth)\
**Post date:** [August 28, 2011, 11:59pm UTC](https://boards.straightdope.com/t/password-strength/594262/36 "2011-08-28T23:59:11Z")

</div>

> [@Chronos](#):
>
> Which they get from PC users who are sloppy about their personal security, and allow them to be turned into zombies.

Also hacked servers and unsecured proxies.

---

<div class="post-metadata">

**Author:** ![constanze](https://avatars.discourse-cdn.com/v4/letter/c/f9ae1b/32.png) [@constanze](https://boards.straightdope.com/u/constanze)\
**Post date:** [August 29, 2011, 10:45am UTC](https://boards.straightdope.com/t/password-strength/594262/37 "2011-08-29T10:45:34Z")

</div>

> [@gatorslap](#):
>
> What about sites that have all kinds of rules about what your password can be? Apple (for iTunes and such) requires that your password include a mix of numbers and capital and lowercase letters, and it has to begin with a capital letter and end with a number. While that might “sound” like a more secure type of password, isn’t it actually less secure because it specifies a format?

I think this is a good point: in WWII, the [Engima machine](http://en.wikipedia.org/wiki/Enigma_machine#Indicator) was made less secure by orders from High Command aimed at making it more secure.

> [@](#):
>
> The weakness in this indicator scheme came from two factors. First, use of a global ground setting—this was later changed so the operator selected his initial position to encrypt the indicator, and sent the initial position in the clear. The second problem was the repetition of the indicator, which was a serious security flaw. The message setting was encoded twice, resulting in a relation between first and fourth, second and fifth, and third and sixth character. This security problem enabled the Polish Cipher Bureau to break into the pre-war Enigma system as early as 1932.

and

> [@from second article](#):
>
> However, the way that Enigma was used by the Germans meant that, if the settings for one day (or whatever period was represented by each row of the setting sheet) were established, the rest of the messages for that network on that day could quickly be deciphered.[25]
> 
> The security of Enigma ciphers did have fundamental weaknesses that proved helpful to cryptanalysts.
> 
> 1. A letter could never be encrypted to itself.[26] This property was of great help in using cribs—short sections of plaintext thought to be somewhere in the ciphertext—and could be used to eliminate a crib in a particular position. For a possible location, if any letter in the crib matched a letter in the ciphertext at the same position, the location could be ruled out.[27] It was this feature that the British mathematician and logician Alan Turing exploited in designing the British bombe.
> 2. The plugboard connections were reciprocal, so that if A was plugged to N, then N likewise became A. It was this property that led mathematician Gordon Welchman at Bletchley Park to propose that a diagonal board be introduced into the bombe, substantially reducing the number of incorrect rotor settings that the bombes found.[28]
> 3. The notches in the alphabet rings of rotors I to V were in different positions, which helped cryptanalysts to work out the wheel order by observing when the middle rotor was turned over by the right-hand rotor.[29]
> 4. There were substantial weaknesses, in both policies and practice, in the way that Enigma was used (see ‘Operating shortcomings’ below).

Second article: [Breaking Enigma](http://en.wikipedia.org/wiki/Cryptanalysis_of_the_Enigma)

---

<div class="post-metadata">

**Author:** ![Clothahump](https://avatars.discourse-cdn.com/v4/letter/c/51bf81/32.png) [@Clothahump](https://boards.straightdope.com/u/Clothahump)\
**Post date:** [August 29, 2011, 6:58pm UTC](https://boards.straightdope.com/t/password-strength/594262/38 "2011-08-29T18:58:01Z")

</div>

One of the other things to do is to make up an easy phrase, then translate it into a foreign language if you speak one. That will defeat the dictionary word searches, or at least make them more complex.

I speak two other languages reasonably well and know a smattering of two more. If I mix and match, it gets even better. If I wanted to use “PrettyGirl” as my password, I might use “GadisCantik”, or “ChicaBonita” or “PuellaPulchra”, or “GadisSchoenes” or “MaedchenCantik”, etc.

And if I add a single “leet” transposition, it gets even better: “Gad1sCantik”, etc.

The key is to make the phrase something meaningful to you that you will remember. You could even write it in English on a sticky note on the wall and it would be meaningless to someone else.

---

<div class="post-metadata">

**Author:** ![Agent\_Foxtrot](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@Agent\_Foxtrot](https://boards.straightdope.com/u/Agent_Foxtrot)\
**Post date:** [August 29, 2011, 8:49pm UTC](https://boards.straightdope.com/t/password-strength/594262/39 "2011-08-29T20:49:21Z")

</div>

We hear all the time that passwords are supposed to be long, hard to guess, and filled with a variety of characters. However, some websites and applications are very restrictive, e.g., alphanumerics only, no special characters, no passwords longer than 25 characters?

A password is a string, right? Any modern computer language can easily parse any keyboard characters in a string, right?

So why does a program I use at work only allow alphanumeric passwords between 8 and 15 characters? Programmer laziness?

---

<div class="post-metadata">

**Author:** ![Agent\_Foxtrot](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@Agent\_Foxtrot](https://boards.straightdope.com/u/Agent_Foxtrot)\
**Post date:** [August 29, 2011, 8:56pm UTC](https://boards.straightdope.com/t/password-strength/594262/40 "2011-08-29T20:56:15Z")

</div>

My bad, this should probably go in [this thread](http://boards.straightdope.com/sdmb/showthread.php?t=622030). Mods, anyway you can tuck it in there?

[Previous page](https://boards.straightdope.com/t/password-strength/594262.md?page=1)

[Next page](https://boards.straightdope.com/t/password-strength/594262.md?page=3)
