Abstract
This paper presents a type system which guarantees that well-typed programs in a procedural programming language satisfy a noninterference security property. With all program inputs and outputs classified at various security levels, the property basically states that a program output, classified at some level, can never change as a result of modifying only inputs classified at higher levels. Intuitively, this means the program does not “leak” sensitive data. The property is similar to a notion introduced years ago by Goguen and Meseguer to model security in multi-level computer systems [7]. We also give an algorithm for inferring and simplifying principal types, which document the security requirements of programs.
This material is based upon activities supported by the National Science Foundation under Agreements No. CCR-9400592 and CCR-9414421.
Chapter PDF
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Abadi, M., Secrecy by Typing in Cryptographic Protocols (Draft), unpublished manuscript, DEC Systems Research Center, December 1996.
Andrews, G. and Reitman, R., An Axiomatic Approach to Information Flow in Programs, ACM Trans. on Programming Languages and Systems, 2, 1, pp. 56–76, 1980.
Banâtre, J., Bryce, C., and Le Métayer, D., Compile-time Detection of Information Flow in Sequential Programs, Proc. 3rd ESORICS, LNCS 875, pp. 55–73, 1994.
Bell, D. and LaPadula, L., Secure Computer System: Mathematical Foundations and Model, MITRE Corp. Tech Report M74-244, 1973.
Denning, D., A Lattice Model of Secure Information Flow, Comm of the ACM, 19, 5, pp. 236–242, 1976.
Denning, D. and Denning, P., Certification of Programs for Secure Information Flow, Comm of the ACM, 20, 7, pp. 504–513, 1977.
Goguen, J. and Meseguer, J., Security Policies and Security Models, Proc. 1982 IEEE Symposium on Security and Privacy, pp. 11–20, 1982.
Mizuno, M. and Schmidt, D., A Security Flow Control Algorithm and its Denotational Semantics Correctness Proof, Formal Aspects of Computing, 4:6A, pp. 722–754, 1992.
Necula, G., Proof-Carrying Code, to appear in Proc. 24th Symp. on Principles of Programming Languages, January 1997.
ØrbÆk, P., Can You Trust Your Data?, Proc. 1995 TAPSOFT, LNCS 915, pp. 575–589, 1995.
Palsberg, J. and ØrbÆk, P., Trust in the λ-calculus, Proc. 1995 Static Analysis Symposium, LNCS 983, pp. 314–329, 1995.
Reynolds, J. Preliminary Design of the Programming Language Forsythe, Technical Report CMU-CS-88-159, Carnegie Mellon University, June 1988.
Smith, G., Principal Type Schemes for Functional Programs with Overloading and Subtypmg, Science of Computer Programming, 23, pp. 197–226, 1994.
Smith, G. and Volpano, D., Polymorphic Typing of Variables and References, ACM Trans. on Programming Languages and Systems, 18, 3, pp. 254–267, 1996.
Tiuryn, J., Subtype Inequalities, Proc. 1992 IEEE Symp. on Logic in Computer Science, pp. 308–315, 1992.
Tofte, M., Type Inference for Polymorphic References, Information and Computation, 89, pp. 1–34, 1990.
Volpano, D., Smith, G. and Irvine, C., A Sound Type System for Secure Flow Analysis, J. Computer Security, 4, 3, pp. 1–21, 1996.
Wand, M. and O'Keefe, P., On the Complexity of Type Inference with Coercion, Proc. ACM Conf. on Functional Programming Languages and Computer Architecture, pp. 293–298, 1989.
Wright, A., Simple Imperative Polymorphism, Journal of Lisp and Symbolic Computing, 8, 4, pp. 343–356, 1995.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Volpano, D., Smith, G. (1997). A type-based approach to program security. In: Bidoit, M., Dauchet, M. (eds) TAPSOFT '97: Theory and Practice of Software Development. CAAP 1997. Lecture Notes in Computer Science, vol 1214. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0030629
Download citation
DOI: https://doi.org/10.1007/BFb0030629
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62781-4
Online ISBN: 978-3-540-68517-3
eBook Packages: Springer Book Archive