250 likes | 452 Views
Računarske mreže. Protokoli za utvrdjivanje identiteta (autentifikaciju). Protokoli za autentifikaciju. Autentifikacija je tehnika pomo ć u koje proces verifikuje da je njegov komunikacioni partner zaista onaj koji treba da bude, a ne neki la ž ni.
E N D
Računarske mreže Protokoli za utvrdjivanje identiteta (autentifikaciju)
Protokoli za autentifikaciju • Autentifikacija je tehnika pomoću koje proces verifikuje da je njegov komunikacioni partner zaista onaj koji treba dabude, a ne neki lažni. • Proces dokazivanja autentičnosti je veoma složen i zahteva veoma kompleksne protokole zasnovane na kriptografiji • Ne treba mešati pojmove autentifikacije i autorizovanosti. • Autentifikacija je proces dokazivanja verodostojnosti procesa ili osobe. • Autorizovanost znači pravo pristupa, tj. pravo da se učini nešto
Opšti model koji svi protokoli za autentifikaciju koriste je sledeći: • Inicirajući korisnik (realno, proces) recimo, Alisa, želi da uspostavi bezbedni komunikacioni kanal sa drugim korisnikom, Bobom. Bob je bankar sa kojim Alisa želi da posluje. • Alisa otpočinje komunikaciju tako što šalje poruku Bobu ili poverljivom centru za distribuciju ključeva (KDC), koji je uvek pošten. • Zatim sledi razmena poruka u oba smera • Dok se poruke razmenjuju zlošesti uljez, Trudy, može presresti, modifikovati ili odgovoriti na poruke da bi prevarila Alisu i Boba. • Ipak, kada se protokol za autentifikaciju okonča Alisa je sigurna da razgovara sa Bobom i Bob sa Alisom.
Autentifikacija zasnovana na zajedničkom tajnom ključu • Pretpostavimo da Alisa i Bob već poseduju zajednički tajni ključ, KAB. • Protokol funkcioniše na sledći način: • Jedna strana šalje drugoj slučajno odabrani broj, koja ga zatim transformiše na specifičan način i vraća rezultat. • Ovakvi protokoli poznati su pod nazivom challenge-response (izazov-odgovor) protokoli • Koristićemo sledeće oznake: • A, B - oznake za Alisu i Boba • Ri su izazovi, pri čemu i označava onog ko šalje izazov • Ki su ključevi, gde i označava valsnika • Ks ključ za sesiju
Autentifikacija zasnovana na zajedničkom tajnom ključu • U poruci 1, Alisa šalje svoj identitet, A, Bobu. Bob naravno ne može znati da li je to stvarno Alisa ili uljez, Trudy; • Bob bira veliki slučajni broj RB i šalje ga u poruci 2 Alisi (ova poruka je izazov). • Alisa šifrira RB pomoću ključa koji deli sa Bbom, KAB, i šalje šifrirani tekst KAB(RB) u poruci 3 (odgovor) Bobu. • Kada Bob vidi ovu poruku on zna da ona zaista potiče od Alise, jer Trudy ne zna tajni ključ KAB. • Za sada je samo Bob siguran da razgovara sa Alisom, ali Alisa nije sigurna da razgovara sa Bobom. • Zato sada Alisa šalje izazov RA, Bobu u poruci 4. • Bob šifrira RA zajedničkim tajnim ključm KAB i šalje odgovor Alisi u poruci 5. • Kada primi ovu poruku i Alisa je sigurna da razgovara sa Bobom.
Autentifikacija zasnovana na zajedničkom tajnom ključu • Ako nakon uspešne identifikacije Alisa i Bob žele da uspostave poseban ključ za šifriranje samo za tekuću konekciju (sesiju), Alisa može da odabere novi ključ KS i da ga šifrira sa KAB(KS) i pošalje Bobu. • Iza toga se u komunikaciji za šifriranje koristi ključ KS.
Uspostavljanje deljivog ključa: Diffie-Hellmanov protokol • Ovaj protokol omogućava da se generiše (uspostavi) zajednički tajni ključ. • Generisanje zajedničkog tajnog ključa: • Osobe koje žele da generišu zajednički tajni ključ (Alisa i Bob) izaberu dva velika prosta broja n i g takve da za njih važi da su (n-1)/2 i (g-1)/2 takodje prosti brojevi • Alisa bira veliki broj, recimo x, i čuva ga kao tajni; • Slično, Bob bira y i čuva ga kao tajni • Alisa inicira protokol za razmenu ključa tako što šalje Bobu poruku koja sadrži • Bob odgovara tako što šalje poruku koja sadrži
Uspostavljanje deljivog ključa: Diffie-Hellmanov protokol • Alisa primljeni broj stepenuje na x po modulu n, tj. • Bob slično radi sa koji je dobio od Alise, tj • Po zkonu moduo aritmetike oba izračunavanja daće isti rezultat, tj • Koji predstavlja tajni kluč
Šta može da uradi Trudy? • Trudy može da vidi obe poruke koje su razmenjene. • Trudy znag,nigxmodniz prve porukeigymodnizdruge poruke; • ako bi mogla da na osnovu toga izračunaxiy, mogla bi da otkrijetajni ključ; • Problem je u tome što ne postoji ni jedan algoritam koji bi mogao da odredixna osnovugxmodn.
PRIMER: • Neka je n=47, g=3; • Neka Alisa odabere x=8, a Bob y=10. • Alisa {alje (47, 3, 28), jer je 38mod47=28; • Bob {alje Alisi 310mod47=17 • Alisa ra~una 178mod47=4 • Bob ra~una 2810mod47=4 Alisa i Bob su nezavisno odredili tajni klju~ 4
Problem ipak postoji • kada Bob primi trojku (47,3,28) kako zna da je nju poslala Alisa a ne Trudy? • Nažalost, ne postoji način da se to otkrije! • Trudy može iskoristiti ovo da prevari i Alisu i Boba • Dok Alisa i Bob biraju svoje brojeve x i y, Trudy može odabrati svoj broj z. • Alisa šalje poruku 1 Bobu, koju Trudi presreće i zadržava, a Bobu šalje poruku 2 koja sadrži korektne n i g, ali sa svojim z umesto x; (tj. umesto gxmodnšalje gzmodn). • Trudy šalje poruku 3 Alisi koja sadrži gzmodn. • Kasnije Bob šalje poruku 4 Alisi koju Trudy ponovo presreće izadržava; • Sada svi obavljju izračunavanja: • Alisa izračunava tajni ključ kao gxzmodn, što šini i Trudy za poruku primljenu od Alise • Bob računa gyzmodn i Trudy za poruku primljenu od Boba • Na ovaj način Alisa i Bob su ustanovili tajni ključ sa Trudy. Sada sva komunikacija ide preko Trudy koja poruke može modifikovati, ako želi, i poslati Alisi ili Bobu • Ova vrsta napada poznata je pod imenom • (wo)man-in-the-middle attack
Autentifikacija korišćenjem centra za distribuciju ključeva (KDC) • Druga mogćnost za uspostavljanje tajnog ključa je korišćenje KDC. • U ovom modelu svaki korisnik ima ključ koji deli samo sa KDC; • Autentifikacija i uspostavljanje ključa za sesiju sa drugim korisnikom ide preko KDC
Autentifikacija korišćenjem kriptografije sa javnim ključem • Pretpostavimo da Alisa i Bob znaju javne ključeve jedno drugog; • Oni žele da uspostave sesiju a zatim da koriste šifriranje sa tajnim ključem za tu sesiju jer je ona 100 do 1000 puta brža od kriptografije sa javnim ključem; • Svrha inicijalne razmene je da se izvrši autentifikacija i dogovori tajni ključ za dalju komunikaciju
Šta ovde može da pokuša da uradi Trudy? • Trudy može da generiše poruku 1 i pokuša da prevari Boba da je ona Alisa; • Kada Alisa primi RA, ona zna da ga ona nije generisala i odbiće zahtev • Trudy ne može falsifikovati poruku 3 (koja bi trbalo da bude Alisin odgovor Bobu) jer ona ne zna RB ili KS koje ne može odrediti bez Alisinog tajnog ključa.
SSL - Secure Socket Layer • Kada se web pojavio uglavnom se koristio za distribuciju statičkih dokumenata • Danas se web koristi u finansijskim transakcijama • U takvim uslovima javila se potreba za bezbednim komunikacionim kanalom izmedju dva socket-a • SSL (Secure Socket Layer) protokolkoji je razvila firma Netscape, je trenutno najčešće korišćen metod za obavljanje sigurnih transakcija na mreži • Podržava ga većina Web servera kao i klijenata uključujući Microsoft Internet Explorer i Netscape Navigator • SSL uspostavlja bezbedan komunikacioni kanal i omogućava • Pregovaranje parametara izmedju klijenta i servera • Uzajamno utvrdjivanje identiteta klijenta i servera • Očuvanje tajnosti podataka • Očuvanja integriteta podataka korišćenjem kombinacije šifrovanja javnim ključem, simetričnog šifrovanja, digitalnih sertifikata
Mesto SSL protokola u protokol steku • Kada se protokol HTTP koristi preko SSL-a tada se on naziva Secure HTTP – HTTPS (mada nema nikakvih promena u HTTP) • Standardni port HTTP-a je 80, HTTPS može da koristi port 443 • SSL nije namenjen samo za web aplikacije, ali se tu najčešće koristi • SSL se sastoji od dva podprotokola • Protokol za uspostavljanje bezbedne konekcije • Protokol koji koristi bezbednu konekciju za prenos podataka
SSL za uspostavljanje bezbednog kanala klijent server
SSL za uspostavljanje bezbednog kanala (nast.) • Klijent (Alisa) šalje zahtev serveru za uspostavljanjem konekcije • Navodi verzije SSL protokola koje podržava, algoritme za šifriranje koje podržava i jedan broj (izazov) RA koji će se kasnije koristiti • Server odgovara koja verzija SSL će se koristiti, koji algoritam šifriranja i šalje izazov RB • Bira se najviša verzija koju podržavaju i klijent i server i najjači algoritam šifriranja • Server šalje svoj sertifikat sa svojim javnim ključem • Ako sertifikat nije potpisan od strane dobro-poznatog srtifikatora, server šalje lanac sertifikata koji se može slediti da verifikuje sertifikator • Svi browseri poseduju javne ključevo 100 sertifikatora, pa ako se u lancu sertifikatora koje šalje server nalazi neki koji je povezan sa nekim od javnih ključeva, klijent može da verifikuje serverov javni ključ • U ovoj poruci server može zahtevati sertifikat klijenta
SSL za uspostavljanje bezbednog kanala (nast.) • Server obaveštava da je okončao sa slanjem svojih podataka • Klijent odgovara slanjem 384-bitnog predključa šifriranog serverovim javnim ključem, na osnovu kojeg će obe strane izračunati tajni ključ koji će se koristiti za šifriranje podataka • Tajni ključ se izračunava kompleksnim transformacijama korišćenjem ovog ključa i RA i RB koji su razmenjeni • Klijent obaveštava da se predje na šifriranje sa ustanovljenim ključem • Klijent obaveštava da je okončo sa procedurom uspostavljanja veze • Server obaveštava da prelazi na šifrirane sa novim ključem • Server obaveštava da je okončao sa procedurom uspostavljanja veze • Nakon ovog koraka prelazi se na razmenu podataka koji se šifriranju ustanovljenim ključem
SSL podprotokol za razmenu podataka • Poruke iz browsera se dele na blokove veličine 16KB • Ako se koristi kompresija svaki blok se komprimuje posebno • Svakom bloku se pridodaje ustanovljeni tajni ključ i gradi se sažetak poruke primenom dogovorene funkcije sažetka, obično MD5 (MAC deo na slici) • Ovaj korak omogućava da se na odredištu proveri integritet poruke • Vrši se šifriranje ustanovljenim tajnim ključem • Dodaje se zaglavlje poruci i prenosi preko TCP konekcije