SNIP: Speculative Execution and Non-Interference Preservation for Compiler Transformations
This program is tentative and subject to change.
We address the problem of preserving non-interference across compiler transformations under speculative semantics. We develop a proof method that ensures the preservation uni- formly across all source programs. The basis of our proof method is a new form of simulation relation. It operates over directives that model the attacker’s control over the micro-architectural state, and it accounts for the fact that the compiler transforma- tion may change the influence of the micro-architectural state on the execution (and hence the di- rectives). Using our proof method, we show the correctness of dead code elimination. When we tried to prove register allocation correct, we identified a previously unknown weak- ness that introduces violations to non-interference. We have confirmed the weakness for a mainstream compiler on code from the libsodium cryptographic library. To reclaim security once more, we develop a novel static analysis that operates on a product of source program and register-allocated pro- gram. Using the analysis, we present an automated fix to existing register allocation implementations. We prove the correctness of the fixed register allocations with our proof method.
This program is tentative and subject to change.
Mon 20 JanDisplayed time zone: Mountain Time (US & Canada) change
16:00 - 17:30 | |||
16:00 24mTalk | BeePL: Correct-by-compilation kernel extensions PriSC Swarn Priya Virginia Tech, Tim Steenvoorden Open Universiteit, Connor Sughrue Virginia Tech, Frédéric Besson Inria, Rennes, Freek Verbeek Open Universiteit & Virginia Tech | ||
16:25 24mTalk | Non-Interference Preserving and Optimising Compilation with Hyperproperty Simulations PriSC Julian Rosemann Saarland University, Saarland Informatics Campus, Sebastian Hack Saarland University, Saarland Informatics Campus, Deepak Garg MPI-SWS | ||
16:50 24mTalk | SNIP: Speculative Execution and Non-Interference Preservation for Compiler Transformations PriSC | ||
17:15 15mDay closing | Closing Remarks PriSC |