  Recent attacks have broken process isolation by exploiting microarchitectural
side channels that allow indirect access to shared microarchitectural state.
Enclaves strengthen the process abstraction to restore isolation guarantees.
  We propose MI6, an aggressive, speculative out-of-order processor capable of
providing secure enclaves under a threat model that includes an untrusted OS
and an attacker capable of mounting any software attack currently considered
practical, including control flow speculation attacks. MI6 is inspired by
Sanctum [16] and extends its isolation guarantee to more realistic memory
hierarchies. It also introduces a purge instruction, which is used only when a
secure process is scheduled, and implements it for a complex processor
microarchitecture. We model the performance impact of enclaves in MI6 through
FPGA emulation on AWS F1 FPGAs by running SPEC CINT2006 benchmarks on top of an
untrusted Linux OS. Security comes at the cost of approximately 16.4% average
slowdown for protected programs.
