Functional pearl: Two can keep a secret, if one of them uses Haskell
Journal article, 2015

For several decades, researchers from different communities have independently focused on protecting confidentiality of data. Two distinct technologies have emerged for such purposes: Mandatory Access Control (MAC) and Information-Flow Control (IFC)—the former belonging to operating systems (OS) research, while the latter to the programming languages community. These approaches restrict how data gets propagated within a system in order to avoid information leaks. In this scenario, Haskell plays a unique privileged role: it is able to protect confidentiality via libraries. This pearl presents a monadic API which statically protects confidentiality even in the presence of advanced features like exceptions, concurrency, and mutable data structures. Additionally, we present a mechanism to safely extend the library with new primitives, where library designers only need to indicate the read and write effects of new operations.

security

library

information-flow control

mandatory access control

Author

Alejandro Russo

Chalmers, Computer Science and Engineering (Chalmers), Software Technology (Chalmers)

ACM SIGPLAN Notices

1523-2867 (ISSN)

Vol. 50 9 280-288

Areas of Advance

Information and Communication Technology

Subject Categories

Software Engineering

Electrical Engineering, Electronic Engineering, Information Engineering

Computer Science

Computer Systems

DOI

10.1145/2784731.2784756

More information

Latest update

8/7/2023 1