Smart cards are really utile in the countries of personal security. They are used global to add hallmark and unafraid entree to information systems necessitating a high degree of security. The combination of smart cards and Java Card can supply 1000000s of consumers with utile applications in footings of confidentiality, hallmark, non-repudiation and unity. Using Java Card engineering one time can transport around valuable and sensitive personal information such as 1s recognition card Numberss, medical history, contact Numberss or electronic hard currency balances in a medium that is compact and secure.
What is a Java Card?
Java Card is a new coevals smartcard Operating System and programming linguistic communication.
In loose words, It can be said that-
* Java + Card = Java Card!
* I, vitamin E. Java Platform used on Smart Cards
A recognition card sized fictile card that processes information through electronic circuit integrated in it.
Banking Card games
SIM Card games
Fuel Card games
Membership cards for nine
Authentication Card games
Naming Card games
Logic of Smart Cards
In footings of their logic, smart cards can be divided into memory cards and microprocessor cards.
– Memory Card games
Advantage over magnetic-strip cards is that they are unafraid,
For illustration they allow entree to memory merely after right watchword has been entered.
– Microprocessor Card games
Contains a full micro computing machine dwelling of a CPU ( 8 to 16 spots ) , ROM, EEPROM, RAM and I/O peripheral unit
Because all these elements are combined in one incorporate circuit, this IC is besides called a microcontroller.
Smart Card External Structure
[ hypertext transfer protocol: //www.break-ic.com/topics/images/smartcrd.gif ]
Internal architecture of a smart card
Smart Cards Comes in two signifiers:
Contact and contact less smart cards.
Contact based smart cards work through physical contact between card reader and smart card.
Contact-less smart cards communicate through wireless frequence signal, typical scope of within 2 pess.
Smart Card Hardware
Read-only memory: Stores plan codification of Virtual Machine ( VM ) , API, and preinstalled applets.
EEPROM: Used for relentless storage of the informations, includes objects with their Fieldss, and plan codification of downloaded applets
Random-access memory: Used for transeunt storage of informations, e.g. stack.
One of the chief thoughts that encouraged the development of java card engineering was to do smart card applications portable across assorted platforms.The advantages of Java such as platform independency and language-level security, were known to the universe and apprehended and so plan to convey the power of Java to the universe of smart-cards came out and was implemented.
Java Card is a platform for developing Java applications for smart cards. In other words it enables java plans to run on smart cards. Java Card is a combination of customized subset of characteristics of java linguistic communication and a Java run-time environment dedicated to ache cards.
Following are the Features of Java Cards compared to Java:
i?? Subset of Java ( due to resource restraints )
i?? No multithreading.
i?? No dynamic category burden.
i?? No object cloning
i?? No object serialisation.
i?? No Double, threading data-types.
i?? Single dimension array merely.
i?? No refuse aggregation, and really restricted API
i?? Strict type-casting regulations.
i?? No file managing API or support ( due to security grounds ) .
i?? With some supernumeraries ( due to hardware distinctive features )
i?? communicating via APDUs or RMI
i?? Persistent & A ; transeunt informations in EEPROM & A ; RAM
i?? Transaction mechanism
Java Card architecture
The smart card operating system is layered on the top of a smart card microcontroller and is meant for supplying common services like file and information direction, communicating and bid executing.
The Java Card run-time environment ( JCRE ) is layered on the top of the smart card OS and consists of Java Card Virtual Machine ( JVCM ) , Java Card API and Native Methods. Native methods are required to implement certain particular platform-dependent operations.
The chief intent of Java Card Virtual Machine ( JVCM ) is to put to death application byte codification on a card and to supply the Java linguistic communication support. JCVM is implemented as two separate pieces, The on-card part of the Java Card practical machine includes the Java Card byte-code translator. The Java Card convertor runs on a Personal computer or a workstation. The convertor is the off-card piece of the practical machine.
Java Card Architecture
[ Figure referred from- Java Card for E-Payment Applications Artech House ]
Java Card Converter:
The convertor prepares a card application byte-code ( category files ) for uploading to a card. The consequence of transition is a born-again applet ( CAP ) file. CAP file so can be uploaded to a card.
Java Card Interpreter:
The Java Card translator provides runtime support of the Java linguistic communication theoretical account and therefore allows hardware independency of applet codification. The translator executes byte-code instructions and finally executes applets. It Controls memory allotment and object creative activity. Besides it plays a important function in guaranting runtime security. Java Card engineering smart card contains an application called installing plan, capable of lading a CAP file and hive awaying it on the card.
Java card APIs contain some maker specific extension. A specific industry or concern can provide add-on libraries to supply a service or to polish the security. But they decrease transverse platform portability of java card applications. Java card applications, called applet, written in Java scheduling linguistic communication are located on the top degree of java card architecture.
This was approximately card side now about reader side
Smart card is inserted into a Card Acceptance Device ( CAD ) , which may link to another computing machine. Other term used for the Card Acceptance Device is reader. Reader provides basic maps like providing power to the card and to set up connexion.
1. Communication via APDUs or message passing theoretical account
Smart cards speak to the outside universe utilizing their ain informations bundles called APDU ( Application Protocol Data Units ) . APDU contains either a bid or a response message. In footings of master/slave attack smart card ever plays the inactive function. It ever waits for a bid APDU from a terminus. It so executes the action specified in the APDU and answers to the terminus with a response APDU.
The Command APDU
CLA: Byte that identifies an application-specific category of instructions
Immigration and naturalization service: It is an direction byte that indicates direction codification.
P1, P2: parametric quantities
Lc: the figure of bytes in the informations field of the bid.
Datas: it holds bid informations
Lupus erythematosus: length of expected response
Datas: conatins data bytes returned by applet ( optional field )
SW1, SW2: are particular words that denote the processing position of the bid APDU ( required Fieldss )
2. RMI ( Remote Method Invocation )
Covering with APDUs is cumbersome so Java Card 2.2 introduced Java Card RMI ( JCRMI )
A server application creates and makes accessible distant objects so mentions of these objects are created and terminal invokes methods on applet on the smartcard.
Platform translates this method supplication into APDUs.
Lifetime of a Java Card practical machine
Unlike the Java practical machine ( JVM ) in a Personal computer or workstation, the Java Card practical machine runs everlastingly.
Information stored on the card had to be preserved even when the power is removed — that is, when the card is dispatched from the reader. The Java Card VM creates objects in EEPROM to keep the relentless information so when the power is reapplied, the VM becomes active once more, and provinces of the VM and of objects are restored.
Life of Java Card applets and objects
An applet ‘s life starts when it is downloaded to the card and the JCRE invokes Applet.install ( ) method. Then applet registries itself with JCRE by raising Applet.register ( ) method. An applet on a card is in an inactive phase until it is explicitly selected by the terminus. An applet is selected by SELECT APDU bid. The data field of the APDU contains an Aid of applet to choose. To advise the applet that host application has selected it, JCRE calls its select ( ) method. After choice is done, the JCRE passes incoming APDU bids to the applet for processing by raising its procedure ( ) method, besides it catches any exclusions the applet fails to catch.
The applet method deselect ( ) , which typically performs any clean-up logic and returns the applet to the inactive province is called by JCRE when applet other than presently selected gets selected.
Use of transient and relentless types in Java Card Programming
The power supply of a smartcard can be interrupted at any case, by a alleged card tear. To get by with this, the API offers support for persistent or transeunt allotment of Fieldss and minutess.
The Fieldss of Java Card objects are stored in EEPROM, accessing which is far slower than RAM. So API offers methods that allow Fieldss that to be allocated in RAM.
The API offers methods to fall in several assignments to Fieldss into one atomic action that is atomic update of the EEPROM, called a dealing. If the power supply stops midway during a dealing, all assignments of that dealing are rolled back/undone.
private int balance ;
private int [ ] record ;
JCSystem.beginTransaction ( ) ; // now even if card or terminal tear occurs, consistence is preserved.
// update record
record [ k++ ] = balance ;
// update balance
balance = balance i?? sum ;
JCSystem.commitTransaction ( ) ;
A Challenge in Java Card Programming
Java Card games have really restricted resources in footings of limited memory and limited calculating power. So one manner through which this job can be overcome is by utilizing terminali??s resources. But there is limitation that terminuss are potentially un-trusted. At Penn ( A university in Philadelphia, Pennsylvania ) terminali??s memory was used to get the better of the first limitation.
It is widely known that watchwords are surely the weakest component in any security system. Smart cards turn out to be the best stake to beef up this first defence margin. Since smart cards are unafraid devices for hive awaying valuable information, they hence prove as a convenient solution in many other desirable countries. As anything can non be expected to be 100 percent hack-proof, iti??s a community demand to execute extended testing and analysis of the complete smart card paradigm on the uninterrupted footing.
Therefore Smart cards with Java Card engineering are the portable and unafraid manner of transporting personal information in digital signifier ; a really powerful and utile engineering in modern digital universe.