Скачать презентацию Autentifikacijske funkcije hash functions message authentication codes MAC Скачать презентацию Autentifikacijske funkcije hash functions message authentication codes MAC

e91e08f08cce8c54112c8c5f57c935cb.ppt

  • Количество слайдов: 46

Autentifikacijske funkcije (hash functions, message authentication codes (MAC), digital signatures, certificates) Mario Čagalj mario. Autentifikacijske funkcije (hash functions, message authentication codes (MAC), digital signatures, certificates) Mario Čagalj mario. [email protected] hr Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 17/4/2012.

Autentifikacija poruka o Procedura kojom se moze provjeriti o o o Integritert poruke (podatka) Autentifikacija poruka o Procedura kojom se moze provjeriti o o o Integritert poruke (podatka) – data integrity Izvoriste (source) poruke – data source Pravovremenost poruke – timeliness o Primjer: Napadac snimi poruku te je isporuci u izvornom obliku ali sa odredjenim kasnjenjem (replay napadi) o Autentifikacijski mehanizmi imaju dva nivoa funkcionalnosti o Funkcije nizeg nivoa autentifikacijskih mehanizama klasificiramo u slijedece kategorije o o Na nizem nivou se generira odredjeni autentifikator Na visem nivou imamo autentifikacijski protokol koji koristi autentifikator za provjeru autenticnosti poruke o Enkripcija poruka o Message Authentication Code (MAC) o o Ciphertext cijele poruke sluzi kao autentikator o n bitni autentifikator = [ F(poruka, tajni kljuc) ] o n bitni autentifikator = [ F(poruka) ] Hash funkcije n bitova : : 2: :

Autentifikacijske funkcije Autentifikacija kroz enkripciju Autentifikacijske funkcije Autentifikacija kroz enkripciju

Autentifikacija kroz enkripciju (1/3) o Enkripcija simetricnim kljucem o Povjerljivost i autentikacija (ali uvjetna) Autentifikacija kroz enkripciju (1/3) o Enkripcija simetricnim kljucem o Povjerljivost i autentikacija (ali uvjetna) m E K o E(K, m) m K Ako su poruke m struktuirane tako da samo mali skup kodnih rijeci cine legitimne poruke -> autentikacija poruke moguca o o D Npr: samo jedna kodna rijec od ukupno 106 rijeci je legitimna, tada ce slucajna vrijednost ciphertexta desifrirati u legitimnu kodnu rijec sa vjerojatnoscu 10 -6 Ako poruka m moze biti bilo koja kodna rijec (bit string) onda autentikacija nije moguca o Bilo koji ciphertext, desifriran, daje legitiman plaintext (poruku) : : 4: :

Autentifikacija kroz enkripciju (2/3) o Struktuiranje plaintext poruka o o Moguce dodavanjem “error-detection codes” Autentifikacija kroz enkripciju (2/3) o Struktuiranje plaintext poruka o o Moguce dodavanjem “error-detection codes” Treba biti ekstremno oprezan o m WEP protokol za zastitu Wireless LANa (IEEE 802. 11 b) probijen m E m D F(m) K F o F Usporedi K E(K, m F(m)) Enkripcija javnim kljucem o Povjerljivost (confidentiality). Q: Sto je sa autentikacijom? Source A m Destination B E PUB D E(PUB, m) Notacija: oznacava (sekvencijalno) grupiranje dvije poruke u jednu m PRB : : 5: :

Autentifikacija kroz enkripciju (3/3) o Enkripcija privatnim kljucem o Autentikacija i digitalni potpis (uz Autentifikacija kroz enkripciju (3/3) o Enkripcija privatnim kljucem o Autentikacija i digitalni potpis (uz pretpostavku da su legitimne poruke – plaintext – struktuirane) Source A m Destination B E E(PRA, m) PRA o PUA Povjerljivost, autentikacija i digitalni potpis o Q: Ovaj pristup je: a) efikasan ili b) neefikasan. Zasto? Source A m m D E PRA Destination B D E E(PRA, m) PUB E(PUB, E(PRA, m)) PRB D E(PRA, m) m PUA : : 6: :

Autentifikacijske funkcije Message Authentication Code (MAC) Autentifikacijske funkcije Message Authentication Code (MAC)

Message Authentication: Introduction Encryption protects against passive attack (snooping) Message authentication protects against active Message Authentication: Introduction Encryption protects against passive attack (snooping) Message authentication protects against active attacks (falsification of data and transactions) By verifying that received messages are authentic (unaltered) The message source/origin is authentic Also, possible to ensure message delivery in time and in sequence (1, 2, 3. . . ) General approach An authentication tag is generated and appended to each message in transmission The message itself does not have to be encrypted 8

Definicija MAC funkcije * o o o Funkcija koja uzima dvije ulazne vrijednosti: poruku Definicija MAC funkcije * o o o Funkcija koja uzima dvije ulazne vrijednosti: poruku i tajni kljuc Vrijednost funkcije je (kriptografski) autentikactor fiksne duljine (npr. n bitova) -> MAC Prakticno, funkcija treba biti takva da netko ne poznaje tajni kljuc ne moze izracunati vrijednost MAC-a za danu poruku. . . poruka m proizvoljne duljine. . . MAC function tajni kljuc K MAC fiksne duljine o Notacija o o m = ulazna poruka C = MAC funkcija K = dijeljeni tajni kljuc MAC = message authentication code; MAC = C(K, m) *Nemojte zamjeniti sa Media Access Control (MAC) funkcijom iz podrucja mreznih komunikacija. : : 9: :

Message Authentication Codes Source and destination share a secret key K Source calculates the Message Authentication Codes Source and destination share a secret key K Source calculates the message authentication code (of a fixed length) as a function of the message m and the shared key K: MACm = F(K, m) Recipient receives MACm and M and also calculates MACm = F(K, m) If the two matches and the key is secret, the recipient accepts m as authentic Source Destination K Message m MAC algorithm Message m K Transmit MAC algorithm Compare MACm = F(K, m) 10

Nacini koristenja MAC-a o Autentifikacija poruke Source A m Destination B C m K Nacini koristenja MAC-a o Autentifikacija poruke Source A m Destination B C m K K C o Usporedi MAC = C(K, m) Autentifikacija i povjerljivost poruke Source A m K 1 C Destination B D E K 2 C K 1 Usporedi E(K 2, (m C(K 1, m)) : : 11

Svojstva MAC funkcije o o Moze se lako izracunati o o Kompresija o MAC Svojstva MAC funkcije o o Moze se lako izracunati o o Kompresija o MAC funkcija mapira ulaznu poruku proizvoljne duljine u izlaznu vrijednost fiksne duljine (npr. n bitova) Tajnost kljuca o Prakticno je nemoguce otkriti tajni kljuc K poznavanjem jednog ili vise parova (mi, C(K, mi)) Bez poznavanja kljuca prakticno je nemoguce izracunati ispravan MAC za “novu” poruku m o o Za dani tajni kljuc K i poruku m, lako je izracunati MAC = C(K, m) MAC funkcija je slicna enkripcijskoj funkciji, s razlikom da MAC funkcija ne mora biti reverzibilna (moze biti surjekcija) Poznavanjem jednog ili vise parova (mi, C(K, mi)), prakticno je nemoguce naci par poruka-MAC (m, C(K, m)) za bilo koju novu poruku m mi MAC je uniformno distribuiran o o Vjerojatnost da dvije slucajno generirane poruke m i m’ generiraju isti MAC, tj. C(K, m) = C(K, m’), je 2 -n, gdje je n broj bitova u MAC-u “Brute-force” napad nefikasan : : 12: :

Primjene MAC-a o Alice (A) salje Bobu (B) poruku (m, C(K, m)); K tajni Primjene MAC-a o Alice (A) salje Bobu (B) poruku (m, C(K, m)); K tajni kljuc izmedju A i B o o B racuna MAC za poruku m, te ga usporedjuje sa primljenim MAC-om, C(K, m) Ako se podudaraju B zna slijedece: o o Primjer 1: Alice napise novi racunalni program te ga salje Bobu zajedno sa MAC-om izracunatim “preko” cijelog programa o o o Integritet poruke je sacuvan (svaka promjena bi implicirala razlicite MAC-ove, s velikom vjerojatnoscu) Integritet izvora poruke (samo A zna tajni kljuc K) Ako poruka m ukljucuje sekvencijski broj (kao npr. kod TCP protokola), B zna da je primljena poruka stigla dobrim redosljedom (zastita od replay napada kod WLAN-a) Provjerom MAC-a, B provjerava autenticnost programa Program nije potrebno enkriptirati (usteda) Primjer 2: Alice salje e-mail poruku Bobu zeleci osigurati integritet poruke; Alice takodjer salje MAC izracunat preko cijele poruke o o Provjerom MAC-a, B provjerava autenticnost e-mail poruke Q: Kako se Alice moze osigurati od napada u kojem napadac namjerno kasni isporuku poruke? Navedite jedan primjer gdje ovakav “replay” ima ozbiljne posljedice. : : 13: :

Cipher Block Chaining MAC (CBC-MAC) o CBC-MAC ( m = m 1 m 2 Cipher Block Chaining MAC (CBC-MAC) o CBC-MAC ( m = m 1 m 2 . . . m. N ) m 1 m 2 m 3 0 + + + K E K E m. N CN-1 … + K E MAC = CN o CBC-MAC je siguran samo za poruke fiksne duljine o o o Pretpostavimo da napadac ne zna K ali moze saznati MAC za bilo koju poruku m’ Napadac zeli izracunati MAC za novu poruku m m’ Napadac kombinira dva para (m. A, MACA) i (m. B, MACB) na nacin da generira par (m. A (MACA m. B), MACB); m. B je duga samo jedan blok MACA je CBC-MAC za poruku m = ( m. A (MACA m. B) ) m. B o o m. B je duga samo jedan blok -> MACB = E(K, m. B 0) = E(K, m. B) MAC za poruku m -> MAC = E( K, MACA m. B ) = E(K, m. B) = MACB CMAC rjesava problem i moze se koristiti za poruke varijabilne duljine Nije sigurno koristiti isti tajni kljuc za CBC-MAC i CBC enkripciju : : 14: :

Autentifikacijske funkcije Hash funkcije Autentifikacijske funkcije Hash funkcije

Definicija hash funkcije o Slicna MAC funkciji, s razlikom da hash funkcija uzima samo Definicija hash funkcije o Slicna MAC funkciji, s razlikom da hash funkcija uzima samo jednu ulaznu vrijednost: poruku proizvoljne duljine. . . poruka m proizvoljne duljine. . . Hash function hash vrijednost/hash code/message digest (fiksne duljine) o o o Notacija o o m = ulazna poruka, h = message digest/hash value, H = hash funkcija h = H(m) Surjekcija (many-to-one mapping) -> kolizije izmedju dvije i vise ulaznih poruka neizbjezne ( m, m’ (m m’) takve da H(m) = H(m’) ) Otkrivanje kolizija je tezak problem -> hash vrijednost neke poruke sluzi kao kompaktna slika (prikaz) te poruke (slicno otisku prsta – fingerprint) : : 16: :

Nacini koristenja hash funkcije H(. ) o Autentikacija i povjerljivost koristeci enkripciju o o Nacini koristenja hash funkcije H(. ) o Autentikacija i povjerljivost koristeci enkripciju o o H(. ) moze detektirati bilo kakvu pogresku/promjenu u ulaznoj poruci Promjena u jednom ili vise bitova rezultira promjenom hash vrijednosti Source A m Destination B m E m D H(m) K H o E(K, m H(m)) H Usporedi K Autentikacija: realizacija MAC funkcije pomocu H(. ) Destination B Source A m m H Usporedi H o E D E(K, H(m)) K Q: Zasto E(K, H(m)) predstavlja MAC funkciju? K : : 17: :

Nacini koristenja hash funkcije H(. ) o Autentikacija bez enkripcije o o Racunanje H(. Nacini koristenja hash funkcije H(. ) o Autentikacija bez enkripcije o o Racunanje H(. ) je puno efikasnije od enkripcije Izvoriste i odrediste dijele tajnu S Source A m Destination B m S H Usporedi S o H H(m S) Moguce je kombinirati H(. ) sa asimetricnim kriptosustavom o Digitalni potpis : : 18: :

Svojstva hash funkcije H(. ) Hash funkcija H(. ) generira reprezentativni otisak (fingerprint) poruke, Svojstva hash funkcije H(. ) Hash funkcija H(. ) generira reprezentativni otisak (fingerprint) poruke, datoteke i sl. Stoga H(. ) mora zadovaljavati slijedeca svojstva: o o o H(. ) se moze primjeniti na poruku proizvoljne duljine H(. ) daje hash vrijednost fiksne duljine H(x) se moze lako izracunati za bilo koju vrijednost x o One-way property o o o Za bilo koju vrijednost h, prakticno je nemoguce naci x takav da H(x) = h Weak collision resistance o Za bilo koji x, prakticno je nemoguce naci y x takav da H(y) = H(x) Strong collision resistance o Prakticno je nemoguce naci par (x, y) takav da H(y) = H(x) : : 19: :

Primjene hash funkcije o Password hashing o o Ako na autenticiran nacin dobijete “fingerprint” Primjene hash funkcije o Password hashing o o Ako na autenticiran nacin dobijete “fingerprint” nekakvog programa koji je javno dostupan, mozete provjeriti da li je izvorni program modificiran Efikasan digitalan potpis o Autentikacija o “Commitment” o o o o o Sustav pohranjuje hash vrijednost lozinke umjesto same lozinke Napadac ne moze invertirati hash funckciju -> onemogucen direktan pristup lozinci Umjesto da se potpisuje cijela poruka, potpisuje se samo njena hash vrijednost (njen fingerprint) Kombinirajuci hash funkciju i djeljenu tajnu, mozemo realizirati MAC funkcionalnost Primjer: A i B zamisle po jedan broj. C objavljuje svoj broj n. Broj koji je blizi n pobjedjuje. A->B: h. A = H(x. A) B->A: h. B = H(x. B) C->A, B: c A->B: x. A B->A: x. B : : 20: :

“Birthday” napad o o Napad usmjeren na “strong collision resistance” svojstvo hash funkcije Definira “Birthday” napad o o Napad usmjeren na “strong collision resistance” svojstvo hash funkcije Definira minimalnu duljinu hash vrijednosti/message digest/fingerprinta o Dan je skup od N elemenata. Biramo, na slucajan nacin, k elemenata iz skupa (sa tim da odabrani element svaki put vracamo nazad u skup). Kolika je vjerojatnost da odaberemo bar jedan element dva ili vise puta? o o o o o Najprije racunamo vjerojatnost da se u k biranja ne ponovi nijedan element Prvi element x 1 moze biti bilo koji Kada biramo drugi element x 2, vjerojatnost da je x 2 ¹ x 1 iznosi 1 -1/N Kada biramo treci element x 3, vjerojatnost x 3 ¹ x 2 i x 3 ¹ x 1 je 1 -2/N Kada biramo k-ti element, vjerojatnost neponavljanja je 1 -(k-1)/N Dakle, vjerojatnost da nema nijednog ponavljanja u k biranja je (1 - 1/N)(1 - 2/N)…(1 – (k-1)/N) Za male vrijednosti x, vrijedi aproksimacija (1 -x) » e-x (1 - 1/N)(1 - 2/N)…(1 – (k-1)/N) = e-1/Ne-2/N … e-(k-1)/N = e-k(k-1)/2 N Konacno, vjerojatnost da se ponovi bar jedan element iznosi 1 – e-k(k-1)/2 N : : 21: :

“Birthday” napad o o Kolika treba biti vrijednost k (broj biranih elemenata) da bi “Birthday” napad o o Kolika treba biti vrijednost k (broj biranih elemenata) da bi vjerojatnost da se bar jedan ponovi bila e ? Racunamo: e = 1 – e-k(k-1)/2 N k(k-1) = 2 N ln(1/1 -e) k » sqrt(2 N ln(1/1 -e)) o Primjeri: o “Birthday paradox”: e = ½ k » 1. 177 sqrt(N) e = ¾ k » 1. 665 sqrt(N) e = 0. 9 k » 2. 146 sqrt(N) o o Elementi su dani u godini (N = 365) Izmedju 1. 177 sqrt(365) » 23 slucajno odabranih ljudi, najmanje dva covjeka ce imati rodjendan na isti datum, sa vjerojatnoscu ½ : : 22: :

Odredjivanje duljine hash vrijednosti o Hash funkcije (dobre) mogu se modelirati na slijedeci nacin Odredjivanje duljine hash vrijednosti o Hash funkcije (dobre) mogu se modelirati na slijedeci nacin o o Za danu hash vrijednost H(x) (duljine n bitova), vjerojatnost da je hash vrijednost slucajno odabranog elementa (podatka) y, H(y), jednaka H(x) iznosi priblizno 2 -n “Birthday” napad o o o N = 2 n Izmedju ~sqrt(2 n) = 2 n/2 slucajno odabranih poruka (elemenata), dvije ce dati istu hash vrijednost (kolizija) sa velikom vjerojatnoscu Kompromitira “strong collision resistance” svojstvo hash funkcije o Prakticno je nemoguce naci par (x, y) takav da H(y) = H(x) Da bi sprijecili “birthday” napad na hash funkcije, n (duljina hash vrijednosti) mora biti najmanje 128, u praksi se uzima 160 i vise. : : 23: :

Napad na “weak-collision resistance” o o Za bilo koji (fiksirani) x, prakticno je nemoguce Napad na “weak-collision resistance” o o Za bilo koji (fiksirani) x, prakticno je nemoguce naci y x takav da H(y) = H(x) Fiksiramo x i H(x). Primjenimo H(. ) na k slucajno odabranih podataka. Koliki mora biti k da bi vjerojatnost da barem jedan podatak y x zadovoljava H(y) = H(x) bila ½? Duljina H(. ) je n bitova. o Za jedan slucajno odabrani element (k=1), vjerojatnost H(y) = H(x) je 2 -n o Obrnuto vjerojatnost da H(y) H(x) iznosi (1 - 2 -n) o o o Za k generiranih hash vrijednosti, vjerojatnost da su sve razlicite od H(x) iznosi (1 - 2 -n)k Obrnuto, vjerojatnost da barem jedna od k vrijednosti odgovara H(x) iznosi 1 -(1 - 2 -n)k Koristeci aproksimaciju (1 -a)k » (1 -ak) za male vrijednosti a (Taylor-ov red), dobijamo da vjerojatnost da barem jedna od k hash vrijednosti odgovara H(x) iznosi 1 -(1 - 2 -n)k » 1 -(1 -k 2 -n) = k 2 -n Konacno, iz ½ = k 2 -n proizlazi k = 2 n-1 Dakle, lakse je naci koliziju (2 n/2), nego “ 2 nd preimage” (za fiskiranu x, naci y x takav da H(x) = H(y)) : : 24: :

Struktura tipicne hash funkcije o Hash algoritam ukljucuje iteraciju kompresijskih funkcija f (b > Struktura tipicne hash funkcije o Hash algoritam ukljucuje iteraciju kompresijskih funkcija f (b > n) Y 0 Y 1 b CV 0 o n b f n CV 1 n f n CVL-1 Notacija o o o b f n YL-1 CV = chaining variable L = broj ulaznih blokova Yi = i-ti ulazni blok n = duljina hash vrijednosti/fingerprint-a Motivacija za koristenje Merkle-Damgard strukture o Ako je kompresijska funkcija otporna na kolizije onda je i hash algoritam u gornjoj iterativnoj strukturi : : 25: :

Poznate hash funkcije o Secure Hash Algorithm (SHA) o o o SHA-1 SHA-256, SHA-384, Poznate hash funkcije o Secure Hash Algorithm (SHA) o o o SHA-1 SHA-256, SHA-384, SHA-512 o o o Uzima poruku od najvise 264 bitova te daje 160 bitnu hash vrijednost Nedavno pronadjeni kriptografski napadi sa slozenoscu 269 (puno manja slozenost nego 280 zbog “birthday” napada) Duljine hash vrijednosti 256, 384, 512 Message Digest (MD) o o MD 2, MD 4 – nisu u upotrebi MD 5 se jos uvijek koristi (pronadjeni kriptografski napadi) : : 26: :

Hash MAC o o Iz predhodnih lekcija znamo da se MAC funkcija moze realizirati Hash MAC o o Iz predhodnih lekcija znamo da se MAC funkcija moze realizirati pomocu simetricne blok sifre (CBC-MAC) HMAC je MAC funkcija realizirana pomocu hash funkcije o Hash funkcije su puno brze od enkripcije (CBC-MAC) HMAC(K, m) = H[(K+ opad) H[(K+ ipad) M]] o K+ predstavlja tajni kljuc prosiren sa nizom nula da kreira 512 bitni string o o Ako je K duzi od 512 bitova, H(K) se uzima kao kljuc (160 bitova) opad i ipad su specijalne konstante o o o Koriste se za formalni dokaz sigurnosti ove konstrukcije opad = 3616 (ponovljeno b/8 puta; b je duljina bloka) ipad = 5 c 16 (ponovljeno b/8 puta; b je duljina bloka) : : 27: :

Autentifikacijske funkcije Digitalni potpisi Autentifikacijske funkcije Digitalni potpisi

Definicija o Digitalni potpis je slican MAC funkciji o Ali ga primatelj ne moze Definicija o Digitalni potpis je slican MAC funkciji o Ali ga primatelj ne moze promjeniti o Treci entitet ga moze provjeriti (nema tajnog kljuca) o Digitalni potpis se koristi za autentikaciju poruka i “non-repudiation” izvorista poruke (odnosno potpisa) o Bazira se na asimetricnoj kriptografiji (javnog kljuca) o Privatni kljuc definira transformaciju potpisa SA o SA(m) = s o Javni kljuc definira transformaciju verifikacije VA o VA(m, s) = true if SA(m) = s o VA(m, s) = false otherwise : : 29: :

“Hash and sign” paradigma generation Motivacija: operacije koriste javni/privatni kljuc su spore Pristup: izracunaj “Hash and sign” paradigma generation Motivacija: operacije koriste javni/privatni kljuc su spore Pristup: izracunaj hash vrijednost poruke, te primjeni operacije javnog/privatnog kljuca na izracunatu hash vrijednost verification o o private key of sender message H H hash Compare yes/no Enc signature Dec signature public key of sender : : 30: :

RSA signature o Generiranje potpisa (ulaz: poruka m) o Izracunaj h = H(m) o RSA signature o Generiranje potpisa (ulaz: poruka m) o Izracunaj h = H(m) o (PKCS #1 formatting) o Izracunaj s = hd mod n o Provjera potpisa (ulaz: poruka m, potpis s) o o o 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’ o Ako se slazu, prihvati digitalni potpis s o Ako ne, odbaci potpis s : : 31: :

Autentikacijske funkcije Certifikati Autentikacijske funkcije Certifikati

Public-key certificates o Struktura certifikata o o o o Izdavaci su obicno “trusted third Public-key certificates o Struktura certifikata o o o o Izdavaci su obicno “trusted third parties” (entiteti od povjerenja) koji se nazivaju Certification Authorities (CA) o o Javni kljuc Ime vlasnika javnog kljuca (user ID) Ime izdavaca certifikata Datum izdavanja certifikata Datum isteka certifikata Drugi podaci Digitalni potpis izdavaca certifikata Ne trebaju biti on-line Certifikati mogu biti distribuirani preko “on-line” baza podataka koje nazivamo Certificate Directories o Ne moraju biti “trusted” (od povjerenja). Q: Zasto? : : 33: :

Public-Key Certificates One of the major roles of public-key encryption is to address the Public-Key Certificates One of the major roles of public-key encryption is to address the problem of key distribution Distribution of public keys Use of public-key encryption to distribute secret keys The public key is public but “how do we know that the public key belongs to the specified user” This is solved through Certificate Authority (CA) – goverment or a finacial institution (e. g. , FINA in Croatia) CA acts as a trusted third party and issues public-key certificates, which consists of a public key plus User ID, all signed by the CA (using CA’s private key) User can publish her certificate (e. g. , on the web) Anyone can then verify her pubic key using the trusted signature 34

Public-Key Certificates Certificate structure Public key owner (User ID) Certificate Issuer Date of issuing Public-Key Certificates Certificate structure Public key owner (User ID) Certificate Issuer Date of issuing Certificate validity period Other information (type, standards, . . . ) Digital signature of the certificate issuer Unsigned certificate Hash function H Certification Authority’s (CA) private key Public-key encryption algorithm The X. 509 standard IPSec (network) SSL (web) S/MIME (email). . . E Signed certificate: Recipient can verify signature using CA’s public key 35

Verifying Public-Key Certificates Hash function Bob’s ID information Bob’s public key PUB H H Verifying Public-Key Certificates Hash function Bob’s ID information Bob’s public key PUB H H Certification Authority (CA) Info. E Generate hash value of Signed certificate unsigned certificate Encrypt hash value with CA’s private key PRCA to form signature Create signed digital certificate Compare D Decrypt signature with CA’s public key PUCA to recover hash value Use certificate to verify Bob’s public key PU B 36

Public-Key Certificates: Examples 37 Public-Key Certificates: Examples 37

Digital Envelopes Use of public-key encryption to distribute secret keys Secret keys are more Digital Envelopes Use of public-key encryption to distribute secret keys Secret keys are more efficient and faster B wishes to send a confidential message m to A A and B do not share any symmetric key B holds an authentic public key PUA of A B prepares the message m and generates a one-time (session) symmetric key K B encrypts m: cm = E[K, m] B encrypts the session key K using A’s PUA: c. K = E[PUA, K] B forms a digital envelope Env = (cm, c. K) and sends it to A Only A is capable of decrypting the session key from c. K and therefore of recovering the original message m from cm Example: Windows© XP Encrypting File System (EFS) 38

Digital Envelopes Symmetric encryption m One-time symmetric key cm=E[K, m] E PUA K E Digital Envelopes Symmetric encryption m One-time symmetric key cm=E[K, m] E PUA K E Encryption process (sender B) Public-key encryption c. K=E[PUA, K] Symmetric decryption Decryption process (recipient A) D Public-key decryption m PRA D K 39

Public-key certificates Unsigned certificate Contains: user ID, user’s public key H Certification Authority’s (CA) Public-key certificates Unsigned certificate Contains: user ID, user’s public key H Certification Authority’s (CA) private key E Signed certificate: Recipient can verify signature using CA’s public key : : 40: :

X. 509 autentikacijski okvir o Dio X. 500 okvira koji je repozitorij (direktorij) o X. 509 autentikacijski okvir o Dio X. 500 okvira koji je repozitorij (direktorij) o o o X. 509 definira skup usluga za autentikaciju korisnika o o o 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 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 o Certifikate kreiraju “trusted Certification Authorities” (CA) : : 41: :

X. 509 certifikat Certificate Revocation List (CRL) : : 42: : X. 509 certifikat Certificate Revocation List (CRL) : : 42: :

Primjer: Webmail : : 43: : Primjer: Webmail : : 43: :

Struktura CA: centralizirani CA CA certificate … public key o o Svaki javni kljuc Struktura CA: centralizirani CA CA certificate … public key o o Svaki javni kljuc je certificiran samo jednim centralnim CA Svaki korisnik zna autenticni javni kljuc CA Svaki korisnik koze provjeriti svaki certifikat Napomena: CA mora biti entitet od povjerenja – izdaje korektne certifikate o Problem sa ovim pristupom: ne skalira dobro sa velikim brojem korisnika : : 44: :

Lanac certifikata KCA 0 -1 o o CA 2 KCA 2 CA 1 KCA Lanac certifikata KCA 0 -1 o o CA 2 KCA 2 CA 1 KCA 1 -1 Bob KCA 2 -1 Prvi certifikat moze biti provjeren sa poznatim (autenticnim) javnim kljucem Svaki drugi certifikat moze biti provjeren sa javnim kljucem iz prethodnog certifikata Zadnji certifikat sadrzi zeljeni javni kljuc (Bobov javni kljuc) Napomena: svaki izdavac certifikata u lancu mora biti od povjerenja (trusted CA 0, CA 1, CA 2) : : 45: :

Vise CA organiziranih u stablo CA 0 CA 2 CA 11 Kalice o o Vise CA organiziranih u stablo CA 0 CA 2 CA 11 Kalice o o CA 12 CA 23 CA 31 CA 32 Kbob Svaki korisnik zna javni kljuc “root” CA 0 Da bi provjerili autenticnost nekog drugog kljuca, svaki korisnik treba lanac certifikata koji zapocinja sa “root” certifikatom i zavrsava sa zeljenim kljucem : : 46: :