A certified lightweight non-interference Java bytecode verifier
- 17 May 2013
- journal article
- research article
- Published by Cambridge University Press (CUP) in Mathematical Structures in Computer Science
- Vol. 23 (5) , 1032-1081
Abstract
Non-interference guarantees the absence of illicit information flow throughout program execution. It can be enforced by appropriate information flow type systems. Much of the 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. We define an information flow type system for a sequential JVM-like language that includes all these programming features, and we prove, in the Coq proof assistant, that it guarantees non-interference. An additional benefit of the formalisation is that we have extracted from our proof a certified lightweight bytecode verifier for information flow. Our work provides, to the best of our knowledge, the first sound and certified information flow type system for such an expressive fragment of the JVM.Keywords
This publication has 35 references indexed in Scilit:
- Security of multithreaded programs by compilationACM Transactions on Information and System Security, 2010
- A Certified Lightweight Non-interference Java Bytecode Verifier2007
- Information Flow Analysis for Java BytecodeLecture Notes in Computer Science, 2005
- A Typed Assembly Language for Non-interferenceLecture Notes in Computer Science, 2005
- Stack-based access control and secure information flowJournal of Functional Programming, 2005
- Lightweight Bytecode VerificationJournal of Automated Reasoning, 2003
- Language-based information-flow securityIEEE Journal on Selected Areas in Communications, 2003
- Information flow inference for MLACM Transactions on Programming Languages and Systems, 2003
- Bytecode verification on Java smart cardsSoftware: Practice and Experience, 2002
- From system F to typed assembly languageACM Transactions on Programming Languages and Systems, 1999