Arrows for secure information flow

  • Authors:
  • Peng Li;Steve Zdancewic

  • Affiliations:
  • University of Pennsylvania, Department of Computer and Information Science, 3330 Walnut Street, Philadelphia, PA, 19104-6389, USA;University of Pennsylvania, Department of Computer and Information Science, 3330 Walnut Street, Philadelphia, PA, 19104-6389, USA

  • Venue:
  • Theoretical Computer Science
  • Year:
  • 2010

Quantified Score

Hi-index 5.23

Visualization

Abstract

This paper presents an embedded security sublanguage for enforcing information-flow policies in the standard Haskell programming language. The sublanguage provides useful information-flow control mechanisms including dynamic security lattices, run-time code privileges and declassification all without modifying the base language. This design avoids the redundant work of producing new languages, lowers the threshold for adopting security-typed languages, and also provides great flexibility and modularity for using security-policy frameworks. The embedded security sublanguage is designed using a standard combinator interface called arrows. Computations constructed in the sublanguage have static and explicit control-flow components, making it possible to implement information-flow control using static-analysis techniques at run time, while providing strong security guarantees. This paper presents a formal proof that our embedded sublanguage provides noninterference, a concrete Haskell implementation and an example application demonstrating the proposed techniques.