skip to main content
10.1145/325694.325728acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

A type system for expressive security policies

Published:05 January 2000Publication History

ABSTRACT

Certified code is a general mechanism for enforcing security properties. In this paradigm, untrusted mobile code carries annotations that allow a host to verify its trustworthiness. Before running the agent, the host checks the annotations and proves that they imply the host's security policy. Despite the flexibility of this scheme, so far, compilers that generate certified code have focused on simple type safety properties rather than more general security properties.

Security automata can specify an expressive collection of security policies including access control and resource bounds. In this paper, we describe how to instrument well-typed programs with security checks and typing annotations. The resulting programs obey the policies specified by security automata and can be mechanically checked for safety. This work provides a foundation for the process of automatically generating certified code for expressive security policies.

References

  1. 1.Karl Crary, Stephanie Weirich, and Greg Morrisett. Intensional polymorphism in type-erasure semantics. In A CM International Conference on Functional Programming, p~ges 301-312, Baltimore, September 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.David Evans and Andrew Twyman. Flexible policydirected code safety. In IEEE Security and Privacy, Oakland, May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.Stephen Fickas and Martin Feather. Requirements monitoring in dynamic environments. In 2nd IEEE International Symposium on Requirements Engineering, March 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.Patrice Godefroid. Model checking for programming languages using VeriSoft. In Twenty-Fourth A CM Symposium on Principles of Programming Languages, pages 174-186, Paris, January 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.Robert Harper and Mark Lillibridge. A type-theoretic approach to higher-order modules with sharing. In Twenty-First A CM Symposium on Principles of Programming Languages, pages 188-201, Portland, Oregon, January 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.Robert Harper and Greg Morrisett. Compiling polymorphism using intensional type analysis. In Twenty- Second A CM Symposium on Principles of Programming Languages, pages 130-141, San Francisco, January 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.John E. Hopcroft and Jeffrey D. Ullman. Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.Dexter Kozen. Efficient code certification. Technical Report TR98-1661, Cornell University, January 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Christopher League, Zhong Shao, and Valery Trifonov. Representing java classes in a typed intermediate language. In A CM International Conference on Functional Programming, pages 183-196, Paris, January 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Xavier Leroy. Manifest types, modules, and separate compilation. In Twenty-First A CM Symposium on Principles of Programming Languages, pages 109- 122, Portland, OR, January 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Xavier Leroy and Francois Rouaix. Security properties of typed applets. In Twenty-Fifth A CM Symposium on Principles of Programming Languages, pages 391-403, San Diego, January 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.Y. Minamide, G. Morrisett, and R. Harper. Typed closure conversion. In Twenty-Third A CM Symposium on Principles of Programming Languages, pages 271-283, St. Petersburg, January 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.John C. Mitchell and Gordon D. Plotkin. Abstract types have existential type. A CM ~ansactions on Progamming Languages and Systems, 10(3):470-502, July 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.Creg Morrisett, Karl Crary, Neal Clew, Dan Crossman, Richard Samuels, Frederick Smith, David Walker, Stephanie Weirich, and Steve Zdancewic. TALx86: A realistic typed assembly language. In A CM SIGPLAN Workshop on Compiler Support for System Software, pages 25-35, Atlanta, GA, May 1999.Google ScholarGoogle Scholar
  16. 16.Greg Morrisett, Matthias Felleisen, and Robert Harper. Abstract models of memory management. In A CM Conference on Functional Programming and Computer Architecture, pages 66-77, La Jolla, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.Greg Morrisett, David Walker, Karl Crary, and Neal Glew. From System F to Typed Assembly Language. In Twenty-Fifth A CM Symposium on Principles of Programming Languages, pages 85-97, San Diego, January 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.Greg Morrisett, David Walker, Karl Crary, and Neal Glew. From System F to Typed Assembly Language. A CM Transactions on Progamming Languages and Systems, 21(3):528-569, May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.George Necula. Proof-carrying code. In Twenty-Fourth A CM Symposium on Principles of Programming Languages, pages 106-119, Paris, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.Ceorge Necula and Peter Lee. Safe kernel extensions without run-time checking. In Proceedings of Operating System Design and Implementation, pages 229-243, Seattle, October 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.George Necula and Peter Lee. The design and implementation of a certifying compiler. In A CM Conference on Programming Language Design and Implementation, pages 333 - 344, Montreal, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.George C. Necula and Peter Lee. Safe, untrusted agents using proof-carrying code. LNCS 1419: Special Issue on Mobile Agent Security, October 1997.Google ScholarGoogle Scholar
  23. 23.Anders Sandholm and Michael Schwartzbach. Distributed safety controllers for web services. In Fundamental approaches to Software Engineering, volume 1382, pages 270-284. Lecture Notes in Computer Science, Springer-Verlag, 1998.Google ScholarGoogle Scholar
  24. 24.Fred Schneider. Enforceable security policies. Technical Report TR98-1664, Cornell University, January 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.Chris Small. MISFIT: A tool for constructing safe extensible C++ systems: In Proceedings of the Third USENIX Conference on Object-Oriented Technologies, Portland, OR, June 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.Frederick Smith, David Walker, and Greg Morrisett. Alias types. Technical Report TR99-1773, Cornell University, October 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.l~llfar Erlingsson and Fred B. Schneider. SASI enforcement of security policies: A retrospective. In Proceedings of the 1999 New Security Paradigms Workshop, Caledon Hills, September 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28.Robert Wahbe, Steven Lucco, Thomas Anderson, and Susan Graham. Efficient software-based fault isolation. In Fourteenth A CM Symposium on Operating Systems Principles, pages 203-216, Asheville, December 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.David Walker. A type system for expressive security policies. Technical Report TR99-1740, Cornell University, April 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30.Andrew K. Wright and Matthias Felleisen. A syntactic approach to type soundness. In.formation and Computation, 115(1):38-94, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31.Hongwei Xi. Dependent Types in Practical Programming. PhD thesis, Carnegie Mellon University, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 32.Hongwei Xi and Frank Pfenning. Eliminating array boUnd checking through dependent types. In A CM Conference on Programming Language Design and implementation, pages 249-257, Montreal, Quebec, june 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 33.Hongwei Xi and Frank Pfenning. Dependent types in practical programming. In Twenty-Sixth A CM Symposium on Principles of Programming Languages, pages 214-227, San Antonio, TX, January 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A type system for expressive security policies

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  POPL '00: Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                  January 2000
                  402 pages
                  ISBN:1581131259
                  DOI:10.1145/325694

                  Copyright © 2000 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 5 January 2000

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  POPL '00 Paper Acceptance Rate30of151submissions,20%Overall Acceptance Rate824of4,130submissions,20%

                  Upcoming Conference

                  POPL '25

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader