As we are daily using smart cards. This smart card are developed on basis of java card technology this article briefly states the use and how java language is beneficially used in building smart cards.
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. Java Card technology is evolving. Accompanying both the technical evolution of smart card chips and the needs of application developers, 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
What is a Smart Card?
Identical to the size of a credit card, a smart card stores and processes information through the electronic circuits embedded in silicon in the plastic substrate of its body. There are two basic kinds of smart cards: An intelligent smart card contains a microprocessor and offers read, write, and calculating capability, like a small microcomputer. A memory card, on the other hand, does not have a microprocessor and is meant only for information storage. A memory card uses security logic to control the access of memory.
All smart cards contain three types of memory: persistent non-mutable memory; persistent mutable memory; and non-persistent mutable memory. ROM, EEPROM, and RAM are the most widely-used memory for the three respective types in the current smart cards. Persistent memory is also called non-volatile memory. We will use the terms persistent and non-volatile interchangeably in this article.
The following diagram illustrates the physical characteristics of a smart card, which are defined in ISO 7816, part 1.
Java Card Specifications
A Java Card is a smart card that is capable of running Java programs. The Java Card 2.0 specification was published at .It contains detailed information for building the Java Card virtual machine and application programming interface (API) in smart cards. The minimum system requirement is 16 kilobytes of read-only memory (ROM), 8 kilobytes of EEPROM, and 256 bytes of random access memory (RAM).
The system architecture on the Java Card is illustrated in the following figure.
As shown in the figure, the Java Card VM is built on top of a specific integrated circuit (IC) and native operating system implementation. The JVM layer hides the manufacturer’s proprietary technology with a common language and system interface. The Java Card framework defines a set of Application Programming Interface (API) classes for developing Java Card applications and for providing system services to those applications.
An important point to keep in mind is what smart cards are not: They are not personal computers. They have limited memory resources and computing power. Users should not think of Java Card 2.0 as simply a stripped-down version of the JDK.
The lifetime of a Java Card
The Java Card lifetime starts when the native OS, Java Card VM, API classes libraries and optionally, applets are burned into ROM. This process of writing the permanent components into the non-mutable memory of a chip for carrying out incoming commands is called masking.
Before it lands in your wallet, a Java Card needs to go through initialization and personalization. Initialization refers to loading general data into a card’s non-volatile memory. This data is identical across a large number of cards and is not specific to an individual; an example might be the issuer or manufacture’s name.
The next step, personalization, involves assigning a card to a person. It can occur through physical personalization or through electronic personalization. Physical personalization refers to embossing or laser engraving your name and card number on the plastic surface of a card. Electronic personalization refers to loading personal data into a card’s non-volatile memory, for example, your personal key, name, and pin number.
Initialization and Personalization vary from vendor to vendor and issuer to issuer. In both, EEPROM (a type of non-volatile memory) is often used for storing data.
At this point, the Java Card is ready for use. You can get a Java Card from an issuer or buy it from a retailer. Cards sold by a retailer are general-purpose, in which case personalization is often omitted.
Now you can insert your Java Card into a reader and send APDU commands to the applets residing on the card or download more applets or data onto the card. A Java Card remains active until it is expired or blocked due to an unrecoverable error.