Verifying Linearizability of Intel® Software Guard Extensions [chapter]

Rebekah Leslie-Hurd, Dror Caspi, Matthew Fernandez
2015 Lecture Notes in Computer Science  
Intel R Software Guard Extensions (SGX) is a collection of CPU instructions that enable an application to create secure containers that are inaccessible to untrusted entities, including the operating system and other low-level software. Establishing that the design of these instructions provides security is critical to the success of the feature, however, SGX introduces complex concurrent interactions between the instructions and the shared hardware state used to enforce security, rendering
more » ... itional approaches to validation insufficient. In this paper, we introduce Accordion, a domain specific language and compiler for automatically verifying linearizability via model checking. The compiler determines an appropriate linearization point for each instruction, computes the required linearizability assertions, and supports experimentation with a variety of model configurations across multiple model checking tools. We show that this approach to verifying linearizability works well for validating SGX and that the compiler provides improved usability over encoding the problem in a model checker directly.
doi:10.1007/978-3-319-21668-3_9 fatcat:4z4rvqndrbfubchzxiup65vnny