3 ms·
> Very little code is written to have no data dependent branches, or instructions with data dependent timings Ooh I have some idea on how to use data dependent
by omegalulw 5y ago
> Very little code is written to have no data dependent branches, or instructions with data dependent timings
Ooh I have some idea on how to use data dependent branches in your own code to leak critical information through side channels (Spectre) but how do you leak information from others' data dependent branches and instructions?
- londons_explore 5y agoImagine code you want to attack has an array lookup based on some secret data: x = array[secretdata]. The entry in the array will be loaded into the cpu core via the L3 cache. If the L3 cache is already full, then one entry will have to be evicted from the cache. The evicted entry will depend on the memory address that is being accessed. Another CPU, running an attackers code, can repeatedly try to load stuff from L3, and detect what was evicted and when to learn the secretdata.