2016 · 188 citations · 40 references
EngineeringUsable SecurityInformation SecurityInformation LeakageVerificationComputer ArchitectureConfidential ComputingIntel SgxMemory Access BehaviorSoftware AnalysisHardware SecurityPage FaultsTrusted Execution EnvironmentSecure ComputingHardware Security SolutionCompilersOperating System SecurityComputer EngineeringData PrivacyComputer ScienceData SecurityCryptographyProgram AnalysisFault AttackSystem SoftwareNew Hardware Primitives
New hardware primitives such as Intel SGX secure a user-level process in presence of an untrusted or compromised OS. Such "enclaved execution" systems are vulnerable to several side-channels, one of which is the page fault channel. In this paper, we show that the page fault side-channel has sufficient channel capacity to extract bits of encryption keys from commodity implementations of cryptographic routines in OpenSSL and Libgcrypt -- leaking 27% on average and up to 100% of the secret bits in many case-studies. To mitigate this, we propose a software-only defense that masks page fault patterns by determinising the program's memory access behavior. We show that such a technique can be built into a compiler, and implement it for a subset of C which is sufficient to handle the cryptographic routines we study. This defense when implemented generically can have significant overhead of up to 4000X, but with help of developer-assisted compiler optimizations, the overhead reduces to at most 29.22% in our case studies. Finally, we discuss scope for hardware-assisted defenses, and show one solution that can reduce overheads to 6.77% with support from hardware changes.
40
Thomas Ristenpart, Eran Tromer, Hovav Shacham et al. · 2009 · 2K citations
Innovative instructions and software model for isolated execution
Frank Mckeen, Ilya Alexandrovich, Alex Berenzon et al. · 2013 · 1.1K citations
Cross-VM side channels and their use to extract private keys
Yinqian Zhang, Ari Juels, Michael K. Reiter et al. · 2012 · 775 citations
Engineering, Information Security, Computer Architecture +19