Dependent types for enforcement of information flow and erasure policies in heterogeneous data structures

  • Authors:
  • Gordon Stewart;Anindya Banerjee;Aleksandar Nanevski

  • Affiliations:
  • Princeton University;IMDEA Software Institute;IMDEA Software Institute

  • Venue:
  • Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

We consider verification of information flow and erasure properties in programs with heterogeneous heap-based data structures, in the presence of procedures with local state. A heterogeneous data structure, such as a hash table implementing a medical record database, may store both secret and public data simultaneously. In contrast, extant work primarily focuses on homogeneous data structures which store data of a uniform security level. Heterogeneity, however, does not come for free. For example, standard implementations of hash tables do not support heterogeneity, and may leak sensitive information easily owing to hash collisions. In this paper we identify unique representation as a sufficient condition for a heterogeneous data structure to be leak-free, while simultaneously supporting abstraction and modularity in verification. As a case study, we implement and verify a novel uniquely-represented variant of heterogeneous hash tables. Furthermore, we demonstrate modular reasoning by showing how specifications of the hash table methods can be used in a client application; we thereby obtain abstract and concise formal proofs of erasure. We formalize our work in Relational Hoare Type Theory (RHTT), an expressive, higher-order imperative language and program logic embedded in the Coq proof assistant.