240 likes | 552 Views
JAVA CARD. Presented by Asha Rani Sethi Roll # EI200167126. Under the guidance of Mr. Bhawani Shankar Pattnaik. Java card. Smart cards Java card. SMART CARDS. Smart cards. A smartcard is a miniature computer with limited resources ROM: 16-64K : OS + programmatuur
E N D
JAVA CARD Presented by Asha Rani Sethi Roll # EI200167126 Under the guidance of Mr. Bhawani Shankar Pattnaik
Java card • Smart cards • Java card
Smart cards • A smartcard is a miniature computer with • limited resources • ROM: 16-64K : OS + programmatuur • EEPROM: 4-64K: persistent data storage • RAM: 256 bye-4K: scratch-pad memory • minimal I/O • just a serial port no keyboard, screen, mouse
Mono-applicative Platform Dependent Programmed in machine-code specific to the chip One application, burnt into ROM Multi-applicative Platform Independent Application written in high-level language compiled into byte code Stored in EEPROM Smartcards versus Java card
What is a Java Card ? • A smart card: • – a Virtual Machine for running bytecode • • The standard is given by the Java Card Forum • – applications are applets • – standard library • – applets can be loaded on any standard JavaCard.
Language JC supports most features of the Java language : • Packages. • Dynamic object creation (new), • Virtual methods, Inheritance, Interfaces, • Exceptions. • The following types are not support • Multi-dimensional arrays. • long, float and double. • Char The int type is optional.
Java Card platform • The Java Card platform consists of • Virtual Machine (VM) • for interpreting byte codes • API providing • basic classes (e.g.. applet and PIN) • interface” to OS (e.g.. APDU class for I/O) • Partly written in Java Card, partly native code
Java Card Virtual Machine • The JVM is implemented in the Java Card’s ROM . • It controls access to all smart card resources such as • Memory • I/o • Serves as the smart card’s operating system • JVM executes Java byte code subset On the card • Provides the functions accessible from outside such as • signature • Log in • Loyality Application
Java Card API • Java Card peculiarities for which the API provides support include • a APDU class for communication of smartcard with terminal • a transaction mechanism to cope with card tears, i.e. interruptions to power supply.
RMI • Java Card supports Remote Method Invocation (RMI) • RMI means one VM (the JVM on the terminal) invokes method on another VM (the JCVM on the smartcard). • For Java Card, such a method invocation (incl. Its parameters and any return value it produces) is translated into APDUs handled by the platform.
How to use Applets • An Applet has to loaded in the card • Then must be • installed • registered • connected to JCRE via AID • Selected • Only oneselected at a time • Will get the next APDU
Java Card Security • Partition of objects: a context for each package. • Contexts • – Active context, • – Object creation context. • Active context = object accessed context => Allowed • Shareable interface method => Context switch
Analysis features • Based on Java Card Byte Code • Static Analysis • Object access classification • – secure, • – non-secure (security exception thrown), • – undecided.
Sharing Analysis • Code must be Byte Code verifier compliant Infer a set of possible creation contexts for every variable • Compare abstract object contexts and execution contexts for every access • – field modification • – field access • – method call • Control flow insensitive.
Classification of object accesses • • no security exception: • – abstract contexts are identical singletons • – static access • – shareable interface method call • • possible security exception: • – abstract contexts are compatible • • always security exception: • – abstract contexts are incompatible
Conclusion • Java Card is a safe foundation for many network security applications. • And don’t forget E-commerce / identification applications… • As Java Card moves closer to the Java mainstream, new opportunities will arise (DRM, etc).