Java Card
# Java Card

Java Card è una tecnologia che consente di eseguire applicazioni basate sulla piattaforma 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. È ampiamente utilizzata nella SIM card (ad esempio nel campo della telefonia mobile) e nelle carte Bancomat.

I prodotti Java Card sono basati sulle specifiche sviluppate da Sun Microsystems. Molti prodotti Java card sono inoltre sviluppati su specifiche GlobalPlatform per l'utilizzo in sicurezza di applicazioni sulla carta.

## Caratteristiche

### 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);
* Crittografia (si usano algoritmi come DES, 3DES, AES, RSA, ecc.);
* Applet (macchina a stati che processa solo i comandi in arrivo e risponde inviando dati all'interfaccia del sistema).
