Non-interference is a semantical condition on programs that guarantees the absence of illicit inforrmition flow throughout their execution, and that can be enforced by appropriate information flow type systems. Much of previous work on type systems for non-interference has focused on calculi or high-level programming languages, and existing type systems for low-level languages typically omit objects, exceptions, and method calls, and/or do not prove formally the soundness of the type system. We define an information flow type system for a sequential JVM-like language that includes classes, objects, arrays, exceptions and method calls, and prove that it guarantees non-interference. For increased confidence, we have formalized the proof in the proof assistant Coq; an additional benefit of the formalization is that we have extracted from our proof a certified lightweight bytecode verifier for information flow. Our work provides, to our best knowledge, the first sound and implemented information flow type system for such an expressive fragment of the JVM. © Springer-Verlag Berlin Heidelberg 2007.
CITATION STYLE
Barthe, G., Pichardie, D., & Rezk, T. (2007). A certified lightweight non-interference Java bytecode verifier. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 4421 LNCS, pp. 125–140). Springer Verlag. https://doi.org/10.1007/978-3-540-71316-6_10
Mendeley helps you to discover research relevant for your work.