440 likes | 613 Views
Autentifikacijske funkcije (eng. hash functions, message authentication codes, digital signatures, certificates ). Mario Čagalj mario.cagalj@fesb.hr FESB 8/4/2014. Autentifikacija poruka. Procedura kojom se moze provjeriti Integritert poruke ( data integrity )
E N D
Autentifikacijske funkcije(eng. hash functions, message authentication codes, digital signatures, certificates) Mario Čagalj mario.cagalj@fesb.hr FESB 8/4/2014.
Autentifikacija poruka • Procedura kojom se moze provjeriti • Integritert poruke (data integrity) • Izvoriste poruke (source integrity) • Pravovremenost poruke (timeliness) • Primjer: Napadac snimi poruku te je isporuci u izvornom obliku ali sa odredjenim kasnjenjem (replay attack ) • Autentifikacijski mehanizmi imaju dva nivoa funkcionalnosti • Na nizem nivou se generira odredjeni autentifikator • Na visem nivou imamo autentifikacijske protokolekoji koriste autentifikatore za provjeru autenticnosti poruke • Autentifikatore porukageneriramona sljedece nacine • Enkripcijom poruka (ciphertextse koristi kao autentifikator) • Primjenom kriptografskih hashfunkcija • Primjenom Message Authentication Code(MAC) funkcija
Autentifikacija putem enkripcije (1/3) • Enkripcija simetricnim kljucem • Povjerljivost i autentifikacija (ali uvjetna) • Ako su poruke struktuirane tako da samo dio svih mogucih kodnih rijeci cine legitimne poruke -> autentifikacija poruke moguca • Primjer: skup svih 128-bitnih poruka ima 2128 elemenata; ako legitimnim porukama proglasimo samo one koje imaju prvih 100 bitova 0, skup legitimnih poruka ce imati 228 elemenata, a vjerojatnost da se slucajno generirani ciphertext dekriptira u legitimnu porukusamo2-100 • Ako navedenom primjerulegitimna poruka moze biti bilo koja 128-bitna kodna rijec, onda autentifikacija putem enkripcije nije moguca (proizvoljan ciphertext uvijek se dekriptira u legitimnu poruku) • Q. Je li navedena strategija primjenjiva za slijedne sifre? m m E D EK(m) K K
Autentifikacija putem enkripcije (2/3) • Kod struktuiranja plaintext poruka, treba biti jako oprezan • Los primjer je “probijeni” WEP protokol • WEP koristi error-detection codes(funkcija F na slici ispod) F m m m E D Usporedi F(m) F(m) EK(m F(m)) K K F • Enkripcija javnim kljucem • Povjerljivost (confidentiality). Q: Sto je sa autentifikacijom? Source A Destination B m m E D EPU (m) B PUB PRB Notacija: oznacava (sekvencijalno) grupiranje dvije poruke u jednu
Autentifikacija putem enkripcije (3/3) • Enkripcija privatnim kljucem • Autentifikacija i digitalni potpis (samo ako su legitimne poruke struktuirane) • Ako je prihvatljiva bilo koja poruka ovaj pristup je nesiguran • Primjer napada: Malice ne poznaje privatan kljuc PRA od Alice • Malice pripremi proizvoljan ciphertext SM (slucajna vrijednost) • Malice racuna mM = DPU(SM), koristeci javni kljuc PUA od Alice • Malice salje (mM,SM) Bobu, koji provjeri autenticnost poruke koristeci PUA • Buduci da Malice ne poznaje PRA, mM ce biti neka slucajna vrijednost • Odgovarajucim struktuiranjem poruka, vjerojatnost da Malice nadje SMtakav da poruka mM bude ispravno struktuirana je zanemariva Source A Destination B m m E D EPR(m) B PRA PUA A
Kriptografske hash funkcije u praksi • Poznate hash funkcije: MD4, MD5, SHA-1, SHA-256, SHA-512,… • Digitalni potpisi • Certifikati • Kripto-valuta Bitcoins • http://blockexplorer.com • Proof of work (SHA-256) • Pohrana lozinki • Windows (MD4, MD5, AES) • Linux (MD5, SHA-512, Blowfish) • Password to enc key • PBKDF2 (Password-Based Key Derivation Function 2) • Hash based data deduplication • Osiguranje integriteta softvera
Kriptografske hash funkcije u praksi • Aplikacije za Android OS se distribuiraju u APK datotekama • APK datoteke su ZIP arhive koje vezu zajedno kompajlirane Android klase, metapodatke (u META-INF/ direktoriju) i razne resusrse koje kod koristi C:\FESB>aapt list HelloFESB.apk res/drawable/fesb_button.xml res/layout/activity_main.xml res/menu/main.xml AndroidManifest.xml resources.arsc res/drawable-hdpi/ic_launcher.png res/drawable-mdpi/ic_launcher.png res/drawable-xhdpi/ic_launcher.png res/drawable-xxhdpi/ic_launcher.png classes.dex META-INF/MANIFEST.MF META-INF/CERT.SF META-INF/CERT.RSA C:\FESB>more MANIFEST.MF Name: res/drawable-xhdpi/ic_launcher.png SHA1-Digest: vWrq4ApK74D3ktrs7+elAA8A1a8= Name: AndroidManifest.xml SHA1-Digest: zdtiD7i7BR8in+Iu1oE3Hv3GlnY= … Name: res/layout/activity_main.xml SHA1-Digest: cg8ZwPxIycCc6xS0P6DEjhCBusA= Name: classes.dex SHA1-Digest: IBvlm6sUhzUibItLsfEdRAnQ0zg=
Definicija hash funkcije • Kriptografska funkcija/algoritam koji sazima/komprimira ulazne poruke proizvoljne duljine u “prividno” jedinstvene izlazne vrijednosti fiksne duljine • Notacija: h=H(m) • Kolizije izmedju dvije i vise ulaznih poruka neizbjezne • m,m’ (m m’) takve da H(m) = H(m’) (Q. Zasto?) • Za kripto hash funkcije pronalazak kolizija je tezak problem • Stoga hash vrijednost poruke sluzi kao kompaktna slika te poruke (slicno otisku prsta kod covjeka) – hash fingerprint ulazna poruka proizvoljne duljine (m) ... HashfunctionH hash value /hash code/message digest(fiksna duljina – od 128 do 512 bitova) h
Primjer: OpenSSL • “OpenSSL is an open-source implementation of the SSL andTLSprotocols. The core library ... implements thebasiccryptographicfunctions” – Wikipedia (2014.) C:\FESB>echo kriptografija| openssl sha1 -c (stdin)= 47:1a:0b:e0:cc:29:18:19:36:46:e1:c7:e8:ce:e5:69:e2:17:58:af C:\FESB>echo kriptografij a| openssl sha1 -c (stdin)= c8:de:b3:be:6e:4b:70:0d:15:fd:c5:01:8d:b3:ea:60:19:15:05:32 C:\FESB>echo kriptografija kriptografija kriptografija | openssl sha1 -c (stdin)= 87:50:7f:2e:1a:a1:45:80:fb:02:1b:0d:08:67:aa:66:b7:76:c2:1c C:\FESB>echo kriptografija| openssl md5 -c (stdin)= ba:40:d1:e4:5d:c1:ee:32:d6:a4:30:b2:7f:ed:69:de
Sigurnosni zahtjevi hash funkcija • Hash funkcija H(.) generira reprezentativni otisak (fingerprint) poruke, datoteke i sl., te stoga mora imati sljedeca svojstva • H(.) na ulazu prihvaca poruke proizvoljne duljine • H(.) na izlazu daje hash vrijednost fiksne duljine (npr. 160 bitova) • H(m) se moze lako izracunati za bilo koju ulaznu vrijednost m Tri centralna svojstva za sigurnost hash funkcija • One-way property - za zadanu (slucajnu) hash vrijednost h, prakticno je nemoguce naci ulaznu porku m takvu da vrijedi H(m) = h • Weak collision resistance - za bilo koju zadanu poruku m1, prakticno je nemoguce naci poruku m2 m1 takvu da vrijedi H(m1) = H(m2) • Strong collision resistance - prakticno je nemoguce naci par poruka (m1, m2) takav da vrijedi H(m1) = H(m2) • Hash fukncije koje imaju navedena svojstva (ili barem 1. i 2.) nazivamo kriptografskim hash funkcijama
Nacini koristenja hash funkcije H(.) • Autentifikacija poruke i izvorista poruke (uz povjerljivost poruke) • H(.) moze detektirati promjene u ulaznoj poruci • Promjena u jednom ili vise bitova rezultira promjenom hash vrijednosti Source A Destination B H m m m E D Usporedi H(m) H(m) EK(m H(m)) K K H
Nacini koristenja hash funkcije H(.) • Autentifikacija poruke i izvorista poruke • H(.) moze detektirati promjene u ulaznoj poruci • Promjena u jednom ili vise bitova rezultira promjenom hash vrijednosti Destination B Source A H m m Usporedi D E H EK(H(m)) K K
Nacini koristenja hash funkcije H(.) • Autentifikacija bez enkripcije • Hash algoritmi (npr. SHA funkcije) su u praksi puno efikasniji odnosno brzi od enkripcijskih algoritama (AES, 3DES) • Pretpostavimo da izvoriste i odrediste poruke dijele tajnu S (secret) • Moguce je kombinirati H(.) sa asimetricnim kriptosustavom • Efikasna realizacija digitalnog potpis • Q. Kako digitalno potpisati poruke poruku dugu npr. 10,000 bitova u 2048-bitnom RSA kriptosustavu? Source A Destination B m m H S Usporedi H S H(m S)
The Birthday Attack • Napad na strong collision resistance svojstvo hash funkcije • Definira minimalnu duljinu izlaza hash funkcija(hash vrijednosti) • Dan je skup od N elemenata. Biramo, na slucajan nacin, k elemenata iz skupa (odabrani element svaki put vracamo nazad u skup). Kolika je vjerojatnost da odaberemo bar jedan element dva ili vise puta? • Racunamo vjerojatnost da se u k biranja ne ponovi nijedan element • Prvi element x1 moze biti bilo koji • Kada biramo drugi element x2, vjerojatnost da je x2¹ x1 iznosi 1-1/N • Kada biramo treci element x3, vjerojatnost x3¹ x2 i x3¹ x1 je 1-2/N • Kada biramo k-ti element, vjerojatnost neponavljanja je 1-(k-1)/N • Dakle: Pr[nema ponavljanja u k biranja] = (1 - 1/N)(1 - 2/N)…(1 – (k-1)/N)Pr[nema ponavljanja u k biranja] = 1ik-1(1 - i/N) = e-k(k-1)/2N, (za a<<1, (1-a) » e-a) • Konacno, vjerojatnost da se ponovi bar jedan element iznosi Pr[ponavljanje u k biranja] = 1 – e-k(k-1)/2N
The Birthday Attack • Kolika elemenata (k) trebamoodabrati da bivrijedilo Pr[ponavljanje u k biranja]= p? • Racunamo: p = 1 – e-k(k-1)/2N k(k-1) = 2N ln(1/1-p) • Primjeri: p =0.5 p =0.75 p = 0.9 • Birthday paradox: • Elementi skupa su dani u godini (N = 365) • Zakljucujemo, izmedju 1.18 sqrt(365) » 23 slucajno odabrane osobe, najmanje dvije osobe ce imati rodjendan na isti datum savjerojatnoscu od priblizno 0.5
Odredjivanje duljine hash vrijednosti • Kripto hash funkcije mogu se modelirati na sljedeci nacin • Za danu hash vrijednost H(m1) (duljine n bitova), vjerojatnost da je hash vrijednost poruke m2 m1,H(m2), jednaka H(m1) iznosi 2-n • The birthday attack – implikacije na hash funkcije • N = 2n • Izmedju ~ razlicite poruke (elemenata), postoje dvije poruke koje se daju istu hash vrijednost sa velikom vjerojatnoscu • Kompromitira strong collision resistance svojstvo hash funkcije • Da bi se osigurali od birthday napada na hash funkcije, duljina hashvrijednosti n mora biti najmanje 128 bitova (prekratko u nekim slucajevima), u praksi n 160 bitova
Napad na weak-collision resistance • Za fiksiran x, prakticno je nemoguce naci y x takav da H(y) = H(x) • Fiksiramo xodnosno H(x). Primjenimo H(.) na k poruka yi x. Trazimo k takav da bi vjerojatnost da barem jednaporukayi xzadovoljava H(x) = H(yi) bila 0.5? Duljina hash vrijednosti je n. • Za slucajno odabrani element (k=1), vjerojatnost H(y1) = H(x) je 2-n • Obrnuto, vjerojatnost da H(y1) H(x) iznosi (1- 2-n) • Za k poruka yi, vjerojatnost da su svi H(yi) razliciti od H(x) iznosi (1- 2-n)k • Obrnuto, vjerojatnost da za baremjednu yivrijedi H(yi) =H(x) je 1-(1- 2-n)k • Koristeci aproksimaciju (1-a)k » (1-ak) za male vrijednosti a (Taylor-ov red), dobijamo davjerojatnost, da za baremjednu yivrijedi H(yi) = H(x),iznosi 1-(1- 2-n)k »1-(1-k2-n) = k2-nPr[barem jedna od k poruka yi generira koliziju s H(x)] »k2-n • Konacno, iz 0.5 = k2-n proizlazi k = 2n-1(lakse je naci koliziju - 2n/2) • Q. Bitcoins ovo svojstvo hash funkcija koristi zaproof-of-work.
Struktura tipicne hash funkcije • Hash algoritam ukljucuje iteraciju kompresijskih funkcija f (b > n) • Notacija • CV = chaining variable • L = broj ulaznih blokova (poruka se razbija na blokove) • mi = i-ti blok ulazne poruke • n = duljina hash vrijednosti • Prikazana struktura naziva seMerkle-Damgard struktura • Vazsno svojstvo: ako je kompresijska funkcija f otporna na kolizije onda je otporna i prikazana iterativna struktura m0 m1 mL-1 b b b n n n n n f f f CV0 CV1 CVL-1 CVL
Poznate hash funkcije • Secure Hash Algorithm (SHA) • SHA-1 • Uzima poruku od najvise 264 bitova te daje 160 bitnu hash vrijednost • 2005. pronadjeni kriptografski napadi sa slozenoscu 269 (puno manja slozenost nego teoretskih 280zbog birthday napada) • Preporuka je koristiti SHA-2 (SHA-256, SHA-384, SHA-512) • Zbog navedenih napada dizajnirana SHA-3 (October 2, 2012) • Nije zamjena za SHA-2 familiju kriptografskih hash funkcija • Message Digest (MD) • MD2, MD4 – nisu u upotrebi • MD5 se jos uvijek koristi (pronadjenekolizije!)
Primjer: mentalni poker • Kako implementirati sljedecu mentalnu igru na siguran nacin (eliminirati mogucnost varanja od strane igraca – zanemarite mogucnost udruzivanja) • Igraci A, B i C zamisle po jedan broj iz predefiniranog skupa. Igrac C prvi objavljuje svoj broj c. Nakon toga, A i B objavljuju svoje brojeve a i b. Igraci ostvaruju bodove na sljedeci nacin: • A ostvaruje bodove ako |c-a| < |c-b| (odnosno dijeli bodove sa B ako |c-a| = |c-b|) • B ostvaruje bodove ako |c-b| < |c-a| (odnosno dijeli bodove sa A ako |c-a| = |c-b|) • C ostvaruje bodove ukoliko vrijedi |c-a| > 10 i |c-b| > 10 A: Pick a and large random number rA B: Pick b and large random number rB C: Pick c and large random number rC A to B,C: hA = H(a,rA) B to A,C: hB = H(b,rB) C to A,B: hC = H(c,rC) A to B,C: a,rA B to A,C: b,rB C to A,B: c,rC Phase 1: Phase 2:
Definicija MAC funkcije* • Funkcija koja uzima dvije ulazne vrijednosti: poruku i tajni kljuc • Vrijednost funkcije na izlazu je autentifikator (MAC) fiksne duljine • Prakticno, funkcija treba biti takva da netko tko ne poznaje tajni kljuc ne moze izracunati vrijednost MAC-a za danu poruku • Notacija • m = ulazna poruka • C(.) = MAC funkcija • K = dijeljeni tajni kljuc • MAC = CK(m) ulazna poruka proizvoljne duljine (m) ... MACfunctionC tajni kljuc K MAC (message authentication code) (fiksna duljina, ~100 bits) *Nemojte zamjeniti sa Media Access Control (MAC) funkcijom.
Svojstva MAC funkcije • Moze se lako izracunati • Za dani tajni kljuc K i poruku m, lako je izracunati MAC = C(K,m) • Slicno enkripcijskoj funkciji, s tim da MAC ne mora biti reverzibilna f. • Kompresija • MAC vrijednost je fiksne duljine (neovisno o velicini ulazne poruke) • Tajnost kljuca • Prakticno je nemoguce otkriti tajni kljuc K poznavanjem jednog ili vise parova (mi, MACi) = (mi, CK(mi)) • Bez kljuca K prakticno je nemoguce izracunati MAC za novuporuku • Poznavanjem jednog ili vise parova (mi, MACi), prakticno je nemoguce naci par (m, MAC) za bilo koju novu poruku m mi • MAC je uniformno distribuiran • Vjerojatnost da dvije slucajno generirane poruke m1 i m2imaju isti MAC, CK(m1)=CK(m2), je 2-n, gdje je n broj bitova u MAC vrijednosti • Brute-force napad nefikasan za veliki n (npr. n=100)
Nacini koristenja MAC-a • Autentifikacija poruke • Autentifikacija i povjerljivost poruke (koristi Enc-then-MAC u praksi!) Source A Destination B C m m K Usporedi K C MAC = CK(m) Source A Destination B C m E K2 Usporedi. Ako je MAC OK dekriptiraj ciphertext EK1(m) sa K1, u protivnom odbaci EK1(m). K2 K1 C EK1(m) MAC = CK2(EK1(m))
Primjeri primjene MAC-a • Alice salje Bobu poruku (m, CK(m)); K tajni kljuc izmedju A i B • B provjerava MAC vrijednostCK(m)za poruku m(Q. Kako?) • Ako je provjera uspjesna B zna sljedece: • Integritet poruke je sacuvan (svaka promjena poruke bi implicirala razlicite MAC vrijedsnosit, s velikom vjerojatnoscu) • Integritet izvora poruke (samo A zna tajni kljuc K) • Ako m ukljucuje sekvencijski broj (kao npr. kod TCP protokola), B zna da je m stigla dobrim redosljedom (zastita od replay napada kod WLAN-a) • Alice salje e-mail poruku Bobu i pri tome koristi MAC izracunat preko cijele poruke da bi osigurala integritet poruke • Provjerom MAC-a, B provjerava autenticnost e-mail poruke • Q: Kako se Alice moze osigurati od replaynapada u kojem napadac namjerno kasni isporuku poruke?
Cipher Block Chaining MAC (CBC-MAC) • Ulazna poruka m razbija se na blokove duljine jednake duljini bloka koristenog enkripcijskog algoritma (npr. u slucaju AES-a, 128 bita) • Ulaz: m=m1 m2 ... mN • Izlaz: MAC = CN • MAC za poruku m odgovara zadnjem ciphertext bloku CBC enkriptirane poruke m pod tajnim kljucem K • Generalno, nije sigurno koristiti isti tajni kljuc K tajni kljuc za racunanje CBC-MACa i CBC enkripciju m1 m2 m3 mN 0 CN-1 … E E E E K K K K C1 C3 C2 CN
Sigurnost CBC-MACa • CBC-MAC je siguran samo za poruke fiksne duljine • Napadac ne zna tajni kljuc K, ali ima dva para (mA, MACA) i (mB, MACB) • Napadac zeli izracunati MAC za novu poruku m(m mA, m mB) • Napadac kombinira (mA, MACA) i (mB, MACB) na nacin da generira poruku m = mA (MACA mB1) mB2 ... mBN • Posljedica: MACB je ispravan CBC-MAC za poruku m (m mA, m mB) mBN MACA mB1 mA1 mAN 0 … E … E E E K K K K MACA MACB
Sigurnost CBC-MACa • Problem sa CBC-MAC jednostavno rjesiv • Rjesenje 1: U prvi blok CBC-MACa dodati duljinu poruke • Rjesenje 2: CMAC (Cipher-based Message Authentication Code) • CMAC (koristi vise enkripcijskih kljuceva K,K1) • Zadnji plaintext blok zbroji (mod 2) sa K1 m1 m2 m3 mN 0 K1 CN-1 … E E E E K K K K C1 C3 C2 CN
Hash MAC (HMAC) • Realizacija MAC funkcije primjenom kriptografske hash funkcije • Hash funkcije su efikasnije od enkripcijskih algoritama (CBC-MAC) HMAC(K, m) = H( (K+ opad) H( (K+ ipad) m ) ) • K+je tajni kljuc prosiren nizom nula doduljine 512bitova • Ako je K duzi od 512 bitova, H(K) se uzima kao kljuc (160 bitova) • opad i ipad su specijalne konstante • Koriste se za formalni dokaz sigurnosti ove konstrukcije • opad = 3616 (ponovljeno b/8 puta; b je duljina bloka) • ipad = 5c16 (ponovljeno b/8 puta; b je duljina bloka) • HMAC se koristi npr. za zastitu integritea SSL/TLS prometa • http://tools.ietf.org/html/rfc4346 (TLS 1.1) Inner hash Outer hash
Definicija • Digitalni potpis je slican MAC funkciji • Ali ga primatelj ne moze promjeniti • Treci entitet ga moze provjeriti (nema tajnog kljuca) • Digitalni potpis se koristi za autentikaciju poruka i non-repudiation(hrv. ne-nijekanje:-)izvorista poruke • Bazira se na asimetricnoj kriptografiji • Privatni kljuc definira transformaciju potpisa SA • SA(m) = s • Javni kljuc definira transformaciju verifikacije VA • VA(m, s) = true if SA(m) = s • VA(m, s) = false otherwise
Hash and Sign paradigma • Motivacija: operacije koje koriste javni/privatni kljuc su spore • Efikasniji pristup: digitalno potpisi hash vrijednost poruke private key (PR) of the sender generation signature hash message Enc H signed message signature hash message hash Dec H verification Compare public key (PU) of the sender yes/no
Primjer: RSA signature • Generiranje potpisa (ulaz: poruka m) • Izracunaj h = H(m) • (PKCS #1 formatting) • Izracunaj s = hd mod n • Provjera potpisa (ulaz: poruka m, potpis s) • Uzmi autenticni javni kljuc (n, e) • Izracunaj h’ = se mod n • (PKCS #1 procesiranje, odbaci ako h’ nije dobro formatirana) • Izracunaj h = H(m) • Usporedi h i h’ • Ako se slazu, prihvati digitalni potpis s • Ako ne, odbaci potpis s
Public-key certificates • Asimetricni enkripcijski kriptosustavi imaju vaznu ulogu u rjesavanju problema distribucije enkripcijskih kljuceva • Distribucija javnih kljuceva (npr. javni kljucevi web servera) • Distribucija tajnih kljuceva • Izazov: kako znati da dani javni kljuc pripada danom korisniku • Ovaj problem se rjesava uvodjenjem Certificate Authority-a (CA) • Npr. FINA u Hrvatskoj igra ulogu CA (za financijske transakcije, e-porez) • CA su entiteti kojima vjerujemo, a koji izdaju cerifikate za javne kljuceve (certifikati sadrze identitet vlasnika javnog kljuca i njen/njegov javni kljuc, sve skupa digitalno potpisano od strane CA) • Certifikati mogu biti distribuirani putem web-a • Svatko moze provjeriti vjerodostojnost javnog kljuca iz certifikata
Public-Key Certificates Unsigned certificate • Certificate structure • Public key • Public key owner • Certificate Issuer • Date of issuing • Certificate validity period • Other information (type, standards,...) • Digital signature of the certificate issuer Hash function H Certification Authority’s (CA) private key E Public-key encryption algorithm Signed certificate: Recipient can verify signature using CA’s public key
Verifying Public-Key Certificates Bob’s ID information Hash function Bob’s public key PUB H H Certification Authority (CA) Info. Compare Generate hash value of unsigned certificate Signed certificate Encrypt hash value with CA’s private key PRCA to form signature Decrypt signature with CA’s public key PUCA to recover hash value E D Create signed digital certificate Use certificate to verify Bob’s public key PUB
Self-signed Certificates Unsigned certificate • Certificate structure • Public key (your key) • Public key owner (you) • Certificate Issuer • Date of issuing • Certificate validity period • Other information (type, standards,...) • Digital signature of the certificate issuer Hash function H Public key owner’s (your) private key Certification Authority’s (CA) private key E Public-key encryption algorithm Signed certificate: Recipient can verify signature using the Public key owner’s (your) public key
X.509 autentikacijski okvir • Dio X.500 okvira koji je repozitorij (direktorij) • Server (skup distribuiranih servera) koji odrzavaju bazu podataka sa informacijama o korisnicima • Informacije ukljucuju maprianje korisnickih imena i mreznih adresa, certifikata i drugih informacija o korisnicima • X.509 definira skup usluga za autentikaciju korisnika • Certifikate, autentikacijske protokole • Bazira se na kriptografiji javnog kljuca i digitalnim potpisima (preporuka RSA i hash and sign paradigma) • Osnovna funkcija X.509 sheme jesu public-key certifikati povezani sa svakim korisnikom • Certifikate kreiraju trusted Certification Authorities(CA)
Struktura CA: centralizirani CA • Svaki javni kljuc je certificiran samo jednim centralnim CA • Svaki korisnik zna autenticni javni kljuc CA • Svaki korisnik koze provjeriti svaki drugi certifikat (Q. Kako?) • Napomena: CA mora biti entitet od povjerenja (eng. trusted );vjerujemo da izdaje korektne certifikate • Problem: ovaj pristup nije skalabilan - veliki broj korisnika CA certificate public key …
Lanac certifikata • Prvi certifikat moze biti provjeren sa poznatim javnim kljucemKCA0 • Drugi certifikat moze biti provjeren javnim kljucemKCA1dostupnim i provjerenimu prethodnom certifikatu • Zadnji certifikat sadrzi zeljeni javni kljuc (Bobov javni kljucKBob) • Vazno: svi izdavaci certifikata u lancu (CA0, CA1, CA2) moraju biti trusted CA2 KCA2 CA1 KCA1 Bob KBob KCA0 KCA2-1 KCA0-1 KCA1-1
Vise CA organiziranih u stablo • Svaki korisnik zna javni kljuc koji pripadaroot CA0 • Da bi provjerio autenticnost nekog drugog javnog kljuca, korisnik treba lanac certifikata koji zapocinja sa root certifikatom i zavrsava sa zeljenim kljucem CA0 CA2 CA1 CA3 CA31 CA32 CA11 CA12 CA23 KAlice KBob