Abstract
In this paper we revisit the connection between parametricity and noninterference. Our primary contribution is a proof of noninterference for a polyvariant variation of the Dependency Core Calculus of in the Calculus of Constructions. The proof is modular: it leverages parametricity for the Calculus of Constructions and the encoding of data abstraction using existential types. This perspective gives rise to simple and understandable proofs of noninterference from parametricity. All our contributions have been mechanised in the Agda proof assistant.
Supplemental Material
- Martín Abadi, Anindya Banerjee, Nevin Heintze, and Jon G Riecke. 1999. A core calculus of dependency. In Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. ACM, 147–160. Google ScholarDigital Library
- Alejandro Aguirre, Gilles Barthe, Marco Gaboardi, Deepak Garg, and Pierre-Yves Strub. 2017. A relational logic for higher-order programs. Proceedings of the ACM on Programming Languages 1, ICFP (2017), 21. Google ScholarDigital Library
- Maximilian Algehed. 2018. A Perspective on the Dependency Core Calculus. In Proceedings of the 13th Workshop on Programming Languages and Analysis for Security (PLAS ’18). ACM, New York, NY, USA, 24–28. Google ScholarDigital Library
- Maximilian Algehed and Alejandro Russo. 2017. Encoding DCC in Haskell. In Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security. ACM, 77–89. Google ScholarDigital Library
- Henk Barendregt, Wil Dekkers, and Richard Statman. 2013. Lambda calculus with types. Cambridge University Press. Google ScholarDigital Library
- Jean-philippe Bernardy, Patrik Jansson, and Ross Paterson. 2012. Proofs for free: Parametricity for dependent types. Journal of Functional Programming 22, 2 (2012), 107–152. Google ScholarDigital Library
- Yves Bertot and Pierre Castéran. 2013. Interactive theorem proving and program development: Coq’Art: the calculus of inductive constructions. Springer Science & Business Media. Google Scholar
- William J Bowman and Amal Ahmed. 2015. Noninterference for free. ACM SIGPLAN Notices 50, 9 (2015), 101–113. Google ScholarDigital Library
- Pablo Buiras, Dimitrios Vytiniotis, and Alejandro Russo. 2015. HLIO: Mixing static and dynamic typing for information-flow control in Haskell. In ACM SIGPLAN Notices, Vol. 50. ACM, 289–301. Google ScholarDigital Library
- Luca Cardelli and Peter Wegner. 1985. On understanding types, data abstraction, and polymorphism. ACM Computing Surveys (CSUR) 17, 4 (1985), 471–523. Google ScholarDigital Library
- Thierry Coquand and Gérard Huet. 1988. The calculus of constructions. Information and computation 76, 2-3 (1988), 95–120. Google ScholarDigital Library
- Eugenio Moggi. 1991. Notions of computation and monads. Information and computation 93, 1 (1991), 55–92. Google ScholarDigital Library
- Ulf Norell. 2007. Towards a practical programming language based on dependent type theory. Ph.D. Dissertation. Department of Computer Science and Engineering, Chalmers University of Technology, SE-412 96 Göteborg, Sweden.Google Scholar
- John C Reynolds. 1983. Types, abstraction and parametric polymorphism. (1983).Google Scholar
- Alejandro Russo. 2015. Functional pearl: Two can keep a secret, if one of them uses Haskell. In ACM SIGPLAN Notices, Vol. 50. ACM, 280–288. Google ScholarDigital Library
- Alejandro Russo, Koen Claessen, and John Hughes. 2008. A library for light-weight information-flow security in Haskell. In ACM Sigplan Notices, Vol. 44. ACM, 13–24. Google ScholarDigital Library
- Naokata Shikuma and Atsushi Igarashi. 2008. Proving Noninterference by a Fully Complete Translation to the Simply Typed lambda-calculus. CoRR abs/0808.3307 (2008). arXiv: 0808.3307 http://arxiv.org/abs/0808.3307 Google ScholarDigital Library
- Deian Stefan, Alejandro Russo, John C Mitchell, and David Mazières. 2011. Flexible dynamic information flow control in Haskell. In ACM Sigplan Notices, Vol. 46. ACM, 95–106. Google ScholarDigital Library
- Stephen Tse and Steve Zdancewic. 2004. Translating dependency into parametricity. In ACM SIGPLAN Notices, Vol. 39. ACM, 115–125. Google ScholarDigital Library
- Marco Vassena and Alejandro Russo. 2016. On formalizing information-flow control libraries. In Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security. ACM, 15–28. Google ScholarDigital Library
- Marco Vassena, Alejandro Russo, Pablo Buiras, and Lucas Waye. 2018. MAC A verified static information-flow control library. Journal of Logical and Algebraic Methods in Programming 95 (2018), 148 – 180.Google ScholarCross Ref
- Philip Wadler. 1989. Theorems for free!. In Proceedings of the fourth international conference on Functional programming languages and computer architecture. ACM, 347–359. Google ScholarDigital Library
Index Terms
- Simple noninterference from parametricity
Recommendations
Translating dependency into parametricity
ICFP '04: Proceedings of the ninth ACM SIGPLAN international conference on Functional programmingAbadi et al. introduced the dependency core calculus (DCC) as a unifying framework to study many important program analyses such as binding time, information flow, slicing, and function call tracking. DCC uses a lattice of monads and a nonstandard ...
Translating dependency into parametricity
ICFP '04Abadi et al. introduced the dependency core calculus (DCC) as a unifying framework to study many important program analyses such as binding time, information flow, slicing, and function call tracking. DCC uses a lattice of monads and a nonstandard ...
Noninterference for free
ICFP 2015: Proceedings of the 20th ACM SIGPLAN International Conference on Functional ProgrammingThe dependency core calculus (DCC) is a framework for studying a variety of dependency analyses (e.g., secure information flow). The key property provided by DCC is noninterference, which guarantees that a low-level observer (attacker) cannot ...
Comments