Live data from Hacker News

Dictionary Attacks 101

codinghorror.com

11–14 of 14 posts

Re: Dictionary Attacks 101

#11
You should also remember to throttle login attempts for accounts that don't exist.

It's important not to create new attack vectors that don't already exist when implementing security features.

If you don't throttle accounts that don't exist then a brute force attempt can be used to determine which logins are valid for a given service. This information can then be combined with targeted phishing attacks, etc.

Re: Dictionary Attacks 101

#12
post #8

How do you implement a failed login delay? I assume you'd have to just sleep before sending the response. But this could tie up all available threads for processing requests and bring down the site under heavy attack.

You refuse to allow login during the delay period. That is, after the 5th failed login, for the next 16 seconds, if the user tries to login, you say "Wait sometime before trying again." You do not accept and check the credentials supplied during this time. You simply refuse to begin the authentication process until the delay period has elapsed.

It's not just tying up threads you want to avoid but any unreasonable resource consumption you can. You maybe for example want to make sure the delay timeout you store for that account (by comparing current time to a "notBefore" timestamp or what not) is not going to cause a DB lookup each time, etc.

Re: Dictionary Attacks 101

#13
post #8

How do you implement a failed login delay? I assume you'd have to just sleep before sending the response. But this could tie up all available threads for processing requests and bring down the site under heavy attack.

You refuse to allow login during the delay period. That is, after the 5th failed login, for the next 16 seconds, if the user tries to login, you say "Wait sometime before trying again." You do not accept and check the credentials supplied during this time. You simply refuse to begin the authentication process until the delay period has elapsed.

And exponential backoff is fine but not when it gets to be too much, it turns into a DoS problem. You could try to key it by IP and never let it go past, say, 2 minutes per source IP.

i.e., if me simply knowing someone's account name lets me disable their account for the next day or longer, that's a big problem.

Re: Dictionary Attacks 101

#14
The Plague: Our recent unknown intruder penetrated using the superuser account, giving him access to our whole system.

Margo: Precisely what you're paid to prevent.

The Plague: Someone didn't bother reading my carefully prepared memo on commonly-used passwords. Now, then, as I so meticulously pointed out, the four most-used passwords are: love, sex, secret, and...

Margo: [glares at The Plague]

The Plague: God. So, would your holiness care to change her password?

Post reply on HN