Autentizační protokoly PV157 – Autentizace a řízení přístupu 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), příp. protokol oboustranný • 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 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 (viz další slajd) – slovníkové útoky – na protokoly využívající hesla, diskutováno 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/ů – další později nebo příště… Útok prolínáním (1) • Mějme autentizační protokol: rA rB, SB(rB, rA, A) Alice Bob r’A , SA(r’A, rB, B) Útok prolínáním (2) Alice BobEva rA rB, SB(rB, rA, A) rB r’A, SA(r’A, rB, B) r’A, SA(r’A, rB, B) Evě se podařilo vydávat se vůči Bobovi za Alici 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 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 výzva rB opakuje, pak je schopen poslat správnou odpověď. 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 pA – 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“) 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 správu 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´ Protokol bez klíčů • Přenos klíče bez předchozího sdíleného tajemství – Shamirův protokol bez klíčů (Shamir’s no-key protocol) – Komutativní šifra E – Každá strana má svůj 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í); server 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) 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 Zero-knowledge protokoly • Český překlad: protokoly s nulovým rozšířením znalostí • Jdou dále než protokoly sdělující hesla i protokoly typu výzva-odpověď • Zero-knowledge – umožňují demonstrovat znalost nějakého tajemství bez odhalení jakékoliv informace použitelné pro získání tajemství • Úplnost (completeness) – poctivé strany vždy dosáhnou úspěšného výsledku • Korektnost (soundness) – pravděpodobnost, že nepoctivý útočník se může úspěšně vydávat za jinou stranu je mizivá Zero-knowledge protokoly • Identifikační protokol Feige-Fiat • Důvěryhodná strana T volí modulus n = p·q (jako v RSA), n zveřejní, ale p a q uchová v tajnosti • A volí tajné s (nesoudělné s n, 1 ≤ s ≤ n-1), spočítá v = s2 mod n. Veřejný klíč A je v. • Subjekt A se autentizuje subjektu B: – A → B: x = r2 mod n – A ← B: e = 0 nebo 1 – A → B: y = r · se mod n • Opakujeme t-krát. Pravděpodobnost podvádění je 2-t. Protokoly vyšší úrovně – SSL/TLS Protokol SSL/TLS poskytuje: • Autentizaci stran – strany jsou autentizovány pomocí certifikátů a protokolu výzva-odpověď • Integritu – autentizační kódy (message authentication code - MAC) zajišťují integritu a autenticitu dat • Důvěrnost – po úvodní inicializaci („handshake“), je ustaven symetrický šifrovací klíč, kterým je šifrována všechna následující komunikace (včetně přenosu hesel apod.) Principy SSL/TLS • Pozice SSL/TLS – Mezi aplikační vrstvou a protokolem TCP – SSL/TLS nevidí do aplikačních dat – SSL/TLS neprovádí elektronické podepisování přenášených dat Fyzická vrstva Linková vrstva IP TCP/UDP SSL/TLS Aplikační vrstva Komponenty SSL/TLS • Složení protokolu SSL/TLS z komponent – Record Layer Protocol – zpracovává aplikační data – Handshake Protocol – úvodní domluva parametrů – Change Cipher Specification Protocol – použití nových parametrů šifrování – Alert protocol – informace o chybách a varováních Klíče v SSL/TLS • Použití klíčů – Klient generuje PreMasterSecret, šifruje veřejným klíčem serveru a posílá serveru – Obě strany vytvoří blok klíčů z PreMasterSecret (posílá se šifrovaně) a náhodných čísel ClientHello a ServerHello (posílají se nešifrovaně) – Blok klíčů tvoří klíče pro • MAC klient → server • MAC server → klient • šifrování klient → server • šifrování server → klient • inicializační vektory Record Layer Protocol • Základní vrstva protokolu • Pracuje nad TCP/IP (nebo jiným transportním protokolem). • Umožňuje kombinaci s různými protokoly vyšší úrovně (HTTP, FTP, telnet apod.), které běží beze změny • Posloupnost kroků – rozdělení dat na bloky o max. velikosti 214 bajtů – komprimace dat – výpočet MAC – doplnění na délku bloku šifrovacího algoritmu – šifrování Inicializační fáze • Handshake Protocol – Umožňuje vzájemnou autentizaci serveru a klienta – Implicitně je autentizace serveru povinná a autentizace klienta volitelná – Autentizace prezentací certifikátů veřejných klíčů a znalostí odpovídajících soukromých klíčů – Během inicializační fáze jsou vyměněna náhodná čísla a další data, nutná pro výpočet bloku klíčů SSL/TLS Client Hello Server Hello, ( , Client Cert Request,…) Server Cert Client CertClient Key Exchange, Cipher Spec, ( , ...) Application Data S E C U R E Client Server SSL/TLS v praxi • Analýza SSL certifikátů provedená v roce 2010 – 22,65 milionů web serverů s podporou SSL – Jen 720 tisíc serverů s certifikátem se správným jménem Zdroj: Qualis SSL Survey 2010 IPsec • Protokoly IPv4 – nedostatečná bezpečnost • Historie – Myšlenka IPsec již v roce 1991 – RFC v roce 1998 – vývoj neustále pokračuje – IPsec pro IPv4 jen přechodné řešení, neboť IPv6 již řeší problémy bezpečnosti • IPv6 – Větší množství adres (adresy IPv4 nebudou již brzy stačit) – Bezpečnost (IPsec povinný) – Mobilita IPsec • IPsec zajišťuje – Autentizaci původu dat – každý datagram je ověřován, zda byl odeslán uvedeným odesilatelem – Integrita dat – ověřuje se, zda data nebyla při přenosu změněna – Důvěrnost dat – data jsou před přenosem šifrována – Ochrana před útokem přehráním – útočník nemůže zneužít odposlechnutou komunikaci k útoku přehráním – Automatickou správu klíčů • Autentizační hlavička (AH) • Autentizační hlavička slouží k zajištění původu dat, integrity dat a chrání vůči útoku přehráním. Je použit MAC kombinovaný se sekvenčním číslem. IPsec – AH Next header Length Reserved Security Parameter Index Authentication Data Sequence number field IPsec - AH IP hlavička Ostatní hlavičky a data Tajný klíč IP hlavička AH Ostatní hlavičky a data 128 bitů Hašovací funkce (MD5 nebo SHA-1) Původní IP datagram Autentizovaný IP datagram IPsec - ESP • Encapsulated Security Payload (ESP) header • ESP zajišťuje integritu a autenticitu dat, brání útokům přehráním a zajišťuje důvěrnost dat. Je použit symetrický šifrovací klíč sdílený oběma komunikujícími stranami. Opaque Transport Data Security Association Identifier (SPI) Režimy IPsec • Transportní režim (end-to-end) • Tunelovací režim (firewall-to-firewall) tunel tunel • Standardní IP: • Režimy provozu IPsec – Transportní režim (point-to-point) – Tunelovací režim IPsec IP header Data IP header DataESP header ESP Trailer ESP Auth. šifrováno autentizováno šifrováno autentizováno IP header DataESP header ESP TrailerNew IP header ESP Auth. IPsec – správa klíčů • Oakley – protokol pro ustavení společného klíče – založen na protokolu Diffie-Hellman, ale: • strany jsou autentizovány (brání man-in-the-middle útoku) – sdílené klíče, dohodnuté předem – Veřejné klíče DNS (viz DNSSEC) – RSA klíče podle PGP – RSA klíče včetně certifikátu podle X.509 – DSS klíče včetně certifikátu podle X.509 • pomocí časově proměnných parametrů se brání útokům přehráním • pomocí tzv. cookies se brání útokům typu „DoS“ (prováděné výpočty jsou totiž časově náročné) • umožňuje dohodu na použité grupě • ISAKMP – framework (nezávislý na konkrétních šifrovacích algoritmech) pro správu klíčů a bezpečnostních atributů Útoky • Pasivní útočník – analyzuje odchycená šifrovaná data • Aktivní útočník – modifikuje data a/nebo vytváří nové zprávy • Zosobnění (impersonation) – jedna strana se vydává za stranu jinou • Přehrání (replay attack) – využití dříve poslané informace • Odraz (reflection attack) – využití odeslané zprávy k okamžitému poslání odesilateli • Volený text (chosen-text attack) – vhodné volení výzev (v protokolech výzva-odpověď) pro získání dlouhodobého klíče Útok přehráním Heslo Alice Bob Eva Heslo Eva Bob Protokol Diffie-Hellman (opak.) Alice x Bob αx mod p y αy mod p αxy mod p αxy mod p Útok „Man in the middle“ Alice x Bobαx mod p y αy mod p αxy’ mod p αx’y mod p Eva x’ αx’ mod p y’ αy’ mod p αx’y mod p αxy’ mod p