JavaCard

Software

A technology enabling Java-based applets to run on smart cards and secure elements, defined by Oracle.

Juga dikenal sebagai: Java Card

JavaCard

JavaCard is a technology that enables Java-based applications (applets) to run securely on smart cards and other Secure Elements. Originally developed by Schlumberger and now maintained by Oracle, JavaCard provides a portable, multi-application platform where applets from different providers can coexist on a single card, isolated from each other by the JavaCard firewall.

JavaCard Architecture

The JavaCard stack runs on top of the smart card hardware:

Layer Component Function
Application JavaCard applets Business logic (payment, identity, access)
Framework JavaCard API Standard class libraries (crypto, I/O, security)
Runtime JCRE (JavaCard Runtime Environment) Bytecode interpreter, transaction manager, firewall
OS Native card OS Hardware abstraction, APDU dispatch, file system
Hardware Secure Element CPU, EEPROM/Flash, crypto coprocessor

The JCRE provides a subset of the Java language — no floating point, no garbage collection, no threads, no dynamic class loading — optimized for the constrained resources of a smart card (typically 4 KB RAM, 128-512 KB ROM, 32-256 KB EEPROM).

Applet Lifecycle

JavaCard applets are managed through GlobalPlatform commands:

  1. Install: The applet CAP file (Converted APplet) is loaded onto the card via a secure channel (SCP03) and instantiated with a unique AID
  2. Select: A reader sends a SELECT APDU with the applet's AID to make it the active application
  3. Process: The applet receives command APDUs and returns response APDUs through its process() method
  4. Deselect: When another applet is selected, the current applet's deselect() method is called
  5. Delete: GlobalPlatform DELETE command removes the applet and reclaims storage

JavaCard Versions

Version Year Key Features
2.1 1999 First multi-application platform
2.2.x 2003-2006 Biometric API, SHA-256, larger key sizes
3.0.1 Classic 2009 ECC support, enhanced crypto APIs
3.0.4 2011 AES-CBC, improved I/O
3.0.5 2015 SHA-512, key agreement improvements
3.1 2019 TLS 1.2/1.3 support, larger APDU buffers
3.2 2024 Post-quantum cryptography readiness, EdDSA

JavaCard vs MULTOS

JavaCard and MULTOS are the two major multi-application smart card platforms. JavaCard dominates the market with 90%+ share due to its Java-based tooling, wider vendor support (NXP JCOP, Infineon SLE, Thales IDPrime), and GlobalPlatform management layer. MULTOS offers higher security certification (EAL 7) and a simpler execution model but is limited to a smaller vendor ecosystem.

Pertanyaan yang Sering Diajukan

The smart card glossary is a comprehensive reference of technical terms, acronyms, and concepts used in smart card technology. It covers protocols (APDU, T=0, T=1), security (Common Criteria, EAL, HSM), hardware (SE, EEPROM, contact pad), and applications (EMV, ePassport, eSIM). It serves developers, product managers, and engineers.

Yes. SmartCardFYI provides glossary definitions in 15 languages including English, Korean, Japanese, Chinese, Spanish, Portuguese, Hindi, Arabic, French, Russian, German, Turkish, Vietnamese, Indonesian, and Thai.