English

Mechanized Noninterference for Gradual Security

Programming Languages 2022-11-30 v1

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, λSEC\lambda_{\mathtt{SEC}}^\star, 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 λSEC\lambda_{\mathtt{SEC}}^\star 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.

Keywords

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

R2 v1 2026-06-28T07:15:44.426Z