5 ms·
i suspect some people here don't really know in any detail how password cracking works. you start with a dictionary. a good dictionary combines multiple passw
by andrewcooke 15y ago
i suspect some people here don't really know in any detail how password cracking works.
you start with a dictionary. a good dictionary combines multiple passwords, slang, common patterns of keys on the keyboard, and old, known, passwords (so all the entries here will be added, for example).
but that's just the start. the cracking programs also have rules. in simple terms these can be "shift to upper case" or "combine two words from dictionary" or "reverse word" or "replace "e" with "3". and there are common sets of rules that people develop (and test) that do standard transformations like automatically making passwords "leet", or extending with common sequences (123), etc.
and you can automate this. so something like hashcat will generate random rules and apply them to the dictionary. because the rules are written so that they can be composed this is surprisingly powerful and probably explains some of the "harder" cracks on this list.
the only way to beat this, then, is to use random passwords (for example, as generated by keepass) and to make them large enough that just running through every combination doesn't work.
on size: what is important is the number of available combinations. systematic cracking - trying every possible combination - still uses common characters first so "size" is a combination of character variety and number of characters. again, something like keepass makes this easy.
finally, note that on some old or poorly maintained systems, you may be restricted (perhaps without knowing) to 8 characters. then using a wide range of characters is critical.
i know this is obvious to many, but some of the comments about "hard" passwords made me think it might be useful...
- loy22 15y agoCorrect me if I'm wrong: you mean that in the real world, salted passwords have only one advantage over plain text passwords, which is to buy you some time ? (albeit it's a strong advantage)
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- ianterrell 15y agoA salted, hashed (with a slow hash function) strong (long, random, large character set) password, will take hundreds, thousands, or millions of years (average case) to crack with brute force. It's only technically "buying some time." In reality it's keeping it completely secure. And what use would a hacker have attacking a whole database full of them? It would take too long to do it, even with less secure passwords. It takes your fruit out of the "low hanging" category, which is a bit of security in itself.
- brianleb 15y agoI have a tangentially related question. During this LulzSec situation, I stepped into 2009 and started using LastPass. I generated 16 character random passwords for every place that I've been visiting. As I understand it, these passwords are encrypted on my machine and then uploaded to LastPass servers. When I login with my master password, I have access to all of these passwords unencrypted. My question: is there an intrinsic weakness in storing these passwords at a central location? E.g. would it be feasible that LastPass gets targeted by a complicated blackhat attack, and then instead of losing just one of my passwords I lost them all? Or is the manner in which they are encrypted and transmitted secure enough to prevent this? Thanks.
- bonzoesc 15y agoIf LastPass uses good cryptography your passwords should be safe for a very long time.
- Acorn 15y agoIf someone managed to compromise LastPass' servers, they would be able to modify the content that was sent to your browser, and thereby do anything they wanted with your master password after you typed it in. That's the weakness of services that are supposedly "Host-proof". If the host is sending you the webapp/javascript/webpage in which your data is decrypted, each and every time you visit their website, you have to trust that they wont (or someone else wont) modify it in a malicious way in order to gain access to your data. The only way to be safe from this kind of attack is to use the same trusted copy of the code, and not use any new versions until you trust that it is also safe, or to somehow verify that the webpage sent to your browser is exactly what you expect it to be. Cortesi has a very good write up on this issue: http://corte.si/posts/security/hostproof.html http://corte.si/posts/security/hostproof.html
- rakkhi 15y agoYes you have centralized your risk. http://www.rakkhis.com/2010/12/why-you-should-use-password-vault.html http://www.rakkhis.com/2010/12/why-you-should-use-password-v... An alternate option to reduce some of this: http://www.rakkhis.com/2011/06/i-was-hacked-mtgox-bitcoin-3-reasons-i.html http://www.rakkhis.com/2011/06/i-was-hacked-mtgox-bitcoin-3-...
- frederickcook 15y agoSo this is not the complete set of passwords, only the ones that have been cracked so far, using a dictionary? Scanning through the list, very few look like a random set of characters that a password generator would come up with. Does that mean that passwords which were randomly generated are, and are likely to remain, safe?
- andrewcooke 15y agoSo this is not the complete set of passwords, only the ones that have been cracked so far, using a dictionary? a dictionary + rules + time. yes (i assume - i have no inside knowledge). [...] passwords which were randomly generated are, and are likely to remain, safe? it depends on the length and range of characters. random passwords are still vulnerable if they are short and/or use a restricted range of characters. they can be found "by accident" when using rules and dictionaries. they can also be found by simply trying all combinations ("a", "b", ..., "aa", ..., "ab"...). length and character range protects against both of these. it's likely that attackers will use all available approaches, including simple brute force. i focused on dictionaries + rules above because (1) that's generally more efficient and (2) some people don't seem to realize how powerful it is.
- frederickcook 15y agoThanks. I was under the impression somehow that cracking the first few passwords would make it easier to crack the rest (by figuring out the salting scheme perhaps)? Also, if there is no restricted range of characters, and a solid, random password is used, how can the attacker know when they have broken it, short of trying them all against the actual server? Edit: Forget that last bit. I'm confusing myself.
- rakkhi 15y agoNo cracking one doesn't help you with the rest at all. Salt and encryption scheme figured out to even start. You just keep going in bruteforce and build bigger rainbow tables / variant dictionary attacks. Given a large number of GPU's you will get all passwords.. time though could be a number of years to thousands of years.
- andrewcooke 15y agooops. "a good dictionary combines multiple passwords, ..." should be "a good dictionary combines multiple languages, ..." WTF. some fuckwit downvoted this? i wrote the text i am correcting. screw you. why do i bother to write useful comments? this place gets worse.
- wahnfrieden 15y agoJust so you know, there's an edit link in each of your posts, though it goes away after enough time.
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- saurik 15y ago(The two comments were made four hours apart.)
- gojomo 15y agoI think there are a few grumpy types that downvote for little reason, or perhaps completely arbitrarily. They're often the first votes in, as this action requires little consideration, and presumably such people have few other distractions. Also, some downvotes are cast in error. This is very easy on touch-screens, and occasionally a problem elsewhere. Since totals are no longer displayed, a person may not even realize their intended upvote registered as a downvote. So assume it was a mistake. Or a hopelessly grumpy person whose bad attitude is best ignored, rather than amplified with curses and complaints. Brush off the first downvote or two, and well-considered upvotes follow soon enough.
- seanp2k 15y agoYeah, I've gotten downvoted a lot for correcting people...but I think that not even approaching proper english makes you look like an idiot, so really, I'm helping.
- bitbear 15y agoWould you consider very long passwords (say 40 characters) containing only dictionary words to be safe?
- andrewcooke 15y agoyou can do the maths. if the words are drawn from a dictionary of size D and you use N words then the number of choices that need to be explored is D^N. the equivalent number of bits is log2 of that. so what's D? i imagine most people would use common words, so let's take the most popular 1 percent of "dict/words" on my computer. that's 4,000 words. log2(D^N) = N * log2(D) = N * 12 (since log2(1000)~10). now in another thread here there's an article saying that 9 characters drawn from an alphabet of 100 (lower+upper+symbols) is around the current limit. the equivalent number of bits there is log2(100^9) = 60. so you'd need about 5 words (5*12=60) for the same level of security. tl;dr: you need more than 5 words (very) roughly. i am not 100% sure i have the maths right, either :o) in more practical terms, i don't know of a program that actually does this. the programs i know about typically only combine a few words. but i am no great expert, and it would be fairly easy to write such a program. [edit: actually, you are less safe than i estimate above if the attacker is smart, because the words probably aren't independent (most people will use meaningful sentences). so you can use markov chains to hugely reduce the search space (in more general terms: "the" will be followed by a noun phrase, etc). so you need significantly more than 5 words. heh. if someone wants to pay me to write such a program, please get in touch... ;o]