Cardul Java

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 17 aprilie 2016; verificările necesită 9 modificări .

Java Card  este o versiune a platformei Java pentru dispozitive cu resurse de calcul extrem de limitate. În comparație cu alte versiuni de Java , codul octet, cerințele pentru platforma de execuție și compoziția bibliotecilor standard au fost modificate.

Scopul principal al produsului, după cum sugerează și numele, este utilizarea în carduri inteligente . În acest sens, accentul principal a fost pus pe suportul algoritmilor criptografici standard.

Cardul Java vă permite să instalați și să rulați în siguranță aplicații Java mici ( applet -uri ) pe carduri inteligente și alte dispozitive cu o cantitate foarte limitată de memorie . Această platformă permite furnizorului să programeze dispozitive și să le personalizeze pentru o anumită aplicație. Cardul Java este utilizat pe scară largă în cartelele SIM și ATM -uri . Dezvoltat de Schlumberger [1] , lansat publicului la 29 octombrie 1996 [2] de mai multe companii, inclusiv divizia de carduri inteligente a lui Schlumberger de atunci (acum Gemalto ). Platforma software Java Card este descrisă de specificațiile dezvoltate de Sun Microsystems [3] . În plus, GlobalPlatform (o organizație de standardizare) dezvoltă standarde pentru instalarea în siguranță a applet -urilor Java Card pe dispozitive.

Portabilitate

Java Card descrie un mediu de rulare standard pe carduri inteligente pentru a permite aceleiași aplicații să ruleze pe dispozitive diferite, la fel cum aplicațiile Java SE / Java EE rulează pe computere hardware și software diferite, iar MIDleturile Java ME rulează  pe diferite dispozitive. Ca și în cazul platformelor Java mai sofisticate, acest lucru se realizează printr-o combinație între o mașină virtuală (Java Card Virtual Machine, JCVM ) și o bibliotecă de clase standardizată, care permite applet-ului să facă abstracție semnificativă de la anumite modele de carduri inteligente . Cu toate acestea, acest lucru încă nu garantează pe deplin portabilitatea aplicației pe orice card inteligent, deoarece există factori precum dimensiunea memoriei, performanța sau disponibilitatea unor interfețe speciale (de exemplu, protocoale de comunicare sau algoritmi criptografici).

Java Card OpenPlatform ( JCOP )

JCOP este un set de măsuri pentru dezvoltarea unui standard unic de sistem de operare cu o mașină virtuală Java Card pentru sisteme de identitate puternice și sisteme de plată. Dezvoltat de IBM cu integrare largă cu GlobalPlatform , organizațiile ICAO . Astăzi este practic sinonim cu JCVM .

Securitate

Securitatea datelor de pe cardurile inteligente a fost una dintre prioritățile de top în dezvoltarea cardului Java . Este oferit de diverse proprietăți ale platformei:

Diferențele dintre Java Card și Java

Limba

La nivel de limbaj, Java Card  este un subset al platformelor Java mai complete : toate constructele de limbaj Java Card sunt prezente în Java și se comportă exact în același mod. Mai mult, secvența de compilare standard folosește compilatorul Java normal (javac) fără opțiuni speciale și numai atunci rezultatul este procesat de un program specific Java Card pentru a obține un fișier care poate fi instalat pe un smart card. Cu toate acestea, multe caracteristici ale limbajului Java nu sunt acceptate în Java Card, cum ar fi tipurile char , double , float și long , cuvântul cheie tranzitoriu , tipuri enumerate ( enum ), matrice multidimensionale, finalizatoare , clonarea obiectelor, fluxuri .

Bytecode

Bytecode executat de mașina virtuală Java Card este funcțional un subset de bytecode Java , totuși este codificat diferit pentru a minimiza dimensiunea aplicației. Astfel, un applet Java Card ocupă de obicei mai puțin spațiu decât un applet ipotetic Java SE obținut prin compilarea aceluiași cod sursă. Această economisire a memoriei cardului inteligent are și un dezavantaj: lipsa suportului pentru unele caracteristici ale limbii (așa cum este descris mai sus) și limitarea dimensiunii applet-ului. Există modalități de a ocoli limita de dimensiune: de exemplu, prin împărțirea codului aplicației în pachete nu mai mari de 64 KB fiecare.

Dezvoltare

Tehnicile de programare utilizate într-o aplicație tipică Java Card diferă semnificativ de cele utilizate în Java SE. Cu toate acestea, faptul că Java Card este un subset strict al limbajului Java accelerează foarte mult curba de învățare a tehnologiei și, de asemenea, face posibilă utilizarea mediului Java SE pentru a dezvolta și depana aplicații. Mai mult, puteți rula și depana împreună în același mediu atât aplicația Java Card, cât și partea sa de server, care ar trebui să fie rulată pe un computer.

Cu toate acestea, ar trebui să verificați periodic dacă aplicația respectă restricțiile Java Card, compilând-o la bytecode corespunzător, precum și să o testați pe un smart card real pentru a vă face o idee despre performanța unui dispozitiv real.

Link -uri

Vezi și

Note

  1. Cererea provizorie din SUA Nr. 60/029.057 depus oct. 25, 1996, cererea neprovizorie nr. 957512 depus la 24.10.1997, eliberat ca brevet
  2. Sun Microsystems anunță Java Card API , Business Wire, oct. 29, 1996
  3. Prezentare generală a platformei Java Card pe site-ul web Sun. Preluat la 2 august 2008. Arhivat din original la 20 iulie 2008.
  4. Întrebări frecvente privind tehnologia Java Card . Preluat la 8 august 2008. Arhivat din original la 29 mai 2008.