3 ms·
The threat model is that attacker stole your database backup and is now trying to brutforce passwords in it, by computing all plausible permutations of characte
by DenisM 14y ago
The threat model is that attacker stole your database backup and is now trying to brutforce passwords in it, by computing all plausible permutations of characters, hashing them and seeing if they hit a match. Because attacker is attacking a mass of passwords, he is likely to use a parallel computer, such as a GPU or an ASIC, to decrease the cost of he attack.
The defense against this scenario is to make hashes expensive to compute and hard to parallelise. If an algorithm is using a lot of RAM it's hard to parallelise because a piece of RAM can be used by only one computation at a time, hence this algorithm is hard to attack, but your own server is computing things sequentially as users come online, so a single piece of RAM can be freely reused. This is why low RAM usage is bad.
I did not quite get the idea behind the ROM thing, but I think it means you have a large multi-GB piece of strongly random data, which is used during hash computation either entirely, or piecemeal where pieces are picked pseudorandomly and not predictably. A GPU cannot store multi-GB chunk of data, so it will have to travel externally to fetch required data, which is easy to do for a sequential machine, but creates a huge bottleneck for a GPU, making parallelism hard again.
- Hello71 14y agoI think the example was "botnet" implying exploited consumer-level hardware not likely to have hundreds of gigabytes of free RAM that's not going to be missed.
- StavrosK 14y agoThank you, that's more or less what I understood too, then. It seems to me that not every server can spare the quoted tens of GB of RAM just for authentication, that's why it seemed odd to me.
- DenisM 14y agoIf it costs you $X to add 32Gb of RAM to your machine, it will cost an attacker $X * 1000 to add 32Gb of ram to a GPU - GPUs do not come with 32Gb of RAM today, so it has to be custom hardware. To sum this up, it's one of those ways to make sure that attacker's cost grows much faster than defender's costs, but it's not without cost to the defender.