JavaCard

Software

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

Auch bekannt als: Java Card

JavaCard

JavaCardJavaCardSoftwareJava applet platform for smart cards.Click to view → 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 EEPROMEEPROMHardwareNon-volatile card memory for data.Click to view →).

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 AIDAIDProtocolUnique identifier for card applications.Click to view → 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: GlobalPlatformGlobalPlatformSoftwareCard application management standard.Click to view → 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, SHASHACryptographyNIST hash functions for smart card integrity and signatures.Click to view →-256, larger key sizes
3.0.1 Classic 2009 ECCECCCryptographyEfficient public-key cryptography using elliptic curves.Click to view → support, enhanced crypto APIs
3.0.4 2011 AESAESCryptographyNIST symmetric block cipher for smart card encryption.Click to view →-CBC, improved I/O
3.0.5 2015 SHA-512, key agreement improvements
3.1 2019 TLS 1.2/1.3 support, larger APDUAPDUProtocolCommunication unit between card and reader.Click to view → 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. MULTOSMULTOSSoftwareHigh-security multi-app card OS.Click to view → offers higher security certification (EAL 7) and a simpler execution model but is limited to a smaller vendor ecosystem.

Häufig gestellte Fragen

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.