Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilPetra Bartošová
1
Šifrování © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy http://creativecommons.org/licenses/by-nc-nd/3.0/ Obsah: ● historie šifer, dělení šifer ● symetrická šifra, klíč, WEP, DES, AES ● generátor pseudonáhodných čísel, jednosměrná funkce ● asymetrická šifra, privátní a veřejný klíč, RSA, DSA ● hashovací funkce a její kolize, digitální podpis ● přenos důvěry, certifikát, PKI ● křížové šifrování, problém autentičnosti ● MITM, HTTPS, S/MIME, gnupg 20.11.2010
2
Šifrování (kryptografie) ● z řeckého kryptós (skrytý) a gráphein (psát) ● jde o utajení obsahu zprávy ● pro čtení je nutná speciální znalost (tajemství) ● kryptoanalýza (analýein – uvolnit, rozvázat) ● čtení šifrovaného textu bez znalosti tajemství ● stárnutí šifry → vývojem lepší kryptoanalýzy ● velmi dlouhá historie utajování před protivníkem ● hodí se v mnoha situacích: ● válka, politické intriky, milenci, obchodní tajemství
3
Historie šifrování ● Sparta – Skytale (5. stol. př. n. l.) ● zápis textu na pruh kůže namotaný na tyči ● Caesarova šifra (40. až 50. léta př. n. l.) ● posun o 3 písmena v abecedě (Zápisky z války galské) ● Kámasútra (4. až 6. stol. n. l.) ● šifrování doporučeno pro zprávy mezi milenci ● Enigma (1918, Německo 2. světová válka) ● mechanicko-elektrický stroj ● rozluštěno již před válkou (Pol., Brit.), ale utajeno ● používáno do 50. let (ani SSSR nevěděl o prolomení šifry již během války, veřejně odtajněno až v 70. letech)
4
Historické typy šifer ● Steganografie ● ukrývání zpráv (neviditelný inkoust, zalití voskem) ● dnes jako šum do obrázku, zvuku, videa apod. ● Substituční ● Caesarova šifra ● ale i za jiné symboly (např. čísla: A → 58, B → 0,...) ● Aditivní ● aditivní posouvá o náhodný počet (dle klíče) ● Transpoziční ● prohazování pořadí (mechanicky čtverec s otvory) ● opět nutný klíč
5
Dělení šifer ● podle množství zpracovatelných informací ● blokové – pracují s bloky dat ● proudové – pracují s jednotlivými bity proudu dat ● podle použitých klíčů ● symetrické – stejný klíč pro kódování i dekódování – rychlé, problém bezpečného přenosu klíče – všechny historické, ale i moderní ● asymetrické – dva různé klíče – pomalejší, není nutné sdílet tajemství (klíč) – nové, matematika, výpočty vyžadují počítač
6
Symetrická šifra ● klíč slouží pro šifrování i dešifrování, je rychlá ● problém klíče: ● utajíme-li při přenosu klíč, je šifra bezpečná ● nemusíme pak tajit přenos zprávy (šifrované) ● nejjednodušší je prostý XOR, ale aby byla šifra nerozluštitelná, musí být: – klíč dlouhý jako zpráva – klíč musí být dokonale náhodný – klíč může být použit jen jednou ● více viz Vernamova šifra ● dnes: DES, Twofish, RC6, … Rijndael (AES)
7
Klíč symetrické šifry ● klíč se utajuje ● klíč základem symetrického šifrování („tajemství“) ● přenos klíče je problém ● zkopírování klíče se nepozná, ale znehodnotí jeho použitelnost ● dnes měříme na počet bitů (entropie) ● z hesla určíme zhruba počet bitů entropie pomocí počtu kombinací, které heslo vytváří ● prodloužení klíče moderních šifer zvyšuje exponenciálně jeho bezpečnost před kryptoanalýzou
8
Využití symetrické šifry čitelná zpráva + klíč šifrovaná zpráva šifrovaná zpráva + klíč čitelná zpráva Odesílatel Příjemce Přenos (zde jsou lvi) klíč
9
Příklady symetrické šifry (1) ● WEP ● symetrická šifra pro zabezpečení Wi-Fi ● je to proudová šifra RC-4 s klíčem délky: – 40 bitů (64bitový WEP) – 104 bitů (128bitový WEP) ● správce uloží klíč na klienta a AP ● problémy WEP – má špatně definovaný inicializační vektor – umožňuje klíč zjistit na základě analýzy přenášených zpráv, u kterých částečně známe vnitřní obsah
10
Příklady symetrické šifry (2) ● DES ● bloková symetrická šifra, 1976 ● v roce 1999 prolomena (fixní klíč jen 56 bitů) ● řeší Triple DES, je ale pomalý ● AES ● bloková symetrická šifra, nástupce DES (1997) ● algoritmus Rijndael (vítěz soutěže, 2002) ● klíč 128, 192, 256 bitů ● široce používáno (Wi-Fi) jako dříve DES
11
Asymetrická šifra ● využívá dva klíče: ● privátní (utajuje se) → P (privátní klíč) ● veřejný (dostupný v PKI) → V (veřejný klíč) ● jedním se šifruje, druhým dešifruje ● oba mají těsnou vazbu (generují se společně) ● z jednoho ale nelze odvodit druhý ● ve skutečnosti to lze, ale velmi obtížně – sdílení veřejného klíče proto není problém ● využívají se jednosměrné funkce (viz dále)
12
Generátor náhodných čísel ● nutný při generování páru klíčů P a V ● počítač umí jen exaktně počítat ● vzniká reprodukovatelná řada hodnot funkce ● nutné zahrnou entropii (nepořádek) ● kvalita entropie určuje kvalitu generovaných P a V ● získává se z externích zdrojů: – přerušení od disků nebo síťové karty, šum zvukovky – klávesnice, myš (tj. nepředvídatelné akce uživatele) ● v Linuxu součást OS ● Windows – nutný vlastní
13
Jednosměrná funkce ● základem asymetrické kryptografie ● snadno lze vypočítat funkční hodnotu funkce ● inverzní funkce je výpočetně extrémně náročná ● nejlépe exponenciálně → zdvojnásobíme obtížnost výpočtu a složitost inverzního postupu se umocní ● snadno dosáhneme miliardy let ● počítáme s tím, že se nikomu nevyplatí čekat ● primitivní je dělení, kde se zahodí zbytek ● lepší je násobení (opakem je faktorizace, rozklad na prvočísla), diskrétní logaritmus, NP- úplné problémy (problém batohu atp.)
14
Klíče asymetrické šifry ● privátní klíč ● je chráněn heslovou frází (fráze je delší, než heslo) ● musí být držen v tajnosti ● někdy je uschován na speciálním zařízení (karta) ● je ohrožen při zavirování počítače a při neschopnosti majitele udělat audit obsahu počítače ● veřejný klíč ● obsahuje identifikátor a typicky jméno a e-mail majitele ● může být digitálně podepsán (viz dále) ● ukládá se na klíčový server (viz dále PKI)
15
Princip asymetrické šifry ● dva klíče (P a V), dvě strany (A, B) ● chráníme VŽDY co nejlépe P klíče ● zašifrujeme-li něco jedním klíčem, dešifruje to jen ten, kdo má druhý klíč z páru ● zašifruji-li svým P A, může kdokoliv dešifrovat ● ??? k čemu je to dobré → digitální podpis ● zašifruji-li cizím V B, dešifruje jen majitel P B ● → hodí se pro utajený přenos zprávy
16
Šifrování pomocí P A ● strana A zašifruje pomocí privátního klíče (P A ) ● kdokoliv to dešifruje veřejným klíčem (V A ) ● zdánlivě je tato operace k ničemu, nicméně... ● dešifrovat lze úspěšně právě jen pomocí V A ● pokud bych věděl, komu V A patří, mohl bych věřit, že zašifrovaný text je skutečně od A ● → to je právě princip digitálního podpisu
17
Hashovací funkce ● je to speciální (jednosměrná) funkce ● též označení miniatura, fingerprint, výtah, otisk,... ● z libovolného vstupu vytvoří výstup stejné délky ● něco jako „charakteristika“ vstupních dat ● něco jako „kontrolní součet“ ● při malé změně vstupu se významně změní výstup ● MD5 (128 bitů) – má kolize, již nevhodný ● SHA-1 (160 bitů) – již se od ní též ustupuje ● SHA-2 (SHA-224, SHA-256, SHA-384 a SHA-512) ● číslo je počet bitů, využívána v současnosti
18
Kolize hashovací funkce ● nepříjemný problém hashovací funkce ● znamená to, že 2 vstupy mají stejný hash ● to by nebyl problém, protože počet různých výstupů hashovací funkce je omezený na rozdíl od nekonečného počtu různých vstupních dat ● problémem je, když lze snadno zjistit, jak pozměnit vstup, abychom získali určitý hash ● kolize a jejich výpočet je u MD5 známý ● proto je nevhodné MD5 používat ● (funkce není až tak jednosměrná)
19
Vytvoření digitálního podpisu ZprávaHash + PAPA Digitální podpis
20
Dešifrovaný hash Ověření digitálního podpisu (1) ZprávaVypočtený hash +V A = Digitální podpis Jsou stejné???
21
Ověření digitálního podpisu (2) ● vypočteme hash ze zprávy ● dešifrujeme digitální podpis (DP) ● použijeme veřejný klíč V A ● jde-li DP dešifrovat, musel být vytvořen pomocí P A ● porovnáme vypočtený a dešifrovaný hash ● jsou-li stejné, nebyla zpráva změněna ● patří-li V A skutečně odesílateli A, tak: ● je zpráva autentická ● vzniká otázka, jak ověřit, že V A patří skutečně A
22
Ověření V A ● nejlepší by bylo, kdyby nám A dal V A do ruky ● nepraktické, protože: – komunikace je požadována elektronicky – příliš mnoho osobního kontaktu – co s odesílateli v zámoří? ● zavoláme A a zeptáme se na hash jeho V A ● příliš mnoho telefonátů ● někdo se nějak za autentičnost V A zaručí ● přenos důvěry: certifikační autorita nebo síť důvěry
23
Přenos důvěry ● v běžném životě ● důvěřujeme radě člověka, kterému věříme ● jsme skeptičtí k radám od neznámého, z reklamy ● nevěříme radám notorického lháře nebo zločince ● v kryptografii ● věříme klíči, který je digitálně podepsán někým, jemuž důvěřujeme (tzv. digitální certifikát) ● k nepodepsaným klíčům přistupujeme skepticky ● nevěříme klíčům v zavirovaném nebo cizím počítači
24
Digitální certifikát ● je to digitálně podepsaný veřejný klíč ● využívá se přenosu důvěry, využívá: ● TTP – důvěryhodnou třetí osobu ● CA – certifikační autoritu (lepší, než TTP) ● věříme-li autorovi digitálního podpisu, věříme i veřejnému klíči, pod kterým podpis je ● je nutné, aby veřejný klíč, sloužící k ověření digitálního podpisu, byl důvěryhodný ● podpis může být i několikanásobný
25
Self-signed certifikát ● digitální certifikát podepsaný sám sebou ● ten, kdo generuje klíče, podepíše rovnou pomocí privátního klíče svůj veřejný ● má smysl jen proto, že: ● certifikát vždy má digitální podpis (bez výjimky) ● testovací účely (není nutné platit) ● ověření nutno řešit jinak ● kontrola otisku (telefonem), předání jinou cestou,... ● často u HTTPS – zde pozor na MITM útok
26
Klíčenka, úložiště V klíčů ● slouží pro lokální uložení klíčů ● klíčenka (keyring) ● označení pro úložiště klíčů v sítích důvěry ● zaznamenáváme vztahy důvěry ● využíváme různé úrovně míry důvěry ● vytvoří síť vztahů – lze zobrazit jako graf (pavučina) ● úložiště certifikátů ● pro certifikační autority, hierarchická struktura ● své vlastní úložiště produkty Microsoftu (MSIE, Outlook, …), zvlášť Firefox, Opera a další
27
PKI (Public Key Infrastructure) ● infrastruktura distribuce veřejných klíčů ● umožňuje je ukládat, získávat, ověřovat a revokovat ● používá vhodný přenos důvěry ● certifikační autorita – hierarchická struktura ● sítě důvěry – distribuovaná struktura ● využívá klíčové servery (key server) ● zajišťují distribuci veřejných klíčů ● klíče rozlišeny pomocí ID, jména a e-mailu ● revokace klíčů
28
Schéma ověření veřejného klíče Zpráva DP A + VAVA DP CA Hash Zpráva ? Hash dešif V CA + DP ROO T V ROOT + Hash V A ? Hash dešif Hash CA ? Hash dešif V ROOT je v úložišti
29
Popis ověření zprávy ● A si zajistí certifikát od CA (certifikační autorita) ● tj. má digitálně podepsaný veřejný klíč ● A vytvoří zprávu a podepíše svým P ● P je chráněn heslovou frází ● P není nijak dotčen CA (A ho nedá z ruky) ● B ověří zprávu klíčem V A (z klíčového serveru) ● B musí ověřit V A, který má DP od CA ● DP od CA ověříme klíčem V ROOT ● V ROOT je v úložišti, věříme mu, dále se neověřuje
30
Revokace klíčů ● privátní klíč může být: ● ztracen (stačí zapomenou frázi), ohrožen nebo zcizen ● celý pár klíčů je dále nepoužitelný ● revokace oba klíče zneplatňuje ● distribuce revokací pomocí PKI ● CRL – Certificate Revocation List ● revokační soubor je vhodné vytvořit při generování ● před použitím klíčů je potřeba konzultovat CRL ● nutný on-line systém, možnost DoS na PKI ● omezená platnost klíčů (1 až 5 let) ● řeší problém – CRL se nezahltí
31
Certifikační autorita – CA ● hierarchická struktura přenosu důvěry ● podpis pod veřejným klíčem má hodnotu důvěryhodnosti certifikační autority ● typicky komerční záležitost ● platíme za vytvoření digitálního certifikátu ● CA platí za uložení svého klíče do úložiště ● firma Verisign, Thawte, ipsCA a další ● zákonem definované CA ● zaručený podpis – uznatelný (státním) úřadem ● 1. certifikační, poštovní, … (uznané státem)
32
Příklad: Firefox, MSIE ● (praktická ukázka) ● navštívení stránky s certifikátem od CA ● demonstrace hierarchické struktury CA ● navštívení stránky se self-signed certifikátem ● ukázka reakce prohlížečů ● uložení self-signed certifikátu do úložiště ● ukázka obsahu úložiště ● ukázka revokovaných certifikátů ● diskuze na téma „důvěryhodnost obsahu úložiště“
33
Key signing party ● setkání za účelem vytvoření sítě důvěry ● bez počítačů (ochrana privátních klíčů) ● na lístcích jména a identifikace V ● lístky se vymění a ověří se navzájem totožnost ● pozor na kompromitaci, nutné být důsledný ● kompromitace snadná → otráví síť důvěry ● teprve doma podle ověřených lístků ● stáhneme klíč z klíčového serveru ● podepíšeme a pak vrátíme zpět na klíčový server
34
Sítě důvěry ● vznikají vzájemným podepisováním klíčů ● kvůli ověření je nutný vzájemný fyzický kontakt ● jsou relativně snadno kompromitovatelné ● stačí, aby někdo podepsal neověřený klíč – nemůžeme očekávat, že všichni 100% odpovědní – nevhodné pro komerční či vládní využití ● funkční zejména uvnitř uzavřených skupin – skupina vývojářů stejného projektu – zaměstnanci firmy, členové školní třídy ● řeší se několika úrovněmi důvěry – ve své sbírce klíčů definuji úrovně důvěry v klíče
35
Algoritmus RSA ● pro digitální podpis i šifrování ● popsán 1977, patent vypršel v roce 2000 ● rozklad velkých čísel na prvočinitele (faktorizace) je obtížná úloha, zatímco násobení je triviální ● variabilní délka klíče ● 663 bitů nedostatečné ● 4096 bitů pokládáno za bezpečné
36
Algoritmy DSA, ElGamal ● DSA ● 1991, asymetrická šifra jen pro digitální podpis ● NSA, patentováno ● předáno NIST → bezplatné používání – National Institute of Standards and Technology ● volitelná délka klíče (násobek 64) – dnes doporučen klíč délky 2048 (3072) ● ElGamal ● 1985, asymetrická pro šifrování i digitální podpis ● opírá se o výpočet diskrétního algoritmu ● šifrovaný text je 2x tak dlouhý, jako nešifrovaný
37
Využití asymetrické šifry zpráva + V příjemce šifrovaná zpráva šifrovaná zpráva + P klíč zpráva Odesílatel Příjemce (klíče P a V) Přenos (zde jsou lvi) V klíč
38
Problém autentičnosti ● dostane-li příjemce zprávu, která je zašifrována jeho veřejným klíčem, vždy ji rozkóduje, protože má druhý klíč do páru (privátní) ● neví ale, od koho zpráva je ● kdokoliv totiž může použít jeho veřejný klíč ● kdokoliv vyrobí P a V s libovolným jménem ● odesílatel neví, komu skutečně zprávu posílá ● ví se, že zprávu rozkóduje jen majitel P ● pokud by měly obě strany pár klíčů (P a V) ● šlo by oba páry zkombinovat?
39
Křížové šifrování PAPA VBVB PBPB VAVA Strana AStrana B T + P A + V B = Š Š + P A + V B = T přenos
40
Popis křížového šifrování ● odesílatel A pro zakódování zprávy použije: ● P A – svůj privátní klíč ● V B – veřejný klíč příjemce ● příjemce B pro dekódování použije: ● V A – veřejný klíč odesílatele ● P B – svůj privátní klíč ● nutno vyřešit autentičnost veřejných klíčů
41
Autentičnost V klíčů ● základ současné kryptografie ● nikdy 100% spolehlivé ● na soudy o neplatnosti el. podpisu se čeká – problém zcizení privátního klíče ● komerční a vládní → certifikační autority – český zákon o zaručeném podpisu – slabým článkem neškolení zaměstnanci (např. pošta) ● vydání klíče na základě falešných dokladů ● riziko zcizení privátního klíče ● neziskový sektor → sítě důvěry ● nakonec vždy problém koncového uživatele
42
Důsledky křížového šifrování ● aby fungovalo, je nezbytně nutné: ● ochránit privátní klíče ● existence PKI ● používat certifikáty (CA nebo sítě důvěry) ● umožňuje bezpečnou komunikaci přes nedůvěryhodný kanál (Internet) ● výpočetně náročné ● asymetrická šifra se využívá pro přenos symetrického klíče, pomocí něhož další komunikace ● periodická obměna symetrických klíčů
43
Man in the middle ● nejčastější útok na přenos chráněný certifikáty ● „muž uprostřed“, „muž mezi“ ● dešifruje a znovu zašifruje komunikaci ● pozná se podle nesprávného certifikátu ● riziko, že uživatel „odklepne“ falešný certifikát ● prohlížeč ho pak již dále nevaruje AliceBobMallory MITM Alice Bob
44
Příklad: HTTPS ● zabezpečená komunikace, využívá SSL ● server i klient pár klíčů ● je nutné, aby uživatel kontroloval ● certifikát serveru (částečně řeší prohlížeč) ● důvěřoval úložišti (zatím se neřeší) ● využití i pro autentizaci ● server zná veřejný klíč, který klient používá ● novinkou je SNI (zatím málo využito) ● aktuální klienti umí, servery pokulhávají ● Firefox 2.0, MSIE 7, Opera 8, Safari 3.2.1, Chrome
45
E-mail + šifrování ● přenos umožňuje S/MIME ● přiložený digitální podpis ● zašifrovaný celý email (křížové šifrování) – nutno posílat každému příjemci zvlášť ● často využíván program gpg (viz dále) ● http://www.gnupg.org/related_software/ http://www.gnupg.org/related_software/ ● Thunderbird – plugin Enigmail – využívá program gpg ● Outlook – pluginy jak pro „malý“, tak pro „velký“ (z MS Office)
46
Příklad: GPG ● nástroj pro asymetrické šifrování ● pro Linux, Windows a další operační systémy ● využívá sítě důvěry ● příkazový řádek, ale i GUI frontendy ● http://www.gnupg.org/related_software/ http://www.gnupg.org/related_software/ ● modulární → různé šifry ● všechny důležité operace ● generování klíčů, komunikace s klíčovými servery ● šifrování, dešifrování, digitální podpis ● podepisování klíčů, revokace, …
47
Příklad: GPG – použití ● gpg --gen-key ● generování páru klíčů ● gpg –list-keys ● gpg --list-secret-keys ● výpis veřejných klíčů; výpis privátních klíčů ● gpg --import KEYFILE ● import klíčů do klíčenky ● gpg -a --export NAME ● gpg -a --export-secret-keys NAME ● export klíčů do ASCII, NAME je identifikátor klíče (náhodné číslo z výpisu klíčů) ● gpg --delete-keys NAME ● gpg --delete-secret-key NAME ● odstranění klíčů z klíčenky ● gpg --edit-key NAME ● nastavení důvěryhodnosti klíče NAME ● gpg -u NAME --armor --sign FILE ● podepsání souboru ● gpg --verify [[SIGFILE]] [[FILE(S)]] ● ověření podepsaného souboru (SIGFILE – podpis může být zvlášť, FILE – zpráva ke zkontrolování) ● gpg -r NAME --output OUTFILE --encrypt INFILE ● zakódování souboru INFILE pomocí klíče NAME ● gpg -r NAME --output OUTFILE --decrypt INFILE ● dekódování souboru INFILE pomocí klíče NAME ● gpg --output revoke.asc --gen-revoke NAME ● vytvoření revokačního souboru pro klíč NAME (nutno pečlivě uschovat) ● gpg [--keyserver pks.gpg.cz] --recv-keys NAME ● stažení klíčů ze serveru (zde český server) ● gpg [--keyserver pks.gpg.cz] –refresh-keys ● aktualizace stavu klíčenky podle serveru ● gpg --sign-key NAME ● podepsání (cizího) klíče ● gpg [--keyserver pks.gpg.cz] --send-keys NAME ● odeslání klíče na klíčový server
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.