Secure information flow in a multi-threaded imperative language

315Citations
Citations of this article
38Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Previously, we developed a type system to ensure secure information flow in a sequential, imperative programming language [VSI96]. Program variables are classified as either high or low security; intuitively, we wish to prevent information from flowing from high variables to low variables. Here, we extend the analysis to deal with a multi-threaded language. We show that the previous type system is insufficient to ensure a desirable security property called noninterference. Noninterference basically means that the final values of low variables are independent of the initial values of high variables. By modifying the sequential type system, we are able to guarantee noninterference for concurrent programs. Crucial to this result, however, is the use of purely nondeterministic thread scheduling. Since implementing such scheduling is problematic, we also show how a more restrictive type system can guarantee noninterference, given a more deterministic (and easily implementable) scheduling policy, such as round-robin time slicing. Finally, we consider the consequences of adding a clock to the language.

Cite

CITATION STYLE

APA

Smith, G., & Volpano, D. (1998). Secure information flow in a multi-threaded imperative language. In Conference Record of the Annual ACM Symposium on Principles of Programming Languages (pp. 355–364). ACM. https://doi.org/10.1145/268946.268975

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free