FER, ZEMRIS
>>Sigurnosni mehanizmi
pametne kartice
|
Seminarski rad
|
Autor: Renato Barta
e-mail: smartcard@alfatec.hr
Dodatno:
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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, 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
Č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.
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.
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.
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.
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.
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.
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.
© Zavod za Elektroniku,
Mikroelektroniku, Računalne i Inteligente Sustave
|