skip to main content
10.1145/967900.967991acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
Article

Java bytecode verification on Java cards

Published:14 March 2004Publication History

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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).]]Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle ScholarCross RefCross Ref
  6. X. Leroy. Bytecode verification on java smart cards. Software Practice & Experience, 32:319--340, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. O'Callahan. A simple, comprehensive type system for java bytecode subroutines. In Proc. 26th ACM Symposium on Principles of Programming Languages, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Z. Qian. Standard fixpoint iteration for java bytecode verification. ACM Transactions on Programming Languages and Systems, 22(4):638--672, July 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. Rose and K. Rose. Lightweight bytecode verification. In Workshop "Formal Underpinnings of the Java Paradigm", OOPSLA'98, 1998.]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Sun Microsystems Inc. Java Card 2.1 Language Subset and Virtual Machine Specification, 1998. http://java.sun.com:80/products/javacard/.]]Google ScholarGoogle Scholar

Index Terms

  1. Java bytecode verification on Java cards

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • 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

                Copyright © 2004 ACM

                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]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 14 March 2004

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • Article

                Acceptance Rates

                Overall Acceptance Rate1,650of6,669submissions,25%
              • Article Metrics

                • Downloads (Last 12 months)2
                • Downloads (Last 6 weeks)0

                Other Metrics

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader