Java Card
Java Card è una tecnologia che consente di eseguire applicazioni basate su Java in sicurezza su smart card e dispositivi similari. Java Card è la versione di Java ottimizzata per dispositivi portatili. Java Card consente all'utente di programmare il dispositivo. E' ampiamente utilizzata nella SIM card (ad esempio nel campo della telefonia mobile) e nelle carte ATM.
I prodotti Java Card sono basati sulle specifice sviluppate da Sun Microsystems. Molti prodotti Java card sono inoltre sviluppati su specifiche GlobalPlatform per l'utilizzo in sicurezza di applicazioni sulla carta.
Le principali catatteristiche di questa tecnologia sono portabilità e sicurezza
Portabilità
Java Card intende definire uno standard di ambiente applicativo per smart card che consenta alla stessa applicazione Java Card di funzionare su diverse smart card, così come una applet Java gira su diversi computer. Come in Java, questo è consentito dalla combinazione di una "virtual machine" (Java Card Virtual Machine), ed una "runtime library".
Sicurezza
La tecnologia Java Card fu inizialmente sviluppata allo scopo di conservare in sicurezza informazioni sulle smart card. La sicurezza è data da diversi aspetti di questa tecnologia:
- Data encapsulation (i dati sono memorizzati dentro l'applicazione Java, separata da hardware e sistema operativo);
- Applet Firewall (le diverse applicazioni sono mutuamente separate da firewall che impediscono l'accesso ai dati);
- Cittografia (si usano algoritmi come DES, 3DES, AES, RSA, ecc.);
- Applet (stato della macchina che processa solo i comandi in arrivoe risponde inviando dati all'interfaccia del sistema).