JavaCard vs MULTOS
Card vs CardJavaCard dominates with 90%+ market share and Java-based development, while MULTOS offers higher EAL certification and stronger post-issuance security model.
JavaCard vs MULTOS
JavaCard and MULTOS are the two principal open multi-application smart card platforms. Both support loading and running multiple applications in isolated security domains on the same chip. They compete most directly in high-security, multi-application scenarios such as banking, government identity, and payment cards.
Overview
JavaCardJavaCardSoftwareJava applet platform for smart cards.Click to view → uses a Java bytecode virtual machine (JCVM) on the card. Applets are written in a subset of Java, compiled to bytecode, converted to JavaCard CAP files, and loaded via GlobalPlatformGlobalPlatformSoftwareCard application management standard.Click to view → secure channel. JavaCard is governed by Oracle (specification) and GlobalPlatform (lifecycle management). It is the dominant multi-application platform globally — most EMVEMVApplicationGlobal chip payment card standard.Click to view → payment cards, SIMSIMApplicationSmart card for mobile network authentication.Click to view → cards, and government eIDeIDIdentityNational ID with embedded chip.Click to view → cards run JavaCard.
MULTOSMULTOSSoftwareHigh-security multi-app card OS.Click to view → (Multi-application Operating System) uses a MULTOS Executive and supports multiple application languages: MEL (MULTOS Executable Language, a low-level bytecode), and optionally C or Java via certified compilers. MULTOS is governed by MULTOS International. Applications are loaded via MULTOS ALU (Application Load Unit) signed by the MULTOS CA — no application can be loaded without MULTOS CA authorization, providing stronger supply chain control than GlobalPlatform's open loading model. MULTOS has strong adoption in UK and European banking card programs.
Key Differences
- Platform VM: Java bytecode / JCVM (JavaCard) vs. MEL bytecode / MULTOS Executive (MULTOS)
- Governance: Oracle spec + GlobalPlatform (JavaCard) vs. MULTOS International (MULTOS)
- Application loading authorization: GlobalPlatform security domain with issuer keys (JavaCard) vs. MULTOS CA-signed ALU required (MULTOS)
- Language support: Java subset (JavaCard); MEL, C, Java-to-MEL (MULTOS)
- Security certification: JavaCard chips — CC EAL4–6+; MULTOS — historically strong CC EAL4-5+ focus
- Market share: JavaCard — dominant globally (EMV, SIM, eID); MULTOS — strong in UK/EU banking, niche elsewhere
- Application ecosystem: JavaCard — thousands of certified applets from hundreds of vendors; MULTOS — smaller but curated ecosystem
- Multi-app isolation: Both provide hardware-enforced application firewall
Use Cases
JavaCard is the default for: - EMV payment cards (virtually all) - SIM/eSIMeSIMApplicationProgrammable embedded SIM chip.Click to view → (ETSI mandates JavaCard-compatible platform) - Government eID and PIVPIVIdentityUS federal identity card standard.Click to view →/CACCACIdentityUS DoD identification smart card.Click to view → - Transit cards requiring contact or dual-interface - Any deployment requiring access to the large global JavaCard applet ecosystem
MULTOS is preferred for: - UK bank card programs that historically standardized on MULTOS (Barclays, HSBC legacy programs) - High-security banking deployments where MULTOS CA application authorization is a security feature - Deployments prioritizing MEL-level performance (MEL bytecode executes faster than JCVM bytecode for some operations)
Verdict
JavaCard is the safe default for new deployments due to its dominant market position, larger applet ecosystem, and ubiquitous toolchain support. MULTOS offers a genuine security advantage in its CA-controlled application loading model, which prevents unauthorized applets from being loaded even if the card's security domain keys are compromised. For UK financial institutions with existing MULTOS programs, continuity makes sense. For new deployments globally, JavaCard's ecosystem breadth and standards compliance make it the logical choice unless MULTOS's specific security model addresses a documented threat scenario.
Empfehlung
JavaCard for ecosystem breadth and developer availability; MULTOS for maximum certified security.
Häufig gestellte Fragen
JavaCard runs a subset of the Java Virtual Machine on the card, allowing applets written in the Java programming language to be loaded and executed in isolated sandboxes. MULTOS (Multi-application Operating System) uses the MEL (MULTOS Executable Language) — a stack-based virtual machine with formal security proofs — and a mathematically verified application separation model. Both support multi-application smart cards, but MULTOS emphasizes provable security; JavaCard emphasizes developer familiarity.
JavaCard holds a dominant market share in payment cards due to the large pool of Java developers, broad chip vendor support (NXP, Infineon, Samsung, Thales), and GlobalPlatform integration. MULTOS is preferred by some Europay-origin issuers and high-security deployments that value its formal separation proofs and certified execution model. Both platforms are EMVCo-approved for EMV payment applications.
No — JavaCard and MULTOS are distinct operating systems with incompatible virtual machine architectures and bytecode formats. A card ships with one OS pre-installed by the chip manufacturer; a JavaCard applet (.cap file) cannot run on MULTOS, and a MEL application cannot run on JavaCard. Card personalization bureaus must manage separate card body inventory for each OS they support.
MULTOS was designed from the ground up with formal security proofs for application separation and has historically been certified at EAL5+. JavaCard platforms also achieve EAL5+ or EAL6 certifications, but the formal verification is applied to the chip hardware and OS rather than the VM execution model itself. In practice, both platforms meet the security requirements of the most demanding payment and government identity programs.
Each comparison provides a side-by-side analysis covering interface type, chip architecture, security certification, communication protocol, application domains, and cost. Card-vs-card comparisons focus on specific products, while cross-technology comparisons evaluate broader categories like Contact vs Contactless or EMV vs MIFARE.