JAVA CARD
TECHNOLOGY
PRESENTED BY:
UJJWAL KUMAR
IT 4th
year
1
Contents
 Identify Java Card Technology.
 Java Card Architecture.
 Identify Elements of Java Card
Applications.
 Communicating with a Java Card Applet.
 Java Card Language Limitations .
2
Introduction
What is a Java Card?
Simple Answer:
 Adoption of Java Platform for usage on
Smart Cards.
3
Contd….
Dialect of Java for programming smartcards.
Subset of Java (due to hardware constraints)
 No threads, doubles, strings, garbage collection,
and very restricted API.
With some extras (due to hardware peculiarities)
 Communication via APDUs or RMI.
 Persistent & transient data in EEPROM &RAM.
 Transaction mechanism.
4
Smart Card ?
A smart card is a plastic
card that contains an
embedded integrated
circuit (IC).
Examples:
 Our very Own UID-CardUID-Card!
 Credit Cards
 Cell Phone SIM Cards
 …
5
Smart Cards are good! How?
 They store and process Information.
 Smart Cards Can be used to add
authentication and secure access to
information systems that require a
high level of security.
6
Properties of Smart Cards
 Highly secure-Tempering with one, results
in destruction of the information it
contains.
 Don’t contain battery- Become active
when connected with a card reader.
 Come in two forms Contact or Contact
less.
7
Contact or Contact Less?
Contact smart cards work
by communicating via
physical contact between a
card reader and the smart
card.
Contact less smart cards
communicate by means of
a radio frequency signal,
with a typical range of less
than 2 feet.
8
Java Card Architecture
Java Card platformJava Card platform
smartcard hardwaresmartcard hardwareappletapplet
appletapplet
appletapplet
Java Card
Virtual Machine
Java Card API
(mini OS)
9
Elements of Java Card
Application:
 A complete Java Card application consists of :
 A back-end application
 A host (off-card) application
 An interface device (card reader )
 The on-card applet
 User credentials
 And supporting software
10
Elements of Java Card
Application:
11
Back-End Application and
Systems
Provide connectivity to security systems
Example:
 In an electronic payment system, the back-
end application could provide access to
credit card and other payment information
12
The Reader-SideThe Reader-Side
 Consists of two parts:
 Host Application
 Card Acceptance Device
 Think of a bank machine:
 Host Application as the Computer that provides
interaction with the system
 Card Acceptance Device being where you put
your debit card in.
13
The Card-Side
 Elements:
 One or more Java Applets
 Card’s operating System
 Java Card Runtime
Environment(JCRE)
• Java Card Virtual
Machine
• Java Card Framework
and APIs
14
Communicating with a Java
Card Applet
 Two methods for communicating with Java
Card Applet:
1. Fundamental message-passing model ,
communication via APDUs, as defined in
ISO7816
2. Java Card Remote Method Invocation
(JCRMI) which is a subset of J2SE RMI
15
ISO 7816
• Standard describing the protocol for
communication between smartcard and
terminal .
• Messages are called APDUs (Application Protocol
Data Units), which are sequences of bytes in a
certain format
• Terminal sends command APDU to card, card
sends a response APDU back .
16
Message passing model
 All Java Card applets extend the Applet base class and
must implement the install() and process() methods.
 JCRE calls install() when installing the applet, and
process() every time there is an incoming APDU for the
applet .
 APDU: a logical data packet that's exchanged between
the CAD and the Java Card Framework (It is considered
as the center piece for the Message-Passing Model) .
17
Command APDU
18
CLA Class byte
INS Instruction byte
P1,P2 Parameters
Lc Length of data block
Data Lc bytes of data
Le Length of expected response
Response APDU
19
Data : Le bytes of data
(optional)
SW1, SW2 : Status word
(obligatory)
20
APDU coding conventions
Some conventions for CLA, INS etc. given in
ISO 7816-4 & Values for SW1, SW2(set by ISO).
Processing APDUs
 Every time there is an incoming APDU for a selected
applet:
 The JCRE invokes the applet's process() method
 The incoming APDU is passed as an argument
 The applet must:
• parse the command APDU
• process the data
• generate a response APDU
• and return control to the JCRE
21
22
22
appletappletappletapplet
Java Card I/O with APDUs
Java Card platformJava Card platform
appletapplet
appletapplet
terminalterminal
smartcard hardwaresmartcard hardware
command APDU
incl. applet ID
OS selects applet
and invokes its
process
method
Applet sends
response APDU
applet
executes
Java Card API packages
 Java.lang
Object, Exception, ...
 Javacard.framework
ISO7816, APDU, Applet, JCSystem
 Javacard.security
KeyBuilder, RSAPrivateKey, CryptoException
 Javacardx.crypto
Cipher
23
Java Card RMI (JCRMI)
 The second communication model relies on a subset of
the J2SE RMI distributed-object model
 a server application creates and makes accessible
remote objects
 a client application obtains remote references to
remote objects, and then invokes remote methods
on them.
 In JCRMI, the Java Card applet is the server, and the
host application the client
24
Summary of Java Card
Language Limitations
25
Smart Card Hardware
ROM
 Program code of VM, API, and pre-installed
applets.
EEPROM
 Persistent storage of the data, incl. objects with
their fields, and program code of downloaded
applets .
RAM
 Transient storage of data, eg stack.
26
THANK
YOU…
27

Javacardtech

  • 1.
  • 2.
    Contents  Identify JavaCard Technology.  Java Card Architecture.  Identify Elements of Java Card Applications.  Communicating with a Java Card Applet.  Java Card Language Limitations . 2
  • 3.
    Introduction What is aJava Card? Simple Answer:  Adoption of Java Platform for usage on Smart Cards. 3
  • 4.
    Contd…. Dialect of Javafor programming smartcards. Subset of Java (due to hardware constraints)  No threads, doubles, strings, garbage collection, and very restricted API. With some extras (due to hardware peculiarities)  Communication via APDUs or RMI.  Persistent & transient data in EEPROM &RAM.  Transaction mechanism. 4
  • 5.
    Smart Card ? Asmart card is a plastic card that contains an embedded integrated circuit (IC). Examples:  Our very Own UID-CardUID-Card!  Credit Cards  Cell Phone SIM Cards  … 5
  • 6.
    Smart Cards aregood! How?  They store and process Information.  Smart Cards Can be used to add authentication and secure access to information systems that require a high level of security. 6
  • 7.
    Properties of SmartCards  Highly secure-Tempering with one, results in destruction of the information it contains.  Don’t contain battery- Become active when connected with a card reader.  Come in two forms Contact or Contact less. 7
  • 8.
    Contact or ContactLess? Contact smart cards work by communicating via physical contact between a card reader and the smart card. Contact less smart cards communicate by means of a radio frequency signal, with a typical range of less than 2 feet. 8
  • 9.
    Java Card Architecture JavaCard platformJava Card platform smartcard hardwaresmartcard hardwareappletapplet appletapplet appletapplet Java Card Virtual Machine Java Card API (mini OS) 9
  • 10.
    Elements of JavaCard Application:  A complete Java Card application consists of :  A back-end application  A host (off-card) application  An interface device (card reader )  The on-card applet  User credentials  And supporting software 10
  • 11.
    Elements of JavaCard Application: 11
  • 12.
    Back-End Application and Systems Provideconnectivity to security systems Example:  In an electronic payment system, the back- end application could provide access to credit card and other payment information 12
  • 13.
    The Reader-SideThe Reader-Side Consists of two parts:  Host Application  Card Acceptance Device  Think of a bank machine:  Host Application as the Computer that provides interaction with the system  Card Acceptance Device being where you put your debit card in. 13
  • 14.
    The Card-Side  Elements: One or more Java Applets  Card’s operating System  Java Card Runtime Environment(JCRE) • Java Card Virtual Machine • Java Card Framework and APIs 14
  • 15.
    Communicating with aJava Card Applet  Two methods for communicating with Java Card Applet: 1. Fundamental message-passing model , communication via APDUs, as defined in ISO7816 2. Java Card Remote Method Invocation (JCRMI) which is a subset of J2SE RMI 15
  • 16.
    ISO 7816 • Standarddescribing the protocol for communication between smartcard and terminal . • Messages are called APDUs (Application Protocol Data Units), which are sequences of bytes in a certain format • Terminal sends command APDU to card, card sends a response APDU back . 16
  • 17.
    Message passing model All Java Card applets extend the Applet base class and must implement the install() and process() methods.  JCRE calls install() when installing the applet, and process() every time there is an incoming APDU for the applet .  APDU: a logical data packet that's exchanged between the CAD and the Java Card Framework (It is considered as the center piece for the Message-Passing Model) . 17
  • 18.
    Command APDU 18 CLA Classbyte INS Instruction byte P1,P2 Parameters Lc Length of data block Data Lc bytes of data Le Length of expected response
  • 19.
    Response APDU 19 Data :Le bytes of data (optional) SW1, SW2 : Status word (obligatory)
  • 20.
    20 APDU coding conventions Someconventions for CLA, INS etc. given in ISO 7816-4 & Values for SW1, SW2(set by ISO).
  • 21.
    Processing APDUs  Everytime there is an incoming APDU for a selected applet:  The JCRE invokes the applet's process() method  The incoming APDU is passed as an argument  The applet must: • parse the command APDU • process the data • generate a response APDU • and return control to the JCRE 21
  • 22.
    22 22 appletappletappletapplet Java Card I/Owith APDUs Java Card platformJava Card platform appletapplet appletapplet terminalterminal smartcard hardwaresmartcard hardware command APDU incl. applet ID OS selects applet and invokes its process method Applet sends response APDU applet executes
  • 23.
    Java Card APIpackages  Java.lang Object, Exception, ...  Javacard.framework ISO7816, APDU, Applet, JCSystem  Javacard.security KeyBuilder, RSAPrivateKey, CryptoException  Javacardx.crypto Cipher 23
  • 24.
    Java Card RMI(JCRMI)  The second communication model relies on a subset of the J2SE RMI distributed-object model  a server application creates and makes accessible remote objects  a client application obtains remote references to remote objects, and then invokes remote methods on them.  In JCRMI, the Java Card applet is the server, and the host application the client 24
  • 25.
    Summary of JavaCard Language Limitations 25
  • 26.
    Smart Card Hardware ROM Program code of VM, API, and pre-installed applets. EEPROM  Persistent storage of the data, incl. objects with their fields, and program code of downloaded applets . RAM  Transient storage of data, eg stack. 26
  • 27.