Non-interference Preserving Optimising Compilation
Julian Rosemann, Sebastian Hack, Deepak Garg
Abstract
To protect security-critical applications, secure compilers have to preserve security policies, such as noninterference, during compilation. The preservation of security policies goes beyond the classical notion of compiler correctness which only enforces the preservation of the semantics of the source program. Therefore, several standard compiler optimisations are prone to break standard security policies like non-interference. Existing approaches to secure compilation are very restrictive with respect to the compiler optimisations that they permit or to the security policies they support because of conceptual limitations in their formal setup.
In this paper, we present hyperproperty simulations, a novel framework to secure compilation that models the preservation of arbitrary 𝑘-hyperproperties during compilation and overcomes several limitations of existing approaches, in particular it is more expressive and more flexible. We demonstrate this by designing and proving a generic non-interference preserving code transformation that can be applied on different optimisations and leakage models. This approach reduces the proof burden per optimisation to a minimum. We instantiate this code transformation on different leakage models with various standard compiler optimisations that could be handled in a very limited and less modular way (if at all) by existing approaches. Our results are formally verified in the Rocq theorem prover.
CCS Concepts: • Security and privacy → Formal methods and theory of security; • Software and its engineering → Compilers; • Theory of computation → Logic and verification.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 099a256a-9e77-4423-a6f2-8789d63a6f60Cited by top-tier papers1
Ask how each one uses itBuilds on9
- Jasmin: High-Assurance and High-Speed CryptographyJosé Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Arthur Blot et al.CCS 2017 · 157 citations
- Formal verification of a constant-time preserving C compilerGilles Barthe, Sandrine Blazy, Benjamin Grégoire, Rémi Hutin et al.POPL 2020 · 77 citations
- Nonmalleable Information Flow ControlEthan Cecchetti, Andrew C. Myers, Owen ArdenCCS 2017 · 49 citations
- When Good Components Go Bad: Formally Secure Compilation Despite Dynamic CompromiseCarmine Abate, Arthur Azevedo de Amorim, Roberto Blanco, Ana Nora Evans et al.CCS 2018 · 43 citations
- Enforcing Fine-grained Constant-time PoliciesBasavesh Ammanaghatta Shivakumar, Gilles Barthe, Benjamin Grégoire, Vincent Laporte et al.CCS 2022 · 11 citations
Related papers
- Reconciling optimization with secure compilationSon Tuan Vu, Albert Cohen, Arnaud de Grandmaison, Christophe Guillon et al.OOPSLA 2021 · 6 citations
- Securing Verified IO Programs Against Unverified Code in FCezar-Constantin Andrici, Stefan Ciobaca, Catalin Hritcu, Guido Martínez et al.POPL 2024 · 5 citations
- Hypertesting of Programs: Theoretical Foundation and Automated Test GenerationMichele Pasqua, Mariano Ceccato, Paolo TonellaICSE 2024 · 1 citation
- SNIP: Speculative Execution and Non-Interference Preservation for Compiler TransformationsSören van der Wall, Roland MeyerPOPL 2025 · 7 citations
- Structured Leakage and Applications to Cryptographic Constant-Time and CostGilles Barthe, Benjamin Grégoire, Vincent Laporte, Swarn PriyaCCS 2021 · 2 citations
