Java Card Technology
Java Card technology complements the Java ME platform. It slims down the Java platform for use within the severe memory and processing constraints of smart cards, a very specialized environment not suitable for general-purpose programming. A typical Java Card device has an 8- or 16-bit CPU running at 1 to 5 MHz and memory on the order of 1.2 K of RAM and 32 K of nonvolatile memory, typically EEPROM or flash.
The Java Card platform consists of the Java Card Virtual Machine, the Java Card Framework, security and remote invocation APIs, and Extension APIs, as illustrated in Figure 8.
Figure 8: The Java Card Platform
The Java Card specification, in version 2.2.2 at this writing, includes a carefully chosen subset of the Java programming language. It does not support large primitive data types such as long, double, float, strings, dynamic class loading, multithreading, and other features characteristic of Java technology. Java Card technology comes in three parts:
- The Java Card Virtual Machine specification defines a subset of the Java language and a VM for smart cards.
- The Java Card Runtime Environment (Java Card RE) specification defines the runtime behavior for smart cards.
- The Java Card API specification defines the core and extension Java packages and classes available on smart cards.
The Java Card Development Kit provides a reference implementation of the runtime environment and the VM, as well as other tools to help you develop applications based on Java Card technology, commonly called Java Card applets.
Table 8 summarizes the Java technology APIs available in the Java Card specification.
Table 8: Summary of Core Java Packages in the Java Card 2.2.2 Specification
Name
Description
java.lang
Subset of the Java SE core Java programming language for Java Card technology-based development
java.rmi
Base exception class and tagging interface for Java Card RMI functionality
java.io
Base IOException
class to complete the RMI exception hierarchy
javacard.framework
Framework of classes and interfaces for the core functionality of a Java Card applet
javacard.framework.service<
Framework of classes and interfaces for a service-based Java Card applet
javacard.security
Classes and interfaces in the Java Card security framework
Extension APIs
javacardx.apdu
Extension API that enables support for ISO 7816 specification defined optional APDU-related mechanisms
javacardx.biometry
Extension API that contains functionality for implementing a biometric framework on the Java Card platform
javacardx.crypto
Extension API that contains functionality, which may be subject to export controls, for implementing a security and cryptography framework on the Java Card platform
javacardx.external
Extension API that provides mechanisms to access memory subsystems that are not directly addressable by the Java Card RE on the Java Card platform
javacardx.framework.math
Extension API that contains common utility functions for BCD math and parity computations
javacardx.framework.tlv
Extension API that contains functionality for managing storage for BER TLV formatted data, based on the ASN.1 BER encoding rules of ISO/IEC 8825-1:2002, as well as parsing and editing BER TLV formatted data in I/O buffers
javacardx.framework.util
Extension API that contains common utility functions for manipulating arrays of primitive components -- byte
, short
, or int
javacardx.framework.util.intx
Extension API that contains common utility functions for using int
components
Java Card applets commonly include digital IDs and secure storage, and they are often found on subscriber identity module (SIM) cards that are inserted in cell phones to hold telephone and user account information.
Recently, Sun Microsystems introduced the concept of a protection profile, which defines a set of security requirements for the Java Card RE, the Java Card VM, the Java Card API Framework, and the on-card installer components. Its purpose is to help creators of Java Card technology-based products develop a secure Java Card platform and obtain high-level security certifications.
No comments:
Post a Comment