05-04-2012, 12:27 PM
Java Card Programming
563.11.1 Java Card Programming.ppt (Size: 134.5 KB / Downloads: 48)
Java Card Features
Receives clock and power from terminal
Three types of memory:
Random Access Memory (RAM)
Read-Only Memory (ROM)
Erasable Read-Only Memory (EEPROM)
Restricted Resources
Slow and simple microprocessor (8-bit)
RAM ~1Kb
ROM ~64Kb
EEPROM ~16-64Kb
Restricted Version of Java
The use of Java Cards
SIM cards in cell phones
Identity cards (government, health-care)
Financial cards supporting online and offline transactions
Smart tickets for mass transit
Developing a Java Card Applet
Write the Java source
Compile your source
Convert the class files into a Converted Applet (CAP) file (binary representation of classes and interfaces)
Verify that the CAP is valid (structure, valid bytecode subset, inter-package dependencies)
Install the CAP file
A Challenge in Java Card Programming
Java Cards have very restricted resources
Limited Memory
Limited Computing Power
Can we use terminal’s resources to overcome the restriction provided that the terminal is potentially untrusted?
At Penn we used terminal’s memory to overcome the first restriction
Future Work
The implementation stores its data on terminal without making sure that the server does not alternate the stored data (also it can just look at it!)
The structure of the code on card is complicated when we need Service Requests
inside a function call
inside a loop
It would be interesting to know if we can use the computational power of the terminal as well