|
|
|
|
|
by revelation
3084 days ago
|
|
This is from Google Zero on Meltdown: We believe that this precondition is that the targeted kernel memory is present in the L1D cache. Not only is L1D tiny, but stuff like prefetch doesn't touch it. So how exactly do you force any memory into L1D cache unless, like in all the examples we have seen, the victim program is pretty much accessing it in a busy loop? |
|
Here's the example from the paper.
The receiving code then trys to access each of these 256 memory locations and measure the time taken. For one of them the value will be much lower since that memory is cached and thus that location is the value read. So if you read the value 84 on line 4 when you access the value at 344064dec(0x54000)in your memory it will be faster and you can deduce the read value was 84.So in pseudo code the attack is
There's an extra detail here about recovering from the illegal memory access in a quick way that I've skipped.To answer the parents question I believe this only uses a single cache line(64 bits) since it only accesses a single value.
This is my understanding anyway, happy to be corrected