lio: Labeled IO Information Flow Control Library

[ library, mit, security ] [ Propose Tags ]

The Labeled IO (LIO) library is an information flow control (IFC) library. IFC is a mechanism that enforces security policies by tracking and controlling the flow of information within a system. Unlike discretionary access control (such as UNIX file permissions), IFC permits scenarios in which untrusted computation may have the ability to manipulate secret data without having the ability to further disclose that data.

LIO is an IFC library that can be used to implement such untrusted computations. LIO provides combinators similar to those of IO for performing side-effecting computations (e.g., modifying mutable references, forking threads, throwing and catching exceptions, etc.) To track and control the flow of information, LIO associates a security policy, called a label, with every piece of data. A label may, for example, impose a restriction on who can observe, propagate, or modify the data to which it applies. Unlike standard IO operations, the LIO counterparts check the vailidity of labels before performing the (underlying IO) side-effecting computation. For example, before writing to a labeled variable, LIO asserts that the write will not violate any security policies associated with the data to be written.

Most code should import module LIO and whichever label format the application is using (e.g., LIO.DCLabel to use the format that ships with the library). Side-effecting code should be specified as actions in the LIO monad. See LIO.Core for a description of the core library API, LIO.Label for a discussion of labels, and LIO.Run for functions allowing one to run an LIO computation from the IO monad.

WARNING: For security, untrusted code must always be compiled with the -XSafe and -fpackage-trust SafeHaskell flags. See http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html for more details on the guarantees provided by SafeHaskell.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.1, 0.0.2, 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.9.0.0, 0.9.0.1, 0.9.1.0, 0.9.1.1, 0.9.1.2, 0.9.2.0, 0.9.2.2, 0.10.0.0, 0.11.0.0, 0.11.0.1, 0.11.2.0, 0.11.3.0, 0.11.4.0, 0.11.4.1, 0.11.4.2, 0.11.5.0, 0.11.6.0, 0.11.7.0, 0.11.7.1
Dependencies base (>=4.5 && <5.0), bytestring, containers, hashable (>=1.2) [details]
License LicenseRef-GPL
Author Hails team
Maintainer Hails team <hails at scs dot stanford dot edu>
Category Security
Source repo head: git clone git://github.com/scslab/lio.git
Uploaded by DeianStefan at 2014-02-24T06:01:20Z
Distributions NixOS:0.11.7.1
Reverse Dependencies 4 direct, 0 indirect [details]
Downloads 17757 total (46 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]