Microarchitectural Attacks and Countermeasures (Onur Aciicmez )
- Microarchitecture technology problem: due to strictly throughput, performance, and “performance per watt”-oriented goals of modern processor designs and also “time-to-market”-
driven business philosophy, the resulting products, i.e., commodity processor architectures in the market, lack a thorough security analysis. - Today’s high-end computer architectures employ several different components each of which is responsible for a specific task mostly to increase the performance of the system, such as:
- Data cache
- Branch prediction unit
- Instruction cache
- Functional units (multiplier)
- Side-channel analysis can be defined as the study of the relations between the strength of cryptosystems and data-dependent variations in the so-called side channel information, e.g., execution time and power consumption, generated during the execution of their physical implementations.
- The spy process-oriented MA attacks, except SFU analysis, rely on the fact that the execution of cryptosystems leaves persistent changes in the state of shared resources like cache and branch target buffer. In other words, the cipher execution leaves “footprints” on the observable state, i.e., the so-called metadata of these resources and an unprivileged spy process can keep track of these footprints if it runs on the same processor in parallel with the cipher.
- SFU analysis does not take advantage of persistent states. It follows a quite different approach and tries to detect when a certain functional unit is occupied by the cipher.
- Cache attacks:
- trace-driven cache attacks : the adversary obtains the traces of cache activity for a sample of encryptions. A trace is as a sequence of cache hits and misses
- time-driven cache attacks : the adversary observes the aggregate profile, i.e., total number of cache hits and misses or at least a value that can be used to approximate these numbers(total execution time )
- access-driven cache attacks: the adversary determines the cache sets that the cipher process modifies.