swMATH ID: 20595
Software Authors: Andrew C. Myers
Description: JFlow: practical mostly-static information flow control. 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.
Homepage: http://dl.acm.org/citation.cfm?id=292561
Related Software: TaintDroid; Haskell; TALx86; Jif; Laminar; F*; LLVM; JML; NaCl; Creol; Coq; Merlin; SGX; Privtrans; Fable; Moat; EROS; VC3; LIFT; M-Sim
Cited in: 22 Documents

Citations by Year