SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

Zavod za elektroniku, mikroelektroniku, računalne i inteligentne sustave

 

 

SEMINARSKI RAD

 

VIŠENAMJENSKA PAMETNA KARTICA

 

Robert Đurin

0160010184

 

Mentor: doc. dr. sc. Marin Golub

 

Izvorni kod, java izvršni kod(class datoteke) i paketi potrebni za rad aplikacije: aplikacija.zip

SADRŽAJ

 

SADRŽAJ. I

1. UVOD.. 1

2. OSNOVNO O PAMETNIM KARTICAMA.. 2

2.1 Što je to pametna kartica. 2

2.2 Povijest pametne kartice. 3

2.3 Vrste pametnih kartica. 3

2.3.1 Memorijske kartice. 3

2.3.2 Kontaktne mikroprocesorske kartice. 4

2.3.3 Bezkontaktne mikroprocesorske kartice. 5

2.3.4 Kombinirane mikroprocesorske kartice. 5

3. STANDARDI PAMETNIH KARTICA.. 7

3.1 ISO-7816 standard. 7

3.1.1 ISO-7816-1 standard. 8

3.1.2 ISO-7816-2 standard. 8

3.1.3 ISO-7816-3 standard. 9

3.1.4 ISO-7816-4 standard. 9

3.1.4 ISO-7816-5 standard. 9

3.1.4 ISO-7816-6 standard. 10

3.2 EMV standard. 10

3.3 GSM  standard. 10

4. PRIMJENA PAMETNIH KARTICA.. 12

4.1 Elektroničko plaćanje. 12

4.1.1 Elektronički novac. 12

4.1.2 Kartice sa spremljenim vrijednostima(Stored Value Card) 12

4.2 Sigurnost i autentifikacija. 13

4.2.1 Korištenje kriptografije. 13

4.2.2 Identifikacija. 13

4.2.3 Kontrola pristupa. 14

4.2.4 Digitalni certifikat 14

4.2.5 Pristup na računalo. 14

4.3 Transport 15

4.4 Telekomunikacije. 15

4.5 Zdravstvena kartica. 15

5. DATOTEČNI SUSTAV I KONTROLA PRISTUPA.. 16

5.1 Datotečna logička struktura. 16

5.1.1 Pristup datotekama. 17

5.1.2 Glavna datoteka (Master File – MF) 17

5.1.3 Namjenska datoteka (Dedicated File – DF) 17

5.1.4 Elementarna datoteka (Elementary File – EF) 18

5.1.4.1 Transparentna datoteka. 18

5.1.4.2 Linearna datoteka s blokovima jednake veličine. 19

5.1.4.3 Linearna datoteka s blokovima promjenjive veličine. 19

5.1.4.4 Ciklička datoteka s blokovima jednake veličine. 19

5.2 Sigurnost datotečnog sustava. 20

5.2.1 Doseg pojedinog atributa pristupa. 22

6. KOMUNIKACIJSKI MODEL.. 23

6.1 Odgovor na resetiranje ATR ( Answer to reset) 23

6.2 Protokoli za komuniciranje. 24

6.2.1 T=0 protokol 24

6.2.2 T=1 protokol 25

6.3 APDU (Application Protocol Data Units) 26

6.3.1 APDU naredba. 27

6.3.2 APDU odgovor 28

7. JAVA CARD TEHNOLOGIJA.. 30

7.1 Elementi Java Card aplikacije. 30

7.1.1 Pomoćne aplikacije i sistem.. 31

7.1.2 Aplikacije poslužitelja(host) 31

7.1.3 Java Card apleti na kartici i okolina. 32

7.2 Komuniciranje s Java Card apletom (pristup pametnoj kartici) 32

7.2.1 Komuniciranje preko poruka. 32

7.2.2 Java Card Remote Metode Invocation(JCRMI) model 33

7.2.3 Security and Trust Services API(SATSA) 33

7.3 Java Card Stogovni Stroj(JCVM) 34

7.4 Java Card Izvršna Okolina(JCRE) 34

7.4.1 Životni ciklus Java Card apleta. 35

7.4.2 Java Card sjednica i logički kanali 36

7.4.3 Izolacija apleta i dijeljenje objekata. 36

7.5 Java Card API(Application Programming Interface) 38

7.5.1 java.io. 38

7.5.2 java.lang. 38

7.5.3 java.rmi 38

7.5.4 javacard.framework. 39

7.5.5 javacard.framework.service. 39

7.5.6 javacard.security. 40

7.5.7 javacardx.crypto. 40

8. IMPLEMENTACIJA VIŠENAMJENSKE PAMETNE KARTICE.. 41

8.1 Višenamjenska pametna kartica. 41

8.1.1 Identifikacijska kartica. 41

8.1.2 Vozačka dozvola. 41

8.1.3 Bankovni račun. 41

8.2  Izvedba višenamjenske pametne kartice. 42

8.2.1 Apleti za pametnu karticu. 42

8.2.2 Terminal 42

8.3 Sigurnosni mehanizmi i komunikacija. 45

8.4 Opis razreda za implementaciju višenamjenske pametne kartice. 48

8.4.1 Razredi za aplete koje izvodi pametna kartica. 48

8.4.2 Razredi za terminal 49

8.4.2.1 Razredi za implementaciju kriptografskih funkcija. 49

8.4.2.2 Razredi za komunikaciju s pametnom karticom.. 49

8.4.2.3 Razredi za izradu grafičkog sučelja. 50

9.  ZAKLJUČAK.. 51

10. LITERATURA.. 52

11. DODATAK.. 53

11.1 Korištene kratice. 53

 

 


1. UVOD

 

            Razvoj tehnologije omogućio je minijaturizaciju uređaja. S tim razvojem nastala su i mala računala koja se mogu smjestiti na jedan čip. Ova mala računala omogućila su nastanak pametne kartice, čija osnova je malo ugrađeno računalo na plastičnoj kartici. Razvoj tehnologije donio je i veću potrebu za sigurnošću. Pametna kartica s čipom uvelike doprinosi sigurnosti korisnikovih podataka i sredstava spremljenih na kartici te mogućnosti korištenja različitih usluga jednom pametnom karticom, dok joj njezina veličina omogućuje laku prenosivost.

 

            Ovaj seminar u početku uvodi u osnovna znanja o pametnim karticama, opisuju se neki važniji standardi te primjena pametne kartice u različitim aplikacijama, opisuje se datotečna struktura pametne kartice te pristup datotekama na pametnoj kartici, nakon toga slijedi opis komunikacije pametne kartice s uređajima za prihavat pametnih kartica. Jedan od važnijih elemenata koji je potreban za razvoj aplikacija  za pametne kartice je Java Card tehnologija koja je također opisana.

 

            Na kraju seminara opisuje se praktični rad u kojem se radilo na više aplikacija za pametnu karticu koja se tada može upotrebljavati u različitim vrstama usluga čime ona postaje višenamjenska pametna kartica.


2. OSNOVNO O PAMETNIM KARTICAMA

 

            Pametnu karticu(eng. Smart Card) možemo opisati kao plastičnu karticu sa umetnutim čipom koji sadrži mikroprocesor. Pametne kartice ne sadrže u sebi nikakav uređaj za napajanje već napajanje dobivaju od uređaja za prihvat kartica CAD(Card Acceptance Device). Pametna kartica izgleda kao normalna kreditna kartica s razlikom što na sebi ima metalne kontakte (kod kontaktnih kartica). Za razliku od kreditne kartice s magnetnom trakom, pametne kartice pružaju puno veći nivo sigurnosti za podatke koji su na kartici, a također se jedna kartica može koristiti za više različitih usluga, a za svaku uslugu zadužen je određeni program spremljen na kartici.

 

2.1 Što je to pametna kartica

 

            Pametna kartica se ponekad definira kao kreditna kartica s "mozgom", a za mozak se smatra malo ugrađeno računalo na čipu koji je umetnut u karticu. Zbog ovog takozvanog ugrađenog "mozga", pametne kartice su poznate i kao čip-kartice ili IC-kartice(integrirani krug, eng. integrated circuit). Neki tipovi kartica mogu imati samo trajnu memoriju sa upisanim sadržajem, dok druge imaju ugrađen mikroprocesor. Uglavnom plastična kartica sa ugrađenim čipom u sebi može se smatrati pametnom karticom, međutim u većini slučajeva pametnom karticom se smatra kartica koja ima ugrađeni mikroprocesor.

 

            Kapacitet za spremanje podataka kod pametnih kartica je mnogo veći od kapaciteta kod magnetskih kartica. Ukupan kapacitet magnetske kartice je 125B, dok se kapacitet pametnih kartica kreće najčešće od 1KB do 64KB. Drugim riječima jedna pametna kartica od 64KB može spremiti podataka isto kao i 500 magnetskih kartica.

 

            Očigledno je da je veliki kapacitet prednost u korištenju pametnih kartica, ali jednom od najvažnijih funkcija pametne kartice smatra se činjenica da podaci spremljeni na pametnu karticu mogu biti zaštićeni od neovlaštenog pristupa i mijenjanja podataka. Unutar pametne kartice, pristup memoriji kontroliran je sigurnim logičkim krugovima. Kako pristup podacima  na kartici može biti jedino preko serijskog sučelja koje je nadgledano i upravljano operacijskim sustavom i sistemom sigurne logike, povjerljivi podaci zapisani na kartici su zaštićeni od neovlaštenog vanjskog pristupa. Ovi zaštićeni podaci mogu jedino biti obrađeni mikroprocesorom unutar kartice.

 

            Zbog toga što je teško pročitati ili zapisati podatke na karticu bez autorizacije te zbog toga što pametna kartica može stati u svaki džep, pametna kartica je isključivo primjerana za sigurnu pohranu podataka. Bez dozvole vlasnika kartice, podaci ne mogu biti čitani ni mijenjani.

 

2.2 Povijest pametne kartice

 

            Karticu sa umetnutim mikroprocesorom prvo su izmislila dva Njemačka inženjera 1967. godine. Međutim ova kartica nije bili predstavljena javnosti sve dok francuz Roland Moreno nije objavio patent na pametne kartice u Francuskoj 1974. godine. Razvojem poluvodičke tehnologije u proizvodnji mikroprocesora, cijena izrade pametne kartice se jako smanjila. Probijanje pametne kartice na tržište dogodilo se 1984. godine kada je francuska pošta i telekomunikacije pustilo u promet telefonske kartice sa čipom.

 

            1987. godine donijeta je specifikacija ISO-7816 za pametne kartice od međunarodnog odbora za standarde (International Standard Organisation – ISO)  i od tada format pametne kartice je standardiziran. U današnje vrijeme kartice različitih proizvođača mogu komunicirati sa terminalima koristeći zajednički set naredaba.

 

2.3 Vrste pametnih kartica

 

            Prema fizičkim karakteristikama čip-kartice mogu biti razvrstane u četiri glavne kategorije:

 

-         memorijske kartice

-         kontaktne mikroprocesorske kartice

-         bezkontaktne mikroprocesorske kartice

-         kombinirane mikroprocesorske kartice

 

2.3.1 Memorijske kartice

 

            Memorijske kartice su kartice koje na umetnutom čipu imaju samo memoriju i pristupnu logiku. Slično kao i kartice sa magnetskom trakom, memorijske kartice mogu biti korištene samo za spremanje podataka tj. nema mogućnost obrade podataka. Bez ugrađenog mikroprocesora, koristi se sinkroni komunikacijski mehanizam između čitača i kartice gdje je komunikacijski kanal pod direktnom kontrolom čitača. Pohranjeni podaci na kartici mogu biti čitani odgovarajućom naredbom.

 

            U starijim  memorijskim karticama nema ugrađene sigurne kontrolne logike. Zbog toga neovlašten pristup podacima na kartici ne može biti spriječen. Današnje memorijske kartice imaju u čip ugrađenu i sigurnu logiku koja omogućuje da pristup sigurnoj zoni imaju samo korisnici sa odgovarajućom lozinkom.

 


2.3.2 Kontaktne mikroprocesorske kartice

 

            Kontaktne mikroprocesorske kartice su kako i naziv govori kartice koje imaju ugrađen mikroprocesor na umetnutom čipu, a prijenos podataka može biti samo onda kad je kartica umetnuta u uređaj za prihvat kartica CAD(eng. Card Acceptance Device) ili čitač kartica za što kartica ima osam zlatnih kontakata na sebi kojima se električki spaja sa CAD uređajem..

 

            Na čipu su uz mikroprocesor i ostale komponente koje sačinjavaju arhitekturu računala, dakle komponente koje su na čipu su:

 

-         mikroprocesor

-         maskirajuća ROM memorija

-         nepromjenjiva memorija (EEPROM)

-         RAM memorija

-         Ulazno/izlazni(I/O) port

 

Vanjski izgled ovih kartica baziran je na ISO-7816-1 i ISO-7816-2 standardu koji određuje dimenzije kartice te smještaj kontakata na kartici i njihov razmještaj, struktura kontaktne pametne kartice prikazana je na slici 2.1.

 

Slika 2.1 – Struktura kontaktne pametne kartice

 

 

 Razlika između ovih kartica i memorijskih je u tome što ove kartice mogu izvoditi programe koji su pohranjeni u trajnu memoriju koja je obično EEPROM memorija.

 

Jedna od glavnih mogućnosti mikroprocesorskih pametnih kartica je sigurnost. U stvari kontaktne mikroprocesorske pametne kartice su uglavnom prilagođene za sigurni prijenos podataka. Ako se korisnik ne autentificira uspješno, podacima spremljenim na kartici neće se moći pristupiti. Također ako je kartica izgubljena, podaci spremljeni na kartici neće biti izloženi neovlaštenom pristupu ako su ti podaci prikladno spremljeni na kartici. Pošto je sama kartica malo računalo ona može sigurno obraditi unutarnje podatke te slati rezultat na I/O port.

 

2.3.3 Bezkontaktne mikroprocesorske kartice

 

            Kontaktne pametne kartice nisu pogodne za sve tipove aplikacija, osobito kada su uključene masovne transakcije, npr. u transportu, i kada je potrebno da se podaci sa kartice pročitaju u vrlo kratkom periodu vremena, kontaktne kartice kod kojih je potrebno da se umetnu u CAD uređaj prije nego dođe do prijenosa podataka nisu baš dobar izbor. Korištenjem elektro-magnetskih valova bezkontaktne pametne kartice mogu slati podatke prema CAD uređaju sa udaljenosti od nekoliko cm do 50 cm. Transakcija kod ovih kartica može se izvršiti tako da se kartice uopće ne vadi iz korisnikovog novčanika.

 

            Ove kartice isto kao i kontaktne nemaju nikakvo unutarnje napajanje već koriste tehnologiju koja omogućava CAD uređajima da napaja i komunicira s karticom, bez fizičkog kontakta s karticom, preko elektromagnetskih valova. Struktura bezkontaktne kartice prikazana je na slici 2.2.

 

Sika 2.2 – Struktura bezkontaktne pametne kartice

 

            Bezkontaktne pametne kartice su pogodne kod velikog broja pristupa kartici i prijenosa podataka, ali nisu pogodne kad je potreban prijenos velike količine podataka od kartice prema CAD uređaju. Također jedan od nedostataka bezkontaktnih kartica je taj da može doći do transakcije između CAD uređaja i kartice bez znanja korisnika.

 

2.3.4 Kombinirane mikroprocesorske kartice

 

            Kontaktne i bezkontaktne kartice koriste dva različita protokola za komuniciranje s CAD uređajem. Obje kartice imaju svoje prednosti i nedostatke. Kontaktne pametne kartice imaju veći nivo sigurnosti, dok bezkontaktne kartice imaju bolje i jednostavnije za korištenje  transakcijsko okruženje. U pokušaju da se korisnicima omoguće prednosti jednih i drugih kartica. Postoje dva načina na koji se to može načiniti:

 

1.      pametna kartica ima dva sučelja za komunikaciju, jedno je kontaktno, a drugo je bezkontaktno tako da kartica može komunicirati sa CAD uređajem tako da se stavi u njega ili preko elektromagnetskih valova

2.      kontaktna pametna kartica se umetne u poseban uređaj koji ima napajanje za karticu i antenu tako da može komunicirati preko elektromagnetskih valova sa CAD uređajem


3. STANDARDI PAMETNIH KARTICA

 

            Kroz povijest razvoja pametnih kartica uspostavljeni su različiti standardi za rješavanje problema kompatibilnosti kartica različitih proizvođača. Prvi standard bio je ISO-7816 kojeg je izdala međunarodna organizacija za standarde(International Standard Organisation - ISO) 1987. godine. Prije toga proizvođači kartica i CAD uređaja imali su svoje standarde za te kartice i uređaje koji nisu bili kompatibilni s karticama i uređajima ostalih proizvođača. Sa ISO standardom pametne kartice različitih proizvođača mogu komunicirati istim protokolom. Fizičke karakteristike i dimenzije su također jednake za sve kartice i one su također propisane standardom, također je propisan položaj kontakata na kartici te značenje pojedinog kontakta te protokol i sadržaj poruka kod razmjene poruka. Ovi standardi osiguravaju da kartice proizvedene od jednog proizvođača mogu biti prihvaćene od CAD uređaja drugog proizvođača.

 

            Osim ISO standarda postoje i drugi standardi, slijedi popis najvažnijih standarda za pametne kartice:

           

-         ISO-7816

-         EMV (Europay, Mastercard, Visa)

-         GSM (Global Standard for Mobile Communications)

 

3.1 ISO-7816 standard

 

            ISO-7816 je međunarodni standard za pametne kartice(čip kartice). ISO-7816 standard sastoji se od šest dijelova:

 

1.      ISO-7816-1

2.      ISO-7816-2

3.      ISO-7816-3

4.      ISO-7816-4

5.      ISO-7186-5

6.      ISO-7186-6


3.1.1 ISO-7816-1 standard

 

            Ovaj dio ISO-7816 standarda opisuje fizičke karakteristike pametnih kartica njezine dimenzije, te otpornost kartice na vanjske smetnje.

 

            Dimenzije kartice po ovom standardu iznose 85.60mm × 53.98mm × 0.80mm. Za karticu su također propisane granice izlaganja koje kartica mora izdržati u različitim elektromagnetskim fenomenima kao što su rengenske zrake, UV svjetlo, elektromagnetska polja, elektrostatička polja te temperatura ambijenta u kojem se nalazi kartica tako da ona i nakon izlaganja tim uvjetima i dalje normalno funkcionira. Također ovaj standard određuje karakteristike kartice kada se ona savija ili rasteže, ovo osigurava da je kartica proizvedena tako da se garantira  besprijekorno funkcioniranje kartice i da ona obavlja svoju funkciju u očekivanom životnom ciklusu kartice. Ovaj standard također određuje da spojevi između površinskih kontakata i ulazno izlaznih pinova integriranog kruga moraju biti otporni na  mahaničke stresove.

 

3.1.2 ISO-7816-2 standard

 

            ISO-7816-2 standard određuje dimenzije i lokaciju kontakata na kartici te funkciju i poziciju određenog kontakta. Kontaktna pločica na površini pametne kartice koja je spojena za izvodima integriranog kruga(čipa) umetnutog u pametnu karticu ima osam kontakata koji su označeni od C1 do C8. Međutim nije svih osam kontakata povezano sa integriranim krugom i u današnje vrijeme ti kontakti još nemaju svoju specijalnu funkciju već su ti kontakti rezerviarni za buduću upotrebu. Na slici 3.1 prikazan je raspored kontakata, a u tablici 3.1 oznake i opis pojedinog kontakta.

 

Slika 3.1 – Raspored kontakata pametne kartice

 

 

 

 

 

 

Kontakt

Oznaka

Opis

C1

Vcc

Kontakt za napajanje integriranog kruga – obično se kreće od +3V do +5V

C2

RST

Kontakt za reset preko kojeg se pokreće reset protokol

C3

CLK

Kontakt preko kojeg dovodimo takt signal integriranom krugu

C4

RFU

Rezervirano za buduću upotrebu (Reserved for Future Use)

C5

GND

Kontakt električne mase

C6

Vpp

Napajanje koje se u prošlosti koristilo za programiranje EEPROM memorije

C7

I/O

Ulazno/izlazni port, veza kartice s vanjskim svijetom, omogućuje half-duplex komunikaciju između čitača i CAD uređaja

C8

RFU

Rezervirano za buduću upotrebu (Reserved for Future Use)

 

Tablica 3.1 – Oznake i opis kontakata pametne kartice

 

3.1.3 ISO-7816-3 standard

 

            Ovaj dio standarda opisuje električne signale i protokole prenošenja signala kod pametnih kartica. Većina ovog standarda važna je za proizvođače CAD uređaja i za programere koji žele uspostaviti komunikaciju s pametnom karticom na vrlo niskom nivou, signalnom nivou. Ovim standardom deklariraju se razine napona, jačine struja te perioda trajanja signala, također se definiraju protokoli(T=0, T=1) omuniciranja između CAD uređaja i kartice

           

3.1.4 ISO-7816-4 standard

 

Ovaj standard određuje cijelu logičku strukturu pametne kartice te naredbe i protokole za komuniciranje, a specificira:

 

-         sadržaj poruka, naredbi i odgovora, odaslanih od CAD uređaja prema kartici i obrnuto

-         strukturu i sadržaj bajtova koje šalje pametna kartica kao odgovor na reset

-         strukturu datoteka i podataka

-         metode pristupa datotekama i podacima na kartici

-         metode za sigurno komuniciranje

-         metode pristupa algoritmima koji su procesuirani na kartici. Ovaj standard ne opisuje te algoritme

 

3.1.4 ISO-7816-5 standard

 

            Ovaj dio standarda opisuje brojevni sustav za prikaz identifikatora aplikacija AID-a(eng. Application Identifiers). Svaki AID ima dva dijela. Prvi dio je identifikator registriranog aplikacijskog pružatelja RID(eng. Registered Application Provider Identifier) koji se sastoji od 5 bajta i oni su jedinstveni(eng. unique). Drugi dio AID je varijabilne duljine do 11 bajtova koji omogućuje RID-u identifikaciju specifične aplikacije.

 

3.1.4 ISO-7816-6 standard

 

            Opisuje međuindustrijske podatkovne elemente, fizički transport uređaja i prijenos podataka, odgovor na reset ATR(eng. Answer To Reset). Ova specifikacija dozvoljava dva protokola T=0 i T=1. Kartica može podržavati bilo koji, ali ne oba.

 

3.2 EMV standard

 

            EMV sandard također je jedan od važnijih standarda za pametne kartice kojeg su formirale vodeće financijske tvrtke u kartičnom poslovanju Europay, Mastercard i Visa. Ovaj standard pokriva elektromehaničke karakteristike, protokole, podatke te instrukcije koje spaja sa bankovnim transakcijama. Cilj EMV specifikacije je da svi sustavi za plaćanje dijele iste POS-terminale(eng. Point of Sales), kao što to čine magnetne kartice i aplikacije za njih. Zbog toga što će se uskoro sve bankovne magnetne kartice mijenjati pametnim karticama, ovaj standard osigurava da nove bankovne pametne kartice budu kompatibilne s bankovnim transakcijskim sustavima. Zahvaljujući ovom standardu, sve bankovno orijentirane pametne kartice bit će kompatibilne jedna s drugom isto kao i prijašnje(dosadašnje) magnetne kartice. Fleksibilnošću EMV standarda, bankama je dopušteno da dodaju svoje opcije i specijalne potrebe u platni sustav pametnih kartica.

 

3.3 GSM  standard

 

            GSM(eng. Global Standard for Mobile Communications) standard je jedan od najvažnijih stndarda za pametne kartice u digitalnim mobilnim komunikacijama. GSM specifikacija započela je 1982. godine pod CEPT-om(Conference Euopeanne des Postes et Telecommunications), kasnije je nastavljena pod ETSI-em(eng. European Telecommunications Standards Institute). GSM specifikacija podijeljena je u dva dijela, prvi dio opisuje osnovne funkcionalne karakteristike dok drugi dio opisuje sučelje te logičku strukturu kartice. Originalno, ova specifikacija je bila prvenstveno napravljena za mobilnu telefonsku mrežu. Kada se pametna kartica počela koristiti u mobilnim telefonima kao modul identifikacije pretplatnika(eng. Subscriber Identification Module – SIM), dio GSM standarda postao je standard pametnih kartica.

 

            Sa GSM mrežom, sve GSM tvrtke izdaju SIM kartice svojim pretplatnicima. Svaka SIM kartica ima funkciju da identificira pretplatnika u mreži. SIM kartica može biti standardnih dimenzija ili manjih dimenzija. Zbog toga što se ova kartica koristi za držanje funkcija GSM mreže koriste se mikrokontroleri boljih performansi, mikroprocesor je najmanje 16-bitni dok je EEPROM memorija namijenjena spremanju aplikacija te parametara mreže i pretplatnikovih podataka.


4. PRIMJENA PAMETNIH KARTICA

 

            S velikim rastom internet tehnologije i elektroničke trgovine, pametne kartice su postale sve šire prihvaćene i korištene kao kartice sa sigurno spremljenim sadržajem. U ovom poglavlju opisat će se neke aplikacije gdje se koristi tehnologija pametnih kartica. Ove aplikacije možemo podijeliti u pet glavnih kategorija:

 

1.      Elektroničko plaćanje

2.      Sigurnost i autentifikacija

3.      Transport

4.      Telekomunikacije

5.      Zdrastvena kartica

 

4.1 Elektroničko plaćanje

4.1.1 Elektronički novac

 

            Novčana sredstva korisnika mogu biti spremljena na pametnu karticu u obliku elektroničkog novca te se koristiti za gotovinsko plaćanje. Elektronički novac može se koristiti za manje kupnje kod kojeg nebi bilo potrebe za autorizaciju preko PIN(eng. Personal Identification Number) broja. Novčana sredstva na kartici pokriva korisnikova banka preko njegova računa u banci ili se ta sredstva pokrivaju na neki drugi način. Kada se korisnik karticom plaća neka sredstva ili usluge, elektronički novac se skida s kartice i šalje na račun davaoca usluge(prodavača). Slično i klasičnom novčaniku korisnik kartice može napuniti svoju karticu elektroničkim novcem u banci u bilo koje vrijeme.

 

            Transakcije elektroničkim novcem u većini slučajeva ne zahtijevaju korištenje PIN broja. Ovo ubrzava transakciju, ali ima nedostatak da je elektronički novac na kartici tada ranjiv isto kao i klasični novac. Širenjem korištenja elektroničkog novca smanjit će se troškovi banke zbog smanjenja držanja velike količine novca(klasičnog).

 

            Od 1994. godine došlo je do značajnijeg razvoja aplikacija za rad sa elektroničkim novcem u Europi koje su se proširile i izvan Europe. U vezi pametnih kartica i elektroničkog novca bilo je razvijeno nekoliko globalnih projekata od kojih bi izdvojio: ProtonCard tvrtke Banksys, VisaCash od tvrtke Visa International te Mondex tvrtke Mastercard. Ovi projekti bili su širom prihvaćeni u trgovinama diljem svijeta.

4.1.2 Kartice sa spremljenim vrijednostima(Stored Value Card)

 

            Drugi način korištenja pametnih kartica u elektroničkoj trgovini su elektroničke kovanice(žetoni - eng. tokens). Princip je taj da se memorija pametne kartice koristi za spremanje elektroničkih kovanica ili elektroničkih karti. Pametna kartica može spremati kovanice ili karte za različite usluge i za svaku uslugu kovanice mogu biti ponovo napunjene.

 

            Za primjer može se uzeti parkiranje gdje se umjesto metalnih kovanica koristi pametna kartica sa elektroničkim kovanicama. Prednost ovog sistema je u tome što više neće biti potrebna kolekcija metalnih kovanica, eleiminirat će se opasnost od lopova, također kartica će moći pratiti korištenje kovanica te vraćati rezultat korisniku.

 

4.2 Sigurnost i autentifikacija

4.2.1 Korištenje kriptografije

 

            Sa gledišta opskrbljivača i sistem operatora, glavni zahtjev gotovo svih kartičnih sistema je da osiguraju da je trenutna kartica važeća i da je korisnik kartice prava osoba koja može koristiti tu karticu. Da se provjeri vlasnik kartice, korisnici trebaju kod korištenja unijeti svoj PIN(Personal Identification Number) broj. PIN broj se radije čuva na kartici nego na terminalu.

 

            Identifikacija i autentifikacija obavljaju se na terminalu. Jedan od problema je da se osigura da kartica pruža neku vrstu autentifikacijskog kriterija. Ovo može biti riješeno korištenjem kriptirane komunikacije između kartice i terminala. Dobro je poznato da kriptografija osigurava tajnost sadržaja poruka, a pruža i autentičnost poruka.

 

            U stanju da se izvedu kriptografske procedure, pametna kartica bi trebala imati:

 

-         dovoljnu računalnu snagu za pokretanje kriptografskih algoritama

-         kriptografski algoritmi koje koristi moraju biti sigurni

-         pametna kartica mora osigurati fizičku sigurnost tj. ne smije biti moguće pročitati tajne ključeve iz memorije pametne kartice

 

Pametne kartice što se tiče fizičke strukture imaju posebne kriptografske koprocesore za više kriptografskih algoritama. Pametne kartice sadržavaju simetrične i asimetrične algoritme. Najčešći simetrični algoritmi u pametnim karticama su: DES, 3DES, AES, a najčešći asimetrični algoritam je RSA.

 

4.2.2 Identifikacija

 

            Identifikacija pojedinca je jedan od najkompleksnijih zadataka u području informacijske tehnologije. Identifikacija zahtijeva od pojedinca da identificira samog sebe, a od računalnog sustava zahtijeva da prepozna da je novopridošla poruka identifikacije generirana od legalnog korisnika. Sistem nakon identifikacije preuzima svu odgovornost za sve akcije koje identificirani korisnik napravi za koje ima autorizacijske dozvole.

4.2.3 Kontrola pristupa

 

            Najopćenitiji uređaj koji se koristi za kontrolu pristupa privatnim područjima, gdje se rade osjetljivi poslovi ili gdje su spremljeni podaci, su ključevi i magnetske kartice. Oni oboje imaju svoje nedostatke: mogu se jednostavno kopirati ili kad su ukradeni mogu dozvoliti pristup neautoriziranim osobama. Pametne kartice zaobilaze ovaj problem jer ih je teško kopirati i u mogućnosti su spremiti digitalizirane karakteristike osobe(biometrija). Sa odgovarajućom verifikacijskom opremom ovi podaci mogu biti korišteni kod točke ulaza da provjere identitet nosioca kartice. Kartica može također biti individualno personalizirana tako da se određenoj osobi dozvoli pristup određenim zaštićenim prostorijama za koje vlanik kartice ima odobrenje.

 

4.2.4 Digitalni certifikat

 

            U današnje vrijeme za sigurnu razmjenu informacija najčešće se koriste kriptografski sustavi s javnim ključem ili asimetrični sustavi. Zbog toga razvila se infrastruktura javnih ključeva PKI(Public Key Infrastructure). Kad dva potencijalna korisnika žele komunicirati svaki od njih mora na neki način saznati javni ključ drugog sudionika. Također kod te razmjene oni moraju znati da taj drugi korisnik nije neki uljez te da javni ključ kojeg dobiju stvarno pripada osobi koja se predstavila tim ključem. Kako bi se moglo provjeriti da li neki javni ključ pripada pravoj osobi stvoren je digitalni certifikat. Digitalni certifikat stvara certifikacijski centar u trenutku kad neki korisnik želi tajni i javni ključ za komuniciranje. U tom trenutku certifikacijski centar generira javni i privatni ključ korisnika te na temelju podataka o korisniku stvara digitalni certifikat tog korisnika. Digitalni certifikat sadrži informacije o vlasniku certifikata i njegov javni ključ, ovo dvoje čini poruku u certifikatu, te sadrži kriptirani sažetak(hash) poruke koji se kriptira privatnim kjučem certifikacijskog centra. U stvari digitalni certifikat je digitalni potpis koji u poruci sadrži javni ključ.

 

            Kako pametne kartice sadrže javne i tajne ključeva korisnika za komuniciranje tako se također mogu iskoristiti i za spremanje digitalnog certifikata na njima. Prilikom protokola autentifikacije korisnika koristi se pametna kartica za komuniciranje na kojoj su spremljeni svi elementi potrebni za komuniciranje: javni ključ, tajni ključ, digitalni certifikat.

4.2.5 Pristup na računalo

 

            Pristup računalnim prostorijama te pristup računalu može biti kontroliran pametnim karticama. Pametna kartica može autentificirati korisnika računalu domaćinu.Ovisno o okolini koja se štiti  pristupom mreži pametne kartice mogu pružiti sljedeće funkcije:

 

-         manipulacija različitih autentifikacijskih kodova za različite razine sigurnosti

-         korištenje biometrijske tehnologije kao dodatna mjera sigurnosti

-         podržavanje pregleda grešaka i zlonamjernih pokušaja logiranja

 

Identifikaciju korisnika kod pristupa računalu vrši pametna kartica provjerom PIN(Personal Identification Number) broja korisnika. Ako je PIN broj pogrešan kartica jednostavno odbija raditi te nije moguće napraviti pristup računalu jer ne radi aplikacija za pristup, koja sadrži korisničko ime i lozinku korisnika.

 

4.3 Transport

 

            Pametna kartica može se ponašati i kao elektronički novac za vozače koji trebaju platiti cestarinu prije nego mogu koristiti cestu, tunel ili most. Na pametnoj kartici se može povećati količina novca na naplatnoj stanici(npr. benzinska postaja), a kod svakog prolaza kroz neku kontrolnu točku iznos na kartici se smanjuje. Kod ove primjene najprikladnije bi bile bezkontaktne kartice jer njih nije potrebno umetati u CAD uređaj.

 

4.4 Telekomunikacije

 

            Telekomunikacije su jedan od najvećih korisnika pametnih kartica. Od 1988. godine pametne kartice postale su jedne od najvažnijih komponenata u telefonskim stanicama(mobilni telefoni). Podaci mreže, informacije pretplatnika i svi kritični podaci mobilne mreže spremljeni su unutar kartice. S ovom karticom, pretplatnik može obaviti poziv s bilo kojeg mobilnog telefona. Također svaki poziv preko telefona može biti kriptiran što osigurava privatnost.

 

4.5 Zdravstvena kartica

 

            Zbog visoke razine sigurnosti za spremljene podatke, pametne kartice nude novu perspektivu za zdrastvene aplikacije. Pametne kartice mogu se koristiti za spremanje različitih informacija o vlasniku kartice kao što su osobne informacije vlasnika, polica osiguranja, hitne medicinske informacije, podaci o prijemu u bolnicu te tekući medicinski podaci o vlasniku.

 

            Pametne kartice mogu se koristiti za spremanje informacija različitih razina koje su autorizirane pojedinim korisnicima. Liječnici mogu imati pristup medicinskim kartonu pacijenta na kartici. Podaci za hitne slučajeve kao npr. popis osoba kojima se treba javiti u slučaju nezgode te podaci o bolestima pacijenta koji mogu biti korišteni da bi se spasio pacijentov život. U nekim zemljama potrebno je imati osiguranje za plaćanje bolnice, sa podacima o osiguranju spremljenim na kartici administrativna procedura je vrlo jednostavna.

 


5. DATOTEČNI SUSTAV I KONTROLA PRISTUPA

 

            U ovom poglavlju opisat će se logička struktura pametnih kartica, datotečni sustav koji koristi pametna kartica te osobine koje se koriste za zaštitu podataka u kartici.

 

5.1 Datotečna logička struktura

 

            Podaci u pametnoj kartici spremljeni su u EEPROM(eng. Electric Eraseable Programmable Read Only Memory) na sličan način kao i podaci na tvrdom disku računala, gdje direktoriji tvore hijerarhijsku strukturu nalik stablu. Na vrhu stabla nalazi se glavna datoteka ili direktorij(eng. Master File - MF) i on je na svakoj kartici samo jedan. Ispod glavne datoteke(MF) može se nlaziti više namjenskih datoteka ili direktorija(eng. Dedicated File - DF) te više više elementarnih datoteka(eng. Elementary File – EF). Dakle datotečni sustav pametnih kartica može se podijeliti na tri datoteke:

 

1.      Glavna datoteka(Master File - MF)

2.      Namjenska datoteka(Dedicated File – DF)

3.      Elementarna datoteka(Elementary File – EF)

 

Struktura logičkog datotečnog sustava pametne kartice prikazana je na slici 5.1.

 

Slika 5.1 – Struktura logičkog datotečnog sustava pametne kartice


5.1.1 Pristup datotekama

 

            ISO standard propisuje da se svakoj datoteci bila ona glavna(MF), namjenska(DF) ili elementarna(EF) moće pristupiti na barem jedan način dolje naveden:

 

 

5.1.2 Glavna datoteka (Master File – MF)

 

            Glavna datoteka(MF) je specijalna namjenska datoteka koja je korijen(root) ili glavni direktorij datotečne stablate strukture pametne kartice kao što je prikazano na slici 5.1. Glavna datoteka prema ISO-7816-4 standardu ima identifikator datoteke(ID) jednak 3F0016 i može postojati samo jedna na kartici. Glavnu datoteku možemo smatrati direktorijem koji sadrži sve ostale namjenske datoteke(DF) i elementarne datoteke(EF). Glavnoj datoteci pristupa se odmah nakon što je mikrokontroler dobio napajanje, te kada  se kartica izvadi iz čitača pa ponovo ubaci u čitač ili kada se izvrši reset protokol. Glavna datoteka kao i bilo koja namjenska datoteka definirana je samo svojim opisnikom i nema uz sebe više nikakve dodatne (korisničke)podatke.

 

5.1.3 Namjenska datoteka (Dedicated File – DF)

 

            Namjenska datoteka(DF) je poddirektorij u datotečnoj strukturi pametne kartice. Namjenska datoteka može sadržavati druge namjenske datoteke te elementarne datoteke slika 5.1.

 

Kod kreiranje namjenske datoteke potrebno je specificirati njezinu veličinu te približnu veličinu ostalih datoteka koje će sadržavati unutar sebe. Ako se kod kreiranja majenske datoteke zauzme premali prostor te želimo kreirati neku novu datoteku s kojom ćemo premašiti veličinu memorije koja je rezervirana za tu namjensku datoteku tada će biti potrebno obrisati tu namjensku datoteku te je ponovno kreirati sa odgovarajućom veličinom memorije koju će zauzeti vrijednostima tako da sve ostale datoteke stanu u memorijski prostor namijenjen toj namjenskoj datoteci. Dakle namjenskoj datoteci nije omogućeno naknadno mijenjanje memorijskog prostora već je potrebno sav memorijski prostor rezervirati kod kreiranja namjenske datoteke.

 

5.1.4 Elementarna datoteka (Elementary File – EF)

 

            Elementarne datoteke(EF) mogu sadržavati aplikacije, podatke kao što su imena, datumi, serijski brojevi. Tipovi elementarnih datoteka definirani su ISO-7816 standardom i mogu biti:

 

·        Transparentne

·        Blokovski organizirane

-         Linearne s blokovima jednake duljine

-         Linearne s blokovima promjenjive veličine

-         Cikličke s blokovima jednake veličine

 

 

Slika 5.2 – Tipovi elementarnih datoteka

 

5.1.4.1 Transparentna datoteka

 

            Transparentna dateka sadrži sadrži sekvencijalni niz bajtova. Ova datoteka se naziva transparentnom jer nema nikakve interne strukture – sadrži jedan blok podataka. Transparentne datoteke korisne su spremanje podataka kao što su ključevi za kriptografske algoritme.

 

5.1.4.2 Linearna datoteka s blokovima jednake veličine

 

            Linearna datoteka s blokovima jednake veličine podijeljena je na zapise koji su svi jednake veličine. Svaki zapis u datoteci identificiran je brojem koji je sekvencijalno dodan zapisu kod kreiranja zapisa. Broj zapisa koristi se za čitanje ili pisanje u specifični zapis. Najviše je moguće kreirati 255 zapisa jednake veličine gdje veličina može biti 1 do 255 bajta.

 

5.1.4.3 Linearna datoteka s blokovima promjenjive veličine

 

            Linearna datoteka s blokovima promjenjive datoteke ista je kao i linearna datoteka s blokovima jednake veličine s tom razlikom da se ima mogućnost kreiranja različite veličine zapisa. Može se kreirati najviše 255 zapisa veličine od 1 do 255 bajta. Ove datoteke pogodne su za spremanje podataka različite veličine u istu datoteku. Kod ovih datoteka treba više vremena za traženje zapisa kod operacija čitanja i pisanja i zahtijevaju malo više prostora za zaglavlje zapisa.

 

5.1.4.4 Ciklička datoteka s blokovima jednake veličine

 

            Ciklička datoteka s blokovima jedanke veličine pos strukturi je jednaka linearnoj datoteci s blokovima jednake veličine s tom razlikom da pokazivač datoteke ne pokazuje na prvi zapis već se pokaivač automatski povećava kod zapisivanja novog zapisa i uvijek pokazuje na zapis koji je zadnji upisan. Kad se popune svi zapisi pokazivač automatski pokazuje na prvi zapis u datoteci. Ove datoteke pogodne su za evidenciju "posljednjih 10" operacija.

 


5.2 Sigurnost datotečnog sustava

 

            Sigurnost je jedna od najvažnijih stvari kod pametnih kartica. Zbog ovog razloga, posebna briga posvećena je tome kako se pristupa podacima i tko može pristupiti podacima na pametnoj kartici.

 

            Svaku datoteku koja je gore opisana može se pojedinačno zaštititi korištenjem atributa pristupa te uvjeta pristupa. Za primjer atribut za datoteku može biti čitanje, a uvjet pristupa može biti CHV(eng. Cardholder Verification) tj. verifikacija korisnika, ovim se misli da ako se želi pročitati datoteka mora se prvo unijeti ispravna lozinka. Osnovni sigurnosni mehanizmi definirani standardom ISO-7816-4 su:

 

-         Autentifikacija lozinkom – korisnik mora znati lozinku prije nego može pristupiti datoteci

-         Autentifikacija ključem – korisnik mora znati vrijednost ključa spremljenog na kartici

-         Autentifikacija podataka(Data authentication) – kartica dodaje kod podacima tako da korisnik može biti siguran da kartica nije lažna.

-         Kriptiranje podataka – kartica kriptira podatke

 

Svaki operacijski sustav kartica ima sigurnost temeljenu atributima pristupa i uvjeta pristupa. Često glavna datoteka(MF) i namjenska datoteka(DF) imaju visoku razinu sigurnosti tako da samo izdavači kartica ili proizvođači aplikacija mogu pristupati tim datotekama. Za primjer samo proizvođač aplikacije može imati dozvolu za onemogućiti aplikaciju na kartici i to samo kad zna specijalni ključ, koji je spremljen u hijerarhiji datoteka.

 

Hex vrijednost

Atribut pristupa

Opis restrikcije

0

ALW

Always(Uvijek) – specificira da je akcija nad datotekom uvijek moguća. Nema nikakvih restrikcija za datoteku.

1

CHV1

CardHolder Verified – datoteci se može pristupiti jedino kad je unesen ispravan CHV1 ključ, CHV1 ključ je obično ključ korisnika kartice ili PIN. Verifikacija se može izvesti neposredno prije pristupa datoteci ili već prije u nekoj od sjednica.

2

CHV2

CardHolder Verified – datoteci se može pristupiti jedino kad je unesen ispravan CHV2 ključ, CHV2 ključ je obično ključ administratora kartice. Verifikacija se može izvesti neposredno prije pristupa datoteci ili već prije u nekoj od sjednica.

3

PRO

Protected(Zaštićen) – Zaštićen mod pristupa datoteci, PRO autentifikacija koristi enkripciju za provjeru identiteta korisnika koji želi pristupiti datoteci na kartici. Koristi se digitalni potpis koji se dodaje naredbi za pristup datoteci. PRO autentifikacija vrijedi samo za jednu operaciju s datotekom.

4

AUT

Authenticate(Autentifikacija) – Datoteci se može pristupiti jedino kad je prisutan ispravan ključ u relevantnoj vanjskoj datoteci ključa. Verifikacija se može izvesti neposredno prije rada s datotekom ili prije u nekoj od sjednica. Ovaj pristup zahtijeva vanjskog poslužitelja(host) za autentifikaciju.

5

RFU

Za buduću upotrebu(Reserved for Future Use).

6

CHV1 i PRO

Zahtijeva CHV1 i PRO provjeru za pristup zaštićenoj datoteci.

7

CHV2 i PRO

Zahtijeva CHV2 i PRO provjeru za pristup zaštićenoj datoteci

8

CHV1 i AUT

Zahtijeva CHV1 i AUT provjeru za pristup zaštićenoj datoteci

9

CHV2 i AUT

Zahtijeva CHV2 i AUT provjeru za pristup zaštićenoj datoteci

A

RFU

Za buduću upotrebu(Reserved for Future Use).

B

RFU

Za buduću upotrebu(Reserved for Future Use).

C

RFU

Za buduću upotrebu(Reserved for Future Use).

D

RFU

Za buduću upotrebu(Reserved for Future Use).

E

RFU

Za buduću upotrebu(Reserved for Future Use).

F

NEV

Never(nikad) – Datoteci nije omogućen nikakav pristup aplikacije izvan kartice. Datoteci mogu pristupiti samo programi u kartici.

 

Tablica 5.1 – Atributi pristupa

 


5.2.1 Doseg pojedinog atributa pristupa

 

            Pošto pametna kartica može imati mnogo različitih aplikacija od različitih proizvođača, potrebna je metoda kojom će se omogućiti sigurnosna stijena(firewall) između aplikacija. Ovo je omogućeno tako da proizvođač aplikacije definira domene koje sadrže grupe datoteka i svaka domena ima svoj ključ za pristup. Prikaz područja domena prikazano je na slici 5.3.

 

Slika 5.3 – Područja domena sigurnosti

 

            Na gore prikazanoj slici 5.3 postoje dva ključa i dvije domene. Prvi ključ KEY1 relevantan je za datoteke EF1, EF2 i EF2, dok je drugi ključ KEY2 relevantan za datoteku EF4. Dakle domena ili područje za prvi ključ KEY1 je Domena 1, a za drugi ključ KEY2 domena ili područje je Domena 2.


6. KOMUNIKACIJSKI MODEL

 

            Komunikacija između CAD(eng. Card Acceptance Device) uređaja i pametne kartice odvija se preko jedne linije i zbog toga se kartica i CAD uređaj moraju izmjenjivati u slanju poruka, dok jedna strana šalje poruku druga prima i obrnuto. Ovakav protokol zove se poludupleks(eng. Half-Duplex) protokol. Pametna kartica i CAD uređaj imaju gospodar-sluga(eng. master – slave) odnos gdje se kartica ponaša kao sluga, a CAD uređaj gospodar. Ovaj odnos označuje da kartica nikad ne šalje poruku bez vanjskog zahtjeva tj. komunikaciju uvijek pokreće CAD uređaj.

 

6.1 Odgovor na resetiranje ATR ( Answer to reset)

 

            Umetanjem pametne kartice u CAD uređaj ili resetiranjem kartice, kartice šalje podatkovni niz poznat kao ATR(eng. Answer To Reset) tj. odgovor na resetiranje. ATR signalizira CAD uređaju da je kartica uspješno pokrenuta te se stvara komunikacijski kanal između kartice i CAD uređaja. ATR podatak može imati najviše 33 bajta i može sadržavati podatkovne elemente navedene u tablici 6.1.

 

Podatkovni element

Značenje i opis

TS

Inicijalni znak (Initial character) je prvi bajta ATR podatka. Specificira konvenciju koja se koristi za sve podatke u ATR-u i narednim komunikacijskim procesima. Ovaj bajta predstavlja ATR komponentu i on mora biti poslan. Postoje samo dva dopuštena koda za ovaj bajt: 3B16 za izravnu konvenciju(direct convention) i 3F16 za inverznu konvenciju(inverse convention)

T0

Znak veličine(Format character) je drugi bajt ATR podatka. Sadrži bit polje koje pokazuje koji će znakovi sučelja biti poslani, a pokazuje i broj narednih znakova. Ovaj bajt isto kao i TS mora biti prisutan u svakom ATR-u.

TA1, TB1, TC1, TD1,...

Znakovi sučelja(Interface characters) određuju sve parametre prijenosa koji se u protokolu koriste. Ovi znakovi su opcionalni u ATR-u i mogu se ispustiti.

T1, T2,...,Tk

Povijesni znakovi(Historical caharacters). Ovi podaci nalaze se u ATR datoteci i mogu sadržavati kompleksne informacije u vezi pametne kartice i operacijskog sustava, npr. kartična svojstva, kartični i čip serijski brojevi, verzija ROM maske, čipa i operacijskog sustava.

TCK

Kontrolni znak(Check character). Ovaj bajt je XOR kontrolna suma od bajta T0 do zadnjeg bajta prije kontrolnog znaka. Kontrolna suma može se koristiti kao dodatak u paritetnom testiranju da se verificira točnist ATR prijenosa.

 

Tablica 6.1 – Elementi ATR-a(Answer To Reset)

6.2 Protokoli za komuniciranje

 

            Standard ISO-7816-3 specificira ukupno 16 protokola. Protokoli su označeni s 'T=' plus sekvencijalni broj od 0 do 15. U praksi nas zanimaju 4 protokola. Protokoli T=0 i T=1 su dominantni i oni se najviše koriste. T=2 protokol je još uvijek u razvoju, a T=14 koristi se za nacionalne funkcije, za primjer ovaj protokol koristi se u Njemačkoj za telefonske kartice.

 

6.2.1 T=0 protokol

 

            T=0 protokol je prvi standardiziran protokol za pametne kartice, a pravila kod kreiranja bila su minimalno korištenje memorije i maksimalna jednostavnost. Protokol je bajtovno orijentiran i svaki TPDU(Transmission Protocol Data Unit) sastoji se od dva dijela zaglavlja i podataka. Zaglavlje sadrži pet bajta kako je prikazano u tablici 6.2.

 

Ime

Opis

CLA

Specificira klasu instrukcije

INS

Specificira određenu instrukciju

P1

Specificira adresu

P2

Specificira adresu

P3

Specificira broj bajtova prenesenih prema ili od pametne kartice

 

Tablica 6.2 – Elementi zaglavlja TPDU naredbe za T=0 protokol

 

            Mehanizam provjere greške je jednostavan i koristi provjeru pariteta pojedinog bajta. Kod detekcije pogreške zahtijeva se ponovno slanje naredbe.

 

            Kartica odgovara CAD uređaju sa zaglavljem koje sadrži tri od četiri bajta kako je prikazano u tablici 6.3.

 

Ime

Opis

ACK

Označava primitak [CLA,INS] naredbe

NULL

Koristi se za kontrolu protoka I/O kanala

SW1

Status informacija za nadzor tekuće naredbe

SW2

Status informacija za nadzor tekuće naredbe(opcionalno)

 

Tablica 6.3 – Elementi zaglavlja odgovora TPDU naredbe kod T=0 protokola

 


6.2.2 T=1 protokol

 

            T=1 je blokovski orijentiran protokol. Ovo znači da se dobro definiran skup podataka ili blok prenosi kao jedna podatkovna jedinica između pametne kartice i CAD uređaja. U blok može biti ugrađena APDU(Application Protocol Data Unit) namijenjenja nekoj specifičnoj naredbi. Ova mogućnost omogućava vrlo dobro uslojavanje između sloja povezivanja i aplikacijskog sloja. Stavljanje informacije u blok zahtijeva da blok bude prenesen bez greške jer inače protokol može biti jednostavno izgubljen. Detekcija i ispravka grešaka kod T=1 protokola je zbog toga kompleksnija nego kod T=0 protokola.

 

            Detekcija pogrešaka u T=1 protokolu se obavlja uzdužnom redundancijom znakova -LRC (longitudinal redundancy character), koji je u suštini puno kompleksniji od provjere pariteta koja se obavljala u T=0 protokolu, ili se obavlja korištenjem provjerom cikličke redundancije znakova - CRC(cyclic redundancy check). Ove operacije provjere grešaka garantiraju detektiranje bilo koje jednobitne greške u prijenosnom bloku. Kada se detektira greška koja je nastala tijekom prijenosa signalizira se odašiljatelju da ponovi slanje bloka kojem je detektirana greška.

 

            U T=1 protokolu postoje tri osnovna različita tipa blokova koji imaju jednaku strukturu, kako je prikazano na slici 6.1, ali različitu svrhu:

 

·        Informacijski blok – Ovaj blok služui za prenošenje podataka između aplikacijskog programa u kartici i aplikacijskog programa na strani poslužitelja.

·        Blok potvrde i primanja – Ovaj blok služi za prenošenje negativne ili pozitivne potvrde o tome da li je blok prenesen bez greške preko informacijskog kanala.

·        Nadzorni blok – Ovaj blok služi za prijenos kontrolnih informacija između pametne kartice i CAD uređaja.

 

 

Slika 6.1 – Struktura T=1 prijenosnog bloka

 


Svaki T=1 blok kao što je vidljivo iz slike 6.1 ima tri polja:

 

·        Uvodno polje (eng. prologue field) – Obavezno polje bloka koje ima duljinu od 3 bajta. Sadrži ova tri elementa:

-         NAD – Adresa čvora (eng. node address)

-         PCB – Kontrolni bajt protokola (eng. Protocol control byte)

-         LEN – duljina

·        Informacijsko polje (eng. information field) – Opcionalno polje bloka koje može biti duljine do 254 bajta.

·        Zaključno polje (eng. epilogue field) – Obavezno polje bloka koje je duljine od jednog do dva bajta.

 

NAD element se koristi za identifikaciju adrese izvora i odredišta bloka. Ova mogućnost adresiranja je od velike koristi kad se T=1 protokol koristi za podaržavanjej višestrukih logičkih veza između pametne kartice i višestrukih aplikacijskih spojnih točaka na strani CAD uređaja. NAD ima dva podelementa:

 

·        SAD (eng. Source Address) – Adresa izvora označava se sa tri najmanje značajna  bita NAD bajta.

·        DAD (eng. Destination Address) –  Adresa odredišta označava se od petog do sedmog bita NAD bajta

 

U situacijama gdje se ne koriste višestruki logički kanali NAD element postavljen je na nulu. Druga dva bita, koji se ne koriste za SAD i DAD podelemente, služe za prijenos informacija namijenjenih kontroliranju VPP napajanja(napajanje za programiranje EEPROM memorije).

 

            PCB element koristi se za identificiranje tipa bloka(informacijskog, bloka potvrde i primanja te nadzornog bloka). Dva najznačajnija bita PCB bajta koriste se za označavanje različitih tipova:

 

-         Najznačajniji bit postavljen u 0 označava da je blok informacijski

-         Dva najznačajnija bita postavljena u 1 označavaju da je blok nadzorni

-         Najznačajniji biti postavljen u 1, a sljedeći postavljen u 0 označava da je riječ o bloku potvrede i primanja

 

6.3 APDU (Application Protocol Data Units)

 

            APDU(eng. Application Protocol Data Units) je internacionalno standardizirana jedinica podataka za razmjenu podataka između pametne kartice i CAD uređaja. U prijenosnom sloju se APDU  naziva TPDU koji je u aplikacijskom sloju podijeljen na dva APDU dijela koji su: APDU naredba i APDU odgovor. APDU možemo opisati kućicama gdje svaka kućica sadrži naredbu koju šalje CAD uređaj pametnoj kartici ili pametna kartica šalje odgovor CAD uređaju.

 

6.3.1 APDU naredba

 

            Svaka APDU naredba ima dva elementa zaglavlje i tijelo. Veličina zaglavlja je fiksna i iznosi 4 bajta, dok veličina tijela varira ovisno o količini podatak koji se šalju. Slika 6.2 prikazuje strukturu APDU naredbe.

 

 

Slika 6.2 – Struktura APDU naredbe

 

CLA vrijednost

Klasa instrukcije

0x0n, 0x1n

ISO-7816-4 instrukcije kartice, npr. za pristup datotekama i sigurne operacije

0x20 do 0x7F

Rezervirano

0x8n do 0x9n

ISO-7816-4 format koji se koristi za osobne aplikacijski-specifične instrukcije

0xAn

Aplikacijsko-specifične instrukcije

0xB0 do 0xCF

ISO-7816-4 format za korištenje aplikacijsko specifičnih instrukcija

0xD0 do 0xFE

Aplikacijsko-specifične instrukcije

FF

Rezervirano za izbor vrste protokola

 

Tablica 6.4 – Vrijednosti i klasa CLA polja

 

 

 

 

 

 

6.3.2 APDU odgovor

 

            Struktura APDU odgovora koji vraća kartica je mnogo jednostavnija i prikazana je na slici 6.3.

 

 

Slika 6.3 – Struktura APDU odgovora

 

            Također kao i APDU naredba i APDU odgovor ima opiconalna i obavezna polja.

 

 

 

 

Vrijednosti statusne riječi definirane su ISO-7816-4 standardom. Moguće vrijednosti statusne riječi SW1 i SW2 mogu se prikazati blok dijagramom prema načinu izvođenja procesa kako je prikazano na slici 6.4.

 

 

Slika 6.4 – Moguće vrijednosti statusne riječi SW1 i SW2

 

 


7. JAVA CARD TEHNOLOGIJA

 

            Java Card tehnologija predstavlja najmanju Java platformu za memorijski ograničene uređaje poput pametnih kartica, te omogućuje da se programi pisani u Java programskom jeziku mogu izvršavati na pametnim karticama. Ova tehnologija je ustvari podskup Java tehnologije koji omogućuje kreiranje aplikacija za pametne kartice tzv. aplete(Java Card Applets) koji se izvršavaju na kartici. Posebnost Java Card platforme je u tome što višestruke aplikacije različitih proizvođača mogu sigurno koegzistirati na pametnoj kartici.

 

            Tipični Java Card uređaj ima mikroprocesor koji može biti od 8-bitni, 16-bitni ili 32-bitni te sadrži 1KB RAM memorije i više od 16KB trajne memorije(EEPROM). Većina kartica također ima i posebne koprocesore te RAM memoriju za kriptografske algoritme.

 

            Specifikacija Java Card tehnologije sastoji se od 3 dijela:

 

·        Java Card Virtual Machine (JCVM) koji sadrži podskup Java programskog jezika te virtualni stogovni stroj(Virtual Machine – VM) za pametnu karticu

·        Java Card Runtime Evironment (JCRE) koji dodatno definira runtime ponašanje za Java pametne kartice

·        Java Card API specifikacija koja definira jezgru okvira(framework) te ekstenzije Java paketa i razreda za aplikacije pametnih kartica.

 

7.1 Elementi Java Card aplikacije

 

            Cijela Java Card aplikacija sastoji se od pomoćne aplikacije(eng. back-end application) i sistema, aplikacije poslužitelja (eng. host application), sučelja CAD uređaja te apleta na kartici (eng. on-card applet), korisničkih vjerodajnica(eng. credential) i programske podrške. Svi ti elementi čine sigurnu end to end aplikaciju. Slika 7.1 prikazuje arhitekturu Java Card aplikacije.

 

 

Slika 7.1 – Arhitektura Java Card aplikacije

 

Tipična Java Card aplikacija nije samostalna, točnije sadrži stranu kartice(eng. card-side), stranu čitača(eng. reader-side) te pomoćne elemente(eng. back-end elements).

7.1.1 Pomoćne aplikacije i sistem

 

            Pomoćne aplikacije(eng. back-end application) omogućavaju usluge koje su podržane u Java apletu. Na primjer, pomoćna aplikacija omogućuje vezu prema sigurnom sustavu, zajedno sa vjerodajnicama(credential) u kartici. U sustavima elektroničkog plaćanja pomoćne aplikacije omogućuju pristup kreditnim karticama i ostalim informacijama elektroničkog plaćanja.

 

7.1.2 Aplikacije poslužitelja(host)

 

            Aplikacije poslužitelja(eng. host) nalaze se na desktopu ili terminalu kao što je osobno računalo, na terminalu elektroničkog plaćanja, u mobilnim telefonima ili u sigurnim podsustavima. Aplikacija poslužitelja upravlja komunikacijom između korisnika, Java Card apleta te pomoćne aplikacije pružatelja usluge.

 

            Isporučitelji pametnih kartica obično osiguravaju, ne samo razvojnu podršku, već i API podršku za aplikacije poslužitelja. Ovdje se za primjer može navesti OpenCard Framework koji sadrži Java orijentiran paket API funkcija koje skrivaju detalje međudjelovanja sa CAD uređajima različitih proizvođača.

 


7.1.3 Java Card apleti na kartici i okolina

 

            Java Card platforma je multi-aplikacijsko okruženje. Kao što prikazuje slika 7.1, jedan ili više Java apleta mogu se nalaziti na kartici, zajedno sa programskom podrškom koju čine operacijski sustav kartice i Java Card izvršna okolina JCRE(eng. Java Card Runtime Environment). JCRE sadrži Java Card Stogovni Stroj JCVM(eng. Java Card Virtual Machine), Java Card Framework i API funkcije.

 

            Svi Java Card apleti nasljeđuju Applet osnovni razred te moraju implementirati metode install() i process(). JCRE poziva metodu install() kada se instalira aplet i metodu process() svaki put kad dolazi APDU naredba namijenjana apletu.

 

7.2 Komuniciranje s Java Card apletom (pristup pametnoj kartici)

 

            Za komunikaciju između poslužitelja(host) i Java Card apleta postoje dva modela. Prvi model je osnovna komunikacija preko poruka, a drugi model je baziran na Java Card Remote Metode Invocation(JCRMI) koji je podskup Java RMI raspodijeljenih objekata.

 

7.2.1 Komuniciranje preko poruka

 

            Komuniciranje preko poruka koje je prikazano na slici 7.2 osnovno je za sve Java Card komunikacije. U centru komunikacije nalazi se APDU(Applicatio Protocol Data Unit), logički paket podataka koji se prenosi između CAD uređaja i Java Card Frameworka. APDU blok opisan je u poglavlju 6.3.

 

 

Slika 7.2 – Komunikacija preko poruka

            Java Card Framework prima te prosljeđuje odgovarajućem apletu bilo koju dospjelu APDU naredbu poslanu od CAD uređaja. Aplet procesuira APDU naredbu i šalje APDU odgovor. Komunikacija između CAD uređaja i pametna kartice najčešće je bazirana na dva protokola, bajtno orijentiranim T=0 koji je opisan u poglavlju 6.2.1 i blokovski orijentiranom T=1 protokolu opisanim u poglavlju 6.2.2. Alternativni protokoli su T=USB i T=RF. Razred JCRE APDU skriva neke detalje protokola od aplikacije, ali ne sve zbog toga što je protokol T=0 prilično kompleksan.

 

7.2.2 Java Card Remote Metode Invocation(JCRMI) model

 

            JCRMI komunikacijski model oslanja se na podskup Java RMI raspodijeljenih objekata. Kod ovog komunikacijskog modela poslužiteljska aplikacija kreira i čini dostupnim udaljeni objekt, a klijent aplikacija dobiva udaljenu referencu na udaljeni objekt, te tada poziva udaljenu metodu na tom objektu. Kod JCRMI-a Java Card aplet je poslužitelj, a aplikacija na poslužitelju(host) je klijent.

 

            JCRMI je dan u paketu javacardx.rmi u razredu RMIService. JCRMI poruke su enkapsulirane u sklopu APDU objekta prolazi prema RMIService metodama. Drugim riječima, JCRMI pruža mehanizam modela raspodijeljenih objekata na vrhu APDU-baziranog modela poruka preko kojeg poslužitelj i klijent komuniciraju, prenošenjem informacija, argumenata te vraćanjem vrijednosti nazad i naprijed.

 

7.2.3 Security and Trust Services API(SATSA)

 

            SATSA specificira opcionalni paket koji pruža sigurnosne i povjerljive API funkcije. Ovaj klijent API pruža pristup servisima koji imaju sigurnosne elemente(kao pametna kartica), uključujući sigurno spremanje i dobavljanje osjetljivih informacija, isto kao kriptografski i autentifikacijski servisi.

 

            SATSA koristi Generic Connection Framework(GCF) koji pruža više abstraktno sučelje za komuniciranje modelom poruka i JCRMI komunikacijskim modelom. Za podržavanje komunikacije preko poruka SATSA definira apdu: URL sheme i APDUConnection, a za podržavanje JCRMI-a definira jcrmi: scheme i JavaCardRMIConnection.

 

SATSA obuhvaća sljedeće pakete:

 

·        java.rmi - definira podskup Java 2 Standard Edition java.rmi paketa, konkretno Remote i RemoteException rezrede.

·        javacard.framework - definira standard Java Card API iznimaka koje udaljena metoda može baciti: CardRuntimeException, ISOException, APDUException, CardException, PINException, SystemException, TransactionException i UserException.

·        javacard.framework.service - definira standard Java Card API servis iznimaka koji može udaljena metoda baciti: ServiceException.

·         javacard.security - definira standard Java Card API za iznimke koje bacaju kriptografske metode: CryptoException.

·         javacard.microedition definira dva podsučelja za konekciju: APDUConnection za pristup pametnim karticama koji je baziran na APDU naredbama te JavaCardRMIConnection za Java Card RMI protokol.

·        javax.microedition.jcrmi - definira razrede i sučelja koje koristi zamjenski programski element koje generira kompiler Java Card RMI zamjenskog programskog elementa.

·        javax.microedition.pki - definira klase za osnovno rukovanje korisničkim certifikatima.

·        javax.microedition.securityservice - definira razrede za generiranje digitalnih potpisa na razini aplikacija.

 

7.3 Java Card Stogovni Stroj(JCVM)

 

            Java Card Stogovni Stroj (eng. Java Card Virtual Machine - JCVM) specifikacija definira podskup Java programskog jezika i Java kompatibilnog virtualnog stogovnog stroja(eng. Virtual Machine-VM) za pametne kartice uključujući prikaz binarnih podataka i formate datoteka te JCVM set instrukcija.

 

            VM za Java Card platformu implemntiran je u dva dijela. Prvi dio je izvan kartice i to je u stvari razvojni alat(konverter), tipično prikazan kao Java Card Converter tool, koji ubacuje, verificira te dalje priprema Java razrede u Java paketu za izvršavanje na kartici. Izlaz iz konvertera je konvertirana aplet datoteka ili CAP(eng. Converted Applet) datoteka. CAP datoteka sadrži sve klase iz Java paketa u binarnom obliku za izvršavanje na kartici. Drugi dio VM-a je implementiran na kartici i on interpretira bajtkod, rukovodi razredima i objektima itd.

 

            JCVM podržava samo ograničen podskup Java programskog jezika, ali sadrži mnoge poznate mogućnosti uključujući objekte, nasljeđivanje, pakete, dinamičko kreiranje objekata, virtualne metode, sučelja te iznimke. JCVM specifikacija izbacuje potporu za mnoge elemente Java jezika koji koriste mnogo memorije. Tipovi varijabli kao što su char, double, float ili višedimenzionalna polja nisu podržani dok je podrška za int opcionalna.

 

7.4 Java Card Izvršna Okolina(JCRE)

 

            JCRE(eng. Java Card Runtime Environment) specifikacija definira životni ciklus JCVM-a, životni ciklus apleta, kako se apleti selektiraju i izoliraju jedan od drugog, transakcije te dijeljenje i postojanost objekta. JCRE osigurava sučelje neovisno o paltformi tj. neovisnost o operacijskom sustavu kartice. JCRE se sastoji od JCVM-a, Java Card API-a te bilo koje specifikacije isporučitelja. Slika 7.3 prikazuje arhitekturu Java kartice i JCRE.

 

 

Slika 7.3 – Java Card arhitektura i JCRE

7.4.1 Životni ciklus Java Card apleta

 

            Svaki aplet na kartici je jedinstveno identificiran aplikacijskim identfikacijskim brojem(AID). AID je sekvenca od 5 do 16 bajtova. Svaki aplet mora nasljeđivati Applet abstraktni razred koji definira metode koje koristi JCRE za kontroliranje životnog ciklusa apleta kako je prikazano na slici 7.4.

 

Slika 7.4 – Metode životnog ciklusa Java Card apleta

            Životni ciklus Java Card apleta počinje kad je aplet učitan na karticu i kad JCRE poziva statičku metodu apleta Applet.install() i kad se aplet registrira sa JCRE-om pozivanjem Applet.register() metode. Jednom kad je aplet instaliran i registriran on se nalazi u neselektiranom stanju ali dostupan za selekciju i APDU procesiranje. U neselektiranom stanju aplet je neaktivan. Aplet dolazi u selektirano stanje za APDU procesiranje kada poslužiteljska aplikacija zahtijeva od JCRE-a da selektira određeni aplet na kartici. Da JCRE obavijesti aplet da je selektiran, od poslužiteljske aplikacije, JCRE poziva select() metodu. Aplet tipično izvodi odgovarajuću inicijalizaciju kao pripremu za APDU procesiranje. Jednom kad je selekcija obavljena JCRE preusmjerava dolazeće APDU naredbe selektiranom apletu pozivajući metodu process(). Deselekcija apleta se izvodi kad poslužiteljska aplikacija zahtijeva od JCRE-a da selektira neki drugi aplet. JCRE obavještava aktivni aplet da će biti deselektiran pozivajući deselect() metodu, koja tipično izvodi bilo koje logičko čišćenje memorije i vraća aplet u neaktivno tj. neselektirano stanje.

 

7.4.2 Java Card sjednica i logički kanali

 

            Sjednica kartice je vremenski period kad je kartica upaljena i kad razmjenjuje APDU naredbe s CAD uređajem.

 

            Java Card platforma podržava koncept logičkih kanala koji dopuštaju do 16 aplikacijskih sesija na pametnoj kartici koje mogu biti otvorene u isto vrijeme, s jednom sesijom po logičkom kanalu. Kako procesiranje APDU naredbe na kartici ne može biti prekinuto i svaki APDU sadrži referencu prema logičkom kanalu(CLA bajt), alternativno APDU naredba može pristupiti prema više apleta na kartici pseudo-simultano. Aplet se može dizaknirati tako da bude multi-selektivan, tako da komunicira na više logičkih kanala. Multi-selektivni apleti moraju implementirati javacard.framework.MultiSelectable sučelje i pripadajuće metode.

 

7.4.3 Izolacija apleta i dijeljenje objekata

 

            Java Card platforma je sigurno više-aplikacijsko okruženje, više različitih apleta od različitih proizvođača mogu sigurno koegzistirati na istoj kartici. Svaki aplet je dodijeljen izvršnom sklopu koji kontrolira pristup objektima koji su mu dodijeljeni. Granica između jednog izvršnog sklopa i drugog se često naziva sigurnosna stijena apleta(applet firewall). To je Java Card izvršno poboljšanje Java sigurnosnog koncepta i kombinira funkcionalnost učitavanja klasa,  java.ClassLoader, i pristupnog kontrolera java.AccessController. Java Card sigurnosna stijena kreira virtualnu hrpu koja sadrži metode kojima može neki objekt pristupiti i podatke kojima mogu pristupiti samo oni objekti koji pripadaju istom području  zaštitne stijene. Jedno područje zaštitne stijene može sadržavati više apleta i drugih objekata, kao što su tajni ključevi. Java Card platforma podržava sigurnu raspodijeljenost ključeva preko zaštitne stijene kao što je prikazano na slici 7.5.

 

 

 

Slika 7.5 – Zaštitna stijena apleta i raspodijeljenost objekata

 

Tipičan procedura kod raspodijeljenog komuniciranja:

 

  1. Appleta traži pristup raspodijeljenom sučelju Appletac pozivanjem sistemske metode JCSystem.getAppletShareableInterfaceObject().
  2. Prema interesu Appletaa JCRE traži od Appletac raspodijeljeno sučelje pozivanjem apletove metode getShareableInterfaceObject().
  3. Ako Appletc dozvoli dijeljenje, Appleta će dobiti referencu na raspodijeljene objekte Appletac. Appleta sada ima pristup Appletuc. Appleta će biti vlasnik bilo kojeg objekta kojeg on kreira iako je taj objekt definiran u Appletuc.

 

Apleti u istoj izvršnoj okolini imaju pristup jedan drugom po standardu, tako da Appleta i Appletb ne trebaju  slijediti prijašnju proceduru za međusobno dijeljenje objekata.

 


7.5 Java Card API(Application Programming Interface)

 

            U ovom poglavlju opisat će se Java Card  API(Application  Programming interface) paketi koji se koriste za programiranje Java Card apleta.

 

            Paketi u Java Card API-u su:

 

·        java.io

·        java.lang

·        java.rmi

·        javacard.framework

·        javacard.framework.service

·        javacard.security

·        javacardx.crypto

 

7.5.1 java.io

 

            Podskup java.io paketa u standardnoj verziji Java programskog jezika. Ovaj paket sadrži razred iznimke IOException koji je uključen u Java Card API da očuva hijerarhiju iznimaka identičnih u Java standardnom programskom jeziku. Razred java.io.IOException je nadrazred razreda java.rmi.RemoteException

 

7.5.2 java.lang

 

            Ovaj paket omogućava razrede koji su osnovni za dizajn Java Card tehnologije kao podskupa Java programskog jezika. Raredi u ovom paketu su izvedeni iz java.lang paketa standardnog Java programskog jezika i predstavljaju osnovnu funkcionalnost potrebnu za JCVM. Ova osnovna funkcionalnost predstavljena je razredom Object, koji je osnovni razred za sve Java razrede, te razredom Throwable, koji je osnovni razred za iznimke.

 

            Iznimke koje su uključene u ovaj paket su one koje može izbaciti JCVM. Ove iznimke predstavljaju samo podskup iznimaka dostupnih u java.lang paketu standardnog Java programskog jezika.

 

7.5.3 java.rmi

 

            Paket java.rmi definira Remote sučelje koje identificira sučelje čije metode mogu biti pozvane od CAD uređaja. Također ovaj paket definira RemoteException razred iznimke koja može biti izbačena da označi da je došlo do greške prilikom izvođenja udaljene(remote) metode.

7.5.4 javacard.framework

 

            Sadrži okosnicu razreda i sučelja za izgradnju, komuniciranje i rad s Java Card apletima. Ovi razredi i sučelja omogućuju minimum potrebne funkcionalnosti za Java Card okruženje. Ako je potrebna dodatna funkcionalnost, npr. specijalizirati karticu za konkretnu kupnju, potrebni su dodatni okviri ili okosnice.

 

Ključni razredi i sučelja u ovom paketu su:

 

·        AID – enkapsulira aplikacijski identifikacijski broj(AID) koji je dodijeljen apletu

·        APDU – omogućuje metode za kontroliranje ulaza i izlaza kartice

·        Applet – osnovna klasa za sve Java Card aplete na kartici. Omogućuje metode za rad s apletima koji su učitani na karticu, instalirani i koji se izvršavaju na kartici koja podržava Java Card platformu

·        CardException, CardRuntimeException – omogućuje funkcionalost sličnu kao i java.lang.Exception i java.lang.RuntimeException u standardnom Java programskom jeziku, ali specijaliziranu za kartično okruženje

·        ISO7816 – omogućuje važne konstante za rad s ulazom i izlazom podataka

·        JCSystem – omogućuje metode za kontroliranje sistemske funkcionalnosti kao što je rukovanje transakcijama, privremenim objektima, mehanizmom brisanja objekata, rukovanje resursima te raspodijeljenim objektima među apletima

·        MultiSelectable – omogućuje metode koje omogućavaju naprednije tehnike programiranja s logičkim kanalima

·        Shareable – omogućuje mehanizme koji omogućavaju objektima da budu raspodijeljeni preko sigurnosne stijene apleta

·        Util – omogućuje konvencionalne metode za rad s poljima podataka

 

7.5.5 javacard.framework.service

 

            Ovaj paket omogućuje okvir ili okosnicu razreda i sučelja za posluživanje koji dopuštaju Java Card apletima da budu dizajnirani kao agregatne poslužiteljske komponente. Paket sadrži agregatni razred pod nazivom Dispatcher koji ukjlučuje metode za dodavanje servisa u svoj registar, otprema APDU naredbi registriranom servisu te uklanjanje servisa iz registra.

 

            Paket također sadrži sučelje Service koje ima metode za procesiranje APDU naredbi i dopušta otprematelju ili dispečeru svjestan višestrukih servisa. Podsučelja omogućavaju implementaciju servisa sa dodanim funkcionalnostima:

 

 

Razred BasicService omogućuje osnovnu funkcionalnost servisa i svi servisi su izgrađeni kao podrazredi ovog razreda. Također omogućuje definiranu implementaciju za metode definirane u Service sučelju i definira skup pomoćnih metoda koje omogućuju APDU spremniku da omogući kooperacijuizmeđu razlićitih servisa.

7.5.6 javacard.security

 

            Ovaj paket omogućuje razrede i sučelja koji sadrže javno dostupne funkcionalnosti za implementiranje sigurnosnog i kriptografskog okvira na Java Card platformi. Razredi u javacard.security paketu osiguravaju definicije algoritama koji omogućuju sigurnosne i kriptografske funkcije:

 

 

7.5.7 javacardx.crypto

 

            Dodatni paket koji sadrži funkcionalnost, koja može biti subjekt u izlazmoj kontroli, za implementiranje sigurnosnog i kriptografskog okvira na Java Card platformi. Paket javacardx.crypto sadrži razred Cipher i KeyEncryption sučelje. Cipher razred omogućuje metode za kriptiranje i dekriptiranje podataka. KeyEncryption sučelje omogućuje funkcionalnost koja dopušta ključevima da budu ažurirani u sigurnom s kraja na kraj(end-to-end) modu.


8. IMPLEMENTACIJA VIŠENAMJENSKE PAMETNE KARTICE

 

8.1 Višenamjenska pametna kartica

 

            Višenamjenska pametna kartica zamišljena je s ciljem da se jedna pametna kartica  može koristiti za rad s različitim servisima i uslugama namijenjenih pametnim karticama. Ovim se želi reći da umjesto da za svaki servis ili uslugu postoji kartica namijenjena samo tom servisu(npr. kreditna kartica, identifikacijska iskaznica, zdrastvena kartica itd.), postoji jedna kartica koja će raditi s tim svim uslugama i servisima, tj. umjesto da se ima pet kartica za pet različitih usluga imat će se jedna kartica koja će omogućavat rad sa tih pet usluga.

 

            U ovom seminarskom radu za primjer rada višenamjenske kartice implementirane su tri usluge koje su nezavisne jedna o drugoj:

 

-         identifikacijska kartica

-         vozačka dozvola

-         bankovni račun

8.1.1 Identifikacijska kartica

 

            Namijenjena je za identifikaciju korisnika, npr. kao osobna iskaznica, koji mora znati  PIN broj za pristup podacima na kartici. U slučaju nepoznavanja PIN broja ne može se pristupiti podacima na kartici te nije moguća identifikacija korisnika te se može reći da osoba koja ima karticu nije vlasnik te kartice. Ova identifikacijska kartica bila bi pogodna za poduzeća gdje je potrebna identifikacija korisnika prije njegovog ulaska u zaštićene prostorije.

 

8.1.2 Vozačka dozvola

 

            Zamjena za sadašnju vozačku dozvolu, sadrži sve potrebne podatke o vozaču, o valjanosti dozvole, te kategorije vozila kojim osoba ima pravo upravljati. Također sadrži neke informacije, npr. da vozač mora nositi naočale tijekom vožnje i drugo.

 

8.1.3 Bankovni račun

 

            Sadrži informacije o bankovnom računu, broj računa, broj kartice, podaci korisnika, sredstva na računu. Korisnik može pregledavari stanje računa i uzimati sredstva s računa međutim ne može dodavati sredstva, to može samo administrator koji se verificira kartici svojim PIN brojem.

 

 

8.2  Izvedba višenamjenske pametne kartice

 

            Razvoj aplikacija za višenamjensku karticu mogli bi podijeliti u dva dijela:

 

-         Razvoj apleta za pametnu karticu

-         Razvoj terminala

 

8.2.1 Apleti za pametnu karticu

 

            Apleti za pametnu karticu rađeni su u Java Card tehnologiji koja omogućava brz razvoj i neovisnost izvođenja apleta od operacijskog sustava kartice i proizvođaču kartice. Jedino što je bitno je da kartice podržavaju Java Card tehnologiju.

 

            Svaki aplet ima dva četveroznamenkasta PIN broja(4 bajta). Jedan PIN broj je korisnički, dok je drugi  administratorski. Administrator ima sve dozvole, on može čitati i pisati podatke dok korisnik može samo čitati podatke. Aplet također instancira kripto algoritme i funkciju za račuananje sažetka. Algoritmi koji se koriste su:

 

-         RSA s 1024-bitnim ključem

-         DES

-         SHA1

 

8.2.2 Terminal

 

            Terminal je u sredini komunikacijskog kanala između korisnika i apleta na pametnoj kartici. Preko sučelja terminala korisnik se verificira svojim PIN brojem, pregledava podatke dok administrator može i upisivati podatke na karticu. Slike koje slijede prikazuju izgled terminala za administratora i korisnika(Slika 8.1 do Slika 8.4).

 

 

Slika 8.1 – Terminal administratora za identifikacijsku karticu

 

 

Slika 8.2 – Terminal korisnika za identifikacijsku karticu

 

 

Slika 8.3 – Terminal administratora za aplikaciju bankovnog računa

 

 

 

Slika 8.4 – Terminal korisnika za aplikaciju bankovnog računa

 

 

 

 

 

8.3 Sigurnosni mehanizmi i komunikacija

 

            Terminala i pametna kartica implementiraju algoritme za sigurnu razmjenu podataka. Nakon selektiranje apleta i unosa PIN broja(Slika 8.6) dolazi do razmjene ključeva za kriptoalgoritme preko kojih se vrši sigurna razmjena podataka. Apleti dopuštaju pet pogrešnih unosa PIN broja(Slika 8.7) nakon čega se kartica blokira(Slika 8.8). Aplet generira javni(PublicKey) i privatni ključ(PrivateKey) za 1024-bitni RSA asimetrični algoritam kriptiranja tijekom postavljanja podataka na karticu od strane administratora. Nakon što je unesen ispravan PIN i terminal dobije potvrdu da je verifikacija PIN brojem uspjela(slika 8.9), terminal zatraži od kartice da mu pošalje svoj javni ključ(PublicKey). Nakon što kartica pošalje svoj javni ključ i terminal ga uspješno primi tada terminal generira 64-bitni DES ključ(DESKey) kojeg kriptira javnim ključem kartice(PublicKey) i šalje ga apletu na kartici. Kad aplet dobije kriptirani DES ključ, on ga dekriptira svojim privatnim ključem() i spremi ga za trenutnu sesiju komuniciranja. Slika 8.5 prikazuje tijek komuniciranja apleta i terminala.

 

 

 

 

 

 

 

 

 

 


Slika 8.5 – Tijek komunikacije između terminala i kartice

 

            Aplet također digitalno potpisuje podatke koje šalje terminalu. Digitalni potpis kreira se SHA1 funkcijom sažetka kojom se dobije 160-bitni sažetak kojeg aplet tada kriptira svojim privatnim RSA ključem. Nakon što terminal dobije podatke i provjeri potpis ispisuje poruku da je primio podatke i da je digitalni potpis valjan Slika 8.10.

 

 

Slika 8.6 – Unos PIN broja

 

 

Slika 8.7 – Pogresan unos PIN broja

 

 

Slika 8.8 – Kartica blokirana

 

 

Slika 8.9 – Ispravan PIN broj

 

 

Slika 8.10 – Dobavljanje podataka i provjera digitalnog potpisa

 

8.4 Opis razreda za implementaciju višenamjenske pametne kartice

 

8.4.1 Razredi za aplete koje izvodi pametna kartica

 

Za pametnu karticu implementirana su tri razreda, svaki razred je za određeni aplet na kartici koji su međusobno neovisni. Svaki aplet identificiran je svojim AID brojem i AID brojem paketa u kojem se taj aplet nalazi. Prvih pet bajtova AID broja paketa i AID broja apleta moraju biti jednaki. Razredi u implementaciji su:

 

-         IDCard – koji se nalazi paketu jcard.seminar.idcard. Kad se iz ovog razreda stvori aplet i kad se on kovertira u format za izvođenje na pametnoj kartici dobije svoj AID broj koji je jednak D0000010101016 , dok paket  jcard.seminar.idcard ima AID broj jednak D00000101016.

-         DriverLicenceCard – nalazi se u paketu jcard.seminar.dlcard. AID broj apleta je D00000202020, AID broj paketa jcard.seminar.dlcard  jednak D000002020.

-         BankAcountCard – nalazi se u paketu jcard.seminar.bankacount. AID broj apleta je D00000303030, AID broj paketa jcard.seminar.bankacount je D000003030

8.4.2 Razredi za terminal

 

            Za izradu terminala postoji više razreda. Razrede možemo grubo podijeliti u tri grupe:

 

-         Razredi za implementaciju kriptografskih funkcija

-         Razredi za komunikaciju s pametnom karticom

-         Razredi za izradu grafičkog sučelja

 

8.4.2.1 Razredi za implementaciju kriptografskih funkcija

 

-         DESCrypt – ima funkciju generiranja DES ključa te funkciju kriptiranja i dekiptiranja DES algoritmom.

-         RSACrypt – ima funkciju dekriptiranja javnim ključem RSA algoritma.

-         SHA1Hash – ima funkciju stvaranja 160 bitnog sažetka. U kombinaciji s RSACyrpt razredom provjerava se digitalni potpis poslan od apelta na pametnoj kartici.

 

8.4.2.2 Razredi za komunikaciju s pametnom karticom

 

-         CardClient – implementira metode za razmjenu kriptografskih ključeva i metode za verifikaciju PIN brojem te promjena PIN broja. Također sadrži konstante za provjeru APDU odgovora koje šalje kartica.

-         IDClient – komunikacija između terminala i apleta za implementaciju identifikacijske kartice. Nasljeđuje razred CardClient te još implementira metode za postavljanje i dobavljanje poataka s kartice.

-         DLClient – komunikacija između terminala i apleta za implementaciju vozačke dozvole. Nasljeđuje razred CardClient te implementira metode za postavljanje i dobivanje podataka i informacija.

-         BAClient – komunikacija između terminala i apleta za implementaciju bankovnog računa. Nasljeđuje razred  te implementira metode za postavljanje i dobivanje podataka i sredstava na računu te dodavanje i skidanje iznosa s računa.


 

8.4.2.3 Razredi za izradu grafičkog sučelja

 

-         IDCardGui - Grafičko sučelje za identifikacijsku karticu. Stvara kanal za komunikaciju koji onda koristi razred za komunikaciu.

-         DLCardGui – Grafičko sučelje za vozačku dozvolu. Isto stvara kanal za komunikaciju koji tada koristi razred za komunikaciju.

-         BACardGui – Grafičko sučelje za bankovni račun. Također stvara komunikacijski kanal koji koristi razred za komuniciranje.

-         PinDialog – Kreiranje prozora za unos PIN broja. Koristi CardClient razred za komunikaciju s karticom.

-         ChangePinDialog – Kreiranje prozira za promjenu PIN broja. Koristi CardClient razred za komunikaciju s karticom.

-         Gui -  Stvaranje završnog grafičkog sučelja. Koristi prije navedene grafičke komponente osim PinDialog razreda i ChangePinDialog razreda.

-         SC -  Razred preko kojeg se pokreće terminal. Sadrži main funkciju kojom se poziva razred Gui.


9.  ZAKLJUČAK

 

            Ovim seminarom želi se pokazati kako upotrebom pametne kartice i Java Card tehnologije napraviti višenamjensku pametnu karticu koja sadrži više neovisnih aplikacija svaka namijenjena određenom servisu ili namjeni. U ovom seminaru prikazan je primjer tri aplikacije koje se izvode na jednoj pametnoj kartici, a za koje postoje tri različita terminala.

 

            U skoroj budućnosti bi mogli očekivati pojavu ovakvih kartica u široj primjeni, npr. jedna pametna kartica koja bi implementirala aplete za kreditne kartice za nekoliko različitih banaka ili ili jedna kartica na kojoj bi bila i osobna iskaznica, zdrastvena iskaznica te vozačka dozvola.

 

            Pametna kartica je proizvod koji pruža veliku sigurnost za koju je i napravljena, a zajedno s Java Card tehnologijom pruža veliku fleksibilnost i brzinu u izradi za pametne kartice. Ovdje treba spomenuti i OpenCard Framework koji nudi biblioteke za izgradnju terminala neovisnih o proizvođaču CAD uređaja.

 

            Nedostatak u bržem napredovanju višenamjenskih pametnih kartica je u tome što ne postoje standardi kao što je EMV za bankarske funkcije za aplikacije kao što su osobna iskaznica i zdrastvena iskaznica. Ti standardi bi omogućavali da aplikacije na pametnim karticama za određeni servis rade na svim terminalima u svijetu namijenjenih tim servisima.

 

 

 
10. LITERATURA

 

[1]          IBM Redbooks, Smart Cards: A Case Study, http://www.redbooks.ibm.com/redbooks/pdfs/sg24539

[2]          Sun Microsytems, Java Card Specifications v2.2.1., http://java.sun.com/products/javacard

[3]          Sun Microsytems, Java CardTM Development Kit User's Guide v2.2.1.

[4]          Sun Microsytems, Java CardTM API Reference v2.2.1.

[5]          Sun Microsytems, Virtual Machine Specification for the Java CardTM Platform v2.2.1.

[6]          Sun Microsytems, Runtime Environment Specification for the Java CardTM Platform v2.2.1

[7]          Sun Microsytems, An Introduction to Java Card Technology, http://developers.sun.com/techtopics/mobility/javacard/articles

[8]          CardWerk Technologies, http://www.cardwerk.com

[9]          Schlumberger, Cyberflex® AccessTM Cards Programmer's Guide

[10]      Schlumberger, CryptoflexTM Card's Programmer's Guide

[11]      OpenCard, http://www.opencard.org

[12]      Smart Card Developer Kit, http://unix.be.eu.org/docs/smart-card-developer-kit

 


11. DODATAK

11.1 Korištene kratice

 

            AES - Advanced Encryption Standard

AID - Applet Identification Number

APDU - Application Protocol Data Unit

API - Application Programming Interface

ATR - Answer To Reset

CAD - Card Acceptance Device

CAP - Converted Applet

CBC - Cipher Block Chaining

CHV - CardHolder Verification

CRC - Cyclic Redundancy Check

DES - Data Encryption Standard

DF - Dedicated File

EEPROM - Electric Erasable Programmable Read Only Memory

EF - Elementary File

EMV - Europay-MasterCard-Visa

GCF - Generic Connection Framework

GSM - Global Standard for Mobile communications

IC - Integrated Circuit

ID - Identification Number

ISO - international Standard Organisation

JCRE - Java Card Runtime Environment

JCRMI        - Java Card Remote Methode Invocation

JCVM - Java Card Virtual Machine

LRC - Longitudinal Redundancy Check

MF - Master File

OCF - Open Card Framework

PIN - Personal Identification Number

PKI - Public Key Infrastructure

RAM - Random Access Memory

ROM - Read Only Memory

RSA - Rivest, Shamir, Adleman

SATSA - Security and Trust Services API

SIM - Subscriber Identification Number

TPDU - Transmission Protocol Data Unit

VM - Virtual Machine