skip to main content
10.1145/1806596.1806643acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Type-preserving compilation of end-to-end verification of security enforcement

Published:05 June 2010Publication History

ABSTRACT

A number of programming languages use rich type systems to verify security properties of code. Some of these languages are meant for source programming, but programs written in these languages are compiled without explicit security proofs, limiting their utility in settings where proofs are necessary, e.g., proof-carrying authorization. Others languages do include explicit proofs, but these are generally lambda calculi not intended for source programming, that must be further compiled to an executable form. A language suitable for source programming backed by a compiler that enables end-to-end verification is missing.

In this paper, we present a type-preserving compiler that translates programs written in FINE, a source-level functional language with dependent refinements and affine types, to DCIL, a new extension of the .NET Common Intermediate Language. FINE is type checked using an external SMT solver to reduce the proof burden on source programmers. We extract explicit LCF-style proof terms from the solver and carry these proof terms in the compilation to DCIL, thereby removing the solver from the trusted computing base. Explicit proofs enable DCIL to be used in a number of important scenarios, including the verification of mobile code, proof-carrying authorization, and evidence-based auditing. We report on our experience using FINE to build reference monitors for several applications, ranging from a plugin-based email client to a conference management server.

References

  1. A. W. Appel and E. W. Felten. Proof-carrying authentication. In phCCS. ACM, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. K. Avijit, A. Datta, and R. Harper. Distributed programming with distributed authorization. In TLDI. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G. Barthe, D. Pichardie, and T. Rezk. A certified lightweight non-interference Java bytecode verifier. In phESOP. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Bengtson, K. Bhargavan, C. Fournet, A. D. Gordon, and S. Maffeis. Refinement types for secure implementations. In phCSF. IEEE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Y. Bertot and P. Castéran. Coq'Art: Interactive Theorem Proving and Program Development. Springer Verlag, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Böhme. Proof reconstruction for Z3 in Isabelle/HOL. In SMT Workshop. Springer, 2009.Google ScholarGoogle Scholar
  7. L. de Moura and N. Bjorner. Z3: An efficient SMT solver. In TACAS. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. J. Dougherty, K. Fisler, and S. Krishnamurthi. Specifying and reasoning about dynamic access-control policies. In LNCS. Springer, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. ECMA. Standard ECMA-335: Common language infrastructure, 2006.Google ScholarGoogle Scholar
  10. C. Flanagan. Hybrid type checking. In POPL. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Flanagan, A. Sabry, B. F. Duba, and M. Felleisen. The essence of compiling with continuations. In PLDI. ACM, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. Flanagan, S. N. Freund, and A. Tomb. Hybrid types, invariants, and refinements for imperative objects. In phFOOL/WOOD '06, 2006.Google ScholarGoogle Scholar
  13. L. Jia, J. Vaughan, K. Mazurak, J. Zhao, L. Zarko, J. Schorr, and S. Zdancewic. Aura: A programming language for authorization and audit. In ICFP. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. Kennedy and D. Syme. Transposing F to C#: Expressivity of polymorphism in an object-oriented language. Concurrency and Computation: Practice and Experience, 16 (7), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Krishnamurthi. The Continue server. In PADL. Springer, 2003.Google ScholarGoogle Scholar
  16. R. Milner. LCF: A way of doing proofs with a machine. In MFCS, 1979.Google ScholarGoogle ScholarCross RefCross Ref
  17. G. Morrisett, D. Walker, K. Crary, and N. Glew. From System F to typed assembly language. ACM TOPLAS, 21 (3), 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. G. C. Necula. Proof-carrying code. In POPL'97. ACM, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. N. Nystrom, V. Saraswat, J. Palsberg, and C. Grothoff. Constrained types for object-oriented languages. In OOPSLA'08. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Sabelfeld and A. C. Myers. Language-based information-flow security. JSAC, 21 (1): 5--19, Jan. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Stump, M. Deters, A. Petcher, T. Schiller, and T. Simpson. Verified programming in Guru. In PLPV. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. Swamy, B. J. Corcoran, and M. Hicks. Fable: A language for enforcing user--defined security policies. In S&P. IEEE, 2008.Google ScholarGoogle Scholar
  23. N. Swamy, J. Chen, and R. Chugh. End-to-end verification of security enforcement is fine. Technical Report MSR-TR-2009-98, MSR, 2009.Google ScholarGoogle Scholar
  24. N. Swamy, J. Chen, and R. Chugh. Enforcing stateful authorization and information flow policies in Fine. In phESOP. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Syme, A. Granicz, and A. Cisternino. Expert F#. Apress, 2007.Google ScholarGoogle ScholarCross RefCross Ref
  26. J. A. Vaughan, L. Jia, K. Mazurak, and S. Zdancewic. Evidence-based audit. In CSF. IEEE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. D. Yu and N. Islam. A typed assembly language for confidentiality. In ESOP. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. L. Zheng and A. C. Myers. Dynamic security labels and noninterference. In FAST'04. Springer, 2004.Google ScholarGoogle Scholar

Index Terms

  1. Type-preserving compilation of end-to-end verification of security enforcement

      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
        PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation
        June 2010
        514 pages
        ISBN:9781450300193
        DOI:10.1145/1806596
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 45, Issue 6
          PLDI '10
          June 2010
          496 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1809028
          Issue’s Table of Contents

        Copyright © 2010 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 June 2010

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate406of2,067submissions,20%

        Upcoming Conference

        PLDI '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader