Departmental Papers (CIS)

Date of this Version

November 2007

Document Type

Journal Article


Postprint version. Published in ACM Transactions on Programming Languages and Systems, Volume 30, Issue 1, November 2007, 44 pages.
Publisher URL:


Information-flow type systems are a promising approach for enforcing strong end-to-end confidentiality and integrity policies. Such policies, however, are usually specified in terms of static information — data is labeled high or low security at compile time. In practice, the confidentiality of data may depend on information available only while the system is running.

This paper studies language support for run-time principals, a mechanism for specifying security policies that depend on which principals interact with the system. We establish the basic property of noninterference for programs written in such language, and use run-time principals for specifying run-time authority in downgrading mechanisms such as declassification.

In addition to allowing more expressive security policies, run-time principals enable the integration of language-based security mechanisms with other existing approaches such as Java stack inspection and public key infrastructures. We sketch an implementation of run-time principals via public keys such that principal delegation is verified by certificate chains.


decentralized label model, dynamic principals, information-flow, noninterference, run-time principals, security-typed, soundness, type systems



Date Posted: 15 January 2008

This document has been peer reviewed.