Causes of software observable SCs?
Finite total amount (memory, cache size, etc) and finite throughput (number of cache accesses, memory channels, etc)
How to get Software Observable SC onto target system?
what are Memoization-Based Optimizations?
Improve performance based on temporal locality (what recently happened is likely to happen again). Usually table stores the results of a time-consuming operation
Types of Memoization-Based Optimizations?
Non-speculative (tagged lookup, i.e. cache) => miss takes longer than a hit
Speculative (i.e. branch prediction) => each entry contains info about params and outcome => misprediction is expensive and causes a penalty
general approach to Memoization-Based attack
Premise: parameters of victim’s operation contain sensitive information => sensitive information determines which table entry is used
how does cache set associativity make a SC harder or easier?
Less entries in a set ==> more information is leaked
how to prevent cache side channels?
how to measure side channels