A certified lightweight non-interference java bytecode verifier

作者: Gilles Barthe , David Pichardie , Tamara Rezk

DOI: 10.1007/978-3-540-71316-6_10

关键词: Proof assistantTheoretical computer scienceJava bytecodeSoundnessInformation flow (information theory)Computer scienceProgramming languageFragment (logic)BytecodeCertificationType (model theory)

摘要: Non-interference is a semantical condition on programs that guarantees the absence of illicit information flow throughout their execution, and can be enforced by appropriate type systems. Much previous work systems for noninterference has focused calculi or high-level programming languages, existing low-level languages typically omit objects, exceptions, method calls, and/or do not prove formally soundness system. We define an system sequential JVM-like language includes classes, arrays, exceptions it non-interference. For increased confidence, we have formalized proof in assistant Coq; additional benefit formalization extracted from our certified lightweight bytecode verifier flow. Our provides, to best knowledge, first sound implemented such expressive fragment JVM.

参考文章(49)
Ksheerabdhi Krishna, Michael Montgomery, Secure object sharing in java card WOST'99 Proceedings of the USENIX Workshop on Smartcard Technology on USENIX Workshop on Smartcard Technology. pp. 14- 14 ,(1999)
Naoki Kobayashi, Keita Shirane, Type-Based Information Analysis for Low-Level Languages. asian symposium on programming languages and systems. pp. 302- 316 ,(2002)
Dennis Volpano, Geoffrey Smith, A Type-Based Approach to Program Security colloquium on trees in algebra and programming. pp. 607- 621 ,(1997) , 10.1007/BFB0030629
Steve Zdancewic, Andrew C. Myers, Secure Information Flow via Linear Continuations Higher-Order and Symbolic Computation archive. ,vol. 15, pp. 209- 234 ,(2002) , 10.1023/A:1020843229247
Heiko Mantel, Andrei Sabelfeld, A unifying approach to the security of distributed and multi-threaded programs Journal of Computer Security. ,vol. 11, pp. 615- 676 ,(2003) , 10.3233/JCS-2003-11406
Gilles Barthe, Bernard P. Serpette, Partial Evaluation and Non-inference for Object Calculi international symposium on functional and logic programming. pp. 53- 67 ,(1999) , 10.1007/10705424_4
Samir Genaim, Fausto Spoto, Information Flow Analysis for Java Bytecode Lecture Notes in Computer Science. ,vol. 3385, pp. 346- 362 ,(2005) , 10.1007/978-3-540-30579-8_23
Cinzia Bernardeschi, Nicoletta De Francesco, Combining Abstract Interpretation and Model Checking for Analysing Security Properties of Java Bytecode Lecture Notes in Computer Science. ,vol. 2294, pp. 1- 15 ,(2002) , 10.1007/3-540-47813-2_1
Flemming Nielson, Chris Hankin, Hanne R. Nielson, Principles of program analysis ,(1999)
David A. Naumann, Verifying a Secure Information Flow Analyzer Lecture Notes in Computer Science. pp. 211- 226 ,(2005) , 10.1007/11541868_14