skip to main content
article
Open Access

Information flow inference for ML

Published:01 January 2003Publication History
Skip Abstract Section

Abstract

This paper presents a type-based information flow analysis for a call-by-value λ-calculus equipped with references, exceptions and let-polymorphism, which we refer to as ML. The type system is constraint-based and has decidable type inference. Its noninterference proof is reasonably light-weight, thanks to the use of a number of orthogonal techniques. First, a syntactic segregation between values and expressions allows a lighter formulation of the type system. Second, noninterference is reduced to subject reduction for a nonstandard language extension. Lastly, a semi-syntactic approach to type soundness allows dealing with constraint-based polymorphism separately.

References

  1. Abadi, M., Banerjee, A., Heintze, N., and Riecke, J. G. 1999. A core calculus of dependency. In Conference Record of the 26th ACM Symposium on Principles of Programming Languages. ACM Press, San Antonio, Texas, 147--160. URL: http://www.soe.ucsc.edu/abadi/Papers/flowpopl.ps.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Abadi, M., Lampson, B., and Lévy, J.-J. 1996. Analysis and caching of dependencies. In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming. ACM Press, Philadelphia, Pennsylvania, 83--91. URL: http://www.soe.ucsc.edu/∼abadi/Papers/make-preprint.ps.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Banerjee, A. and Naumann, D. 2002. Secure information flow and pointer confinement in a Java-like language. In Proceedings of the 15th IEEE Computer Security Foundations Workshop (CSFW 15). Cape Breton, Nova Scotia, 253--267. URL: http://www.cs.stevens-tech.edu/∼naumann/csfw15.ps.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bell, D. E. and LaPadula, L. J. 1975. Secure computer systems: Unified exposition and Multics interpretation. Tech. Rep. MTR-2997, The MITRE Corp., Bedford, Massachusetts. July. URL: http://www.mitre.org/resources/centers/infosec/infosec.html.]]Google ScholarGoogle Scholar
  5. Denning, D. E. 1982. Cryptography and Data Security. Addison-Wesley, Reading, Massachusetts.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Fähndrich, M. 1999. Bane: A library for scalable constraint-based program analysis. Ph.D. thesis, University of California at Berkeley. URL: http://research.microsoft.com/∼maf/diss.ps.]]Google ScholarGoogle Scholar
  7. Field, J. and Teitelbaum, T. 1990. Incremental reduction in the lambda calculus. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming. ACM Press, 307--322.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Flanagan, C., Sabry, A., Duba, B. F., and Felleisen, M. 1993. The essence of compiling with continuations. In Proceedings of the ACM SIGPLAN'93 Conference on Programming Language Design and Implementation. ACM Press, Albuquerque, New Mexico, 237--247. URL: http://www.cs.rice.edu/CS/PLT/Publications/pldi93-fsdf.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Goguen, J. and Meseguer, J. 1982. Security policies and security models. In Proceedings of the 1982 IEEE Symposium on Security and Privacy. IEEE Computer Society Press, Oakland, California, 11--20.]]Google ScholarGoogle Scholar
  10. Heintze, N. and Riecke, J. G. 1998. The SLam calculus: Programming with secrecy and integrity. In Conference Record of the 25th ACM Symposium on Principles of Programming Languages. ACM Press, San Diego, California, 365--377. URL: http://cm.bell-labs.com/cm/cs/who/nch/slam.ps.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Leroy, X., Doligez, D., Mauny, M., and Weis, P. 1997. The Caml Light system, release 0.74. URL: http://caml.inria.fr/.]]Google ScholarGoogle Scholar
  12. Leroy, X., Doligez, D., Garrigue, J., Rémy, D., and Vouillon, J. 2002. The Objective Caml system, release 3.06. URL: http://caml.inria.fr/.]]Google ScholarGoogle Scholar
  13. Milner, R., Tofte, M., Harper, R., and MacQueen, D. 1997. The Definition of Standard ML (Revised). The MIT Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Moggi, E. 1989. An abstract view of programming languages. Tech. Rep. ECS-LFCS-90-113, University of Edinburgh. June. URL: http://www.disi.unige.it/person/MoggiE/ftp/abs-view.ps.gz.]]Google ScholarGoogle Scholar
  15. Mycroft, A. 1984. Polymorphic type schemes and recursive definitions. In Proceedings of the 6th International Symposium on Programming, M. Paul and B. Robinet, Eds. Lecture Notes in Computer Science, vol. 167. Toulouse, France, 217--228.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Myers, A. C. 1999a. JFlow: practical mostly-static information flow control. In Proceedings of the 26th ACM SIGPLAN-SIGACT on Principles of Programming Languages. ACM Press, San Antonio, Texas, 228--241. URL: http://www.cs.cornell.edu/andru/papers/popl99/myers-popl99.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Myers, A. C. 1999b. Mostly-static decentralized information flow control. Ph.D. thesis, Massachusetts Institute of Technology. Technical Report MIT/LCS/TR-783. URL: http://www.cs.cornell.edu/andru/release/tr783.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Odersky, M., Sulzmann, M., and Wehr, M. 1999. Type inference with constrained types. Theory and Practice of Object Systems 5, 1, 35--55. URL: http://www.cs.mu.oz.au/∼sulzmann/publications/tapos.ps.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Pottier, F. 2000. Wallace: an efficient implementation of type inference with subtyping. URL: http://pauillac.inria.fr/∼fpottier/wallace/.]]Google ScholarGoogle Scholar
  20. Pottier, F. 2001. A semi-syntactic soundness proof for HM(X). Research Report 4150, INRIA. Mar. URL:ftp://ftp.inria.fr/INRIA/publication/RR/RR-4150.ps.gz.]]Google ScholarGoogle Scholar
  21. Pottier, F. 2002. A simple view of type-secure information flow in the π-calculus. In Proceedings of the 15th IEEE Computer Security Foundations Workshop. Cape Breton, Nova Scotia, 320--330. URL: http://pauillac.inria.fr/∼fpottier/publis/fpottier-csfw15.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Pottier, F. and Conchon, S. 2000. Information flow inference for free. In Proceedings of the the 5th ACM SIGPLAN International Conference on Functional Programming (ICFP'00). ACM Press, Montréal, Canada, 46--57. URL: http://pauillac.inria.fr/∼fpottier/publis/fpottier-conchon-icfp00.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Pottier, F. and Simonet, V. 2002a. Information flow inference for ML. In Proceedings of the 29th ACM Symposium on Principles of Programming Languages (POPL'02). ACM Press, Portland, Oregon, 319--330. URL: http://pauillac.inria.fr/∼fpottier/publis/fpottier-simonet-popl02.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Pottier, F. and Simonet, V. 2002b. Information flow inference for ML. Full version. URL: http://pauillac.inria.fr/∼fpottier/publis/fpottier-simonet-popl02-long.ps.gz.]]Google ScholarGoogle Scholar
  25. Rehof, J. 1997. Minimal typings in atomic subtyping. In Conference Record of the 24th ACM Symposium on Principles of Programming Languages. ACM Press, Paris, France, 278--291. URL: http://research.microsoft.com/∼rehof/popl97.ps.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Rémy, D. 1993. Type inference for records in a natural extension of ML. In Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design, C. A. Gunter and J. C. Mitchell, Eds. MIT Press. URL:ftp://ftp.inria.fr/INRIA/Projects/cristal/Didier.Remy/taoop1.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Simonet, V. 2002. Fine-grained information flow analysis for a λ-calculus with sum types. In Proceedings of the 15th IEEE Computer Security Foundations Workshop (CSFW 15). Cape Breton, Nova Scotia, 223--237. URL: http://cristal.inria.fr/∼simonet/publis/simonet-csfw-02.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Sulzmann, M. 2000. Completenss of constraint-based inference. URL: http://www.cs.mu.oz.au/sulzmann/publications/constraint-inference.ps.]]Google ScholarGoogle Scholar
  29. Sulzmann, M., Müller, M., and Zenger, C. 1999. Hindley/Milner style type systems in constraint form. Research Report ACRC--99--009, University of South Australia, School of Computer and Information Science. July. URL: http://www.ps.uni-sb.de/∼mmueller/papers/hm-constraints.ps.gz.]]Google ScholarGoogle Scholar
  30. Volpano, D. and Smith, G. 1997a. Eliminating covert flows with minimum typings. In 10th IEEE Computer Security Foundations Workshop. Rockport, MA, 156--168. URL: http://www.cs.nps.navy.mil/people/faculty/volpano/papers/csfw97.ps.Z.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Volpano, D. and Smith, G. 1997b. A type-based approach to program security. Lecture Notes in Computer Science 1214, 607--621. URL: http://www.cs.nps.navy.mil/people/faculty/volpano/papers/tapsoft97.ps.Z.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Volpano, D., Smith, G., and Irvine, C. 1996. A sound type system for secure flow analysis. J. Computer Security 4, 3, 167--187. URL: http://www.cs.nps.navy.mil/people/faculty/volpano/papers/jcs96.ps.Z.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Wadler, P. 1992. Comprehending monads. Mathematical Structures in Computer Science 2, 461--493. URL: http://www.research.avayalabs.com/user/wadler/papers/monads/monads.ps.gz.]]Google ScholarGoogle ScholarCross RefCross Ref
  34. Wright, A. K. 1995. Simple imperative polymorphism. Lisp and Symbolic Computation 8, 4 (Dec.), 343--356. URL: http://www.cs.rice.edu/CS/PLT/Publications/lasc95-w.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Wright, A. K. and Felleisen, M. 1994. A syntactic approach to type soundness. Information and Computation 115, 1 (Nov.), 38--94. URL: http://www.cs.rice.edu/CS/PLT/Publications/ic94-wf.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Zdancewic, S. and Myers, A. C. 2001. Secure information flow and CPS. In Proceedings of the 2001 European Symposium on Programming (ESOP'01), D. Sands, Ed. Lecture Notes in Computer Science. Springer Verlag, Genova, Italy. URL: http://www.cs.cornell.edu/zdance/lincont.ps.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Zdancewic, S. and Myers, A. C. 2002. Secure information flow via linear continuations. Higher Order and Symbolic Computation. 15, 2-3, 209--234, URL: http://www.cs.cornell.edu/andru/papers/hosc01.ps.gz.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Information flow inference for ML

                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

                Full Access

                • Published in

                  cover image ACM Transactions on Programming Languages and Systems
                  ACM Transactions on Programming Languages and Systems  Volume 25, Issue 1
                  January 2003
                  158 pages
                  ISSN:0164-0925
                  EISSN:1558-4593
                  DOI:10.1145/596980
                  Issue’s Table of Contents

                  Copyright © 2003 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: 1 January 2003
                  Published in toplas Volume 25, Issue 1

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader