#14
In very general terms, password crackers typically have two approaches. One is to literally try a pre-compiled list of possible passwords. These usually start from very common passwords (like password or qwerty) and work their way down to less common terms, and eventually use a list of words compiled from an online dictionary and other sources. This approach is more likely to find passwords that are valid words or variants on them, even if they’re obscure.
Another password-cracking approach is to try valid sequences of letters, numbers, and symbols, regardless of their meaning. A password cracker using this approach might start with aaaaaaaa for an eight-character password, then try aaaaaaab then aaaaaaac and so on up the alphabet, through mixes of upper and lower case, and throwing in numbers and symbols. This approach is more likely to find passwords that are “machine-friendly” or randomly generated. A passcode like 4De78Hf1 isn’t any more difficult to find this way than teenager would be.
So, what are the odds of a password being guessed? Most systems these days enable users to create passwords using letters (upper and lower case), numbers, and a selection of symbols. Allowable symbols often vary between systems (some allow almost anything, others allow only a handful), but for our purposes let’s assume that means each character in a password can be one of about 80 values — two alphabets at 26 letters each, ten numerals, and 18 symbols. (In theory at least 127 values should be available for every character, but in practice it’s a smaller number.)
Using a purely brute force approach, that means it would take a maximum of 80 guesses to randomly figure out a one-character password. A four-character password could take over 40 million guesses (80 × 80 × 80 × 80 = 40,960,000) and an eight character password could take over 1.6 quadrillion guesses (1,677,721,600,000,000).
If a password cracker were able to make 1,000 guesses a second, it would need about a month to run all combinations of a four-character password, and over 53,000 years to run all the combinations of an 8 character password. That seems pretty secure, right?
Well, not really. In purely statistical terms, a cracker has a 50/50 chance of finding the password in half that time. More troubling, the folks who make password crackers have other ways of improving their odds. Remember how password was one of the worst passwords to use? Guess what’s also a very bad password? Passw0rd, substituting a number zero for a letter O. While password crackers are running their common words from a dictionary, they’re also trying common variants on those words, substituting zeros for O’s, @ signs and 4’s for A’s, 3’s for E’s, 1’s and !’s for I’s, 7’s for T’s 5’s for S’s, and so on. Similarly, 0qww294e is a terrible password — that’s just password shifted up one row on a standard English keyboard. These techniques prey on users’ preference for easy-to-remember passwords. Unfortunately, by substituting (or capitalizing) a character or two in an easy-to-remember term people are mostly making their passwords more obscure, but not much more secure. In fact, typical user-selected eight-character passwords with mixed case, numbers, and symbols usually only have about 30 bits of entropy, or a little over a billion possible combinations. Why? Because the list of terms people on which people base their passwords is far smaller than the total possible combinations of letters, numbers, and symbols.
How fast can passwords be broken? Trying 1,000 passwords a second might seem impossible — after all, most services tend to lock us out of our own accounts if we mistype a password three or four times, often resetting the password and requiring us to answer security questions to make a new one. These “gateway” techniques do improve account security, and incidentally, are also a great blindingly easy way to annoy people.
However, attackers intent on breaking passwords aren’t knocking on a service’s front door and trying (literally) millions of times to log into the same account. They’re either using less-public authentication methods that aren’t subject to lockouts (like a private API for partners or apps), spreading their attacks across a broad range of accounts to avoid lockout periods, or (best case scenario) applying password cracking techniques to stolen password data. Most systems encrypt the password data they store, but those encrypted files are only as secure as the system itself. If attackers can get their hands on the encrypted password file (through a security hole, compromised machine, or social engineering, for starters) they can attack it very rapidly once it’s on their own systems. That’s why stories about attackers obtaining account information (like Stratfor, Epsilon, Sony, and Zappos) are troubling. Once the encrypted data has been pried loose, attackers can apply much more powerful tools to crack it open.
In the real world, that means the figure of 1,000 passwords per second is extremely conservative. Typical desktop computing hardware these days can test millions of passwords a second against common encryption technologies. Similarly, there are now password-cracking tools that leverage graphics processors, and criminal botnet operators are also in the password cracking business. They can spread the workload across thousands of computers. Combine this raw power with sophisticated heuristics (like trying numbers-and-letters variants on common words) and it’s not unusual to crack a typical eight-character user password in under half an hour.
Our next post will explain how you can set a strong password. Stay tuned..!!!!!