Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/967900.967991acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
Article

Java bytecode verification on Java cards

Published: 14 March 2004 Publication History
  • Get Citation Alerts
  • Abstract

    A Java program is usually translated into an intermediate language, known as Java Virtual Machine Language (JVML), which is then executed by a Java Virtual Machine (JVM). Before its execution a JVML program is verified to prevent a wide range of run-time errors. Nowadays, Java applets are available for various kinds of portable devices, including modern Java smart cards. However, Java cards cannot execute the classical verification algorithms, due to their very small amount of working memory.We present a new algorithm to verify a subset of the Java bytecode language, suitable to be executed in low-memory environments, such as Java smart cards. The method is based on abstract interpretation of the language operational semantics. We define an abstract small-step semantics of the language, able to keep information regarding the modifications of data during Java constructs execution. We state the equivalence between our verification algorithm and the "standard" one. Moreover, we discuss the low memory requirements of the algorithm.

    References

    [1]
    R. Barbuti, C. Bernardeschi, and N. D. Francesco. Abstract interpretation of operational semantics for secure information flow. Information Processing Letters, 83(2):101--108, 2002.]]
    [2]
    R. Barbuti, C. Bernardeschi, and N. D. Francesco. Checking security of java bytecode by abstract interpretation. In ACM Symposium on Applied Computing (SAC), 2002.]]
    [3]
    R. Barbuti, C. Bernardeschi, N. D. Francesco, and L. Tesei. Fixing the java bytecode verifier by a suitable type domain. In International Conference on Software Engineering and Knowledge Engineering (SEKE), 2002.]]
    [4]
    R. Barbuti and S. Cataudella. Verifica di java bytecode su java card, 2003. Internal note, Dip. to di Informatica - Università di Pisa - (In italian).]]
    [5]
    M. Hagiya and A. Tozawa. On a new method for dataflow analysis of java virtual machine subroutines. IN SAS'98, Levi G, LNCS 1503, pages 17--32, Springer-Verlag 1998.]]
    [6]
    X. Leroy. Bytecode verification on java smart cards. Software Practice & Experience, 32:319--340, 2002.]]
    [7]
    T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.]]
    [8]
    R. O'Callahan. A simple, comprehensive type system for java bytecode subroutines. In Proc. 26th ACM Symposium on Principles of Programming Languages, 1999.]]
    [9]
    Z. Qian. Standard fixpoint iteration for java bytecode verification. ACM Transactions on Programming Languages and Systems, 22(4):638--672, July 2000.]]
    [10]
    E. Rose and K. Rose. Lightweight bytecode verification. In Workshop "Formal Underpinnings of the Java Paradigm", OOPSLA'98, 1998.]]
    [11]
    R. Stata and M. Abadi. A type system for java bytecode subroutines. ACM Transactions on Programming Languages and Systems, 21(1):90--137, January 1999.]]
    [12]
    Sun Microsystems Inc. Java Card 2.1 Language Subset and Virtual Machine Specification, 1998. http://java.sun.com:80/products/javacard/.]]

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SAC '04: Proceedings of the 2004 ACM symposium on Applied computing
    March 2004
    1733 pages
    ISBN:1581138121
    DOI:10.1145/967900
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 14 March 2004

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Java bytecode
    2. Java card
    3. abstract interpretation

    Qualifiers

    • Article

    Conference

    SAC04
    Sponsor:
    SAC04: The 2004 ACM Symposium on Applied Computing
    March 14 - 17, 2004
    Nicosia, Cyprus

    Acceptance Rates

    Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 459
      Total Downloads
    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media