59

Making a strong password AND remembering it is like eating while talking. You choke. So the same thing might happen if you have a p455w0(R).|L1K3thys and someone cracks it. I'm just not sure if it's actually true. Are these leet passwords more crackable than completely random passwords that a random password generator makes? Are there any leet password crackers out there? Is there a way to safely simulate a penetration test on some offline leet passwords?

  • 1
    "Are there any leet password crackers out there" it's really simple to write one and use a big wordlist. – Samuel Shifterovich Oct 16 '16 at 19:21
  • 41
    whenever I read anything about password strength, my mind comes automatically to this: xkcd.com/936 – dave_alcarin Oct 17 '16 at 10:11
  • 11
    Leet speak looks like a simple set of substitutions: When you crack passwords, you use a dictionary and a set of rules/transforms. I searched for se3 (replace e with 3) in the dive ruleset for hashcat, and this was one of the first things to come up "sa@sc<se3si1so0ss$", there are lots of similar examples. I was recently working on a project to test passwords for hashcat dictionary attacks but I couldn't get it performant enough to be usable for large dictionaries/rule-sets (1000s worked, but not 10ketc), feel free to use it though. – Nathan Cooper Oct 17 '16 at 11:55
  • xkcd 936 explained – Peter Mortensen Oct 18 '16 at 0:10
  • 1
    A good site/methode to generate those "xkcd"-type passwords is Diceware: world.std.com/~reinhold/diceware.html – Selenog Oct 18 '16 at 7:32
78

I think Trey Blalocks answer is great, but I would like to complement it with some math.

If your password is randomly picked from the 171,476 words in the Oxford English Dictionary you get log2(171476) or about 17.4 bits of entropy.

Lets assume there is about 4 natural leet substitution in the average word. Randomly either doing or not doing each substitution adds one bit, so adding the leet would increase the entropy by 4 bits, meaning it takes 16 times as long to crack. (If you just use leet for all available substitution you just add one bit - the password is either leet or not leet.)

On the other hand, a completely random 8 character alphanumeric (upper and lower case) password has log2(62^8) or about 47.6 bits of entropy. That means it takes a bit more than a billion times as long to crack!

So adding leetspeak is slightly better than just taking an english word, but it is not nearly as good as randomizing.

  • 6
    And when they tell you the randomized string is too hard to remember, you can tell them about password managers and how with a little bit of responsibility you'll be more secure and as a plus... never forget a password again!! – corsiKa Oct 17 '16 at 15:52
  • 2
    I've seen many passwords which use this substitution in all places instead of at a random number of places, and it's worth mentioning that this adds 0 bits of entropy. – Charles Oct 18 '16 at 18:20
  • @Charles I argued in my answer that it adds one, since everybody will not do it. But on the other hand, if the attacker knows that you do it then I agree it is zero. – Anders Oct 18 '16 at 18:36
  • @Anders Yeah, agreed, it's just in what you assume about the likely passwords. – Charles Oct 18 '16 at 18:42
  • Except leet has several possible substitutions for every letter, not just four as you presume. See robertecker.com/hp/research/leet-converter.php . Obviously, if you use his "basic leet" setting, that's one bit of entropy. βμ+ !ƒ Ψøμ ρℓαΨ αЯøμηÐ ω!+н +н€ +αβℓ€, !+ Ðø€$ α η!¢€ ʝøβ øƒ !η+ЯøÐμ¢!η& €η+ЯøρΨ. (Not that I can remember all those substitution rules or type all those special characters, mind you.) – John Deters Oct 18 '16 at 22:40
49

Cracking libraries do include common Leet substitution algorithms and there are Leet dictionaries which can be used by tools like Hydra. There are also tools to convert an entire dictionary of words to "Leet-speak"

More importantly hashes are available for the most common Leet passwords and Leet word variations so if someone is cracking a large password dump of these against a very large set of pre-hashed words which include Leet passwords in use they are very likely to find matches.

Finally a better way to determine real-world consequences might be to look at password dumps which have already occurred that also included Leet passwords. The proof of them being cracked is visible in a real world password dumps that have gone public. Likewise their presence in common hash tables (MD5 and SHA1) would also lend likelihood to them being cracked easily.

  • 8
    "The proof of them being cracked is visible in a real world password dumps that have gone public" - cracked as in guessed randomly and found to correspond to at least one actual user in a leaked database that wasn't salted? This is why you salt, kids. – John Dvorak Oct 17 '16 at 4:44
  • 2
    Anecdotal evidence: I managed to crack a 7-zip (aes256) file password by defining my own algorithm based on cRARk-7z. It took < 50 hours running solely on my system at just over 20k attempts per second (AMD 6-core CPU + good GPU). The password was something like cr4zym0nk3y!. [Note] I knew upfront it were all lower case and had a symbol at the end. – Marc.2377 Oct 18 '16 at 12:37
  • It's basically just an extended alphabet, so just an increased number of iterations once you have produced the substitutions. Brute force will work eventually. – mckenzm Oct 19 '16 at 2:20
16

Obligatory and extremely relevant XKCD reference:- enter image description here

What I'm inclined to do is combine both approaches but I don't think that makes a ton of difference. Another approach would be to utilise the first letter of every word in a favourite poem or song. NGGYUNGLYDNGRAADY etc...

  • 2
    Your "other approach" is the naive user's method. The proof of the pudding is the randomness. A favourite poem or song is not random! Even a little bit of determinism can lead to an easily hacked password. – Timm Oct 18 '16 at 12:24
  • 15
    It's not every day that you get rickrolled by a legitimate answer on the Security Stack Exchange. – Brian Oct 18 '16 at 14:43
  • 1
    @NahuelIanni No, experts don't agree on that, although I've heard that saying before. People can memorize secure passwords -- the challenge is getting them to take the time to generate one and then commit it to memory. Most people don't want that extra work so they use less secure choices. – PwdRsch Oct 18 '16 at 15:03
  • 2
    @brian ;). Glad it didn't go to waste. – mcottle Oct 18 '16 at 15:25
  • 3
    There's 52 weeks in a year. Considering most of the time there's repeats a lot of repeats, let's be extremely generous and say there's 1000 top40 songs in a year. Go back 50 years and that's 50,000 songs in the top 40. The song method is log2(50000)=15.6 bits of entropy. You can mix in a few more bits here and there, but you end up with the same problem. – corsiKa Oct 18 '16 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.