Back to Search Start Over

A Monadic Framework for Relational Verification

Authors :
Grimm , Niklas
Maillard , Kenji
Fournet , Cédric
Hriţcu , Cătălin
Maffei , Matteo
Protzenko , Jonathan
Ramananandro , Tahina
Rastogi , Aseem
Swamy , Nikhil
Zanella‐Béguelin , Santiago
Vienna University of Technology (TU Wien)
École normale supérieure - Paris (ENS Paris)
Université Paris sciences et lettres (PSL)
Programming securely with cryptography (PROSECCO )
Inria de Paris
Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)
Microsoft Research [Cambridge] (Microsoft)
Microsoft Research
European Project: 715753,H2020,SECOMP(2017)
École normale supérieure - Paris (ENS-PSL)
Programming securely with cryptography (PROSECCO)
Technische Universität Wien ( TU Wien )
École normale supérieure - Paris ( ENS Paris )
Programming securely with cryptography ( PROSECCO )
Inria Paris-Rocquencourt
Institut National de Recherche en Informatique et en Automatique ( Inria ) -Institut National de Recherche en Informatique et en Automatique ( Inria )
Microsoft Research [Cambridge] ( Microsoft )
European Project : 715753,H2020,SECOMP ( 2017 )
Source :
7th ACM SIGPLAN International Conference on Certified Programs and Proofs (CPP), 7th ACM SIGPLAN International Conference on Certified Programs and Proofs (CPP), Jan 2018, Los Angeles, United States. pp.130--145, ⟨10.1145/3167090⟩, 7th ACM SIGPLAN International Conference on Certified Programs and Proofs (CPP), Jan 2018, Los Angeles, United States. ACM, pp.130--145, 2018, 〈10.1145/3167090〉
Publication Year :
2018
Publisher :
HAL CCSD, 2018.

Abstract

International audience; Relational properties describe multiple runs of one or more programs. They characterize many useful notions of security, program refinement, and equivalence for programs with diverse computational effects, and they have received much attention in the recent literature. Rather than developing separate tools for special classes of effects and relational properties, we advocate using a general purpose proof assistant as a unifying framework for the relational verification of effectful programs. The essence of our approach is to model effectful computations using monads and to prove relational properties on their monadic representations, making the most of existing support for reasoning about pure programs.We apply this method in F* and evaluate it by encoding a variety of relational program analyses, including information flow control, program equivalence and refinement at higher order, correctness of program optimizations and game-based cryptographic security. By relying on SMT-based automation, unary weakest preconditions, user-defined effects, and monadic reification, we show that, compared to unary properties, verifying relational properties requires little additional effort from the F* programmer.

Details

Language :
English
Database :
OpenAIRE
Journal :
7th ACM SIGPLAN International Conference on Certified Programs and Proofs (CPP), 7th ACM SIGPLAN International Conference on Certified Programs and Proofs (CPP), Jan 2018, Los Angeles, United States. pp.130--145, ⟨10.1145/3167090⟩, 7th ACM SIGPLAN International Conference on Certified Programs and Proofs (CPP), Jan 2018, Los Angeles, United States. ACM, pp.130--145, 2018, 〈10.1145/3167090〉
Accession number :
edsair.dedup.wf.001..e420d2678d5c75ce9476e627f87f2d1d