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

JFlow: practical mostly-static information flow control

Published:01 January 1999Publication History

ABSTRACT

A promising technique for protecting privacy and integrity of sensitive data is to statically check information flow within programs that manipulate the data. While previous work has proposed programming language extensions to allow this static checking, the resulting languages are too restrictive for practical use and have not been implemented. In this paper, we describe the new language JFlow, an extension to the Java language that adds statically-checked information flow annotations. JFlow provides several new features that make information flow checking more flexible and convenient than in previous models: a decentralized label model, label polymorphism, run-time label checking, and automatic label inference. JFlow also supports many language features that have never been integrated successfully with static information flow control, including objects, subclassing, dynamic type tests, access control, and exceptions. This paper defines the JFlow language and presents formal rules that are used to check JFlow programs for correctness. Because most checking is static, there is little code space, data space, or run-time overhead in the JFlow implementation.

References

  1. Aba97.Martin Abadi. Secrecy by typing in security protocols. In Proc. Theoretical Aspects of Computer Software: Third International Conference, September 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. ACPP91.Martfn Abadi, Luca Cardelli, Benjamin C. Pierce, and Gordon D. Plotkin. Dynamic typing in a statically typed language. ACM Transactions on Programming Languages and Systems (TOPLAS), 13(2):237-268, April 1991. Also appeared as SRC Research Report 47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. AR80.Gregory R. Andrews and Richard E Reitman. An axiomatic approach to information flow in programs. ACM Transactions on Programming Languages and Systems, 2(1):56-76, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. BL75.D.E. Bell and L. J. LaPadula. Secure computer system: Unified exposition and Multics interpretation. Technical Report ESD-TR-75-306, MITRE Corp. MTR-2997, Bedford, MA, 1975. Available as NTIS AD-A023 588.Google ScholarGoogle Scholar
  5. Car91.Luca Cardelli. Typeful programming. In E. J. Neuhold and M. Paul, editors, Formal Description of Programming Concepts. Springer-Verlag, 1991. An earlier version appeared as DEC Systems Research Center Research Report #45, February 1989.Google ScholarGoogle Scholar
  6. DD77.Dorothy E. Denning and Peter J. Denning. Certification of programs for secure information flow. Comm. of the ACM, 20(7):504-513, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Den76.Dorothy E. Denning. A lattice model of secure information flow. Comm. of the ACM, 19(5):236-243, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Den82.Dorothy E. Denning. Cryptography and Data Security. Addison-Wesley, Reading, Massachusetts, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. GJS96.James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. Addison-Wesley, August 1996. ISBN 0-201-63451-1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. HDT87.Susan Horwitz, Alan Demers, and Tim Teitelbaum. An efficient general iterative algorithm for dataflow analysis. Acta Informatica, 24:679-694, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. HR98.Nevin Heintze and Jon G. Riecke. The SLam calculus: Programming with secrecy and integrity, in Proc. 25th ACM Symp. on Principles of Programming Languages (POPL), San Diego, California, January 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. JL78.Anita K. Jones and Barbara Liskov. A language extension for expressing constraints on data access. Comm. ofthe ACM, 21(5):358-367, May 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. KW94.Atsushi Kanamori and Daniel Weise. Worklist management strategies for dataflow analysis. Technical Report MSR-TR-94-12, Microsoft Research, May 1994.Google ScholarGoogle Scholar
  14. Lam73.Butler W. Lampson. A note on the confinement problem. Comm. of the ACM, 16(10):613-615, October 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. LMM98.Barbara Liskov, Nicholas Mathewson, and Andrew C. Myers. PolyJ: Parameterized types for Java. Software release. Located at http://www.pmg.lcs.mit.edu/polyj, July 1998.Google ScholarGoogle Scholar
  16. MBL97.Andrew C. Myers, Joseph A. Bank, and Barbara Liskov. Parameterized types for Java. In Proc. 24th ACM Symp. on Principles of Programming Languages (POPL), pages 132-145, Paris, France, January 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. ML97.Andrew C. Myers and Barbara Liskov. A decentralized model for information flow control. In Proc. 17th ACM Syrup. on Operating System Principles (SOSP), pages 129-142, Saint-Malo, France, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. ML98.Andrew C. Myers and Barbara Liskov. Complete, safe information flow with decentralized labels. In Proc. IEEE Symposium on Security and Privacy, Oakland, CA, USA, May 1998.Google ScholarGoogle Scholar
  19. MMN90.Catherine J. McCollum, Judith R. Messing, and LouAnna Notargiacomo. Beyond the pale of MAC and DAC -- defining new forms of access control. In Proc. IEEE Symposium on Security and Privacy, pages 190- 200, 1990.Google ScholarGoogle ScholarCross RefCross Ref
  20. Mye99.Andrew C. Myers. Mostly-Static Decentralized Information Flow Control. PhD thesis, Massachusetts Institute of Technology, Cambridge, MA, 1999. in progress. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. PO95.Jens Palsberg and Peter Orb~ek. Trust in the )~-calculus. In Proc. 2nd International Symposium on Static Analysis, number 983 in Lecture Notes in Computer Science, pages 314-329. Springer, September 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. RM96.Jakob Rehof and Torben ~. Mogensen. Tractable constraints in finite semilattices. In Proc. 3rd International Symposium on Static Analysis, number 1145 in Lecture Notes in Computer Science, pages 285-300. Springer- Verlag, September 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. RSC92.Joel Richardson, Peter Schwarz, and Luis-Felipe Cabrera. CACL: Efficient fine-grained protection for objects. In Proceedings of the 1992 A CM Conference on Object- Oriented Programming Systems, Languages, and Applications, pages 154-165, Vancouver, BC, Canada, October 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Sto81.Allen Stoughton. Access flow: A protection model which integrates access control and information flow. In IEEE Symposium on Security and Privacy, pages 9-I 8. IEEE Computer Society Press, 1981.Google ScholarGoogle Scholar
  25. SV98.Geoffrey Smith and Dennis Volpano. Secure information flow in a multi-threaded imperative language. In Proc. 25th ACM Syrup. on Principles of Programming Languages (POPL), San Diego, California, January 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Vol97.Dennis Volpano. Provably-secure programming languages for remote evaluation. ACM SIGPLAN Notices, 32(1):117-119, January 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. VSI96.Dennis Volpano, Geoffrey Smith, and Cynthia Irvine. A sound type system for secure flow analysis. Journal of Computer Security, 4(3):167-187, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. JFlow: practical mostly-static information flow control

                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 '99: Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                  January 1999
                  324 pages
                  ISBN:1581130953
                  DOI:10.1145/292540

                  Copyright © 1999 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 1999

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  POPL '99 Paper Acceptance Rate24of136submissions,18%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