Smart Card si Tehnologia Java Card [603541]
Smart Card si Tehnologia Java Card
Cuprins
1. Introducere
1.1. Ce este un smart card?
1.2. Tipuri de smart card
1.3. Arhitectura smart card -urilor
1.3.1. Circuitele i ntegrate
1.3.2. Cpu
1.3.3. Coprocessor
1.3.4. Memorii
1.3.5. Comunicatii
1.3.6. Sistem de operare
1.4. Java Card
2. Tehnologia Java Card
2.1. Specificatii Java Card
2.2. Java Card Applet
2.3. Specificatiile Java Card
2.3.1.
Structura
CAPITOLUL I. Introducere
Evolutia rapida a tehnologiei a schimbat radi cal modul in care ne desfasu ram
activitatile in fiecare zi , multe dintre solutiile oferite devenind deja necesatati. Cu
greu ne putem imagina o lume fara cartelele SIM (Subscriber Iden tity Module)
utilizate in sistemul global pentru comunicatii mobile (GSM) sau cardurile bancare.
Acestea sunt doar doua din numeroasele utilizari ale cardurilor cu circuite integrate.
Succesul dobandit dupa introducerea pe piata sub forma cartelelor valorice folosite
in retele de telefoane fixe publice, ca alternativa la sistemele ce utilizau monede, au
adus cardurile cu circuite integrate in atentia multor dezvoltatori de solutii
tehnologice, favorizand dezvoltarea continua a conceptului .
Costurile mici de productie a cardurilor cu chip, dimensiunile reduse, fiabilitatea si
nivelul sporit de securitate oferit au determinat utilizarea micilor dispozitive cu
circuite integrate in aproape toate s olutiile informatice care necesita sisteme sigure
de auten tificare a posesorului .
Net superioare din toate punctele de vedere (capacitatea de stocare, fiabilitate,
securitate, etc) predecesoarelor cu banda magnetica, smart cardurile faciliteaza
operatiuni le off-line, mult mai rapide si mai putin costisitoare decat cele on -line
dependente de un validator. Dotarea cu microprocesor si sistem de operare propriu
permit utilizarea tehnologiei PKI (Public Key Infrastructure) sau a algoritmilor de
criptare performanti (3DES, DSA, RSA etc.), precum si alocarea memoriei sau
accesarea fisierelor.
Un card poate stoca concomitent mai multe aplicatii si le poate apela individual ,
devenind multifunctional. Un astfel de dispozitiv a fost introdus in Malaysia si
inglobeaza functiile de carte de identitate, portofel electronic, card bancar, permis
de conducere si pasaport biometric.
CAPITOLUL I.1. Ce este un smart card?
Smart Card -ul este un card , de cele mai multe ori realizat din plastic, prevazut cu un
circuit integrat ce detin e protocoale de acces logic la datele stocate si, in cazul
cardurilor mai performante , un microprocesor . Cardul cu microprocesor permite
operatiuni de adaugare , stergere sau manipulare a informatiei stocata pe card, in
timp ce cardul cu memorie chip ( folosite preponderent ca si cartele valorice ) poate
executa doar operatii pre -definite. Smart Cardul este un fel de micro calculator ,
beneficiind de un procesor , de memorie si de un „sistem de operare“. Cardurile cu
circtuite integrate pot stoca de 100 de ori mai multe informatii decat cele cu banda
magnetica, au o durata de viata mult mai mare si sunt totodata mult mai sigu re. Pot
fi implementate proceduri de securitate foarte complexe prin setarea zonelor de
acces in modurile necesare, iar accesul la date poate fi acordat numai dupa o
autentificare riguroasa efectuata prin intermediul sistemelor c riptografice
implementate de card si a aplicatiilor ce ruleaza exclusiv pe dispozitiv. Este un
mediu excelent pentru solutiile de securitate cu mai multi facturi cum ar fi combinatii
intre o parola sau un PIN (Personal Identification Number) si date biomet rice precum
amprente papilare , oculare sau vocale.
Date fiind complexitatea operatiunilor suportate cardurile cu microprocesor si
versatilitatea lor , in continuare vom face refe rire doar la acestea .
CAPITOLUL I.2. Arhitectura smart cardurilor
In ceea ce priveste componentele fizice care alcatuiesc un smart card acestea difera
de la un producator la altul , respectan d totusi reglementarile ISO 7816. Pe langa
dimensiune standard impuse, toate dispozitivele au o configuratie similara constand
intr-un proce sor, diverse tipuri de memorii si placute de contact , iar in cazul
cardurilor cu functie wireless, o antena integrata bazata pe t ehnologia RFID (Radio –
Frequency Identification). Pentru un nivel superior al sec uritatii smart cardurile pot
avea in componenta un co -proceso r destinat facilizarii calculelor si operatiilor
criptografice.
Procesorul este de cele mai multe ori un microcontroller cu set de instructiuni de 8,
16 sau 32 de biti cu o frecventa de ceas intre 5 si 30 MHz . Sunt folosite 3 tipuri de
memorie: ROM, EEPROM si RAM.
In memoria ROM (Read Only Memory) este stocat sistemul de operare al cardului
impreuna cu algoritmi de criptare , aceasta neputand fi modificata dupa finalizarea
procesu lui de productie a cardului. Mem oria EE PROM (Electrical Erasable
Programmable Read Only Memory) este mediul de stocare al datelor si aplicatiilor
furnizate de utilizatori si suporta operatiuni de stergere si rescriere . O alternativa la
memoria EEPROM o reprezinta memoria flash , cu o capacitate de stocare mai mare,
dar cu o operatiune de scriere mai lenta . Memorii ca FRAM (Ferroelectric RAM)
sau MRAM (Magnetic RAM) care folosesc polarizarea electrica , respectiv
magnetica pentru stocarea datelor in microcondesatori, respectiv microfilme
magnetice sunt favorite sa inlocuiasca in viitor memoria EEP ROM .
Pentru stocarea temporara a datelor si a rezultatelor operatiilor de calcul este folosita
o memorie RAM de cel mult 10 kB. Scrierea pe memoria RAM este de circa 1,000
de ori mai rapida decat cea pe EEPROM.
Microcipul prezinta la suprafata 8 placute de contact a
caror pozitionare ilustrata in Figura 1 este data de ISO
7816 prin intermediul carora sunt realizate atat alimen tarea
si punerea in functiune a dispozitivului, cat si transmiterea
datelor .
Vcc este placuta de alimentare electrica a microcipului cu o tensiune de 3 sau 5 V .
RST este punctul folosit pentru resetare. Resetarea este de asemenea efectuata la
fiecare realimentare cu curent.
Intrucat microcipul nu este dotat cu un ceas intern, placuta CLK este utilizata in
preluarea s emnalului de ceas extern.
GND este utilizata pentru valoarea de referi nta a tensi unii electric e necesar e Vcc.
Vpp este o placut a prin intermediul careia se poate alimenta microcipul cu un voltaj
mai mare, procedeu prin care sunt evitate intreruperi ale operatiunilor de scriere pe
memoriile EEPROM ale cardurilor de generatie mai veche.
Zona de contact I/O serveste la tranferul de date si comenzi transmise dinspre si catre
card.
Cele doua placute situate in partea de jos a zonei de contact nu au un rol definit, fiind
denumite generic RFU (Reserved for Future Use).
CAPITOLUL I. 3. Comunicarea smart card
Pentru a pune in functiune un smart card si a stabili o conexiune cu acest a este
necesar un d ispoziti v acc eptator de carduri. Sistemele de comunicare sunt impartite
in doua mari categorii: cititoare si terminale. Cititoarele de carduri sunt dispo zitive
ce se conecteaza prin intermediul unui port extern la un calcula tor in timp ce
terminalele sunt sisteme care au ca si componenta interna un cititor.
Cititoare de carduri au delimitate zone de contact pentru microcip sau antena. Zona
de contact pentru cip este precis delimitata, fiind necesara introducerea cardului intr –
un locas ce il imobilizeaza, in timp ce in cazul cititoarelor de antena este suficienta
plasarea cardului in proximitatea zonei de contact.
Odata i ndeplinite criteriile f izice impuse de cititor si card, se poate initia
comunicarea. Cardul este elementul pasiv al comunicarii, primind comenzi si
intorcand raspunsuri dupa procesarea acestora. Aplicatiile care transmit cardului
comenzi si proceseaza raspunsurile sunt numite aplicatii gazda .
Transmi siunea dintre aplicatie si card este real izata in mod mod half -duplex
(bidirectional alternand directia pachetelor de date ) folosind pachete APDU
(Application Protocol Data Unit). Fiecare comanda APDU primita de card genereaza
un raspu ns APDU.
Structura une i comenzi APDU , ilustrata in figura 2, este formata dintr -un header al
carui valori sunt obliga torii si un body optional. Header -ul contine 4 octeti: CLA –
clasa din care face parte instructiunea comenzii , INS – instructiunea data si doi
parametri utilizati de instructiune , P1 si P2 . Body -ul este alcatuit din Lc –
dimensiunea in octeti a campului Data field ce contine datele furnizate si Le –
dimensiunea in octeti a datelor asteptate in raspuns.
Raspunsul APDU (Figura 3) furnizat de card ca urmare a procesarii unei comenzi
este form at dintr -un body optional in care se regasesc datele asteptate ca raspuns al
instructiunii (daca valoarea Le din comanda a fost mai mare dec at 0) si un trailer
obligatoriu, ale carui campuri, SW1 si SW2 (Status Word) formeaza stare de
finalizare a instructiunii .
Pachetele APDU sunt transmise prin protocolul TPDU (Transmission Protocol Data
Unit), in majorita tea cazurile prin variantele T=0 (la nivel de octet) sau T=1 (la nivel
de bloc).
Toate conexiunile real izate prin intermediul unui citi tor sau terminal incep cu
resetarea cardului si transmiterea unui raspuns (ATR – answe r to reset) ce contine
informatii despre componentele hardware si protocoalele de comunicare ale
cardului.
Sistemul de operare al cardurilor este, de fapt, un set de instructiuni cu ajutorul
carora sunt efectuate toate operatiuni le (de comunicare, management al datelor,
accesarea functiilor criptografice sau aplicatii, etc.) .
Siste mul de fisiere al smart cardurilor este unul simplificat cu doar trei tipuri: fisierul
master (MF) , fisiere dedicate (DF) si f isiere elementare (EF). Fisierul master este
radacina sistemului s i contine celelalte doua tipuri. Fisierele dedic ate sunt
echivalentul fisierelor directori si pot contine atat fisiere lementare, cat si alte fisiere
dedicate. Fisierul elementar contine numai date.
CAPITOLUL I.4 Sistemele smart card
Un sistem smart card este u n sistem distribuit a carui dezvoltare consta in
implementa rea aplicatiilor gazda ce ruleaza pe calculator sau terminal si a celor
integrate si executate pe card . In functie de specificatiile cardului aplicatiile ce se
doresc a fi in carcate pot fi scrise in limbaj de asamblare sau limbaje mai puternice
precum C sau Java. Nevoia unei dezvoltari corelate a celor doua tipuri de aplicatii
necesare a impus proiectarea unor f ramework -uri si medii de dezvoltare speciale,
cum ar fi OpenCard Framework sau Open Smart Card Development Platform.
CAPITOLUL II Tehnologia Java Card
Java Card este o tehnologie ce permite dezvoltarea, testarea si incarcarea aplicatiilor
de mici dimensiuni (applet) pe smart carduri. Portabili tatea si modelul orientat pe
obiecte al limbajului Java au fost esential e in proiectarea mediului de dezvoltare pus
la dis pozitie de platforma Java Card .
CAPITOLUL II .1 Specificatii Java Card
Platforma Java Card are trei componente : JCVM (Virtual Machine), JCRE
(Runtime Environment) si API (Application Programming Interface). JCVM
defineste limbajul simplificat utilizat si masina virtuala necesara implementarii si
instantiarii aplicatiilor. JCRE conti ne implementarea masinii virtuale si diverse
utilitare de management al memoriei, aplicatiilor, etc. API inglobeaza clasele si
pachete necesare atat masinii virtuale, cat si aplicatiilor dezolvate ulterior. JCRE este
initilizat o singura data i n ciclu de viata al cardului. Perioada de timp de la initierea
contactului dintre card si cititor pana la intreruperea alimentarii sau retrage rea
cardului este numita sesiune. Masina virtuala a cardului rulea za incontinuu,
intervalele dintre doua sesiuni succesive fiind doar opriri temporar e ale masinii. La
fiecare noua sesiune intregul JCRE este readus la o stare consistenta.
Limbajul Java Card este un subset al Java ce contine mult mai putine facilitati, fiind
excluse cele nepotrivite unui dipozitiv cu capacitate mica de stocare si procesare a
datelor, dar pastrand in acelasi timp proprietatile de limbaj orientat pe obiecte.
Masina virtu ala Java Card se separa in doua : o partea regasita pe calculator si cea
de-a doua implementata pe card . Inainte ca cele doua sa comunice prin intermediul
cititorului, au loc o serie de transformari a fisierelor class si package. Spre deosebire
de varianta clasica a JVM, conversia in JCVM es te realizata la nivel de package .
Convertorul masinii de pe calculator gener eaza un fisier CAP (converted applet) in
baza pachetului existent, verificand consistenta si optimizand clasele din package.
Fisierul CAP este mai apoi transmis cardului unde este procesat de un installer, pr in
intermediul caruia sunt stocate datele din fisier , create legaturile cu celelalte clase
deja stocate pe card si initializate structurile de date . Installer -ul nu este o
componenta obligatorie a JCRE, dar reprezinta singura componenta capabila sa
primeasca si sa scrie in m emorie datele din fisierul CAP.
JCVM regasita pe card este compusa dintr -un interpretor de bytecode si metodele
native. Interpretorul executa codul transcris de installer si impreuna cu JCRE creaza
instanta applet -ului si obiectele definite de acesta.
In timpul unei sesiuni JCRE comunica prin comenzi si raspunsuri APDU. Odata
primita o comanda , fie este selectat appl et-ul indicat, fie sunt transmise datele applet –
ului selectat ca urmare a proc esarii unei comenzi anterioare, caz in care applet -ul
preia controlul, proceseaza inst ructiunile si intoarce un raspuns aplicatiei gazda,
dupa care cedeaza controlul catre JCRE.
Java Card API c ontine patru pachete impor tante: java.lang , javacard.framework ,
javacard.security si javacardx.crypto . Pachetul java.lang pentru java card este o
versiune mult mai modesta a pachetului cu acelasi nume utilizat de JVM. Pachetul
javacard.framework implementeaza clase si interfe te ce definesc executia si
interactiunea cu JCRE, comunicare a APDU, man ageme ntul resurselor, dar si clase
precum PIN.
CAPITOLUL II.2 Java Card Applet
Applet -urile Java Card nu sunt totuna cu applet -urile Java , nefiind destinate
incarcarii intr -un browser web, dar sunt incarcate si executate in instanta JCRE.
Toate applet -urile trebuie sa extinda clasa javacard.framework.Applet si sa
suprascrie metodele clasei de baza.
Fiecare instanta a unui applet are un indicator unic AID (application identifier)
utilizat in operatii de selectare si relationare intre difer ite pachete. Un AID a re o
dimensiune cuprinsa intre 5 si 16 octeti , fiind obtinut prin concatenarea a doua
valori : RID (resource idetifier) si PIX (proprietary identifier extension). RID este un
identificator unic cu o dimensiune de 5 octeti asignat de catre ISO producatorilor, in
timp ce PIX este identificatorul d at de dezvoltatorul applet -ului si da unicitate valorii
AID.
Pregatirea unui applet pentru incarcarea pe card se face cu ajutorul unui simulator
de JCRE. Sunt executate fisierele class si sunt testate comportamentul si rezultatele
applet -ului, inainte de conversia si generarea fisierului CAP.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Smart Card si Tehnologia Java Card [603541] (ID: 603541)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
