http://www.zdnet.com/blog/facebook/facebook-passwords-are-no...
Yes, it's possibly less secure. But for both Facebook and all of the Blizzard games there are other options if you are concerned.
http://www.zdnet.com/blog/facebook/facebook-passwords-are-no...
Yes, it's possibly less secure. But for both Facebook and all of the Blizzard games there are other options if you are concerned.
If your password is aBc, you can log in to Facebook using aBc (original), AbC (windows caps lock), and ABc (first cap) only. For a regular password, this is just slightly less secure.
Being case insensitive entirely is quite a bit less secure (abc, abC, aBc, aBC, Abc, AbC, ABc, ABC).
When you log in to Facebook, they hash the password you gave them and try that. If it fails, they modify the password you gave them, reversing the case on all letters (and possibly convert numbers to special characters, or vice versa - I don't know if they go that far), and hash that.
Remember that when you log in, the server is receiving your password in plain text. Facebook is just "massaging" that data a bit (possibly several times) to try to correct a user error, rather than just bailing at the first sign of trouble.
That paper, like most papers on timing attacks, was done on the local network, not the internet. They're relying on absurdly precise measurements of absolutely tiny differences in timing, which would be lost in the jitter and latency of the real internet.
As I said, you can certainly do internet timing attacks where you're looking for database access, because this can take many milliseconds, which is a delay which can be detected even on a crappy internet link using a bit of light statistics.
Even if I'm misunderstanding, though, this particular remote timing attack is probably not practical in most programming environments; (for instance) straight C memcmp is below the measurement floor, even with signal processing.
That is a great paper; also, check out Crosby and Wallach for the modernized, math-ier take; with signal processing, the measurement limits are nanoseconds on a switched LAN (ie, if you could get a box deployed in the same hosting center as Blizzard) and tens of milliseconds over the Internet:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.65.9...
... and Nate Lawson's Black Hat talk which actually goes through the practical issues trying to set up and run these attacks against real systems:
http://www.youtube.com/watch?v=ykNt8pSQFZQ
It's very modern, as you describe, with all the fancy maths and all that.
sha1sum(lcase($passwd). $salt);
I think the point stands for the Blizzard case - there seems to be an assumption in some corners that the password is stored plain text, but I would imagine case neutralised (so to speak) passwords are hashed.
Facebook massages the data to allow you to login even if you have caps lock on, so "pASSWORD" works when your password is "Password", or if, e.g., your phone capitalizes the first character in your password, so "Password" works when your password is "password".
1) lowercase inputted password. 2) hash password 3) compare hash to db hash (which was from a lowercased initial password).
1. If the last letter in the string is uppercase, flip the case of the entire string.
2. Make the first character lowercase.
This would allow for abC as well (if you "capitalized" the first letter while holding down capslock).
Then again, it would be pretty difficult to brute force a password in Battle.net, to be honest. I'm assuming they'd lock out the account after just a handful of tries.
Correct. ~5 failed attempts forces you to use your authenticator code, and if you don't have one, you need to use their reset form and a captcha.
A very reduced keyspace, but we all knew people's password choices are poor anyway right?