# Is it possible to brute force all 8 character passwords in an offline attack?

Brute-force techniques trying every possible combination of letters, numbers, and special characters had also succeeded at cracking all passwords of eight or fewer characters.

There are 6.63 quadrillion possible 8 character passwords that could be generated using the 94 numbers, letters, and symbols that can be typed on my keyboard. I'm skeptical that that many password combinations could actually be tested. Is it really possible to test that many possibilities in a less than a year in this day and age?

-

As per this link, with speed of 1,000,000,000 Passwords/sec, cracking a 8 character password composed using 96 characters takes 83.5 days. But a recent research presented at Password^12 in Norway, shows that 8 character passwords are no more safe. They can be cracked in 6 hours.

But one important thing to consider is which algorithm is used to create these hashes (assuming you are talking about hashed passwords). If some computationally intensive algorithm is used, then the rate of password cracking can be reduced significantly. In the link above, author highlights that "the new cluster, even with its four-fold increase in speed, can make only 71,000 guesses against Bcrypt and 364,000 guesses against SHA512crypt."

-
My core i3 laptop makes 1500 guesses per second on WPA handshake. –  Vorac Oct 11 '13 at 13:20
For single iteration MD5, small GPU arrays (<20 cards) are now pushing into the 100Billion/second area. Large (intelligence agency) arrays will be several orders of magnitude faster. –  lynks Oct 11 '13 at 13:34
One thing to keep in mind is that NTLMv1 passwords are particularly easy and so should not be extrapolated from. Because of how NTLM hashes passwords a 16 character password is takes only twice the amount of time to crack as an 8 character one. –  Jeffrey Goldberg Oct 12 '13 at 4:19
Don't forget about salts. If an encryption algorithm uses arbitrary-length salts, it's effectively impossible to create all possible hashes with all possible salts (you'd need a new rainbow table for every possible salt). –  Joe Jan 29 '14 at 21:53

Possible? yes, but what brute force recovery duration is accepted as possible? Some numbers for 8 chars PW if randomly chosen from a 94 character set:

• Windows PW (NTLM:1), using the above metioned 25 GPU recovery monster: 2.2 hours on average
• WiFi (PBKDF2/SHA1:4096) using an 8 GPU recovery system: 98 year on average
• 7ZIP (PBKDF2/SHA256:262144) using an 8 GPU recovery system: 26 centuries

So it is 'possible' for certain cases for us, may be yes in all above cases for some agencies.

Suppose your set of 'obtained' hashes contained 5 million password hashes, then even for the 98 year WiFi case, 145 keys will be found on day 1 (on average). If your password is amongst them, then you experience that also for the WiFi case it is indeed possible! .... if my calculations are right

-

I know of one modest demonstration (Feb 2012, link) that claimed the power to make 400 billion guesses a second on a 25 GPU system. In that case, an 8 digit password would be blown in less than 6 hours; sooner depending on the brute-force method. But that assumes the attacker has access to the file that stores the encrypted password. And frankly, that is easy to do, if you have access to the computer itself. Even if you can't get to the HDD, the attacker would simply replace the keyboard with a computer that would send 'keystrokes' much faster than you could type. It might take longer, due to the speed of the USB connection, but human typing rate is not a good reference on this matter.

As a side note.....

On the issue of characters used in a password, this is not quite as simple as most people state. What matters most is what the attacker expects to have to tried, not what characters you chose. In other words, what matters most is what characters EVERYONE in the system uses, not just you. For example, a random sequence of 'X', 'Y' and 'Z' is just as hard to guess as a random sequence of all letters of the alphabet...as long as the attackers doesn't know you prefer X, Y, and Z. But if, despite the availability of 100 digits, it is known to the attacker that everyone is using only X, Y and Z, then the attacker can narrow down the brute-force attack and negate the benefit of 100 digit security system. The principal of this is identical to that of the dictionary attack. This is why sysadmins might force everyone to use different character types; to make sure that a would-be intruder has to try all permutations.

This is not to say the specific characters used in a password don't affect the speed at which it is broken. That is, when someone says "an 8 digit passwords take 10 years break," that 10 years is the MAXIMUM time required. A more accurate statement would be, "it takes 10 years to test all combination of 8 digit passwords." But the fact is that some passwords would be guessed much faster depending on the character selection and attack method. For example, if your password 100-character alphanumeric system (e.g. 0-9......A-Z), and the brute-force attack uses sequential guesses, then a password starting with a '0' will be broken at least 100x faster than a password that starts with LAST character in that sequence (let's call it 'Z'). But this is tricky to deal with since you can never know what order the attacker may use. For example, does the attacker consider A or 0 the first digit? And is Z or 9 the last digit? Or if the attacker knows that everyone uses passwords that starts with characters towards the end of the alphabet, then he/she may try brute-force in reverse-sequence, and the password that starts with '0' will be safer.

Unfortunately, the speed at which passwords are broken is as much about the number of digits as it is the predictability of human behaviour.

-
An "8 digit password would" in fact "be blown in less than" 1 millisecond. –  Ricky Demer Feb 26 at 20:40
The OP did state that it was an offline attack, so the attacker has the 'file', and your custom keyboard comment also doesn't seem to apply. –  schroeder Feb 26 at 22:48
Looking at password dumps, one can assume that the first character is an uppercase letter and the last is a number (e.g. Password1). Likewise, the first character is rarely a number if the rest of the password is not all numbers. The analysis of these patterns are used to optimize password cracking algorithms. So yes, tl;dr: optimized algorithms based on password use analysis can dramatically decrease the time to crack passwords over purely random permutations. –  schroeder Feb 26 at 22:55