Java Card

Developing a Java Card Applet by Ed Ort (August, 2001)
After you write a Java Card applet, you're ready to prepare it for execution in a Smart Card that implements the Java Card runtime environment. Preparing a Java Card applet for execution involves a number of steps, such as converting it to a runtime format and testing it in various simulated environments. This article refers to these steps collectively as "developing a Java Card applet," and shows you how to perform each step in the process.

Writing a Java Card Applet by Ed Ort (January 24, 2001)
This article introduces smart cards, gives a brief overview of Java CardTM technology, and by stepping you through the code of a sample applet distributed with a Java Card toolkit, shows you how to code a Java Card applet. This is the first in a series of articles on Java Card applets. After you write a Java Card applet, you're ready to test and deploy it. Future articles will describe how to perform those tasks.

Java Card Technology for Smart Cards: Architecture and Programmer's Guide (The Java Series) by Zhiqun Chen (June 2, 2000)
This book is the comprehensive guide to developing applications with Java Card technology. It introduces you to the Java Card platform and features detailed discussions of programming concepts. It also provides a step-by-step Java Card applet development guide to get you up and running.
Preface Audience for This Book Java Card(tm) technology combines a subset of the Java programming language with a runtime environment optimized for smart cards and other memory-constrained devices. This book is intended for a wide technical audience with different needs of understanding Java Card technology. First and foremost, it is written for Java Card applet developers.

Java Card 2.1.1 Platform: Enhancements in the Java Card 2.1 Platform (May 18, 2000)
This document is the Release Notes for the Java Card 2.1.1 Specifications. The specifications include: These specifications describe the Java Card 2.1.1 platform standards of Java Card technology, providing the foundation for designing implementations of Java Card enabled devices and tools.

Java Card Security: How Smart Cards and Java Mix
We emphasize throughout this book that Java is much more than simply a programming language. This chapter takes that lesson to heart and discusses Java's role in a technology destined to become part of all our lives in the near future-smart cards. In light of its history as a platform for embedded devices, it's a bit ironic, but not surprising, that in one of its many forms, Java is coming full circle back to its embedded roots. Smart cards provide an important enabling technology for e-commerce. They are integral building blocks in many systems currently on the drawing board and a few systems already in service. Java can help make smart cards more accessible to developers and business people by providing a well-understood, familiar environment.

Java Card Management (JCM) Specification (06 October 2000)
The primary goals of the initial efforts of the Java Card Management Task Force have been two-fold. First, a concerted effort has been made to establish a rather generic model of smart card infrastructures through which a general vocabulary could be established. Second, based on this generic model, an effort has been made to identify specific points within this model which could be established as "interoperability points". That is, points within the lifecycle of a card system at which a set of objective and verifiable criteria can be identified such that products and services from a variety of vendors can be readily substituted for one another at those points. Java card management then becomes a problem of establishing a collection of administrative tools to support (enforce) these interoperability points.

Java Card : semantics, optimisations and security
The INRIA research action Java Card has as its aim to coordinate research carried out at INRIA concerning formal aspects of Java and Java Card, a Java dialect for programming smart cards. This includes research on the formal semantics of these languages, program analysis for program optimization and methods for verifying safety and security related properties.

How to write a Java Card applet: A developer's guide by Zhiqun Chen (June 28, 1999)
Java Card technology provides the smallest Java platform for memory-constrained devices like smart cards. Zhiqun Chen provides a step-by-step guide to the programming concepts and APIs programmers should use when developing Java Card applets, wrapping up with an example applet written in Java. This article is intended for Java programmers who wish to extend their development efforts onto the Java Card platform. It also provides an excellent introduction for programmers experienced in writing software for smart cards, but accustomed to programming in assembler or C. The author assumes a working knowledge of smart card technology and a basic understanding of the Java Card platform. (8,000 words)

Java Card Application Development by Darryl Barnes (February 1999)
Java's portability and other features offer a solution to obstacles hindering smart card development and acceptance. However, there is clearly no way that a standard Java virtual machine can fit within the constraints of the typical smart card platform. Consequently, JavaSoft and others have developed the Java Card specification -- a subset of Java designed for smart card applications. Like standard Java, Java Card is a platform defined by a language specification, virtual machine specification, and API. Essentially, the Java-Card Language Specification (the current version is 2.1) and Java Card Virtual Machine (JCVM) specification are subsets of their standard Java counterparts. However, the Java Card API (JCAPI) has little in common with the standard Java API. In this article, I'll discuss Java Card and present a typical smart card applet.

Object Lifetimes in Java Card by Marcus Oestreicher and Ksheerabdhi Krishna (10 May 1999)
Java Card promises the ease of programming in Java to the world of smart cards. Java's memory model however is resource intensive especially for smart card hardware. Hence, adapting Java's memory model to Java Card must retain the easy programming paradigm while enabling Java Card applications to maximize the use of smart card memory. To this end, the Java Card 2.1 Specification advocates an ad hoc persistent memory model that foists an unnatural programming paradigm and an inherently limited API. (download as PDF)

Secure Object Sharing in Java Card by Michael Montgomery and Ksheerabdhi Krishna (10 May 1999)
Since the invention of the Java Card, the issue of code and data sharing has been a topic of great interest. Early Java Cards shared data via files secured with access control lists. Java Card 2.1 specification introduced a method of object sharing, allowing access to methods of server applets using Shareable Interface Objects (SIO). (download as PDF)

Java Card Technology
Java Card technology adapts the Java platform for use on smart cards and other devices whose environments are highly specialized, and whose memory and processing constraints are typically more severe than those of J2ME devices.

Smart cards are very useful in the areas of personal security. They can be used to add authentication and secure access to information systems that require a high level of security. Information stored in smart cards is portable. With Java Card technology you can carry around valuable and sensitive personal information such as your medical history, credit card numbers, or electronic cash balances in a medium that is compact, yet very secure.

Java Card(TM) Technology Grows Up Smart (January 26, 1999)
Your wallet is about to get thinner, and "money" is about to take on a whole new meaning. Smart cards, long familiar to consumers in Europe and Asia, and increasingly to the rest of the world, are about to get smarter and more versatile, thanks to JavaTM technology. With one card -- indistinguishable from an ordinary credit card -- you can, for starters, manage digital money, create unforgeable signatures, sign email, authenticate legal documents, and store a user profile.

Java Card Technology Home Page
The Java Card specifications enable Java technology to run on smart cards and other devices with limited memory. The Java Card API allows applications written for one Java Card-enabled smart card platform, to run on any other Java Card-enabled platform. Java Card 2.0 Spezification and documents can be found here and includes the following documents.

Understanding Java Card 2.0 by Zhiqun Chen (March 02, 1998)
Java Card is a smart card that is capable of running programs written in Java. For this new Java platform, Sun's JavaSoft division has made available the Java Card 2.0 API specification, and several licensees are now implementing this API on smart cards. In order to program Java Cards that are 2.0-compliant, developers need to understand what a Java Card is architecturally, what its core classes are, and how to develop applications for the card.

Smart cards, Java cards and security by Gary McGraw (January 19, 1998)
First off, a disclaimer. Asking if smart cards are secure is very much like asking whether a computer or a bank is secure. There really is no answer to the question since the term "smart card" is used for an entire family of technologies. Nevertheless, smart cards are currently being touted as a partial solution to open problems in e-commerce security. So what are they anyway? What's special about Java-based smart cards? And what impact can they have on e-commerce security?

Java Card Technology: The Java Card Platform and APIs by Alan Brenner (March 24, 998)
Abstract: The Java Card API has been one of the most successful Java platform specifications. In less than 1 year, it has been adopted by many major smartcard manufacturers, and is anticipated to be implemented in over 600 million cards, jewelry, and other devices by the year 2000. This talk will present an in-depth review of the current specification and architecture, as well as outline the future plans for Java Card platform products.

Java Technology: Using Smart Cards with Java Technology by Rinaldo Di Giorgio (March 24, 998)
Abstract: Java Card technology represents an entirely new platform for most Java technology developers, yet they will represent more devices in the marketplace by the year 2000 than most other computer platforms combined. This talk will provide a hands-on introduction to the development of Java Card applets. It will include an overview of how to architect the applet, how to construct the code, and how to compile and prepare for loading into a Java Card API.

The Java Platform Scales to Fit Small Spaces by Bill Day (March 26, 1998)
Interest in Java-powered small devices spills over at JavaOne. Information about the latest developments in PersonalJava, EmbeddedJava, and Java Card technologies are presented in technical sessions, Birds-of-a-Feather meetings, show exhibits, and announcements. The Java platform is being deployed to support a surprising array of new products and applications. Plus, we take a special look at the use of the Java Ring at JavaOne. (1,600 words)

Ring fever: A first-hand look at Java-powered jewelry by Chuck McManis (April 03, 1998)
Every now and then something comes along that really strikes a resonant chord in some part of your brain. For me, the Java ring resounded right down to my Star Trek roots. Once I knew about the ring I had to have it; once I had it I became obsessed with controlling it. And somewhere past obsession lies madness... (2,800 words)

Giving currency to the Java Card API by Arthur Coleman (February 24, 1998)
The Java Card API is the newest Java platform. It is designed to run on 8-bit microprocessors with as little as 256 bytes of RAM and 14 kilobytes of ROM. Java Card has been adopted by all manufacturers of smart cards worldwide because it provides the first opportunity to run single applications on cards from any vendor, it enables the first true multi-application cards, and it speeds and simplifies application development in these very small memory environments. This article is designed to introduce smart card concepts to Java developers and provide some insight into revenue opportunities represented by these new platforms. (3,500 words)

IBM JavaCard OpenPlatform
Provides a reliable, secure, scalable, standards-compliant smartcard environment.

An introduction to the Java Ring by Stephen M. Curry (April 01, 1998)
The Java Card is being implemented on many form factors. The Java iButton from Dallas Semiconductor is one of the first devices claiming support for the Java Card 2.0 API. (Compliance testing has not been done yet.) Java Card isn't just for cards, though. The Java Ring has a form factor that supports a more rugged environment. This form factor, described in the article, allows more processing power and memory -- what every smart card programmer craves -- to be put into the device. Using the prior articles in this Java Developer series and this month's column, you can actually deploy solutions using Java Card with the iButton Java Ring. (2,500 words)

iButtons: The first ready-to-buy 2.0 Java Card API devices by Rinaldo Di Giorgio (April 15, 1998)
Smart cards take the traditional form factor of a credit card, which works well for many applications. But the Dallas Semiconductor form factor has advantages over the credit-card type in that it provides a rugged environment, more power, memory and battery backup, and includes a clock. As this industry develops, there may be many other form factors coming up on the horizon. (3,000 words)

Java Ring
Experience the power of Java first-hand, on your hand. Simply press the Blue Dot receptor, and the Java Virtual Machine on your finger is connected to the computing power of the network.

Defensive Java Virtual Machine (May 13, 1997)
Over the last several months Computational Logic, Inc. (CLI) in collaboration with Schlumberger Electronic Transactions and JavaSoft has been building a formal model of a subset of the Java Virtual Machine (JVM). The model has been built using ACL2, a mathematical logic based on Common Lisp. The result can serve as the basis for rigorous, formal analysis of the JVM and JVM (bytecode) programs. Because models written in ACL2 can be executed, the formal JVM model can run programs within the subset of the JVM supported.

Restricted channel multicast in Java by Jason Scherer with contribution by Rinaldo Di Giorgio (August 14, 1998)
This article describes the modifications made to an existing multicast application during research and development at Sun Microsystems. The goal was to convert an application bundled with Java Reliable Multicast Service (JRMS) to something we are calling a restricted-channel system. In a restricted-channel system, the multicast server transmits encrypted information that can be deciphered only by authorized multicast client programs or multicast client programs operating under authorized conditions. For security reasons, a Java Card was chosen as the device on which to perform decryption. The program performing the decryption was run by the smart card chip itself. The system envisioned in this project is a complete one, where both decryption and payment are handled by the Java Card device. This article also demonstrates the use of the Java Card as a "purse," performing debit and credit card functions and actually "holding" money. (3,200 words)

SMART AND SMARTER: THE EMERGENCE OF JAVATM CARD TECHNOLOGY
What Java technology brings to smart cards may make their current uses look downright simple-minded. Java Card technology -- the implementation of Java technology for smart cards -- makes it possible to create and download new functions and services to cards after they are already in the hands of consumers. The Java Card API gives smart cards the ability to perform multiple functions, including ones not even imagined when the cards are issued. Just as importantly, Java Card technology maintains the inherent security of Java technology and makes the smart card a safe way to conduct consumer transactions over insecure networks like the Internet and public telephone systems.

[ Top ] [ Home ]
created ~Jun/1998 -- last updated: 01/02/2004 -- http://www.pochendorfer.com/macchiato/javacard.html