1 PV157 ­ Autentizace a řízení přístupu Autentizační protokoly Protokol ˇ Protokol je několikastranný algoritmus definovaný posloupností kroků, které specifikují akce prováděné dvěma a více stranami, pro dosažení určitého cíle zpráva zpráva odpověď odpověď Kryptografické protokoly ˇ Autentizační protokol ­ zajistí jedné straně určitou míru jistoty o identitě jiné strany (té, se kterou komunikuje) ˇ Protokol pro ustavení klíče (key establishment protocol) ­ ustaví sdílené tajemství (typicky klíč) ˇ Autentizovaný protokol pro ustavení klíče (authenticated key establishment protocol) ­ ustaví sdílené tajemství se stranou, jejíž identita byla potvrzena Autentizační protokoly ˇ Během protokolu autentizujeme: ­ Pouze jednu ze stran ­ Obě strany ­ Kontinuální autentizace ˇ Kdo koho autentizuje ­ Alice vyzývá Boba, aby se autentizoval ­ Bob se autentizuje rovnou sám bez výzvy Autentizace heslem ˇ Alice se autentizuje Bobovi tak, že mu pošle své heslo ˇ Heslo je možné odposlechnout ˇ Bob po úspěšné Alicině autentizaci zná Alicino heslo a může se (např. vůči Cyrilovi) autentizovat jako Alice (pokud Alice používá stejné heslo pro autentizace vůči různým stranám) heslo Útok impersonací (vydáváním se za jiného) heslo odposlech heslo Jsem Alice Jsem Alice Alice Bob Emil Emil Emil je pasivní útočník (odposlouchává komunikaci) Emil zadá heslo do existující aplikace 2 Hašované heslo ˇ Při autentizaci se neposílá heslo samotné, ale pouze haš hesla ˇ Kdo odposlechne haš nezíská automaticky heslo ˇ Haš však lze použít pro podvodnou autentizaci haš hesla Útok přehráním haš hesla odposlech haš hesla Jsem Alice Jsem Alice Alice Bob Emil Emil Bob Emil je pasivní útočník (odposlouchává komunikaci) Emil nezná heslo, ale pošle odposlechnutý haš hesla, pomocí své pomocné aplikace Další útoky na protokoly ˇ Zmíněné útoky impersonací a přehráním ˇ Úplný výčet je nesnadný, ale zmínit je třeba ­ útoky prolínáním (interleaving) ­ kombinujeme zprávy z více průběhů ­ obvykle, ale ne nutně jen, stejného protokolu ­ ať již ukončených, nebo právě probíhajících ­ slovníkové útoky ­ na protokoly využívající hesla, diskutováno později u autentizace uživatelů ­ útoky využitím známého klíče (known-key) ­ obvyklé u protokolů pro ustanovení klíče, kde se klíč ustanoví na základě staršího/ch (útočníkovi známého/ch) klíče/ů Protokoly výzva-odpověď ˇ Protokoly typu výzva-odpověď (challenge- response) ­ Odposlechem výzvy i odpovědi útočník moc nezíská ­ Bob se může přesvědčit o identitě Alice, bez získání jejího tajemství číslo Digitálně podepsané číslo Alice Bob výzva odpověď Časově proměnné parametry ˇ Náhodná čísla (random numbers) ­ čísla, která jsou nepredikovatelná (v tomto kontextu zahrnujeme pod náhodná čísla i čísla pseudonáhodná). Použitím náhodných čísel zajišťujeme jedinečnost a ,,aktuálnost/čerstvost". Získat skutečně náhodná čísla je netriviální (vyžaduje speciální HW zařízení). V praxi obvykle používáme pseudonáhodná čísla (které na základě tajného stavu - semínka (seed) generují sekvence čísel). Značíme r. ˇ Sekvence (sequence numbers) ­ monotonně rostoucí posloupnost čísel (obě strany musí dlouhodobě uchovávat informaci o poslední hodnotě). Jednoznačně identifikují zprávy a umožňují detekovat útoky přehráním předchozí komunikace. Značíme n. ˇ Časová razítka (timestamps) ­ obě strany musí synchronizovat a zabezpečit hodiny. Zajišťují jedinečnost a časovou přesnost. Značíme t. Protokoly výzva-odpověď ˇ Založené na symetrických technikách ­ Symetrické šifrování ­ Jednosměrná funkce s klíčem ­ Generátory passcode ˇ Založené na asymetrických technikách ­ Dešifrování ­ Digitální podpis 3 Symetrické techniky ˇ Založené na symetrickém šifrování (Alice a Bob sdílí tajný symetrický klíč K) ˇ Standard ISO/IEC 9798-2 ˇ Jednostranná autentizace (časové razítko) ­ A B: EK(tA,"B") ˇ Možné útoky ­ Útok přehráním: odposlechnu EK(tA,"B") a pošlu jej rychle znovu (v době platnosti tA) ­ Změna hodin: odposlechnu EK(tA,"B"), později změním hodiny B tak, aby odpovídaly času tA a znovu pošlu EK(tA,"B") Symetrické techniky ˇ Jednostranná autentizace (náhodné číslo) ­ A B: rB ­ A B: EK(rB,"B") ˇ Možné útoky ­ Útočník odposlouchává a ukládá [rB, EK(rB,"B")], pokud se challenge rB opakuje, pak je schopen poslat správný response. Případně se může aktivně snažit ovlivnit vytváření náhodných rB (např. ovlivněním vstupu generátoru náhodných čísel Boba). ˇ Oboustranná autentizace (náhodná čísla) ­ A B: rB ­ A B: EK(rA,rB,"B") ­ A B: EK(rB,rA) Symetrické techniky ˇ Založené na klíčovaných jednosměrných funkcích (Alice a Bob sdílí tajný symetrický klíč K) ˇ Standard ISO/IEC 9798-4, protokoly SKID ˇ Oboustranná autentizace ­ A B: rB ­ A B: rA, hK(rA,rB,"B") ­ A B: hK(rB,rA,"A") ­ hK je MAC algoritmus Symetrické techniky ˇ Generátory passcode ­ hand-held (PDA, kapesní počítače) pro bezpečné uložení dlouhodobých klíčů doplněné zadáním PINu uživatele ˇ Subjekty A, B sdílí tajný klíč sA a tajný PIN pA ­ A B: rB ­ subjekt A zadá do generátoru přijatou výzvu rB a vloží svůj PIN ­ A B: f(rB,sA,pA) Výzva, PINvýzva odpověďodpověď Asymetrické techniky ˇ Založené na dešifrování soukromým klíčem ˇ Jednostranná autentizace ­ A B: h(r), ,,B", PA(r,"B") ­ A B: r ˇ h ­ hašovací funkce ˇ h(r) slouží k prokázání znalosti r bez jeho odhalení Asymetrické techniky ˇ Založené na digitálním podpisu ˇ Standard ISO/IEC 9798-3 ˇ Jednostranná autentizace (časové razítko) ­ A B: certA, tA, "B", SA(tA, "B") ˇ Možné útoky ­ Útok přehráním: odposlechnu SA(tA, "B") a pošlu jej rychle znovu (v době platnosti tA) ­ Změna hodin: odposlechnu SA(tA, "B"), později změním hodiny B tak, aby odpovídaly času tA a znovu pošlu SA(tA, "B") 4 Asymetrické techniky ˇ Jednostranná autentizace (náhodné číslo) ­ A B: rB ­ A B: certA, rA, "B", SA(rA,rB,"B") ­ rA zde zabraňuje útokům s vybraným textem ˇ Možné útoky ­ Obdobné útoky na náhodné rB jako v případě symetrických technik ˇ Oboustranná autentizace (náhodná čísla) ­ A B: rB ­ A B: certA, rA, "B", SA(rA,rB,"B") ­ A B: certB, "A", SB(rB,rA,"A") Protokoly pro mgmt klíčů ˇ Účel ­ Přenos klíče ­ Ustavení klíče ­ Aktualizace klíče (strany sdílí dlouhodobý klíč K) ­ Zároveň i autentizace jedné nebo obou stran ˇ Počet stran ­ Protokol pro dvě strany ­ Protokol s důvěryhodnou třetí stranou Symetrické techniky přenosu klíče ˇ Aktualizace klíče založená na symetrické šifře (Alice a Bob sdílí tajný klíč K) ­ Přenos klíče (1 zpráva, časové razítko) ­ A B: EK(rA,tA,"B") ­ Přenos klíče (výzva-odpověď, náhodné nebo sekvenční číslo) ­ A B: nB ­ A B: EK(rA,nB,"B") Symetrické techniky přenosu klíče ˇ Přenos klíče odvozením ­ A B: rA ­ Nový klíč W=EK(rA) ˇ Aktualizace klíče se vzájemnou autentizací ­ AKEP2 (Authenticated Key Exchange Protocol 2) ­ A B: rA ­ A B: ("B","A",rA,rB), hK("B","A",rA,rB) ­ A B: ("A",rB), hK("A",rB) ­ Nový klíč W=h´K´(rB) ­ hK je MAC algoritmus, h´ je MAC algoritmus (odlišný od h), obě strany sdílí K, z K je odvozen K´ Symetrické techniky přenosu klíče ˇ Přenos klíče bez předchozího sdíleného tajemství ­ Shamirův protokol bez klíčů (Shamir's no-key protocol) ­ Komutativní symetrická šifra E ­ Každá strana má svůj symetrický klíč KA,KB ­ A B: EKA(X) ­ A B: EKB(EKA(X)) ­ A B: EKB(X) ­ Nyní obě strany sdílí X; byly nutné 3 zprávy Kerberos ˇ KDC (key distribution center) ­ server sdílí klíč s každým klientem; (klienti však mezi sebou klíče nesdílí); distribuuje klíče, které generuje. ˇ KTC (key translation center) ­ server negeneruje klíče sám; klíč dodá jedna ze stran; server klíč distribuuje Alice Bob Server (KDC) 5 Kerberos ˇ Vznikl při projektu Athena na MIT ˇ Symetrická šifra E ˇ 2 strany (A, B) a důvěryhodný autentizační server (značíme T) ˇ Cíl: ­ autentizace subjektu A vůči B ­ ustavení klíče k (zvolí T) ­ případně distribuce tajemství sdíleného A a B ˇ Každá strana sdílí tajemství se serverem KAT, KBT Kerberos ˇ Zjednodušená verze protokolu ­ L ­ doba platnosti (,,lifetime") ­ Def.: ticketB = EKBT(k, "A", L), auth = Ek("A", TA) ­ (1) A T: "A", "B", nA ­ (2) A T: ticketB, EKAT(k, nA, L, "B") ­ (3) A B: ticketB, auth ­ (4) A B: Ek(TA) (1) (2) (3) A B ¨T (4) Asymetrické techniky přenosu klíče ˇ Zašifrování podepsaných klíčů ­ A B: PB(SA("B", k , tA)) ­ (volitelné) časové razítko tA zároveň autentizuje A vůči B ˇ Separátní šifrování a podpis ­ A B: PB(k, tA), SA("B", k, tA) ­ Pouze v případě, kdy z podpisu nelze získat podepsaná data ˇ Podepsání zašifrovaných klíčů ­ A B: tA, PB("A", k), SA("B", tA, PB("A",k)) Asymetrické techniky přenosu klíče ˇ X.509 obousměrná autentizace s přenosem klíče ˇ Def.: DA = (tA, rA, "B", PB(k1)) DB = (tB, rB, "A", PA(k2)) ˇ Protokol ­ A B: certA, DA, SA(DA) ­ A B: certB, DB, SB(DB) Asymetrické techniky ustavení klíče ˇ Diffie-Hellman protokol pro ustavení sdíleného tajemství ­ Společné prvočíslo p, generátor v Zp ­ A volí tajné x, B volí tajné y ­ A B: x mod p ­ A B: y mod p ­ A a B sdílí K=xy mod p Otázky? Vítány!!! Příští přednáška 20. 10. 2004 v 18:00 Polosemestrální písemka 3. 11. 2004 v 18:00 matyas@fi.muni.cz zriha@fi.muni.cz