Saturday, February 10, 2007

Solving Password Brute Force And Lockout Issues

Locking users out of sites by exhausting a limited number of login attempts has always been a pet peeve of mine (not only because you can sometimes forget which particular password you used; but also because it becomes quite easy to perform a DoS attack against someone's account simply by locking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m out via failed login attempts) that I thought most websites had done away with, not so Sudo Labs it seems. Now, I'm not about to take responsibility for this since it isn't our code base, and we didn't even think that it would be set up this way, but when I was talking to Kyran I found out that (much to our chagrin), he had gotten locked out.

Which got me thinking; why can't we have an over-ride code to allow people to login even when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir account is being attacked. As I see it cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's no reason we can't, we can even re-use existing code to achieve it.

These days when you want to sign up for most sites you get sent an email with an activation code/link which you have to use so that your account is activated, and we know you own cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 account.

Now, if we were to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current lockout system, but give users an option to request a special login code, we would be able to leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 normal functionality working most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time (except for when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's account is being DoS-ed), but when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are being attacked cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y would not be locked out because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can easily just request a login code, and use it to bypass cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lockout. Of course, this cannot be used by email vendors, who are already cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 crux of most of our identification, so its not much of an extra burden.

2 comments:

Anonymous said...

We have been using a similar method on our sites. We lock out accounts after a number of failed login attempts and we lock out accounts if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have been inactive for a certain length of time. However, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "forgot password" functionality (which entails sending a temporary tokenized link to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email account on record) and successfully changes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir password, that will temporarily bypass both lockouts as we can take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 completion of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process as an indicator that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual account owner is requesting access.

This required very little additional coding on our part and no new process to learn on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user has been locked out by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own multiple failures, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y most likely have forgotten cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir password. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 account was disabled due to inactivity, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n even if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user has not forgotten cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password, it is most likely time to change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password anyways.

kuza55 said...

Firstly, just a quick question; who is "we"? Your name doesn't ring any bells so I'm not quite sure what sites you are referring to.

But I'm glad you're doing this already, :)

The reason I recommended using something separate from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 forgot password link is because (when blocks are not done per IP - in which case cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can be somewhat circumvented via proxies anyway) people can be locked out by an attacker simply trying too brute force password - or specifically trying to lock cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user out.

Of course, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user can at this point make a request to change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir password, but it creates extra hassle for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y must cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r remember (or write down) a new password, or go back and change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir password to what it was before.

Admittedly that is only a minor inconvenience, but still one you would probably want to avoid.