85
SVEUILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAUNARSTVA DIPLOMSKI RAD br. 1451 PREZENTACIJSKI SUSTAV ZA PAMETNE KARTICE Tomislav Geceg Zagreb, rujan 2004.

PREZENTACIJSKI SUSTAV ZA PAMETNE KARTICEsigurnost.zemris.fer.hr/pk/2004_geceg/diplomski_geceg.pdf · prikazuje vanjski izgled moderne pametne kartice. I dok s jedne strane tehnologija

  • Upload
    others

  • View
    8

  • Download
    2

Embed Size (px)

Citation preview

SVEU�ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA�UNARSTVA

DIPLOMSKI RAD br. 1451

PREZENTACIJSKI SUSTAV ZA PAMETNE KARTICE

Tomislav Geceg

Zagreb, rujan 2004.

��������

� �� ��� �� ��� ������ ���� �� � � �� � ���� �� � ��������� � ����� ��

� ������� � �� ���������� ������ � �� �� �� ������ � ������ ���� ������ ���� �� ���� ��

������ � ������ � �� �� ������ ��� ����������� �� ��������������� !�� ��� �������� �������

"��� ��� ���� �� �� ���� � ��� �� � ������ ��� ��� �� ���� �� ���� ��� ���

���� ������ ���

# ����� ���$%��������$&&'��

Sadržaj 1. UVOD .............................................................................................................................. 1 2. PAMETNA KARTICA...................................................................................................... 2

2.1. POVIJEST.................................................................................................................. 4 2.2. TEHNOLOGIJA ........................................................................................................... 7 2.3. OSNOVNA SVOJSTVA ................................................................................................. 8 2.4. STANJE PRIJE POJAVE PAMETNIH KARTICA ................................................................. 9 2.5. PRIMJENA PAMETNIH KARTICA .................................................................................. 10

3. OKRUŽENJE PAMETNE KARTICE............................................................................. 12 3.1. KARTI�NA APLIKACIJA I APLIKACIJA TERMINALA.......................................................... 13 3.2. KAKO RADI KOMUNIKACIJA KARTICA-�ITA�? .............................................................. 14

4. SIGURNOST PAMETNIH KARTICA ............................................................................ 20 4.1. KOMUNIKACIJA ........................................................................................................ 20 4.2. SKLOPOVLJE........................................................................................................... 22 4.3. OPERACIJSKI SUSTAV .............................................................................................. 23 4.4. PROGRAMSKA RJEŠENJA ......................................................................................... 24

4.4.1. Sigurnosne osobine Java Card tehnologije...................................................... 25 4.5. MOGU�E OPASNOSTI I NA�INI OTKLANJANJA ............................................................. 28

4.5.1. Napad na osobni identifikacijski broj (PIN) prekidom napajanja ...................... 28 4.5.2. Napad prekidom napajanja............................................................................... 30 4.5.3. Defragmentacija memorije................................................................................ 32 4.5.4. Greške u EEPROM-u ....................................................................................... 33 4.5.5. Vremenski napadi............................................................................................. 34 4.5.6. Analiza diferencijalnih grešaka......................................................................... 36 4.5.7. Napad analizom potrošnje................................................................................ 37 4.5.8. Napad analizom razlika u potrošnji .................................................................. 38

4.6. KAKO RIJEŠITI PITANJE SIGURNOSTI PAMETNIH KARTICA? .......................................... 40 5. USPOREDBA RAZVOJNIH PLATFORMI.................................................................... 41

5.1. BASICCARD PAMETNE KARTICE ................................................................................ 43 5.1.1. BasicCard tehnologija....................................................................................... 44 5.1.2. ZBasic programski jezik.................................................................................... 44 5.1.3. Arhitektura BasicCard pametne kartice............................................................ 45

5.2. JAVA PAMETNE KARTICE .......................................................................................... 49 5.2.1. Java Card tehnologija....................................................................................... 51 5.2.2. Java Card jezi�ni podskup................................................................................ 52 5.2.3. Arhitektura Java Card pametne kartice ............................................................ 53

6. PRIMJER RAZVOJA KARTI�NOG SUSTAVA ........................................................... 58 6.1. APLIKACIJA TERMINALA HEALTHINSURANCEPROVIDER .............................................. 59

6.1.1. Postavke aplikacije HealthInsuranceProvider .................................................. 60 6.1.2. U�itavanje karti�ne aplikacije na karticu........................................................... 61 6.1.3. Inicijalizacija kartice .......................................................................................... 62 6.1.4. Upis korisni�kih podataka na karticu ................................................................ 63

6.2. APLIKACIJA TERMINALA HEALTHDOCTOR .................................................................. 64 6.2.1. �itanje podataka korisnika s kartice................................................................. 65 6.2.2. Upis podataka na karticu i u bazu podataka .................................................... 66 6.2.3. Pretraživanje baze podataka korisnika............................................................. 67

6.3. KARTI�NA APLIKACIJA HEALTHCARD ........................................................................ 68 6.3.1. Razvojni put karti�ne aplikacije ........................................................................ 69 6.3.2. Dizajniranje karti�ne aplikacije ......................................................................... 71 6.3.3. Specifikacija funkcija karti�ne aplikacije........................................................... 71 6.3.4. Odre�ivanje naredbi karti�ne aplikacije............................................................ 72

6.3.5. Definiranje su�elja ............................................................................................ 72 6.3.6. Svojstva korištene pametne kartice.................................................................. 73

7. ZAKLJU�AK................................................................................................................. 74 8. LITERATURA................................................................................................................ 75 9. SAŽETAK...................................................................................................................... 77 10. ABSTRACT................................................................................................................... 78 PRILOG: KRATICE ............................................................................................................... 79

1

1. Uvod

Visoka tehnologija i sigurnost svojstva su današnjih pametnih kartica.

Cilj ovog rada je prou�iti postoje�a programska rješenja obzirom na njihova tehnološka, sigurnosna i razvojna svojstva. Posebna pažnja posve�ena je sigurnosnim opasnostima i na�inima otklanjanja. Kao primjer ostvaren je prezentacijski sustav za identifikaciju korisnika zdravstvenog osiguranja. Sustav se sastoji od karti�ne aplikacije (koju korisnik osiguranja upotrebljava umjesto dosadašnje kartice s magnetskom trakom) i aplikacije terminala s bazom podataka o korisnicima. Sustav je priložen na opti�kom mediju.

Razvoj sustava i saznanja koja omogu�uju daljnje istraživanje opisana

su u poglavljima ovog rada: - prvo poglavlje opisuje povijesni razvoj, svojstva i razvojni put

pametnih kartica

- drugo poglavlje bavi se standardima i komunikacijskim protokolima važe�ima na podru�ju pametnih kartica

- tre�e poglavlje opisuje mogu�e opasnosti gubitka podataka i

na�ine njihova otklanjanja u razli�itim razvojnim sustavima

- �etvto poglavlje opisuje dvije razvojne platforme, Java Card koja je vode�a na tržištu pametnih kartica i novu BasicCard koja jednostavnoš�u i nižom cijenom postaje vrlo konkurentna

- u posljednjem poglavlju ukratko je opisan razvoj sustava

„HealthCard“ namijenjenog za upotrebu u zdrastvenom osiguranju (uz manje prilagodbe, mogu�e su sli�ne primjene i u drugim djelatnostima)

2

2. Pametna kartica

Pametna kartica (eng. Smart Card) - što je to? Naziv govori malo o mogu�nostima koje se danas mogu ostvariti pomo�u pametnih kartica. Prete�e današnjih kartica pojavile su se u Americi ranih pedesetih godina prošlog stolje�a i bile su simbol bogatstva, posjedovala ih je samo probrana elita. Sadržavale su jednostavne podatke koje je bilo teško krivotvoriti. Kartice s magnetskom trakom bile su prvo zna�ajnije poboljšanje (u tom obliku se i danas ve�inom koriste). Pojavom elektronike i mikroelektronike omogu�ena je izrada ra�unala na malom silicijskom �ipu, površine nekoliko kvadratnih milimetara, koji je mogu�e ugraditi na identifikacijsku karticu. Prva takva ideja javila se 1968. u Njema�koj (Jurgen Dethloff, Helmut Grotrupp), a zatim 1970. u Japanu (Kunitaka Arimura). Prvi patent registriran je u Francuskoj 1974. (Roland Moreno), kada je ve� bilo mogu�e nabaviti tražene komponente po razumnoj cijeni. Komercijalno uvo�enje pametnih kartica u Francuskom PTT-u kao telefonskih kartica ozna�ava po�etak njihove široke upotrebe [1]. Danas se ve�inom koriste starije ina�ice koje zapravo nisu pametne (telefonske kartice, SIM kartice, iksice itd.), jer nemaju mikroprocesor. No zahvaljuju�i sve boljoj tehnologiji, mogu�nosti pametnih kartica danas su vrlo velike, a u budu�nosti �e sigurno biti još ve�e jer �e se primjena pametnih kartica proširiti na sva podru�ja ljudskog života. To su zapravo mala ra�unala sa svim svojim potrebnim komponentama (sadrže CPU, RAM, ROM i EEPROM) i sve više neovisna o terminalu (host).

Pojam „pametna kartica“ upotrebljava se za bilo kakvu karticu koja

može vezati informaciju uz neku prakti�nu primjenu. Kartice s magnetskom trakom imaju traku s magnetskim materijalom na jednom dijelu svoje površine, opti�ke kartice su iste veli�ine, ali za upis/�itanje informacija koriste neku vrstu lasera. Opti�ke i kartice s magnetskom trakom su memorijske kartice – mogu pohraniti razli�ite podatke, ali ih ne mogu obra�ivati. Mikroprocesorske kartice mogu pohraniti podatke, obra�ivati ih i izvoditi zahtjevne operacije. Memorijski prostor takvih kartica je postojan, fizi�ki i sklopovski zašti�en, omogu�uje jednostavnu izmjenu podataka. Mikroprocesorske kartice se po na�inu komunikacije s �ita�em dijele se na kontaktne (komunikacija preko metalnih kontakata na površini kartice) i beskontaktne (komunikacija radio valovima). Preciznije, pojam „pametne kartice“ se odnosi na memorijske i mikroprocesorske kartice [13].

3

Posljednjih godina s programskim jezikom Java te Java Card tehnologijom, razvijenom samo za razvoj aplikacija pametnih kartica, otvorene su nove mogu�nosti programerima aplikacija pametnih kartica zbog neovisnosti programskog koda o kartici i njenom sklopovlju. U vrijeme memorijskih kartica, svaki proizvo�a� imao je posebni razvojni tim jer se programiranje kartica razli�itih proizvo�a�a razlikovalo i nije bilo standardizirano. Pojavom novih standarda (ISO 7816-3, ISO 7816-4, i sl.) programiranje pametnih kartica postalo je pristupa�nije, brže i jednostavnije. Osim Java Card razvojne platforme, na tržištu se javljaju i druge poput BasicCard (za koju je pisan programski dio ovog rada).

86mm

54m

m

Slika 2.1 Pametna kartica

Izme�u ostalih �imbenika koji su doprinjeli bržem razvoju i usvajanju pametnih kartica, veliku težinu ima sigurnost. Podaci se kriptiraju poznatim algoritmima (56 bitni DES, 512-1024 bitni RSA, 167 bitni ECC, IDEA, SHA, itd.). Podaci su na kartici puno sigurniji nego u doba memorijskih kartica, kao i komunikacijski kanal za razmjenu podataka izme�u ra�unala i �ita�a, te izme�u ra�unala i baze podataka (može biti kriptiran ili zašti�en raznim tipovima stroge me�usobne autentifikacije). U zadnje vrijeme se proizvode pametne kartice koje na sebi sadrže ugra�ene kriptografske procesore odvojene od glavnog procesora radi što boljih performansi (sklopovsko kriptiranje je uglavnom brže od izvršavanja programskog algoritma). Slika 2.1 prikazuje vanjski izgled moderne pametne kartice.

I dok s jedne strane tehnologija napreduje munjevitom brzinom,

pametne kartice se sve više koriste u svim granama ljudske djelatnosti. �esto se javljaju problemi kad treba iz hrpe kartica izvaditi baš onu koju treba za traženog davatelja usluge. Javljaju se prve višeuslužne pametne kartice koje imaju više primjena (npr. bankovna i telefonska kartica). Razvoj standarda i specifikacija olakšati �e njihovu primjenu. Važno je naglasiti da je rije� „�ita�“ ostala ustaljenom u tehnologiji pametnih kartica još iz vremena memorijskih kartica kad su �ita�i imali samo funkciju �itanja podataka, a programiranje memorijske kartice se obavljalo preko posebnih izlaznih jedinica. U vrijeme pametnih kartica, pod tim istim pojmom podrazumijeva se i „pisa�“ jer se preko njega upisuju i mijenjaju podaci na pametnoj kartici.

4

2.1. Povijest

Iako su pametne kartice vrhunac tehnologije, od njihove pojave prošlo je ve� 30-ak godina. Od 1970. godine do danas vidljiv je stalan napredak u sklopovskim (mikroprocesorskim) mogu�nostima i rastu broja razli�itih podru�ja njihove primjene. Glavni uzroci širenja njihove primjene su sve niža cijena (ve�a dostupnost) i nedovoljna sigurnost kartica s magnetskom trakom. Slijedi kratak prikaz povijesti pametnih kartica, od pojavljivanja do danas [13]:

- 1970. dr. Kunitaka Arimura (Japan) – prvi i jedini patent konceptualne zamisli pametne kartice.

- 1974. Roland Moreno (Francuska) - patent kartice s integriranim

sklopom (IC Card), kasnije postaje poznata pod imenom „pametna kartica“.

- 1977. troje komercijalnih proizvo�a�a (Bull CP8, SGS Thomson,

Schlumberger) po�inje s razvojem pametnih kartica.

- 1979. Motorola za Francusko bankarstvo proizvodi prvi siguran mikrokontroler.

- 1982. terensko testiranje serijske memorijske telefonske kartice u

Francuskoj – prvi veliki ispit IC kartica.

- 1984. prvo uspješno terensko testiranje ATM bankovnih kartica.

- 1986. Bank of Virginia i Maryland National Bank izdaju 14 000 kartica s Bull CP8 mikrokontrolerom, First National Palm Beach Bank i Mall Bank izdaju 50 000 Casio kartica svojim klijentima.

- 1987. razvijena prva aplikacija pametnih kartica za široko tržište

Ameri�kog ministarstva poljoprivrede Peanut Marketing Card.

- 1991. pokrenut projekt First Electronic Benefits Transfer za Wyoming Special Supplemental Nutrition Program for Women, Infants, and Children.

- 1992. pokrenut nacionalni program elektroni�kog nov�anika

DANMONT u Nizozemskoj.

5

- 1993. terensko testiranje aplikacija za višeuslužne pametne kartice (Rennes, Francuska), bankovna kartica (Smart Bank Card) ujedno je i telefonska (Telecarte).

- 1994. Europay, MasterCard i Visa (EMV) objavljuju zajedni�ku

specifikaciju za bankovne kartice temeljene na mikrokontroleru. Njema�ka po�inje s izdavanjem 80 milijuna serijskih memorijskih zdravstvenih kartica.

- 1995. preko 3 milijuna korisnika mobilnih telefona sa SIM karticama.

Ameri�kim marincima (Havaji) izdane prve od 40 000 višeuslužnih pametnih kartica (MARC Cards).

- 1996. izdano preko milijun i pol VISACash bankovnih kartica za

olimpijske igre u Atlanti. MasterCard i Visa sponzoriraju konzorcij za rješavanje problema interoperabilnosti pametnih kartica – razvijena dva rješenja: Java Card (Visa) i Multi-application Operating System MULTOS (MasterCard).

- 1998. u rujnu, administracija Ameri�ke vlade (U.S. Government“s

General Services Administration) i Ameri�ka mornarica (U.S. Navy) razvijaju sustav pametnih kartica s 9 aplikacija (Smart Card Technology Center, Washington DC.). Namjena centra jest demonstracija i evaluacija integracije višeuslužnih pametnih kartica s drugim vrstama tehnologije u cilju otkrivanja sustava pogodnih za uporabu u saveznoj vladi (Federal Government). Microsoft objavljuje novi Windows operativni sustav za pametne kartice. U Francuskoj po�inje izdavanje zdravstvenih pametnih kartica za 50 milijuna stanovnika.

- 1999. administracija Ameri�ke vlade (U.S. Government“s General

Services Administration) sudjeluje u Smart Access Common ID projektu. Smart Access Common ID Card program koristiti �e sve federalne agencije kao standard – interoperabilnu korisni�ku identifikacijsku karticu – u svrhu omogu�avanja fizi�kog i logi�kog (system/network) pristupa njihovim zaposlenicima. Ameri�ka vlada pokre�e Java Card višeuslužni program (Washington DC.).

6

Dokumentirati noviju povijest pametnih kartica (od 1999. do danas) nije jednostavno. Na tržištu svakim danom ima sve više rješenja, za razli�ite primjene. Prihva�anje i primjena tehnologije pametnih kartica razlikuje se od zemlje do zemlje i nacionalni sustavi još nisu kompatibilni. Na slici 2.2 prikazano je predvi�anje rasta broja proizvedenih pametnih kartica do 2006. godine [20].

398541 599

701

8721052

11691262

0

200

400

600

800

1000

1200

1400Broj prodanih pametnih kartica, u milijunima

1999 2000 2001 2002 2003 2004 2005 2006Godina

Slika 2.2 Predvi�anje rasta broja prodanih pametnih kartica u svijetu

Uloga pametnih kartica u nov�anim (i ostalim) transakcijama o�ita je i neizbježna. Interoperabilnost, standardizacija i razvoj izazovi su postavljeni današnjim pametnim karticama. Ti izazovi nisu jednostavni - uz pomo� industrije javiti �e se inovativna rješenja koja spajaju nove tehnologije (poput interaktivne televizije, pametnih mobilnih telefona, ru�nih digitalnih organizatora (PDA), elektroni�kih nov�anika i interenta.

Uslijed zahtjeva na sve široj primjeni pametnih kartica javlja se potreba za bržim razvojem karti�nih aplikacija. Sigurnosni zahtjevi se neprestano mijenjaju, nema proizvo�a�a pametnih kartica koji može re�i da je njegov proizvod otporan na sve mogu�e (budu�e) napade. Pristup sigurnosti pametnih kartica sve više se okre�e standardizaciji. Prepoznavanje opasnosti, njihova specifikacija i protumjere implementirane prema standardima, znatno �e pojednostaviti korištenje i razumijevanje s jedne strane, a otežati gubitak informacije s druge. Sigurnosna evaluacija rješenja treba po�eti u što ranijoj fazi izrade, i te�i paralelno s razvojem u cilju pristupa�nog i pouzdanog rješenja. Neovisnost proizvo�a�a mikromodula pametnih kartica i proizvo�a�a karti�nih operacijskih sustava uzrokovati �e niže cijene karti�nih sustava. Od pametnih kartica se u budu�nosti o�ekuje raširena uporaba na svim podru�jima ljudskih djelatnosti, objedinjavanje više usluga na jednoj kartici i lakše poslovanje uz maksimalnu sigurnost.

7

2.2. Tehnologija

Veli�ina pametnih kartica odgovara veli�ini uobi�ajenih kreditnih kartica. Izra�uju se od polivinil-klorida (PVC) i sadrže ugra�eni mikromodul. Mikromodul se sastoji od jednog integriranog �ipa s memorijom i mikroprocesorom, a na površini ima osam metalnih kontakata (vidi poglavlje 3.2.). Umetanjem kartice u �ita� (CAD – Card Acceptance Device) spajaju se kontakti �ita�a s odgovaraju�im kontaktima pametne kartice i omogu�ava me�usobna komunikacija [13].

Dijelovi mikromodula su:

- mikroprocesor (Microprocessor Unit – MPU), starije pametne kartice koristile su 8-bitne, a tijekom 90-tih godina prelazi se na 32-bitne RISC mikroprocesore s taktom od 25 do 30 MHz.

- ulazno-izlazni kontroler (I/O Controller) koji upravlja tokom podataka

izme�u mikroprocesora i �ita�a.

- memorija za �itanje (ROM) ili programska memorija u koju proizvo�a� trajno upisuje programske instrukcije. Te instrukcije su osnova operacijskog sustava pametne kartice (Chip Operating System – COS), danas se izvodi kao flash ROM.

- memorija sa slu�ajnim pristupom (RAM) ili radna memorija koja se

koristi kao privremeno spremište izra�una, operacija nad podacima i ulazno/izlaznih komunikacija. Ta memorija nije postojana i gubi podatke pri isklju�enju napajanja.

- aplikacijska memorija, danas ve�inom EEPROM. Pisanje i brisanje

aplikacijske memorije izvodi se elektri�ki. Prema internacionalnim standardima, podaci u EEPROM-u „traju“ 10 godina, mogu se �itati/pisati najmanje 10 000 puta za vrijeme života kartice. Karti�ne aplikacije koriste ovu vrstu memorije za pohranu podataka na karticu.

8

2.3. Osnovna svojstva

- cijena – od 1� do 10�, raste s ve�im kapacitetom i složenijim

mikrokontrolerom, niža za velike narudžbe. - pouzdanost – kartice izvedene prema ISO standardima trebaju biti

otporne na pad, savijanje, abraziju, pritisak, temperaturu, vlažnost, stati�ki elektricitet, napad kemikalijama, ultraljubi�asto i rendgensko zra�enje, te magnetsko polje.

- ispravljanje grešaka – operacijski sustav kartice ima ugra�enu zaštitu od grešaka, aplikacija terminala mora provjeravati dvo-bajtnu statusnu rije� (vidi poglavlje 3.2.) dobivenu od operacijskog sustava kartice nakon izvršenja naredbe i, prema potrebi, izvršiti ispravljanje.

- veli�ina EEPROM-a 1-64 kilobajta, 8-32 kilobajta ROM-a, 256-2048 bajtova RAM-a. Novije metode sažimanja podataka omogu�uju spremanje ve�e koli�ine podataka od navedene.

- jednostavnost korištenja – pametne kartice imaju jednostavno su�elje za prakti�nu primjenu, sli�no bankovnoj kartici s magnetskom trakom.

- osjetljivost – osjetlijve su na fizi�ka ošte�enja mikromodula, no ipak ih je teže oštetiti nego kartice s magnetskom trakom.

- sigurnost – pametne kartice su vrlo sigurne (no ne i potpuno, vidi poglavlje 4.5.), podatke pohranjene u mikromodulu je teško kopirati ili oštetiti, za razliku od kartica s magnetskom trakom. Podrška enkripcijskim i autentifikacijskim algoritmima te digitalnom potpisu.

- brzina prijenosa – ISO 7816 ograni�ava kontaktne pametne kartice na 9600 bauda. Neki karti�ni operacijski sustavi dozvoljavaju promjenu brzine prijenosa nakon pokretanja mikromodula, dobro dizajnirane aplikacije izvode operacije u trajanju do 2 sekunde.

- procesna snaga – stariji mikroprocesori na kartici bili su 8-bitni s 16 MHz taktom, današnji 32-bitni s 25-32 MHZ taktom, bolji s pomo�nim procesorom za brzu enkripciju.

- izvor napajanja 5V istosmjerno. Ve�ina primjena zahtjeva samo �ita� (CAD) s asinkronim taktom, serijskim su�eljem i 5-voltnim izvorom napajanja.

Klju�nu ulogu interoperabilnosti i kompatibilnosti u okruženju s više

proizvo�a�a pametnih kartica imaju standardi. Standardi za integrirano sklopovlje postoje od 1980-tih. Svjetski standard za pametne kartice je ISO 7816, no još uvijek ne postoji standard za karti�ni operacijski sustav. Razli�iti proizvo�a�i nude razli�ite COS-ove, što je važan �imbenik pri odabiru kartice za odre�eno rješenje. Razli�ite grupe i konzorciji rade na prijedlozima standarda i specifikacija vezanim za pametne kartice (vidi poglavlje 4.6.).

9

2.4. Stanje prije pojave pametnih kartica

Prije pojave pametnih kartica, postojale su razne magnetske memorijske kartice koje nisu bile standardizirane i kompatibilne. Magnetska traka je robustna i lako �itljiva, ali nije sigurna. Podatke koji su na njoj može pro�itati (i kopirati) bilo koji �ita� magnetskih kartica. Kartice razli�itih proizvo�a�a druga�ije su se programirale i vrijedila su posebna pravila za pojedinog proizvo�a�a. Tako su proizvo�a�i razvijali svoj strojni jezik pa �ak i jezik više razine za programiranje kartica. Obi�no su se takve kartice programirale u tvornici prilikom izrade ili odmah nakon izrade, pa je postojao dodatni trošak za korisnika. Naru�itelj je morao pla�ati svoje programere za izradu aplikacija terminala, i programere proizvo�a�a kartica (za izradu karti�nih aplikacija). Ako se programeri proizvo�a�a i programeri naru�itelja nisu dobro sporazumjeli (npr. loša specifikacija funkcija), znalo je do�i do poprili�ne zbrke što je dodatno pove�alo troškove za naru�itelja. Slika 2.3 prikazuje razvojni put memorijske kartice. Idealni razvojni put je ozna�en strelicama sa punom crtom, a slu�ajevi greški prikazani su crtkanim strelicama. Do problema može do�i na tri mjesta i to:

- prilikom razvoja aplikacije terminala - prilikom testiranja aplikacije terminala - krajnji korisnik ili davatelj usluge je uo�ava probleme bilo sa

aplikacijom terminala ili s programiranom karticom

Naj�eš�e razvojni put nije bio idealan, postojali su odre�eni problemi koji su zahtjevali prepravljanje bilo aplikacije terminala, bilo programa na memorijskoj kartici, što je pove�avalo troškove i vremenska kašnjenja. Novije kartice mogao je programirati i sam naru�itelj te se tako izbjeglo nesuglasje, ali se javio drugi problem: treba nau�iti strojni jezik za programiranje kartica (koji obi�no nije kompatibilan s drugim proizvo�a�ima). Nestandardiziranost razli�itih proizvo�a�a uzrokovala je spor razvoj i prihva�anje sustava pametnih kartica [1].

Programerimemorijskih kartica

Krajnjikorisnikusluge

Programeri aplikacijeterminalaIzrada memorijske kartice Uvo�enje kartice u rad

Proizvo�a� memorijskih kartica Naru�itelj-davatelj usluge Krajnji korisnik

Slika 2.3 Nekadašnji razvoj pametnih kartica

10

2.5. Primjena pametnih kartica

Slika 2.4 prikazuje razvojni put pametnih kartica koji je mnogo kra�i,

brži i pouzdaniji od razvojnog puta magnetskih kartica. Pametne kartice imaju sklopovlje i programe koji se pokre�u s umetanjem u �ita�. Može se re�i da je operacijski sustav na pametnoj kartici u neku ruku pasivan, jer interpreter samo odgovara na prije definirane naredbe (veza s vanjskim svijetom je ograni�ena). Mikroprocesor na pametnoj kartici može zabraniti (zaklju�ati) pristup svojoj programskoj memoriji, a novije pametne kartice imaju ugra�ene enkripcijske procedure (funkcije). Zbog tih svojstava pametne kartice su sigurnije (npr. pametna kartica za satelitski reciver, koja selektivno omogu�ava gledanje satelitskih programa na koje ste se pretplatili). Naru�itelj više ne ovisi o programerima proizvo�a�a, karti�ne aplikacije se razvijaju paralelno sa korisni�kom aplikacijom te se tako izbjegavaju nesuglasnosti i nestandardiziranost.

Ako se pojavi greška, brže se otklanja jer se dogodila unutar užeg

kruga ljudi. Pojavom programskih jezika poput Jave i ZBasica (Java Card i BasicCard) razvoj korisni�kih aplikacija i karti�nih aplikacija je puno brži i jednostavniji.

Krajnjikorisnikusluge

Programeri appleta iterminalske aplikacijeIzrada pametne kartice

Uvo�enje kartice u rad sterminalskom aplikacijom

Proizvo�a� pametnih kartica Naru�itelj-davatelj usluge Krajnji korisnik

Slika 2.4 Razvojni put današnjih pametnih kartica

Danas na tržištu prevladavaju kartice temeljene na Java Card

tehnologiji. Visoko su standardizirane pa korisnik (naru�itelj) pametnih kartica više nije vezan za jednog proizvo�a�a (može ih naru�iti od razli�itih proizvo�a�a).

11

Mogu�a primjena pametnih kartica je vrlo široka. Pametna kartica se može upotrijebiti za pohranu svih osobnih identifikacijskih podataka kao i ostalih podataka svojstvenih samo korisniku kartice. Sve usluge kojima korisnik raspolaže biti �e pohranjene na jednom mjestu – na jednoj pametnoj kartici. Osim pohranjivanja osobnih identifikacijskih podataka, mogu�e �e biti pohraniti neke druge dokumente poput lije�ni�kih recepata (ostvareno u programskom dijelu ovog rada, poglavlje 6.), voza�ke dozvole, prijevoznih karata, sredstava pla�anja (za npr. cestarinu, benzinske crpke, hotele), i sli�no. Pametna kartica �e se u isto vrijeme koristiti kao klju� vrata obiteljske ku�e, klju� vrata tvrtke u kojoj ste zaposleni i kao �lanska iskaznica u npr. knjižnici (�uvati �e podatke o knjigama koje ste posudili).

Zbog visokih sigurnosnih zahtjeva koje pametne kartice moraju

zadovoljavati, njihova „unutrašnjost“ se obi�no taji, kako bi se otežali mogu�i napadi. Uz pojednostavljeno korištenje, od pametnih se kartica o�ekuje brz razvoj i uporaba u svakodnevnom životu – stoga je potrebno zadovoljiti sljede�e uvjete:

- višeuslužnost - sigurnost podataka - standardiziranost na visokom nivou

Višeuslužnost je svojstvo kartica koje podržavaju sigurno izvo�enje

aplikacija namjenjenih ostvarenju razli�itih usluga (npr. bankovna kartica koja je ujedno i klju� za ulazak u prostorije neke tvrtke). Sigurnost je osnovni preduvjet za sve primjene pametnih kartica. Razvojem specifikacija i standarda proizašlih iz dosadašnjih rješenja i novih saznanja, pove�ava se i sigurnost sklopovlja i aplikacija u sustavima pametnih kartica. Novi standardi odre�uju i na�ine ostvarenja sigurnog izvršavanja i pohrane višeuslužnih aplikacija.

12

3. Okruženje pametne kartice

Prikaz me�udjelovanja i okruženje karti�nih aplikacija i aplikacija terminala prikazan je na slici 3.1.

Ra�unalo/Terminal

Korisnik kartice

JavaCard/BasicCard appletu�itan na kartici -karti�na aplikacija

Klijent aplikacijakoja se nalazi na

terminalu -aplikacija terminala

Komunikacija �ita�a i terminalapomo�u APDU-a Davatelj usluge

�ita� kartice

Slika 3.1 Okruženje pametne kartice

Karti�ne aplikacije su u �vrstoj sprezi s aplikacijom terminala.

Aplikacija terminala kontrolira ulazne i izlazne podatke koje kartica prima ili daje, te šalje zahtjeve karti�noj aplikaciji pomo�u APDU-a (engl. Application Protocol Data Unit). Karti�na aplikacija se na kartici prilikom izvršavanja ponaša kao jednostavan server - prima, obra�uje podatke i vra�a rezultate aplikaciji terminala. Obi�no u razvojnom paketu dobivenom od proizvo�a�a postoji simulator tako da se funkcionalnost i rezultati konstruirane karti�ne aplikacije mogu isprobavati prije u�itavanja na karticu (vidi poglavlje 6.3.1.). Time se izbjegavaju nepotrebna u�itavanja (download) karti�nih aplikacija, sporije izvršavanje i teže otklanjanje pogrešaka [2].

13

3.1. Karti�na aplikacija i aplikacija terminala

Što je aplikacija terminala? Ve� je spomenuto da je pametna kartica malo „neovisno“ ra�unalo - neovisno utoliko što kad je isprogramirana, može obavljati svoju funkciju do daljnjega. Dakle postoje aplikacije koje se izvršavaju na „samoj“ pametnoj kartici (pisane u npr. Javi ili ZBasicu) i aplikacije koje se izvršavaju na „terminalu“. Pod pojmom terminal misli se na bilo kakvo ra�unalo (npr. bankomat) koje u�itava podatke s pametne kartice i barata s tim podacima (npr. skida novac s ra�una). Pametne kartice nemaju vlastito napajanje, stoga je za njihov rad potreban sklop koji im osigurava napajanje. Nedostatak neovisnosti uzrok je i nekih sigurnosnih problema, no o tome više u kasnijim poglavljima. Dakle aplikacija terminala je program koji se izvršava na terminalu, a ima mogu�nost komunikacije s pametnom karticom (preko npr. �ita�a pametnih kartica). Aplikacija terminala može se pisati u višim programskim jezicima poput C++, Visual Basic, Java itd. (jezici koji su podržani su�eljem proizvo�a�a pametnih kartica). Karti�na aplikacija (koja se izvršava na kartici) je pisana kao zasebna cjelina, a potom prevedena i u�itana na karticu (danas se razvijaju i drugi programski jezici kao konkurencija Javi, npr. jezik Forth i korišteni ZBasic). Programeri koji razvijaju karti�ne aplikacije moraju obratiti posebnu pozornost na podru�je njene primjene i, prema tom podru�ju, na mogu�e izvore napada ili gubitka podataka (npr. gubitak napajanja u jeftinijim pametnim karticama). Dakle na vlastitom ra�unalu pišemo program u jeziku podržanom od proizvo�a�a pametnih kartica, prevedemo ga i možemo ga u�itati na karticu, dok aplikacija terminala može (treba) osiguravati podatke za rad karti�ne aplikacije. Kako bi pametna kartica po�ela obavljati svoju funkciju (kao nov�anik, kao identifikacija, u upravljanju raznim procesima...), nužna je neka vrsta aplikacije terminala koja s karticom komunicira. Na karticu se u�itava ve� preveden kod (Java byte code, P-code) koji izvodi interpreter. Ograni�enje nije broj u�itavanja, ve� memorijski prostor.

14

3.2. Kako radi komunikacija kartica-�ita�?

Za opis komunikacije kartica-�ita�, može se koristiti OSI model (slika 3.2). U tom modelu su navedeni standardi koji se danas koriste i definiraju ponašanje u i izme�u slojeva modela.

ISO/IEC 7816-4ISO/IEC 7816-7

EN 726-3prEN 1546-3GSM 11.11

ISO/IEC 7816-3 (T=0)ISO/IEC 7816-3 Amd (T=1)ISO/IEC 10 536-3 (T=2)

ISO/IEC 7816-3(kontaktne kartice)ISO/IEC 10 536-3

(beskontaktne kartice)

OSI sloj 7aplikacijski sloj

OSI sloj 2sloj podatkovne veze

OSI sloj 1fizi�ki sloj

Slika 3.2 OSI model komunikacije kartice i �ita�a

Fizi�ki sloj je definiran standardom ISO/IEC 7816-3 u kojem su opisane sve karakteristike komunikacije i implementacije na najnižoj razini. Komunikacija kartica-�ita� je digitalna. Tipi�no se koriste naponske razine +5/+3 V, obi�no se visoka razina „1“ definira prvim znakom ATR odgovora. Prilikom umetanja kartice u �ita� mehani�ki se registrira prisutnost kartice, zatim se uspostavlja elektri�na veza izme�u vanjskih kontakata na kartici i kontakata u �ita�u (terminalu). Tu leži opasnost od kratkog spoja izme�u kontakata na samoj kartici (dok se ume�e ili vadi), pa se na odgovaraju�i na�in mora zaštititi i kartica i terminal (propisano standardom ISO/IEC 7816-3). Stoga se spajanje kartice provodi postepeno, pet aktivnih kontakata se omogu�ava to�nim redoslijedom: prvo se spaja kontakt uzemljenja (GND), zatim napajanje (VCC) pa takt (CLK). Time je omogu�en rad mikrokontrolera na samoj kartici i on se može resetirati (na kontaktu RST), na prvom rastu�em bridu. tj. kartica se sama upali (tzv. power-on reset). Metalna plo�ica s kontaktima pametne kartice prikazana je na slici 3.3.

15

Slika 3.3 Kontakti mikromodula pametne kartice

Zapravo �ita� nije dobar naziv za ure�aj koji služi komunikaciji izme�u kartice i PC-a jer se njime osim �itanja obavlja i pisanje. Dakle komunikacija je dvosmjerna. Za komunikaciju je raspoloživa samo jedna I/O linija, pa podatke šalju naizmjence kartica ili �ita� (druga strana sluša). Ovakav na�in komunikacije naziva se half-duplex procedura. Full-duplex T=1 na�in komunikacije je prijenos na razini blokova podataka. U tom na�inu prijenosa APDU naredbe se prenose podijeljene na blokove podataka. Podržano je ulan�avanje, ponovno slanje i produljenje vremena �ekanja. Ako kartica treba više vremena za obradu podataka izme�u APDU naredbi, može od terminala zatražiti „produljenje vremena �ekanja“ (WTX – Waiting Time Extension) [4].

Svaki blok podataka T=1 protokola sastoji se od sljede�ih polja: - adresa primatelja i poštiljatelja (NAD) - polja kontrole protokola (PCB) - dužine INF polja u bajtovima - informacijskog polja (INF) s podacima o sadržaju bloka - zaštitnog polja (LRC)

Half-duplex ISO T=0 protokol (standard ISO/IEC 7816-3) je protokol razvijen u Francuskoj za vrijeme po�etnog razvoja pametnih kartica. Pretpostavlja asinkronu komunikaciju (start i stop bitovi) i bajtno je orijentiran (najmanja jedinica koja se prenosi je bajt). Svojstvo tog protokola je maksimalna jednostavnost uz minimalno korištenje memorije. �ita� razmjenjuje podatke s karticom preko ulaznih naredbi i izlaznih poruka (dobivenih od kartice). Format poruke kompatibilan je s ISO 7816-4 standardom (kartice je mogu�e pro�itati s bilo kojim �ita�em koji je kompatibilan tom protokolu). Poruka (naredba) se prenosi bajt po bajt, kao na slici 3.4, samo što su umjesto stop bitova na kraju podatkovnog bajta dva bita �uvanja vremena (guard time), tj. dvije elementarne vremenske jedinice (etu) koje ozna�avaju kraj prijenosa bajta. Ako do�e do greške, unutar te dvije jedinice primatelj (terminal ili kartica) treba I/O liniju postaviti nisko, kako bi pošiljaoc ponovo poslao pogrešan bajt.

16

Komunikacija kartice s vanjskim svijetom je serijska, tj. niz bitova koji se slijedno šalju preko I/O linije. Smjer bitova ovisi o dogovoru: direktan smjer (ako je prvi bit nakon po�etnog najmanje zna�ajan) ili inverzni smjer (ako je prvi bit najzna�ajniji bit u bajtu). Slika 3.4 prikazuje serijski prijenos podataka izme�u �ita�a i kartice.

visoko

nisko

start bitpodatkovni bitovi paritetni bit

stop bit(ovi)

Slika 3.4 Struktura prijenosa znaka preko I/O linije

Proces komunikacije uvijek zapo�inje terminal (�ita�), kartica

odgovara na naredbe dobivene od terminala (ne šalje podatke sama od sebe, bez vanjskog zahtjeva). To je komunikacija gospodar-sluga (master-slave), u kojoj je terminal gospodar, a kartica sluga. Komunikaciju možemo simboli�ki prikazati dijagramom na slici 3.5:

TerminalPametna kartica

PTSpotreban?

Reset

PTS zahtjev

ATR

PTS odgovor

naredba 1

odgovor 1

da

ne

. . .

Slika 3.5 Po�etak komunikacije �ita�a i pametne kartice

17

Nakon što je osigurano uzemljenje, napajanje i takt (time se misli da izme�u odgovaraju�ih kontakata nema kratkog spoja ili drugih mogu�ih grešaka), pametna kartica šalje odgovor na resetiranje ATR (Answer to Reset) preko ulazno-izlaznog I/O kontakta. To je podatkovni niz maksimalne duljine 33 bajta, sadrži podatke vezane za prijenosni protokol, podatke vezane za samu karticu i obi�no se šalje s vrijednoš�u djelitelja 372 (divider value). Vrijednost djelitelja je broj koji pokazuje koliko ciklusa vanjskog takta (external clock) terminala, na I/O liniji stoji jedan znak (toliko vremena ima mikroprocesor na kartici da ga prepozna i spremi u I/O me�uspremnik). Osim vrijednosti djelitelja 372 koristi se još standardno vrijednost 512. ATR se obi�no sastoji od samo nekoliko bajtova, posebno za aplikacije koje se trebaju brzo izvesti. Kartica treba vratiti ATR u vremenu 400 – 40000 ciklusa vanjskog takta od slanja reset signala, ako ne vrati ATR u tom vremenu terminal ponavlja aktivacijski ciklus (pokušava par puta, ako ne proradi smatra da je kartica ili �ita� neispravan). Bez ulaženja u detalje, ATR-om terminal dobiva niz bajtova ili znakova: TS i T0 – odre�uju temeljna svojstva prijenosa i najavljuju sljede�e znakove, TA1, TB1, TC1, … znakovi koji definiraju su�elje prijenosa (važno za naredbe koje slijede), T1, T2, T3 … znakovi povijesti kartice, te TCK koji je zaštitna suma prethodnih bajtova (eventualno može biti i posljednji znak ATR-a, ovisno o protokolu) [1]. Poslije ATR-a (a prije slanja prve naredbe) terminal može poslati naredbu za odabir tipa protokola – PTS. Ta naredba nije dio standarda, pomo�u nje je mogu�e postaviti razli�ite parametre karti�nog protokola. Zatim kartica �eka poruku (naredbu) od terminala, izvršava ju i vra�a odgovor.

Postoje tri vrste naredbi:

� Ulazne (Input) � �ita� šalje kartici naredbu i podatke � Izlazne (Output) � �ita� dobiva podatke od kartice � Bez podataka (No data) � �ita� kartici šalje samo naredbu (bez

podataka) Format naredbe je tzv. Application Protocol Data Unit (APDU) - jedinica podataka aplikacijskog protokola. Struktura poruke naredba-odgovor (command-response) je prikazana na slici 3.6 (za ulazne i izlazne naredbe):

CLA P1INS P2 P3 DATA

zaglavlje podatkovni dio

Slika 3.6 Struktura APDU naredbe

18

Opis polja APDU naredbe prikazan je u tablici 3.1. Sve vrijednosti su u heksadecimalnom obliku (ako druga�ije nije navedeno)

Tablica 3.1 Opis polja APDU naredbe-odgovora

CLA razred naredbe

INS identifikator naredbe (instrukcije)

P1, P2 ulazni parametri za naredbu

P3 duljina, parametar koji specificira broj podatkovnih bajtova (unutar naredbe) za prijenos na (ili prijenos od) kartice

Ack

potvrda da je kartica primila naredbu i da je spremna za prijenos podataka. U sustavu PC-pametna kartica, driver od �ita�a lovi odgovor, pa on uop�e ne dolazi do aplikacije terminala.

Input data podaci koje �ita� šalje kartici

Output data podaci koje kartica vra�a �ita�u

SW1 status kartice (status word), odgovor na naredbu (1 bajt)

SW2 opcionalni odgovor koji omogu�ava dodatne statusne informacije

Format ulazne poruke naredba-odgovor prikazan je u tablici 3.2:

Tablica 3.2 Ulazna naredba

������ ���� �� � � ��� ��� �� ����� ��

�������� �� �� �� �� �� ���� ���� �����

������������������ ������� ������� ������� ������� ���������������

���������������

Opisno to bi izgledalo ovako: terminal šalje kartici zaglavlje od 5 bajtova (CLA, INS, P1, P2, P3) - ako nema greške, kartica vra�a potvrdu (ACK) da je primila zaglavlje - terminal šalje podatkovni dio s brojem bajtova specificiranim u P3 (Data) - kartica izvršava naredbu, vra�a status (SW1) i duljinu podataka (SW2) - terminal traži odgovor (get response) s traženim brojem bajtova u P3 (CLA, INS, P1, P2, P3) - kartica vra�a podatke i status (Data, SW1, SW2) - kraj poruke naredba-odgovor.

19

Format izlazne poruke naredba-odgovor prikazan je u tablici 3.3:

Tablica 3.3 Izlazna naredba

������ ���� �� � � ��� ��� �� �� ��

�������� �� �� �� �� �� ���� ������� �����

������������������ ������� ������� ������� ������� ���������������

���������������

Za oba formata duljina je duljina ulaznih podataka specificirana parametrom P3 (drugi na�in ozna�avanja duljine ulaznih podataka je Lc). Ako je P3=00h (heksadecimalno), šalje se samo naredba, bez podataka. Statusna rije� (status word) SW1 u izlaznoj poruci pokazuje da li je kartica uspješno izvršila naredbu i vratila željene podatke, a SW2 sadrži broj podatkovnih bajtova u izlaznoj poruci, tj. broj znakova koje kartica vra�a kao rezultat (drugi na�in ozna�avanja duljine izlaznih podataka je Le). Postoji mogu�nost individualnog slanja podatkovnih bajtova na karticu (npr. ako je potrebno duže vrijeme za obradu ili se o�ekuju greške u prijenosu). U tom slu�aju kartica treba nakon svakog podatkovnog bajta terminalu vratiti invertirano zaglavlje (CLA, INS, P1, P2, P3) [1].

20

4. Sigurnost pametnih kartica

Može se re�i da su pametne kartice samostalni sustavi, no ipak su izložene opasnostima vanjskih �imbenika. �esto se primjenjuju u sustavima koji zahtijevaju jaku sigurnosnu zaštitu i autentifikaciju, pa je tehnologija izrade pametnih kartica �vrsto vezana uz sigurnost. Proizvo�a�i donose nove složenije mjere zaštite – a hackeri smišljaju sve bolje i bolje na�ine probijanja tih zaštita. Ovo neprestano „natjecanje“ vodi otkrivanju sve bolje i bolje tehnologije [17].

Sigurnost pametnih kartica možemo promatrati kroz: - komunikaciju - sklopovlje - operacijski sustav - programe koji se izvršavaju na kartici ili ju koriste

4.1. Komunikacija

Komunikacija kartice s vanjskim svijetom opisana je u poglavlju 3.2. Odvija se pomo�u APDU paketa izme�u �ita�a pametnih kartica (CAD) i karti�ne aplikacije. Karakteristike komunikacije su:

- mala brzina prijenosa (bit rate) preko serijske dvosmjerne linije

(ISO 7816-3 standard) - half duplex prijenos informacija (podaci se prenose samo u jednom

smjeru u odre�enom trenutku) - komunikacija se odvija prema složenom protokolu (opisano u

poglavlju 3.2.) opisanom na slici 4.1:

APLIKACIJA

Protokol komunikacije

�ITA� (CAD) APDUPROCESOR

SPECIFI�NEFUNKCIJE

APDU

APDU

Odgovor

Odgovor

Naredba

T=0, T=1

OdgovorKARTICA

Slika 4.1 Komunikacija aplikacije terminala i karti�ne aplikacije

21

Protokol me�usobnog identificiranja kartice i �ita�a obi�no se izvodi na sljede�i na�in:

- kartica generira slu�ajni broj i šalje ga �ita�u/aplikaciji terminala - aplikacija kriptira broj s dijeljenom tajnom i šalje ga natrag

pametnoj kartici - kartica uspore�uje dobiveni podatak s vlastitim - ako je potrebno, ponavlja se isti postupak ali kartica i �ita�

zamjenjuju mjesta (�ita� šalje slu�ajni broj itd.)

Po uspostavi sigurne komunikacije, sve poruke izme�u �ita�a i kartice verificiraju se kroz postupak autentifikacije poruke. To je broj koji se izra�unava na temelju podataka, klju�a enkripcije i slu�ajnog broja. Ako je dobiveni podatak izmijenjen iz bilo kojeg razloga, potrebno je ponovo poslati poruku. Na karticama koje imaju dovoljno snažan procesor i dovoljno memorijskog prostora, podaci se mogu verificirati pomo�u digitalnog potpisa [17].

Naj�eš�e korišteni enkripcijski algoritmi su DES, 3DES (triple DES) i

RSA s klju�evima 56, 168 i 1024 bita respektivno. Nažalost ti algoritmi nisu neprobojni (dokazali Ross Anderson i Markus Kuhn [12]). Pronalazak sigurnosnih nedostataka omogu�uje definiranje i nadopunjavanje postoje�ih standarda te implementaciju novih rješenja u kojima se ti nedostaci otklanjaju.

22

4.2. Sklopovlje

Svi podaci, lozinke i klju�evi spremljeni u EEPROM-u pametne kartice mogu biti izbrisani ili izmijenjeni zbog neprikladnog napona napajanja. Stoga neki sigurnosni procesori na pametnim karticama imaju implementirane senzore za ispitivanje vanjskih uvjeta. Pravu osjetljivost teško je odrediti a prilikom svakog umetanja/va�enja kartice iz �ita�a javlja se kolebanje napona, pa su takvi procesori rijetki. Postoje i druge opasnosti za podatke na kartici – poput zagrijavanja na visoku temperaturu ili izlaganja EEPROM-a ultraljubi�astim zrakama.

Slika 4.2 Mikromodul pametne kartice

Ako se kartica uništi i iz plasti�nog ku�išta izvadi mikromodul (slika 4.2) mogu� je i reverzni inženjering (kopiranje sklopovlja). Napad analizom razlika u potrošnji (DPA) je statisti�ki napad na kriptografske algoritme (vidi poglavlje 4.5.8.). Temelji se na usporedbi hipoteze s izmjerenim rezultatom i može otkriti klju� enkripcije. Jednostavniji napad analizom potrošnje (SPA) tako�er se može iskoristiti za otkrivanje povjerljivih podataka (vidi poglavlje 4.5.7.).

23

4.3. Operacijski sustav

Operacijski sustav pametne kartice je vrlo jednostavan operacijski sustav sa najviše jednom niti izvršavanja koja upravlja raspoloživim resursima kartice. To je I/O (ulazno-izlazni) podsustav kompatibilan s ISO 7816-3 i ISO 7816-4 standardima. Uz upravljanje memorijom koju koriste funkcije visokog nivoa, neki operacijski sustavi kao dodatak uklju�uju i niz kriptografskih funkcija.

Podaci na kartici su organizirani u stablastoj strukturi. Korijen te

strukture je jedna glavna datoteka (master file – MF) koja može sadržavati elementarne datoteke (elementary file – EF) i povezne datoteke (dedicated file). Elementarne datoteke su datoteke s korisni�kim podacima, a povezne datoteke sadrže podatke o drugim elementarnim i poveznim datotekama – poput direktorija. Glavna datoteka analogna je osnovnom direktoriju. Slika 4.3 prikazuje strukturu podataka pametnih kartica.

Glavna datoteka

Povezna datotekaElementarna datoteka Elementarna datoteka Elementarna datoteka

Elementarna datoteka Elementarna datoteka Povezna datoteka

Elementarna datoteka

Slika 4.3 Struktura podataka pametne kartice

Zaglavlja navedenih datoteka sadrže sigurnosne atribute povezane s

pravima korisnika. Aplikacija može pristupiti nekoj datoteci samo ako ima odgovaraju�a prava. Osnovna prava su:

- uvijek (always – ALV), pristup datoteci sa svim pravima - verifikacija korisnika kartice 1 (card holder verification 1 – CHV1),

pristup datoteci mogu� je samo ako se korisnik verificirao kroz CHV1, tj. ako je korisnik upisao ispravan PIN 1 ili ako je aktivna enkripcija podataka klju�em enkripcije s brojem 1

24

- verifikacija korisnika kartice 2 (card holder verification 2 – CHV2), pristup datoteci mogu� je samo ako se korisnik verificirao kroz CHV2, tj. ako je korisnik upisao ispravan PIN 2 ili ako je aktivna enkripcija podataka klju�em enkripcije s brojem 2

- administrativna (administrative – ADM), pistup datotekama mogu� je samo odgovornom administrativnom tijelu

- nikad (never – NEV), pristup datoteci je zabranjen

Kartice koje koriste verifikaciju PIN-om, obi�no PIN-ove spremaju u dvije elementarne datoteke (npr. EFCHV1 i EFCHV2). Ako je PIN pogrešno unesen nekoliko puta, operacijski sustav zaklju�ava (blokira) karticu. Broj mogu�ih pogrešnih unosa ovisi o programskom rješenju. Nakon zaklju�avanja, kartica se može otklju�ati ako se unese poseban PIN za otklju�avanje. I taj PIN ima broja� pogrešnih unosa, koji tako�er može zaklju�ati pametnu karticu (u nekim slu�ajevima, nepovratno – pa se kartica može „baciti“ iz sigurnosnih razloga). Ako je kartica zaklju�ana zbog krivog unosa PIN-a, atributi u zaglavlju svake datoteke se mijenjaju i kod pristupa zahtijevaju verifikaciju korisnika 1 ili 2 (CHV1 ili CHV2). Kad korisnik unese PIN za otklju�avanje, atributi datoteka se vra�aju u po�etno stanje. Broja� pogrešnih unosa PIN-a vra�a se na najve�u vrijednost, a broja� PIN-a za otklju�avanje smanjuje se za 1 (ako postane 0, više nije mogu�e otklju�ati karticu).

4.4. Programska rješenja

Op�enito, sigurnost aplikacije odre�ena je sigurnoš�u platforme na kojoj se aplikacija izvodi, te sigurnosnim osobinama izvedenim u samom dizajnu aplikacije. Ve�ina današnjih platformi (npr. BasicCard, Java Card) dizajnirana je na na�in da omogu�ava izgradnju, instalaciju i izvo�enje karti�nih aplikacija u visoko zašti�enom okruženju. Zbog prisutnosti sigurnosnih osobina u samoj platformi, programeri koji razvijaju karti�ne aplikacije mogu usredoto�iti svoje napore na definiranje strategije zaštite, umjesto na programiranje aplikacija u svrhu nadomještanja nesigurnosti platforme.

Dobro definirana strategija zaštite mora zadovoljiti sljede�a svojstva:

• Autentifikacija – pristup funkcijama i podacima karti�ne aplikacije mora

biti strogo provjeren. Nužno je provesti proceduru autentifikacije u cilju provjere identiteta aplikacije terminala. Kod višeuslužnih pametnih kartica potrebno je provjeriti identitet karti�ne aplikacije kojoj pristupa aplikacija terminala, te zadovoljavanje prava pristupa objektima i podacima spremljenima na pametnoj kartici.

25

• Tajnost – nužna je zaštita privatnosti podataka karti�ne aplikacije.

Onemogu�iti pristup zašti�enim podacima, kao što su broj ra�una i iznos kredita, bez prethodno izvršene autentifikacije. Tajni podaci, PIN i tajni (privatni) kriptografski klju�evi, nikad ne smiju napustiti karticu.

• Integritet – potrebno je osigurati ispravnost podataka karti�ne aplikacije.

Podaci ne smiju biti mijenjani bez prethodno izvršene procedure autentifikacije. Promjena podataka štiti se i provjerom potencijalnih pogreški, npr. iznos e-nov�anika ne smije prije�i maksimalni iznos niti postati negativan, te ugra�enim sklopovsko-programskim rješenjima poput zaštitne sume i sli�no.

Razli�ite karti�ne aplikacije zahtijevaju razli�ite razine sigurnosti.

Implementirani sigurnosni mehanizmi �esto zahtijevaju više ra�unarskih resursa, smanjuju�i time performanse izvo�enja karti�nih aplikacija. Zbog toga je potrebno za svaku karti�nu aplikaciju odrediti sigurnosne zahtjeve i prema njima implementirati odgovaraju�e sigurnosne mehanizme da bi se zadovoljila željena razina sigurnosti. Sklopovska podrška, gotove procedure i biblioteke enkripcijskih algoritama znatno olakšavaju postizanje visoke razine sigurnosti [14].

4.4.1. Sigurnosne osobine Java Card tehnologije

Sigurnosne se osobine Java Card tehnologije direktno nadogra�uju i nadopunjuju iz sigurnosnih osobina Java programskog jezika. Da bi razumjeli sigurnosne osobine Java Card tehnologije, potrebno je prvo prou�iti sigurnosna svojstva Jave. Java Card platforma podržava podskup programskog jezika Jave i specifikaciju stogovnog stroja prilago�enu aplikacijama pametnih kartica (vidi poglavlje 5.2.). Zbog toga Java Card platforma naslje�uje sigurnosne osobine ugra�ene u podržani podskup jezika Jave. Sigurnost jezika Jave tvori temelje sigurnosti Java Card platforme:

- onemogu�ena je bilo kakva ilegalna konverzija tipova podataka, poput pretvorbe cjelobrojnog tipa podatka u pokaziva�. Dakle, jezik je strogo tipiziran.

- nužna je provjera granice i duljine polja, prilikom pristupanja polju podataka.

- ne koristi se aritmetika pokaziva�a. Zbog toga ne postoji mogu�nost krivotvorenja pokaziva�a s ciljem da se zlonamjernim programima dozvoli njuškanje po sadržaju memorije.

- inicijalizacija varijabli mora biti provedena prije korištenja istih. - razina pristupa svim razredima, metodama i poljima je strogo

kontrolirana. Na primjer, privatna metoda ne može biti pozvana izvan razreda u kojem je definirana.

26

U izrazito sigurnosno-osviještenom svijetu pametnih kartica, izdava�i

pametnih kartica žele imati sigurnu ra�unarsku platformu koja �e zadovoljiti specijalne zahtjeve karti�nih sustava. Dodatne sigurnosne osobine definirane u Java Card platformi su:

- tranzijentni i postojani objektni modeli – na Java Card platformi objekti se standardno pohranjuju u postojanoj memoriji. Iz sigurnosnih razloga i razloga vezanih uz performanse, Java Card platforma dopušta da se privremeni podaci, kao što su klju�evi sjednica, pohrane kao tranzijentni objekti u RAM memoriju. Životno vrijeme takvih objekata može biti deklarirano kao CLEAR_ON_RESET ili CLEAR_ON_DESELECT. Što zna�i da se sadržaj tranzijentnog objekta postavlja na predefiniranu vrijednost (zero, false, null) svaki put kad kartica uspostavi novu sjednicu (reset) ili kad se deselektira trenutno ozna�ena, selektirana karti�na aplikacija.

- atomarnost i transakcije – na Java Card platformi podaci se pohranjuju

kao objekti u postojanu memoriju. Nad njima vršimo operacije pisanja i �itanja. Za vrijeme operacije pisanja može do�i do sklopovske pogreške ili do gubitka napajanja. Da u takvim slu�ajevima osigura integritet podataka, Java Card tehnologija definira tri sigurnosna svojstva. Kao prvo, Java Card platforma jam�i atomarnost u pojedina�nom ažuriranju elementa postojanog objekta ili razreda. Što zna�i da kad do�e do pogreške za vrijeme ažuriranja elementa, platforma osigurava obnavljanje sadržaja elementa na prijašnju vrijednost. Drugo, metoda arrayCopy u razredu Java Card.framework.Util jam�i atomarnost blokovskog ažuriranja višestrukih podatkovnih elemenata u polju. Ovdje atomarnost zna�i da �e svi bajtovi biti ili ispravno kopirani ili �e kompletno odredišno polje biti obnovljeno na prijašnju vrijednost. Tre�e, Java Card platforma podržava transakcijski model u kojem karti�na aplikacija atomarno ažurira nekoliko razli�itih elemenata unutar razli�itih postojanih objekata. Ili se sva ažuriranja unutar transakcije moraju izvesti ispravno i konzistentno ili se svi postojani elementi vra�aju u prijašnja stanja.

- vatrozid karti�ne aplikacije – on �uva kako sigurnost i integritet

sustava (JCRE) tako i sigurnost i integritet svake karti�ne aplikacije koja se nalazi na Java pametnoj kartici. Vatrozid (applet firewall) karti�ne aplikacije provodi izolaciju i odvaja sistemski prostor od prostora karti�ne aplikacije. Svaka karti�na aplikacija se izvodi unutar konteksta (prostor objekta), a sam vatrozid predstavlja granicu me�u njima. Aplikacije ne mogu me�usobno pristupati svakom objektu osim ako su definirane unutar istog paketa (time dijele isti kontekst) ili ako

27

za pristup objektu koriste dobro definirane, sigurne mehanizme dijeljenja objekata podržane platformom.

- dijeljenje objekata – dijeljenje objekata je u Java Card sustavu

postignuto na sljede�e na�ine. Prvo, JCRE je povlašten korisnik s mogu�noš�u pristupa svim karti�nim aplikacijama i svim objektima koje one stvaraju. Drugo, karti�na aplikacija potražuje pristup JCRE servisima i resursima kroz tzv. ulazne to�ke, ulazne objekte JCRE-a. Tre�e, karti�ne aplikacije koje pripadaju razli�itim kontekstima mogu dijeliti objekte ako su oni instance razreda koje implementiraju su�elje za dijeljenje objekata. Takvi objekti nazivaju se dijeljeni objekti. I kona�no, karti�ne aplikacije i JCRE mogu dijeliti podatke preko globalno definiranih polja.

- izvorne metode u karti�nim aplikacijama – izvorne metode ne izvršava

Java Card stogovni stroj i kao takve nisu predmet sigurnosne zaštite Java Card platforme. Zbog toga je postizdanim karti�nim aplikacijama (karti�ne aplikacije koje su u�itane na karticu nakon što je kartica izdana) zabranjeno koristiti izvorne metode. ROM karti�ne aplikacije i predizdane karti�ne aplikacije su kontrolirane od strane izdava�a te se njima dopušta korištenje izvornih metoda. U takvim karti�nim aplikacijama je su�elje izvornog koda predstavljeno vlasni�kom tehnologijom karti�nog izdava�a [15].

28

4.5. Mogu�e opasnosti i na�ini otklanjanja

Operacijski sustavi pametnih kartica nisu poznati poput komercijalnih operacijskih sustava (poput Microsoft Windows-a, Unix-a i sl.), i još uvijek ne postoje etablirana imena za njih. Ti mali sustavi posjeduju zavidnu funkcionalnost na malom memorijskom prostoru. Ponekad sami proizvo�a�i operacijskih sustava za pametne kartice ne objavljuju sve sigurnosne karakteristike, kako bi ih time zaštitili. Pri razmatranju takvih sustava obi�no se spominju standardi poput ISO 7816, CEN TC224 ili EMV. U novije vrijeme sve više se spominje i primjenjuje Java zbog svojih prednosti i raspoloživosti. Prilikom odabira pametne kartice potrebno je odabrati jedan od tih operacijski sustava. U ovom poglavlju ukratko se obra�uju pitanja sigurnosti operacijskih sustava pametnih kartica koja se ne nalaze unutar spomenutih standarda i specifikacija [8].

Izgraditi karti�ni sustav koji je jeftin i siguran iznimno je težak posao.

Dizajneri moraju razriješiti pitanja poput programske pouzdanosti, odabrati algoritam enkripcije i veli�inu klju�a, uo�iti sigurnosne propuste sklopovlja i trenutno važe�ih protokola. Dizajneri koji razvijaju sigurno sklopovlje suo�eni su s izazovima poput: invazivnih napada (napada prekidom napajanja) , analize razlike u potrošnji ili iskorištavanja greške uzrokovane nepredvi�enim okolnostima (npr. va�enje kartice za vrijeme izvršavanja aplikacije). Ti napadi opisuju se u idu�im poglavljima.

Opasnosti i napadi kojima su izložene pametne kartice vrlo su skupi

(cijena sustava za otkrivanje podataka obi�no uvelike nadmašuje cijenu sustava koji se želi kompromitirati) ili je potrebno puno vremena za otkrivanje povjerljivih informacija. Tehnologija pametnih kartica se razvija brže od tehnika napada na njih, i svaka nova generacija pametnih kartica obi�no popravlja sve sigurnosne mane prethodne generacije, što ujedno zna�i i otpornost na postoje�e napade.

4.5.1. Napad na osobni identifikacijski broj (PIN) prekidom napajanja

Uobi�ajen na�in izvedbe karti�nih aplikacija koje koriste zaštitu svojih podataka osobnim identifikacijskim brojem, jest broja� pogrešnih unosa. Svaki krivi unos osobnog identifikacijskog broja uzrokuje pove�avanje broja�a za jedan. Nakon što broja� dosegne prije definiranu vrijednost, kartica (funkcija ili datoteka na kartici) se zaklju�ava i više se ne može koristiti (ovdje se promatraju pojednostavljeni primjeri kako bi se lakše do�arale mogu�e opasnosti).

29

Broja� pogrešnih unosa spremljen je u EEPROM-u (privremenoj memoriji pametne kartice). Kad korisnik unese pogrešan osobni identifikacijski broj, potrebno je promijeniti broja� u EEPROM-u, što uzrokuje pove�anu potrošnju. Tu pove�anu potrošnju mogu�e je mjerenjem lako otkriti (prikazano na slici 4.4).

I (ma)

t (ms)

90

100

0

30

60

-30

20 40 60 80

I (ma)

t (ms)

90

100

0

30

60

-30

20 40 60 80

Po�etak provjere PIN-aPromjena broja�a -

detekcija i prekid napajanja

Slika 4.4 Otkrivanje pogrešno unesenog PIN-a

Vremensko trajanje operacije upisivanja u EEPROM je nekoliko

milisekundi, a pove�ana potrošnja se može otkriti i prekinuti nakon nekoliko mikrosekundi. Dakle, mogu�e je prekinuti napajanje prije promjene broja�a unutar EEPROM-a. Sama �injenica da je potrebno nešto upisivati u EEPROM, otkriva krivo unešen osobni identifikacijski broj. Napada� može metodom pokušaja i pogrešaka iskušavati pogrešne PIN-ove, sve dok operacijski sustav pametne kartice ne upiše ništa u EEPROM, što pokazuje da je pogo�en ispravan PIN.

Programeri pametnih kartica mogu jednostavno otkloniti mogu�nost

ovakvog napada: prije provjere osobnog identifikacijskog broja, broja� je potrebno umanjiti te ga nakon provjere, samo ako je PIN ispravan vratiti na po�etnu vrijednost. Bilo kakav prekid napajanja prije, tijekom ili nakon provjere PIN-a, ostavlja broja� u umanjenom stanju pa ovakav napad više nema smisla.

Iako je ovo zastario na�in napada, vjerno je prikazana najve�a mana i

sigurnosna „rupa“ pametnih kartica – pra�enje potrošnje struje kako bi se otkrile povjerljive informacije.

30

4.5.2. Napad prekidom napajanja

�ita�i pametnih kartica obi�no nemaju mehani�ku zaštitu od va�enja pametne kartice za vrijeme njenog korištenja. Zbog toga postoji mogu�nost prekida napajanja koja nije napad na zašti�ene karti�ne podatke, nego nenamjerna greška [8].

4.5.2.1 Nenamjerni prekid napajanja

Ve�ina današnjih pametnih kartica koristi se u sustavu (terminal – pametna kartica) koji dozvoljava va�enje kartice za vrijeme njenog korištenja. Takvo va�enje uzrokuje prekid napajanja na na�in koji nije specificiran standardom. Ako se u trenutku va�enja pametne kartice upravo izvršavalo pisanje u EEPROM, velika je vjerojatnost da �e korištena memorijska adresa ostati u nedefiniranom stanju, s nedefiniranim podacima. Bez mjera zaštite, može do�i do uništenja važnih informacija, pa �ak i do toga da cijela pametna kartica postane neupotrebljiva. U najgorem slu�aju, mogu�e je odavanje povjerljivih informacija (iako su u tom slu�aju, one korisne samo zaposlenicima – korisnicima karti�nog sustava).

Manjak standarda i specifikacija koji definiraju protumjere, dovodi do

upitnog integriteta podataka – koji bi trebao biti najvažniji kriterij sigurnosti pametnih kartica kao vrhunskog tehnološkog rješenja. Rješenja raznih proizvo�a�a su, iz navedenih razloga, razli�ita i iz istog razloga i razli�ite kvalitete.

4.5.2.2 Namjerni prekid napajanja

Ovakav napad je poznat kao napad na generator slu�ajnih brojeva (random seed attack). Jedan od problema pametnih kartica je interno generiranje kvazi-slu�ajnih brojeva. DES algoritam koristi stari kvazi-slu�ajni broj da bi generirao novi koji treba spremiti u EEPROM za generiranje sljede�ih kvazi-slu�ajnih brojeva. Pisanje u EEPROM se zbog EEPROM tehnologije odvija u dva koraka: u prvom se svaki bajt EEPROM �elije postavlja na nulu, a u drugom koraku se upisuju nove vrijednosti.

31

Najbolji trenutak za prekid napajanja je nakon što su u prvom koraku u EEPROM �eliju upisane nule (vidi sliku 4.5). Na taj na�in dobiva se poznato sjeme za nove kvazi-slu�ajne brojeve i mogu� je gubitak povjerljivih podataka.

EEPROM............

10100101.....

EEPROM............

00000000.....

EEPROM............

00111110.....

Po�etna vrijednost

Brisanje EEPROM �elije

Upis nove vrijednosti

Najbolji trenutak zaprekid napajanja

Slika 4.5 Ciklus upisivanja u EEPROM

Za obje vrste prekida napajanja postoje zaštitne protumjere koje su

osnovni preduvjet sigurnosti pametnih kartica. Na tržištu se mogu na�i dvije vrste rješenja [8]:

- ograni�ena zaštita transakcije: nakon prekida napajanja ošte�eni podaci se prepoznaju i dojavljuje ih operacijski sustav pametne kartice, funkcionalnost pametne kartice nije narušena, ali podaci su izgubljeni. Ovakva zaštita nije dovoljna za zahtjevne aplikacije, a njena prednost je jednostavna implementacija.

- potpuna zaštita transakcije: prekid napajanja nakon primitka

naredbe, a prije slanja odgovora s pametne kartice, uzrokuje automatsku rekonstrukciju podataka kao na po�etku naredbe.

Spomenuta rješenja nisu nova: nazivi poput jedini�ne transakcije

(atomized transaction), shema potvr�ivanja transakcija (commitment shemes) i backtrace me�uspremnika ve� su poznata iz implementacija baza podataka. No, potpuna zaštita transakcije dovodi do smanjenja u�inkovitosti transakcije. Stari podaci se prvo moraju sa�uvati, a potom upisivati novi – broj ciklusa pisanja/�itanja u EEPROM se u najmanju ruku udvostru�uje u usporedbi sa slu�ajem u kojem nema zaštite transakcije.

32

U�inkovitost se kod razli�itih proizvo�a�a pametnih kartica znatno razlikuje. U stvarnosti se broj ciklusa pisanja višestruko pove�ava zbog mehanizama koji spremaju, upisuju i dodaju administrativne podatke, zauzimaju, �iste, pune i otpuštaju backtrace me�uspremnik, pa broj može biti i pet do deset puta ve�i. Najbolji mehanizmi imaju broj ciklusa pisanja otprilike trostruko ve�i od nezašti�ene ina�ice zbog specijalnih aplikacija koje u�inkovito koriste priru�nu (cache) memoriju. Postoje rješenja koja štite samo važnije transakcije (npr. pla�anje), manje važne transakcije su nezašti�ene. Takva rješenja prihvatljiva su na jeftinim pametnim karticama s ograni�enim EEPROM-om.

4.5.3. Defragmentacija memorije

Pitanje defragmentacije memorije dugo je bilo neriješeno pitanje na

podru�ju pametnih kartica. Prilikom brisanja ili upisivanja datoteka u EEPROM, javljaju se manje ili ve�e „rupe“ u memoriji ako je nova datoteka manja od raspoložive memorije. Memorija koja sadrži takva mala neiskorištena podru�ja, zove se fragmentirana memorija (vidi sliku 4.6).

1) Inicijalizacija

2) Brisanje

3) Fragmentiranamemorija

Stvaranje datoteka:- razne aplikacije- Java appleti- brisanje aplikacija- izvršavanje aplikacija- privremene datoteke

Nema mjesta umemoriji!

Novi podaci

Slika 4.6 Fragmentacija memorije pametne kartice

U rješenjima s optimizacijom memorije, fragmentacija se ne može

izbje�i. Na primjer programski jezik Java �esto mijenja applete, pa se za vrijeme �itanja/brisanja appleta u EEPROM-u pojavljuju neiskorištena podru�ja. U ekstremnom slu�aju može biti slobodno i preko 50% memorije, a da nema dovoljno velikog dijela za novu datoteku.

33

Defragmentacija je rješenje – postupak u kojem se sav aktivni sadržaj memorije kopira u kontinuiranom poretku, spajaju se sva manja neiskorištena memorijska podru�ja u jedno – slobodnu memoriju. Java programski jezik nakon izvršavanja programa poziva metodu za skupljanje sme�a (garbage collection), ali pritom ne optimizira ono što ostane u memoriji (fizi�ki sadržaj). I ovdje, kao i na stolnim ra�unalima, javlja se problem fizi�kih referenci – jer se fizi�ke adrese datoteka ili objekata spremaju kao pokaziva�i, pa se kod defragmentacije moraju prera�unati i promijeniti sve odgovaraju�e reference u memoriji pametne kartice. Defragmentacija naravno mora biti otporna na prekid napajanja. Kako postupak defragmentacije može trajati i do 10 sekundi, i nije mogu�e napraviti backtrace me�uspremnik u raspoloživom EEPROM-u, dosad se smatralo da defragmentacija nije izvediva na pametnim karticama.

No, 1998. godine IBM je razvio sofisticiranu metodu za rješavanje

problema defragmentacije, i može se re�i da je defragmentacija pametnih kartica implementirana, iako zahtjeva vrlo specifi�nu potporu. Predložena metoda omogu�ava brzu defragmentaciju i potpuno je otporna na prekid napajanja [18]. Spomenuta razmatranja su osnova za daljnje proširivanje, a cilj je automatski postupak defragmentacije, nevidljiv korisnicima pametnih kartica.

4.5.4. Greške u EEPROM-u

Puno neugodniji problem su greške u EEPROM-u. Proizvo�a�i mikro�ipova garantiraju �uvanje podataka u vremenu od 10 godina. To je statisti�ki rezultat koji teoretski ima i odstupanja - rijetke EEPROM greške (npr. promjenu memorijskih podataka kada pametna kartica nije uklju�ena). Zapravo se takve promjene (npr. nekog bita u memorij) javljaju vrlo rijetko u usporedbi s gubitkom pametnih kartica ili njihovim uništenjem, ali se trebaju razmotriti zbog mogu�nosti njihova javljanja. Lokacija promijenjenog bita ne može se predvidjeti, a stvarno iskustvo pokazuje da se (Murphyev zakon) obi�no mijenja najvažniji bit. Takva promjena može uzrokovati sigurnosni problem i brigu korisnika zbog nepoznavanja uzroka greške.

Namjerna promjena memorijskog sadržaja na pametnoj kartici

mogu�a je u ekstremnim uvjetima poput izlaganja ultraljubi�astom ili nuklearnom zra�enju, no takav napad je gotovo nemogu�e izvesti precizno (u sadašnjim uvjetima) i rezultat je nepredvidiv.

Mogu�a namjerna ili nenamjerna promjena bita u memoriji pametne

kartice zahtjeva adekvatnu zaštitu u operacijskom sustavu. Zbog toga svaki sadržaj EEPROM memorije mora imati zaštitnu sumu (checksum). Navedenog zahtjeva nema u postoje�im standardima niti u ve�ini specifikacija, ali ga je mogu�e na�i u sigurnosnim karakteristikama kvalitetnijih rješenja. Primjer u�inkovitog na�ina izra�unavanja zaštitne sume

34

može biti XOR operacija izme�u bajtova koje treba zaštititi. Me�utim, dokazano je da je u slu�aju malog broja promijenjenih bitova ADD operacija izme�u bajtova puno u�inkovitija i jednako elegantna kao XOR operacija.

I ovdje, kao i kod zaštite od prekida napajanja, svaka mjera zaštite od

promjene bitova memorije uzrokuje smanjenje u�inkovitosti sustava pametne kartice jer je potrebno dodatno vrijeme za izra�unavanje zaštitne sume, kao i sigurna promjena zaštitne sume u slu�aju promjene podataka. Kvalitetni operativni sustavi pametnih kartica primjenjuju specijalne mehanizme priru�ne (cache) memorije kako bi minimizirali smanjenje u�inkovitosti.

4.5.5. Vremenski napadi

Navedeni primjeri koncentriraju se na trenutak pisanja u EEPROM. Kako je za rad pametne kartice potrebna energija, još jedan izvor opasnosti za podatke kojima se koristi pametna kartica jest potrošnja struje.

Zapravo svaki podatak koji se sprema na ili koji se �ita iz pametne

kartice zahtjeva specifi�nu koli�inu struje, koju možemo na neki na�in smatrati „otiskom“ odgovaraju�eg podatka (footstep). Kako je to realna opasnost, proizvo�a�i mikro�ipova razvili su u�inkovite mehanizme zaštite. Najbolji na�in zaštite postiže se kombinacijom programskih i sklopovskih rješenja.

Svrha napada na „otisak“ potrošnje obi�no je otkrivanje klju�eva ili

PIN-ova pametne kartice. Dosad je naju�inkovitiji na�in napada bio vremenski napad.

Korelacija izme�u potrošnje struje i podataka koji se obra�uju je

funkcija broja jedinica sadržanih unutar podataka (ako podatak ima više bitova s vrijednoš�u „1“, potrebno je više energije za manipulaciju njime). Struju definiramo kao kretanje naboja u neki od memorijskih registara. Izravan prijevod u bitove nije mogu�, osim ako operacija koja se prati nije operacija nad bitom. No, mogu�e je prepoznati odre�eni uzorak u potrošnji struje – razmotrimo kao primjer lošu izvedbu verifikacije PIN-a:

Usporedi_PIN: for ( i=0; i<length(PIN); i++ )

{ if ( PIN[i] != Ispravan_PIN[i] ) return(1)

} return(0);

35

Ovakva o�ita izvedba provjere PIN-a nije dozvoljena u operacijskom sustavu pametne kartice jer dozvoljava jednostavan napad na PIN (slika 4.7).

I (ma)

t (ms)

90

1000

0

30

60

-30

200 400 600 800

I (ma)

t (ms)

90

1000

0

30

60

-30

400 600 800

Referentna to�ka

200

Razlika trajanju

Slika 4.7 Otkrivanje podataka vremenskim napadom

Funkcija Usporedi_PIN uspore�uje uneseni PIN s to�nim PIN-om

znak po znak. Na prvi razli�it znak izlazi se iz funkcije. Ako pretpostavimo da nema broja�a „krivih pokušaja“, napada� može mjerenjem uzoraka potrošnje struje vidjeti sli�nost prilikom iskušavanja PIN-ova i namještati uneseni PIN sve dok ne pogodi idu�i znak. Pritom se može ravnati vremenskim trajanjem obrade i pravilom – što je obrada duža to bolje.

Ve� spomenute mjere zaštite od napada PIN-a prekidom napajanja

mogu se primijeniti i protiv vremenskog napada, no nije teško zamisliti situaciju u kojoj se mjerenje potrošnje struje kartice može iskoristiti za otkrivanje povjerljivih podataka, ako nisu prikladno zašti�eni. Jednostavan primjer bila bi lozinka koja nema broja� krivih unosa ili je on dovoljno velik, pa je mogu�e donijeti zaklju�ke iz uzoraka dobivenih mjerenjem potrošnje struje pametne kartice. To�ka koju bi u tom slu�aju trebalo promatrati jest npr.

36

provjera pariteta, u kojoj se ponovo obra�uju bajtovi ili bitovi lozinke. Iako je na ovaj na�in teško otkriti podatke mogu�nost ovakvog napada mora biti sprije�ena, pogotovo kod usporedbe npr. certifikata koji se koriste za transakcije pla�anja.

Sigurnosna zaštita protiv vremenskog napada je generiranje jednakog

broja procesorskih ciklusa za razli�ite namjene, te onemogu�avanje otkrivanja podataka iz mjerenja potrošnje struje (za pogrešan i ispravan unos uzorci bi trebali biti isti). Korištenje takvih mjera ne smeta krajnjem korisniku koji primjenu zaštitnih mjera može primijetiti jedino na sigurnosnom odobrenju dobivenom s pametnom karticom. Izloženost i opasnost ovakve vrste napada još uvijek je slabo specificirana i dokumentirana [8].

4.5.6. Analiza diferencijalnih grešaka

Prije nekoliko godina industrija pametnih kartica bila je uzdrmana

objavom kriptografskih razmatranja o jednostavnom razbijanju klju�eva na pametnim karticama (Bellcore napad na RSA algoritam i upotreba analize diferencijalnih grešaka – Differential Fault Analysis). Oba napada temelje se na pretpostavci da napada� može postaviti/obrisati odre�eni bit u memoriji u odre�enom trenutku. To nije mogu�e u današnjim rješenjima, pa se mogu�nost ovakvog napada razmatra samo teoretski.

Dobro je poznato da se tipi�ni DES klju� sastoji od 56 bitova, od kojih

svaki ima vrijednost „0“ ili „1“. U prvom koraku izvršavamo normalnu operaciju enkripcije/autentifikacije u kojoj se koristi klju� koji želimo otkriti. Drugi korak jest postavljanje vrijednosti odre�enog bita klju�a u „0“ (pretpostavimo da možemo postaviti vrijednost bilo kojeg bita klju�a). Ako sada ponovo izvršimo operaciju iz prvog koraka, dobiti �emo ili isti ili razli�it rezultat.

Ako je rezultat razli�it, možemo zaklju�iti da je vrijednost

promijenjenog bita prije promjene bila „1“ – a ako je rezultat isti, vrijednost tog bita mora biti „0“. Otkriven je jedan bit. Na isti na�in mogu se otkriti i ostali bitovi. Ovo je samo grubi opis analize diferencijalnih grešaka, u stvarnosti bi otkrivanje povjerljivih podataka bilo puno kompliciranije. Kako se po�etna pretpostavka promjene vrijednosti bita u memoriji pametne kartice ne može ostvariti, ovakva vrsta napada nije mogu�a u današnjim sustavima pametnih kartica.

37

4.5.7. Napad analizom potrošnje

Kao realna mogu�nost otkrivanja povjerljivih podataka puno opasniji su napadi izravnim mjerenjem potrošnje struje. Kod vremenskog napada uspore�ivali su se uzorci mjerenja potrošnje struje u korelaciji s vremenskim trajanjem neke operacije. Utvr�eno je da iste operacije nad istim podacima imaju iste uzorke mjerenja struje. Analogno, ista operacija nad razli�itim podacima daje razli�ite uzorke mjerenja struje, a razlika je povezana s podacima koji se obra�uju. Te razlike u mjerenjima struje mogu se iskoristiti za otkrivanje povjerljivih podataka.

Fizi�ki, razlike u mjerenjima struje uzrokovane su brojem bitova sa

sadržajem „1“ u nekom registru, no za uspješan napad nije potrebno razumijevanje tih detalja. Dvije �eš�e korištene vrste ovakvog napada su:

- analiza potrošnje (Single Power Analysis – SPA) - analiza razlika u potrošnji (Differential Power Analysis – DPA)

Napad analizom potrošnje je posebno primjenjiv ako se npr. bitovi

klju�a obra�uju jedan za drugim (kao u procedurama za provjeru pariteta klju�a). U takvoj situaciji mjerenjem uzoraka potrošnje struje može se otkriti razlika u ovisnosti je li obra�ivani bit „0“ ili „1“ i mogu�e je direktno otkrivanje bitova klju�a. Ako se povjerljivi podaci ne obra�uju bit po bit (što se uvijek može izbje�i), napad analizom potrošnje je mnogo zamršeniji i obi�no ga izvode korisnici (insiders) koji znaju izvorni kod operacije koja se analizira. Takvi korisnici mogu imati i druge primamljivije na�ine za otkrivanje povjerljivih podataka jednostavnije od teškog i preciznog mjerenja potrebnog za uspješan napad analizom potrošnje. Me�utim razmatranja vezana za napad analizom potrošnje mogu se koristiti kao podloga za napad analizom razlika u potrošnji [8].

Osim u DES algoritmu, obrada podataka bit po bit može se izbje�i,

posebno u procedurama provjere pariteta klju�a. Za DES algoritam treba ostvariti prikladnu zaštitu koja otklanja mogu�nost SPA/DPA napada. Vjerojatnost uspješnog napada analizom potrošnje (SPA) ve�a je nego vjerojatnost uspješnog napada analizom razlika u potrošnji (DPA) ali zahtjeva mnogo podataka poznatih samo programerima promatranog sustava i detaljnu istragu (za napad na pametnu karticu koja nema odgovaraju�u zaštitu).

38

4.5.8. Napad analizom razlika u potrošnji

Napad analizom razlika u potrošnji lakše je izvediv od napada

analizom potrošnje i smatra se najopasnijom vrstom napada kojoj su izložene današnje pametne kartice. Predstavio ga je Paul Kocher 1998. godine.

Ovakva vrsta napada ne zahtjeva poznavanje programskog rješenja

unutar pametne kartice, pa je primamljiv napada�ima koji na raspolaganju imaju odgovaraju�u opremu za mjerenje. Za uspješan napad potreban je velik broj mjerenja potrošnje struje DES operacija enkripcije/autentifikacije s istim klju�em.

Odabiru se sigurnosne operacije s poznatim ulaznim ili izlaznim

podacima. Nakon obrade nekoliko tisu�a uzoraka mjerenja potrošnje struje, odgovaraju�e uzorke treba „poravnati“ kako bi se moglo to�no odrediti pojedine (npr. DES) operacije u ovisnosti o taktu. Promatraju se operacije u prvom krugu DES algoritma, jer se time smanjuje broj podataka koje treba obraditi.

Svakom od mjerenih uzoraka pridjeljuje se pozitivan ili negativan

predznak, ovisno o pretpostavljenom podklju�u (Ki). Osnovni DES algoritam koristi 56-bitni klju� podijeljen na 6-bitne podklju�eve koji se koriste u prvom krugu algoritma. Napad analizom razlika u potrošnji pokušava na�i jedan od tih klju�eva kako bi se mogao rekonstruirati glavni klju�.

Potrebno je generirati svaki od 64 mogu�a podklju�a, te svakom od N

mjerenih uzoraka pridijeliti pozitivan ili negativan predznak u ovisnosti o rezultatu pretpostavke. Ako se potom N poravnanih uzoraka zbroji, rezultat �e biti šum u 63 od 64 slu�aja. U jednom slu�aju postoji jedan ili više skokova u mjerenju potrošnje koji su uzrokovani to�nom pretpostavkom (doprinos nekoliko elektrona koji u svakom od uzroka odgovaraju pogo�enom podklju�u).

Generiranje sljede�ih 64 podklju�eva za idu�u operaciju supstitucije

DES algoritma otkriva svih 48 bitova klju�a koji se koriste u prvom krugu (8 podklju�eva). Drugi krug otkriva preostalih 8 bitova. Pridavanje odgovaraju�eg predznaka može se izvesti ako poznajemo ulazni, izlazni podatak i pretpostavljeni klju�, a ovisi o predvi�anju rezultata operacije supstitucije DES algoritma. Ovdje se iznosi samo gruba zamisao napada, detaljno su opisani u literaturi [18] [19].

39

Oprema potrebna za izvo�enje ovakvog napada je vrlo skupa i dostupna npr. istraživa�kim institutima i fakultetima, što otežava njegovu izvedbu. Najve�a zapreka analizi razlika u potrošnji jest ograni�en broj DES operacija s istim klju�em. Dok god klju� nije poznat, treba ponavljati operaciju koja obi�no posjeduje broja� pogrešnih pokušaja. Ako postoji takav broja�, broj uzoraka koji se mogu dobiti mjerenjem ograni�en je na maksimalan broj pogrešnih pokušaja što znatno otežava otkrivanje klju�a, pa se može re�i da je to prikladna zaštitna mjera. Novija sklopovska rješenja i operacijski sustavi pametnih kartica tako�er imaju ugra�enu zaštitu od napada analizom razlika u potrošnji, pa je on gotovo nemogu� �ak i s neograni�enim brojem mjerenih uzoraka. Neke od zaštitnih mjera su:

- tehnološka barijera – napredna 0.6 mikronska tehnologija uvelike

smanjuje potrošnju i relativne varijacije operativnih parametara (napon, struja) pametnih kartica.

- fluktuacija takta – posebna programska rješenja koja, kada se

ispravno koriste, iz ugra�enih aplikacija na pametnoj kartici stvaraju vremenski varijabilne ina�ice.

- nepredvidljivo ponašanje – ugra�eni vremenski okida� (timer) s

mogu�noš�u slanja zahtjeva za prekid (interrupt) i nepredvidivi generator brojeva stvaraju nepredvidive varijacije kod izvršavanja programskih rješenja, i znatnu razliku u uzorku potrošnje struje za isti kod.

- robustan dizajn – dizajniranje je modularno i dozvoljava promjene

sklopovlja radi brze i u�inkovite primjene, omogu�en je brz odgovor na mogu�e nove napade.

- kontrola memorije za višeuslužne pametne kartice – napredan sustav

kontrole pristupa memoriji osigurava sigurnu podršku višeuslužnim pametnim karticama.

- sigurnosni mehanizmi i sklopovske funkcije – skup sigurnosnih

mehanizama i sklopovskih funkcija koje aplikacijama omogu�uju otkrivanje i zaštitu od mogu�eg napada poput neispravnih uvjeta rada, pogrešnog adresiranja, narušavanja integriteta mikroprocesora i sli�no. Mogu�i odgovori na napad su: slanje zahtjeva za prekid, ponovno pokretanje programa (reset), trenutno brisanje svih podataka u RAM-u i reprogramiranje EEPROM-a.

40

4.6. Kako riješiti pitanje sigurnosti pametnih kartica?

Pametne kartice su primjenjive u mnogim podru�jima. Zamisao je objediniti što više aplikacija na jednoj kartici, i smanjiti broj kartica koje svakodnevno koristimo. Npr. kartica koju nam je izdala jedna banka mogla bi se koristiti i za bankovne ra�une drugih banaka, za knjižnice, osiguranja, benzinske crpke, hotele, za kupovinu zrakoplovnih karata i sl. Kartica bi mogla imati ugra�ene osnovne programe kod izdavanja i podršku za dodavanje novih programa, naravno, uz uvjet da je dodavanje dozvolio izdava� kartica. Ako imamo samo jednu karticu, a više karti�nih aplikacija koje su na kartici i više aplikacija terminala koje koriste karticu, name�e se pitanje sigurnosti. Što ako kartica do�e u krive ruke, može li jedan davaoc usluga (npr. knjižni�ar) mijenjati podatke karti�nih aplikacija drugih davaoca (npr. policijskog službenika). Kakva je sigurnost pri prijenosu povjerljivih podataka s kartice preko Interneta ili mobitelom putem WAP-a. Može li se i karti�ni sustav zaraziti virusom? Može li netko ukrasti novac s nje ili otkriti gdje ste ga trošili?

Nabrojana su razna sigurnosna pitanja koja moraju biti riješena tako

da se zaštiti korisnik i njegovi (povjerljivi) podaci. Izdava�i kartica i proizvo�a�i programskih rješenja za pametne kartice moraju koristiti zajedni�ki jezik, u svrhu što kvalitetnijeg i sigurnijeg proizvoda (npr. sklopovskim rješenjima prilikom izrade kartica zaštititi mogu�e programske sigurnosne rupe i obrnuto). Neke od odgovora na ta pitanja sadrži Common Criteria (ISO 14508) standard, no ta pitanja poti�u druga [16].

Po�etni koraci u podru�ju višeuslužnih pametnih kartica u�injeni su:

- u Europi, s EuroSmart standardom koji okuplja proizvo�a�e pametnih kartica i ISO 14508 standard.

- u Sjedinjenim Ameri�kim državama, Visa i Smart Card Security User“s Group (SCSUG) razvojem SCSUG-Smart Card Protection Profile koji izražava sigurnosne zahtjeve korisnika.

- u Tajvanu, na Industrial Technology Research Institute (ITRI) razvojem Comprehensive Smart Card Architecture.

- u Sjedinjenim Ameri�kim državama, Visa i GlobalPlatform razvojem GlobalPlatform Card Specification i GlobalPlatform Card Security Requirements Specification temeljenoj na ITRI arhitekturi.

- u Sjedinjenim Ameri�kim državama, gdje je Visa razvila Visa Open Platform Protection Profile (OP3).

Specifikacijom sigurnosnih zahtjeva omogu�en je razvoj pametnih

kartica kompatibilnih sa svima zahtjevima, dok se ISO SC27 WG3 rad bavi problemima evaluacije sustava koji trebaju zadovoljiti spomenute sigurnosne kriterije.

41

5. Usporedba razvojnih platformi

Na tržištu postoji nekoliko programskih jezika u kojima se izra�uju karti�ne aplikacije (Java, ZBasic). Aplikacije terminala su tako�er odre�ene proizvo�a�em, tj. su�eljem (API-jem) koje je razvio proizvo�a�. U ovom poglavlju opisuje se razvoj karti�nih aplikacija u Javi i ZBasicu.

Nekad je postojalo svega nekoliko proizvo�a�a pametnih kartica. Danas je taj broj mnogo ve�i. Razlog je klju�ni dio tehnologije pametnih kartica – operacijski sustav. Tvrtke koje nude samo operacijske sustave (programe), omogu�uju raznim proizvo�a�ima silicijskih mikromodula (sklopovlja) jednostavan i uspješan izlazak na tržište pametnih kartica. Operacijski sustav povezuje instrukcije karti�nih aplikacija sa sklopovljem silicijskog mikromodula. Velike tvrtke koje su ve� poznata imena na podru�ju pametnih kartica (Schlumberger, Gemplus, Oberthur, Giesecke & Devrient, Orga) uložile su godine istraživanja u razvoj operacijskih sustava pametnih kartica. Razvijeni su sigurni programski sustavi za rad s ograni�enim mogu�nostima kojima raspolažu pametne kartice. Ti proizvo�a�i prodaju svoje operacijske sustave uz licenciranje i obi�no je najpovoljnija kupovina programa u kompletu s pametnom karticom istog proizvo�a�a (monopol).

No, sve više novih proizvo�a�a pametnih kartica licencira operacijske

sustave od nezavisnih tvrtki (koje ne proizvode sklopovlje, tj. mikromodule). Ve�inom se temelje na Java Card platformi (razvio Sun Microsystems), vode�oj u programskoj podršci za kartice s mikromodulom. Neovisnost proizvo�a�a sklopovlja i proizvo�a�a programa pametnih kartica uzrokuje sniženje cijena na dva na�ina:

- više proizvo�a�a nudi pametne kartice (bez operacijskog sustava)

- korisnici mogu zasebno kupiti pametnu karticu, operacijski sustav

za nju, terminal i �ita� – od razli�itih proizvo�a�a

Npr. mnoge tvrtke koje proizvode pametne kartice za Visa International bankovni sustav, nisu poznata imena (na svjetskom tržištu), ali nude sklopovsko rješenje s potporom za Java Card i GlobalPlatform (vidi poglavlje 5.2.3.). Operacijski sustav koji koristi 14 milijuna Visa izdanih pametnih kartica je JCOP (razvio IBM Corp.). Sli�no rješenje koristi i MasterCard International ali s Multos operacijskim sustavom – preko 2 milijuna kartica izdano je u Južnoj Koreji, Tajvanu, Maleziji i Filipinima. Velike tvrtke tako omogu�uju manje poznatim proizvo�a�ima uspjeh na tržištu, a korisnici na raspolaganju imaju jeftiniji proizvod.

42

Tradicionalni proizvo�a�i pametnih kartica još uvijek tvrde da �e njihovo iskustvo i stru�nost na kraju prevladati – pametne kartice su vrlo specifi�ne, mnogo sigurnosnih osobina mora biti ugra�eno u operacijski sustav kako bi se postigla najve�a razina sigurnosti. Pored toga tradicionalni proizvo�a�i pokušavaju zadržati tržište licenciranjem svojih operacijskih sustava za pametne kartice (poput SchlumbergerSema) drugim proizvo�a�ima sklopovlja.

Odabir operacijskog sustava za karti�ni sustav ovisi o performansama

i kompatibilnosti sa standardima. Mnogo novih karti�nih operacijskih sustava nije detaljno ispitano (sigurnosni certifikati su skupi i vremenski zahtjevni) ali imaju ve�u u�inkovitost od poznatih imena. Kartice razvijene prema Java Card specifikaciji imaju odre�enu slobodu u interpretaciji nekih funkcija (npr. u�itavanje aplikacije na karticu) što može uzrokovati probleme (npr. GSM tvrtki jer ne može koristiti iste aplikacije terminala za razli�ite Java Card pametne kartice). Novija rješenja su sve više standardizirana i uz organizacije koje donose standarde izbje�i �e se problem interoperabilnosti. Sve ve�a procesorska snaga pametnih kartica približava ih osobnim ra�unalima. Programeri osobnih ra�unala uklju�iti �e se u razvoj sustava pametnih kartica i donijeti nova i bolja rješenja.

Me�u proizvo�a�ima neovisnih rješenja je i tvrtka ZeitControl. S

proizvodnjom BasicCard pametnih kartica zapo�ela je 1996. godine. BasicCard pametne kartice su jeftinije od Java Card pametnih kartica jer ne zahtijevaju tako složen karti�ni operacijski sustav (COS) i mikrokontroler se može smjestiti na manjem silicijskom �ipu. Tvrtke koje nude cjelovita karti�na rješenja odabiru BasicCard kako bi pove�ale svoju zaradu [11].

43

5.1. BasicCard pametne kartice

Implementacija karti�nih sustava dosad se zasnivala na dobrom poznavanju specifi�nog jezika i specifi�nih su�elja pojedinih proizvo�a�a. Osnovna prednost ZBasic – BasicCard pametnih kartica jest jednostavnost i niska cijena. Kupljena kartica se može programirati u vrlo kratkom vremenu i ne zahtjeva veliko iskustvo. ZBasic je jezik sli�an Basicu (još iz vremena DOS-a). Prilago�en je operacijskom sustavu pametne kartice s ograni�enim resursima. Porodica BasicCard pametnih kartica dijeli se na:

- Compact - Enhanced - Professional

Svojstva BasicCard pametnih kartica [4]: - niska cijena – razvojni sustav je besplatan (može se skinuti s

Interneta), ve�ina BasicCard pametnih kartica ima cijenu upola nižu od ostalih trenutno raspoloživih pametnih kartica.

- jednostavno programiranje – gotovo svatko može programirati u

ZBasicu, ili to može nau�iti u kratkom vremenu. Naredbe karti�ne aplikacije definiraju se poput funkcija u Basic programskom jeziku. Datote�ni sustav BasicCard pametne kartice sli�an je datote�nom sustavu obi�ne diskete. Ugra�ena je podrška za enkripcijske algoritme, a upisivanje i �itanje iz EEPROM-a je vrlo jednostavno.

- sigurnost:

o Professional BasicCard podržava enkripciju javnog klju�a RSA, ECC, te AES i SHA-1 algoritme

o Enhanced BasicCard podržava DES, SHA-1, ECC i IDEA algoritme

o Compact BasicCard podržava SG-LFSR algoritam

- kompatibilnost s ISO standardom – deklariranje ISO kompatibilnih naredbi u ZBasicu jednostavno je poput deklariranja funkcije, stoga je razvoj nove ISO kompatibilne pametne kartice vrlo brz.

44

5.1.1. BasicCard tehnologija

ZeitControl Cardsystems je njema�ka tvrtka koja proizvodi pametne kartice i opremu. ZeitControl nudi nekoliko vrsta pametnih kartica. Najjednostavnija „Compact“ pametna kartica s 1 KB EEPROM memorije, dovoljna je za male korisni�ke programe. Za kompleksnije programe, na raspolaganju su „Enhanced“ i „ Professional“ ina�ice s najviše 32 KB EEPROM memorije. Operacijski sustav na kartici temelji se na Basic interpreteru. Sli�nost s Java Card tehnologijom i Java programskim jezikom je velika. Kao što za Javu postoji specifi�an jezi�ni podskup koji „razumije“ Java Card interpreter, tako i na BasicCard pametnim karticama interpreter koristi samo dio Basic programskog jezika. Sli�no Javi, taj interpreter izvršava P-code (razlikuje se od Java bytecode u instrukcijskom skupu i tipovima podataka koje podržava [4][15]). U „Enhanced“ karticama interpreter se izvodi u 17 KB ROM memorije, dok se „Professional“ kartice koriste varijabilnom koli�inom EEPROM memorije za izvedbu Basic interpretera. Osim spomenutog najjednostavnijeg modela, ja�e ina�ice sadrže prili�no sveobuhvatnu implementaciju Basic programskog jezika (ZBasic). Osim byte, integer i long tipova podataka, podržani su i IEEE brojevi s pomi�nom to�kom. Na raspolaganju je datote�ni sustav sli�an DOS-u (koristi EEPROM memoriju kao prostor za spremanje podataka) i procedure za pretvorbu podataka u znakovni niz (string) [9].

Prvenstvena namjena BasicCard pametnih kartica je u trgovini, stoga

sve kartice imaju u operacijski sustav ugra�enu enkripcijsku potporu. Algoritmi enkripcije su složeni i prosje�nom korisniku previše zahtjevni, pa takva ugra�ena sposobnost znatno olakšava razvoj sigurnih rješenja. BasicCard pametne kartice izra�ene su prema ISO standardima važe�ima na podru�ju pametnih kartica. Compact i Enhanced ina�ice za komunikaciju koriste T=1 protokol, a Professional ina�ice uz navedeni koriste i T=0 protokol.

5.1.2. ZBasic programski jezik

ZBasic je potpuno funkcionalan Basic programski jezik. Podržava pozive funkcija i procedura, korisni�ki definirane podatke, ulazno-izlazne datote�ne operacije, naredbe pretprocesoru itd. Zbog specifi�nih zahtjeva i uvjeta rada (pametna kartica) podupire i deklariranje naredbi (commands), njihovo pozivanje, ulazno-izlaznu enkripciju i kontrolu pristupa datotekama.

ZBasic program sastoji se od jedne kompilacijske jedinice. Kod

prevo�enja nema faze povezivanja (linking stage) kako bi se prevoditelju omogu�ilo izra�unavanje prostora potrebnog za spremanje cijelog programa na pametnu karticu i u�inkovito iskorištenje RAM-a. Izvorni kod se može raspodijeliti po datotekama, ali sve potrebne datoteke trebaju s klju�nom rije�i #Include biti uklju�ene u datoteku koja se prevodi.

45

5.1.3. Arhitektura BasicCard pametne kartice

Me�udjelovanje izme�u terminala i karti�ne aplikacije izvodi se naredbama (commands). Za vrijeme razvoja karti�ne aplikacije potrebno je specificirati naredbe koje �e ta aplikacija mo�i izvršavati. Prema ISO 7816-4 standardu za definiranje naredbe se koriste po dva bajta za odabir razreda (CLA) i instrukcije (INS) unutar razreda (vidi poglavlje 3.2.). Na slici 5.1 prikazana je arhitektura BasicCard pametne kartice:

Operacijski sustav

P-Code interpreterP-Code stog

BasicCard Virtual Machine

Karti�na aplikacija

Programsko su�elje -korisni�ki definirane naredbe

Predefinirane naredbe(zajedni�ke svim BasicCard

pametnim karticama)

Su�elje �ita�a (Common Reader Interface)

BasicCard naredbeno su�elje (Command Interface)

Aplikacija terminala (C, Visual Basic, Deplhi)

Slika 5.1 Arhitektura BasicCard pametne kartice

Uz parametre broja razreda i broja instrukcije, definicija naredbe

sastoji se i od to�ne definicije parametara koji se proslje�uju na karticu s terminala ili ih terminal �ita s kartice. Karti�na aplikacija BasicCard pametne kartice zapravo je grupa funkcija koje se izvršavaju po primitku naredbi od strane terminala. Pametna kartica je podre�eni ure�aj (slave), dok je terminal nadre�en (master) i aplikacije koje se izvršavaju na terminalu odabiru naredbe koje �e izvršavati karti�na aplikacija. Karti�na aplikacija može sadržavati i inicijalizacijski kod koji se pokre�e svaki puta kada se kartica umetne u �ita� [4].

46

5.1.3.1 BasicCard operacijski sustav

Operacijski sustav BasicCard pametne kartice ima sljede�e karakteristike:

- potpunu implementaciju T=1 komunikacijskog protokola koja

uklju�uje ulan�avanje, ponovno slanje i produženje vremena �ekanja (vidi poglavlje 3.2).

- predefinirane naredbe za u�itavanje programa i podataka na

pametnu karticu, uklju�uju�i automatsku enkripciju.

- virtualni stroj za izvršavanje P-code.

- Enhanced i Professional ina�ice sadrže log datoteke svih EEPROM operacija, kako bi se omogu�ilo njihovo rekonstruiranje u slu�aju gubitka napajanja. Compact ina�ice nemaju takav mehanizam, pa je njihove transakcije potrebno štititi programski.

- Enhanced i Professional ina�ice sadrže datote�ni sustav sli�an

DOS-u s direktorijima organiziranima u stablastoj strukturi (vidi poglavlje 4.3.). Pristupanje direktorijima i datotekama mogu�e je na više na�ina:

o iz karti�ne aplikacije datoteke se mogu stvarati, pisati i �itati

pomo�u naredbi istovjetnih naredbama Basic programskog jezika. Posebne naredbe omogu�uju postavljanje prava pristupa na datoteke i direktorije kako bi se ograni�io pristup aplikaciji terminala. Prava pristupa ovise o kriptografskim klju�evima, korisni�kim lozinkama i sl.

o iz aplikacije terminala, BasicCard pametna kartica izgleda

poput diskete sa simboli�kim imenom „@:“. Ako zadovoljava prava pristupa, aplikacija terminala može na karticu pisati, �itati ili mijenjati datoteke i direktorije kao da je obi�na disketa.

o struktura direktorija i datoteka može se definirati u

inicijalizacijskom dijelu karti�ne aplikacije (File Definition Section).

47

- nalazi se u flash programabilnom ROM-u, i lako se nadogra�uje.

- Professional ina�ice sadrže generator slu�ajnih brojeva i nude kvalitetniju sigurnosnu zaštitu [5].

5.1.3.2 BasicCard virtualni stroj

Virtualni stroj BasicCard pametne kartice koristi RAM i EEPROM memoriju. BasicCard RAM ima sljede�a podru�ja: sustavski RAM, P-Code stog, podru�je public i static podataka i podru�je alocirano za izvršavanje programa (Run-time memory allocation). BasicCard EEPROM ima sljede�a podru�ja: sustavski EEPROM, tablicu opisnika naredbi (Command descriptor table), ZBasic programski kod, podru�je za znakovne konstante (String constants), podru�je za enkripcijske klju�eve, EEPROM podatke i podru�je alocirano za izvršavanje programa. ZC-Basic prevodioc izra�unava koliko memorije treba iz kojeg podru�ja, a ostatak dodjeljuje RAM i EEPROM podru�ju alociranom za izvršavanje programa. BasicCard virtualni stroj podržava �etiri tipa podataka:

- char (1-byte unsigned integer) - word (2-byte signed integer) - long (4-byte signed integer) - real (4-byte IEEE-format floating-point number) - string P-code stog se sastoji od tri registra (PC – Program counter, SP –

Stack Pointer, FP – Frame Pointer). Može sadržavati �etiri vrste podataka: - parametre naredbi dobivene s I/O ulaza (nalaze se na dnu stoga).

- argumente procedura i povratnu adresu (prije poziva procedure,

parametri se stavljaju na stog).

- okvir podataka (FRAME data), �ine ga Private podaci i privremene varijable koje je generirao prevodioc. Svaka procedura ima svoj okvir podataka fiksne veli�ine, alociran prilikom poziva procedure. FP registar pokazuje na po�etak okvira podataka.

- me�urezultate operacija, virtualni stroj nema podatkovnih registara,

sva izra�unavanja se obavljaju na P-Code stogu.

48

5.1.3.3 Su�elje prema višim programskim jezicima

Tvrtka ZeitControl razvila je efikasno su�elje (API) za više programske jezike (trenutno su podržani C/C++, Visual Basic i Delphi) koje programerima omogu�ava korištenje i povezivanje obaju sustava (npr. grafi�ko korisni�ko su�elje i BasicCard aplikaciju). Su�elje je razvijeno za Windows 32-bitnu razvojnu platformu. Podržani su ZeitControl CyberMouse, ZeitControl Chipi i PC/SC kompatibilni �ita�i [6] [7].

Temelj je BasicCard naredbeno su�elje za C programski jezik (vidi

sliku 5.1) jer ga mogu koristiti gotovo svi ostali programski jezici. Visual Basic koristi ActiveX kontrolu nadogra�enu na spomenuto C su�elje. Su�elje �ita�a potrebno je za povezivanje s jednim od podržanih �ita�a (detektiraju se za vrijeme izvršavanja kada se provjeravaju podaci o registriranim �ita�ima na terminalu na kojem se izvodi aplikacija). U tom su�elju nalaze se funkcije za otvaranje/zatvaranje �ita�a, spajanje/odspajanje kartice, odabir default �ita�a, itd. Naredbeno su�elje koristi su�elje �ita�a kako bi povezalo �ita� s odgovaraju�im objektom u aplikaciji terminala. Podržane su predefinirane naredbe, jednostavne transakcije, transparentna enkripcija, funkcije za postavljanje klju�eva i polinomijala, funkcije za povezivanje s �ita�em itd.

49

5.2. Java pametne kartice

S Java tehnologijom, programeri koji rade na podru�ju pametnih kartica imaju mogu�nost standardizacije. Tako, npr. GSM provider može vrlo lako razvijati nove usluge, koje se mogu selektivno u�itati na karticu u mobitelu („preko zraka“). Kao rezultat, mobilni telefon postaje npr. nov�anik, omogu�uje prijenos s ra�una na ra�un, kupovinu, iznajmljivanje... i sve to u vrlo sigurnom i interoperabilnom okruženju. Ako želite promijeniti mobilni telefon, samo zamijenite aparat, a vašu „osobnu“ pametnu karticu premjestite.

Današnje pametne kartice proširuju mogu�nosti tradicionalnih kartica s magnetskom trakom, daju�i korisnicima nove mogu�nosti i poboljšanja, uklju�uju�i:

- siguran pristup podacima s Internet (web-based) i mogu�nost pohrane

više aplikacija na samo jednu pametnu karticu - 100 (i više) puta ve�i kapacitet za pohranu podataka (memorije su

ve�e, jeftinije) - pove�anu sigurnost i zaštitu od prijevare - ve�u pouzdanost zbog boljeg dizajna i kontrole kvalitete u proizvodnji - raznolikost mikro�ipova, na raspolaganju su kartice sa širokim

spektrom memorijskih i procesnih svojstava, što omogu�uje jednostavan odabir za specifi�nu primjenu

Java tehnologija je odigrala veliku ulogu na tržištu pametnih kartica jer

je postala vode�a platforma za njihov razvoj. 1999. je isporu�eno preko 20 milijuna pametnih kartica temeljenih na Java tehnologiji, a u 2000. godini spominje se broj od preko 100 milijuna. Osim toga, Sun je ušao u partnerstvo s više od 35 vode�ih tvrtki na tom podru�ju, a vrlo veliki broj Java programera je mamac za proizvo�a�e. Broj rješenja koja uklju�uju Java pametne kartice iz dana u dan je sve ve�i (analogno slici 2.2).

U slu�aju pametne kartice koja se temelji na Java tehnologiji, aplikacije pisane u Javi, u obliku byte-koda, se u�itavaju u memoriju mikroprocesora pametne kartice, gdje ih pokre�e Java Virtual Machine (JVM). Izvršni kod nije ovisan o platformi, pa svaka kartica koja ima Java interpreter može izvršiti istu aplikaciju. Na jednoj kartici može biti više Java aplikacija, od kojih svaka ima svoj sigurni memorijski prostor kako bi se osigurao integritet i sprije�ilo �itanje/pisanje po memoriji programa (interferencija s drugim programima, ili namjerno, u cilju promjene npr. iznosa na bankovnom ra�unu) [3].

50

Ve�ina aplikacija za koje se mogu koristiti pametne kartice zahtjeva visoku razinu autentifikacije. Stoga pametne kartice imaju mogu�nost korištenja javnih i privatnih klju�eva i na taj na�in ostvaruju tu razinu. Trenutno je osobni identifikacijski broj (PIN) uobi�ajeni na�in za siguran pristup, ali u bližoj budu�nosti to bi mogao biti i npr. otisak prsta. Teži se tome da se proces autentifikacije što više pojednostavi uz što višu razinu sigurnosti.

Snaga Java platforme i mogu�nost pohrane više aplikacija na jednoj pametnoj kartici – i to od razli�itih proizvo�a�a (providers) - name�e Java Card pametne kartice kao vrlo mo�an alat u svakodnevnom životu. Trenutno su za programere pametnih kartica vrlo interesantna sljede�a podru�ja: mobilna telefonija, zdravstvo, financije te transport. Rastu�e mogu�nosti mobilnih telefona predstavljaju (1999.) 43% tržišta pametnih kartica. Financijska tržišta su tako�er vrlo velika mogu�nost. Do 2005. velik dio svjetske bankovne industrije, po�evši od Evrope, morati �e svoje korisnike opskrbiti pametnim karticama, jer to zahtijevaju kreditne tvrtke, koje nude svoje usluge (npr. Visa). Pametne kartice bitno reduciraju mogu�nost prijevare, i kreditne tvrtke ih prilago�avaju kao vrlo u�inkovitu zaštitu. Porastom tzv. e-commerce poslova sve više kreditnih tvrtki �e nuditi svoje usluge u ovom obliku. Na podru�ju medicine, pametne kartice tako�er unose velike mogu�nosti i veliku pouzdanost, uz smanjenje papirologije i administrativnih poslova. U prometu je mogu�e pametne kartice koristiti kao sredstvo pla�anja (naplatne ku�ice na autoputovima, parkirališta i garaže) ili kao kartu (npr. avionsku ili autobusnu), sve to bez potrebe za kopanjem po džepovima i traženjem sitnog novca [3].

51

5.2.1. Java Card tehnologija

Java Card specifikacija omogu�uje pokretanje Java programa na pametnim karticama i drugim ure�ajima s ograni�enom memorijom (npr. danas 16k, 32k, itd.). Danas je Java Card aplikacijsko okružje registrirano na OEM bazi kod proizvo�a�a pametnih kartica i zauzima 90% tržišta pametnih kartica.

Prednosti Java Card tehnologije su sljede�e [2]: - interoperabilnost – karti�ne aplikacije razvijene s Java Card

tehnologijom mogu se u�itati i pokrenuti na bilo kojoj kartici koja podupire Java Card tehnologiju, neovisno o proizvo�a�u kartice i njenom hardwareu.

- sigurnost – Java Card tehnologija se temelji na inherentnoj

(naslije�enoj) sigurnosti Java programskog jezika i omogu�uje sigurno okruženje za izvo�enje programa (vidi poglavlje 4.4.1.). Razvijena je u otvorenom procesu, a industrijska primjena i sigurnosne evaluacije osiguravaju da vlasnici kartica imaju na raspolaganju najsposobniju i najsigurniju tehnologiju koja je danas raspoloživa.

- mogu�nost multi-aplikacija – Java Card tehnologija omogu�uje

istovremenu sigurnu koegzistenciju više aplikacija na jednoj pametnoj kartici.

- dinami�nost – nove aplikacije mogu biti sigurno instalirane nakon što

je kartica ve� prodana, tako da prodava�i mogu dinami�no odgovarati na potrebe kupaca.

- otvorenost – programeri Java Card aplikacija imaju na raspolaganju

prednosti objektno-orijentiranog jezika i dizajna, te pristup ve� gotovim Java razvojnim alatima.

- kompatibilnost s postoje�im standardima – Java Card API je

kompatibilan s internacionalnim standardima za pametne kartice poput ISO 7816 ili EMV. Naveden je kao referenca vode�ih industrijsko-specifi�nih standarda (npr. Global Platform, ETSI).

52

5.2.2. Java Card jezi�ni podskup

Zbog svojeg malog memorijskog kapaciteta, Java Card platforma podržava samo pažljivo odabrani, prilago�eni podskup osobina Java jezika. Taj podskup uklju�uje osobine koje su prilago�ene pisanju programa za pametne kartice i druge male ure�aje, istodobno �uvaju�i objektno-orijentirane osobine Java programskog jezika. Tablica 5.1 isti�e neke bitne podržane i nepodržane osobine Java jezika u tehnologiji Smart Card. Klju�ne rije�i nepodržanih svojstava su tako�er ispuštene iz jezika. Neke od naprednih Java pametnih kartica implementiraju mehanizam sakupljanja sme�a, odnosno mehanizam brisanja objekata naslije�en iz Java platforme.

Tablica 5.1 Osobine Java Card jezi�nog podskupa

Podržane osobine Jave Osobine Jave koje nisu podržane

• Mali primitivni tipovi podataka: boolean, byte, short

• Java paketi, razredi, su�elja, iznimke

• Objektno-orijentirane osobine: naslje�ivanje, virtualne metode, nadja�avanje, dinami�ko kreiranje objekta, opseg pristupa, pravila povezivanja

• Opcionalni su klju�na rije� int i 32-bitni tip podatka

• Veliki primitivni tipovi podataka: long, double, float

• Znakovi i stringovi • Višedimenzionalna polja • Dinami�ko u�itavanje razreda • Sigurnosni manager • Sakupljanje sme�a i

finalizacija • Dretve • Serijalizacija objekata • Kloniranje objekata

Programski alat za provjeru koda (provjera class datoteka) smješten je

na terminalu i taj alat sustavno obavlja provjeru da li kod zadovoljava specifikaciju Java Card podskupa naredbi iz programskog jezika Java [2].

53

5.2.3. Arhitektura Java Card pametne kartice

Osnovna razlika memorijskih i „pametnih“ kartica (kartica s mikrokontrolerom) je jednostavan operacijski sustav koji može u�itati i izvršavati razne aplikacije. Budu�i da se radi o otvorenoj platformi, pametna kartica sama za sebe sli�i arhitekturi jednostavnog servera sa sljede�im osnovnim komponentama (vidi sliku 5.2):

- operacijski sustav kartice (COS)

- JCRE (Java Card Runtime Environment) je izvršna okolina koja

osigurava sigurno i nezavisno izvršavanje karti�nih aplikacija

- VOP/SC (Visa Open Platform Security Control) su mehanizmi koji omogu�uju upravljanje funkcijama aplikacije i sigurnosnu kontrolu izvršavanja

Uz navedene osnovne komponente na slici 5.2 prikazana su dva

su�elja pametne kartice koja programer može koristiti u toku razvoja karti�ne aplikacije [14].

Operacijski sustav

VOP CardManager

Java Card API Open PlatfomAPI

Java Card Virtual Machine

JCRE

Applet 4 Applet 3

Applet 2 Applet 1

Programsko su�elje (uklju�ujeprogramere appleta)

APDU su�elje (uklju�uje proizvo�a�ekartica i programere korisni�kih

aplikacija)

Slika 5.2 Arhitektura Java Card pametne kartice

54

5.2.3.1 Java Card izvršna okolina Sve su Java Card pametne kartice potpuno kompatibilne s Java Card specifikacijom koja je specificirana od Sun Microsystems grupe. Izvršna okolina omogu�uje izvršavanje Java Card karti�nih aplikacija. Java Card izvršnu okolinu �ine Java Card sustavske komponente na samoj pametnoj kartici (ne koriste se komponente na terminalu). Na terminalu se nalazi dio Java Card virtualnog stroja, programski alat za provjeru class datoteka i pretvara� class datoteka u CAP datoteke pogodne za u�itavanje na karticu. JCRE je odgovorna za upravljanje karti�nim resursima, mrežnom komunikacijom, za izvršavanje karti�nih aplikacija i za sigurnost karti�nih aplikacija. No njena osnovna uloga je uloga operacijskog sustava pametne kartice. Kao što je prikazano na slici 5.2, JCRE se nalazi iznad sklopovlja (hardware-a) pametne kartice i iznad izvornog operacijskog sustava. JCRE elegantno odvaja karti�ne aplikacije od specifi�nih tehnologija proizvo�a�a pametnih kartica i osigurava standardizirani sustav i su�elje za karti�ne aplikacije. Kao rezultat, karti�ne aplikacije je jednostavnije i lakše pisati za razli�ite arhitekture.

Dijelovi Java Card izvršne okoline (JCRE) su:

1. Java Card stogovni stroj (JCVM) 2. Java Card API (engl. Application Programing Interface) 3. Su�elje otvorene platforme (OP API) 4. Su�elje Visa otvorene platforme (opcija)

JCRE sadrži i neke servise specifi�ne za pametne kartice poput

dijeljenja objekata izme�u karti�nih aplikacija i odašiljanja APDU-a izme�u razli�itih karti�nih aplikacija ili njihovih dijelova. Aplikacijski zaštitni zid (applet firewall) omogu�ava me�usobnu strogu i potpunu izolaciju u�itanih karti�nih aplikacija (ne mogu me�usobno dijeliti polja, podatke, objekte i metode).

Java stogovni stroj na osobnom ra�unalu ili radnoj stanici izvršava se kao proces operacijskog sustava. Podaci i objekti se kreiraju u RAM-u. Kada proces završi s radom, Java aplikacije i njihovi objekti se automatski uništavaju. Na Java pametnoj kartici, Java stogovni stroj se izvršava unutar Java Card izvršne okoline. JCRE se inicijalizira samo jednom i to onog trenutka kad se kartica stavi u �ita�. Pritom se inicijalizira stogovni stroj i kreiraju objekti koji omogu�avaju JCRE servise i upravljanje karti�nim aplikacijama [14].

55

Ve�ina informacija na kartici mora biti o�uvana �ak i kad kartica nema napajanja, takvi podaci spremaju se u postojanu memoriju (EEPROM). Kad se ukloni napajanje zaustavlja se stogovni stroj, ali stanje JCRE-a i objekti kreirani na kartici ostaju sa�uvani. Sljede�i put kad se na karticu dovede napajanje, JCRE ponovno pokre�e izvršavanje stogovnog stroja te u�itavanje podatka iz postojane memorije (EEPROM-a). Treba napomenuti da JCRE ne nastavlja operacije stogovnog stroja na mjestu na kojem je stogovni stroj stao kad je kartica ostala bez napajanja. Stogovni stroj se ponovno pokre�e. Prekid sjednice JCRE se razlikuje od JCRE inicijalizacije po tome što karti�ne aplikacije i objekti kreirani na kartici ostaju sa�uvani. Za vrijeme nove sjednice, ako transakcija prethodno nije završila, JCRE izvodi potrebno �iš�enje (vra�a se u konzistentno stanje).

Razdoblje izme�u vremena kad je kartica stavljena u CAD ure�aj i priklju�ena na napajanje, i vremena kad se kartica ukloni iz CAD-a, naziva se CAD sjednica. Za vrijeme CAD sjednice JCRE radi kao obi�na pametna kartica – podržava APDU I/O komunikaciju s aplikacijom terminala (slika 5.3).

Slika 5.3 CAD sjednica

Ponovnim uspostavljanjem sjednice (JCRE reset) JCRE ulazi u petlju, i �eka APDU naredbu od terminala. Terminal šalje APDU naredbe Java Card platformi koriste�i su�elje serijske komunikacije karti�nog ulaznog/izlaznog kontakta. Kad stigne naredba, JCRE ili odabire karti�nu aplikaciju za izvo�enje, na što upu�uje pristigla naredba, ili proslje�uje naredbu trenutno aktivnoj, odabranoj karti�noj aplikaciji. Odabrana aplikacija preuzima kontrolu i obra�uje APDU naredbu. Po završetku šalje odgovor terminalu i predaje kontrolu JCRE-u. Taj proces se ponavlja kad stigne sljede�a naredba.

56

5.2.3.2 Java Card stogovni stroj

Java Card stogovni stroj (JCVM) je pojednostavljena ina�ica Java stogovnog stroja (JVM) prilago�ena pametnim karticama. Tako se Java Card aplikacije mogu izvršavati na bilo kojoj pametnoj kartici koja podržava JCVM, nezavisne su o sklopovskim komponentama na kojima se izvršavaju i pojedine aplikacije se mogu izvršavati na pametnim karticama razli�itih proizvo�a�a.

class datoteke

Provjera koda

Konverter

Izvankarti�ni JCVM

Interpreter

CAPdatoteka

U�itavanje datoteka

Karti�ni JCVM

Slika 5.4 Struktura JCVM

Java Card stogovni stroj dijeli na dva dijela (slika 5.4). Prvi dio se

nalazi na terminalu na kojeg je spojen �ita�. Sastoji se od programskog alata za provjeru koda i alata za pretvorbu koda u byte-kod. Byte-kod se kasnije u�itava na pametnu karticu pomo�u programskog alata za u�itavanje. Drugi dio je dio koji se nalazi na kartici – sadrži byte-kod interpreter i alat za upravljanje sigurnoš�u.

57

5.2.3.3 Java Card API Java Card API razredi definiraju funkcionalnost razvijenu od Java Card razvojnog tima, potrebnu aplikacijskim programerima. API uklju�uje vrlo mali podskup standardnih Java razreda (java.lang.Object i nekoliko razreda za iznimke). Izme�u ostalog, API definira i konvencije preko kojih karti�ne aplikacije pristupaju JCRE-u i nativnim metodama, uklju�uju�i i funkcionalnost operacijskog sistema, pristup memoriji i I/O operacije. Uklju�uje pakete posve�ene upravljanju kriptografskim klju�evima i raznim kriptografskim izra�unavanjima:

- Java.lang - Java Card.framework - Java Card.security - Java Card.crypto

5.2.3.4 Otvorena platforma VOP (engl. Visa Open Platform) je okruženje za upravljanje pametnim karticama koje na sebi sadrže više karti�nih aplikacija. Omogu�uje potpuno sigurno i nezavisno upravljanje pojedinim aplikacijama. Otvorena platforma se sastoji od sljede�ih komponenti:

- naredbi za upravljanje karticom nakon inicijalizacije - naredbi za u�itavanje i instaliranje karti�nih aplikacija - naredbi za upravljanje sigurnoš�u kartice, uklju�uju�i naredbe za

kreiranje klju�eva i stvaranje sigurnog kanala izme�u kartice i terminala

- naredbi za siguran rad i komunikaciju �ita�a i terminala

Isto tako otvorena platforma sadrži specifikaciju koja definira razli�ite životne cikluse kartice, karti�nih aplikacija te aplikacije terminala. Ovdje se pod razli�itim životnim ciklusima karti�nih aplikacija za vrijeme životnog ciklusa kartice misli na slu�ajeve kada je kartica priklju�ena na �ita�, ali se unutar tog vremena izvrši više karti�nih aplikacija (imaju razli�ito trajanje, u vremenu izme�u jednog umetanja i va�enja kartice iz �ita�a) [14].

58

6. Primjer razvoja karti�nog sustava

Razvijeni sustav „HealthCard“ namijenjen je uporabi u sustavu zdravstva. �ine ga programi koje koristi osiguravaju�e društvo (zavod), programi koje koristi lije�nik (ili ljekarnik) te podaci o korisniku i programi pohranjeni na pametnoj kartici. Me�udjelovanje pojedinih dijelova sustava prikazano je na slici 6.1.

Osiguravaju�edruštvo

Korisnik

Pametna kartica

Baza podatakaHealthProviderDB

HealthInsuranceProvider- u�itavanje programa nakarticu- inicijalizacija kartice- personalizacija kartice- izdavanje kartice korisniku

Lije�nik

2

Baza podatakaHealthDoctorDB

HealthDoctor- evidencija podataka o korisnicima- izdavanje recepata (uputnica, i sl.)- pohrana podataka na karticu i ubazu podataka

Korisnik

HealthCard

Slika 6.1 Struktura prezentacijskog sustava za pametne kartice HeallthCard

Prezentacijski sustav sastoji se od:

- aplikacije terminala HealthInsuranceProvider i baze podataka o

korisnicima zdravstvenog osiguranja HealthProviderDB

- aplikacije terminala HealthDoctor i baze podataka o pacijentima i njihovim dokumentima (receptima, uputnicama itd.) HealthDoctorDB

- karti�ne aplikacije HealthCard

59

6.1. Aplikacija terminala HealthInsuranceProvider

Osiguravaju�e društvo (zavod za zdrastveno osiguranje) izdaje pametne kartice korisnicima zdrastvenog osiguranja pomo�u aplikacije terminala HealthInsuranceProvider. Namjena te aplikacije je:

- u�itavanje karti�ne aplikacije na (praznu) pametnu karticu - inicijalizacija kartice – generiranje javnog i privatnog klju�a ECC-167

algoritma, te dijeljene tajne na kartici - personalizacija kartice – u�itavanje identifikacijskih podataka korisnika

zdrastvenog osiguranja - pohrana podataka o korisnicima u bazu podataka HealthProviderDB

Izgled aplikacije terminala prikazan je na slici 6.2.

Slika 6.2 Izgled aplikacije terminala HealthInsuranceProvider

U idu�im poglavljima ukratko se opisuju glavni dijelovi aplikacije

terminala HealthInsuranceProvider i korištenje aplikacije u trenutku izdavanja nove zdravstvene pametne kartice. Sve operacije mogu�e je pratiti u Log prozoru koji se uklju�uje/isklju�uje u glavnom izborniku odabirom stavki Postavke i Log box. Za klju�ne operacije pisanja i �itanja s kartice mjeri se vrijeme izvo�enja i tako�er ispisuje u Log prozoru.

60

6.1.1. Postavke aplikacije HealthInsuranceProvider

Za ispravan rad potrebno je aplikaciji definirati koji �ita� treba koristiti i postaviti parametre veze s bazom podatka o korisnicima. Definiranje �ita�a postiže se odabirom stavki Edit i Refresh u glavnom izborniku. Aplikacija pretražuje registrirane �ita�e i zahtjeva odabir �ita�a kojeg �ete koristiti (prikazano na slici 6.3).

Slika 6.3 Odabir korištenog �ita�a

Promjena �ita�a (ako ih ima više) mogu�a je i u osnovnom prozoru, pritiskom na prozor u kojem je ispisan naziv �ita�a (prikazano na slici 6.4). Nakon izbora �ita�a aplikacija se pokušava povezati s karticom. U slu�aju uspješnog povezivanja u prozoru Status ispisuje se ATR i stanje veze s karticom (slika 6.4).

Slika 6.4 Spajanje s odabranim �ita�em

Spajanje i odspajanje aplikacije terminala i kartice mogu�e je pokrenuti odabirom stavki Connect/Reconnect i Disconnect iz stavke File glavnog izbornika (stanje veze prikazuje se u prozoru Status). Izborom stavke Postavke i unutar nje Change Private Key mogu�e je promijeniti privatni (ujedno i javni) klju� aplikacije terminala (osiguravaju�eg društva) koji se koristi za generiranje dijeljene tajne na kartici.

Postavke veze s bazom podataka mogu�e je mijenjati odabirom stavki

Postavke i DataBase Connection glavnog izbornika. Parametri se postavljaju prema ra�unalu na kojem je poslužitelj s bazom podataka o korisnicima. Unutar prozora HealthInsuranceUser može se odabirom tipke Pretraživanje baze, pretraživati baza podataka o korisnicima po bilo kojem od polja (prezime, ime, JMBG...).

61

6.1.2. U�itavanje karti�ne aplikacije na karticu

Kada korisnik od osiguravaju�eg društva zatraži zdravstvenu pametnu karticu „HealthCard“, osiguravaju�e društvo praznu pametnu karticu puni programima potrebnima za njen rad (vidi poglavlje 6.3). U glavnom izborniku potrebno je odabrati stavku File i zatim Load. Prikazati �e se prozor u kojem se zahtjeva unos port number �ita�a pametnih kartica i stanje u koje se kartica postavlja nakon u�itavanja aplikacije. Stanja kartice su L – Load, P – Pers, T – Test i R – Run [4]. Stanje Load postavljeno je za vrijeme u�itavanja aplikacija na karticu, stanje Pers postavlja se kada se kartica personalizira (kad se upišu podaci o korisniku), stanje Test postavlja se za vrijeme testiranja sustava, a stanje Run se postavlja kad je karti�na aplikacija u cijelosti razvijena (više nisu mogu�e promjene i ponovna u�itavanja – kartica se zaklju�ava). Unosom port number i stanja kartice, otvara se dijalog za odabir datoteke za u�itavanje na karticu (prikazano na slici 6.5).

Slika 6.5 U�itavanje karti�ne aplikacije na karticu

Službenik osiguravaju�eg društva odabire karti�nu aplikaciju za

u�itavanje koja se zatim u�itava na karticu (briše se sadržaj EEPROM-a na kartici i puni novom karti�nom aplikacijom). Karti�na aplikacija definira pristup direktorijima i datotekama na pametnoj kartici (mogu� ako je uklju�ena AES enkripcija sjedni�kim klju�em br. 1). Idu�i korak je generiranje javnih i privatnih klju�eva (ECC-167 algoritam), te dijeljene tajne na kartici.

62

6.1.3. Inicijalizacija kartice

Inicijalizacija kartice uklju�uje generiranje javnog i privatnog klju�a te dijeljene tajne. Javni i privatni klju� korisnika zdravstvenog osiguranja generiraju se jednom u životnom ciklusu kartice (generiranje izvodi kartica). Privatni klju� nikad ne napušta karticu, za sva ostala potrebna izra�unavanja koristi se javni klju�. Dijeljena tajna (shared secret) se tako�er generira na kartici samo jednom iz javnog klju�a osiguravaju�eg društva (terminala) i javnog klju�a korisnika (kartice). Jednom kada je kartica inicijalizirana, komunikacija s karticom (upis i �itanje podataka korisnika) štiti se simetri�nim AES algorimom koji koristi 16 bajtni klju� sjednice.

Službenik osiguravaju�eg društva u glavnom izborniku odabire stavke

Korisnik i New (prethodno se aplikacija treba spojiti s karticom – vidi poglavlje 6.1.1.). Otvara se prozor HealthInsuranceUser u kojem treba odabrati tipku Inicijaliziraj karticu. Aplikacija pokre�e niz procedura potrebnih za inicijalizaciju, mjeri se vrijeme potrebno za generiranje klju�eva i dijeljene tajne na kartici i prikazuje u Log prozoru (prikazano na slici 6.6).

Slika 6.6 Inicijalizacija pametne kartice HealthCard

Za vrijeme inicijalizacije kartice pripremaju se objekti (varijable) kartice

za sigurnu komunikaciju kartice i �ita�a u idu�im koracima. Svako �itanje i pisanje podataka na karticu zapo�inje generiranjem sjedni�kog klju�a. Sjedni�ki klju� generira se iz javnog klju�a kartice (dobivenog ECC-167 algoritmom) i parametra derivacije klju�a (trenutno vrijeme kao znakovni niz). Ako i kartica i terminal uspješno postave sjedni�ki klju�, aplikacija terminala šalje kartici zahtjev za po�etak enkripcije. Nakon toga izvodi se �itanje ili pisanje podataka, te zaustavljanje enkripcije.

63

6.1.4. Upis korisni�kih podataka na karticu

Personalizacija kartice je unošenje osobnih podataka korisnika zdravstvenog osiguranja na karticu i u bazu podataka o korisnicima. Podaci o korisniku se na kartici spremaju kao polja bajtova (vidi poglavlje 6.3). Službenik osiguravaju�eg društva popunjava potrebna polja u prozoru HealthInsuranceUser i odabire tipku Upiši na karticu i u bazu. Aplikacija zapo�inje komunikaciju kriptiranu sjedni�kim klju�em, upisuje podatke o korisniku na karticu i završava sjednicu. U bazi podataka podaci se mijenjaju transparentno (bilo u slu�aju promjene podataka korisnika, bilo u slu�aju dodavanja novog korisnika). Primjer personalizacije kartice prikazan je na slici 6.7.

Slika 6.7 Unos osobnih podataka korisnika na karticu

Personalizirana kartica spremna je za upotrebu. Korisnik preuzima

karticu i kod prvog posjeta lije�niku po�inje prakti�na upotreba HealthCard pametne kartice.

64

6.2. Aplikacija terminala HealthDoctor

Lije�nik u svojoj ordinaciji posjeduje ra�unalo s �ita�em pametnih kartica i vezom prema bazi podataka HealthDoctorDB. Dolaskom pacijenta lije�nik postavlja dijagnozu i izdaje potrebne recepte, uputnice i sli�no. Aplikacija terminala (prikazana na slici 6.8) ima sljede�u namjenu:

- vo�enje podataka o korisnicima - vo�enje podataka o izdanim receptima - pisanje/brisanje recepata s kartice

Slika 6.8 Izgled aplikacije terminala HealthDoctor

U bazi podataka HealthDoctorDB pohranjuju se podaci o korisniku i

podaci o receptima izdanima za pojedinog korisnika. Postavke �ita�a i veze s bazom podataka potrebno je postaviti kao u aplikaciji HealthInsuranceProvider (vidi poglavlje 6.1.1.). Osnovni prozor aplikacije sastoji se od �etiri dijela (slika 6.8):

- osobni podaci korisnika - korišteni enkripcijski klju�evi i parametri - prikaz podataka o korisnicima iz baze HealthDoctorDB - prikaz podataka o receptima iz baze HealthDoctorDB

65

6.2.1. �itanje podataka korisnika s kartice

Pacijent po dolasku predaje svoju HealthCard pametnu karticu lije�niku, koji odabirom stavke Korisnik i podstavke Pro�itaj s kartice glavnog izbornika dobiva prikaz osobnih podataka pacijenta i dosad izdanih recepata. (slika 6.9). �itanje (i pisanje) podataka s kartice je kriptirano AES sjedni�kim klju�em (16 bajtova) istovjetno aplikaciji namijenjenoj osiguravaju�em društvu HealthInsuranceProvider (vidi poglavlje 6.1.3).

Slika 6.9 �itanje podataka s pametne kartice

Log prozor se koristi za pra�enje toka izvo�enja operacija

(prezentacija mogu�nosti pametnih kartica). Uklju�uje se kao i u aplikaciji osiguravaju�eg društva, odabirom stavke Postavke i unutar nje Log Box glavnog izbornika. Mjeri se vremensko trajanje operacija �itanja/pisanja i prikazuje unutar Log prozora.

66

6.2.2. Upis podataka na karticu i u bazu podataka

Ako lije�nik želi izdati recept, odabire stavku Dokument i unutar nje Novi recept (prethodno aplikacija mora biti spojena s karticom). Prikazuje se prozor Recept u kojem se popunjavaju polja s podacima o lijeku koji pacijent treba koristiti. Nakon unosa, odabirom tipke Spremi\Ispiši podaci o receptu spremaju se na karticu, u bazu podataka i, ako je potrebno, ispisuju na pisa�u (slika 6.10).

Slika 6.10 Unos podataka o lijeku

Recepti se na pametnu karticu spremaju kao datoteke (zašti�eni AES simetri�nom enkripcijom). U imenu datoteke nalazi se jednozna�na šifra koja odre�uje recept. Odlaskom kod ljekarnika i izdavanjem odre�enog lijeka, recept (datoteka) se briše s kartice, ušte�eno je dragocjeno vrijeme, izbjegava se papirologija, pove�ava jednostavnost i sigurnost korištenja. Recepti se brišu pojedina�no (stavka Obriši recept) ili svi (stavka Obriši sve)

67

unutar stavke Dokument glavnog izbornika. Brisanje se izvodi transparentno u bazi podataka i na kartici (ako je umetnuta u �ita� i spojena s aplikacijom).

6.2.3. Pretraživanje baze podataka korisnika

Kao i u aplikaciji namijenjenoj osiguravaju�em društvu omogu�eno je pretraživanje baze podataka i pregled rezultata. Pretraživanje zapo�inje odabirom stavke Korisnik i Pretraživanje baze. Otvara se prozor s poljima za unos podataka o korisniku kojeg želite prona�i (slika 6.11). Pretraga se izvodi prema bilo kojem polju (tj. prema ispunjenim poljima) i prikazuje rezultate u donjem dijelu aplikacije u kojem je prikaz baze podataka. Ako pretraga vra�a više rezultata, mogu�e ih je pregledavati – prijelazom na idu�i ili prethodni zapis, te „skakanjem“ na odre�eni zapis (potrebno je upisati redni broj željenog zapisa i pritisnuti tipku Sko�i na zapis).

Slika 6.11 Pretraživanje baze podataka o korisnicima

68

6.3. Karti�na aplikacija HealthCard

Karti�ne aplikacije (appleti, cardleti) se pišu na terminalu, u jeziku

kojeg podržava operacijski sustav kartice. Nakon prevo�enja u�itavaju se na karticu pomo�u naredbi ili gotovih alata (dobivenih od proizvo�a�a). Programeri karti�nih aplikacija trebaju se pridržavati pravila jezika u kojem pišu (podskup jezika Jave, podskup jezika Basic) i imati na umu da pametna kartica ima ograni�ene resurse. Sigurnosne opasnosti trebaju biti dobro definirane u fazi specifikacije sustava, kako bi se smanjila mogu�nost gubitka podataka.

Prijašnje pametne kartice su zahtijevale specijalizirani softver za

razvoj i stru�njaka za razvoj aplikacija koje su se u�itavale na karticu prilikom proizvodnje. Takvi su programi maskirani u kartici prilikom proizvodnje i ne mogu se mijenjati. Obi�no je aplikacija bila kodirana direktno u instrukcijski set CPU-a. Stoga je imala pristup cijeloj memoriji. Sigurnost je trebalo provjeriti prije prodaje, jer bi nadogradnja aplikacije iziskivala preveliki trošak (nakon puštanja kartica u prodaju). S pojavom novih tehnologija (Java Card, BasicCard), aplikacije se razvijaju s up-to-date razvojnim alatima i odmah u�itavaju na karticu. Stoga se aplikacije brzo razvijaju, u�itavaju i nadogra�uju nakon inicijalne prodaje kartice, a to pak uzrokuje brže vrijeme do pojave na tržištu (time to market) i znatno produžuje korisni vijek kartice.

Osnova sustava je karti�na aplikacija „HealthCard“. Na kartici su

pohranjeni podaci o korisniku osiguranja, javni i tajni klju�, dijeljena tajna te podaci o npr. lje�ni�kim receptima za lijekove koje korisnik treba kupiti u ljekarni. Podaci se na karticu u�itavaju iz aplikacija terminala „HealthInsuranceProvider“ i „HealthDoctor“ opisanima u prethodnim poglavljima. Podaci o korisnicima (i njihovim karticama) pohranjuju se u bazi podataka (na koju se mogu spajati aplikacije kojima to dozvoli zdrastveno osiguranje). Personalizacija kartice (povezivanje s odre�enim korisnikom) se obavlja na na�in da se uz osnovne podatke o korisniku generiraju javni i tajni klju� te dijeljena tajna. Javni klju� se uz ostale podatke o korisniku sprema u bazu podataka, a kartica se postavlja u stanje run. Zaštita komunikacije implementirana je upotrebom simetri�nog AES algoritma s 16 bajtnim sjedni�kim klju�em enkripcije. Sjedni�ki klju� se generira iz javnog klju�a kartice i parametra derivacije klju�a (radi jednostavnosti taj parametar je trenutno vrijeme kao znakovni niz).

Postupak razvoja karti�nog sustava temeljenog na BasicCard

tehnologiji sli�an je razvoju Java Card sustava. Specifi�nosti odabranog jezika odre�uju razlike u dizajnu (pogotovo u sigurnosnim pitanjima).

69

6.3.1. Razvojni put karti�ne aplikacije

Prema slici 6.12 tipi�an razvojni put karti�ne aplikacije po�inje pisanjem izvornog koda u ZBasic programskom jeziku. Razvojni alat osim datoteka s izvornim kodom (*.bas) i definicijskih datoteka (*.def), generira:

- projektnu datoteku (*.zcp)

- programsku datoteku terminala (*.zct) koja se sastoji od: o parametara prevodioca (predefinirane konstante, izvorni kod,

include datoteke) o izvršnih parametara (parametri naredbene linije, broj COM

port-a)

- programsku datoteku kartice (*.zcc) koja je zapravo virtualna BasicCard kartica i sastoji se od:

o parametara prevodioca (predefinirane konstante, izvorni kod, include datoteke)

o memorijskog EEPROM sadržaja virtualne kartice o broja COM port-a virtualnog �ita�a

Izvorni kod je mogu�e odmah prevesti pomo�u ZC-Basic prevoditelja

ili pokrenuti alat za ispravljanje koda (debugger). ZeitControl nudi dvije vrste alata za ispravljanje koda – karti�ni (ispravljanje koda karti�nih aplikacija) i terminalski (ispravljanje koda aplikacija terminala). Obje vrste kao izlaz daju datoteke (*.dbg) s podacima o greškama u kodu, a mogu se koristiti i istovremeno kao virtualna kartica i �ita� (time se olakšava traženje greške). Prilikom prevo�enja potrebno je specificirati ina�icu korištene BasicCard pametne kartice. Prevo�enjem se dobiva datoteka (*.img) pogodna za prijenos i pohranu na karticu ili za simulaciju. Alat za simulaciju može istovremeno pokrenuti prevedene karti�ne aplikacije, aplikacije terminala ili komunicirati s stvarnim �ita�em i karticom. Alat za u�itavanje podataka na karticu provjerava ima li na kartici dovoljno memorijskog mjesta i ina�icu kartice, a nakon u�itavanja postavlja karticu u jedno od pet stanja [4]:

- load – postavlja se za vrijeme u�itavanja karti�nih aplikacija - pers – postavlja se dok kartica nije personalizirana (povezana s

odre�enim korisnikom), a nakon u�itavanja karti�ne aplikacije - test – postavlja se za vrijeme testiranja kartice - run – postavlja se kad je kartica prošla sva testiranja i personalizirana

je, ovom stanju kartica dolazi u ruke korisnika, više nije mogu�e mijenjati karti�nu aplikaciju

70

Alat zau�itavanje na

karticuBCLoad

SimulatorZCMSim

Testiranje

ZBasic datoteke(*.zcp, *.bas, *.def,

*.zct, *.zcc)

Prevedene datoteke(*.img)

Upotreba karticeili simulatora?

Kartica Simulator

Prevo�enjeZC-Basic compiler

ZCMBasic

ZBasic razvojni alatZeitControl

Professional IDE

TerminalProgramDebbugerZCMTerm

BasicCardProgramDebuggerZCMCard

Debugg datoteke(*.dbg)

Debugg datoteke(*.dbg)

Potrebnoispravljanje

koda?

Slika 6.12 Razvojni put ZBasic karti�ne aplikacije

Testiranje karti�ne aplikacije se obi�no prvo izvodi sa simulatorom, jer je tako lakše otkriti greške same karti�ne aplikacije. Otkrivene greške se ispravljaju i karti�na aplikacija se ponovo u�itava na karticu. Kona�no, nakon ispravljanja grešaka karti�na aplikacija se testira s aplikacijom terminala (karti�na aplikacija je ve� testirana i lakše se otkrivaju greške nastale razvojem aplikacije terminala). Radi jednostavnosti, �esto se kao „podloga“ za novu karti�nu aplikaciju koristi neka posve jednostavna, a zatim se dodaju nove funkcionalnosti. Krajnji oblik tog na�ina razvoja bio bi dodavanje instrukcije po instrukciju, prevo�enje i integracija s aplikacijom terminala (nakon dodavanja svake instrukcije, prevesti i testirati s aplikacijom terminala).

71

6.3.2. Dizajniranje karti�ne aplikacije

Po�etak razvoja bilo koje programske aplikacije, pa tako i karti�ne aplikacije, treba zapo�eti fazom dizajna. U toj fazi se definira arhitektura karti�ne aplikacije, a obuhva�a sljede�e korake:

- specifikaciju funkcija karti�ne aplikacije - odre�ivanje i dodjeljivanje identifikatora naredbama koje �e karti�na

aplikacija mo�i izvršavati - dizajn strukture same karti�ne aplikacije - definiranje su�elja izme�u karti�ne aplikacije i aplikacije terminala

6.3.3. Specifikacija funkcija karti�ne aplikacije

Za primjer biti �e opisana ostvarena karti�na aplikacija „HealthCard“

koja omogu�ava siguran pregled i promjenu podataka o korisniku npr. zdravstvenog osiguranja. Podaci o korisniku se spremaju u postojanoj EEPROM memoriji kao polje znakova:

Eeprom User As String*250

Svi podaci o korisniku spremljeni su u jedan niz znakova. To�no zna�enje pojedinog znaka poznato je samo dizajneru sustava. Dekodiranje se izvodi u aplikaciji terminala. Osim podataka o korisniku u postojanoj memoriji kartice pohranjeni su podaci o stanju kartice (da li je personalizirana), dijeljena tajna (shared secret), te simetri�ni AES sjedni�ki klju�:

Eeprom Personalised = False

Eeprom SharedSecret As String

Declare Key 1(16)

Aplikacija terminala prepoznaje karti�nu aplikaciju pomo�u imena definiranog unutar karti�ne aplikacije:

Declare ApplicationID = ApplicationName$

Osnovni direktorij zašti�en je pravima pristupa – aplikacija terminala može pisati ili �itati iz njega samo ako je uklju�ena AES enkripcija sjedni�kim klju�em br. 1:

Dir "\" Read Lock Key=1 Write Lock Key=1 End Dir

72

6.3.4. Odre�ivanje naredbi karti�ne aplikacije

Karti�na aplikacija od aplikacije terminala dobiva zahtjeve za izvršenje naredbi. Naredbe se definiraju svojim razredom i instrukcijom unutar razreda (CLA i INS bajtovi – vidi poglavlje 3.2.). „HealthCard“ podržava sljede�e naredbe:

Declare Command &H20 &H00 GetCurve Declare Command &H20 &H01 GenerateKeyPair Declare Command &H20 &H02 SetPrivateKey Declare Command &H20 &H04 GetPublicKey Declare Command &H20 &H05 Sign Declare Command &H20 &H06 SetSharedSecred Declare Command &H20 &H07 SetSessionKey Declare Command &H80 &H00 WriteUser

Declare Command &H80 &H02 ReadUser

Na svaku APDU naredbu karti�na aplikacija odgovara �ita�u tako da

vra�a APDU odgovor (koji obavještava �ita� rezultatu poslane naredbe). Odgovor sadrži i statusne rije�i koje definiraju mogu�u grešku. Ovaj na�in komuniciranja naredba-odgovor se nastavlja sve dok se aplikacija terminala ne odspoji ili dok se kartica ne izvadi iz �ita�a.

6.3.5. Definiranje su�elja

Karti�na aplikacija koja se izvršava na kartici komunicira s aplikacijom

terminala preko �ita�a koriste�i parove APDU naredba-odgovor (Application Protocol Data Units). Zapravo, su�elje izme�u karti�ne aplikacije i aplikacije terminala je skup APDU naredbi koje su poznate i podržane od strane karti�ne aplikacije i aplikacije terminala. Za svaku APDU naredbu, karti�na aplikacija treba dekodirati polja APDU naredbe. Ako se koriste opcionalna polja, tako�er treba utvrditi njihov format i strukturu. Koriste�i te definicije karti�na aplikacija zna kako interpretirati svaku naredbu i pro�itati podatke. Pomo�u njih može izvršiti zadatak odre�en primljenom naredbom. Za svaki APDU odgovor, karti�na aplikacija bi trebala definirati skup statusnih rije�i (status words SW) koje pokazuju rezultat izvršavanja naredbe. Za normalan završetak izvo�enja, aplet šalje „succes“ (0x9000, prema ISO 7816). Ako do�e do greške, treba vratiti statusnu rije� koja definira interno stanje karti�ne aplikacije.

73

Const swNotPersonalised = &H6B00 Const swEncryptionRequired = &H6B02

Const swIssuingKeyRequired = &H6B03

Osim navedenih statusnih rije�i koje karti�na aplikacija vra�a sama, su�elje prema višem programskom jeziku (u ovom primjeru Visual Basic [6]) definira i skup statusnih rije�i koje signaliziraju uobi�ajene greške, poput krivog formata APDU naredbe.

6.3.6. Svojstva korištene pametne kartice

Razvoj aplikacije terminala i karti�ne aplikacije proveden je za ZeitControl Professional BasicCard pametnu karticu (revizija 5.4C) i PCSC USB �ita� ZeitControl CyberMouse ACR30U-CFC. Kartica koristi komunikacijski protokol ISO T=1 (opcionalno T=0), 16335 bajtova EEPROM-a i 686 bajtova RAM-a. Sigurnost je omogu�ena kroz kriptografske usluge i svojstva operacijskog sustava kartice koji ima ugra�enu podršku za ECC-167, AES, DES i SHA-1 enkripcijske algoritme.

Aplikacije terminala pisane su u Microsoft Visual Studio.NET – Visual Basicu. Korišteno je ZeitControl Visual Basic su�elje (Active X i Crypto Control) [6][7], ZeitControl Professional IDE razvojni alat i Microsoft SQL Server 7.0. Osobno ra�unalo na kojem je sustav razvijen je AMD Duron 1400 MHz s 256 MB RAM-a.

74

7. Zaklju�ak

Prezentacijski sustav HealtCard prikazuje jednu od mogu�ih primjena

pametnih kartica. Ostvarene aplikacije terminala i karti�na aplikacija �ine cjelinu koja obuhva�a sve radnje potrebne za jednostavno, sigurno i u�inkovito korištenje u sustavu zdravstva. Primjenom takvog sustava olakšan je posao lije�nicima, ljekarnama, specijaliziranim ustanovama za razne zdrastvene preglede, bolnicama i samim korisnicima – pacijentima. Pametna kartica koristi se kao identifikacija i mjesto pohrane dokumenata, skra�eno je vrijeme pojedine radnje (pregleda kod lije�nika, kupovine lijeka) bez potrebe za dosadašnjim papirnatim dokumentima. Sustav kao primjer koristi lije�ni�ki recept, ali mogu�e ga je proširiti novim primjenama poput pohrane rezlutata pregleda, uputnica ili klju�a vrata bolni�ke sobe.

75

8. Literatura

[1] W. Rankl, W. Effing: Smart Card - Hand Book, Second Edition, John Wiley & Sons, New York, 1999.

[2] Zhiqun Chen: Java Card Tehnology for Smart Cards, Addison-Wesley, US, 2000.

[3] Schlumberger: Hands On Java ™ Card Applet Development With Schlumberger

[4] Tony Guilfoye: BasicCard - The Compact, Enhanced, and Professional BasicCards, ZeitControl cardsystems GmbH, Minden Germany, 2003., dostupno na internet adresi: http://www.basiccard.com

[5] Tony Guilfoye: Professional BasicCard Datasheet, ZeitControl cardsystems GmbH, Minden Germany, 2003., dostupno na internet adresi: http://www.basiccard.com

[6] Michael Petig, Robert Kazimirski: BasicCard ActiveX Control – Visual Basic Programming Manual, ZeitControl Cardsystems GmbH, Minden Germany, 2002., dostupno na internet adresi: http://www.basiccard.com

[7] Michael Petig: BasicCard Crypto Control – Visual Basic Programming Manual, ZeitControl Cardsystems GmbH, Minden Germany, 2002., dostupno na internet adresi: http://www.basiccard.com

[8] Helmut Scherzer: SmartCard Operating System Potential risks and security countermeasures, IBM Germany Corp., Boeblingen, 2003., dostupno na internet adresi: http://ca.itsc.ruhr-uni-bochum.de/hgi/smaca/scherzer.pdf

[9] Brian Miller: BasicCards 101, Circuit Cellar, Issue 164, March 2004, dostupno na internet adresi: http://www.basiccard.com

[10] Anthony Cola: Security Is Not Child“s Play, Card Technology, August 2002., dostupno na internet adresi: http://www.basiccard.com

[11] Donald Davis: Battering Down A Barrier To Entry, Card Techlology, August 2002., dostupno na internet adresi: http://www.basiccard.com

[12] Ross Anderson, Markus Kuhn: Tamper Resistance – A Cautionary Note, Computer Laboratory, Cambridge University, Department of Computer Sciences, Purdue University, 1996., dostupno na internet adresi: http://www.cl.cam.ac.uk/users/rja14/tamper.html

[13] Cardwerk, Smarter Card Solutions, http://www.cardwerk.com

[14] Java Technology, http://java.sun.com

[15] JavaWorld, Fueling Innovation, http://www.javaworld.com

76

[16] Smart Card Security – GlobalPlatform Technology, http://www.gammassl.co.uk

[17] Smart Card Technology and Security, http://people.cs.uchicago.edu/~dinoj/smartcard/security.html

[18] IBM Research, http://www.research.ibm.com

[19] Cryptography Research, http://www.cryptography.com

[20] U.S. General Services Administration, Smart Card Standards and Interoperability, http://www.estrategy.gov/smartgov/smart_card.cfm

77

9. Sažetak

Ovaj diplomski rad prou�ava sigurnost pametnih kartica, mogu�e sigurnosne nedostatke i na�ine njihova otklanjanja. Uspore�uju se Java Card i BasicCard razvojne platforme. Prakti�ni (programski dio) �ine aplikacije terminala (Visual Basic) i karti�na aplikacija (ZBasic) namijenjene upotrebi u zdravstvu. Sustav omogu�ava u�itavanje karti�nih aplikacija na pametnu karticu, inicijalizaciju kartice (generiranje javnog i privatnog klju�a ECC 167 algoritmom, te dijeljene tajne), personalizaciju kartice (unos osobnih podataka korisnika), upisivanje, �itanje i brisanje dokumenata (lije�ni�kih recepata), te zaštitu komunikacije simetri�nim AES algoritmom. Podaci o korisnicima i dokumentima su pohranjeni u bazama podataka, jednostavno se mijenjaju, brišu i unose. Pametna kartica koristi se kao identifikacija korisnika i kao mjesto pohrane podataka umjesto dosadašnjih papira, upotreba je jednostavna, brza i sigurna.

78

10. Abstract

This work examines security of smart cards, their potential flaws and security countermeasures. It also compares two smart card platforms Java Card and BasicCard. It's practical part are terminal applications (VisualBasic) and card application (ZBasic), developed for use in healthcare. System enables downloading card applications on the smart card, initialization of smart card (generation of the public and private key with ECC 167 algorithm, setting shared secret on the card), personalization of smart card (entering personal user data on the card), writting, reading and deleting documents (medical prescriptions) and it uses secure communication (symmetric AES algorithm). User data and documents are stored in two databases, they are easy to update, delete or insert. Smart card is used as user identification and data storage, there is no need for papers, so it provides simple, fast and secure use.

79

Prilog: Kratice

ADM Administrative

AES Advanced Encryption Standard

AID Application Identifier

ALW Always

APDU Application Protocol Data Unit

API Application Programming Interface

ATR Answer to Reset

CAD Card Acceptance Device

CAP Java Card executable code format

CHV Card Holder Verification

CLK Clock

COM Component Object Model Implementation

COS Chip/Card Operating System

CPU Central Processing Unit

DES Data Encrytption Standard

DF Dedicated File

DFA Differential Fault Analysis

DOS Disk Operating System

DPA Differential Power Analysis

ECC Elliptic Curve Cryptography

EEPROM Electrical Erasable Programmable Read-Only Memory

EF Elementary File

etu Elementary time unit

GND Ground

GSM Global System for Mobile Communications

I/O Input/output

IBM International Business Machines

IC Integrated Circuit

IDEA International Data Encryption Algorithm

INF Information Field

IOP COM Interoperabilitiy COM

80

ISO/IEC International Organization for Standardization / International Electrotehnical Commission

ITRI Industrial Technology Research Institute

JCOP Java Card Open Platform

JCRE Java Card Runtime Enviroment

JCVM Java Card Virtual Machine

JVM Java Virtual Machine

LEN Length

LRC Longitudinal Redundancy Check

MAC Message Authentication Code

MF Master File

MPU Microprocessor Unit

NAD Nod Address

NEV Never

OSI Open Systems Interconnection

PCB Protocol Control Byte

PIN Personal Identification Number

PDA Personal Digital Assistant

PTS Protocol Type Select

PVC Polyvinyl Chloride

RAM Random Access Memory

RISC Reduced Instruction Set Computing

ROM Read-Only Memory

RSA Rivest-Shamir-Adleman

RST Reset

SCSUG Smart Card Security User's Group

SG-LFSR Shrinking Generator – Linear Feedback Shift Registers

SHA Secure Hash Algorithm

SIM Subscriber Identification Module

SPA Single Power Analysis

VCC Power supply voltage

VOP Visa Open Platform

VOP/SC Visa Open Platform Security Control

WAP Wireless Application Protocol

WTX Waiting Time Extension

XOR Exclusive OR

81