Skip to main content

FACADE: A Typed Intermediate Language Dedicated to Smart Cards

  • Conference paper
  • First Online:
Software Engineering — ESEC/FSE ’99 (ESEC 1999, SIGSOFT FSE 1999)

Abstract

The use of smart cards to run software modules on demand has become a major business concern for application issuers. Such down-loadable executable content needs to be trusted by the card execution environment in order to ensure that an instruction on a memory area is compliant with the definition of the data stored in this area (i.e. its type). Current solutions for smart cards rely on three techniques. For Java Card, either an off-card verifier-converter performs a static verification of type-safety, or a defensive virtual machine performs the verification at runtime. For other types of open smart cards, no type-checking is carried out and the trust is only based on the containment of applications. Static verification is more efficient and flexible than dynamic techniques. Nevertheless, as the Java verifier cannot fit into a card, the trust is dependent on an external third-party. In this way, the card security has been partly turned to the outside. We propose and describe the FACADE language for which the type-safety verification can be performed statically on-card.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Casset, L. How to formally specify the Java bytecode semantics using the B method. In ECOOP Workshop, Formal Techniques for Java Programs (Lisbon, Portugal, June 1999).

    Google Scholar 

  2. Dwyer, M.Data Flow Analysis for Verifying Correctness Properties of Concur-rent Programs. PhD thesis, University of Massachusetts, Sept. 1995. [http://www.cis.ksu.edu/~dwyer/papers/thesis.ps].

  3. International Organization for Standardization. International Standard ISO/IEC 7816: Integrated circuit(s) cards with contacts, parts 1 to 9, 1987–1998.

    Google Scholar 

  4. Lindhom, T., and Yellin, F.The Java Virtual Machine Specification. The Java Series. Addison-Wesley, Sept. 1996.

    Google Scholar 

  5. Maosco Ltd. “MultOS” Web site. [http://www.multos.com/].

  6. Microsoft Corp.Smart Card for Windows” Web site. [http://www.microsoft.com/windowsce/smartcard/].

  7. Morrisett, G., Walker, D., Crary, K., and Glew, N. From System F to Typed Assembly Language. In 25th Symposium on Principles of Programming Languages (San Diego, CA, USA, Jan. 1998). http://simon.cs.cornell.edu/Info/People/jgm/papers/tal.ps.

  8. Necula, G. C. Proof-Carrying Code. In 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Paris, France, Jan. 1997). [http://www.cs.cmu.edu/~necula/popl97.ps.gz].

  9. Rose, E. Towards Secure Bytecode Verification on a Java Card. Master’s thesis, University of Copenhagen, Sept. 1998. [http://www.ens-lyon.fr/~evarose/speciale.ps.gz].

  10. Rose, E., and Rose, K. H. Lightweight Bytecode Verification. In Formal Underpinnings of Java, OOPSLA’98 Workshop (Vancouver, Canada, Oct. 1998). [http://www-dse.doc.ic.ac.uk/~sue/oopsla/rose.f.ps].

  11. Shao, Z. Typed Common Intermediate Format. In USENIX Conference on Domain-Specific Languages (Barbara, CA, USA, Oct. 1997). [http://flint.cs.yale.edu/flint/publications/tcif.html].

  12. Sun Microsystems, Inc.Java Card 2.0 Language Subset and Virtual Machine Specification, Programming Concepts, and Application Programming Interfaces, Oct. 1997. [http://java.sun.com/products/javacard/].

  13. Sun Microsystems, Inc.Java Card 2.1 Virtual Machine, Runtime Environment, and Application Programming Interface Specifications, Public Review ed., Feb. 1999. [http://java.sun.com/products/javacard/javacard21.html].

  14. Sun Microsystems, Inc.Java Card 2.1 Virtual Machine Specification, Draft 2 ed., Feb. 1999. [http://java.sun.com/products/javacard/JCVMSpec.pdf].

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Grimaud, G., Lanet, JL., Vandewalle, JJ. (1999). FACADE: A Typed Intermediate Language Dedicated to Smart Cards. In: Nierstrasz, O., Lemoine, M. (eds) Software Engineering — ESEC/FSE ’99. ESEC SIGSOFT FSE 1999 1999. Lecture Notes in Computer Science, vol 1687. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48166-4_29

Download citation

  • DOI: https://doi.org/10.1007/3-540-48166-4_29

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66538-0

  • Online ISBN: 978-3-540-48166-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics