Hostname: page-component-7b7567c8c-kwt9d Total loading time: 0 Render date: 2026-11-13T18:26:02.673Z Has data issue: false hasContentIssue false

Flexible dynamic information flow control in the presence of exceptions*

Published online by Cambridge University Press:  12 January 2017

DEIAN STEFAN
Affiliation:
UC San Diego, La Jolla, CA, USA (e-mail: deian@cs.ucsd.edu)
DAVID MAZIÈRES
Affiliation:
Stanford University, Stanford, CA, USA (e-mail: mitchell@cs.stanford.edu)
JOHN C. MITCHELL
Affiliation:
Stanford University, Stanford, CA, USA (e-mail: mitchell@cs.stanford.edu)
ALEJANDRO RUSSO
Affiliation:
Chalmers University of Technology, Gothenburg, Sweden (e-mail: russo@chalmers.se)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

We describe a language-based, dynamic information flow control (IFC) system called LIO. Our system presents a new design point for IFC, influenced by the challenge of implementing IFC as a Haskell library, as opposed to the more typical approach of modifying the language runtime system. In particular, we take a coarse-grained, floating-label approach, previously used by IFC Operating Systems, and associate a single, mutable label—the current label—with all the data in a computation's context. This label is always raised to reflect the reading of sensitive information and it is used to restrict the underlying computation's effects. To preserve the flexibility of fine-grained systems, LIO also provides programmers with a means for associating an explicit label with a piece of data. Interestingly, these labeled values can be used to encapsulate the results of sensitive computations which would otherwise lead to the creeping of the current label. Unlike other language-based systems, LIO also bounds the current label with a current clearance, providing a form of discretionary access control that LIO programs can use to deal with covert channels. Moreover, LIO provides programmers with mutable references and exceptions. The latter, exceptions, are used in LIO to encode and recover from monitor failures, all while preserving data confidentiality and integrity—this addresses a longstanding concern that dynamic IFC is inherently prone to information leakage due to monitor failure.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2017 
Submit a response

Discussions

No Discussions have been published for this article.