1 Praktické aspekty kryptografie v IT MV707K Informační technologie v právní praxi  Zdeněk Říha 2 Počítačová bezpečnost 1. Důvěrnost (bráníme neautorizovanému čtení dat) 2. Integrita (bráníme neautorizované modifikaci dat) 3. Dostupnost (data/systémy jsou dostupné podle plánu) 3 Kryptografie • Symetrická – Obě strany používají stejný (tajný) klíč • Asymetrická – Existují různé klíče (soukromý/veřejný) • Bezklíčová – Generování náhodných čísel • Náhodná vs. pseudonáhodná čísla – Hašovací funkce • Otisk dat (libovolný vstup, výstup fixní délky) • MD5, SHA‐1, SHA‐2, SHA‐3 4 Symetrické šifrování ŠŠifrovifrováánníí ““OperaceOperace zazaččne dnesne dnes v 18:00v 18:00”” ““AxCv;5bmEseTfid3)AxCv;5bmEseTfid3) fGsmWe#4^,sdgfMwifGsmWe#4^,sdgfMwi r3:dkJeTsY8Rr3:dkJeTsY8R\\s@!q3s@!q3 %%”” ““OperaceOperace zazaččne dnesne dnes v 18:00.v 18:00.”” DeDeššifrovifrováánníí ČČistý textistý text ŠŠifrový textifrový text Stejný klStejný klííčč ((sdsdíílenlenéé tajemstvtajemstvíí)) 5 Symetrické šifrování • Výhody – Rychlost (asi 1000 rychlejší než asymetrické šifrování) • Nevýhody – Klíč je tajný a je třeba jej udržovat v tajnosti – Klíč je třeba domluvit předem (a tak aby se jej nedozvěděl  nikdo jiný) 6 Symetrické šifrovací algoritmy • DES – Klíč: 56 bitů – Šifruje bloky dat o velikosti 64 bitů – Dnes nedostatečně bezpečné – Lze kombinovat DES se 2 nebo 3 různými klíči, pak je  bezpečné. • Nazývá se TrippleDES nebo 3DES • Blowfish, Twofish – Rychlé a bezpečné algoritmy 7 Symetrické šifrovací algoritmy • AES (Advanced Encryption Standard) – Vítěz soutěže NIST z let 1997‐2000 – Původně se jmenoval Rijndael – Klíče o velikosti 128, 192 nebo 256 bitů – Rychlý a bezpečný 8 Asymetrická kryptografie – digitální podpis PodepsPodepsáánníí ““OperaceOperace zazaččne dnesne dnes v 18:00.v 18:00.”” ““Py75c%bn&*)9|fDe^Py75c%bn&*)9|fDe^ bDFaq#xzjFr@g5=&bDFaq#xzjFr@g5=&”” ““OperaceOperace zazaččne dnesne dnes v 18:00.v 18:00.”” OvOvěřěřeneníí podpisupodpisu DataData OvOvěřěřenenáá datadata PodpisPodpis RRůůznznéé klklííččee VeVeřřejný klejný klííčč odesilateleodesilatele soukromýsoukromý veveřřejnýejný ““Operace zaOperace začčnene dnes v 18:00.dnes v 18:00.”” 9 Asymetrická kryptografie – šifrování ŠŠifrovifrováánníí ““OperaceOperace zazaččne dnesne dnes v 18:00.v 18:00.”” ““Py75c%bn&*)9|fDe^Py75c%bn&*)9|fDe^ bDFaq#xzjFr@g5=&nbDFaq#xzjFr@g5=&n mdFg$5knvMdmdFg$5knvMd’’rkvegrkveg MsMs”” ““OperaceOperace zazaččne dnesne dnes v 18:00.v 18:00.”” DeDeššifrovifrováánníí ČČistý textistý text VýstupnVýstupníí ččistý textistý textŠŠifrový textifrový text RRůůznznéé klklííččee VeVeřřejný klejný klííčč ppřřííjemcejemce soukromýsoukromýveveřřejnýejný 10 Asymetrická kryptografie • Výhody – Veřejný klíč nemusí být udržován v tajnosti • Nevýhody – Pomalé algoritmy – Distribuce veřejného klíče • Ač není tajný, je důležité zajistit jeho integritu • Pokud někomu podstčím špatný veřejný klíč, pak bude  u podvržených zpráv indikován korektní digitální podpis !!! 11 Asymetrické šifrovací algoritmy • RSA (Rivest Shamir Adleman) – Založen na problému faktorizace velkých čísel • DSA (Digital Signature Algorithm) – Založen na problému diskrétního logaritmu • ECDSA – Obdoba DSA pro eliptické křivky – Toto už je složitá matematika… :‐) 12 Matematické základy RSA • Násobení prvočísel snadné, ale faktorizace čísel výpočetně náročná. • Velká prvočísla p a q, n = p∙q, φ(n) = (p‐1)(q‐1). • Zvolíme velké e takové, že gcd(e, φ(n)) = 1. • Spočítáme d = e‐1 (mod φ(n)). • Veřejný klíč: n, e. Neveřejné parametry: p, q, d. • Šifrování (ověření podpisu): c = we mod n. • Dešifrování (podepisování): w = cd mod n. 13 Příklad veřejného klíče RSA 14 Šifrování – velikost klíče Zdroj: NIST SP800 15 Distribuce veřejného klíče • Osobní předání – Flash, CD, … • Umístění na web – Webová stránka osoby, firmy, … • Pošleme spolu s podepsanými daty – Přiložíme k podpisu • Pokud nedostaneme klíč od daného člověka osobně,  jak poznáme, že klíč patří opravdu té osobě? – Co když někdo pošle podvrhnutý email? – Co když někdo hackne webovou stránku? 16 Certifikační autorita • Ověří totožnost žadatele – FO nebo PO • Zkontroluje veřejný klíč žadatele – Žádost o vydání certifikátu digitálně podepsána • CA nekontroluje důvěryhodnost žadatele… • Vydá certifikát veřejného klíče – Digitálně podepsaná vazba osoby a veřejného klíče – Digitálně podepsáno certifikační autoritou – Existuje několik standardů • X.509 (podporováno zákonem o DP) • PGP/GnuPG 17 Certifikát dle X.509 • Verze (standardu), sériové číslo (od dané CA) • Vystavitel (CA) • Předmět (FO, PO) • Časová platnost (od, do) • Veřejný klíč (RSA ‐ nejčastější, DSA, ECDSA) • Podepisovací algoritmus (včetně hašovací funkce) • Případná omezení • Digitální podpis výše uvedeného od CA 18 Certifikační autorita • Jak nám CA pomůže v distribuci veřejného klíče? – Nemusíme osobně předávat veřejný klíč na CD – K digitálnímu podpisu stačí přiložit certifikát od CA • Pokud věříme dané CA, pak stačí ověřit digitální podpis  certifikátu a známe veřejný klíč „předmětu“ – Pro ověření podpisu certifikátu potřebujeme veřejný klíč CA. – Kde ten získáme? • Na webu CA, ministerstva vnitra apod. :‐) • Osobně na pobočce CA • Co s certifikátem CA, které neveříme? • Nic • Musí žadatel věřit CA? – Ani moc ne … 19 Certifikační autority • CA = „poskytovatel certifikačních služeb“ • CA si můžete vytvořit i doma (OpenSSL) – Kdo jí ale bude důvěřovat… • Kvalifikovaný poskytovatel certifikačních služeb – Určité požadavky + informovat MV ČR • Akreditovaný poskytovatel certifikačních služeb  – Akreditace MV ČR • Aktuálně akreditovány následující CA: – I. CA – Postsignum – eIdentity 20 Počítačová bezpečnost – další pojmy • Autentizace – Ověření identity subjektu (uživatele, počítače,…) • Autorizace – Přístupové právo pro nějakou akci 21 Webová bezpečnost http vs. https 22 HTTP komunikace • GET / HTTP/1.0 • Connection: Keep‐Alive • User‐Agent: Mozilla/4.7 [en] • (X11; U; FreeBSD 3.4‐STABLE i386) • Host: www.rtfm.com • Accept: image/gif, image/x‐xbitmap, image/jpeg, image/pjpeg,  image/png, */* • Accept‐Encoding: gzip • Accept‐Language: en • Accept‐Charset: iso‐8859‐1,*,utf‐8 • (blank line) Požadavek Hlavičky Prázdný řádek 23 HTTP komunikace • Standardně není HTTP požadavek ani odpověď serveru nijak  šifrovaná • To se týká i: – Uživatelských jmen a hesel – Osobních údajů, které vkládáte do formulářů • Adresa • Datum narození • Rodné číslo • Pokud má někdo přístup k síťové infrastruktuře, kudy data  procházejí, může je odposlouchávat. – To se týká i hackerů, kteří se dostali k přepínačům, směrovačům po  cestě… 24 Příklad HTTP komunikace • Start/spustit/cmd • telnet www.seznam.cz 80 • GET / [enter] [enter] 25 HTTPS komunikace • HTTPS = HTTP + SSL • HTTPS komunikace je zabezpečena protokolem SSL/TLS. • SSL/TLS zajišťuje – Důvěrnost přenášených dat • Data jsou symetricky šifrována – Integritu přenášených dat • Data jsou zabezpečena pomocí MAC (Message Authentication Code) – Autentizaci • Defaultně je povinná autentizace serveru 26 Průběh SSL/TLS 27 Autentizace v HTTPS • Standardně je povinná autentizace serveru, tj. když se klient (např. webový prohlížeč) připojuje k  (webovému) serveru má jistotu, že se připojil ke  správnému serveru. – To je důležité při zadávání hesel, čísel platebních karet  apod. – Phishing … 28 Autentizace v HTTPS • Server posílá certifikát serveru. • Certifikát uvádí jméno serveru a veřejný klíč serveru. • Protokol SSL/TLS dále ověří, zda server má k  dispozici soukromý klíč odpovídající certifikovanému  veřejnému klíči. – Data se šifrují veřejným klíčem serveru, jen správný server  bude umět dešifrovat. 29 Certifikát • Certifikát serveru je podepsán vydávající certifikační autoritou (CA). • Tato podepisující CA musí být považována za  důvěryhodnou. – A její certifikát musí mít uložen v seznamu důvěryhodných  CA… 30 Seznam důvěryhodných CA • Seznamy jsou uloženy v prohlížečích (IE bere  seznam z OS) • Tyto seznamy můžete konfigurovat. • Iniciálně jsou tam i desítky CA o kterých jste nikdy  neslyšeli… – Těm všem automaticky důvěřujete  31 Seznam důvěryhodných CA 32 Seznam důvěryhodných CA • Podobně v Google Chrome 33 Seznam důvěryhodných CA • Mozilla Firefox 34 Certifikát nepodepsán důvěryhodnou CA 35 Certifikát určen pro jiný web… 36 Certifikát nepodepsán důvěryhodnou CA • Pokud přesto pokračujete: – V IE červené URL, … – a indikováno, že certifikát je chybný 37 CA lze přidat mezi důvěryhodné 38 Certifikát podepsán důvěryhodnou CA • Certifikát je v pořádku: – V IE bílé URL,… – a znak zámku 39 EV certifikát podepsán důvěryhodnou CA • EV (extended validation) certifikát má vyšší míru  důvěry ve shodu vlastníka domény s webovým  serverem. • Technicky ten stejný X.509 (s drobnou poznámkou),  ale CA si více žadatele o EV certifikát „proklepne“. 40 Důvěra nebo nedůvěra • Pokud certifikát není podepsán důvěryhodnou CA  nemusí to automaticky znamenat špatnou stránku. • Naopak certifikát podepsaný důvěryhodnou CA  nemusí znamenat, že na webové stránce nemůže  být nějaký malware. • Jednoduché řešení/návody pro uživatele neexistují. 41 Jak zjistit, jaká CA podepsala certifikát serveru? 42 Můžete si i prohlédnout certifikáty… 43 SSL/TLS Verze • Existuje několik  verzí SSL/TLS • SSL v2.0 není bezpečné – Nepoužívejte 44 Pár statistik 45 Pár statistik 46 Kontrola certifikátu • Jméno počítače • Časová platnost od‐do • Platný podpis • Podpis vytvořen důvěryhodnou CA • … 47 Pár statistik