2

Assume the hacker starts with only your email address and he has high incentive to gain access.

UPDATE: Also assume the password is unique (never used elsewhere) and it is NOT a guessable word like you dog's name with a few odd characters thrown in. Your unique password in question might be something like: q*b!oss0.

If an 8 character password length is problematic, assume a length increased to 10 chars.

What are the concerns, attacks, and mitigations that a webmail provider might consider in regards to preventing password cracking?

EDIT 2: Also assume two-factor authentication is used. Would this make the webmail account extremely secure?

6
  • 6
    Depends on the provider. If it implements rate limiting, it's hard. If not, it's easy. – Matthew Apr 15 '16 at 15:08
  • 1
    Relevant... arstechnica.com/security/2012/12/… -- note this is beyond just digits. – n00b Apr 15 '16 at 15:52
  • 5
    Also relevant: how strong is the password recovery process for "forgot my password" process? Is that email address searchable on social media? Could they guess answers to any "security questions" from these social media accounts, to bypass your password entirely? And, do you re-use this password anywhere? They could search for password breaches at other websites where your email address appears as an login name. – Ben Apr 15 '16 at 16:51
  • 3
    Without lots more information, the best we can do is say "it depends" – Neil Smithline Apr 15 '16 at 17:04
  • 1
    My high school used a password scheme with about 1 million possible passwords, and did not have any account lockout feature, and it took only several hours of computer time to brute-force my brother's password through the webmail login page. – user253751 Apr 15 '16 at 22:40
27

"Eight digits" means 108 = a hundred million possible passwords. At best, you selected your password fully randomly, implying that the attacker, on average, will have to try half of them before hitting the right one (so fifty million connection attempts).

(The "at best" means here that the attacker always has the option of trying passwords in a random order, so there is no password selection strategy, however nifty it may look, that can make things harder than that for the attacker. Some selection strategies may make things easier, though. Therefore, in password generation, randomness rules.)

The important term above is "average". On any specific case, an attacker may get especially lucky or especially unlucky. However, the attacker can perform the same kind of computations and will decide to attack or not to attack based on his perceived, a priori chances of success. Also, not all attackers are completely rational in their decision-making.

How many authentications the attacker may attempt depends on the context and server behaviour. If the server uses "typical" hardware, implements inexpensive password processing (e.g. single SHA-1, not bcrypt), and does not limit authentication rates, then an attacker can hope for, say, 1000 authentication attempts per second, thus reaching the 50 millions in about 50000 seconds, i.e. about 14 hours. On the other hand, if the server locks out the account after 10 failed successive authentication attempts, then the attacker won't be able to try more than 9 attempts between any time you connect; if you connect on a daily basis, then the attacker's expected breaking time will be about 15210 years.

Since there is a lot of variation in how servers implement authentication, and in particular how hard they try to detect brute force attempts and how thoroughly they react to it, the only possible answer to your question can only be "it depends".

2
  • 1
    TL;DR it depends! :D Great answer as usual! – stackErr Apr 15 '16 at 18:37
  • Question has been rephrased to "8 character" with an emphasis towards brute force mitigation techniques – schroeder Apr 16 '16 at 18:48
1

Well let's think about it for a moment. The character set for passwords is usually [A-Za-z1-0\~\!...] or 26+26+10+10=72 characters for a total of 728 or 722,204,136,308,736 different combinations(including combinations that are bad. Trying to catch all of those patterns is a bit inane).

At 1000Guesses/1Second that's 22,900.9Years.

Okay, so the metric of 1000 guesses a second should already raise the flag of rate limiting to make it take longer. Now they can only guess 1 a second.

22,900,942.9 years is a long time, but they're REALLY determined.

Now let's put in a lockout timer after 10 guesses. Say for a minute. This averages out to 1/6 a guess a second, or 137,314,541 years. I'm pretty sure whatever they wanted to gain access too probably isn't relevant anymore. However now it's just for the merit of things!

Now let's lock the account after 10 lockouts and requires a phone call to unlock it. Now the person knows the attack is happening. The attack no longer has any intensive to even try after the lockout because they are guaranteed to have either a new email, or a new password and they're back to square one.

Of course this is assuming the person has to go through every guess to get there. Realistically that doesn't always happen because they have zombie nets, can do it by ranges per machine, and often get lucky an find it quickly. Plus not all passwords patterns conform to these patterns. Often they conform to a smaller set of Regex values that get applied to it to test it's strength and keep it at a bare minimum. This means that all of this is moot if they get it the first try.

Since randomness applies to brute forcing then the real answer is include the following protection methods:

  • Rate Limiting(no more than X attempts per Y period length)
  • Temporary lockouts(after X failures, lock attempts on account for Z period length)
  • Interactive lockouts to recovery method(requires recovery method)
  • 2FA

Now the attacker can't ever get the password UNLESS they get lucky. Good luck with that!

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.