Digitalni potpis i autentikacioni protokoli
Digitalni Potpisi Do sada samo autentikacija poruka Ne bavi se nedostatkom poverenja između učesnika u komunikaciji Digitalni potpisi omogućavaju: Provere autora, datuma i vremena potpisa Autentičnosti sadržaja poruke Da se može proveriti od strane trećeg učesnika da se razreše osporavanja Dakle, uključuju funkciju autentikacije uz dodatne mogućnosti
Osobine digitalnih potpisa Mora da zavisi od potpisane p poruke Mora da koristi informaciju jedinstvenu za pošiljaoca Da se spreče prevare i poricanja Mora da bude relativno lak za kreiranje Mora da se lako prepoznaje i verifikuje Mora biti računarski neprihvatljivo da se falsifikuje Sa novim porukama za postojeći digitalni it ipotpis Sa falsifikovanim digitalnim potpisom za datu poruku Da se lako pamti digitalni potpis p u memoriji
Direktne šeme koje (delimično) zadovoljavaju ove zahteve
Direktni digitalni potpisi Uključuju samo pošiljaoca i primaoca Podrazumeva da primalac poseduje pošiljaočev javni ključ Digitalni potpisi napravljeni od strane pošiljaoca potpisivanjem cele poruke ili hash funkcije privatnim ključem Može se šifrovati korišćenjem javnog ključa primaoca Važno je prvo potpisati pa tek onda šifrovati poruku i potpis Sigurnost zavisi od tajnog ključa pošiljaoca Problem: učesnici č i u komunikaciji iji mogu da tvrde da im je neko ukrao privatni ključ i tako poreknu slanje poruke. Rešenje obeležavanje poruke vremenom slanja i korišćenje treće strane u komunikaciji (arbitar).
Arbitrirani digitalni potpisi X -> A -> Y Uključuje korišćenje arbitra A Proverava bilo koju potpisanu poruku Dodaje datum i šalje primaocu Zahteva zadovoljavajući nivo poverenja u arbitra Može se primeniti bilo sa simetričnim ili asimetričnim algoritmima Arbitar može ili ne može da vidi poruku
Varijanta 1 Arbitrirani digitalni potpisi - varijante Varijanta 1: simetrična enkripcija, arbitar vidi M X->A: M E(K xa, [ID X H(M)]) A->Y: E(K ay, [ID X X M E(K ( xa, [ID X X H(M)]) T]) Varijanta 2: simetrična enkripcija, arbitar ne vidi M X->A: ID X E(K xy, M) E(K xa, [ID X H(E(K xy, M))]) A->Y: E(K ay,[id X E(K xy, M)]) E(K xa, [ID X H(E(K xy, M)) T]) Varijanta 3: asimetrična enkripcija, arbitar ne vidi M X->A: ID X E(PR x, [ID X E(PU y, E(PR x, M))]) A->Y: E(PR a, [ID X E(PU y, E(PR x, M)) T]) Varijanta 4:...
Digital Signature Standard (DSS) NIST standard 1991-2009 RSA i DSS pristup k slučajan broj PU g globalni javni ključ DSS koristi algoritam koji isključivomožedase se koristi za potpisivanje, a ne i za enkripciju kao RSA
DSS Globalni javni ključ PU g deli više korisnika p prost broj dužine 512-1024 bita u inkrementima od po 64 q prost delilac broja p-1 sa 160 bita g=h (p-1)/q mod p, gde je h ceo broj, 1<h<p-1 i g=h (p-1)/q mod p>1 Privatan ključ x: pseudoslučajan ceo broj 0<x<q Javni ključ y: y=g x mod p Sesijski ključ k: pseudoslučajan ceo broj 0<k<q
DSS
Autentikacioni protokoli Koriste se da se uvere učesnici u komunikaciji o identitetima i da se razmene sesijski ključevi Mogu biti jednostrani ili uzajamni Ključne č teme su Tajnost da se zaštite ključevi sesije Vremenska komponenta (pravovremenost) da se spreče replay napadi
Jednostavan replay napad Ko si ti? 12361524 Ko si ti? A B A Ja sam A B MD5 Ja sam A 12361524 M Ko si ti? B Ko si ti? 653485 Ja sam A M B MD5 Ja sam A 12361524 Odbrana: postojanje pseudo-slučajnih session token -a ili nonce -a
Replay napadi Gde je validna potpisana poruka kopirana i kasnije ponovno poslata Jednostavan replay poruka se ponavlja bilo kada Ponavljanje koje se može zabeležiti - vremenski obeležene poruke unutar doyvoljenog vremenskog okvira Ponavljanje koje se ne može detektovati originalna poruka ne stiže na odredište replay unazad pošiljaocu bez modifikacija Protivmere uključuju Upotrebu broja sekvence (generalno nepraktično) Vremenski marker (zahteva sinhronizovane časovnike) prozivanje/odgovor (korišćenjem jedinstvene vrednosti - nonce)
Upotreba simetričnog šifrovanja Kako je prethodno diskutovano, može koristiti dvo-nivosku hijerarhiju ključeva Obično se koristi centar za distribuciju ključeva (KDC) Svaki učesnik deli sopstveni osnovni (master) ključ sa KDC KDC generiše sesijske ključeve koji se koriste za komunikaciju ij između đ učesnikač master ključevi se koriste za distribuciju sesijskih
Needham-Schroeder Protocol Originalan protokol distribucije ključeva od strane third-party Za sesiju između A i B uz posredovanje KDC protokol je: 1. A KDC: ID A ID B N 1 2. KDC A: E Ka [Ks ID B N 1 E Kb [Ks ID A ] ] 3. A B: E Kb[ [Ks ID A A] ] 4. B A: E Ks [N 2 ] 5. A B: E Ks [f(n 2 )]
Needham-Schroeder Protokol Koristi se za sigurnu distribuciju novih ključeva sesije između A i B Osetljiv je na napad ako je stari ključ sesije provaljen jer Poruka 3 se može ponovo poslati da se ubedi B da komunicira sa A Promene da se ovo prevaziđe: Vremenski markeri (Denning 81) Upotreba dodatnog nonce-a (Neuman 93)
Denning poboljšanje Za sesiju između A i B uz posredovanje KDC protokol je: 1. A KDC: ID A ID B 2. KDC A: E Ka [Ks ID B T E Kb [Ks ID A T]] 3. A B: E Kb [Ks ID A T] 4. B A: E Ks [N 1 ] 5. A B: E Ks [f(n 1 )] Vremenski markeri sprečavaju replay ali zahtevaju sinhronizovane časovnike clocks Clock T < Δt1 + Δt2 Problem vremenska sinhronizacija
Neumann poboljšanje Za sesiju između A i B uz posredovanje KDC protokol je: 1. A B: ID A N a 2. B KDC: ID B N b E(K b, [ID A N a T b ]) 3. KDC A: E(K a,[id B N a K s T b ]) E(K b,[id A K s T b ]) N b 4. A B: E(K b, [ID A K s T b ]) E(K s, N b )
Upotreba javnih ključeva Čitav niz pristupa zasnovanih na korišćenju šifrovanja upotrebom javnih ključeva Neophodno je da se osigura upotreba korektnih javnih ključeva za ostale učesnike Koristi se centralni Autentikacioni server (AS) koji nema uvid uključeve Razni postojeći protokoli koriste vremenske markere ili nonce
Denning AS Protokol Pretpostavlja se da učesnici u komunikaciji nemaju razmenjene javne ključeveč Denning je predložio sledeći protokol: 1. A AS: ID A ID B 2. AS A: E(PR as, [ID A PU a T]) E(PR as, [ID B PU b T]) 3. A B: E(PR as, [ID A PU a T]) E(PR as, [ID B PU b T]) 3. A B: E(PR as, [ID A PU a T]) E(PR as, [ID B PU b T]) E(PU b, E(PR a, [K s T]))
Woo/Lam Protocol Nema timestamp, već samo nonce: 1. A KDC: ID A ID B 2. KDC A: E(PR auth, [ID B PU b ]) 3. A B: E(PU b, [N a ID A ]) 4. B KDC: ID A ID B E(PU auth, N a ) 5. KDC B: E(PR auth, [ID A PU a ]) E(PU b, E(PR auth, [N a K s ID A ID B ])) 6. B A: E(PU a, E(PR auth, [(N a K s ID A ID B ) N b ])) 7. A B: E(K s, N b )
Jednostrana autentikacija Zahteva se kada pošiljalac i primalac nisu u komunikaciji u isto vreme (npr. email) Zaglavlje treba da bude neizmenjeno da bi se isporučilo od strane email sistema Može se zahtevati ti da sadržaj tela poruke bude zaštićeno i pošiljalac autentifikovan
Upotrebom simetričnih algoritama Opet upotrebom KDC ali bez finalne razmene nonce: 1. A KDC: ID A ID B N 1 2. KDC A: E Ka [Ks ID B N 1 E Kb [Ks ID A ] ] 3. A B: E Kb [Ks ID A ] E Ks [M] ne štiti od replay Može se oslanjati na vremenski marker, ali kašnjenja ga čine problematičnim
Pristupi sa javnim ključevima Ako je tajnost osnovni cilj: A B: E KUb [Ks] E Ks [M] Šifrovan ključ sesije i šifrovana poruka Ako je potrebna autentikacija, potreban je digitalni it i potpis sa digitalnim it i sertifikatom: t A B: M E KRa [H(M)] E KRas [T ID A KU a ] Uključuje poruku, potpis i sertifikat