3 ms·
The only problem with that is that it's ripe for timing attacks. I _hope_ they always check all three passwords anyway.
by lucian1900 14y ago
The only problem with that is that it's ripe for timing attacks. I _hope_ they always check all three passwords anyway.
- daeken 14y agoExposing the timing here can only tell you one thing: the password that you're trying works for Facebook, but the capitalization might be wrong if you're using it to get into the user's account on another site. But since there are only three variants on the password, it gives you effectively nothing. This would be insanely difficult to pull off (many, many login samples) for absolutely no payoff; they might as well save the extra hashes if it works the first time.
- al_james 14y agoHi, interested in the above comment. Can you explain how a timing attack would work here?
- lucian1900 14y agoAn interesting demo: [1] By not doing all 3 hashes, an attacker might realise that the password they sent passed, say, 2 checks, but not the third. This discloses information about the relationship between the password the attacker just tried and the correct password. [1] http://carlos.bueno.org/2011/10/timing.html http://carlos.bueno.org/2011/10/timing.html
- furyofantares 14y agoI'm not sure how this is applicable here, if the attacker passes any of the tests then they are able to log in
- lucian1900 14y agoIndeed, stupid logic on my part.
- nooooooo 14y agoAnd that relationship is useful how?
- al_james 14y agoI see the problem in theory, but in reality, the time of a couple of hash functions compared to network latency and application server routing would be quite small. Can timing attacks actually work in such situations?
- JonnieCache 14y agoCan you do a timing attack against something as fast as a case conversion and a hash function, even if it has a work factor? Normally they're done against database requests aren't they?
- carbocation 14y ago"Remote Timing Attacks are Practical" https://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf https://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf
- JonnieCache 14y agoI know you can do timing attacks through the network, it's not even that hard in the simple case. 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.
- carbocation 14y agoRight; I guess my thought is that since a hash with a modest work function can also take many milliseconds, this would be meaningful. Not sure in practice, however.
- tptacek 14y agoYou can't do a timing attack against a password hashed serverside, since you don't control the string being compared enough to make iterated byte-at-a-time changes. 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.9811 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=A0T8o-Aq3yY http://www.youtube.com/watch?v=A0T8o-Aq3yY