Editing Talk:936: Password Strength

Jump to: navigation, search
Ambox notice.png Please sign your posts with ~~~~

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
''Fix the software first.''  If you double the time it takes to enter each repeated password attempt you make brute force attacks pointless.  Imagine you allowed a hurried user who screws up their own password entry w/ frozen fingers. If their system starts out with a 1 second delay, then doubles to two, then to four, etc. the time it takes to wait is 2^n.  Six screw ups cost you a minute, twenty errors and you are waiting 291 hours before your next log-in attempt....  kmc 2015-05-10 {{unsigned ip|108.162.229.124}}
 
 
: That's not how brute force attacks work.  They steal the hashes of the passwords and then brute force them locally. [[Special:Contributions/198.41.235.107|198.41.235.107]] 23:43, 10 January 2016 (UTC)
 
:: Both are brute force. It is specified in the comic that we assume an attack against a weak remote web service though. --[[Special:Contributions/162.158.150.231|162.158.150.231]] 13:10, 16 September 2016 (UTC)
 
 
 
 
You still have to vary the words with a bit of capitalization, punctuation and numbers a bit, or hackers can just run a dictionary attack against your string of four words. '''[[User:Davidy22|<u>{{Color|purple|David}}<font color=green size=3px>y</font></u><font color=indigo size=4px>²²</font>]]'''[[User talk:Davidy22|<tt>[talk]</tt>]] 09:12, 9 March 2013 (UTC)
 
You still have to vary the words with a bit of capitalization, punctuation and numbers a bit, or hackers can just run a dictionary attack against your string of four words. '''[[User:Davidy22|<u>{{Color|purple|David}}<font color=green size=3px>y</font></u><font color=indigo size=4px>²²</font>]]'''[[User talk:Davidy22|<tt>[talk]</tt>]] 09:12, 9 March 2013 (UTC)
: Several discussions around the internet around this -- the consensus [ http://www.explainxkcd.com/wiki/index.php/936 looks like] that once this scheme is published it is fairly simple to run a dictionary attack on the password.  My advise to most people is to use a password manager like lastpass or onepass that can generate pure random password. [[Special:Contributions/162.158.253.6|162.158.253.6]] 23:52, 10 March 2016 (UTC)
 
  
 
No you don't.  Hackers cannot run a dictionary attack against a string of four randomly picked words.
 
No you don't.  Hackers cannot run a dictionary attack against a string of four randomly picked words.
Line 71: Line 64:
  
  
The D0g..................... (24 characters long) is NOT stronger than PrXyc.N(n4k77#L!eVdAfp9 (23 characters long). The reason why, is that the later password is random. There is no pattern. The former, "padding" technique can  be very easily cracked. You just need to assume that each character be repeated 1~30 times. Then the first password would become : 1(D)1(0)1(g)21(.), which, is then of complexity 30^4 + 96^4, versus 96^23 for the random password. And that is assuming that any character can be repeated 1~30 times, so DDDDDDDDD0000000ggggggg...... also would be cracked extremely quickly. If you limit yourself to only last character padding, your password now becomes 30*96^4 possibilities. {{unsigned ip|108.162.222.235}}
+
The D0g..................... (24 characters long) is NOT stronger than PrXyc.N(n4k77#L!eVdAfp9 (23 characters long). The reason why, is that the later password is random. There is no pattern. The former, "padding" technique can  be very easily cracked. You just need to assume that each character be repeated 1~30 times. Then the first password would become : 1(D)1(0)1(g)21(.), which, is then of complexity 30^4 + 96^4, versus 96^23 for the random password. And that is assuming that any character can be repeated 1~30 times, so DDDDDDDDD0000000ggggggg...... also would be cracked extremely quickly. If you limit yourself to only last character padding, your password now becomes 30*96^4 possibilities.
 
 
 
 
And that's why it is stupid to explain this kind of joke : it depends on many (MANY) parameters such as brute-force method and encryption/hash algorithm. Giving this kind of (wrong) explanations about "pass cracking" (as if it was always the same way to process ...) is ridiculous. And they talk about entropy .......... Holy shit, go back to school and stop screwing cryptography up. zM_
 
 
 
I just use a password with a ␡ character or two, and ␇ for banks.  [[Special:Contributions/108.162.242.21|108.162.242.21]] 08:33, 18 August 2015 (UTC)
 
 
 
 
 
I'am astonished that even someone like Schneier don't get 936 right immediately after reading it. So, I think I know what was going on in Munroes mind conceptually. Maybe there are some grans of salt, but I don't have a problem with these. But I do have one (or two) quantitative problem(s) with 936:
 
* I was not able to find out, how Munroe get the value of about 16 bits of entropy for the "uncommon" nine letter lower case "non-gibberish base word". This would mean: On average, a letter of such a word will have about 1.8 bits of entropy. May be, but how do we know? "Citation needed!" ;-)
 
* (Secondly: The "punctuation" should have 5, not 4 bits of entropy. There are 32 (2^5) ASCII punctuation characters (POSIX class [:punct:]). But I assume this is a lapse.)
 
Can someone enlighten me? --[[Special:Contributions/162.158.91.236|162.158.91.236]] 17:31, 19 September 2015 (UTC)
 
:I have missed the sentence "Randall assumes only the 16 most common characters are used in practice (4 bits)". Hm. There is a huge list with real world passwords out there, leaking from RockYou in 2009. After some processing to remove passwords containing characters that are not printable ASCII characters (ñ, £, ๅ, NBSP, EOT, ...), the list contains about 14329849 unique passwords from about 32585010 accounts (there are some garbage "passwords" like HTML code fragments). The following are the number of accounts using a password containing a particular printable character (one or more tokens of a particular type):
 
<nowiki>
 
226673 .
 
186883 _
 
179264 !
 
125846 -
 
104224 @
 
95237 *
 
92802   (space)
 
60002 #
 
36522 /
 
31172 $
 
28550 &
 
27686 ,
 
23905 +
 
18704 =
 
18268 )
 
17927 ?
 
16401 (
 
16074 '
 
14407 ;
 
11819 <
 
11118 %
 
10723 ]
 
8975 \
 
7718 [
 
7209 :
 
5815 ~
 
5673 ^
 
4995 `
 
2847 "
 
2741 >
 
1050 {
 
939 }
 
502 |
 
 
 
(NB: 1222815 accounts were using a password containing at least one of these.)
 
</nowiki>
 
:Sorry, I have no "citation". But you can play with the leaked RockYou password list yourself. Here is a way to reach that playground:
 
<nowiki>
 
$ # Download the compressed list (57 MiB; I have no idea what "skullsecurity"
 
$ # is, it was simply the first find and I assume it's the said list):
 
$ wget http://downloads.skullsecurity.org/passwords/rockyou-withcount.txt.bz2
 
 
 
$ # Decompress the list (243 MiB), or, to speak more exact, it's a table:
 
$ bzip2 -dk rockyou-withcount.txt.bz2
 
 
 
$ # The content of the table is: "How many accounts (first row) were using that
 
$ # password (second row)?" Let's take a peek:
 
$ head -n5 rockyou-withcount.txt
 
290729 123456
 
  79076 12345
 
  76789 123456789
 
  59462 password
 
  49952 iloveyou
 
 
 
$ # The following command processes the table to remove lines with passwords
 
$ # containing characters that are not printable ASCII characters (14541
 
$ # lines/passwords, 18038 accounts), and lines insisting that there were some
 
$ # accounts with no password (1 line, 340 accounts). Moreover, the command
 
$ # removes every space character not belonging to a password, makes the rows
 
$ # tab-delimited and writes the result in a file called "ry" (161 MiB; many
 
$ # bloating spaces removed).
 
$ LC_ALL=C sed -n 's/^ *\([1-9][0-9]*\) \([[:print:]]\{1,\}\)$/\1\t\2/p' rockyou-withcount.txt >ry
 
 
 
$ # The following are shell functions to build commands. They will be explained
 
$ # below using examples (I can not express myself well in this language).
 
$ counta() { LC_ALL=C awk 'BEGIN { FS = "\t"; p = 0; a = 0 } { if ($2 ~ /'"$(printf %s "$1" | sed 'sI/I\\/Ig')"'/) { p++; a += $1 } } END { print a " (" p ")" }' "$2" ;}
 
$ countap() { LC_ALL=C awk 'BEGIN { FS = "\t"; p = 0; a = 0 } { if ($2 ~ /'"$(printf %s "$1" | sed 'sI/I\\/Ig')"'/) { p++; a += $1; print $0 } } END { print a " (" p ")" }' "$2" ;}
 
 
 
$ # We have reached the playground. Here are some examples for how to use the
 
$ # toys:
 
 
 
$ # Count how many accounts were using a password containing the string love:
 
$ counta 'love' ry
 
671599 (188855)
 
 
 
$ # The first operand of the above command is a extended regular expression
 
$ # (ERE). The second operand is a file, namely the previously generated file
 
$ # called "ry", that is the (processed) table. The first number of the output
 
$ # means: "That many accounts were using a password matching the ERE." The
 
$ # second number inside parentheses means: "That many unique passwords matching
 
$ # the ERE." If the first number is greater than the second number, some
 
$ # accounts sharing the same password (we will see this clearly in one of the
 
$ # examples below).
 
 
 
$ # Count how many accounts were using a password containing at least one
 
$ # character:
 
$ counta '.' ry
 
32585010 (14329849)
 
 
 
$ # Count how many accounts were using a password containing exactly one
 
$ # character:
 
$ counta '^.$' ry
 
144 (45)
 
 
 
$ # Count how many accounts were using a password containing exactly one numeric
 
$ # character:
 
$ counta '^[0-9]$' ry
 
55 (10)
 
 
 
$ # Let's have a look at the distribution:
 
$ countap '^[0-9]$' ry
 
29 1
 
6 7
 
6 3
 
3 9
 
3 2
 
2 6
 
2 5
 
2 0
 
1 8
 
1 4
 
55 (10)
 
 
 
$ # Obove we see the second command at work. You see what it does and what it
 
$ # does different. And here we see clearly the meaning of the first number and
 
$ # the second number inside parentheses.
 
 
 
$ # Count how many accounts were using a password containing at least one
 
$ # numeric character:
 
$ counta '[0-9]' ry
 
17609065 (9761364)
 
 
 
$ # Count how many accounts were using a password ending with a numeric
 
$ # character:
 
$ counta '[0-9]$' ry
 
15728238 (8313698)
 
 
 
$ # Count how many accounts were using a password beginning with a numeric
 
$ # character:
 
$ counta '^[0-9]' ry
 
6409397 (3283946)
 
 
 
$ # Count how many accounts were using a password containing only numeric
 
$ # characters:
 
$ counta '^[0-9]+$' ry
 
5192990 (2346744)
 
 
 
$ # And, last but not least, count how many accounts were using a password
 
$ # containing that "uncommon non-gibberish base word" in 936, with an upper
 
$ # or an lower case first letter, with or without some of the "common
 
$ # substitutions":
 
$ counta '[tT]r[o0]ub[a4]d[o0]r' ry
 
3 (3)
 
 
 
$ # Yes, there are some. 14 million unique passwords are a lot. Let's see what
 
$ # exactly was used:
 
$ countap '[tT]r[o0]ub[a4]d[o0]r' ry
 
1 troubador1
 
1 troubador
 
1 darktroubador
 
3 (3)
 
</nowiki>
 
:[[Special:Contributions/162.158.91.236|162.158.91.236]] 06:23, 21 September 2015 (UTC)
 
 
 
Interesting read about the generated password streangth: https://www.schneier.com/blog/archives/2016/01/friday_squid_bl_508.html#c6714590 [[Special:Contributions/162.158.91.190|162.158.91.190]] 08:09, 8 January 2016 (UTC)
 
 
 
: That person sounds confused. [[Special:Contributions/198.41.235.107|198.41.235.107]] 23:43, 10 January 2016 (UTC)
 
 
 
;You've Already Memorized It
 
 
 
Originally I logged in to report a local xkcd related phenomenon, and ask if anyone else had experienced it. The destiny, seemingly inescapable, that at once became my own upon seeing that last panel; the effect of the self-fullfilling combination of the very specific look of inquiry -- one I recognize immediately and associate with the words ''"interesting, Captain"'' -- and the insidiously performative ''"You've already memorized it."'' At first I doubted this was actually the case, but soon I could no longer, since not only did the phrase readily come to the mind and out the mouth, it also came up often.  The ''"correct"'' soon replaced the word ''"right"'' in everyday conversation, then ''"right you are"'' and ''"yes"'' and so forth, then its opposite (with a ''"no"'' in front), then replacing the direction, the verb involving pen and paper (the most recent development was merely a quick under the breath aside of an acronym of the remaining words).  All followed by the rest of the absurdly perfect password. '''Now here's the kicker: I logged on to tell you all this for some reason, only to find, I had memorized ''"correct horse staple battery"'' instead of ''"correct horse battery staple."'''''[[User:A female faust|A female faust]] ([[User talk:A female faust|talk]]) 03:58, 31 July 2016 (UTC)
 
 
 
:If you go to https://howsecureismypassword.net/ and type in the suggested password in the comic, it says that the password would be cracked instantly, and adds a section titled "xkcd".
 
[[Special:Contributions/162.158.62.195|162.158.62.195]] 14:18, 11 February 2017 (UTC)
 
 
 
Would you believe it, the guy who made the bad password rules switched his philosophy to this comic's: "Long, easy-to-remember phrases now get the nod over crazy characters" "In a widely circulated piece, cartoonist [[Randall Munroe]] calculated it would take 550 years to crack the password “correct horse battery staple,” all written as one word. The password Tr0ub4dor&3—a typical example of a password using Mr. Burr’s old rules—could be cracked in three days" [[User:Jacky720|That's right, Jacky720 just signed this]] ([[User talk:Jacky720|talk]] | [[Special:Contributions/Jacky720|contribs]]) 11:57, 8 August 2017 (UTC)
 
 
 
The 44 bits of entropy breaks down rapidly when you realize in real life, most people will choose a passphrase that contains words like "pass", "phrase", "remember", "long", "company" and quite likely "stupid". It's the passphrase equivalent of "password123". If the words are selected randomly and then assigned to a person, that would fix that problem (but create others, like mistrust of a computer that assigns passwords for you to log into that same computer with). [[User:Nerfer|Nerfer]] ([[User talk:Nerfer|talk]]) 21:19, 11 October 2019 (UTC)
 
 
 
There is one aspect which has been left out the whole time. I do not question things like wordlist length, entropy, or substitutions. However, doing shoulder surfing will either reveal a full password or in parts. A full password should not be topic of discussion. In the case of partial success, it is in the proposed method far easier to guess the rest of the password than in the traditional one. [[User:CommingFromTheSide|CommingFromTheSide]] ([[User talk:CommingFromTheSide|talk]]) 15:16, 5 November 2019 (UTC)
 
 
 
As for "author's 28 bits mistake". I believe that Randall does mean the common lexicon with mangling substitutions. That means that counterexample "J4I/tyJ&Acy" does have 72bits, but nonetheless is irrelevant to character/personage strategy of choosing a memorable yet strong password. [[Special:Contributions/172.68.215.113|172.68.215.113]] 13:17, 23 February 2020 (UTC)
 
 
 
 
 
Ah... this reminds me of one of my old password.
 
 
 
> It had quote.
 
 
 
> It had comments.
 
 
 
> There were "10e9 characters". (Don't worry, as much as it length backfired, if you types fast, you could type by hand in less than 5 minutes) 
 
 
 
> It had typo. 
 
 
 
> It had hints of itself in itself. 
 
 
 
 
 
--[[Special:Contributions/172.68.154.70|172.68.154.70]] 08:22, 8 April 2020 (UTC)
 
 
 
Ah yes, now Microsoft has disabled plaintext words in passwords. I can see where they were trying to go with this but it completely backfired for everyone who doesn't use the password "password". -[[User:Alpha2|Alpha2]] ([[User talk:Alpha2|talk]]) 15:20, 13 October 2021 (UTC)
 
 
 
This scheme (four words) was used for the default wifi and admin passwords on a T Mobile wireless home internet gateway received on 2022-Jun-23 --[[Special:Contributions/172.70.175.146|172.70.175.146]] 14:51, 27 June 2022 (UTC)
 
 
 
The best password/passphrase should be something that has meaning to you and only you; for example, I used to use the password NurseSlutButt, which came from working at an office where the manager had one of his walls covered with the employees' personal memorabilia and one of those was a 1959 newspaper clipping about the new matron of a local orphanage, so that phrase developed from idly staring at the clipping and thinking about her and how she looked in the accompanying photo. I never told anyone about that password until now. Also, introduce deliberate mis-spellings: that makes it harder to crack, even if the attacker guesses the word. That was probably the intent behind the "numbers & symbols" rule in the first place, back before Unicode existed and computer users were limited to what was on their keyboard. [[Special:Contributions/172.71.215.11|172.71.215.11]] 23:37, 17 November 2023 (UTC)
 

Please note that all contributions to explain xkcd may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see explain xkcd:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel | Editing help (opens in new window)

Templates used on this page: