FER, ZEMRIS
>>Sigurnosni mehanizmi pametne kartice
Seminarski rad

Autor: Renato Barta
e-mail: smartcard@alfatec.hr

Dodatno:


Sadržaj

Sadržaj. 2

Sigurnosni mehanizmi pametne kartice.. 3

4.1 Klasifikacije napada i napadača.. 4

4.2 Napadi i mehanizmi obrane u fazi razvoja.. 7

4.2.1 Razvoj mikrokontrolera pametne kartice. 7

4.2.2 Razvoj operacijskog sustava pametne kartice. 8

4.3 Napadi i mehanizmi obrane u fazi proizvodnje. 9

4.4 Napadi i mehanizmi obrane u fazi korištenja kartice. 9

4.4.1 Napadi na fizičkoj razini 10

4.4.2 Napadi na logičkoj razini 21


Sigurnosni mehanizmi pametne kartice

Pametna kartica pruža podacima i programima sigurno okruženje. Kad količina napora da se pročitaju podaci s pametne kartice ne bi bila tako velika, kartica bi bila ništa više nego disketa s drugačijim sučeljem.

Praktički je nemoguće sagraditi potpuno siguran sustav, pa čak i potpuno sigurnu pametnu karticu. Ako napor utrošen na napad dostigne dovoljno visoku razinu, moguće je prodrijeti u bilo koji sustav i na njemu izvršiti neovlaštene promjene. Svaki potencijalni napadač svjesno ili nesvjesno procjenjuje dobit koju mu donosi uspješan napad. Vrijeme, novac i napor uloženi na provalu u sustav moraju biti vrijedni dobivene nagrade. Ako nagrada nije dostojna uloženog napora do napada nikad neće doći.

Sigurnost pametne kartice obuhvaća četiri komponente. Prva komponenta je tijelo kartice. Tijelo kartice implementira mnoštvo sigurnosnih obilježja, ne samo strojno-čitljivih i time podvrgnutih kontroli stroja, već i vizualno-čitljivih i time podvrgnutih kontroli čovjeka. Npr. to su hologrami, reljefna obilježja, ultraljubičasti tekst, laserska graviranja, itd. Tehnike implementacije sigurnosnih obilježja zajedničke su za sve tipove kartica, nisu specifičnost pametnih kartica. Preostale komponente – hardver čipa, operacijski sustav i aplikacija – štite podatke i programe kartičnog mikrokontrolera.

Slika 4.1 Klasifikacija sigurnosnih komponenti pametne kartice

Prisutnost navedenih komponenti i ispravnost rada njihovih obrambenih mehanizama jamči sigurnost pametne kartice. Ako kartica nije predmet ljudske verifikacije tada nije nužna komponenta tijela kartice. Dakako, preostale tri komponente su nužne u fizičkoj i logičkoj zaštiti kartice. Štoviše, ako i jedna od njih zataji ili ne zadovolji predviđenu razinu zaštite, pametna kartica postaje nesigurna. Kartične komponente tvore lanac sigurnosti pametne kartice. Ako se prekine jedna karika lanca puca cijeli lanac.

4.1 Klasifikacije napada i napadača

Osnovni problem svih informacijskih sustava predstavlja jednostavnost kopiranja i multipliciranja uspješnih napada. Zbog toga su izuzetno važne klasifikacije napada i napadača u cilju što jasnije procijene potencijalnih napada i potrebnih mjera u spriječavanju dotičnih napada. Iskustvo govori da je lakše zaštiti sustav od poznatog nego od nepoznatog tipa napada.

Klasifikacije napada

Napadi na pametnu karticu, s obzirom na razinu na kojoj su izvedeni, mogu se podijeliti na tri različita tipa napada: napadi na sociološkoj razini, napadi na fizičkoj razini i napadi na logičkoj razini.

Slika 4.2 Klasifikacija napada na pametnu karticu

Često se u praksi navedeni tipovi napada isprepliću. Napad na fizičkoj razini često rezultira kao priprema za napad na logičkoj razini (npr. napad diferencijalnom analizom pogrešaka).

Napadi na sociološkoj razini su primarno usmjereni na ljude koji rade sa pametnim karticama. To mogu biti kreatori čipa zaposleni u poluvodičkoj industriji, dizajner softvera ili u kasnijem životnom ciklusu kartice nositelj kartice. Ti napadi se samo djelomično mogu riješiti tehničkim mjerama, osnovna zaštita se provodi organizacijskim mjerama. Zaštita od tuđih pogleda prilikom utipkavanja PIN-a provodi se postavljanjem tipkovnice unutar vizualnih štitova. Atraktivnost napada usmjerenog na kartične programere znatno se smanji javnim objavljivanjem korištenih procedura ili provođenjem evaluacije programskog koda kod nepristranog ocijenivačkog tijela. U tom slučaju se sigurnost temelji samo na tajnosti korištenih ključeva, time znanje razvojnog programera prestaje biti meta napada. 

Napadi na fizičkoj razini obično zahtijevaju tehničku opremu jer je potrebno uspostaviti fizički pristup hardveru kartičnog mikrokontrolera. Napadi mogu biti statički, kad napajanje nije prisutno na mikrokontroleru, ili dinamički, kad se napad provodi za vrijeme rada mikrokontrolera. Statički fizički napad ne nameće vremenska ograničenja napadaču, on svoj posao može raditi u miru. Za razliku od statičkog, dinamički napad zahtijeva sofisticiranu opremu za mjerenje podataka s brzim odzivom na izmjerene podatke.

Najuspješniji napadi na pametne kartice provedeni su na logičkoj razini. Oni su plod ljudskog razmišljanja i strojnih operacija. Ova kategorija napada uključuje klasičnu kriptoanalizu, napade koji koriste poznate greške kartičnih operacijskih sustava i trojanske konje unutar izvršnog programskog teksta kartičnih aplikacija.

Sve gore navedene napade možemo podijeliti na pasivne i aktivne. Prilikom pasivnog napada napadač analizira kriptirani tekst ili kriptografski protokol, provodi mjerenja nad mikrokontrolerom, ali pritom ne vrši nikakve promjene. Za razliku od pasivnog napada, aktivnim napadom se vrše promjene, napadač se neovlašteno upliće u prijenos podataka i rad mikrokontrolera.

Slika 4.3 Klasifikacija tipova napada

Napadi se mogu klasificirati s obzirom na vremensko usklađivanje s fazama životnog ciklusa pametne kartice. Pojednostaviti ćemo faze životnog ciklusa pametne kartice na tri vremenska intervala: (a) razvoj, (b) proizvodnja, (c) korištenje kartice.

Slika 4.4 Klasifikacija napada s obzirom na vrijeme odvijanja napada

Napadi za vrijeme faze razvoja vezani su uz dizajn sustava, razvoj čipa, razvoj operacijskog sustava i generaciju aplikacija. Termin “proizvodnja” se odnosi na sve procese od proizvodnje poluvodičkih tiskanih pločica do personalizacije kartica i slanja kartica do krajnjih korisnika. Korištenje kartice počinje kad nositelj kartice dobije dodijeljenu karticu.

Posljedice napada i klasifikacija napadača

Da bi mogli procijeniti snagu i slabosti napada na sigurnost pametne kartice važno je poznavati moguće tipove napadača. Dva su osnovna tipa motivacije za napad. Prvi je pohlepa, odnosno novac, a drugi želja za statusom i slavom unutar određene “scene”. Sa stanovišta sistemskog operatera svejedno je da li je napad došao od lopova ili znanstvenika. Oba rezultiraju značajnim financijskim gubitkom i narušenom reputacijom sigurnosti sustava. U najgorem slučaju sustav se gasi, sve kartice se blokiraju i izdaju se nove kartice imune na napad. Takav proces kod velikih sustava s nekoliko milijuna kartica u uporabi može potrajati dulje od pola godine.

Slika 4.5 prikazuje klasifikaciju različitih tipova napadača baziranu na prethodnom razmatranju. Sva četiri tipa napadača mogu biti jednako opasni po kartični sustav a razlikuju se po svojim sposobnostima i mogućnostima.

Slika 4.5 Klasifikacija mogućih tipova napadača

Tipičan haker ima srednju razinu znanja o sustavu, kreativne ideje i grupu sličnih mu prijatelja. Obično ne posjeduje veliku količinu opreme i financijski je ograničen. Ako primjeni odgovarajući pristup može Internet kampanjom doći do značajne procesorske snage.

Unutrašnji napadač ima pristup hardverskim i softverskim komponentama. Posjeduje zavidnu količinu sistemskog znanja i upoznat je sa slabim točkama sustava. Unutrašnji napadač teško može ostati anoniman zbog malog broja potencijalnih unutrašnjih napadača.

Treću grupu potencijalnih individualnih napadača čine zločinci. Oni obično ne posjeduju visoku razinu tehničkog znanja ali ulažu veliku količinu energije u postizanje osobnog dobitka (najčešće financijskog).

Ne smije se zanemariti da potencijalni izvor napada predstavljaju i akademske institucije sa svim svojim studentima i profesorima. Oni obično nemaju specijalistička znanja unutrašnjih napadača ali zato posjeduju sumu vrijednosti generalno korisnog znanja. Imaju pristup velikoj bazi tehničke radne snage i odgovarajućim, tehnički adekvatno opremljenim laboratorijima.

Organizirane zločinačke organizacije predstavljaju potpuno drugačiji izvor napada na sustave pametnih kartica. Na osnovu dostupnih izvora novca i kriminalnih sredstava stječu znanje i tehničku opremu potrebnu za uspješan napad.

 

4.2 Napadi i mehanizmi obrane u fazi razvoja

Generalno se može reći, vezano za napade u fazi razvoja, da je pristup dotičnim uređajima i objektima izrazito težak i da je potrebna visoka razina stručnog znanja. Time je atraktivnost napada značajno umanjena, iako je potencijalna opasnost uspješnog napada u ovoj fazi i dalje prisutna zbog vrlo široke mogućnosti manipulacije hardverom i softverom.

4.2.1 Razvoj mikrokontrolera pametne kartice

Razvoj mikrokontrolera pametne kartice traje nekoliko mjeseci. U njemu sudjeluje mali broj osoba koji rade u strogo nadziranim objektima. Sustavi koji sudjeluju u razvoju čipa dio su nezavisne mreže fizički odvojene od ostatka svijeta. Dizajn čipa i njegovi mehanizmi zaštite daju se na testiranje nezavisnim organizacijama. Nezavisne organizacije detektiraju namjerne ili nenamjerne previde u sigurnosti sustava i time smanjuju mogućnost unutrašnjeg napada. Dakako, napadaču može biti atraktivno i znanje vezano za dizajnerske kriterije i raspored komponenti čipa. Na taj način saznaje koji su zaštitni mehanizmimi i detektori prisutni na čipu. To je vrlo korisno znanje za kasnije napade zasnovane na fizičkoj analizi čipa.

Zaštita: dizajnerske mjere

Mehanizmi zaštite od statičkih i dinamičkih napada moraju zaista funkcionirati. Senzori i drugi elementi zaštite od male su koristi ako ih se lako onemogući ili ako ne funkcioniraju u određenim okolnostima. Primjer je senzor na čipu mikrokontrolera koji ima toliko veliku površinu da ga se lako može uništiti iglom.

Vrlo je važno da se na čipu ne nalazi apsolutno niti jedan nedokumentirani mehanizam ili funkcija. Nedokumentirana obilježja često su nedovoljno istestirana i predstavljaju potencijalni generator pogrešaka. Prilikom evaluacije hardvera, jer nisu navedene u dokumentaciji, mogu se nenamjerno previdjeti i poslužiti za kasnije napade.

Zaštita: jedinstven broj čipa

WORM [1] memorija, uz senzore i zaštitne slojeve, predstavlja hardverski sigurnosni element mikrokontrolera. Često se takva memorija naziva OTP [2] memorija. Prilikom proizvodnje poluvodičkog čipa u WORM memoriju se upisuje jedinstveni broj čipa. To znači da svaki čip postaje jedinstven, odnosno može se unutar nekog sustava na nedvosmislen način identificirati pametna kartica. Broj čipa se koristi u derivaciji ključa. Isto tako broj čipa omogućuje generaciju “crne liste” kartica. Crna lista kartica se koristi za označavanje i uklanjanje sumnjivih kartica iz sustava.

Broj u orginalnom čipu se ne može promijeniti ali se programibilnim mikrokontrolerom može imitirati orginalni čip. Iz tog razloga sigurnosne mjere se ne mogu temeljiti na prisutnosti broja dotičnog čipa, već se jedinstveni broj čipa koristi kao baza za prave kriptografske sigurnosne algoritme. Na primjer broj čipa se koristi prilikom derivacije tajnih ključeva koji se potom koriste prilikom upit-odgovor autentikacije.

4.2.2 Razvoj operacijskog sustava pametne kartice

Računala za razvoj zahtijevaju kompletno izoliranu mrežu, bez mogućnosti vanjskog pristupa. Razvojni alati, kao što su prevodilac i simulator, podvrgnuti su verifikaciji i testiranjima. Da se osigura ispravnost prevođenja često se koriste dva različita prevoditelja. Zabranjeno je korištenje softvera nepoznatog podrijetla.

Zaštita: Principi razvoja

Vrijeme razvoja operacijskog sustava se može značajno skratiti uvođenjem dodatnih naredbi operacijskog sustava u svrhu testiranja. Takve naredbe često mogu čitati vitalne dijelove kartične memorije zaobilazeći sigurnosne mehanizme. Ako se takve naredbe nepažljivošću ostave u operacijskom sustavu mogu kasnije poslužiti napadaču za čitanje tajnih ključeva pametne  kartice. Da se eliminira mogućnost takvog napada principijelno se zabranjuje kreiranje testnih, svemogućih naredbi.

Programeri nikad ne smiju raditi sami na projektu. Time se smanjuje mogućnost unutrašnjeg napada. Periodično se provode izvještaji nad izvornim kodom što osigurava kvalitetu koda i omogućava kontrolu razvojnog procesa.

Sa završetkom razvoja operacijskog sustava kartice cijeli se izvorni kod i njegove funkcije daju na testiranje nezavisnim tijelima kao dio evaluacije kartičnog softvera. Glavni razlog tog obično skupog i dugotrajnog procesa leži u otkrivanju programerskih grešaka i u otkrivanju mogućeg Trojanskog konja, sakrivenog od strane razvojnog programera, u operacijskom sustavu.

Zaštita: dijeljenje znanja

Ako nekoliko osoba radi na zadatku rezultat će biti značajno otporniji na napad zbog raznolikosti njihovih ideja i iskustava. Princip podijeljenog znanja (dijeljenje tajni) suprostavljen je principu da svatko zna sve o svemu. U razvoju sigurnosnih komponenti ne smije se dozvoliti da kompletno znanje o komponenti pripadne pojedincu, jer bi takav pojedinac bio meta potencijalnog napada.

Sigurnosni efekt dobiven dijeljenjem znanja može se vidjeti na načinu na koji je izvedena posljednja faza implementacije operacijskog sustava pametne kartice. U njoj se u EEPROM memoriju učitavaju tablice, programski kod i konfiguracijski podaci. Proizvođač kartica, odnosno proizvođač čipa koji dobiva finalni ROM kod za produkciju proizvodnih maski, nema kompletno znanje o operacijskom sustavu jer mu nisu poznati dijelovi operacijskog sustava smješteni u EEPROM-u. Analizom ROM koda ne može u potpunosti otkriti sigurnosne mehanizme i funkcije operacijskog sustava.

 

4.3 Napadi i mehanizmi obrane u fazi proizvodnje

Napadi u fazi proizvodnje kartičnog čipa su tipično unutrašnji napadi zbog zatvorenosti proizvodne okoline. Svaki pristup se strogo kontrolira i bilježi. Usprkos tome moguće je izvesti vrlo efikasne i tehnički zanimljive napade ako se ne poduzmu određene sigurnosne mjere.

Zaštita: autentikacija u završnim koracima

Već u ranoj fazi proizvodnje mikrokontroler čipa se imenuje brojem čipa i zaštićuje transportnim kodom. Transportni kod je u današnjim operacijskim sustavima specifičan za pojedini čip a autentikacija čipa nezaobilazan dio svakog pristupa procesu finalizacije čipa. Iako to podiže troškove i trajanje finalizacije i zahtijeva sigurnosni modul za svaki stroj koji participira u tom procesu, time se značajno podiže razina sigurnosti.

Mogući tip napada u procesu finalizacije bi bio opskrbljivanje pametnih kartica lažnim čipovima koji u potpunosti imitiraju orginalne čipove ali dodatno uključuju i svemoćne naredbe za čitanje memorije. Takav tip napada može se prikazati na primjeru pametne kartice za digitalno potpisivanje. Napadač prije inicijalizacije kartice zamijeni izvornu pametnu karticu lažnom pametnom karticom. Lažna kartica se inicijalizira izvornim podacima i kasnije personalizira. Takva kartica ima sve funkcije orginalne pametne kartice. Njen mikrokontroler generira PKI ključeve koristeći podatke dobivene procesom inicijalizacije i personalizacije. Nakon toga napadač ponovno mora doći u posjed lažne pametne kartice. Korištenjem svemoćnih naredbi lažne kartice saznaje tajni ključ. Napadač sad posjeduje sve podatke potrebne za produkciju duplikata kartica. Pošto je pripadni javni ključ potpisan od strane CA centra, što jamči orginalnost dotičnog PKI para ključeva, duplikati će biti prepoznati kao izvorne kartice.

Realno, takav napad je nemoguće realizirati zbog administrativnih mjera koje spriječavaju da se čipovi i pametne kartice donose ili odnose iz finalizacijskih stanica. Zamjena kartica ili čipova se dodatno onemogućava autentikacijom pametne kartice i sigurnosnog modula stroja u svakom koraku finalizacije.

 

4.4 Napadi i mehanizmi obrane u fazi korištenja kartice

Pristup pametnoj kartici najlakše je ostvariti nakon što je ona izdana. Rezultat je, visoka vjerojatnost napada u fazi korištenja pametne kartice.

Oduvijek je bila prisutna zamisao samouništavajućeg mikrokontrolera kao efikasnog rješenja za sve tipove napada. Takvi sigurnosni moduli postoje i najčešće se koriste u vojne svrhe. Kod pametnih kartica se ne dopuštaju takve sigurnosne mjere iz nekoliko razloga. Pametna kartica nema svoj vlastiti, rezervni izvor energije, energiju crpi iz vanjskog izvora. Kad vanjsko napajanje nije prisutno kartica ne može prepoznati potencijalni napad i ne postoji mogućnost bilo kakve vrste aktivnog obrambenog mehanizma. Odvojeno od toga, u nekim slučajevima postoje i zakonski razlozi koji onemogućuju primjenu samouništenja kartica. Npr. tko će biti odgovoran za gubitke nastale zbog neispravnog samouništenja kartice uslijed nepredviđenih okolnosti?  Zapravo, pravo samouništenje često nije potrebno, dovoljno je izbrisati tajne ključeve.

Pametna kartica teško može prepoznati da je napadnuta. Jednostavno ne postoji senzor koji bi kriknuo: “Napad! Sve izbriši!”. Preniska naponska razina ili povišena frekvencija takta mogu biti znak napada, ali isto tako se mogu pojaviti u normalnom radu uslijed nekih nepredviđenih vanjskih uvjeta, npr. uprljani kontakti stvore visoki kontaktni otpor što rezultira niskom razinom operativnog napona. Zbog toga, što je tako teško prepoznati stvarni napad, mehanizmi za automatsko blokiranje kartice i brisanje ključeva se najčešće ne koriste.

U sljedećim poglavljima opisati će se i objasniti klasični napadi na sigurnost pametne kartice. Oni ne predstavljaju prijetnju sigurnosti današnjih pametnih kartica jer su poznati već neko vrijeme, javni i protiv njih su postavljeni odgovarajući mehanizmi obrane. To ne znači da ih treba ignorirati, naprotiv, razumijevanje tih napada predstavlja bazu znanja za borbu protiv potencijalnih budućih napada i istodobno spriječava ponavljanje prošlih grešaka.

Napadi se dijele na napade usmjerene direktno na hardver čipa i na napade izvedene na logičkoj razini, usmjerene na sustav pametne kartice. Fizički napadi i analitičke metode mogu se podijeliti na statičke i dinamičke napade, ovisno o tome da li prilikom napada čip miruje ili je aktivan.

4.4.1 Napadi na fizičkoj razini

Manipulacije na razini poluvodiča zahtijevaju visoku razinu stručnog znanja i sofisticiranu opremu. To umanjuje mogućnost potencijalnog napada na fizičkoj razini, ali ga ne uklanja. Za pretpostaviti je da postoji potencijalni napadač sa svom potrebnom opremom i sredstvima za takvu vrstu napada. Stoga proizvođači kartica moraju ugraditi odgovarajuću zaštitu u kartične sklopove.

Slika 4.6 Klasifikacija napada na kartični mikrokontroler na fizičkoj razini

Da bi se izveo napad na fizičkoj razini potrebno je izvaditi modul čipa iz tijela kartice. To se može učiniti oštrim nožem. Zatim se sa čipa uklanja zaštitni plastični sloj [3] . Anderson i Kuhne (literatura [5]) su to učinili uz pomoć nitratne kiseline i infracrvene svjetlosti. Nakon opisanog postupka čip je slobodan i još uvijek u potpunosti operabilan. Napadaču takav čip može izgledati nezaštićen poput otvorene knjige no to je samo privid. On još uvijek mora savladati mnoštvo sigurnosnih mjera da dođe do mogućnosti pristupa tajnim podacima.

Sigurnosne mjere implementirane u sklopovima mogu se podijeliti na pasivne i aktivne elemente. Pasivni elementi su direktno bazirani na tehnikama poluvodičke proizvodnje. Oni uključuju i sve procese koji štite memorijska područja i druge funkcionalne dijelove mikrokontrolera od različitih tipova analiza. Na poluvodičkom čipu se nalazi i skup aktivnih elemenata koji upotpunjuju pasivnu zaštitu. Pojmom aktivne zaštite označavamo integraciju aktivnih elemenata, različitih tipova senzora, u silicijski kristal. Te senzore prema potrebi proziva i provjerava operacijski sustav pametne kartice. Mjerenje i obrada signala pristiglih od senzora moguća je jedino ako je na čipu prisutno napajanje. Senzor sa  svojstvom  svjetlosne osjetljivosti, zadužen za otkrivanje optičke analize, neće reagirati ako se čip nalazi na predmetnom stakalcu optičkog mikroskopa bez prisustva napajanja i signala takta. Osim toga takav senzor je na površini čipa lako vizualno identificirati, kapnuti na njega kap crne tinte i na taj način neutralizirati njegovu zaštitnu funkciju.

Sljedeća poglavlja će objasniti najvažnije i najčešće korištene zaštitne mehanizme mikrokontrolera pametne kartice.

Statička analiza mikrokontrolera pametne kartice

Zaštita: tehnologija proizvodnje poluvodiča

Strukture čipa su toliko fine i malih dimenzija (tehnologije proizvodnje idu ispod 1 μm) da je praktički nemoguće analitičkim procedurama izvući iz njih informacije.

Slika 4.7 Fotografija poluvodičke strukture i ljudske kose

Zaštita: dizajn čipa

U dizajnu čipa pametne kartice zabranjeno je korištenje standardnih ćelija razvijenih za masovnu proizvodnju poluvodičkih komponenti. Standardne ćelije omogućuju proizvođaču poluvodiča da brzo proizvede široku paletu kvalitetnih čipova ali istodobno smanjuju razinu sigurnosti čipa pametne kartice. Njihov dizajn i funkcionalnosti su javno poznate što dakako potencijalnom napadaču olakšava napad.

Zaštita: lažne strukture

Lažne strukture su elementi poluvodiča koji nemaju stvarnu funkcionalnost, namjenjene su da zbune  i zavedu napadača. Pripadajuća sigurnost oslanja se na tajnost njihovih lokacija. Lažne strukture se mogu nadzirati tako da se njihove promjene detektiraju i uzrokuju gašenje čipa. Njihov glavni nedostatak je što zauzimaju dodatni prostor na čipu.

Zaštita: sabirnice čipa

Sve sabirnice koje povezuju procesor s tri različita tipa memorije su interne sabirnice čipa, ne izlaze izvan čipa. To znači da je direktan priključak na te sabirnice nemoguć i stoga je nemoguće prisluškivanje i manipuliranje signalima sabirnice u cilju iščitavanja sadržaja memorije. Dodatna zaštita postiže se kodiranjem sabirnica tako da je funkcija pojedinačne linije sabirnice izvana neprepoznatljiva.

Zaštita: dizajn memorije

Sadržaj ROM memorije korištene u industriji može se čitati bit po bit korištenjem optičkog mikroskopa. Takav tip analize kod pametnih kartica se spriječava smještanjem ROM koda u donje slojeve čipa. Međutim, raznim metodama urezivanja može se ipak doći do ROM ćelija. Zato se kod mikrokontrolera pametnih kartica isključivo koristi specijalan, ionski usađen ROM čiji se sadržaj ne može pročitati niti vidljivom niti ultraljubičastom svjetlošću.

Zaštita: zaštitni slojevi

Informacijama skupljenim analizom električnog potencijala aktivnog čipa moguće je izvesti zaključke o trenutnom sadržaju RAM memorije. Zaštita se postiže smještanjem vodljivih metalnih slojeva na vrh dotičnih memorijskih ćelija. Ti slojevi se koriste u distribuciji napajanja, stoga ako se uklone, npr. kemijskim urezivanjem, čip postaje neupotrebljiv. Također se prati njihov električni otpor tako da čip automatski prestaje s radom ako dođe do oštećivanja zaštitnog sloja. Ispod zaštitnih slojeva nalaze se i fototranzistori koji dodatno detektiraju njihovo uklanjanje.

Napad i obrana: čitanje sadržaja izbrisive memorije

Poznato je da sadržaj RAM memorije ne ostaje sačuvan kad se ukloni napajanje. Međutim, ako se memorijske ćelije ohlade ispod –60°C sadržaj RAM ćelija ostati će perzistentan i kad se ukloni napajanje. Stoga se tajni ključevi ne bi smjeli nepotrebno držati u RAM memoriji, iza njihovog prisustva u RAM memoriji treba slijediti brisanje ili prepisivanje memorije novim vrijednostima.

Čitanje sadržaja RAM ćelija je tehnički teško izvedivo i zahtijeva sofisticiranu opremu. Ipak ono je moguće, ali treba znati da bi se ćelije mogle podvrgnuti takvoj analizi sa njih se mora ukloniti zaštitni pasivizacijski sloj i ispod njega zaštitni metalni slojevi. Uklanjanje zaštitnih metalnih slojeva nepovratno uzrokuje uništavanje RAM ćelija jer je dio njihove funkcionalnosti ugrađen u te slojeve. Time se efikasno neutralizira ovakav tip napada.

Zaštita: kodiranje memorije

Najčešća metoda zaštite memorije čipa mikrokontrolera je kodiranje memorije. Sigurnost ove tehnike temelji se na tajnosti primjenjene mape kodiranja. Bez te informacije napadaču je izuzetno teško otkriti nači adresiranja memorijskih ćelija. Ako se kodiranje izvodi programski, mapa kodiranja može biti specifična za pojedini čip pa čak i dinamička, mijenjajući se od sjednice do sjednice.

Slika 4.8 Usporedba klasične memorije s kodiranom memorijom

Napad i obrana: kriptirana pohrana PIN-a

Napad, koji će se navesti, demonstrira klasični neefikasni mehanizam obrane. Pretpostavka je da napadač može uspješno pročitati sadržaj EEPROM memorije. Osnovna ideja obrane je da se napadaču spriječi saznanje vrijednosti PIN-a, na način da se PIN kriptira jednosmjernom funkcijom. Prilikom krptiranja jednosmjerna funkcija koristi ključ specifičan za karticu tako da referencijalni podaci za dva ista PIN-a budu različiti za različite kartice. Sada, ako je i moguće pročitati referncijalni podatak, čini se nemogućim doznati pravu vrijednost PIN-a.

No, pametan napadač neće ni pokušati iz kriptirane vrijednosti doznati pravu vrijednost PIN-a. On zna da se PIN najčešće sačinjavaju četiri decimalne znamenke što daje oko 10000 potencijalnih mogućnosti. Ako može čitati memoriju pametne kartice tada može i pročitati jednosmjernu funkciju i pripadni ključ. Nakon provedenih 5000 usporedbi (srednja vrijednost) kriptiranog ispitnog PIN-a i referentnog podatka saznati će pravu vrijednost PIN-a. U ovom slučaju kriptirana pohrana PIN-a ne predstavlja dovoljnu razinu zaštite.

Dinamička analiza mikrokontrolera pametne kartice

Zaštita: nadziranje pasivizacijskog sloja

Pasivizacijski sloj predstavlja završnu fazu proizvodnog procesa i gornji silicijski sloj mikrokontrolera. On spriječava oksidaciju i druge kemijske procese na površini čipa. Da bi bila moguća bilo kakva manipualcija čipom pasivizacijski sloj se mora ukloniti. Senzori na čipu izvode mjerenja otpora ili kapacitativna mjerenja da ustanove da li je pasivizacijski sloj još uvijek prisutan. Ako pasivizacijski sloj nije prisutan ili je oštećen, uzrokuju programski prekid ili čak i prekid rada kompletnog hardvera čipa. To predstavlja uspješnu zaštitu od bilo koje vrste dinamičke analize.

Zaštita: nadziranje naponske razine

Nadziranje naponske razine prisutno je u svakom mikrokontroleru pametne kartice. U slučaju da naponska razina prekorači dopuštene gornje i donje naponske razine provodi se strogo definirano gašenje čipa. To pruža softveru pametne kartice sigurnost stabilnog rada čipa. Kad nadziranje naponske razine ne bi bilo prisutno, mogući bi bili npr. nekontrolirani skokovi unutar toka programa uzrokovani nestabilnom vrijednošću programskog brojača. Može se jednostavno reći da rad čipa izvan specificirane naponske razine rezultira nizom generiranih greški. Takvo ponašanje čipa predstavlja bazu za određivanje tajnih ključeva tehnikom diferencijalne analize pogrešaka – DFA [4] .

Na čipu postoji još jedan senzor baziran na detektoru napona, osim gore navedenog koji prati naponske razine. Ovaj senzor, neovisno o reset signalu, kad prvi put detektira prisutnost napajanja postavi čip u definirano početno stanje. Time osigurava da čip ne izađe iz dozvoljenog skupa stanja.

Zaštita: nadziranje frekvencije takta

Brzinu procesiranja pametne kartice u potpunosti determinira vanjski signal takta. Teoretski to znači da zaustavljanjem signala takta možemo zamrznuti rad mikrokontrolera i analizirati njegovo izvođenje korak po korak. To su savršeni preduvjeti za mjerenje operativne potrošnje struje i električnog potencijala na površini čipa. Da se spriječe takvi napadi u čip se ugrađuje detektor frekvencije. On uklanja mogućnost spuštanja frekvencije takta ispod dozvoljene razine. U većini specifikacija ta minimalna frekvencija takta iznosi 1 MHz. Zbog tehničkih razloga detektor se najčešće izvodi sa širokim opsegom tolerancije tako da se rad čipa zaustavlja ispod 600 kHz.

Da bi se na pravilan način mikrokontroler pametne kartice zaštitio od jednokoračnog načina izvođenja potrebno je zaštitnim slojevima osigurati ispravan rad detektora frekvencije.

Zaštita: nadziranje temperature

Temperaturni senzor nalazi se u nekim čipovima, iako je upitna razina sigurnosti koja se dobiva njegovim ugrađivanjem. Ako temperatura nakratko prijeđe maksimalnu dozvoljenu razinu to neće uništiti čip niti se može reći da to predstavlja napad na mikrokontroler pametne kartice. Gašenje čipa u tim graničnim uvjetima može rezultirati umjetnim povećanjem postotka pogrešaka a operatoru kartičnog sustava ne pruža dodatnu sigurnost.

Zaštita: kodiranje sabirnica

U mnoštvu kartičnih mikrokontrolera primjenjuje se kodiranje internih sabirnica. To znači da linije pojedinačnih sabirnica ne leže jedna do druge u padajućem ili rastućem slijedu već su nasumce raspoređene i zamjenjene nekoliko puta, pa čak i rapoređene u nekoliko slojeva jedne ispod drugih. To predstavlja dodatnu prepreku potencijalnom napadaču jer ne zna koja linija sabirnice adresira koji bit ili funkciju.

Kodiranje sabirnica se u početku izvodilo statički, s istom mapom kodiranja za svaki čip. To je predstavljalo potencijalnu slabu točku jer je napadaču u nekom vremenskom periodu bilo muguće otkriti mapu kodiranja i tu informaciju iskoristi u prisluškivanju sabirnica na svim karticama unutar sustava. Razina sigurnosti postignuta tehnikom kodiranja sabirnica povećala se korištenjem kodirajuće mape specifične za pojedini čip. To nije postignuto proizvodnjom specifične maske za svaki čip jer je to trenutno tehnički nemoguće i preskupo, već  generatorom slučajnih brojeva smještenim tik iznad memorije. Najčešće je serijski broj čipa inicijalna vrijednost generatora slučajnih brojeva. Takva tehnika kodiranja sabirnica jednostavno se implementira u poluvodičkoj tehnologiji. Dodatno se još može mapa kodiranja učiniti dinamičnijom ako se za svaku sjednicu koristi varijabilna inicijalizacijska vrijednost generatora slučajnih brojeva.

Slika 4.9 Kodiranje sabirnica mikrokontrolera pametne kartice između memorije i CPU-a prikazano 8-bitovnom podatkovnom sabirnicom

Zaštita: nepovratno prespajanje iz testnog načina rada u korisnički način rada

Svi mikrokontroleri pametnih kartica koriste testni način rada još prilikom provjere čipova u procesu proizvodnje. Testni način rada koristi se također prilikom izvršavanja testnih programa. Pritom su dozvoljeni direktni pristupi memoriji, što ne smiju biti prisutno u kasnijoj korisničkoj fazi. Stoga prespajanje iz korisničkog u testni način rada mora biti nepovratno.

Prespajanje se može izvesti na čipu korištenjem silicijskog osigurača. Na ispitnu točku dovedemo napon koji otopi silicijski osigurač i na taj način izvrši sklopovsko prespajanje u korisnički način rada. Normalno, to je ireverzibilan proces. Ipak, osigurač predstavlja relativno veliku strukturu na površini čipa pa ga je moguće mehanički premostiti nakon što se ukloni dio pasivizacijskog sloja nad osiguračem. To bi stavilo mikrokontroler ponovno u testni način rada i potencijalnom napadaču omogućilo iščitavanje kompletne memorije pametne kartice i proizvodnju njenih duplikata. Da bi se obranila od takve vrste napada većina proizvođača koristi dio EEPROM memorije kao dodatni mehanizam prespajanja. Ako se u tom dijelu EEPROM-a locira određena nepromijenjiva vrijednost (WROM), čip je nepovratno prespojen u korisnički način rada. Sada ako se i premosti osigurač logička sklopka u EEPROM-u spriječava prespajanje u testni način rada.

Sigurnost prespajanja iz testnog načina u korisnički način rada može se dodatno povećati jednostavnim postupkom. Mikrokontroler čipa nalazi se na pločici s testnim dodatkom koji sadrži kontakte preko kojih se vrše testiranja čipa. Nakon završetka testiranja dodatak se jednostavno odsiječe od mikrokontrolera. U ovom slučaju nepotrebni su osigurač i logička sklopka u EEPROM-u jer dijelovi potrebni za testiranje više nisu prisutni. S današnjom tehnologijom nemoguće je uspostaviti ponovnu komunikaciju s čipom kroz odsječene kontakte na rubu čipa.

Dinamička analiza i mehanizmi obrane: prisluškivanje memorijskih sabirnica mikrokontrolera

Da bi prisluškivanje sabirnica između CPU-a i memorije mikrokontrolera bilo moguće mora se s površine čipa ukloniti pasivizacijski sloj. Pasivizacijski sloj štiti čip od oksidacije ali i od napada jer njegov integritet nadziru senzori na čipu. Prema Andersonu i Kuhnu (literatura [5]) on se može ukloniti florovodičnom kiselinom (testitranja su vršili nad standardnim mikrokontrolerima, specijalni mikrokontroleri pametnih kartica štite integritet pasivizacijskog sloja). Za selektivno otvaranje pasivizacijskog sloja koristi se laserski rezač.

Ako je napadač uspješno uklonio cijeli ili samo jedan dio pasivizacijskog sloja teoretski može mikroprobnim iglama uspostaviti kontakte na sabirnice. Uspješno izvedenom konekcijom može adresirati bilo koju ćeliju memorije i pročitati podatke a da čip pritom ne mora biti aktivan. Uspješan napad ovom metodom rezultirao bi otkrivanjem svih tajnih podataka na čipu. Štoviše s brzim logičkim analizatorom za vrijeme rada čipa mogla bi se snimiti kompletna komunikacija između memorije i CPU-a.

Izuzetno je teško na čipu ostvariti pojedinačni električni kontakt. Minimalni broj potrebnih kontakata za ovakav tip napada ovisi o broju postojećih sabirnica, 16 adresnih linija, 8 podatkovnih linija, 1-4 kontrolne linije, minimalno 25 linija. Čak i modernom mikrotehnologijom, zbog vrlo malih dimenzija poluvodičkih struktura, nemoguće je ostvariti 25 istodobnih konekcija. Ipak, korištenjem generatora fokusirane ionske zrake (alat koji se koristi u poluvodičkoj industriji) moguće je stvoriti vodljivu kontaktnu površinu za svaku liniju sabirnice i zatim na nju dovesti vrh mikroprobne igle. Procedura je složena a utrošeni napor ogroman.

Čak ako i napadač uspije ostvariti navedene konekcije, da bi mogao uspješno čitati podatke, još uvijek mora utvrditi na koji su način sabirnice kodirane.

Tehnologija prisluškivanja će u budućnosti doživjeti značajna poboljšanja u odnosu na trenutne metode prisluškivanja današnijih mikrokontrolera. No, treba znati da se ona temelji na mikromehaničkoj tehnologiji i da će uvijek zaostajati za poluvodičkom tehnologijom koja se temelji na optičkim metodama. To znači, da čak i u budućnosti, ovakav tip napada neće moći značajno ugroziti sigurnost pametnih kartica.

Dinamička analiza i mehanizmi obrane: mjerenje potrošnje struje CPU-a

Procesor pametne kartice mora imati podjednaku potrošnju struje za sve svoje strojne instrukcije. Paul Kocher i njegovi suradnici su 1998. objavili članak s temom jednostavne analize potrošnje – SPA [5] i članak s temom diferencijalne analize potrošnje – DPA [6] . Navedene analize se temelje na činjenici da se određeni dio tajne informacije može izvesti analizom potrošnje struje procesora dok izvodi instrukcije i procesira pripadajuće podatke.

Za vrijeme rada procesora, SPA analizom mjeri se pad napona otpornika serijski spojenog na Vcc kontakt. Mjerenje se izvodi brzim AD konvertorom, povezanim s osobnim računalom. Zbog kompleksnosti internih procesa, prilikom izvođenja instrukcija, samo se kod jednostavno dizajniranih CPU-ova izmjereni rezultati i njihove varijacije mogu dovesti u vezu s procesiranim instrukcijama i podacima.

DPA analiza je znatno moćnija. Kod DPA analize mjerimo potrošnju struje mikrokontrolera dok procesira poznate podatke i zatim dok procesira nepoznate podatke. Mjerenja se ponavljaju nekoliko puta. Uzimaju se prosječne vrijednosti da se eliminira efekat šuma. Kad se sva mjerenja završe obrađuju se izmjerene razlike. Iz dobivenih rezultata složenim algoritmom se izvlače zaključci vezani uz nepoznate podatke. Navedeni algoritam izuzetno je kompleksan, no javnim objavljivanjem i detaljnim obrazlaganjem njegova rada, postao je dostupan velikom broju potencijalnih napadača.

Potrošnja struje kod nekih mikrokontrolera zaista direktno ovisi o tipu izvedene instrukcije i podacima koje instrukcija procesira. Stoga, ako se ne provedu određene protumjere zaštite, navedeni tipovi analize predstavljaju ozbiljne oblike napada na sigurnost kartičnog hardvera i softvera. Protumjere koje se mogu poduzeti temelje se na hardverskim ili softverskim rješenjima. Najednostavnije hardversko rješenje predstavlja naponski regulator s brzim odzivom, smješten na čipu, čime strujna potrošnja mikrokontrolera postaje neovisna o izvedenoj instrukciji i pripadajućim podacima. Učinkovito rješenje je i postavljanje na čip umjetnih generatora strujnog šuma. Tehnički najkompliciranije rješenje je promjena dizajna procesora mikrokontrolera tako da mikrokontroler uistinu uvijek ima konstantnu potrošnju struje.

Slika 4.10 Pojednostavljeni prikaz potrošnje struje mikrokontrolera pametne kartice. Potrošnja struje ovisi o izvedenim strojnim instrukcijama.

Najednostavniji softverski pristup je korišenje samo onih strojnih instrukcija čija se strujna potrošnja značajno ne razlikuje od neke prosječne razine. Dodatno rješenje predstavlja skup različitih procedura koje se koriste u izvođenju istih računskih operacija unutar kriptografskih algoritama.  Selekcija pojedine procedure obavlja se slučajnim odabirom. To značajno otežava prepoznavanje korelacije između poznatih i nepoznatih instrukcija ili procesiranih podataka. Prikupljanje podataka potrebnih za DPA analizu može se otežati i na način da se svi tajni ključevi zaštite brojačima. Brojači broje neuspješne pokušaje autentikacije. Također, potrebno je blokirati slobodan pristup svim naredbama koje koriste tajne podatke kroz kriptografske algoritme pametne kartice. Ako je njihova upotreba nužna, pametna kartica prije izvršavanja takve naredbe mora provesti autentikaciju terminala. Navedena ograničenja dodatno otežavaju prikupljanje relevantnih podataka potrebnih za provođenje analize.

Analiza i mehanizmi obrane: mjerenje elektromagnetskog zračenja CPU-a

Teoretski je moguće iz mjerenja elektromagnetskog zračenja izvesti zaključke o unutarnjim procesima mikrokontrolera pametne kartice, slično kao kod DPA analize. No ta je tehnika silno komplicirana i zahtijeva poznavanje unutrašnje strukture poluvodičkog uređaja, što najčešće nije dostupno. Učinkovita zaštita se postiže slaganjem nekoliko poluvodičkih slojeva, jednih iznad drugih (pogledaj zaštitu kodiranjem sabirnica), tako da ako se i izmjeri magnetsko polje ne može se utvrditi koji sloj zapravo vodi pripadnu struju.

Manipulacija mikrokontrolera pametne kartice

Manipulacija i mehanizmi obrane: promjene sadržaja memorije mikrokontrolera pametne kartice

Možda i najočitiji scenarij napada predstavlja pokušaj direktnog čitanja memorijskog sadržaja mikrokontrolera. Također, podjednako snažan oblik napada su i namjerne promjene sadržaja memorije mikrokontrolera pametne kartice. Pritom se ne misli na raspršene slučajne greške u računskim procesima kriptografskih algoritama, što se koristi kao temelj napada diferencijalnom analizom pogrešaka (DFA), već na ciljane promjene određenih bitova ili bajtova u ROM ili EEPROM memoriji.

Promjene se mogu izazvati izlaganjem modula X-zrakama, time dolazi do promjena na svim tipovima memorija. Ćelije EEPROM memorije prazne se izlaganjem ultraljubičastoj svjetlosti i zauzimaju najniže energetsko stanje. Korištenjem fokusiranih zraka svjetlosti ili korištenjem laserske svjetlosti može se mijenjati sadržaj pojedinačnih memorijskih ćelija. Moguće promjene memorijskog sadržaja podloga su nekih teoretski uspješnih napada. Npr. moguća je manipulacija generatorom slučajnih brojeva tako da daje uvijek iste vrijednosti. To bi rezultiralo lažnom autentikacijom terminala i pametne kartice na osnovu prisluškivanih vrijednosti prethodnih autentikacija.

Ako je poznata točna lokacija DES ključa u EEPROM-u i ako je moguće modificirati pojedinačne bitove EEPROM memorije, moguće je iskoristiti te uvjete za izvođenje uspješnog napada. Napad se sastoji u postavljanju određenog bita DES ključa na 0 i zatim pozivanja naredbe koja koristi DES algoritam s modificiranim ključem. Ako povratni kod javi grešku pariteta u ključu znači da je bit bio orginalno postavljen na 1. Ako greška nije prijavljena bit je orginalno postavljen na 0. Procedura se ponavlja za preostalih 55 bitova i rezultira otkrivanjem tajnog ključa.

Da bi napadač mogao ciljano mijenjati pojedinačne bitove mora poznavati fizičke adrese podataka i programskog koda unutar memorije. Mora također poznavati pripadajuću mapu kodiranja dotične memorije. Dodatno se svi podaci i programski blokovi značajni za pitanje sigurnosti štite kontrolnim sumama koje se preračunavaju prilikom svakog njihovog korištenja. Napadač bi zbog toga morao ciljano mijenjati i odgovarajuću kontrolnu sumu modificiranih podataka. Da bi uopće moglo doći do navedenih manipulacija potrebno je neutralizirati sve zaštitne slojeve koji pokrivaju memoriju. Sva ta navedena razmatranja zajednički spuštaju razinu atraktivnosti ovakvog tipa napada na nulu.

4.4.2 Napadi na logičkoj razini

Glavni preduvjet napada na sigurnost pametne kartice na logičkoj razini odnosi se na razumijevanje komunikacijskog i informacijskog toka između terminala i pametne kartice. Važnije je shvaćanje softverskih procesa od procesa koji se izvode na razini hardvera.

Analiza: određivanje skupa naredbi pametne kartice

Instrukcijske klase i naredbe, podržane od pametne kartice, najčešće nisu publicirane, ali ih možemo odrediti jednostavnom procedurom pretraživanja. Procedura pretraživanje više je interesantna s obzirom na kompletno određivanje skupa naredbi nego da predstavlja napad na sigurnost pametne kartice.

Sljedi opis procedure korištene za određivanje skupa naredbi. Prvi korak je generiranje APDU naredbe i njeno slanje pametnoj kartici. Bajt klase u APDU bloku mijenja se od “00” do “FF”. Kad pametna kartica vrati odgovor koji je različit od oznake za nepodržanu naredbu odredili smo prvi bajt i determinirali pripadajuću instrukcijsku klasu (CLA bajt). Obično su podržane dvije ili tri instrukcijske klase. Daljnjom procedurom za svaku instrukcijsku klasu na isti način određujemo podržane instrukcijske bajtove (INS bajt).

Otkrivanje kompletnog skupa naredbi traje oko dvije minute. Prikazani algoritam može se dodatno ubrzati ako se koriste samo kodovi bajtova klasa koje dozvoljava ISO/IEC 7816-4 standard. Dodatno poboljšanje se postiže korištenjem samo parnih vrijednosti instrukcijskih bajtova jer su neparne vrijednosti rezervirane za Vpp kontrolnu informaciju koja se danas više ne koristi.

Razlog efikasnosti ovog jednostavnog algoritma leži u tome što gotovo svi interpreteri naredbi operacijskih sustava pametnih kartica provjeravaju pristigle naredbe počinjući s bajtom instrukcijske klase i redom nastavljajući daljnu provjeru bajtova. Čim se u tom slijedu bajtova pojavi nevaljani bajt, proces provjere se zaustavlja, generira se odgovarajući odgovor i šalje terminalu.

Pametne kartice koje nadziru slijed naredbi globalnim strojem stanja neće dopustiti opisanu proceduru pretraživanja podržanog skupa naredbi.

Prednost koju dobiva napadač primjenom ove metode možda se ne čini velikom jer skup naredbi obično nije tajan. No na ovaj način napadač vrlo brzo može odrediti da li je proizvođač operacijskog sustava ostavio u njemu nedokumentiranu naredbu.

Napad: prisluškivanje prijenosa podataka

Neznatno promjenjena pametna kartica može poslužiti u prisluškivanju prijenosa podataka, pritom vršeći željene manipulacije nad podacima. Potrebna modifikacija kartice sastoji se od ljepljenja  zasebnog lažnog kontakta na vrh I/O kontaktne površine modula pametne kartice tako da orginalno I/O sučelje terminala nije više povezano s orginalnim I/O kontaktom pametne kartice. Lažni kontakt je povezan s brzim računalom. Programiranjem odgovarajućeg odziva računalo može brisati ili umetati podatke u komunikacijski kanal između terminala i pametne kartice. Ako je računalo dovoljno brzo niti terminal niti kartica neće primijetiti razliku između normalne i modificirane komunikacije.

Očigledno je da se ovom metodom može značajno utjecati na izvođenje sjednice. Da li će napadač pomoću te metode izvući određenu korist i koliku, primarno ovisi o kartičnoj aplikaciji. Sigurnost dobro dizajniranog sustava neće biti narušena prisluškivanjem, brisanjem ili umetanjem podataka u komunikacijskom kanalu.

Slika 4.11 Alat s kojim se komunikacija terminal-kartica ekstendira izvan čitača terminala. Kontakti koji ulaze u terminal vide se desno a pločica za analizu nalazi se lijevo.

Da bi se zaštitili od napada realiziranog ovom metodom terminali koriste čitače koji prije nego što uspostave kontakt sa pametnom karticom spuštaju zaslone oko njenog čipa. Na taj način zasloni sjeku sve žice koje idu od čipa. Drugi tip zaštite postiže se korištenjem sigurne komunikacije ISO komunikacijskog modela (zaštita APDU poruka), čime se na pouzdan način detektiraju izvršene manipulacije.

Većina terminala je u praksi nadzirana što otežava korištenje modificiranih pametnih kartica povezanih s popratnim računalom. Može se zaključiti da iako teoretski ovakav tip napada izgleda privlačno i obećavajuće, u praksi ga je skoro nemoguće provesti i povrh toga, ako se provede, najčešće rezultira neuspjehom.

Napad i obrana: uklanjanje napajanja

Uklanjanje napajanja s čipa pametne kartice za vrijeme izvršavanja određene naredbe bio je donedavno uspješan tip napada kod mnoštva pametnih kartica. Pozadinu ovog napada čine ciklusi pisanja EEPROM stranica. Napad ćemo objasniti na sljedećem primjeru. U aplikaciji e-novčanika, ako se iznos pohranjenog novca poveća prije nego što se ažurira dnevnička datoteka [7] , prilikom izvršavanja naredbe punjenja e-novčanika napadač će imati dobru šansu besplatno napuniti e-novčanik pametne kartice. Mora samo u pravom trenutku (preciznost na razini milisekunde) prekinuti napajanje ili izvući karticu iz terminala. Iznos novca u e-novčaniku će biti promijenjen a u dnevničkoj datoteci neće postojati zapis transakcije. U prošlosti je kod nekih jednostavnih sustava ovakav napad bio moguć.

Međutim apsolutna zaštita se ne može postići čak i savršenim slijedom operacija pisanja. Npr. prilikom punjenja e-novčanika iz prethodnog primjera, prije ciklusa pisanja interno se izvršava ciklus brisanja EEPROM stranice. Ako izbrisano stanje EEPROM-a odgovara maximalnom iznosu e-novčanika, što je najčešće istina, tada samo treba prekinuti napajanje u pravom trenutku i novčanik će biti napunjen. Taj trenutak je nakon što završi operacija brisanja a ne započne operacija pisanja.

Dizajneri operacijskih sustava, da spriječe takav tip napada, koriste efikasne protumjere, atomarne procese. Karakteristika atomarnih procesa je da su nedjeljivi, izvršavaju se u potpunosti ili nikako. Oni predstavljaju potpunu zaštitu od gore opisanog napada.

Napad i obrana: strujna analiza za vrijeme usporedbe PIN-a

Napad na neku poredbenu vrijednost, kao što je PIN, može se izvesti kombinacijom fizičkih mjerenja i izmjenama logičke vrijednosti poredbenog parametra. Ovaj tip napada odnosi se na sve mehanizme koji šalju podatke pametnoj kartici na uspoređivanje s odgovarajućim vrijednostima. Vrijednosti brojača pokušaja se povećavaju ovisno o rezultatu usporedbe.

Napad se izvodi na principu mjerenja strujne potrošnje pametne kartice. Kad se kartici pošalje prikladna naredba zajedno s podatkom za usporedbu, moguće je prije nego što kartica vrati odgovor iz strujnih mjerenja otkriti da li je brojač pokušaja povećan. Slanjem svih mogućih kombinacija poredbenog podatka i prekidanjem kartičnog napajanja svaki put kad se mjerenjem detektira negativan rezultat usporedbe, može se otkriti orginalna vrijednost pohranjena na kartici.

Dva su osnovna načina obrane od ovakvog tipa napada. Najjednostavnija obrana se postiže da se prije usporedbe uvijek poveća brojač pokušaja, a nakon usporedbe se ovisno o rezultatu smanji. Sada brojač pokušaja ostaje uvećan neovisno o tome kad napadač prekine napajanje. Drugi način obrane je složeniji. Brojač pokušaja se uvećava slijedom negativne poredbe a slijedom pozitivne poredbe upisuje se u praznu EEPROM ćeliju. Oba ciklusa pisanja izvode se unutar procesa usporedbe u isto vrijeme tako da napadač ne može izvesti zaključke o rezultatu usporedbe. Rezultat saznaje tek kad pristigne odgovor od kartice u obliku povratnog koda, no tada je prekasno da se prekidom napajanja spriječi ciklus pisanja u polje brojača pokušaja.

Napad i obrana: vremenska analiza za vrijeme usporedbe PIN-a

Programeri uvijek ulažu velike količine napora na povećanje brzine izvođenja svojih programa. Činjenica da je vrijeme izvršavanja nekog procesa minimizirano može postati podloga vrlo uspješnom napadu. Kad se pošalje PIN pametnoj kartici na usporedbu, odgovarajuća programska procedura, zadužena za uspoređivanje pristiglog PIN-a s vrijednošću PIN-a pohranjenog na kartici, provodi usporedbu bajt po bajt. Programer koji ne razmišlja o sigurnosti programirati će navedenu proceduru tako da prva razlika između poredbenih vrijednosti rezultira prekidom izvođenja. Kao posljedica javljaju se malene razlike u vremenu izvođenja usporedbe PIN-ova. Mjereći te razlike napadač na vrlo jednostavan način određuje tajni PIN.

Ovakav tip napada na pametne kartice bio je uspješan do prije nekoliko godina. Danas se procedure zadužene za procese usporedbe konstruiraju na način da se uspoređuju sve znamenke PIN-a, te na taj način nema vremenske razlike između rezultata pozitivne i negativne usporedbe.

Zaštita: kriptografski algoritmi sa odsutnošću šuma

Sigurnost aplikacije pametne kartice temelji se na tajnosti ključeva korištenih u kriptografskim algoritmima. Terminal se mora autenticirati uz pomoć tajnog ključa da bi mogao pametnom karticom izvršiti određene akcije. Autentikacija terminala od strane pametne kartice predstavlja potencijalnu metu napada na njenu sigurnost. Pametna kartica autenticira terminal slanjem slučajnog broja, koji terminal kriptira i vraća kartici. Zatim pametna kartica izvodi istu enkripciju i uspoređuje rezultat s vrijednošću dobivenom od terminala. Ako je rezultat usporedbe pozitivan terminal je uspješno autenticiran i prima odgovarajući povratni kod. Početna točka napada je analiza vremena procesiranja od slanja kriptiranog broja kartici pa do primanja odgovarajućeg povratnog koda.

Razinu šuma kriptografskog algoritma određuju vremenske razlike u trajanju procesa kriptiranja ili dekriptiranja ovisno o ulaznim vrijednostima, orginalnom tekstu i tajnom ključu. Što su te vremenske razlike veće, algoritam je bučniji.

Slika 4.12 Primjer bučnog kriptografskog algoritma

Članak o napadu DPA analizom, kojeg je Paul Kocher objavio 1998., došao je kao posljedica daljnjeg istraživanja napada objavljenog još 1995 godine. Taj napad iz 1995. temeljio se na analizi bučnosti kriptografskog algoritma, odnosno na varijacijama u vremenu procesiranja enkripcije različitih ulaznih vrijednosti. Na osnovu izmjerenog šuma, složenim algoritmom, javno objavljenim, otkrivao se tajni ključ.

Današnje pametne kartice koriste kriptografske algoritme s odsutnošću šuma, što znači da vrijeme trajanja procesa enkripcije i dekripcije ne ovisi o ulaznim vrijednostima. Time se spriječava gore navedeni napad. Negativna posljedica je da algoritmi s odsutnošću šuma zahtijevaju više programskog koda i da su uvijek sporiji od svoje bučne verzije. Razlog tomu je dizajn algoritma s odsutnošću šuma, koji mora biti takav da je put kroz algoritam jednako dugačak za sve kombinacije orginalnih podataka, kriptiranih podataka i tajnih ključeva. To znači da se za referentnu vrijednost uzima najduži mogući put a sve ostale kombinacije moraju se ravnati po toj vrijednosti.

Dodatna sigurnost postiže se pridjeljivanjem brojača pokušaja svakom autentikacijskom ključu, tako da se može izvršiti samo ograničeni broj neuspješnih autentikacija. Kad brojač pokušaja dosegne maksimalnu vrijednost blokira se svaki daljnji pokušaj autentikacije.

Manipulacija: diferencijalna analiza pogrešaka (DFA)

Istraživači Bell Communications Research laboratorija (Bellcore) su 1996. opisali teoretski model određivanja tajnog ključa asimetričnih kriptografskih algoritama pomoću raspršenih hardverskih pogrešaka. Po njima je takav tip napada dobio ime Bellcore napad.

Dva mjeseca poslije, Eli Biham i Adi Shamir objavili su ekstenziju Bellcore napada koja je obuhvaćala i simetrične kriptografske algoritme i nazvali je diferencijalna analiza pogrešaka [8] (DFA).

Osnovni princip oba napada je relativno jednostavan. U prvom koraku odabere se blok podataka za enkripciju i kriptira se korištenjem ključa koji predstavlja metu napada. Rezultat kriptiranja se pohranjuje. U sljedećem procesu kriptiranja koristi se isti ulazni blok podataka ali se pritom kartica izlaže visoko frekventnom zračenju koje promijeni jedan bit korištenog ključa. To rezultira neispravno kriptiranim podacima. Proces se ponavlja nekoliko puta a rezultati se pohranjuju za daljnju analizu. Iz pohranjenih rezultata se matematičkim putem može doći do vrijednosti tajnog ključa. 

Snaga ovog napada leži u činjenici da nije potrebno poznavati točnu lokaciju promijenjenog bita tajnog ključa. Ako se istodobno promijeni više bitova tajnog ključa potrebno je više neispravno kriptiranih blokova. Biham i Shamir navode da je potrebno 200 kriptiranih blokova da se, jednobitnim promjenama ključa, dođe do vrijednosti tajnog DES ključa. Broj potrebnih blokova značajno ne poraste ako se umjesto DES algoritma koristi DES-3 algoritam (168-bitni ključ).

U stvarnosti nije tako jednostavno izvesti navedeni napad. Napad podrazumijeva promjenu jednog bita ili što manji broj promijenjenih bitova. Ako se cijeli mikrokontroler izloži zračenju, u većini slučajeva toliko će bitova biti promijenjeno da će se u potpunosti prekinuti rad procesora. Umjesto zračenja procesor se može potaknuti na produkciju izoliranih računskih pogrešaka uvođenjem specijalnih šiljaka u signal napajanja ili u signal takta. Ako filter navedenih ulaznih signala ne može neutralizirati šiljke, oni mogu proizvesti željene pogreške.

Najjednostavniji način obrane od Bellcore ili DFA napada je izvođenje kriptografskog algoritma dvaput zaredom. Nakon toga slijedi usporedba rezultata. Ako su rezultati identični, nije postojao vanjski pokušaj promjene bitova. Postupak usporedbe podrazumijeva da namjerno izazvane raspršene pogreške neće promijeniti isti bit dvaput zaredom. To je realna pretpostavka,  jer s mogućnošću ciljane promjene specifičnog bita, mogući bi bili puno jednostavniji i brži napadi nego što je DFA napad. Problemi se mogu javiti zbog dodatnog vremena potrebnog za dvostruko izvođenje kriptografskog algoritma. To se prije svega odnosi na vremenski zahtijevne asimetrične kriptografske algoritme kao što su RSA i DSA.

Još jedan uspješan način obrane od DFA napada postiže se dodavanjem slučajnog broja, u obliku prefiksa ili sufiksa, na blok podataka namjenjen za kriptitranje. Time se kriptiraju uvijek različiti blokovi podataka što onemogućava DFA napad.

Nedugo nakon objavljivanja DFA napada zaštićeni su svi operacijski sustavi pametnih kartica i pripadajuće kartične aplikacije tako da niti Bellcore niti DFA napad ne predstavljaju prijetnju današnjim kartičnim sustavima.

Zaštitni elementi operacijskog sustava pametne kartice

Zaštitni mehanizmi operacijskog sustava kartice temelje se na zaštitnim mehanizmima sklopovlja kartičnog mikrokontrolera. Tri osnovne komponente sigurnosnih mehanizama – sklopovlje, operacijski sustav, aplikacija – tvore lanac sigurnosti pametne kartice. Najslabija karika određuje snagu cijelog lanca, ako se prekine jedna karika lanca puca cijeli lanac. Potencijalne slabosti operacijskog sustava mogu narušiti kompletnu sigurnost pametne kartice.

Zaštita: hardverski i softverski testovi

Nakon inicijalizacije operacijskog sustava potrebno je izvršiti barem najosnovnije hardverske testove. Nekoliko najosnovnijih testova predstavlja testiranje RAM memorije, provjera kontrolnih suma važnijih dijelova ROM memorije, implicitno testiranje ATR signalom i jednostavni ekplicitni testovi CPU-a.

Zaštita: slojevitost operacijskog sustava

Operacijski sustav pametnih kartica dizajnira se prema OSI referentnom modelu s tri karakteristična sloja: OSI sloj I – fizički sloj, OSI sloj II – podatkovni sloj i OSI sloj VII – aplikacijski sloj. Ponašanja i interakcije unutar i između slojeva specificiraju međunarodni standardi (vidi poglavlje 2.3.6).

Takav dizajn operacijskog sustava rezultira minimizacijom pogreški unutar operacijskog sustava. Razdvajanje slojeva onemogućava da se greška unutar jednog sloja proširi na ostale slojeve.

Zaštita: kontrola prijenosa podataka

Kompletna komunikacija s pametnom karticom, ujedno i jedini dozvoljeni komunikacijski kanal između pametne kartice i ostatka svijeta, odvija se preko I/O sučelja koje je pod kontrolom operacijskog sustava. Kontrolom prijenosa podataka na efikasan način štitimo memoriju pametne kartice. Transportni manager operacijskog sustava upravlja prijenosnim protokolom i spriječava procesiranje neispravnih ulaznih vrijednosti. On onemogućava da se manipulacijom prenesenih blokova utječe na proces prijenosa podataka na način da se bez ispravne autorizacije pošalju terminalu podaci iz memorije.

Zaštita: kontrolna suma memorijskog sadržaja

Sva memorijska područja u EEPROM-u, bitna za ispravan rad operacijskog sustava, moraju se zaštititi kontrolnim sumama. Prilikom svakog pristupa tako zaštićenom memorijskom području, odnosno prije izvršavanja sadržanog koda, provjerava se nepromjenjljivost njegovog sadržaja. Također zahtijeva se da se datotečna struktura, odnosno zaglavlja datoteka, zaštite kontrolnim sumama. Taj zahtijev je izuzetno važan zbog objektno-orijentirane kontrole pristupa gdje se uvjeti pristupa datoteci pohranjuju u zaglavlje dotične datoteke.

Zaštita: ukalupljivanje aplikacija

Neki operacijski sustavi koriste u izoliranju različitih aplikacija postupak ukalupljivanja. Aplikacije i pripadajuće datoteke ukalupljuju se u zasebne DF-ove. Razina zaštite nije visoka jer je izolacija postignuta na programskoj razini, no takvom se zaštitom barem spriječava da posljedice memorijske greške izađu izvan granica dotičnog DF-a.

Današnje pametne kartice ne sadrže memorijsku upravljačku jedinicu – MMU [9] . Buduće pametne kartice zasigurno će imati MMU jer će se time omogućiti operacijskom sustavu da na razini sklopovlja izolira postojeće aplikacije.

Zaštita: maskiranje stvarnih aktivnosti operacijskog sustava

Prilikom svakog upisivanja podataka u EEPROM potrebno je aktivirati strujnu pumpu. Time se povećava strujna potrošnja čipa, što se izvana vrlo lako detektira jednostavnim mjerenjem. Operacijski sustav pametne kartice ne smije dozvoliti da napadač na osnovu vanjskih mjerenja strujne potrošnje donosi ispravne zaključke o procesima koji se izvode unutar pametne kartice. Kad bi to bilo dozvoljeno napadač bi mogao na osnovu vanjskih mjerenja zaključiti kakav je rezultat usporedbe PIN-a prije nego što se završi izvođenje dotične naredbe i time na vrlo jednostavan način, ponavljanjem navedenog procesa, doći do stvarne vrijednosti pohranjenog PIN-a.

Zaštita: objektno-orijentirana kontrola pristupa

Nedostatak centralizirane kontrole pristupa je što se pojava softverske ili memorijske pogreške reflektira na cjeloukupnu sigurnost pametne kartice. Moderni objekno-orijentirani datotečni sustavi, s dozvolama pristupa pohranjenim u zaglavljima datoteka, izoliraju utjecaj memorijske greške na samo jednu datoteku. Time je sigurnost ostalih datoteka netaknuta. Rapodijeljenom kontrolom pristupa značajno se podiže cjeloukupna razina sigurnosti pametne kartice, ne samo s obzirom na moguće greške, već i s obzirom na potencijalne napade.

Napad i obrana: generatori slučajnih brojeva

Pametna kartica generira slučajne brojeve i koristi ih prilikom autentikacije i individualizacije sjednica. Time se postiže da se podaci dobiveni prisluškivanjem prethodnih sjednica ne mogu uspješno primijeniti na sljedeću sjednicu. Drugi tip napada bi bio da se pusti pametnoj kartici da generira slučajne brojeve sve dok njihov slijed ne postane predvidljiv. Još jedna mogućnost napada je da se uzastopnim potraživanjem slučajnih brojeva izazove ispad EEPROM memorije kartičnog generatora slučajnih brojeva (zbog ograničenog broja ciklusa pisanja EEPROM memorije), tako da dotični uvijek generira isti slučajni broj.

Bilo koji od navedenih napada, ako je uspješno proveden, zaobići će autentikaciju terminala od strane pametne kartice. Razlog je to da se kod današnjih pametnih kartica posvećuje velika pažnja dizajnu i zaštiti generatora slučajnih brojeva. Njegov rad se uvijek pomno ispituje tako da današnji operacijski sustavi u potpunosti onemogućuju izvođenje opisanih napada. Niz slučajnih brojeva toliko je dugačak da se nikad za vrijeme cijelog životnog ciklusa kartice neće pojaviti dva ista slučajna broja. Ako se izazove ispad EEPROM memorije, blokirati će se generacija slučajnih brojeva i time spriječiti daljnja autentikacija.

Zaštitni elementi aplikacije pametne kartice

Zaštitni mehanizmi aplikacije temelje se i ovise o ispravnosti rada odgovarajućih zaštitnih mehanizama kartičnog hardvera i operacijskog sustava. Ako je npr. moguće nekom analitičkom procedurom pročitati sadržaj EEPROM memorije, ni najsloženiji i najsigurniji kriptografski algoritam neće biti od koristi, s obzirom da napadač može pročitati tajne ključeve direktno iz EEPROM memorije. Neovisno o tome, kartična aplikacija mora biti tako dizajnirana da napad na pojedinačnu pametnu karticu ne dovodi u pitanje sigurnost cijelog sustava.

Zaštita: jednostavnost mehanizama zaštite

Jednostavni mehanizmi se lakše implementiraju, jednostavnije je provjeriti ispravnost njihovog rada i efikasnost postignute zaštite. Izuzetno je pogrešna pretpostavka da se složenim mehanizmom uvijek postiže viši nivo zaštite. Naprotiv, sa razinom kompleksnosti raste mogućnost greški i sigurnosnih propusta.

U osnovi, aplikacija bi morala uvijek koristiti zaštitne mehanizme operacijskog sustava. Pouzdanost njihova rada je testirana i optimirana. Optimiranost je često bitna s obzirom na ograničene resurse pametne kartice. To ne znači da aplikacija ne smije imati svoje vlastite zaštitne mehanizme, već da se nadogradnja zaštite treba uvijek temeljiti na mehanizmima već prisutnim u operacijskom sustavu.

Zaštita: konzervativne dozvole pristupa

Pristup datotekama i naredbama mora biti maksimalno ograničen. Inicijalno treba zabraniti pristup a prema potrebi dodijeljivati dozvole. Time se smanjuje atraktivnost napada jer za svaku dodatnu informaciju napadač mora uložiti dodatni napor.

Zaštita: stroj stanja

Napad na pametnu karticu značajno se otežava ako se onemogući da se određena naredba izvodi u bilo koje vrijeme i u neograničenom broju pokušaja. Upravo se korištenjem stroja stanja određuju dopušteni nizovi naredbi. Npr. autentikacija se može prisilno nametnuti postavljanjem prefiksa na sve dozvoljene nizove naredbi, gdje je prefiks predstavljen nizom naredbi potrebnih za obostranu autentikaciju terminala i pametne kartice.

Zaštita: dvostruka kontrola pristupa

Kontrola pristupa datotekama pametne kartice provodi se s dva mehanizma. Dozvolama pristupa pohranjenim unutar datoteka i strojem stanja koji definira dopušteni niz naredbi i dopuštene parametre tih naredbi. Sve druge naredbe i nedopuštene nizove podržanih naredbi stroj stanja blokira.

Zaštita: siguran prijenos podataka

Često se prijenos podataka odvija u potencijalno nesigurnoj okolini. Relativno jednostavnim tehničkim modifikacijama sučelja između terminala i kartice moguće je obrisati ili umetnuti željene podatke u normalan tok podataka između kartice i terminala. Da se spriječi takav tip napada koristi se procedura sigurne komunikacije, no treba imati na umu da je riječ o dvostrukoj enkripciji, što smanjuje brzinu prijenosa. Zbog toga se izbjegava potpuna enkripcija svih podataka. Kriptiraju se tajni podaci, a za osiguranje integriteta podataka koristi se MAC [10] procedura.

Zaštita: funkcije oporavka od pogreške

Sjednica se može prekinuti zbog niza nedefiniranih razloga. Pritom se javlja potreba za informacijama koje mogu pomoći u rasvjetljavanju i raščišćavanju nastale situacije. Te informacije su sadržane u aplikacijskim dnevničkim datotekama. Njih redovno, za vrijeme sjednice, ažurira operacijski sustav i u njih zrcali trenutno stanje aplikacije. Dnevnički podaci pohranjuju se u cikličku datoteku. Prepunjavanjem cikličke datoteke pristigli najnoviji zapis briše najstariji zapis u datoteci.

Detaljne dnevničke datoteke pametne kartice omogućuju određene funkcije oporavka od pogreške, kao što je automatska obnova na prijašnje stanje kartice u slučaju nedefiniranog prekida sjednice.

Zaštita: autentikacija

Kartični sustavi s magnetskim karticama koriste jednosmjernu autentikaciju, i to samo u svrhu provjere izvornosti magnetske kartice. Magnetska kartica je pasivni dio sustava i ne može provjeriti indetitet terminala. Situacija se mijenja dolaskom pametna kartica u kartične sustave. Sada kartica može provjeriti identitet terminala i aktivno spriječiti pokušaje neautoriziranog pristupa. Time se značajno podiže razina sigurnosti cjeloukupnog kartičnog sustava.

Pametna kartica korištenjem mogućnosti obostrane autentikacije terminala i pametne kartice spriječava bilo kakvu analizu svog operacijskog sustava ako on nije u tom trenutku aktivni dio kompletnog kartičnog sustava.

Zaštita: on-line ponašanje

Terminali s ugrađenim sigurnosnim modulima mogu potpuno samostalno izvoditi aplikacije s pametnim karticama. Periodično se uspostavlja direktna komunikacija s pozadinskim sustavom da se učitaju potrebni podaci, kao što je npr. crna lista kartica ili novi skup autentikacijskih ključeva. Učestalost uspostavljanja te on-line veze raste s kompleksnošću sustava i mogućnošču potencijalnih napada. Određivanje trenutka kad da terminal uspostaviti on-line komunikaciju može se izvesti na više načina. Najjednostavniji način je da se postave periodični vremenski okidači u terminalima ili vremenski okidači koji se temelje na slučajnim varijablama. Kartični sustavi plaćanja za uspostavljanje on-line veze koriste brojač transakcija, pohranjen na pametnim karticama. Npr. nakon svake desete transakcije, dotične pametne kartice, izvrši se on-line konekcija i izvede obostrana autentikacija pametne kartice i pozadinskog sustava. Na okidač izvedenog broja off-line transakcija dodatno se može postaviti da transakcija, čiji iznos prekorači određenu vrijednost, također pobudi on-line vezu.

Zaštita: crne liste

Kartični sustavi moraju implementirati mehanizme zaštite koji će štiti sustav od mogućnosti pojave krivotvorenih pametnih kartica. Također sustav mora zaštiti stvarne korisnike od mogućih posljedica proizašlih krađom njihovih pametnih kartica.

Da bi se spriječilo korištenje krivotvorenih ili ukradenih kartica potrebno je održavati listu dozvoljenih ili listu zabranjenih kartica. Liste se temelje na nekom jedinstvenom obilježju kartice, npr. na serijskom broju čipa kartice. Dizajn sustava u kojem sve što nije eksplicitno dozvoljeno - implicitno je zabranjeno, postiže najveću razinu zaštite. Takav sustav podrazumijeva održavanje liste dozvoljenih kartica, tzv. bijele liste.

Kod velikih kartičnih sustava bijela lista postaje prevelika. Npr. za sustav s 10 milijuna pametnih kartica i 8-bajtnim serijskim brojem bijela lista znači 80MB podataka, 80 MB podataka koje treba redovno ažurirati i on-line prenositi do terminala. To je razlog zašto veliki kartični sustavi održavaju crne liste, liste nedozvoljenih kartica. Crna lista za gore navedeni primjer, uz podatak  da imamo 1% blokiranih kartica, iznosi 800kB podataka.

U on-line sustavima pametne kartice se provjeravaju u realnom vremenu. Sustavi koji djelomično ili u potpunosti rade off-line moraju što češće prenositi ažurirane crne liste do svojih terminala.

Napad i obrana: virusi i trojanski konji

Sve do nedavno, računalski virusi su bili nepoznanica u svijetu pametnih kartica. Do promijene je došlo kad su moderni operacijski sustavi pametnih kartica implementirali mehanizme dinamičkog učitavanja programskog koda. Takav programski kod više nije pod kontrolom izdavača kartice jer se učitava u fazi korištenja kartice. To je stvorilo potrebne uvjete za pojavu računalskih virusa. Pod definicijom virusa podrazumijevamo program koji može sam sebe umnožiti i proširiti na ostala računala. Ako takav program nema moć umnažanja naziva se Trojanski konj. Zajedničko za oba programa je da pod određenim okolnostima mogu izvršiti neautorizirane akcije na računalu domaćina. U slučaju pametnih kartica te akcije bi mogle uključivati i slanje vrijednosti tajnih ključeva izvan kartice.

Pametna kartica, za razliku od običnog osobnog računala, posjeduje sigurnosne mehanizme blokiranja neautoriziranog izvođenja programa. Programski kod se štiti digitalnim potpisom ili MAC-om. Operacijski sustavi izoliraju memorijska područja pojedinačnih kartičnih aplikacija, hardverski ili softverski, i time onemogućuju da slučajno učitani virus ili trojanski konj ugrozi funkcionalnost i sigurnost prisutnih aplikacija.

Napad i obrana: prostor tajnog ključa

Jedan od mogućih tipova napada na kriptografskoj razini je i detaljno pretraživanje prostora tajnog ključa. Prostor tajnog ključa se definira kao broj mogućih vrijednosti, odnosno kombinacija bitova, s obzirom na zadanu duljinu ključa, npr. 56 bitni ključ ima prostor veličine 256 mogućih vrijednosti. Preduvjet je da napadač posjeduje barem jedan kriptografski par blokova (orginalni blok i njemu dogovarajući kriptirani blok) i da mu je poznat primjenjeni kriptografski algoritam. Kriptiranjem orginalnog bloka sa svakom mogućom vrijednošću unutar prostora ključa i uspoređivanjem dobivenog rezultata s drugim dijelom para, može se pronaći prava vrijednost napadnutog ključa.

U spriječavanju ovog tipa napada koristi se nekoliko različitih pristupa. Najjednostavnija obrana je da se toliko poveća prostor ključa da napadač sustavnom pretragom ne može doći do željenog rezultata u prihvatljivom vremenu. To je razlog što sve više aplikacija umjesto DES algoritma koristi 3-DES algoritam. Prostor DES ključa je uz trenutno dostupnu procesorsku snagu postao premali.

Drugi način obrane je da se protokol autentikacije i komunikacije između kartice i terminala dizajnira na način da se kriptografski parovi blokova upće ne pojavljuju. Osim toga, u praksi se najveći dio razmjenjenih podataka ne kriptira, već se štiti MAC-om, a MAC je puno otporniji na napade izvedene sirovom procesorskom snagom.

Još jedan način obrane je da pametna kartica prije procesa kriptiranja ili izračunavanja MAC-a generira slučajni broj i smjesti ga na početak orginalnog bloka podataka. Rezultat je da u proces kriptiranja nikad ne ulazi isti blok podataka. Time je brutalna pretraga ključa otežana jer slučajni broj najčešće nije javan, on može biti tajna koju dijele terminal i pametna kartica. Opisana procedura korištenja slučajnog broja pruža dobru zaštitu od DFA i DPA napada, čak i kad je slučajni broj javno poznat.

Atraktivnost napada se smanjuje korištenjem dinamičkih ključeva, različiti za svaku operaciju kriptiranja, ili korištenjem sjedničkih ključeva, različiti za svaku sjednicu. Ako napadač kojim slučajem uspije otkriti primijenjeni ključ tu informaciju neće moći iskoristiti za buduće napade jer je već sljedeća transakcija kriptirana drugim ključem.

 



[1] engl. write once, read multiple, WORM

[2] engl. one time programmable, OTP

[3] engl. epoxy resin

[4] engl. Differential Fault Analysis, DFA

[5] engl. Simple Power Analysis, SPA

[6] engl. Differential Power Analysis, DFA

[7] engl. log file

[8] engl. Differential Fault Analysis, DFA

[9] engl. Memory Management Unit, MMU

[10] engl. Message Authentication Code, MAC



© Zavod za Elektroniku, Mikroelektroniku, Računalne i Inteligente Sustave