SVEUČILIŠTE
U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
DIPLOMSKI
RAD br. 1348
ELEKTRONIČKI NOVAC
Robert
Šipek
Zagreb, prosinac 2002.
SADRŽAJ
1 Uvod............................................................................................................................. 3
2 Definicija problema...................................................................................................... 4
2.1 Zahtjevi na elektroničke financijske
transakcije........................................................ 5
2.2 Sigurnosni zahtjevi elektroničkih
financijskih transakcija............................................ 6
3 Tehnološka rješenja.................................................................................................... 7
3.1 Kriptografija........................................................................................................... 7
3.1.1 Simetrični algoritmi........................................................................................... 8
3.1.2 Primjeri simetričnih algoritama......................................................................... 10
3.1.2.1 DES........................................................................................................ 10
3.1.2.2 IDEA...................................................................................................... 11
3.1.2.3 AES (Rijndael)........................................................................................ 13
3.1.2.4 Ostali simetrični algoritmi......................................................................... 17
3.1.3 Asimetrični algoritmi....................................................................................... 17
3.1.3.1 RSA....................................................................................................... 19
3.1.3.2 ElGamal.................................................................................................. 19
3.1.3.3 ECC....................................................................................................... 20
3.1.4 Jednosmjerne funkcije.................................................................................... 22
3.1.5 Funkcije sažetka (hash)................................................................................. 23
3.1.5.1 SHA....................................................................................................... 24
3.1.5.2 MD2, MD4 i MD5................................................................................. 24
3.1.6 Digitalni potpis............................................................................................... 25
3.1.7 Slijepi digitalni potpis...................................................................................... 25
3.1.8 Pošteni slijepi digitalni potpis (fair blind digital signature)............................. 26
3.2 Pametne kartice.................................................................................................... 26
3.3 Protokoli za elektronička plaćanja......................................................................... 27
3.3.1 SSL............................................................................................................... 27
3.3.2 TLS............................................................................................................... 30
3.3.3 SET............................................................................................................... 31
4 Vrste elektroničkog plaćanja.................................................................................... 34
4.1 Notacijski sustavi elektroničkog
novca.................................................................. 34
4.1.1 E-ček............................................................................................................ 35
4.1.2 Kreditna kartica............................................................................................. 36
4.1.3 Debitna kartica............................................................................................... 37
4.2 Simbolički sustavi elektroničkog
novca.................................................................. 38
4.2.1 E-gotovina..................................................................................................... 39
4.2.1.1 Plaćanje e-gotovinom.............................................................................. 40
4.2.1.2 On-line.................................................................................................... 40
4.2.1.3 Off-line................................................................................................... 41
4.2.1.4 Anonimnost kupca................................................................................... 42
4.2.1.5 Problem dvostruke potrošnje................................................................... 43
4.2.1.6 Prevencija dvostruke potrošnje................................................................ 43
4.2.1.7 Detekcija dvostruke potrošnje................................................................. 44
4.2.2 Mikroplaćanja................................................................................................ 44
5 Rizici pri korištenju elektroničkog novca................................................................. 45
5.1 Ranjivost sigurnosnog sustava................................................................................ 45
5.1.1 Odabir algoritma za kriptiranje........................................................................ 45
5.1.2 Odabir ključa................................................................................................. 46
5.1.3 Propusti u dizajnu sustava............................................................................... 46
5.1.4 Propusti u implementaciji................................................................................ 46
5.1.5 Propusti u sklopovlju...................................................................................... 47
5.1.6 Ljudski faktor................................................................................................ 47
6 Potrebna infrastruktura............................................................................................. 48
6.1 PKI...................................................................................................................... 48
6.2 Osnovna zadaća PKI sustava................................................................................ 49
6.3 Komponente PKI sustava..................................................................................... 49
6.3.1 Korisnik......................................................................................................... 51
6.3.2 Certifikator.................................................................................................... 52
6.3.3 Baza certifikata.............................................................................................. 53
6.3.4 Upravljanje certifikatima................................................................................. 55
6.3.5 Rekonstrukcija ključeva................................................................................. 55
6.3.6 Opoziv certifikata........................................................................................... 56
6.3.7 Vremenska oznaka (time stamp)................................................................... 56
6.4 PKI standardi....................................................................................................... 57
6.4.1 ITU X.509..................................................................................................... 57
6.4.2 SPKI............................................................................................................. 57
6.4.3 PGP.............................................................................................................. 58
7 Zakonska regulativa.................................................................................................. 59
7.1 Formalnopravna
valjanost digitalnog potpisa............................................................. 59
7.2 Pozicija e-novca u postojećem
monetarnom sustavu.............................................. 60
7.3 Pozicija e-novca u poreznom sustavu..................................................................... 60
7.4 Sprječavanje kriminalnih radnji.............................................................................. 61
8 Elektronički novac u praksi...................................................................................... 62
8.1 DigiCash............................................................................................................... 63
8.2 CyberCash........................................................................................................... 63
8.3 Billpoint................................................................................................................ 63
8.4 PayPal.................................................................................................................. 64
8.5 Chipknip............................................................................................................... 64
8.6 Mondex................................................................................................................ 65
9 Zaključak.................................................................................................................... 67
10 Literatura................................................................................................................... 68
Elektroničko poslovanje (e-business) koje se širi Internetom sastoji se velikim dijelom od prodaje roba i usluga. Budući su sudionici u ovakvim poslovnim transakcijama nerijetko vrlo udaljeni a poslovanje traje 24 sata 7 dana u tjednu, postoji potreba za sigurnim, brzim, jeftinim i jednostavnim načinom plaćanja preko Interneta. Postojeći načini plaćanja preko interneta (npr. kreditne kartice) imaju ozbiljne nedostatke jer se radi o klasičnim naplatnim metodama prilagođenim novoj sredini, koji ne zadovoljavaju sigurnosne zahtjeve niti jednako pokrivaju potrebu za velikim, srednjim i mikro transakcijama.
U ovom radu dana je definicija problema, te postojeći i potencijalni budući načini njegovog rješavanja. Dan je pregled sustava koji se koriste danas, onih koji su u razradi i probnom korištenju, te metoda koje postoje samo teorijski. Dan je pregled teorijskih i tehnoloških temelja na kojima se navedene metode zasnivaju, rizika njihove primjene i promjena potrebnih za njihovo šire uvođenje. Sistematski su opisani kriptografski algoritmi koji se najčešće koriste i koji će u budućnosti igrati najveću ulogu, a za neke od njih su opisani i potpuni algoritmi. Obuhvaćeni su sigurnosni sustavi, sustavi i protokoli elektroničkog plaćanja, potrebna infrastruktura i zakonska regulativa. Navedeni su i aktualni primjeri konkretnih komercijalnih implementacija elektroničkog plaćanja. U praktičnom djelu rada napravljena je simulacija nekih protokola opisanih u ovom radu.
Danas su kreditne kartice de facto standard za kupnju preko Interneta. Nedovoljna sigurnost koja prati uporabu kreditnih
kartica rezultira velikim troškovima korištenja. Tako veliki kartičari koji
naplaćuju tipično 4-6% provizije, oko 3% gube zbog prijevara i zlouporaba.
Postotak zlouporaba kartica na Internetu znatno je veći nego u klasičnim
trgovačkim kanalima. Tako na primjer od ukupnog prometa na globalnom nivou
najvećeg svjetskog kartičara, VISA kartice, svega 2% čine transakcije preko
Interneta dok se na njih odnosi više od 50% svih registriranih prijevara i
zlouporaba. U 2000.g. ukupna šteta od prijevara na kreditnim karticama iznosila
je oko 1,6 milijardi USD, dok se za 2005.g. procjenjuje na 15,5 milijardi USD,
ako se ne poduzmu odlučne mjere zaštite sigurnosti. [1],[2]
slika 2.1: Promet ostvaren u on-line trgovinama –
procjena do 2005. godine [3]
Promet u on-line trgovina u 2002. godini doseći će 50 milijardi dolara, a procjenjuje se da će se u iduće tri godine udvostručiti [3] (slika 2.1). Može se očekivati da će proporcionalno rasti i problemi koje sa sobom nosi uporaba kreditnih kartica.
U 2002. godini stvarni ostvareni promet u
on-line trgovinama znatno zaostaje za procjenama koje su davane prije samo
godinu dana. Istraživanja su pokazala da strah kupaca od nesigurnosti on-line
kupnje kreditnim karticama sve više raste. U srpnju 2002, čak je 46% korisnika
izjavilo da smatraju on-line kupnju kreditnim karticama nesigurnom. Usprkos
tome, 81% svih on-line kupnji plaćeno je kreditnim karticama. Ovo jasno ukazuje
na nedostatak boljeg načina plaćanja [4].
Možda najvažniji motiv proizlazi iz članka
koji je prošle godine objavio USA Today u kojem stoji da su prošle godine samo u Americi osobe između 14 i 16
godina potrošile 140 milijardi dolara u maloprodaji. Ova populacija nije u
mogućnosti koristiti kreditne kartice i praktički nema jednostavnog načina za
on-line kupnju, iako se zna da su masovno korisnici Interneta. Očito je potreban
oblik plaćanja koji bi po svemu sličio klasičnoj gotovini a bio bi upotrebljiv
i na Internetu. U klasičnim
prodajnim kanalima gotovina još uvijek zauzima visoku poziciju (tablica 2.1), a
njezin on-line ekvivalent ne postoji [5].
godina |
2000
(%) |
2005
(%) |
2010
(%) |
elektroničko plaćanje |
4,2 |
11,1 |
15,4 |
kreditne kartice |
24,6 |
26,9 |
32,1 |
debitne kartice |
6,00 |
10,8 |
14,2 |
gotovina |
19,5 |
18,5 |
16,7 |
čekovi |
45,7 |
32,7 |
21,6 |
tablica 2.1: Postotni udio vrsta plaćana – procjena do 2010.g.[5]
U klasičnoj trgovini se iskristaliziralo nekoliko načina plaćanja. Ovisno o veličini transakcije, njenoj učestalosti, rizičnosti i troškovima biramo koji od instrumenata je najbolje koristiti. Potrebno je stvoriti slične instrumente koji bi bili upotrebljivi na internetu odnosno preko svih nesigurnih elektroničkih komunikacijskih kanala. Treba razlikovati transakcije velikih iznosa, srednjih i malih. Transakcije velikih iznosa moraju prvenstveno imati sve sigurnosne elemente, no kako nisu učestale, mogu nešto dulje trajati i njihovi troškovi mogu biti nešto veći. Transakcije srednjih iznosa vrlo su učestale i činit će najveći dio on-line prometa, stoga moraju biti vrlo jeftine, brze, jednostavne i svima dostupne, uz prihvatljive mjere sigurnosti. I na kraju, mikrotransakcije tipične vrijednosti ispod 1 USD moraju biti iznimno jeftine, jednostavne i brze, a mogući su kompromisi na strani sigurnosti. U obzir treba uzeti i potrebu za oblikom plaćanja koji bi korisniku osigurao anonimnost i privatnost. Kreditne kartice, gotovina i ostala klasična sredstva plaćanja neće nestati preko noći, te je ključna integracija novih elektroničkih načina plaćanja u postojeće klasične sustave.
Osnovni zahtijev na elektroničke financijske transakcije je njihova
sigurnost. Omogućavanje sigurnih transakcija zahtijeva stvaranje elektroničkih
sustava sigurnosti. Ovi sustavi moraju štiti poruke koje čine naloge za
prijenos novca ili sam novac, te omogućavati digitalne potpise koji se ne mogu
krivotvoriti niti poricati. Ovi sustavi moraju omogućavati sljedeće:
§ privatnost (privacy) – sadržaj prenesenih poruka, činjenica da je poruke uopće bilo, tko ju je poslao i kome je namijenjena trebaju ostati poznati samo sudionicima u komunikaciji
§
vjerodostojnost,
autentičnost (authenticity) –
sudionici u komunikaciji moraju biti u stanju jedan drugom dokazati svoj
identitet
§
autorizacija
sudionika (authorization)– ima li uspješno identificirani sudionik pravo
koristiti se u danom trenutku danom uslugom?
§
neopozivost
(nonrepudiation) – niti jedna strana
ne može drugoj strani osporiti da je sudjelovala u komunikaciji
§
cjelovitost,
integritet (integrity) – poruka mora
na svoje odredište stići u nepromijenjenu obliku, odnosno eventualnu promjenu u
komunikacijskom kanalu mora primalac moći detektirati.
Navedeni zahtjevi mogu se ispuniti primjenom raznih tehnoloških rješenja.
Sigurnost elektroničkih financijskih transakcija može se postići uporabom
odgovarajućih tehnoloških rješenja. Ova rješenja mogu biti realizirana
programski (software) i sklopovski (hardware).
Kriptografija je disciplina koja se bavi šifriranjem poruka u svrhu čuvanja njihove tajnosti pri prijenosu. U ovu disciplinu spadaju i metode koje su se razvile iz kriptografije. To su primjerice digitalni potpisi, hash funkcije, kriptoanaliza itd. Kriptografija počiva na tri matematičke discipline: teoriji brojeva, teoriji složenosti i teoriji informacije [6],[7].
Kriptografski algoritmi dijele se, na temelju osobina ključa koji se koristi, na tri grupe (slika 3.1):
§ algoritmi bez ključa
§ simetrični algoritmi
§ asimetrični algoritmi
slika
3.1: klasifikacija
kriptoalgoritama prema osobinama ključa
Simetrični algoritmi za kriptiranje počivaju na pretpostavci postojanja tajnog ključa K koji je poznat samo pošiljaocu i primaocu poruke. Ovi algoritmi stoga se ponekad nazivaju i algoritmi s tajnim ključem. S istim ključem se i kriptira i dekriptira poruka. Bez poznavanja tajnog ključa potencijalnom prisluškivaču je poruka nerazumljiva (slika 3.2). Osim tajnosti, ovi algoritmi omogućavaju i:
§
provjeru
autentičnosti pošiljaoca
Uspješno dekriptiranje poruke korištenjem tajnog ključa K primaocu potvrđuje da je poruka morala biti kriptirana upravo istim tim ključem K, pošto poruku kriptiranu s nekim drugim ključem ne bi uspio dekriptirati. Kako zna da je ključ K dostupan samo konkretnom pošiljaocu, to mu garantira da poruka potječe baš od njega.
§
provjeru
integriteta poruke
Ako primalac uspješno dekriptira poruku sa svojim tajnim ključem, ovo mu garantira da nitko u međuvremenu nije promijenio sadržaj kriptirane poruke, pošto u tom slučaju dekriptiranje ključem K ne bi bilo uspješno. Može se međutim desiti da primalac primi djelomičnu poruku (bez nekoliko zadnjih blokova) i da ne detektira ovaj nedostatak.
slika 3.2: shematski prikaz prijenosa poruke
simetričnim algoritmom s tajnim ključem
Osnovna prednost simetričnih algoritama je njihova brzina i jednostavnost
implementacije. Postoji nekoliko nedostatka koji simetričnim algoritmima
ograničavaju upotrebljivost:
§ Pošiljalac i primalac poruke moraju posjedovati isti tajni ključ. Ako ne raspolažu sigurnim načinom komunikacije, ne postoji način kako mogu razmijeniti tajni ključ.
§ Tajni ključ mora biti jedinstven za svaki par pošiljaoca i primaoca, što znači da pošiljalac koji komunicira s više primaoca mora za svakog od njih imati drugi tajni ključ. Za ukupno n osoba koje sudjeluju u komunikaciji, svaki od njih mora imati n-1 tajnih ključeva, odnosno ukupan broj potrebnih ključeva u sustavu je n*(n-1)/2.
§ Prisluškivač bi mogao jednom presretnutu poruku u nekom kasnijem trenutku ponovo poslati pošiljaocu, i time iako nije u stanju pročitati sadržaj poruke, mogao bi napraviti štetu pošto bi primalac bio uvjeren da je poruka opet došla od pravog pošiljaoca.
§ Dokopavši se tajnog ključa, prisluškivač može njime ne samo dekriptirati sve prošle i sve buduće poruke u oba smjera kodirane istim ključem već i modificirati poruke, te sam slati lažne poruke, a da to originalni sudionici nikad ne doznaju.
§ Jedan od sugovornika mogao bi namjerno odati tajni ključ, i na taj način osporiti autentičnost svojih ranijih poruka.
Neki od ovih nedostataka imaju moguća rješenja:
Problem prijenosa tajnog ključa može se riješiti ili transportom ključa
kroz neki sigurni komunikacijski kanal ili primjenom nekog drugog, npr.
asimetričnog algoritma.
Problem velikog broja ključeva može se riješiti centralnim serverom koji
ima po jedan tajni ključ za komunikaciju sa svakim od sudionika. Ako želi
poslati poruku osobi B, osoba A pošalje poruku serveru, kriptiranu
svojim tajnim ključem KA,
server je dekriptira, pročita iz sadržaja poruke kome je ona namijenjena, te je
kriptira tajnim ključem KB
osobe B i prosljeđuje tako kriptiranu
poruku osobi B, koja je dekriptira tajnim ključem KB.
Nedostatak ovog rješenja je taj, što svi sudionici u komunikaciji moraju imati
potpuno povjerenje u centralni server, koji je stoga posebno ranjiv, jer sadrži sve tajne ključeve na jednom mjestu.
Osim toga, ako ukrade samo jedan tajni ključ, prisluškivač bi mogao svim
ostalim sudionicima slati falsificirane poruke.
Problem ponovnog slanja iste poruke, rješava se obično na jedan od
sljedeća dva načina:
§ U samu poruku upiše se redni broj n i slučajni broj r, tako da provjerom nove i već pristiglih poruka primalac može ustanoviti da li se radi o novoj ili ponovljenoj poruci.
§ Pošiljalac prije slanja poruke, nekriptiranom porukom obavijesti primaoca da će mu poslati poruku, primatelj tada generira slučajni broj r i šalje ga pošiljaocu, a pošiljalac uključuje broj r u sadržaj poruke koju kriptira. Nakon primanja poruke, primalac je dekriptira i uspoređuje broj r koji je generirao i onaj koji je sadržan u poruci.
Kombinacijom simetričnog algoritma s nekim asimetričnim, može se tajni
ključ mijenjati za svaku poruku odnosno svaku sjednicu, čime otpada i mogućnost
dekripcije starih i budućih poruka.
Formiranjem protokola na temelju simetričnog algoritma kriptiranja uz
kombinaciju s asimetričnim algoritmom i gore navedenim poboljšanjima moguće je
imati brz i pouzdan način komunikacije.
Postoji mnoštvo simetričnih algoritama. Većini je zajedničko to da izvorni tekst poruke dijele na blokove, nad kojima onda izvršavaju jednu ili više logičkih i aritmetičkih operacija s tajnim ključem. Veličina bloka, duljina ključa i primijenjene operacije variraju od algoritma do algoritma. Ove algoritme zovemo blokovski kriptoalgoritmi, za razliku od protočnih (tokovnih) kriptoalgoritama koji rade sa neprekinutim nizom (stream) podataka. Slijede opisi najvažnijih simetričnih blokovskih kriptoalgoritama.
DES (Data Encryption Standard) nastao je na temelju IBM-ova algoritma Lucifer koji se pojavio početkom 70-tih
godina. DES je simetrični algoritam za kriptiranje, a temelji se na
rastavljanju poruke u pakete od 64 bita, nad kojima se obavlja niz jednostavnih
operacija s tajnim ključem duljine 56 bita. Ovaj algoritam je vrlo raširen, no
kako je već star tridesetak godina, sigurnost koju pruža ključ od 56 bita nije
dovoljna. Stoga je nastalo nekoliko modifikacija DES algoritma. Najpopularnija
se zove Triple-DES i temelji
se na višestrukom kriptiranju s različitim ključem, što efektivno produljuje
ključ na 112 odnosno 168 bita. Druge modifikacije temelje se na dodavanju
dodatne operacije prije kriptiranja (npr. DESX)
ili promjeni ključa u tijekom komunikacije, tako da se za svaku novu poruku
generira novi ključ sinkrono na obje strane. DES algoritam je najrašireniji
algoritam za kriptiranje opće namjene. Poruku kriptiranu osnovnim DES
algoritmom baziranom na ključu od 56 bita danas je moguće u roku od nekoliko
sati do nekoliko dana razbiti koristeći posebno dizajnirana računala odnosno
velike mreže računala [8].
Kako se ovaj
algoritam postepeno izbacuje iz uporabe a na mnogim je mjestima detaljno opisan
neće biti detaljnije razmatran.
IDEA (International Data Encryption Algorithm) algoritam je razvijen 1990. godine i objavljen pod nazivom IPES. Ime je promijenjeno 1991. godine kada je i doživio manju modifikaciju koja je riješila problem neotpornosti na diferencijalnu kriptoanalizu. Ovaj algoritam radi s blokovima od 64 bita i ključem od 128 bita, a koristi se miješanim operacijama iz različitih algebarskih grupa. Smatra se vrlo sigurnim, a širu popularnost doživio je zahvaljujući programskom paketu PGP (Pretty Good Privacy) koji ga podržava. Patentiran je, i prava na njega drži Ascom Systec. Međutim, za nekomercijalnu uporabu je besplatan.
IDEA algoritam ima sastoji se od 8 iteracija tzv. rundi (round), nakon čega slijedi završna transformacija. Koristi se ukupno 52 različita 16-bitna međuključa koji se generiraju iz početnog 128-bitnog ključa.
Algoritam izgleda ovako:
rastavi
izvorni tekst u blokove od 64 bita
za svaki
blok ponavljaj
rastavi blok u segmente po 16
bitova X1..X4
generiraj 16 podključeva K1(r)..K6(r)
za 1 £ r £ 8 i K1(9)..K6(9)
za r=1 do 8
X1=X1¤K1(r), X4=X4¤K4(r)
X2=X2 K2(r), X3=X3 K3(r)
X2=X2 K2(r), X3=X3 K3(r)
t0= K5(r)¤(X1ÅX3)
t1= K5(r)¤(t0 (X2ÅX4))
t2=t0 t1
X1=X1Åt1
X4=X4Åt2
t3=X2Åt2
X2=X3Åt1
X3=t3
Y1=X1¤K1(9)
Y4=X4¤K4(9)
Y2=X3 K2(9)
Y3=X2 K3(9)
spoji segmente Y=(Y1,Y2,Y3,Y4)
spoji blokove Y u
izlazni niz
slika 3.3: shematski prikaz IDEA algoritma
Najpopularniji i najkorišteniji algoritam za enkripciju nesumnjivo je DES. U zadnjih nekoliko godina objavljeno je nekoliko uspješnih napada na DES, koristeći posebno konstruirane sklopove odnosno velike mreže desetina tisuća računala. Prije nego što je to učinjeno, već je bilo jasno da je samo pitanje vremena kada će procesorska snaga dostići sigurnost koju pruža ključ od relativno skromnih 56 bita. Kako bi se na vrijeme našla zamjena, US National Institute of Standards and Technology (NIST) organizirao je svojevrsno natjecanje za novi algoritam koji će zamijeniti DES, zadovoljiti današnje potrebe, a biti dostatan i za nekoliko idućih desetljeća. Zahtijevano je da algoritam bude javno dostupan i besplatan, te da omogućava simetričnu enkripciju podataka u blokovima od najmanje 128 bita, s ključevima duljine 128, 192 i 256 bita. Akcija je pokrenuta 1997. godine. Izbor je vršen u tri kruga: u prvom krugu bilo je prijavljeno 15 algoritama, od kojih je 1998. svega 5 odabrano za drugi krug. U drugom su krugu ostali algoritmi: MARS, RC6, Rijndael, Serpent, i Twofish. U zadnjem krugu, održanom 2. listopada 2000, kao pobjednik je izišao Rijndael (čita se rajndal). Ovaj algoritam otada se službeno zove AES, djelo je dvojice poznatih belgijskih kriptografa Joana Daemena i Vincenta Rijmena. AES algoritam temelji se na blokovima od 128, 192 ili 256 bita i ključu od 128, 192 ili 256 bita., pri čemu duljina ključa i duljina bloka ne moraju biti isti. Jednostavan je za softversku i hardversku implementaciju i vrlo brz. Koristi samo jednu jedinu logičku operaciju (xor), i samo jednu aritmetičku operaciju (+). Moguće ga je izvršavati paralelno i ne zahtijeva mnogo memorije [9].
Rijndael je blokovski iterativni
kriptoalgoritam sa varijabilnom duljinom ključa i varijabilnom duljinom.
Izvorni tekst se prvo rastavi na blokove duljine n Î {128, 192, 256 } a zatim se nad blokovima obavlja niz
iteracija (tzv. rundi – round).
Međurezultat nakon svake runde zove se stanje
(S). Svaka runda sastoji se od 4
različite transformacije. Ukupni broj rundi ovisi o duljini ključa i duljini
bloka na slijedeći način (Nr – broj
rundi, Nb – duljina bloka u 32-bitnim riječima, Nk – duljina ključa u 32-bitnim
riječima):
Nr |
Nb=4 |
Nb=6 |
Nb=8 |
Nk=4 |
10 |
12 |
14 |
Nk=6 |
12 |
12 |
14 |
Nk=8 |
14 |
14 |
14 |
Stanje S i ključ K su reprezentirani dvodimenzionalnim poljem sa 4 retka i 4, 6 ili
8 stupaca ovisno o duljini bloka odnosno ključa:
s0,0 |
s0,1 |
s0,2 |
s0,3 |
s0,4 |
s0,5 |
s0,6 |
s0,7 |
s1,0 |
s1,1 |
s1,2 |
s1,3 |
s1,4 |
s1,5 |
s1,6 |
s1,7 |
s2,0 |
s2,1 |
s2,2 |
s2,3 |
s2,4 |
s2,5 |
s2,6 |
s2,7 |
s3,0 |
s3,1 |
s3,2 |
s3,3 |
s3,4 |
s3,5 |
s3,6 |
s3,7 |
k0,0 |
k0,1 |
k0,2 |
k0,3 |
k0,4 |
k0,5 |
k0,6 |
k0,7 |
k1,0 |
k1,1 |
k1,2 |
k1,3 |
k1,4 |
k1,5 |
k1,6 |
k1,7 |
k2,0 |
k2,1 |
k2,2 |
k2,3 |
k2,4 |
k2,5 |
k2,6 |
k2,7 |
k3,0 |
k3,1 |
k3,2 |
k3,3 |
k3,4 |
k3,5 |
k3,6 |
k3,7 |
Algoritam koristi
aritmetičke operacije nad elementima konačnog polja GF(28). Elementi ovog polja su bajtovi, reprezentirani
polinomima, tako da su pojedinačni bitovi koeficijenti polinoma: a7x7+a6x6+a5x5+a4x4+a3x3+a2x2+a1x+a0,
ai Î{0,1}. Operacija zbrajanja se svodi na zbrajanje koeficijenata po modulu 2,
što se svodi na jednostavnu XOR operaciju nad binarnim reprezentacijama
polinoma. Operacija množenja je nešto složenija i sastoji se od množenja
polinoma i nakon toga reduciranja umnoška po modulu m(x) = x8 + x4 + x3 + x + 1, odnosno
11B u heksadecimalnoj notaciji..
Evo cijelog algoritma:
Rastavljanje originalnog teksta na blokove
S0..Sm
Nk=duljina ključa (32-bitnih riječi)
Nb=duljina bloka (32-bitnih riječi)
Nr=broj iteracija - rundi (vidi tablicu)
KeyExpansion(K,EK)
za svaki Si ponavljaj
AddRoundKey(Si,EK)
ponavljaj Nr-1
puta
ByteSub(Si)
ShiftRow(Si)
MixColumn(Si)
AddRoundKey(Si,
,EK)
kraj
ByteSub(Si)
ShiftRow(Si)
AddRoundKey(Si,EK)
kraj
Spajanje segmenata S0..Sm u
izlazni niz
Slijedi
detaljan opis funkcija ByteSub, ShiftRow, MixColumn i
AddRoundKey.
KeyExpansion je
operacija ekspanzije ključa duljine Nk
na duljinu Nb*(Nr+1). Iz ovako
ekspandiranog ključa uzimaju se ključevi za pojedinu rundu, tako da se za i-tu rundu koristi ključ koji se sastoji
od W[Nb*i]..W[Nb*(i+1)] (slika 3.4). Prvih Nk riječi ekspandiranog ključa predstavlja originalni ključ. Ostale
riječi se računaju tako da se riječ Wi
za i>Nk dobije kao W[i-1] XOR W[i-Nk]. Ako je i djeljivo sa Nk, tada se nad riječi W[i-1]
prije operacije XOR obavi dodatna transformacija.
slika 3.4: Ekspanzija ključa, za primjer sa
ključem duljine 128 bita i duljinom bloka od 192 bita. Duljina riječi Wi je 32 bita. Riječi W0..W3 predstavljaju
originalni 128-bitni ključ.
ByteSub je nelinearna transformacija nad svakim
elementom stanja S. Ovom operacijom
dobiva se nova matrica supstitucijom bajtova početne matrice koristeći matricu
supstitucije (S-box). Matrica supstitucije se dobiva kompozicijom dviju
transformacija: prvo se element zamijeni svojim inverznim elementom ( a-1 : a · a–1 =1, aÎGF(28) ) a
zatim se izvrši afina transformacija:
slika 3.5:
ByteSub operacija
ShiftRow operacija ciklički posmiče retke stanja S za različite posmake. Prvi redak se ne posmiče. Drugi redak se posmiče za C1 bajtova, treći za C2 bajtova i četvrti za C3 bajtova. Posmaci C1, C2 i C3 ovise o duljinama ključa i bloka na slijedeći način:
Nb |
C1 |
C2 |
C3 |
4 |
1 |
2 |
3 |
6 |
1 |
2 |
3 |
8 |
1 |
3 |
4 |
slika 3.6: Operacija ShiftRow
MixColumn operacija tretira stupce stanja S kao polinome nad konačnim poljem GF(23) koji se zatim množe sa polinomom c(x)=03x3+01x2+01x+02 po modulu x4+1 (slika 3.7).
U matričnom obliku ova operacija se može prikazati kao:
slika 3.7:
Operacija MixColumn
AddRoundKey(Si) operacija se sastoji u XOR operaciji stanja S sa ključem pojedine runde (slika 3.8).
slika 3.8:
AddRoundKey operacija
Postoji mnoštvo
simetričnih algoritama, od kojih su neki prisutni već godinama i smatra se da
su dovoljno sigurni. To su Blowfish, CAST, RC4, RC6 itd. S pojavom AES
algoritma kao šireg standarda, očekuje se pad popularnosti ovih algoritama u
budućnosti.
Asimetrični algoritmi pojavili su se kao odgovor na problem prenošenja tajnog ključa preko nesigurnog kanala. Whitfield Diffie i Martin Hellman objavili su 1976. godine prvi asimetrični algoritam. Ovi algoritmi temelje se na generiranju para ključa, privatnog i javnog. Ovakvi algoritmi ponekad se nazivaju i algoritmi s javnim ključem. Ako se poruka kriptira privatnim ključem, može se dekriptirati samo javnim i obratno. Svaki sudionik u komunikaciji objavi svoj javni ključ potencijalnim sugovornicima, oni ga zatim koriste za kriptiranje poruke koju zatim može dekriptirati samo vlasnik privatnog ključa. Osim prijenosa poruka, ovaj mehanizam je i temelj za digitalno potpisivanje poruka (slika 3.9).
Kako se privatni i javni ključ matematički generiraju, moguće je poznavajući jedan od njih izračunati drugi. Asimetrični algoritmi formirani su na takav način da je izvođenje privatnog ključa iz javnog težak matematički problem. Današnji asimetrični algoritmi temelje se na tri klase matematičkih problema:
Asimetrični algoritmi u odnosu na simetrične algoritme sporiji su od 100 u softverskoj implementaciji, do 10.000 puta u hardverskoj, pa se stoga najčešće koriste za prijenos kratkih poruka (na primjer tajnih ključeva). Smatraju se vrlo sigurnima, a može ih kompromitirati jedino neočekivani napredak na polju rješavanja matematičkog problema na kojem počivaju.
slika 3.9 : shematski prikaz prijenosa poruke
asimetričnim algoritmom s javnim ključem
RSA algoritam razvili su 1977.g. Rivest, Shamir i Adleman. Algoritam radi na sljedeći način:
§ uzmimo dva velika prim broja (>100 znamenki), p i q
§
izračunamo njihov umnožak n=pq
§
odaberemo broj e<n koji je relativno
prost u odnosu na (p-1)(q-1) (znači
da nemaju zajedničkih djelitelja većih od 1)
§
odaberemo broj d takav da je (ed-1) djeljivo s (p-1)(q-1)
par (n,e) tada nam je javni a (n,d) privatni ključ.
Poruka m se tada kriptira s javnim ključem sugovornika (n,e) po formuli c = me mod n, a primalac je dekriptira sa svojim privatnim ključem (n,d) po formuli m = cd mod n i na taj način dobiva izvornu poruku m.
Vrlo je teško dobiti privatni eksponent d iz javnog ključa (n,e). Kada bismo znali od kojih dvaju brojeva pq je nastao n, mogli bismo dobiti d, pošto znamo e a (ed-1) je djeljivo s (p-1)(q-1). No kako su p i q veliki brojevi jednostavno ima previše kombinacija.
Sigurnost RSA algoritma temelji se na teškom matematičkom problemu faktorizacije (rastavljanju broja na proste faktore) velikih cijelih brojeva. Najbrži trenutno poznati algoritmi za faktorizaciju su NFS (number field sieve) i QS (quadratic sieve). Ovi algoritmi su vrlo zahtjevni, no, pronalaženje brzog i jednostavnog načina bi RSA algoritam učinilo neadekvatnim.
Brzina izvođenja RSA algoritma ovisi o efikasnom algoritmu za potenciranje po modulu p. Trenutno raspoloživi algoritmi za potenciranje po modulu p nisu naročito efikasni, u čemu leži i najveća mana RSA algoritma – njegova skromna brzina.
Duljina ključa kod RSA algoritma je varijabilna.
Algoritam koji je predložio ElGamal 1985. godine sličan je RSA algoritmu ali se temelji na teškom matematičkom problemu pronalaženja diskretnih logaritama po modulu p (gdje je p prost broj).
Odaberemo li proizvoljni prosti broj p te cijeli broj g između 0 i p-1 tada se može izračunati y=gx (mod p) za bilo koji x. Problem diskretnog logaritma tada se sastoji u pronalaženju broja x za zadani par (g,y).
Sigurnost ovog sustava ovisi o veličini broj p, koji bi trebao imati barem 1024 bitova.
ECC (Elliptic Curve Cryptography) algoritmi se umjesto na modularnoj aritmetici temelje na operacijama definiranim na eliptičkoj krivulji. Postoje varijacije RSA, ElGamal i Diffie-Hellman algoritma koji umjesto modularne aritmetike koriste operacije na eliptičkoj krivulji. Umjesto na problemu faktorizacije velikih cijelih brojeva, ECC počiva na problemu pronalaženja diskretnih eliptičnih logaritama (ECDLP). Kako je ovaj problem teži od faktorizacije, ECC algoritam postiže istu sigurnost kao i RSA algoritam, ali s manjim duljinama ključa. ECC algoritam s ključem duljine 160 bita pruža usporedivu sigurnost kao RSA algoritam s ključem od 1024 bita, no zbog kraćeg ključa brže se izvršava. ECC algoritmi počinju se šire prihvaćati u komercijalnim aplikacijama i može se očekivati da će u budućnosti dominirati područjem jakih enkripcijskih algoritama, stoga će biti detaljnije objašnjen. [10],[11],[12],[13]
ECC algoritam predložili su Victor Miller i Neal Koblitz 1985. godine. Na temelju ElGamal algoritma, umjesto grupe Zp* uzeli su grupu koja se sastoji od točaka eliptične krivulje definirane na konačnom polju.
Nad eliptičkom krivuljom se može konstruirati polje. Polje je algebarska struktura koja ima definirane operacije zbrajanja i množenja, te u kojoj moraju postojati inverzni elementi u odnosu na zbrajanje i množenje (osim za nulu). Osim navedenog, moraju vrijediti pravila asocijativnosti, komutativnosti i distributivnosti. Kako bi struktura bila polje, svaka od ovih operacija nad bilo kojim elementima polja mora opet davati element polja.
Operaciju zbrajanja nad eliptičkom krivuljom znači mora biti definirana tako da se zbrajanjem dvije točke na krivulji dobije treća točka koja je opet na krivulji. Na slici 3.10 se može vidjeti grafička reprezentaciju ove operacije.
slika 3.10:
grafička reprezentacija operacije zbrajanja na eliptičkoj krivulji
Točke na krivulji i operacija zbrajanja čine tzv. Abelovu grupu. Kako bi operacija bila u potpunosti definirana mora postojati i točka "nula". Ova točka nalazi se u +Y beskonačnosti. Operaciju množenja nad eliptičkom krivuljom definiramo kao višestruko zbrajanje. Slično definiramo i potenciranje kao višestruko množenje. Množenje i potenciranje na eliptičnoj krivulji je vrlo jednostavno, no njihove inverzne funkcije su teški matematički problemi i upravo na ovoj osobini se temelji ECC kriptoalgoritam.
Za potrebe kriptografije zanimljiva su tzv. konačna polja, koja imaju konačni broj elemenata. U ovom slučaju eliptička krivulja prolazi kroz konačni broj točaka sa cjelobrojnim koordinatama, koje čine grupu. Jedno od zanimljivih polja je GF(p)*, tzv. Galoisovo polje cijelih brojeva po modulu p. Posebno korisna svojstva ova grupa ima u slučaju kada je p vrlo veliki prosti broj. Eliptička krivulja ima jednadžbu:
Y2=x3+ax2+b (mod p)
Koeficijenti krivulje kao i broj p pažljivo se odabiru, kako bi računanje bilo što jednostavnije. Tako se za p često uzima 2192-264-1. Ova grupa ima približno 1058 članova.
Problem pronalaženja diskretnih logaritama
eliptičke krivulje (ECDLP – Elliptic Curve Discrete Logarithm Problem)
definiran je ovako: Za točke P i Q na eliptičkoj krivulji pronađi
broj k takav da vrijedi Pk=Q
ECC algoritam može poslužiti za razmjenu tajnog ključa za korištenje nekog od simetričnih kriptoalgoritama na slijedeći način [11]:
ECC sustav može se koristiti i za digitalni potpis poruke. Neka funkcija x(P) vraća x-koordinatu točke P na krivulji i neka je h sažetak poruke koju želimo potpisati a Ak je tajni a Ap je javni ključ osobe A tada:
generiranje potpisa:
§ par (r,s) je digitalni potpis poruke
provjera potpisa:
Efikasnost ovog algoritma ovisi o efikasnosti algoritma za zbrajanje točaka na eliptičkoj krivulji. Ova operacija sastoji se od nekoliko operacija u modularnoj aritmetici, te stoga efikasnost ovisi isto kao i kod RSA i ElGamal algoritma o brzini operacija u modularnoj aritmetici, s tom razlikom da je modul p kod ECC algoritma mnogo manji pa su kalkulacije stoga brže. Operacije se dodatno mogu ubrzati pažljivim odabirom konačnog polja nad kojim se definira eliptička krivulja, tako se npr. odabirom polja GF(2m) u kojem se aritmetičke operacije provode sa modulom koji je eksponent broja 2 postiže efikasnija implementacija na digitalnim računalima.
Funkciju f:X®Y zovemo jednosmjernom ako je jednostavno izračunati f(x) za svaki x Î X, ali je za sve yÎ Im(f) teško naći bilo koji x Î X za koji vrijedi f(x)=y. Ova definicija ovisi o definiciji riječi "jednostavno" i "teško". U praksi, "jednostavno" znači za red veličine milisekundi na prosječnom računalu, a "teško" znači da najjačem računalu u predvidivoj budućnosti treba milijune godina da dobije rezultat. Ovo se može postići tako da se odabere funkcija f takva da f -1(x) ima jako puno rješenja, pa isprobavanje svih mogućih rješenja, odnosno stvaranje tabele x, f(x) za sve x Î X nije praktički izvedivo. Uzmimo za primjer funkciju f(x)=x3 mod 91. Ako znamo njezino rješenje, (npr. 57), to nam ne pomaže puno da dobijemo x, pošto imamo samo ostatak od dijeljenja nekog broja s brojem 91. Znamo samo da je 91n+57= x3 a n može biti bilo koji broj! Kada bi nam netko dao n= x3 div 91 npr. 1373, tada bismo lako izračunali da je x3=1373*91+57=125000 i znači x=3Ö125000=50. Ovaj princip vrlo je važan za kriptografske algoritme.
Funkcija sažetka (hash function) je funkcija koja niz varijabilne dužine m preslikava u niz uvijek iste fiksne dužine n. Ako se za funkciju sažetka odabere neka jednosmjerna funkcija, onda se od sažetka više ne može rekonstruirati izvorna poruka. Budući da je najčešće m>n, za isti sažetak može postojati više različitih poruka, no, uz dobar odabir funkcije, vjerojatnost da dvije različite smislene poruke imaju isti sažetak zanemarivo je mala. Uz to, ne postoji jednostavan način da se namjerno konstruiraju dvije različite poruke koje bi rezultirale istim sažetkom (tzv. kolizije). Funkcije sažetka koriste se kod digitalnog potpisa i za provjeru integriteta poruke kao i u ostalim slučajevima kad je potrebna kratka reprezentacija dugačke poruke.
Postoje dvije vrste funkcija sažetka:
Funkcije sa ključem imaju dva ulazna parametra: izvorni tekst poruke i tajni ključ pošiljaoca. Rezultirajući sažetak omogućava nam provjeru integriteta poruke kao i identiteta pošiljaoca. Funkcije bez ključa imaju samo jedan ulazni parametar (izvorni tekst) i omogućavaju samo provjeru integriteta poruke. Kao sastavni element funkcije sažetka može poslužiti i bilo koji blokovski kriptoalgoritam, no najčešće se konstruiraju namjenske funkcije.
SHA (secure hash algorithm) je funkcija sažetka koja proizvoljni binarni niz manji od 264 pretvara u sažetak od 160 bitova. U originalnom obliku iz 1994. godine imao je malu grešku, koja je kasnije ispravljena i algoritam je nazvan SHA-1. Uz MD5 ovo je najkorišteniji algoritam, a zbog veće otpornosti na kolizije smatra se sigurnijim od MD5.
MD (Message digest) algoritme razvio je Ronald Rivest. Svi ovi algoritmi na osnovu proizvoljnog binarnog niza generiraju sažetak od 128 bita. MD2 je optimiziran za 8-bitne procesore, dok su MD4 i MD5 optimizirani za 32-bitne.
MD2 se sastoji od proširivanja poruke na duljinu djeljivu s 16, generiranja 16-bitnog kontrolnog zbroja te računanja jednosmjerne funkcije sažetka od dobivenog niza. Sigurnost funkcije ovisi o slučajnoj permutaciji bajtova, koja ovisi o 256 znamenaka, za koje se uzima prvih 256 znamenaka broja p (S0 ...S255). Algoritam izgleda ovako [7]:
proširivanje poruke M na duljinu m djeljivu
sa 16
dodavanje poruci 16-bitnog kontrolnog
zbroja
X0=X1=..=X15=0
za i=0 do m/16-1
X16=M(i*16), X17=M(i*16+1),...,X31=M(i*16+15)
X32=X0
Å X16 , X32=X1
Å X17 , ..., X47=X15
Å X31
t=0
za j=0 do 17
Za
k=0 do 47
t=Xk Å St
Xk=t
t=(t+j) mod 256
sažetak je u X0..X15
MD4 se sastoji od proširivanja poruke na duljinu za 64 manju od broja djeljivog s 512, na koji se dodaje 64-bitni broj koji predstavlja duljinu poruke. Ovakva poruka podvrgava se iterativnom računanju jednosmjerne funkcije, što rezultira na kraju s 128-bitnim sažetkom. Ovaj algoritam se pokazao nesigurnim i sada je napušten..
MD5 je danas najčešće primjenjivan algoritam, a temelji se na MD4 algoritmu u kojem su ispravljeni nedostaci, no uočeni su novi: pokazalo se da je moguće konstruirati koliziju, odnosno dvije poruke koje daju isti MD5 sažetak, što umanjuje upotrebljivost ovog algoritma u nekim situacijama..
Digitalni potpis je elektronički ekvivalent vlastoručnog potpisa. Digitalni potpis mora ispunjavati sljedeće zahtjeve:
§ potpis nije moguće falsificirati
§ bilo tko može ustvrditi postojanje i autentičnost potpisa
§ ako je potpis vezan uz poruku sadržaj poruke nije se nakon potpisivanja mijenjao
§ potpisnik može dokazati da je to njegov potpis
§ potpisnik poruke ne može osporiti činjenicu da je poruku potpisao
Digitalni potpis temelji se na asimetričnom kriptoalgoritmu s javnim ključem. Na osnovu poruke prvo se generira sažetak, koji se zatim kriptira privatnim ključem potpisnika. Primalac poruke provjerava potpis tako da prvo izračuna sažetak poruke, zatim dekriptira sažetak kriptiran javnim ključem potpisnika, i ako se ova dva sažetka poklapaju znači da je potpisnik stvarno vlasnik privatnog ključa koji odgovara javnom ključu koji je korišten kod dekriptiranja, te da je poruka koja je došla na odredište ista ona, i nepromijenjena, koju je potpisnik potpisao.
Danas najčešći standardi za digitalni potpis su RSA i DSS.
RSA digitalni potpis temelji se na RSA asimetričnom kriptoalgoritmu. Kao funkcija sažetka u kombinaciji s RSA algoritmom obično se koristi MD5.
DSS (digital signature standard) je standard koji propisuje način dobivanja, provjere i korištenja digitalnog potpisa. Digitalni potpis koji se propisuje u ovom standardu računa se prema DSA (digital signature algorithm) algoritmu. Ovaj algoritam je baziran na problemu diskretnih logaritama, ali se, za razliku od RSA algoritma, ne može koristiti za enkripciju, već samo za potpisivanje. Generiranje potpisa puno je brže od njegove verifikacije (za razliku od RSA algoritma, gdje je obrnuto). Danas se rijetko koristi.
Digitalno potpisivanje poruke moguće je samo ako potpisnik ima pristup izvornoj poruci. U situacijama kada potpisnik ne smije vidjeti originalnu poruku koju potpisuje, primjenjuje se slijepi digitalni potpis. Ovakva situacija nastupa kod podizanja e-gotovine iz banke (Chaum e-cash [18]), pri čemu korisnik ne želi da banka dobije podatak o serijskom broju novčanice, kako bi se zaštitila privatnost korisnika.
Slijepi digitalni potpis razlikuje se od običnog digitalnog potpisa samo u tome što se prije potpisivanja originalna poruka "prikriva" množenjem sa slučajnim brojem r potenciranim s javnim eksponentom banke. Nakon potpisa privatnim bančinim ključem, poruka se "otkriva" dijeljenjem sa slučajnim brojem r, ali sada je ostatak poruke potpisan bančinim privatnim ključem. Ovo je moguće zato što su funkcija prikrivanja i funkcija potpisivanja komutativne.
Slijepi digitalni potpis pruža savršenu anonimnost korisniku novca. Kako ovo otvara velike mogućnosti kriminalcima i onemogućava organima pravne države da prate novac u slučaju zlouporabe, predložena je modifikacija slijepog potpisa na taj način da se kod organizacije u koju svi imaju povjerenja pohrani ključ koji omogućava potpisniku da utvrdi identitet korisnika novca, ako se za to pojavi opravdan razlog (npr. sudski nalog). Ovaj sustav predložili su M. Stadler i ostali [15]. To se postiže na taj način da se prilikom izdavanja novčanice i potpisivanja koristi algoritam koji uz tajni ključ banke uzima i javni ključ suca. Kad se javi potreba za otkrivanjem identiteta, sudac će svojim privatnim ključem doći do identiteta korisnika novca.
Pametna kartica (SmartCard) je plastična kartica veličine kreditne kartice. Na sebi ima integrirani sklop koji sadrži određenu količinu memorije i/ili mikroprocesor. S gornje strane nalazi se nekoliko bakrenih kontakata. Nema vlastito napajanje niti ulazno-izlazne jedinice. Otporna je na neovlašteno modificiranje (tamper-resistant).
Kartice s mikročipom postoje već tridesetak godina. Koriste se za telefoniranje na javnim telefonskim govornicama, za kontrolu pristupa u zaštićene prostorije, za identifikaciju, u GSM telefonima, satelitskim TV receiverima itd.
Postoje kartice koje imaju samo memoriju (zaštićenu ili nezaštićenu), te kartice s mikroprocesorom različitih performansi, od 8-bitnog s 0,5 kb RAM memorije i 8 kb EEPROM-om, do 32-bitnog mikroprocesora s matematičkim koprocesorom.
Za primjenu u sustavima elektroničkog novca prvenstveno su zanimljive mikroprocesorske kartice koje su u stanju izvršavati kriptografske algoritme.
Procesor na kartici, zajedno s memorijom, čini mikroračunalo koje ima vlastiti operacijski sustav koji izvršava aplikacije pohranjene u memoriji kartice. Kartica posjeduje izbrisivu (RAM) i neizbrisivu (ROM) memoriju.
Kartica se koristi tako da se umetne u čitač koji joj osigurava napajanje i komunikaciju s vanjskim svijetom. Za primjenu u elektroničkom plaćanju pametne kartice zanimljive su prvenstveno zato što mogu izvršavati kriptoalgoritme na osnovu tajnih ključeva koji se nalaze na samoj kartici, što ih čini sigurnima, pošto se ključ nikako ne može izvana očitati.
Pametne kartice mogu biti višefunkcionalne, ako im to njihov operacijski sustav dopušta. Naime, ista kartica može biti elektronički novčanik za e-gotovinu, kreditna kartica i telefonska kartica.
Prilikom provedbe elektroničkih plaćanja potrebno je koristiti nekoliko sigurnosnih elemenata: kriptografski algoritam, digitalni potpis i funkciju sažetka. Ovi elementi ujedinjeni su u protokolima koji propisuju standardizirani način korištenja tih elemenata.
SSL (secure socket layer) je danas najkorišteniji protokol za zaštitu tajnosti poruka. Koriste ga gotovo svi Internet pretraživači, i postao je de facto standard za naplatu kreditnih kartica na Internetu. Implementiran je kao dodatni sloj na TCP/IP komunikacijskom protokolu [16].
slika 3.11 : SSL protokol implementiran je kao dodatni sloj na TCP/IP
protokol, tako da protokol višeg sloja (npr. HTTP) transparentno pristupa
komunikacijskom kanalu.
SSL protokol nastao je kao neslužbeni projekt unutar tvrtke Netscape Communications. Zahvaljujući velikom broju korisnika njihovog web pretraživača, brzo je dobio na popularnosti, iako nije prošao standardnu proceduru koju prolaze otvoreni internet standardi, i do danas nije objavljen u obliku RFC dokumenta.
SSL protokol omogućava sigurnu vezu sa sljedećim osobinama:
§ privatnost – komunikacija putem SSL-a nerazumljiva je prisluškivaču sa strane
§ identitet sudionika u komunikaciji može se autentificirati korištenjem algoritma s javnim ključem
§ veza je pouzdana – osiguran je integritet i nepromjenjivost poruke koja se šalje
SSL protokol koristi se kombinacijom asimetričnog kriptografskog algoritma za razmjenu tajnih ključeva, te simetričnim algoritmom za prijenos poruke, koja se dodatno komprimira.
Sjednica (session) počinje tako da se u pretraživaču umjesto HTTP:// kao URL navodi HTTPS://, što pretraživaču govori da se umjesto na port 80 web spoji na port 443 servera. Protokol se sastoji od dva sloja: sloja rukovanja i sloja slogova. Na početku SSL sjednice izvodi se protokol za rukovanje (handshake protocol) koji teče na sljedeći način:
§ dogovori se verzija SSL protokola kojim će se komunikacija nastaviti
§ dogovore se kriptografski algoritmi koji će se koristiti
§ opcionalno se obavi međusobna autentifikacija sudionika razmjenom certifikata
§ opcionalno se obavi verifikacija certifikata
§ asimetričnim kriptoalgoritmom izmjene se 48-bajtni pre-master ključevi
§ svaka strana generira glavni ključ iz pre-master ključa
§ iz glavnog ključa svaka strana generira ključ za dogovoreni simetrični algoritam
slika 3.12:
tok faze rukovanja u SSL protokolu prilikom otvaranja nove sjednice.
Operacije u uglatim zagradama su opcionalne
Nakon faze rukovanja, počinje razmjena aplikacijskih podataka. Ako u tijeku komunikacije nastane potreba za promjenom parametara sjednice (vrsta kriptoalgoritma ili slično) ili se pojavi potreba za otvaranjem dodatne sjednice s istim parametrima, obavi se dodatno rukovanje, koje međutim ne sadržava ponovnu izmjenu ključeva, već se nastavlja koristiti stari. Ovo je bitno zbog poboljšanja performansi, pošto je generiranje i izmjena ključeva procesorski zahtjevna operacija.
slika 3.13: tok operacija pri otvaranju
dodatne sjednice sa istim serverom. Izostavljena je razmjena ključeva.
SSL protokol za generiranje tajnog ključa koristi kombinaciju MD5 i SHA algoritma, a za razmjenu pre-master ključeva koristi se RSA i Diffie-Hellman algoritam. Za prijenos poruka koristi se obično DES, a može se specificirati i neki drugi algoritam. Na temelju tajnog glavnog ključa od 48 bajtova svaka strana izračunava ključ za pojedini kriptografski algoritam. Za glavni simetrični kriptoalgoritam može se koristiti više algoritama, s ključevima od 40, 56 ili 128 bita (RC2, RC4, IDEA, DES, 3DES itd. vidi tablicu 3.1). Browseri koji su proizvedeni u SAD-u (Netscape communicator i Internet explorer) podliježu američkim izvoznim propisima koji su zabranjivali izvoz tehnologije koja sadrži kriptoalgoritme s ključevima većim od 40 bita. Ovime je sigurnost SSL protokola znatno narušena. Dodatno, propusti u implementaciji SSL protokola u Internet exploreru i Netscape communicatoru koji omogućavaju potpuno zaobilaženje SSL sigurnosti, dovele su SSL protokol na zao glas. U praksi se usto pokazalo da se daleko više brojeva kreditnih kartica ukrade s računala trgovca nego iz komunikacijskog kanala, pa i kad bi bio potpuno siguran SSL, ne rješava pitanje sigurnosti pri plaćanju kreditnim karticama.
Algoritam |
vrsta |
duljina ključa |
IDEA |
simetrični, blok |
128 |
RC2-40 |
simetrični, blok |
40 |
RC4-40 |
simetrični |
40 |
RC4-56 |
simetrični |
56 |
RC4 |
simetrični |
128 |
DES-40 |
simetrični, blok |
40 |
DES |
simetrični, blok |
56 |
3DES |
simetrični, blok |
168 |
Skipjack |
simetrični |
80 |
RSA |
asimetrični |
razmjena ključeva |
Diffie-Hellman |
asimetrični |
razmjena ključeva |
MD5 |
sažetak |
|
SHA-1 |
sažetak |
|
tablica
3.1: kriptoalgoritmi koje podržava SSL
SSL protokol je procesorski zahtjevan. Najveći problem predstavlja generiranje i razmjena ključeva u fazi rukovanja. Kako svaka nova sjednica zahtijeva novi par ključeva, tako se ovime znatno opterećuje server. Pentium III procesor na 500 MHz treba oko 24 ms za generiranje jednog ključa, što znači da u jednoj sekundi može generirati cca 40 ključeva. U stvarnom radu, ovaj broj je dvostruko manji, što znatno ograničava broj sjednica koje server može ostvariti u jednoj sekundi. Zahtjevnije primjene međutim zahtijevaju više stotina sjednica u sekundi, što se onda rješava posebnim SSL serverima, odnosno hardverskim akceleratorima, koji služe za implementaciju SSL protokola ne opterećujući web server.
Osim SSL protokola postoje i vrlo slični TLS (Transport Layer Security) i WTLS (Wireless Transport Layer Security) namijenjen bežičnoj komunikaciji.
TLS (Transport Layer Security) protokol je po namjeni identičan SSL protokolu. Nastao je na temelju SSL protokola verzije 3.0. Iako su razlike minimalne, ova dva protokola nisu potpuno kompatibilna. Koristi se isti TCP port, a posebni mehanizam omogućava njihovu koegzistenciju. Osnovni motiv za stvaranje novog protokola toliko sličnog starom je prvenstveno političke prirode. Internet zajednica nevoljko prihvaća protokole koji su u vlasništvu pojedinih kompanija, a SSL je patentiran od strane tvrtke Netscape communications. TLS protokol ima manja tehnička poboljšanja u odnosu na SSL verziju 3. IETF (Internet Engineering Task Force) nastavlja razvijati TLS protokol, iako on nije šire prihvaćen. [17]
SET (Secure Electronic Transaction) je protokol koji su zajednički razvili VISA i Mastercard uz suradnju kompanija kao što su Microsoft, Netscape, RSA, VeriSign itd. SET je nastao uslijed potreba za sigurnu autorizaciju kreditnih kartica preko Interneta. Ovim protokolom trgovac šalje centru za naplatu kartica podatke o kupcu, kreditnoj kartici i narudžbi koju kupac plaća. Centar za naplatu najprije provjerava trgovca, je li ovlašten naplatiti narudžbu karticom, a zatim i kupca odnosno njegovu karticu. Svaka poruka nosi i elektronički potpis, koji primalac provjerava.
SET se sastoji od nekoliko komponenti:
§ klijent – aplikacija na računalu klijenta, koja sadrži podatke o kupcu i njegovoj kartici, a u stanju je SET protokolom komunicirati s trgovcem, centrom za naplatu i centrom za certifikaciju.
§ server – komponenta koja se nalazi na računalu trgovca, obično kao dio veće e-business aplikacije. Prihvaća poruke SET protokolom od kupca, te komunicira s centrom za naplatu i certifikatorom.
§ Centar za naplatu (payment gateway), komponenta koju instalira tvrtka koja ima ugovore s više kartičara i banaka, i koja obavlja uslugu autorizacije kartica trgovcima. Na ovaj način ne mora trgovac biti u kontaktu sa svim kartičarima, jer to za njega obavlja centar za naplatu.
§ Certifikator – komponenta koja se nalazi na računalu banke ili neke druge organizacije zadužene za certifikaciju digitalnih potpisa. Certifikator izdaje certifikate svim sudionicima u SET transakcijama (kupcu, trgovcu i centru za naplatu) kako bi pri komunikaciji jedni s drugima mogli provjeriti valjanost javnih ključeva odnosno identiteta sugovornika.
Pri plaćanju prema SET protokolu tok akcija je slijedeći:
slika 3.14: tok akcija pri plaćanju prema
SET protokolu
Kao što je vidljivo, ovaj sustav je vrlo složen. Zahtijeva da svi sudionici u transakciji budu on-line, a kupac mora čekati da se svi koraci provjere obave prije nego što dobije robu.
SET protokol koristi kombinaciju simetričnog (DES) kriptiranja za razmjenu poruka i asimetričnog (RSA) kriptiranja za transport tajnih ključeva. Kupac, trgovac i centar za naplatu moraju biti on-line. SET sustav osigurava i odgovarajuće certifikate, kako bi identitet sudionika bio zajamčen. Novija varijanta SET standarda zove se 3DSET i proširena je na način koji omogućava kupcu dobivanje računa u elektroničkom obliku, koji bi trebao biti formalnopravno valjan.
Uporaba kreditnih kartica na Internetu ima dva velika nedostatka: mala sigurnost i velika cijena po transakciji. SET protokolom nastoje se riješiti ovi problemi, kako bi kreditne kartice ostale u uporabi i nakon širenja drugih vidova elektroničkog novca. Iako formiran još 1995. godine i podržan od najvećih kartičara i IT kompanija, SET standard nije doživio široku primjenu. U zadnjih godinu dana, VISA i Mastercard pokrenuli su nove inicijative za uvođenje tehnologije sigurnih on-line transakcija kreditnim karticama (Secure Payment Application - SPA i 3D Secure).
Elektronička plaćanja po svojoj su funkcionalnosti ekvivalent nekog od klasičnih ne elektroničkih plaćanja. Vrste plaćanja mogu se podijeliti na dvije grupe
§ notacijsko ili bezgotovinsko
§ simboličko ili gotovinsko
slika 4.1: klasifikacija elektroničkih vrsta
plaćanja
Razlika između ova dva sustava je u načinu na koji i trenutku kada novac mijenja vlasnika. Notacijski sustav temelji se na dokumentu (nalogu, čeku, kartici) koji sam za sebe nema vrijednost, već je svojevrsni nalog banci u kojoj je novac pohranjen da ga u trenutku kada joj se prezentira nalog prebaci s računa kupca na račun trgovca. Simbolički sustav temelji se na simbolu koji zaista nosi u sebi vrijednost (npr. novčanica ili kovanica), i samim ustupanjem simbola ustupa se i sama novčana vrijednost.
Ove vrste klasičnog plaćanja imaju i svoje elektroničke ekvivalente.
Kod notacijskog sustava kupac koji ima otvoren račun u banci koristeći jedan od oblika bezgotovinskog plaćanja zapravo trgovcu predaje nalog za prebacivanje sa svog računa na račun trgovca. U našem je slučaju to elektronički nalog. To može biti e-ček, kreditna kartica, debitna kartica i slično.
Elektronički ček je elektronički ekvivalent klasičnog papirnatog čeka. Izdaje ga kupac trgovcu, a trgovac ga polaže u svoju banku, koja obavlja naplatu od banke izdavaoca.
Elektronički ček je vrlo sličan. Evo kako teče proces naplate:
1. banka izdaje ček kupcu
2. kupac upisuje u elektronički ček iznos i datum, potpisuje ga svojim digitalnim potpisom i predaje trgovcu. Prazni ček već je prije bio potpisan digitalnim potpisom banke koja ga je izdala. Trgovac izdaje robu kupcu.
3. trgovac upisuje na ček svoj broj računa i prosljeđuje e-ček svojoj banci, potpisujući ga svojim digitalnim potpisom
4. trgovčeva banka provjerava potpis trgovca i potpis banke izdavaoca i prosljeđuje ček banci izdavaocu na naplatu
5. banka izdavalac provjerava svoj digitalni potpis i digitalni potpis kupca na prispjelom čeku, provjerava stanje novca na računu i, ako je sve u redu, prebacuje novac s računa kupca na račun trgovca.
E-ček predstavlja rizik za trgovca pošto ne može znati da li kupac ima na svom računu u banci dovoljno novca za pokriće čeka. Osim toga, kupac može falsificirati svoj digitalni potpis. Ako želi biti siguran, trgovac mora imati on-line vezu s bankom izdavaocem čeka, što bitno komplicira i poskupljuje transakciju jer banaka može biti mnogo.
slika 4.2: dijagram transakcije u slučaju
plaćanja e-čekom
Kreditna kartica nije elektronički način plaćanja, ali budući da se plaća prijenosom informacije koja ne mora imati svoju materijalnu inkarnaciju (broj kartice, nosilac i datum valjanosti), moguće je njome plaćati u sustavima koji omogućavaju elektronički prijenos poruke. Osim svoje funkcije naloga za plaćanje, kreditne kartice imaju i dodatnu funkciju odgode plaćanja odnosno kredita. Plaćanje kreditnom karticom zbog velike je raširenosti kartica postalo najzastupljeniji način plaćanja na Internetu. Proces naplate kreditne kartice teče ovako:
1. Banka izdaje kupcu kreditnu karticu
2. Kupac šalje trgovcu podatke sa svoje kartice (broj kartice, ime nosioca, datum valjanosti).
3. Trgovac preko on-line sustava provjerava valjanost kartice kod banke izdavaoca ili druge institucije (autorizacija).
4. Ako je kartica valjana, šalje autorizacijskoj instituciji iznos koji kupac želi platiti; ako je iznos ispod limita koji ima kartica kupca, dobiva odobrenje za naplatu.
5. Nakon što je dobio odobrenje, bilježi kod sebe broj transakcije koje je dobio skupa s odobrenjem. Predaje kupcu robu i kopiju autorizacije s brojem transakcije.
6. Autorizacijski centar obavlja kliring transakcije s bankom
7. Periodično kartičar plaća trgovcu za sve uspješno autorizirane transakcije.
8. Periodično kupac dobije račun od kartičara za sve troškove koje je napravio u tijeku mjeseca.
slika 4.3: dijagram transakcije u slučaju plaćanja kreditnom
karticom
Plaćanje na otvorenim mrežama (npr. Internet) kreditnom karticom ima nekoliko nedostataka:
§ Sigurnost transakcije – ako se netko dokopa broja kartice može neovlašteno trošiti.
§ Cijena transakcije – postupak autorizacije i naplate košta cca 30 centi plus 3–5% od vrijednosti transakcije, tako da nije isplativ u slučajevima malih iznosa i malih trgovačkih marži. Granični iznos kod kojeg se isplati naplata karticom je 10 USD.
§ U trenutku naplate trgovac mora imati on-line vezu s bankom, kako bi provjerio valjanost kartice.
§ Transakcija je moguća samo između kupca i trgovca, nije moguća između dviju fizičkih osoba.
§ Banka odnosno izdavalac kartice raspolaže svim podacima o iznosima, mjestima i vremenima plaćanja, pa skladištenjem tih podataka može pratiti klijentove potrošačke navike, što narušava njegovu privatnost.
Postoje sustavi koji umanjuju rizik kod korištenja kreditne kartice za plaćanja na Internetu, među kojima su najčešći SSL i SET.
Debitna kartica je vrlo slična kreditnoj kartici, s tom razlikom da kupac mora u trenutku kupnje imati na računu novac. Trgovac tada preko on-line veze s bankom istodobno provjerava valjanost kartice i odmah prebacuje novac s računa kupca na svoj račun. Debitne kartice obično su zaštićene 4-znamenkastim PIN brojem, tako da u slučaju krađe lopov ne može njome neovlašteno trošiti. Četveroznamenkasti PIN dovoljan je sigurnosni element u slučaju kada ga se mora osobno ukucavati na tipkovnici bankomata, no u slučaju kada se on predaje elektronički sasvim sigurno nije dovoljan. Način plaćanja debitnom karticom ne omogućava naknadno "stopiranje" uplate, kao što je to kod kreditnih kartica. Debitna kartica ne predstavlja rizik za trgovca, no zahtijeva da se cijeli proces provjere i prijenosa novca obavi prije isporuke robe kupcu. Uz već spomenuti rizik kupca, ovo debitnu karticu čini nepraktičnom za korištenje na internetu.
Tijek naplate debitnom karticom:
1. Banka izdaje debitnu karticu nositelju računa
2. Kupac posjećuje www stranicu trgovca i upisuje broj kartice
3. Kupac daje banci nalog za prijenos sredstava trgovcu, upisuje svoj PIN
4. banka prenosi novac sa računa kupca na račun trgovca
5. trgovac provjerava stanje na svojem računu i izdaje robu
slika 4.4: dijagram transakcije u slučaju
plaćanja debitnom karticom
Za razliku od notacijskog sustava gdje novac zapravo nikada ne napušta banku, postoje sustavi kod kojih sama reprezentacija novca nosi njegovu vrijednost. Ovo znači da se iznos na računu umanjuje čim se elektronička novčanica podigne iz banke. Ako se e-novčanica izgubi, vlasnik je bez nje ostao trajno. Ova vrsta e-novca analogna je klasičnoj gotovini i zato se obično naziva e-gotovina.
E-gotovina ima osobnosti vrlo slične gotovini u stvarnom svijetu. Osobine
gotovine u stvarnom svijetu su sljedeće:
§
univerzalno
je prihvaćena
§
prihvaćena
je za plaćanja pravnih i fizičkih osoba
§
kupac pri
uporabi ostaje anoniman
§
verifikacija
autentičnosti novčanice lako se obavlja pri samoj kupnji
§
nije
potreban račun u banci
§
prenosiva
je između fizičkih i pravnih osoba
§
korisnici
ne moraju biti poslovno sposobni (npr. punoljetni)
Osim navedenih dobrih strana, gotovina ima i važne nedostatke:
§
relativno
visoki troškovi vezani uz proizvodnju i distribuciju
§
nepraktičnost
fizičkog nošenja veće količine
§
nepogodnost
za mala plaćanja (mikroplaćanja, manja od 1 USD)
§
na
raspolaganju je ograničen broj nominacija
§
neupotrebljivost
u području digitalne ekonomije
§
lako ga je
ukrasti
§
može se
krivotvoriti
§
postoji
više valuta, a konverziju prate troškovi
Elektronička gotovina mora zadržati dobre strane, a eliminirati što je
više moguće loših osobina klasične gotovine. Za razliku od ranije spominjanih
oblika elektroničkog plaćanja savršena e-gotovina ima sljedeće osobine:
1. mora biti omogućeno jednostavno
pretvaranje prave gotovine odnosno nekog drugog vida novca u e-gotovinu i
obrnuto
2. mora se onemogućiti krivotvorenje i
plaćanje dva puta istom e-novčanicom
3. kupac mora ostati anoniman
4. mora biti omogućena off-line provjera
autentičnosti
5. mora biti moguć prijenos bez autorizacije
treće strane (banke)
6. mora biti upotrebljiv bez računa u banci
7. mora se moći usitnjavati u željene iznose
8. mora biti ne interaktivan
9. mora biti jednostavan i nezahtjevan na
računalne resurse
U literaturi
najčešće spominjani modeli e-gotovine su Chaumov
model [18] i Brandsov model [19]. Oba
ova modela ispunjavaju zahtjeve iz točaka 1 – 4. Chaumov model predviđa detekciju
dvostruke potrošnje, a Brandsov njezino sprječavanje hardverskim sklopom. Samo
Brandsov model omogućava i usitnjavanje (točka 7). Ni jedan ni drugi model ne
predviđaju mogućnost prijenosa između osoba, već nakon svakog utržka primalac
mora novac položiti u banku, te ga ponovo podizati za daljnja plaćanja. Kod
prijenosa e-gotovine između dva
učesnika pojavljuju se dva problema:
Očito, sustav
koji će omogućavati prenosivost mora počivati na fizičkom sprječavanju
dvostruke potrošnje, pošto sama detekcija nije dovoljno dobra. Osim Chaumovog i
Brandsovog modela, u literaturi se spominje i Fergusonov model [20],
koji međutim ima propust u sigurnosnom sustavu, te Okamotov model, koji je nadogradnja na Brandsov i zadovoljava točke
1–7, ali je suviše složen i zahtjevan[21].
Točka 8 posebno je problematična. Ne interaktivnost podrazumijeva da je moguće poslati e-gotovinu samo posredstvom jedne jedine poruke, bez povratne poruke ili dodatne interakcije među korisnicima. Ranije predložene sheme predviđaju iterativni postupak između kupca i banke pri podizanju novca, i/ili između kupca i trgovca prilikom plaćanja. Ovakav model, međutim, ponudio je P. Morin [22], no model predviđa javnu svima dostupnu bazu svih izdanih novčanica s njihovom cjelokupnom povijesti, u kojoj bi svi mogli provjeravati ispravnost novčanica, naravno samo dok imaju on-line vezu s bazom.
E-gotovina se sastoji od e-novčanica koje su ekvivalenti papirnatih
novčanica i kovanica. Prije nego što može raspolagati s e-gotovinom, kupac je
mora podignuti u banci. Prilikom plaćanja trgovcu mora biti omogućena provjera
autentičnosti novčanice, pošto trgovac ne može biti siguran u poštenje kupca.
Postoje dva modela, ovisno o tome da li trgovac ima on-line vezu s bankom u
trenutku plaćanja ili ne.
Ako trgovac ima on-line vezu s bankom u trenutku kupnje, tada promet
e-gotovine ide na sljedeći način:
1. Kupac podnese banci nalog za izdavanje
e-novčanice. Banka zaprima zahtjev, provjerava identitet podnositelja zahtjeva
2. Ako je provjera uspješna, Banka umanjuje
saldo na računu podnositelja zahtjeva i izdaje e-novčanicu u zahtijevanom
iznosu, s jedinstvenim serijskim brojem i digitalnim potpisom banke s bančinim
privatnim ključem. U bazu podataka zabilježi serijski broj novčanice.
3. Kupac odlazi u virtualnu trgovinu, gdje kupuje robu ili usluge od
trgovca, te mu predaje elektroničku novčanicu
4. Trgovac kontaktira banku i traži provjeru
ispravnosti dobivene novčanice. Ako je novčanica ispravna, trgovac je odmah
polaže na svoj račun, i kupcu daje robu.
slika
4.5:
Promet e-gotovine u on-line sustavu
U off-line sustavu trgovac nema vezu s bankom u trenutku plaćanja, pa
stoga mora imati način provjere autentičnosti e-novčanice na licu mjesta. Model
stoga izgleda ovako:
1. Kupac podnese banci nalog za izdavanje
e-novčanice
2. Banka zaprima zahtjev, provjerava
identitet podnositelja zahtjeva i ako je provjera uspješna, umanjuje se saldo
na računu podnositelja zahtjeva, te izdaje e-novčanicu u zahtijevanom iznosu, s
jedinstvenim serijskim brojem i digitalnim potpisom banke s bančinim privatnim
ključem. U bazu podataka zabilježi serijski broj novčanice.
3. Kupac posjećuje virtualnu trgovinu, gdje
kupuje robu ili usluge od trgovca, te predaje trgovcu e-novčanicu. Trgovac
provjerava ispravnost bančinog potpisa uz pomoć bančinog javnog ključa. Trgovac
izdaje robu kupcu.
4. Trgovac polaže novac u banku. Banka
provjerava autentičnost potpisa izdavaoca i provjerava nije li novčanica već
ranije položena. Ako je sve u redu, uvećava iznos na računu trgovca.
slika
4.6:
Promet e-gotovine u off-line sustavu
Ovakav pojednostavljeni model ima
sljedeće nedostatke:
§
Obzirom na
to da banka u trenutku izdavanja novčanica kupcu zna njegov identitet, može za
svaku izdanu novčanicu uz serijski broj u bazi podataka zabilježiti datum i
vrijeme, te identitet kupca. Nakon što trgovac položi novac u banku, banka može
točno znati kada je i gdje za koji iznos kupac nešto kupio, što znatno narušava
privatnost kupca.
§
Obzirom na
to da su e-novčanice samo podaci (na disku ili u memoriji na kartici), kupac bi
mogao pojedinu novčanicu jednostavno iskopirati, i njome platiti dva puta u
dvije različite trgovine. Tada bi onaj trgovac koji je kao drugi pokušao
položiti novac naišao na odbijanje banke da mu prizna tu novčanicu, jer je već
ranije potrošena. Isto bi tako trgovac mogao novčanicu umnožiti prije polaganja
u banku, i položiti je više puta. Ovaj problem zove se problem dvostruke potrošnje i
ključan je u implementaciji e-gotovine.
§
Kako bi se
moglo provjeriti nije li novčanica već ranije položena u banku, trgovac mora
položiti gotovinu u istu onu banku koja ju je izdala, u banku koja sa bankom
izdavateljem ima on-line vezu ili negdje mora postojati centralni registar svih
novčanica u opticaju.
Ovi problemi rješivi su na različite načine. Jedan od njih predložio je
David Chaum [18] a drugi Stefan
Brands [19].
Kako bi se banci onemogućilo stvaranje baze podataka s identitetom i
serijskim brojem novčanice, može se prepustiti kupcu da generira serijski broj
novčanice, koji će zatim tehnikom prikrivanja sakriti od pogleda banke, te će
takvu novčanicu predati banci na slijepi potpis. No, obzirom na to da banka
potpisuje novčanicu čiji joj je sadržaj nepoznat (kupac može reći da je to novčanica
od 1$, a zapravo je od 100$), primjenjuje se tehnika "podijeli i
odaberi" (cut and choose). U shemi koju je predložio D. Chaum [18],
kupac priredi n novčanica s istim
iznosom, ali svaka od njih nosi drugi serijski broj. Svih n novčanica podnese banci na potpis, a banka odabere n-1 i za njih od kupca zahtijeva da ih
"otkrije". Ako pregled pokaže da je svih n-1 novčanica stvarno na iznos koji je kupac rekao, i ako su
ispravni serijski brojevi, banka tada "na slijepo" potpisuje onu
jednu preostalu novčanicu. Na ovaj način je onemogućeno kupcu da prevari banku,
pošto ne može znati kojih n-1
novčanica će banka pregledati, pa sve moraju biti ispravne. Tehnikom slijepog
potpisa kupcu je garantirana anonimnost, a novčanica koju je dobio nosi
ispravan potpis bankovnim tajnim ključem.
Problem s navedenim Cahumovim rješenjem je nezgrapnost "podijeli i
odaberi" procedure, pošto se za veliko osiguranje protiv prevare kupca
mora koristiti veliki broj n, što
znači da je komunikacija između banke i kupca mnogo opsežnija nego što je
neophodno.
Za razliku od navedene tehnike, S. Brands je predložio korištenje restriktivnog slijepog potpisa [19], koji se temelji na
matematičkom problemu reprezentacije u
grupama prvog reda. U literaturi se ova metoda naziva i zero knowledge proof. Restriktivni slijepi potpis omogućava
potpisniku da ograniči sadržaj koji potpisuje a da taj sadržaj ne vidi. Kupac je na taj način "prikrio"
svoj identitet a da nije kompromitirao sadržaj novčanice. Usto, Brandsov sustav
omogućava proizvoljne vrijednosti novčanice, čija se vrijednost smanjuje pri
svakom plaćanju. Ove dvije osobine, uz činjenicu da je za pohranu e-gotovine
potrebno manje prostora i manje procesorske snage, Brandsovu e-gotovinu čine
boljim rješenjem.
E-gotovina nije ništa drugo do digitalni podaci na disku računala ili u
memoriji kartice. Kao takvi, podložni su kopiranju. Kupac bi mogao jednom
podignutu novčanicu iskopirati i potrošiti je dva puta u dvije različite
trgovine, a trgovac to ne bi mogao ustanoviti. Trgovac bi saznao što se
dogodilo tek nakon pokušaja polaganja novca u banku. Isto tako, trgovac bi
nakon što je primio e-novčanicu od kupca istu mogao umnožiti, i položiti je na
svoj račun više puta. Problem dvostruke potrošnje može se riješiti na dva
načina:
§ prevencijom dvostruke potrošnje
§ detekcijom dvostruke potrošnje
Prevenciju dvostruke potrošnje moguće je izvesti ako se elektronički
novac nalazi pod nadzorom promatrača,
znači softvera ili hardvera u koje izdavalac (banka) ima povjerenja. Ovakav
model predložio je Brands. Ovo je praktično izvedivo ako se koristi hardverska
izvedba elektroničkog novčanika, u kojemu je kao poseban modul implementiran
promatrač, koji instalira banka i koji će voditi brigu da se jedna te ista
novčanica nikada ne može izdati dva puta. Problem kod ovakvog promatrača je taj
što kupac u njega ne može imati povjerenja. Može slutiti da promatrač o njemu i
njegovim potrošačkim navikama skuplja nekakve podatke, koje će prilikom idućeg "punjenja"
proslijediti banci. Kako bi u ovo bio siguran, njegov e-novčanik mora
kontrolirati svu komunikaciju između promatrača i vanjskog svijeta.
Ako ne postoji promatrač, ne postoji ni mogućnost sprječavanja dvostruke potrošnje, no najbolje što se može učiniti je otkriti slučaj kada se to desi, kao i identitet krivca. Pretpostavimo da je identitet svakog kupca sadržan u samoj e-novčanici, ali tako da su za njegovo otkrivanje potrebna barem dva različita ključa, od velikog broja mogućih. Prilikom svake kupnje trgovac će od kupca zatražiti da mu na osnovu slučajno odabranog broja generira jedan od ključeva, koji će zabilježiti na novčanicu. Kada trgovac položi novčanicu u banku, banka će imati ovaj ključ, ali kako samo jedan nije dovoljan, ne može otkriti identitet kupca. Ako kupac pokuša istu novčanicu potrošiti na drugom mjestu, drugi trgovac opet će zatražiti ključ na osnovu svojeg slučajnog broja, te će ga upisati u novčanicu. Kada i druga novčanica dospije u banku, banka će usporedbom serijskih brojeva ustanoviti da je jedna te ista novčanica potrošena dva puta i imat će za nju dva ključa. Ako su ova dva ključa jednaka, to znači da je trgovac pokušao prevariti banku položivši dva puta jednu te istu novčanicu, a ako su različiti, znači da je kupac dva puta potrošio istu novčanicu i na osnovu njih će banka otkriti identitet kupca i prema njemu poduzeti sankcije.
Mikroplaćanja (micropayments) su posebna vrsta e-gotovine, čija osobina su vrlo mali iznosi, reda veličine 1 centa ili čak manje. Ovakva vrsta plaćanja potrebna je za plaćanje vrlo jeftinih sadržaja, koji se međutim moraju kupovati vrlo brzo. Tipičan primjer potrebe za ovakvim plaćanjem je telefonska govornica. U toku telefonskog razgovora telefonska govornica mora svakih nekoliko sekundi naplatiti po vrlo mali iznos. Kako se transakcije moraju odvijati u kratkom roku, nema vremena za složene protokole i algoritme, niti za on-line vezu sa bankom. Stoga ova plaćanja moraju biti riješena kao off-line. Na mikroplaćanja se postavlja gornja granica dozvoljenog iznos plaćanja i to je iznos reda veličine 1 USD. Zahvaljujući ovom ograničenju, potreba za sigurnosnim mehanizmima je smanjena, pa i jednostavniji sustavi zadovoljavaju namjenu.
Protokoli koji se koriste pri razmjeni elektroničkog novca počivaju na sigurnosnom sustavu koji koristi više elemenata: algoritme za kriptiranje, funkcije sažetka, jednosmjerne funkcije, generatore slučajnih brojeva, lozinke itd. Svaki od ovih elemenata podložan je napadu zlonamjernog napadača. No u praksi se pokazalo da su najčešći i najuspješniji napadi usmjereni na ljude – korisnike sustava.
Svaki od algoritama koji se koristi ima nivo sigurnosti koji ovisi o težini matematičkog problema na kojem je baziran. Kod simetričnih i asimetričnih algoritama sigurnost ovisi o duljini ključa. Kako s vremenom računala i sklopovlje postaju sve brži i jeftiniji, a usto napreduju i saznanja na polju algoritama, minimalna duljina ključa se povećava. Minimalna potrebna duljina ključa za komercijalnu uporabu procijenjena je tako da se korištenjem najboljeg trenutno dostupnog algoritma i najbržeg trenutno dostupnog računala (ili mreže računala) ne može obaviti dekriptiranje poruke bez poznavanja ključa u prihvatljivom roku. Duljine ključa koje će biti potrebne u budućnosti procjenjuju se tako da se ekstrapoliraju postojeći podaci koristeći Mooreov zakon (procesorska snaga udvostručuje se svakih 18 mjeseci). U donjoj tabeli je vidljivo kako se kreću ekvivalentne duljine ključeva za pojedine vrste algoritama [23].
godina |
simetrični
algoritmi |
asimetrični
algoritmi |
algoritmi
sa eliptičnom krivuljom |
1982 |
56 |
417 |
105 |
1985 |
59 |
488 |
110 |
1990 |
63 |
622 |
117 |
1995 |
66 |
777 |
124 |
2000 |
70 |
952 |
132 |
2005 |
74 |
1149 |
139 |
2010 |
78 |
1369 |
146 |
2020 |
86 |
1881 |
161 |
tablica
5.1 : U tabeli je vidljivo kako se
mijenjala potrebna duljina ključa kako bi se zadržao isti nivo sigurnosti, u
odnosu na povećanje procesorske snage i
poboljšanje algoritama.
Kao što je u tablici 5.1 vidljivo, za potrebe kratkoročne zaštite (slanje poruka) u ovom trenutku dovoljan je ključ od 72 bita za simetrični algoritam, 1024 bita za asimetrični i 136 bita za algoritam s eliptičnom krivuljom. Za kriptiranje podataka koji će biti čuvani više desetljeća, tada se može računati da će simetrični algoritmi sa 96 bita, asimetrični sa 2048 bita i eliptični sa 192 bita biti sasvim dovoljni. Kako AES algoritam predviđa duljinu ključa od 128, 192 i 256 bita, čini se da nam algoritmi omogućavaju miran san još dugi niz godina.
Osim duljine ključa, potrebno je obratiti pažnju i na samu vrijednost ključa. Pojedini algoritmi imaju određen broj tzv. slabih ključeva (weak keys), kod kojih je razbijanje kriptirane poruke znatno jednostavnije nego kod ostalih. Kod sustava s trajnim ključem treba povremeno mijenjati ključ. Pritom treba paziti da se koristi pouzdan način razmjene novog ključa.
Odabir jakog algoritma za kriptiranje nije garancija sigurnosti sustava. Vrlo je važno kako je cijeli sustav dizajniran u skladu s razinom sigurnosti koju bi morao pružati. Osim od samog algoritma za kriptiranje, sigurnosni sustav sastoji se i od drugih elemenata. Jedan od tih elemenata je i generator pseudo slučajnih brojeva. Generatori koji se koriste u standardnim programskim jezicima obično su dovoljno dobri da prođu razne statističke testove, no nisu dovoljno kvalitetni za korištenje u sustavu sigurnosti. Ako se npr. pri odabiru ključa koristi generator pseudo slučajnih brojeva, to je potencijalno ranjiva točka, jer ako generator nije kvalitetno izveden napadač može simulirati generator i tako doći do identičnog ključa.
Općenito se smatra da je ranjivost sustava kriptiranja puno veća na nivou implementacije nego na nivou dizajna. Algoritmi za kriptiranje koji se smatraju sigurnim poznati su javnosti više godina i vjeruje se da nemaju u sebi propusta. Ipak, svaka pojedina implementacija algoritma u sebi nosi rizik od degradacije sigurnosti sustava uslijed nepravilnog korištenja algoritma. Na primjer, ako je funkcija za kriptiranje izdvojena u posebnom modulu, glavni program mora generirati ključ te ga proslijediti funkciji za kriptiranje zajedno s porukom. Ako se programer nakon toga nije pobrinuo da izbriše sve tragove ključa i originalne poruke iz memorije sustava, ostavio je potencijalnom napadaču širom otvorena vrata.
Neki sigurnosni sustavi implementirani su sklopovski. Najčešće je to slučaj s pametnim karticama (smart cards). Izvedba ovih kartica takva je da ne omogućava napadaču da dođe do tajnog ključa ili drugih podataka koji su skriveni. Koliko je ovo uspješno ovisi o nivou zaštite koja je primijenjena. Postoje različite metode za skrivanje funkcionalnosti ili sadržaja sklopa, no primjenom svakog od njih sklop postaje složeniji, skuplji, a možda i ranjiviji.
Algoritmi, sklopovski sustavi i programska oprema u usporedbi sa korisnicima koji ih koriste vrlo su pouzdani. U praksi se pokazalo da su korisnici najslabija karika u sigurnosnim sustavima. Nema nikakve koristi ako je odabran najbolji algoritam, s dugačkim ključem, i ako je sustav vrhunski dizajniran i implementiran, ako korisnik svoj tajni ključ neprikladno pohrani, na mjestu na kojem je napadaču dostupan. Isto tako, raznim vidovima društvenog inženjeringa – lažnim predstavljanjem, nagovaranjem i slično, često je moguće navesti korisnika da sam napadaču preda svoju lozinku, zahvaljujući kojoj napadač lako dolazi u posjed njegovog tajnog ključa.
Za korištenje elektroničkog novca potrebna je odgovarajuća
infrastruktura. Banke i obračunski centri moraju imati međusobne on-line veze,
trgovci moraju imati vezu s bankama, na javnim mjestima moraju postojati
bankomati koji podržavaju pametne kartice, a trgovci moraju imati terminale
koji prihvaćaju SmardCard kartice.
Osim navedenog, postoji i važan dio javne infrastrukture koji se ne
odnosi samo na e-novac, već općenito na digitalno društvo, a koji omogućava
formalnopravnu valjanost digitalnih potpisa, te komunikacije na nesigurnim
mrežama poput interneta, temeljene na postojećim kriptosustavima. Simetrični
kriptosustavi omogućuju brzu i sigurnu razmjenu podataka, no za razmjenu tajnih
ključeva oslanjaju se na asimetrične kriptoalgoritme temeljene na javnim i
privatnim ključevima. Na istom principu javnog i privatnog ključa zasnivaju se
i mehanizmi potpisivanja digitalnih poruka, te provjera potpisa. kao što se
vidi, cjelokupni sustav počiva na pretpostavci da su javni ključevi pojedinih
sudionika u komunikaciji svima dostupni, da su tajni ključevi dostupni samo
vlasniku ključa te da je moguće sa sigurnošću utvrditi valjanost pojedinog
javnog ključa te identificirati njegovog vlasnika. Infrastruktura javnih
ključeva upravo je komponenta koja bi ovo trebala omogućiti. [24]
PKI (public key infrastructure)
pojam označava skup tehnologija, protokola, standarda i usluga koji zajedno
omogućavaju sigurnu komunikaciju temeljenu na sustavu javnih ključeva preko
nesigurnih mreža. PKI infrastruktura trebala bi pružiti sljedeće:
§ sigurnost u kvalitetu elektronički primljene ili poslane poruke
§ sigurnost u pošiljaoca i primaoca informacije
§ pouzdanost vremena i datume slanja informacije
§ formalnopravnu valjanost elektroničke poruke u sudskim procesima
Ovi ciljevi mogu se postići korištenjem kriptografskih metoda, koje se
oslanjaju na asimetrične algoritme s privatnim i javnim ključevima. Ključni
problem je kako povezati korisnike i njihove javne ključeve, odnosno osigurati
da iza nečijeg javnog ključa stvarno stoji osoba koja se kao takva predstavlja.
Ovaj cilj pokušava postići PKI.
PKI sustavi mogu biti privatni ili javni. Privatni PKI sustav koristi se
unutar tvrtke ili druge organizirane zajednice. Javni PKI je sustav na razini
države ili zajednice država.
PKI može biti organiziran hijerarhijski, npr. javni nacionalni PKI, a
može biti i distribuirani, baziran na povjerenju. Primjer ovakvog sustava je
PGP (Pretty Good Privacy) u kojem
bilo koji sudionik u PGP mreži može svojim potpisom certificirati nečiji javni
ključ. Na ovaj način se vjerodostojnost pojedinog ključa procjenjuje kroz
vjerodostojnost svih onih koji su ga potpisali.
Osim PKI sustava, potreban je niz aplikacija koje imaju implementiranu
podršku za PKI infrastrukturu.
Osnovna zadaća PKI infrastrukture je nedvojbeno povezivanje javnih ključeva sa konkretnim korisnicima. PKI nam mora omogućiti da provjerimo da li je javni ključ našeg korespondenta ispravan i trenutno važeći, i da li je naš korespondent stvarno onaj za koga se izdaje. Obzirom da se ne može pri svakoj komunikaciji provjeriti identitet korespondenta, mora se osloniti na tvrdnju nekog nezavisnog autoriteta da je to tako, i da određeni privatni ključ koji korespondira nekom javnom ključu stvarno ima na raspolaganju osoba kojoj želimo poslati poruku. Ovo se postiže sustavom certifikata.
Prezentacijom certifikata korespondent nam dokazuje da je u trenutku izdavanja certifikata imao pristup privatnom ključu koji korespondira njegovom javnom ključu. Certifikat sadrži i datum valjanosti, i ako još nije istekao, može se s velikom sigurnošću koristiti navedeni javni ključ, i pri tome biti siguran da će poruku moći pročitati samo onaj kojem je namijenjena. Osnovna značajka certifikata je da se može s velikom vjerojatnošću nečiji javni ključ smatrati ispravnim bez on-line veze sa izdavaocem certifikata.
U nekim situacijama međutim na certifikat se ne može osloniti iako još nije istekao, npr. u slučajevima kada netko izgubi svoj privatni ključ ili on postane iz bilo kojeg razloga kompromitiran. Korisnik ovakvog certifikata mora prijaviti gubitak ključa te izdavalac certifikata mora povući odnosno opozvati certifikat. Ako želimo biti sasvim sigurni u ažurnost nečijeg javnog ključa, moramo provjeriti da li je baš u tom trenutku certifikat važeći, što znači da moramo stupiti u on-line vezu sa izdavaocem certifikata, što se kosi sa temeljnom idejom certifikata kao off-line potvrde valjanosti ključa. Sustav opozivanja certifikata je najslabija točka PKI sustava i o rješavanju ovog problema ovisi hoće li PKI sustavi ući u širu primjenu.
PKI sustav sastoji se od nekoliko komponenti:
1. Korisnika – sudionika u komunikaciji
2. Certifikatora ili autoriteta koji dodjeljuje certifikate odnosno potvrđuje da konkretni javni ključ pripada konkretnoj osobi. Certifikati mogu biti i hijerarhijski, što znači da krovni certifikator potvrđuje druge certifikatore, koji mogu potvrđivati certifikatore ispod sebe, i tako do krajnjeg korisnika .
3. Baze certifikata ili javne baze podataka u kojoj su navedeni važeći certifikati sa svojim datumom isteka, te opozvani certifikati, s datumom opoziva.
4. Sustava za upravljanje certifikatima (objavljivanje certifikata, dohvat certifikata po zadanim uvjetima, te provjera certifikata).
5. Sustava za rekonstrukciju izgubljenih ključeva.
6. Sustava za pouzdano vremensko označavanje dokumenata i potpisa.
slika 6.1: arhitektura PKI sustava
U nastavku su detaljnije objašnjene pojedine komponente.
Korisnik je bilo koji sudionik u komunikaciji. Od certifikatora ili registratora mora unaprijed zatražiti vlastiti certifikat. Nakon odobrenja certifikata može započeti sa komunikacijom. Pri slanju poruke prvo provjerava ispravnost certifikata korespondenta. Ako se iz bilo kojeg razloga njegov privatni ključ kompromitira (izgubio ga je, ukraden mu je, netko drugi ima do njega dostup), mora certifikatoru podnijeti zahtjev za opoziv (revokaciju) certifikata. Postoji nekoliko vrsta zahtijeva koje korisnik može podnijeti certifikatoru (ili registratoru ako postoji), to su:
§ registracija - prije podnošenja zahtijeva za certifikat, korisnik se mora identificirati i prijaviti u bazu korisnika.
§ zahtjev za izdavanje certifikata – prije početka komunikacije, korisnik mora dobiti certifikat. Certifikat će zahtijevati od certifikatora ili registratora, na taj način da uz zahtjev priloži potrebne podatke, kao i svoj javni ključ. Certifikator će tada zahtijevati dokaz da korisnik raspolaže privatnim ključem koji korespondira tom javnom ključu, i nakon izvršene provjere, certifikator će izdati certifikat. Ovaj certifikat korisnik može prihvatiti ili odbiti. Ako ga prihvati, Certifikator će pohraniti certifikat u javni repozitorij (bazu certifikata).
§ pronalaženje ključa – pojedini PKI sustav može zahtijevati da se kopije svih javnih ključeva pohrane kod certifikatora. Ovo je neophodno u nekoliko slučajeva: ako se radi o privatnom PKI sustavu (npr. sustavu jednog poduzeća) kada vlasnik sustava mora imati mogućnost dostupa do privatnih ključeva korisnika ako se promijeni status korisnika u odnosu na vlasnika sustava (npr. djelatnik dobije otkaz u poduzeću), ili ako zakonodavstvo pojedine države zahtijeva da se uz sudski nalog može pristupiti kriptiranoj komunikaciji. Osim navedenog, ovo je korisno ako vlasnik izgubi vlastiti privatni ključ. U ovom slučaju će korisnik podnijeti zahtjev za pronalaženje privatnog ključa, i certifikator će mu nakon identifikacije poslati kopiju privatnog ključa.
§ obnova certifikata – svaki certifikat ima rok trajanja. Nakon isteka tog roka, korisnik može tražiti reizdavanje certifikata, pri čemu može zadržati stari ili generirati novi par ključeva.
§ opoziv (revokacija) certifikata – ukoliko privatni ključ korisnika iz bilo kojeg razloga bude kompromitiran (izgubljen, ukraden, kopiran) korisnik mora tražiti opoziv certifikata. Certifikator će u bazi certifikata označiti certifikat kao nevažeći, te ga dodati u listu nevažećih certifikata.
Certifikator (Certificate Authority – CA) je organizacija ili ustanova kojoj vjeruju svi sudionici u prometu, a koja ima zadatak da utvrđuje identitet pojedinog sudionika (osobe ili tvrtke) klasičnim metodama (dokumenti, potpisi itd.), te da posvjedoči da određeni javni ključ pripada upravo tom sudioniku. Ova svjedodžba se izdaje u obliku certifikata.
Certifikatori mogu biti imenovani na nivou pojedine države, ali mogući su i privatni certifikatori npr. na nivou pojedine tvrtke ili financijske ustanove. Uloga certifikatora u PKI sustavu je ključna, što ga čini vrlo ranjivim. U slučaju kada bi se neovlaštena osoba domogla tajnog ključa certifikatora, mogla bi izdavati lažne certifikate i opozivati važeće. Svi certifikati koje je izdao morali bi se povući. Vrlo je stoga važno da ustanove koje predstavljaju certifikatora budu pouzdane a njihovi računalni sustavi sigurni.
Postoji i dodatni opcionalni element PKI sustava koji se zove registrator (Registration Autrhority – RA). Funkcija registratora je da od certifikatora preuzme dio administrativnih poslova vezanih uz utvrđivanje identiteta podnositelja zahtijeva, njegovih ovlasti da zatraži certifikat, kao i činjenice da posjeduje privatni ključ koji korespondira javnom ključu za koji zahtijeva certifikat. Registrator ne izdaje certifikate, već samo utvrđuje da li pojedinom podnositelju zahtijeva treba izdati certifikat. Registrator je potreban u sustavima velikog broja sudionika, kada je potreban veći broj registratora koji su zemljopisno dislocirani.
U složenim sustavima može postojati više od jednog certifikatora. U tom slučaju certifikatori su organizirani u strukturu koja može biti stablasta (hijerarhijska) ili ulančana. U hijerarhijskoj strukturi svaki certifikator mora biti certificiran od svojeg krovnog certifikatora, a na vrhu piramide je korijenski certifikator (Root Certificate Authority – RCA). Pri provjeri certifikata korisnik zahtijeva provjeru kod svog certifikatora, koji ako ne pronađe certifikat kod sebe prosljeđuje zahtijeva na višu instancu i tako do krovnog certifikatora, pa do certifikatora drugog korisnika. U ulančanoj strukturi certifikatori se međusobno certificiraju.
slika 6.2: provjera certifikata u
hijerarhijskoj strukturi certifikatora.
Crtkanom linijom označen je put provjere certifikata korisnika B
Certifikat je svjedodžba koja potvrđuje da je određeni korisnik u trenutku izdavanja certifikata posjedovao privatni ključ koji korespondira javnom ključu koji se nalazi u certifikatu.
Certifikat je u digitalnom obliku, a sadrži minimalno:
§ identifikator certifikata
§ osnovne podatke o nositelju certifikata
§ vrijeme i datum izdavanja certifikata
§ rok valjanosti certifikata
§ klasu certifikata
§ identitet izdavatelja certifikata
§ digitalni potpis izdavatelja certifikata i identifikaciju algoritma
§ javni ključ nositelja certifikata i identifikaciju algoritma
§ namjena javnog ključa nositelja certifikata
Osim navedenih elemenata, certifikat može sadržavati i mnoge druge podatke. Postoje tri najraširenija standarda koji propisuju oblik certifikata: X.509, SPKI i PGP. Sadržaj certifikata u tri dva standarda je različit, ali svi imaju gore navedene osnovne elemente.
Svaki certifikat mora imati jedinstveni identifikator. To može biti serijski broj (X.509), ime (SPKI), userID+e-mail (PGP) ili sažetak javnog ključa. Ovaj identifikator je jedinstven na nivou pojedinog certifikatora, tako da identifikator certifikatora i serijski broj tvore globalno jedinstveni identifikator certifikata.
Osnovni podaci o nositelju certifikata ovise o klasi i namjeni certifikata, a minimalno sadržavaju naziv i e-mail adresu nositelja, a mogu sadržavati i ostale podatke, kao što su adresa, matični broj itd.
U certifikatu se bilježi i vrijeme i datum izdavanja certifikata. Certifikati se izdaju sa određenim rokom valjanosti. Ovisno o namjeni, valjanost može biti svega nekoliko sati, do više godina. Nakon isteka roka valjanosti certifikat više ne vrijedi, no ne briše se iz baze certifikata, već ostaje tamo sa zabilješkom o isteku.
Sastavni element certifikata je i klasa certifikata. Klasa certifikata govori o tome na koji je način, tko i kada obavio provjeru identiteta nositelja. Postoje četiri osnovne klase identifikacije:
1. nositelj je identificiran samo po svojoj e-mail adresi
2. nositelj je identificiran podacima o identitetu koje je sam podnio
3. nositelj je identificiran provjerom službene isprave podnositelja
4. nositelj je identificiran provjerom službene isprave i fizičkom provjerom (fotografija, biometrika, otisak prsta i sl.)
Ovisno o klasi identifikacije, pojedini certifikat nosi veću ili manju težinu. Za radnje za koje nije bitan točan identitet dovoljan je certifikat klase 1, dok se može očekivati da će tijela državne uprave i financijske institucije zahtijevati certifikat klase 3 ili 4.
Svaki certifikat sadrži podatke o identitetu certifikatora koji je izdao certifikat, kao i digitalni potpis izdavaoca, kako bi se mogla provjeriti njegova autentičnost i izvornost.
Ključni element certifikata je javni ključ nositelja. Par javni/privatni ključ nositelja može generirati certifikator, ali u tom slučaju je moguće da Certifikator zabilježi privatni ključ nositelja, i pomoću njega kasnije falsificira njegove poruke. Sigurnije je ako par privatni/javni ključ generira sam nositelj, a tada certifikatoru podnese svoj javni ključ, zajedno sa ostalim dokumentima potrebnim za utvrđivanje identiteta. Certifikator tada mora provjeriti da li podnositelj zahtijeva raspolaže privatnom ključu koji korespondira javnom ključu za koji zahtijeva certifikat. Pomoću svojeg privatnog ključa nosilac certifikata može obaviti nekoliko operacija: potpisivati poruke, prenositi podatke, prenositi tajne ključeve itd. U certifikatu stoji koje od ovih operacija je nositelj ovlašten obavljati pomoću svog javnog ključa a koje ne. Ovaj podatak stoji u polju namjena javnog ključa u certifikatu.
Baza certifikata je javna baza podataka koja se sastoji od dva dijela: liste certifikata i liste povučenih certifikata. Lista certifikata sadrži sve ikada izdane certifikate. Svaki novoizdani certifikat upisuje se u bazu. U bazi certifikata uz svaki certifikat stoji i datum izdavanja, rok važenja te status certifikata. Certifikat može biti važeći ili nevažeći. Za nevažeće certifikate navedeno je datum kada je postao nevažeći te opcionalno i razlog zbog kojeg je povučen. Lista nevažećih certifikata sadrži certifikate koji su povučeni. Ove dvije strukture su namjerno odvojene iz sigurnosnih razloga i kako bi se lista nevažećih certifikata lakše šire distribuirala. Baza certifikata održava se preko sustava za održavanje certifikata.
Sustav upravljanja certifikatima (Certificate Managemanet System - CMS) služi za održavanje baze podataka odnosno repozitorija certifikata. Nad repozitorijom certifikata moguće su slijedeće operacije:
§ provjera certifikata
§ dodavanje novog certifikata
§ promjena certifikata
§ brisanje certifikata
§ opoziv certifikata
Ove operacije provodi certifikator preko sustava upravljanja.
U slučaju da korisnik izgubi svoj privatni ključ, i pod uvjetom da na
certifikator čuva kopije privatnih ključeva, moguće je tražiti “kopiju” ključa.
Obzirom da korisnik ne raspolaže svojim privatnim ključem ne postoji siguran
način da mu se dostavi kopija ključa. U tom slučaju, korisniku će se dodijeliti
privremeni certifikat, koji će služiti samo za dostavu starog privatnog ključa.
Postupak dodjele privremenog certifikata identičan je kao i kod normalnog
certifikata, no ova je varijanta mnogo povoljnija za korisnika, pošto ne mora obavještavati
sve svoje potencijalne korespodente o promjeni svog javnog ključa.
Zakonodavstva pojedinih zemalja mogu zahtijevati da se u cilju
onemogućavanja kriminalnih radnji uz predočenje sudskog naloga mora moći
dekodirati bilo koja kriptirana poruka. U ovu svrhu se koriste kopije privatnih
ključeva kod certifikatora, odnosno kod posebne vladine agencije (key
escrow). Ukoliko ne postoje kopije ključeva, u slučaju izgubljenog ključa,
korisniku ne preostaje drugo no da povuče svoj stari certifikat i zatraži
potpuno novi, sa novim javnim ključem, te da o tome obavijesti sve svoje
potencijalne korespodente.
U slučaju gubitka ili kompromitiranosti privatnog ključa, korisnik je dužan od certifikatora tražiti opoziv certifikata. Ovaj postupak je najslabija točka PKI sustava, pošto nije moguće u istom trenu obavijestiti sve potencijalne korespodente da je dotični javni ključ nevažeći.
Opoziv certifikata obavlja njegov izdavatelj najčešće na temelju zahtijeva vlasnika ključa. Opoziv se sastoji od promjene statusa certifikata u repozitoriju certifikata, i opcionalno upisa razloga njegovog opoziva. Drugi važan korak je upis certifikata u listu opozvanih certifikata. Lista opozvanih certifikata (CRL – Certificate Revocation List) ima sličnu namjenu kao što je lista nevažećih kreditnih kartica koja se svakodnevno distribuira trgovcima. Ova lista se periodično distribuira kako bi korisnici mogli provjeriti da li je pojedini certifikat važeći. Kako postoji vremenski pomak između povlačenja certifikata i trenutka kada lista dođe do potencijalnog korespondenta, moguće je da u slučaju krađe privatnog ključa poruka dospije u krive ruke. Ovaj problem nije moguće riješiti bez on-line veze i centralizirane baze podataka, što je u suprotnosti sa idejom certifikata.
Kako bi digitalni dokumenti bili pravno valjani u okviru sudstva pojedine države, osim nedvojbene identifikacije potpisnika i primaoca, potrebno je imati i nedvojben podatak o trenutku nastanka dokumenta, potpisa ili izvršenja neke radnje. Ovu funkciju ima posebna komponenta PKI sustava koja se zove TSA ( Time Stamp Authority). [25]
TSA na zahtjev korisnika izdaje vremenski simbol (time-stamp token). Korisnikov zahtjev mora sadržavati digitalni sažetak poruke, te veliki slučajni cijeli broj. Vremenski simbol koji korisnik dobije sadrži točno vrijeme i datum u trenutku izdavanja simbola, isti onaj slučajni broj koji je korisnik poslao, sažetak poruke, serijski broj simbola, te podatak da li je izdavanje simbola zabilježeno u dnevniku. Cijeli simbol naknadno je potpisan TSA-ovim digitalnim potpisom. Vrijeme u vremenskom simbolu zabilježeno je precizno na nivou jedne sekunde u tzv. UTC formatu (Coordinated Universal Time).
Korisnik će ovako dobiveni vremenski simbol uključiti u digitalni dokument. Vremenski simbol se verificira tako da se prvo verificira TSA-ov digitalni potpis na vremenskom simbolu, a zatim se izračuna sažetak dokumenta te se usporedi sa sažetkom koji se nalazi u vremenskom simbolu. Ako se ova dva sažetka poklapaju, znači da je dokument svakako morao postojati prije nego što je izdan konkretni vremenski simbol.
U slučaju da privatni ključ TSA-a bude kompromitiran, falsifikator bi mogao izdavati falsificirane antidatirane dokumente. Ovo je moguće spriječiti tako da TSA vodi ažurni dnevnik izdavanja simbola, koji se arhivira na sigurnom mjestu. Drugi način povećanja sigurnosti je umetanje u dokument dva ili više vremenskih simbola od različitih TSA-ova.
Ne postoji opće prihvaćen standard za PKI. PKI sustavi koji u svijetu postoje su slični ali svaki je stvoren prema konkretnim potrebama. Jedan od najraširenijih standarda zove se PKIX. Temelji se na X.509 standardu certifikata i na radu PKIX radne grupe. Grupa je osnovana 1995 sa zadatkom da prilagodi ITU X.509 standard certifikata za primjenu na internetu, no njihov rad nastavio se mnogo šire i definirali su mnoge elemente PKI sustava (RFC 2459, RFC 2587, RFC 2527, RFC 3039, RFC 2510, RFC 3161, RFC 2510 itd.). Grupa je još uvijek aktivna i dalje radi na standardizaciji PKI sustava na internetu.
Za same certifikate postoje tri raširena standarda: X.509, SPKI i PGP.
Standard X.509 definirala je ITU
(International Telecommunication Union – bivši CCITT) kao dio šireg
standard X.500. Ovaj standard propisuje točan oblik i sadržaj certifikata, kao
i neke od ostalih elemenata PKI sustava. Za identifikaciju certifikata koristi
se serijski broj, jedinstven na nivou jednog certifikatora. Kombinacija
identifikatora certifikatora i serijskog broja trebala bi biti globalno
jedinstvena. U definiciji certifikata postoji i jedno dodatno polje namijenjeno
za dodatna proširenja. Ovo polje već je dobilo neke od funkcija. Vrlo je
raširen, i podržavaju ga svi web pretraživači. Trenutno aktualna verzija prilagođena
za internet je v3. [26]
SPKI (Simple Public Key Infrastructure) protokol razlikuje se od ostalih protokola po tome što je primarno autorizacijski a ne autentifikacijski protokol. Certifikati koje definira ne služe kako bi se povezala konkretna osoba sa konkretnim javnim ključem, već kako bi se javni ključ povezao sa autorizacijom za određeni postupak. Umjesto imena ili serijskog broja, kao identifikator certifikata koristi se sažetak samog javnog ključa nositelja ili objekta kojem se preko certifikata pristupa. SPKI certifikat ima svega nekoliko polja i prvenstveno bi trebao biti jednostavan, a namijenjen je autorizaciji pojedinih radnji (npr. pristupu bankovnom računu, pristupu računalu, telefonska kartica itd.) Iza SPKI certifikata ne mora stajati stvarna osoba, a ako i stoji, njeno ime niti identitet nije bitan, i kao takav pruža određenu razinu anonimnosti korisniku. [27], [28]
Najzanimljiviji PKI standarda je PGP sustav,
koji se ne temelji na centraliziranim povjerljivim certifikatorima, već na
međusobnoj certifikaciji korisnika (tzv. mreža povjerenja – web of trust)
. Svaki korisnik može potpisati certifikat bilo kojeg drugog korisnika, pa onda
svaki korisnik procjenjuje vjerodostojnost korespondenta kojeg ne pozna preko
potpisa poznatih korespondenata na njegovom certifikatu. Na ovaj način je
pouzdanost jednog centralnog certifikatora zamijenjena djelomičnom pouzdanošću
više distribuiranih certifikatora.
Postoji još nekoliko manje rasprostranjenih standarda za PKI certifikate, među kojima su X9.59 (AADS), PolicyMaker and KeyNote koji ovdje neće biti detaljnije razmatrani.
Korištenje digitalnog novca zahtijeva donošenje zakona koji rješavaju četiri ključna problema:
1. formalnopravnu valjanost digitalnog potpisa
2. poziciju e-novca u postojećem monetarnom sustavu
3. poziciju e-novca u poreznom sustavu
4. sprječavanje kriminalnih radnji
Vlastoručni potpis stoljećima je prihvaćen kao element identifikacije osobe i vjerodostojnosti dokumenta. Transakcije elektroničkog novca gubile bi svoj smisao kad bi ih se moralo potpisivati ručno, stoga elektronički potpisi, koji su uz algoritme za kriptiranje najvažniji element u protokolima za korištenje e-novca, moraju zakonski biti priznati ekvivalentnima vlastoručnom potpisu. U nekim su državama već doneseni zakoni koji ovo omogućavaju, prvenstveno zbog sustava plaćanja među pravnim osobama.
U Hrvatskoj je ove godine donesen Zakon
o elektroničkom potpisu (Narodne novine, broj 10/02, 30. 01. 02). Ovaj
zakon omogućava korištenje elektroničkog potpisa u pravnim poslovima pravnih i
fizičkih osoba. Dozvoljena je primjena elektroničkog potpisa u svim pravnim
poslovima, osim:
1. pravnim poslovima kojima se obavlja prijenos vlasništva na nekretninama ili se uspostavljaju druga stvarna prava na nekretninama,
2. oporučnim poslovima,
3. imovinskim predbračnim odnosno bračnim ugovorima,
4. opterećenju i otuđenju imovine za koje je potrebno odobrenje centra za socijalnu skrb,
5. ugovora o predaji i raspolaganju imovinom za života,
6. ugovora o doživotnom uzdržavanju i sporazume u vezi s nasljeđivanjem,
7. darovnim ugovorima,
8. drugim pravnim poslovima za koje je posebnim zakonom propisano da se sastavljaju u obliku javnobilježničkog akta odnosno isprave,
9. drugim pravnim poslove ili radnjama za koje je posebnim zakonom ili na temelju zakona donesenim propisom izričito određena uporaba vlastoručnog potpisa u dokumentima na papiru ili ovjera vlastoručnog potpisa.
Kao što je vidljivo, ovaj zakon je prvi korak, ali i dalje se za najvažnije poslove mora koristiti klasični vlastoručni potpis. Nama su u ovom trenutku najinteresantnije financijske transakcije, a one su ovim zakonom dozvoljene, osim ako naknadno, u okviru točke 9, dodatnim propisom ne bude drugačije određeno.
Zakon predviđa i elemente javne infrastrukture (javni certifikatori), čiji posao je izdavanje
certifikata za elektroničke potpise, na temelju klasične potvrde identiteta.
Ova infrastruktura još ne postoji i, sve dok se ne oformi, njegova primjena
nije moguća.
U drugim državama stanje je slično. U SAD-u je donesen sličan zakon 24. 1. 2000. godine. Infrastruktura je više ili manje razvijena, ovisno o kojoj se saveznoj državi radi. U nekim državama već postoji, i moguće je slati dokumente tijelima državne uprave i tvrtkama (npr. u Utahu). U nekim državama, međutim, još ne postoji, ili nije niti propisana, već se digitalni potpisi priznaju i bez certifikata (npr. u Kaliforniji).
U Europskoj
Uniji donesen je zakon (digital signature
directive) koji svim zemljama članicama propisuje donošenje lokalnih
nacionalnih zakona vezanih uz ovu tematiku. Većina zemalja članica ove zakone
je i donijela, ali pokazalo se da nisu konzistentni, pa su se institucije za
certifikaciju razvile samo na područjima gdje je legislativa više tome
odgovarala.
Najdalje se u
zakonodavstvu i primjeni došlo u Australiji, Kini i Hong Kongu. U Australiji je
1999. godine donesen zakon po kojem su svi dokumenti u digitalnom obliku i s
digitalnim potpisom ravnopravni klasičnima, i po kojem sve javne ustanove
moraju biti u stanju primati i procesirati dokumente u digitalnom obliku. Silom
zakona izgrađena je PKI infrastruktura [29].
Većina zemalja (odnosno monetarnih unija) ima centralnu monetarnu instituciju koja izdaje i povlači novac, određuje kamatne stope i obavezne rezerve banaka itd. Upravo utjecajem na količinu novca u opticaju i uvjetima davanja kredita poslovnih banaka središnja banka utječe na gospodarstvo u okviru svojih zakonskih ovlasti. E-novac je sasvim izvan ovog sustava, i njegovo korištenje (naročito e-gotovine) ne podliježe nikakvoj regulativi. Osim toga, e-novac lagano prelazi međudržavne granice, i na taj način se mijenja monetarna bilanca zemlje u odnosu na inozemstvo. Kako bi se spriječilo nastajanje mnogih privatnih e-valuta i kako bi se osiguralo da svaka e-kuna ili e-dolar ima podlogu u stvarnom novcu, mora postojati zakon i institucija koja postupa u skladu s ovim zakonom.
E-gotovina omogućava svom korisniku potpunu anonimnost. Obzirom na to da nema svoju fizičku komponentu, lako se transportiraju velike količine bez obzira na međudržavne granice i udaljenosti. Ovo je čini idealnom za izbjegavanje plaćanja poreza. Pošto je promet e-gotovinom sakriven od poreznih institucija, moguće je ostvarivati velike dobiti na uslugama i nematerijalnim pravima, koje se mogu vrlo lako utajiti.
Anonimnost, lagan prelazak granica i pretvaranje novca iz elektroničkog
oblika u druge oblike čine e-gotovinu idealnom za pranje novca, mito, ucjene,
reket i druge kriminalne aktivnosti. Kako su korišteni algoritmi toliko snažni
da ih niti izvršna vlast (policija) ne može razbiti, to kriminalce stavlja u
izrazito pogodan položaj.
Iako su
dostignuća u kriptografiji pokrila sve sigurnosne i praktične zahtjeve za sve
oblike elektronskih plaćanja i elektronskog novca, rasprostranjenost ovih
načina plaćanja zanemariva je u odnosu na klasična plaćanja. Najprirodnije bi
bilo da elektronički novac dostigne svoju renesansu upravo za on-line kupnje na
Internetu, no, u usporedbi s plaćanjima kreditnim karticama, uporaba
elektroničkog novca na Internetu gotovo ne postoji. Kompanije koje su u
devedesetim godinama ušle na područje elektroničkog novca uglavnom su
bankrotirale, a one malobrojne koje se još drže vjerojatno čeka ista sudbina.
Druga generacija koja se pojavila krajem devedesetih nešto je uspješnija.
Koncept
kreditnih kartica star je gotovo 50 godina, u mnogim situacijama su nepraktične
i usto nedostupne velikom dijelu populacije (maloljetnici, nezaposleni itd.).
Plaćanje kreditnim karticama je preskupo, pre komplicirano i previše izloženo
zlouporabama. Posve je neupotrebljivo za male pojedinačne iznose. Trgovac
dobiva svoj novac tek nakon 30 do 90 dana, a usto plaća i 3–6% naknade. S druge
strane, e-novac počiva na briljantnom modernom i fleksibilnom konceptu i pruža
sve mogućnosti sigurnosti i privatnosti koje se mogu poželjeti, male troškove i
veliku brzinu obrade. Postoji niz usluga koje bi se preko Interneta mogle
prodavati, ali se ne prodaju jer nije moguće ostvariti odgovarajuću naplatu.
Osim toga, velik dio populacije nema pristup kreditnim karticama, iako ima
kupovnu moć. Koji su razlozi da se toliko bolji koncept pokazao neuspješnim
pred mastodontom iz prošlosti?
Jedan od razloga je taj što je digitalna ekonomija još uvijek vrlo mali dio opće ekonomije, tako da veliki sustavi (banke, kartičari), koji su po prirodi konzervativni, nisu zainteresirani za ovo područje i ne smatraju ga prijetnjom. Manje od 2% svih transakcija kreditnim karticama su transakcije vezane za kupnju preko Interneta. Drugi mogući razlog su patenti koji štite kriptografske algoritme. Patenti na algoritme za identifikaciju, slijepi potpis i slično još su na snazi. Patente na radove Davida Chauma, Stefana Brandsa i drugih poznatijih kriptografa drže tvrtke eCash Techologies, Zero Knowledge Systems i RSA. Prema američkim zakonima, ovi patenti istječu nakon 17 godina i svi su još na snazi. Naknade za korištenje ovih patenata otežavaju malim tvrtkama da koriste napredne i fleksibilne modele elektroničkog novca, a velike nisu dovoljno zainteresirane. Treći razlog leži u nedovoljnoj zakonskoj regulativi koja se odnosi na pravnu valjanost elektroničkih transakcija i na paralelni monetarni sustav koji bi stvorila e-gotovina.
Devedesetih se
godina u Americi pojavilo nekoliko tvrtki koje su implementirale sustave
e-novca. Praktički sve su se pokazale neuspješnima, sve do kraja devedesetih,
kada se pojavilo nekoliko uspješnijih tvrtki. Slijede kratki opisi njihovih
djelatnosti.
DigiCash je pionir na području elektroničkog novca.
Osnivač tvrtke je poznati kriptograf David Chaum, čiji radovi su u samom
temelju tehnologije elektroničkog novca. Tvrtka je osnovana 1990, no zbog lošeg
poslovnog upravljanja i neuspješnih pregovora s investitorima (među kojima su
bili Visa, Microsoft, Netscape, Citibank, ABN Amro i drugi), bankrotirala je
1998, prodala svojih 16 patenata tvrtki eCash
Technologies (koja je također u problemima, otpustila je nedavno 25 od 65
zaposlenih). [30], [31]
Sustav elektroničkog novca koji je stvorio DigiCash se zove eCash. To je off-line simbolički sustav,
koji koristi slijepi potpis za postizanje anonimnosti. Koristi se sustav
detekcije dvostruke potrošnje putem podijeljene identifikacije i
razdijeli-i-odaberi mehanizam prilikom podizanja e-gotovine iz banke. ECash
novčanice su u fiksnim iznosima, i nije moguć povrat razlike. Ako nije moguće
platiti točan iznos raspoloživim novčanicama, mora se obaviti usitnjavanje u
banci. DigiCash eCash sustav je u potpunosti implementiran u softveru .
Korištenje
eCash-a zahtjeva posebnu aplikaciju na računalu klijenta. Ova aplikacija
omogućuje mu podizanje e-gotovine, polaganje e-gotovine u banku i slanje
e-gotovine drugom sudioniku. Valuta koja se koristi zove se eBuck a 1 eBuck vrijedi jedan USD. Sustav je 1995. godine pušten u
eksperimentalni rad i izdano je ukupno 1 milijun eBucks-a.
CyberCash je osnovan 1994. godine. Dvije godine kasnije postali su javna kompanija i prilikom početne emisije dionica uspjeli su skupiti zavidan kapital. Popularnost su izgradili na ponudi tehnologije za mikroplaćanja (micropayments). Ova tehnologija nikada nije šire komercijalno profunkcionirala, i tvrtka je na posljetku prešla na pružanje usluga on-line autorizacije kreditnih kartica. No posao im je stagnirao, i na kraju su prošle godine (2001) objavili stečaj. Nakon toga, kupila ih je tvrtka VeriSign, koja se bavi izdavanjem digitalnih certifikata.
Tvrtka Billpoint
osnovana je 1998. godine. Uspjeh može zahvaliti prvenstveno činjenici da osim
elektroničkih plaćanja (e-čekovi) obavlja i klasičnu naplatu kreditnih kartica.
Kompaniju je 1999. kupila jedna od najvećih e-commerce
kompanija, tvrtka eBay. Billpoint
omogućava slanje elektroničkih čekova s klasičnih tekućih računa američkih i
kanadskih banaka. Zahvaljujući
osiguranom poslu od eBay-a te više od
300 Internet sajtova, uključujući Yahoo
i Bank of America koji prihvaćaju
njihove e-čekove, Billpoint je postao dotad najmasovniji oblik primjene
elektroničkog novca. Tijekom srpnja 2002. eBay
je također kupio i PayPal i trenutno
još nije jasna budućnost Billpoint-a. [32]
PayPal je najsvjetlija točka u primjeni e-novca, i jedini sustav u masovnoj primjeni. Omogućava pretvaranje novca s kreditne kartice ili bankovnog računa u e-novac, te slanje istoga e-mailom tvrtkama ili osobama primateljima u 38 zemalja svijeta (zasad ne i u Hrvatsku). Osim slanja e-novca, korisnici mogu stvoriti i virtualnu debitnu karticu, te plaćati direktno na račune u bankama. Broj korisnika se već popeo na oko 17 milijuna, s izrazito brzim porastom. Fenomen uspjeha PayPal-a leži u činjenici da se njihov koncept e-novca oslanja na postojeću infrastrukturu banaka i kreditnih kartica, te da mu je korištenje jako jednostavno. PayPal e-novac se šalje e-mailom, vrlo jednostavno se pretvara u pravi novac (račun u banci, kreditna kartica i sl.), a neograničeno je prenosiv između fizičkih osoba, bez ikakve potrebe posjedovanja računa u banci, kreditne kartice i sl. Dovoljno je imati e-mail adresu, i to je sve.
Ovako velik broj korisnika u relativno kratkom vremenu rezultat je lančanog širenja, koje funkcionira na sljedeći način: želite li nekome poslati novac, ne morate znati njegov broj računa, pa čak niti ime, dovoljna je e-mail adresa. Primalac će tada dobiti poruku "You’ve Got Cash!" i kliknuti na link koji će mu kroz nekoliko jednostavnih on-line koraka omogućiti da novac prebaci na svoj račun u banci, ili da njime dalje nešto plati bilo kome na bilo koji račun u banci (npr. režije ili druge troškove), ili da ga dalje pošalje e-mailom. Postoje i tvrtke koje osobne dohotke zaposlenicima isplaćuju preko PayPal-a.
U tijeku srpnja 2002. godine eBay je kupio PayPal za otprilike 1,5
milijardu dolara u dionicama. Očekuje se da će ovo još pridonijeti širenju
popularnosti. [33]
Chipknip je off-line elektronički novac baziran na pametnim karticama. Radi se o velikom nacionalnom projektu u Nizozemskoj. Od 1995. godine eksperimentalno se u nekoliko manjih gradova uvodi sustav pametnih kartica (Louvain – 90.000 stanovnika i Wavre – 30.000 stanovnika). Kako se sustav pokazao uspješnim proširen je na Arnhem (140.000 stanovnika). Slijedili su i ostali gradovi, i do danas su kartice podijeljene svim vlasnicima tekućih i žiro-računa u bankama, čime se broj popeo na preko 20 milijuna korisnika. To je trenutno najveći sustav elektroničkog novca u svijetu. Korištenje je izrazito jednostavno. Chipknip funkcionira kao digitalni novčanik. Puni se novcem na svakom bankomatu, a nakon toga se može trošiti za plaćanje u trgovinama, telefoniranje, cestarine, parkinge itd. Kupac pri naplati umetne karticu u maleni uređaj (terminal) na kojem se ispiše iznos koji treba platiti. Nakon toga samo pritisne tipku "da" i bez ukucavanja pina ili bilo kakve identifikacije novac se skida s kartice i pohranjuje u terminalu. Kako se radi o off-line elektroničkom novcu, trgovci ne moraju imati vezu s bankom, već jednom tjedno "prazne" svoje chipknip terminale i tako polažu prikupljeni novac na svoj račun. Uz chipknip kartice koje su dobili vlasnici računa u bankama, turisti, maloljetnici i druge osobe koje nemaju račun u banci mogu kupiti pre-pay chipknip karticu na kiosku, i koristiti je kao i svaku drugu. Zasad mogućnosti plaćanja chipknip karticom za online usluge nisu raširene, ali to je samo pitanje vremena. Postoji razlog zbog kojeg je upravo u Nizozemskoj ovaj koncept prvi proradio na masovnoj bazi, a to je činjenica da je postojala jedinstvena centralna institucija za kliring među bankama i procesiranje autorizacija kreditnih i debitnih kartica. Ova tvrtka se zove Interpay [34] i izdavalac je chipknip kartica. Na ovaj način banke ne moraju usvajati novu tehnologiju, pošto Interpay obavlja cjelokupno procesiranje, a prema bankama obavlja kliring na tradicionalan način. Ovime je postignuta bezbolna integracija u postojeći bankarski sustav. Chipknip sustav baziran je na tehnologiji tvrtke Bull S. A., vodeće svjetske tvrtke na području pametnih kartica i na karticama tipa CC60 i CC1000. [35]
Mondex je sustav elektroničke gotovine koji se temelji na smartcard
tehnologiji. Na kartici se nalazi procesor i memorija, koji implementiraju
elektronički novčanik. Mondex novčanik ima pet pretinaca, u kojima se mogu
držati različite valute. Računalo na kartici radi pod operacijskim sustavom
MULTOS. To je višenamjenski operacijski sustav koji je bio zamišljen osim za
obavljanje zadataka u vezi elektroničkog novca i za ostale potrebe, primjerice
za osobnu identifikaciju, zdravstvenu knjižicu, telefonske impulse itd.
Sustav mondex razvila je jedna od vodećih bankarskih ustanova u Velikoj
Britaniji, NatWest. Bio je to jedan od prvih eksperimentalnih sustava
elektroničkog novca. U proizvodnju sustava bile su uključene razne tvrtke, među
kojima Panasonic, OKI i Hitachi. Londonska banka National Westminster prva je
pustila sustav u probni rad, podijelivši svojim zaposlenicima kartice kojima su
mogli kupovati na ograničenom broju prodajnih mjesta. Licence za Mondex tehnologiju prodane su prvo bankama u Hong
Kongu i Šangaju, a uskoro i u SAD-u, Kanadi itd. British Telecom je 1995.
godine postavio 200 telefonskih govornica koje su prihvaćale Mondex kartice, a
pokrenut je i pilot-projekt u gradiću Swindon,
gdje je podijeljeno 6000 kartica, koje su prihvaćane na 700 prodajnih
mjesta. Pilot-projekti pokrenuti su i u Americi, Kanadi, a kasnije i diljem
svijeta. Mastercard je 1997. godine kupio većinski udio u Mondexu. Mondex je
već dugo na tržištu i rasprostranjen je diljem svijeta. Iako ima iza sebe jednu
od najjačih financijskih institucija na svijetu, ovaj sustav ostao je samo u
ograničenoj uporabi. Kako je sustav off-line elektroničke gotovine jedan od
glavnih konkurenata kreditnim karticama, možda u tome treba tražiti razlog za
ograničen uspjeh sustava čiji je vlasnik upravo najveći kartičar na svijetu.
Mondex sustav funkcionira na sljedeći način: kartica se prvo puni novcem
na bankomatu ili koristeći specijalni telefon sa čitačem pametnih kartica.
Procesor na kartici tada uspostavlja sigurni komunikacijski kanal s uređajem
koji se zove Mondex value box, koji
je posrednik između kartice i bančinog informacijskog sustava. Na prodajnom
mjestu koje je opremljeno uređajem nazvanim VTT (value transfer terminal) novac se iz kartice kupca prebacuje
trgovcu. Trgovac se kasnije spaja s bankom i uplaćuje novac na svoj račun.
Postoji i mogućnost plaćanja preko Interneta, u kojem slučaju kupac mora
imati čitač SmartCard kartica. Računalo na kartici uspostavlja siguran
komunikacijski kanal s karticom trgovca (ili druge fizičke osobe), te se obavi
prijenos novca. Primalac može istim novcem dalje plaćati, a da u međuvremenu ne
položi novac u banku.
Mondex je off-line sustav s ograničenom anonimnošću. Svaka kartica
"pamti" zadnjih 10 transakcija, a kartice trgovaca skladište podatke
o zadnjih 300 transakcija te je time omogućeno ograničeno praćenje transakcija.
Usto, Mondex sustav prikuplja i razne statističke podatke o tijeku novca, koji
se koriste za sprječavanje zlouporaba [36].
U ovom radu dan
je pregled elemenata sigurnosnih sustava, njihove primjene u sustavima
elektroničkog plaćanja, te pregled nekih od komercijalnih implementacija.
Sigurnosni algoritmi, mehanizmi i protokoli (kriptiranje, digitalni potpis itd.) zreli su i
dobro prihvaćeni od šireg broja stručnjaka i zadovoljavaju sve zahtjeve koje
postavljaju modeli elektroničkog novca. Modeli za korištenje elektroničkog
novca u svim oblicima fleksibilni su i dobro razrađeni iako ne postoji savršen
model. Postoje razni modeli za on-line i off-line plaćanja, s identifikacijom i
anonimni, za velika, mala i mikro plaćanja. S druge strane, zakonska regulativa
koja bi pokrivala uporabu elektroničkog novca znatno zaostaje za tehničkim
mogućnostima a slično je i s potrebnom infrastrukturom. Uporaba elektroničkog
novca u praksi u usporedbi s klasičnim oblicima plaćanja na Internetu (kreditne
kartice) je zanemariva. U praksi postoji svega nekoliko šire korištenih
implementacija elektroničkog novca koje međutim koriste samo mali dio
mogućnosti koje e-novac pruža i nisu globalno rašireni. Svaki od oblika
elektroničkog novca ima svoje prednosti i mane, i vjerojatno će u budućnosti
svi naći svoje mjesto. Prava renesansa e-novca tek predstoji; nazire se oblik
digitalnog novčanika u kojem bi bili pohranjeni digitalni ekvivalenti današnjih
sredstava plaćanja: digitalna gotovina, digitalne kreditne i debitne kartice te
digitalni čekovi. U novčaniku će mjesta možda naći i do sada nepostojeći načini
plaćanja, kao npr. mikroplaćanja. Međutim, klasične kreditne kartice još će
dugo ostati znatno zastupljenije u on-line trgovinama.
[1] Finfacts, Online Credit Card Fraud, 2002, http://www.finfacts.com/intcard.htm
[2] Meridien Research, Inc., Online
Card Payments:Fraud Solutions Bid to Win,e-Payments, Volume 4, Report
Number 3, January 18, 2001, http://www.merchantfraudsquad.com/Members/membpages/research-meridien.asp
[3] eMarketer,
March 2002, http://www.finfacts.com/intpurchases.htm
[4] Which? Online, July
2002, http://www.finfacts.com/intpurchases.htm
[5] The Nilson Report/Jefferies & Co, May 2002, http://www.finfacts.com/intpurchases.htm
[6] Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone, Handbook of Applied Cryptography, CRC Press, Fifth printing, August 2001. http://www.cacr.math.uwaterloo.ca/hac/
[7] Bruce Schneier , Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in C, (Publisher: John Wiley & Sons, Inc.) , http://math.bnu.edu.cn/Ebook/APPLIED_CRYPTOGRAPHY_SECOND_EDITION/ewtoc.html
[8] Electronic Frontier Fundation, Cracking DES: Secrets of Encryption Research, Wiretap Politics & Chip Design, O'Reilly 1998, http://www.eff.org/descracker.html
[10] Andreas Enge, Elliptic Curves and Their Applications to Cryptography: An Introduction, Kluwer Academic Publishers, 1999 http://www.lix.polytechnique.fr/Labo/Andreas.Enge/buch/buch/buch.html
[11] Jeff Hamblin, Elliptic Curve Cryptography, 1999, http://citeseer.nj.nec.com/hamblin99elliptic.html
[12] Julio López, Ricardo Dahab, An Overview of Elliptic Curve Cryptography, 2000, http://citeseer.nj.nec.com/333066.html
[13] Certicom corporation, The Elliptic Curve Cryptosystem, 2000, http://www.certicom.com/resources/download/EccWhite2.pdf
[14] RFC1319, http://www.faqs.org/rfcs/rfc1319.html
[15] Stadler M., Piveteau J. Camenisch J, Fair Blind Signatures, Lecture Notes in Computer Science, volume 921, page 209, 1995, http://citeseer.nj.nec.com/stadler95fair.html
[16] Alan O. Freier, Philip Karlton, Paul C.
Kocher, The SSL Protocol,Version 3,
Netscape Communications http://wp.netscape.com/eng/ssl3/3-SPEC.HTM#2
[17] The TLS Protocol Version 1.0 (RFC 2246), http://www.ietf.org/rfc/rfc2246.txt
[18] Chaum. D., Fiat A. and Naor M. Untraceable Electronic Cash, Crypto '88
LNCS 403, Springer-Verlag pages 319-327, http://citeseer.nj.nec.com/chaum89untraceable.html
[19]
Brands S., Untraceable Off-line
Cash in Wallets with Observers, Advances in Cryptology -- CRYPTO '93, http://citeseer.nj.nec.com/brands93untraceable.html
[20] Niels Ferguson, Single Term Off-Line Coins, Advances in Cryptology - EUROCRYPT '93, Springer-Verlag, pp. 318-328.
[21] Tatsuaki Okamoto and Kazuo Ohta, Universal Electronic Cash, Advances in Cryptology - CRYPTO '91, Springer-Verlag, pp. 324-337
[22] Patrick R. Morin, Secure Non-Interactive Electronic Cash, http://citeseer.nj.nec.com/197026.html
[23] Arjen K. Lenstra and Eric R. Verheul, Selecting Cryptographic Key Sizes, 2001, Journal of Cryptology, volume 14, number 4, http://citeseer.nj.nec.com/lenstra01selecting.html
[24] S. Kiran, P. Lareau, S. Lloyd, PKI Basics - A Technical Perspective, PKI Forum 2002, http://www.pkiforum.org/pdfs/PKI_Basics-A_technical_perspective.pdf
[25] C. Adams, P. Cain, D.
Pinkas, R. Zuccheratto, Ellison, RFC-3161 Time-Stamp Protocol, Network Working Group, 2001, http://www.ietf.org/rfc/rfc3161.txt
[26] Network Working Group, RFC-2459 Internet X.509 Public Key Infrastructure Certificate and CRL Profile,1999, http://www.ietf.org/rfc/rfc2459.txt
[27] C. Ellison, B. Frantz, B. Lampson, R. Rivest, B. Thomas, T.
Ylonen, SPKI Certificate Theory, 1999, ftp://ftp.isi.edu/in-notes/rfc2693.txt
[28] C. Ellison, SPKI Requirements, Network Working Group, 1999, http://www.ietf.org/rfc/rfc2692.txt
[29] Simon R Grant LLB LLM,Which Root Certification Authority can you
trust? Australia can show you the way, World
Information Technology Contacts Handbook 2002, Euromoney PLC. http://www.articsoft.com/whitepapers/AustPKI03SMr2.pdf
[30] Declan McCullagh, Digging
Those Digicash Blues,Wired News, June 14, 2001, http://www.wired.com/news/print/0,1294,44507,00.html
[31] Ian Grigg, How DigiCash Blew Everything , netTime 1999, http://www.nettime.org/nettime.w3archive/199902/msg00053.html
[32] http://www.billpoint.com/
[35] http://www.bull.co.kr/cp8/news/1027981a.htm