Mechanized Noninterference for Gradual Security
Abstract
This paper presents the first machine-checked proof of noninterference for a language with gradual information-flow control, thereby establishing a rock solid foundation for secure programming languages that give programmers the choice between runtime versus compile-time enforcement. Along the way we uncovered a flaw in one of the noninterference proofs in the literature, and give a counterexample for one of the main lemmas. The particular language studied in this paper, , is based on the GLIO language of Azevedo de Amorim et al. [2020]. To make the design more accessible to other researchers, this paper contributes the first traditional semantics for the language, that is, we define compilation from to a cast calculus and design a reduction semantics for the latter that includes blame tracking. In addition to the proof of noninterference, we also mechanize proofs of type safety, determinism, and that compilation preserves types.
Cite
@article{arxiv.2211.15745,
title = {Mechanized Noninterference for Gradual Security},
author = {Tianyu Chen and Jeremy G. Siek},
journal= {arXiv preprint arXiv:2211.15745},
year = {2022}
}
Comments
32 pages, 18 figures