Un'introduzione al Java Ring

La colonna di questo mese è divisa in due parti. La prima parte, contenuta in questo articolo, offre la storia del Java Ring e della tecnologia utilizzata per costruirlo, oltre a una breve discussione sull'idoneità di iButton per applicazioni di sicurezza e altre applicazioni. La seconda parte mostra come utilizzare l'API Java Card 2.0 con Java iButton e fornisce al lettore una prima panoramica su come progettare un'applicazione, scaricarla e quindi comunicare con un'applicazione in esecuzione su una Java Card.

È nei dettagli

Java Ring è un token elettronico estremamente sicuro basato su Java con un orologio in tempo reale inalterabile e in esecuzione continua e un packaging robusto, adatto a molte applicazioni. Il gioiello del Java Ring è il Java iButton , un microcomputer affidabile a chip singolo da un milione di transistor con una potente Java virtual machine (JVM) alloggiata in una custodia in acciaio inossidabile robusta e sicura. Progettato per essere completamente compatibile con lo standard Java Card 2.0 (per ulteriori informazioni su Java Card 2.0, vedere Java Developer del mese scorsocolonna, "Understanding Java Card 2.0") il processore dispone di un esponenziatore modulare ad alta velocità a 1024 bit per la crittografia RSA, grande capacità di memoria RAM e ROM e un orologio in tempo reale inalterabile. Il modulo confezionato ha solo un singolo contatto elettrico e un ritorno a terra, conforme alle specifiche del bus 1-Wire Dallas Semiconductor. La SRAM non volatile con supporto al litio offre un'elevata velocità di lettura / scrittura e un'impareggiabile resistenza alle manomissioni grazie alla cancellazione quasi istantanea di tutta la memoria quando viene rilevata la tempra, una caratteristica nota come azzeramento rapido. L'integrità dei dati e la funzione dell'orologio vengono mantenute per più di 10 anni. L'involucro in acciaio inossidabile di 16 millimetri di diametro ospita chip di dimensioni maggiori necessarie per un massimo di 128 kilobyte di RAM statica non volatile ad alta velocità. La confezione piccola ed estremamente robusta del modulo consente di attaccarlo all'accessorio di tua scelta per abbinare lo stile di vita individuale, come un portachiavi, un portafoglio, un orologio, una collana, un braccialetto o un anello da dito.

Sfondo storico

Nell'estate del 1989, Dallas Semiconductor Corp. ha prodotto i primi dispositivi di memoria incapsulati in acciaio inossidabile che utilizzano il protocollo di comunicazione 1-Wire Dallas Semiconductor. Nel 1990, questo protocollo era stato perfezionato e impiegato in una varietà di dispositivi di memoria autonomi. Originariamente chiamati dispositivi "memoria tattile", sono stati successivamente rinominati "iButtons". Confezionati come batterie, iButtons hanno un solo contatto elettrico attivo sulla superficie superiore, con il guscio in acciaio inossidabile che funge da terra.

I dati possono essere letti o scritti nella memoria in modo seriale tramite un semplice ed economico adattatore per porta seriale RS232C, che fornisce anche l'alimentazione richiesta per eseguire l'I / O. La memoria iButton può essere letta o scritta con un contatto momentaneo al recettore "Blue Dot" fornito dall'adattatore. Quando non è collegato all'adattatore della porta seriale, i dati della memoria vengono conservati nella memoria ad accesso casuale non volatile (NVRAM) da una fornitura di energia al litio a vita che manterrà il contenuto della memoria per almeno 10 anni. A differenza della memoria di sola lettura programmabile cancellabile elettricamente (EEPROM), la memoria NVRAM iButton può essere cancellata e riscritta tutte le volte che è necessario senza usurarsi. Può anche essere cancellato o riscritto alle alte velocità tipiche della memoria CMOS (Complementary Metal Oxide Semiconductor),senza richiedere la lunga programmazione di EEPROM.

Dalla loro introduzione, i dispositivi di memoria iButton sono stati utilizzati in grandi quantità come robusti supporti dati portatili, spesso in condizioni ambientali difficili. Tra gli usi su larga scala ci sono come vettori di tariffe di transito a Istanbul, in Turchia; come portadocumenti di manutenzione sui lati dei camion Ryder; e come identificatori delle cassette postali all'interno degli scomparti della posta delle cassette postali esterne del servizio postale degli Stati Uniti. Sono indossati come orecchini dalle mucche in Canada per tenere i registri delle vaccinazioni e sono usati dai lavoratori agricoli in molte aree come robusti sostituti dei cartellini.

La linea di prodotti iButton e le sue numerose applicazioni sono descritte nel sito Web iButton di Dallas Semiconductor, che è elencato nella sezione Risorse. Ogni prodotto iButton è realizzato con un numero di serie univoco di 8 byte e garantisce che non ci saranno mai due parti con lo stesso numero. Tra i più semplici iButton ci sono dispositivi di memoria che possono contenere file e sottodirectory e possono essere letti e scritti come piccoli dischi floppy. Oltre a questi, ci sono iButtons con aree file protette da password per applicazioni di sicurezza, iButton che contano il numero di volte in cui sono stati riscritti per garantire transazioni finanziarie, iButton con sensori di temperatura, iButton con orologi data / ora in esecuzione continua e persino iButtons contenenti potenti microprocessori.

Il dispositivo di sicurezza postale

Da oltre 10 anni, Dallas Semiconductor progetta, produce e vende una linea di microprocessori altamente sicuri che vengono utilizzati in decodificatori di TV satellitari, sportelli automatici, terminali per punti vendita e altre applicazioni simili che richiedono sicurezza crittografica e alta resistenza agli attacchi degli hacker. La specifica del dispositivo di sicurezza postale del programma Indicia basato sulle informazioni del servizio postale statunitense (USPS), intesa a consentire la stampa di affrancature statunitensi valide su qualsiasi PC, ha fornito la prima opportunità di combinare due aree di competenza quando un microprocessore sicuro è stato progettato in un iButton.

Il prodotto risultante, denominato Crypto iButton , combina elevate prestazioni del processore, primitive crittografiche ad alta velocità e protezione eccezionale contro gli attacchi fisici e crittografici. Ad esempio, il motore di esponenziazione modulare a interi grandi può eseguire esponenziazione modulare a 1024 bit con un esponente a 1024 bit in molto meno di un secondo. La capacità di eseguire esponenziali modulari interi di grandi dimensioni ad alta velocità è fondamentale per la crittografia RSA, lo scambio di chiavi Diffie-Hellman, lo standard di firma digitale (FIPS 186) e molte altre operazioni crittografiche moderne.

Un accordo tra Dallas Semiconductor e RSA Data Security Inc. fornisce una licenza a pagamento per chiunque utilizzi Crypto iButton per eseguire la crittografia RSA e le firme digitali in modo che non siano necessarie ulteriori licenze della tecnologia di crittografia RSA. L'elevata sicurezza è garantita dalla capacità di cancellare i contenuti della NVRAM in modo estremamente rapido. Questa caratteristica, l'azzeramento rapido, è un requisito per dispositivi ad alta sicurezza che possono essere soggetti ad attacchi da parte di hacker. Come risultato della sua elevata sicurezza, Crypto iButton dovrebbe vincere la certificazione di sicurezza FIPS 140-1 dal National Institute of Standards and Technology (NIST).

Uno speciale sistema operativo è stato progettato e memorizzato nella ROM di Crypto iButton per supportare la crittografia e le transazioni finanziarie generiche, come quelle richieste dal programma del servizio postale. Pur non essendo una macchina virtuale Java, il firmware E-Commerce progettato per questa applicazione presentava diversi punti di somiglianza con Java, incluso un design orientato agli oggetti e un interprete bytecode per interpretare ed eseguire l'E-Commerce Script Language progettato su misura da Dallas Semiconductor. È stato anche scritto un compilatore per compilare la rappresentazione del linguaggio di alto livello del linguaggio di script in un formato bytecode che potrebbe essere interpretato dalla VM di e-commerce. Sebbene il firmware e-commerce fosse destinato principalmente all'applicazione USPS,il firmware supporta una varietà di modelli generali di commercio elettronico adatti a molte applicazioni differenti. Il firmware E-Commerce supporta anche protocolli crittografici per lo scambio sicuro di informazioni come il Simple Key-Management for Internet Protocol (SKIP) sviluppato da Sun Microsystems Inc. L'iButton E-Commerce e l'SDK per la programmazione sono descritti in dettaglio nel Crypto Home page di iButton (vedi Risorse).

La connessione Java

Con l'esperienza nella progettazione del sistema operativo e-commerce e della VM per la piattaforma hardware Crypto iButton, il team di progettazione del firmware di Dallas Semiconductor ha potuto apprezzare prontamente i vantaggi di un nuovo sistema operativo per Crypto iButton basato su Java. Con un iButton Java, un vasto numero di programmatori Java esistenti potrebbe facilmente imparare a scrivere applet che potrebbero essere compilati con gli strumenti standard disponibili da Sun Microsystems, caricati in Java iButton ed eseguiti su richiesta per supportare un'ampia varietà di applicazioni finanziarie. La specifica Java Card 2.0 ha fornito l'opportunità di implementare una versione utile della JVM e dell'ambiente di runtime con le risorse limitate disponibili per un piccolo processore.

Crypto iButton fornisce anche un'eccellente piattaforma hardware per l'esecuzione di Java perché utilizza NVRAM per l'archiviazione di programmi e dati. Con 6 kilobyte di NVRAM esistente e la possibilità di espandere la capacità della NVRAM fino a 128 kilobyte nel fattore di forma iButton esistente, Crypto iButton può eseguire Java con uno stack Java relativamente grande situato nella NVRAM. Questa memoria funge da RAM convenzionale ad alta velocità quando il processore è in esecuzione e l'energia del litio preserva lo stato completo della macchina mentre il Java Ring è scollegato dal lettore. Non è quindi necessario trattare gli oggetti persistenti in un modo speciale: gli oggetti persistono o meno a seconda del loro ambito, quindi il programmatore ha il controllo completo sulla persistenza dell'oggetto. Come in Java standard,Java iButton contiene un Garbage Collector che raccoglie tutti gli oggetti che sono fuori ambito e ricicla la memoria per un utilizzo futuro. Le applet possono essere caricate e scaricate da Java iButton tutte le volte che è necessario. Tutte le applet attualmente caricate in un iButton Java vengono effettivamente eseguite a velocità zero ogni volta che l'iButton non è in contatto con un recettore Blue Dot.

Quando è stata proposta la specifica Java Card 2.0, Dallas Semiconductor è diventato un licenziatario JavaSoft. L'accordo prevedeva lo sviluppo di un'implementazione Java Card 2.0 e anche la progettazione di "più porzioni" che sfruttassero le capacità uniche offerte dalla NVRAM Crypto iButtons, come la capacità di supportare un vero stack Java e la garbage collection. Con l'aggiunta dell'orologio dell'ora del giorno alimentato al litio a funzionamento continuo e del motore di esponenziazione modulare ad alta velocità con numeri interi grandi, l'implementazione Java iButton di Java Card 2.0 con più parti promette un nuovo entusiasmante set di funzionalità per Java Card avanzata applicazioni.

Tieni i tuoi soldi al sicuro

La piattaforma hardware Crypto iButton offre un set unico di funzionalità speciali progettate espressamente per impedire che chiavi private e altre informazioni riservate diventino disponibili per gli hacker. La Figura 1 mostra un dettaglio della costruzione interna del Crypto iButton. Il die di silicio contenente il processore, la ROM e la memoria NVRAM è legato metallurgicamente al substrato barriera attraverso il quale vengono realizzati tutti i contatti elettrici. Questo substrato barriera e le tecniche di costruzione metallica a triplo strato impiegate nella fabbricazione del silicio negano efficacemente l'accesso ai dati archiviati nella NVRAM. Se si tenta di penetrare queste barriere, i dati della NVRAM vengono immediatamente cancellati.Questa tecnica di costruzione e l'uso della NVRAM per l'archiviazione di chiavi private e altri dati riservati fornisce un grado di sicurezza dei dati molto più elevato rispetto a quello offerto dalla memoria EEPROM. Il fatto che il percorso di comunicazione tra Crypto iButton e il mondo esterno sia limitato a una singola linea dati fornisce ulteriore sicurezza contro gli attacchi hardware limitando la gamma di segnali accessibili all'hacker.

Inoltre, il processore stesso è pilotato da un oscillatore ad anello non stabilizzato che opera in un intervallo da 10 a 20 megahertz, in modo che la frequenza di clock del processore non sia costante e non possa essere determinata con mezzi esterni. Ciò differisce dalla progettazione di dispositivi alternativi in ​​cui il segnale di clock del processore viene iniettato dal lettore ed è quindi determinato esattamente dal processore host. Il controllo esterno dell'orologio fornisce uno strumento prezioso agli hacker, poiché possono eseguire ripetutamente un ciclo di tale processore fino allo stesso punto della sua esecuzione semplicemente applicando lo stesso numero di cicli di clock. Il controllo dell'orologio offre anche un mezzo per indurre un errore di calcolo e quindi ottenere informazioni che alla fine possono rivelare chiavi di crittografia segrete.Un oscillatore a cristallo da 32 kilohertz viene utilizzato in Java iButton per azionare l'orologio dell'ora del giorno a una frequenza costante e ben controllata, indipendente dall'orologio del processore.

Dallas Semiconductor ha prodotto più di 20 milioni di memorie fisicamente sicure e computer con imballaggi rigidi ottimizzati per il possesso personale. Il Java iButton, quindi, è semplicemente l'ultimo e più complesso discendente di una lunga serie di prodotti che hanno dimostrato di avere un grande successo nel mercato. Con la sua armatura in acciaio inossidabile, offre l'imballaggio più durevole per una classe di prodotti che probabilmente subiranno un uso pesante e abuso come oggetti personali. Il fattore di forma iButton consente il collegamento a un'ampia varietà di accessori personali che includono anelli, cinturini per orologi, portachiavi, portafogli, braccialetti e collane, in modo che l'utente possa selezionare una variazione che si adatta al proprio stile di vita.