www.SAMURAJ-cz.com 

28.04.2024 Vlastislav Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Obecný úvod do šifrování dat

Upraveno 27.05.2019 09:00 | vytvořeno 26.06.2018 16:49 | Samuraj - Petr Bouška |
Shrnutí základních informací z oblasti šifrování. Termíny, typy kryptografických algoritmů (šifer), jaké algoritmy používat, jak bezpečná šifrovaná data jsou.

Kryptografie a šifrování

Kryptografie (Cryptography) je věda, která slouží k zabezpečení privátních zpráv před třetí osobou. Používá se pro dosažení různých cílů, primárně:

  • Confidentiality - důvěrnost, ochrana proti čtení dat
  • Data integrity - ochrana dat před změnou
  • Authentication - ověření, že data pochází od dané strany
  • Non-repudiation - nepopiratelnost autorství zprávy

Šifrování (Encryption) patří do oblasti kryptografie. Jde o transformaci dat za účelem jejich zabezpečení. Zdrojová data označujeme jako plaintext, cílová (šifrovaná) jako ciphertext. Výsledkem je, že pouze ten, kdo zná klíč, si může šifrovaná data přečíst (rozšifrovat).

Při šifrování se využívá klíč. Existují také jiné metody, které provádí transformaci dat, a nepoužívají klíč.

Hašování (Hashing) nebo hašovací funkce je matematická funkce, která má několik pravidel

  • z různě dlouhých vstupních dat vytváří kratší výstup pevné délky (hash)
  • stejný vstup má vždy stejný výstup
  • různé vstupy mají různý výstup
  • z výstupu nelze získat vstupní data
  • pokud dojde ke změně vstupu, tak se výrazně změní výstup

Hash se využívá se pro zajištění integrity dat, kdy se k datům vytvoří kontrolní součet. Příklad hašovacích funkcí MD5, SHA, SHA2.

Kódování (Encoding) provádí transformaci dat do jiného formátu (aby se mohla lépe zpracovávat). Proces je veřejně známý a může být obrácen. Příkladem je uložení binárních dat do textu pomocí kódování Base64, které se používá třeba pro uložení certifikátů.

Šifry a klíče

Termín šifra (Cipher) označuje (je synonymem pro) kryptografický algoritmus, což série jasně definovaných kroků, které provádí šifrování (encryption) nebo dešifrování (decryption). Dnes se primárně využívají veřejně známé šifry, takže bezpečnost není v utajení algoritmu, ale v síle klíče.

Při použití šifry potřebujeme klíč (Key), tajnou informaci, bez které nelze zašifrovanou zprávu přečíst. Používají se různé typy klíčů:

  • sdílený tajný klíč - zná jej více stran, používá se u symetrického šifrování
  • veřejný klíč - pro zašifrování u asymetrického šifrování
  • soukromý klíč - pro dešifrování u asymetrického šifrování

Důležitá je délka klíče, která je standardně určena počtem bitů. Ovlivňuje časovou náročnost při útoku hrubou silou na danou šifru a tedy bezpečnost šifrovaných dat. Související je síla šifry. Tu stanovují kryptologové, kteří analyzují algoritmy, a hodnotí, jaké úsilí je potřeba k jejich prolomení.

Kryptografické algoritmy

Obecně se šifry dělí na dvě kategorie, dle způsobu využití klíčů.

Symetrické algoritmy využívají pro šifrování a dešifrování stejný tajný klíč. Nevýhoda je, pokud chceme šifrovaná data předat jiné osobě, tak musíme řešit bezpečné předání klíče druhé straně. Zásadní výhodou je, že jsou rychlé (výrazně rychlejší, než asymetrické algoritmy). Také se označují šifrování se soukromým (symetrickým) klíčem. Dále se dělí na:

  • proudové šifry (stream ciphers) - pracují s nepřetržitým proudem symbolů (po znacích), rychlé, nenáročné, chyba ovlivní jeden znak, náchylnější k útoku, příklad RC4
  • blokové šifry (block ciphers) - pracují s bloky symbolů pevné délky (64, 128 bit), příklad DES, AES, RC5, BLOWFISH

Asymetrické algoritmy využívají klíče dva. Šifrovací klíč je veřejně známý, takže každý může data zašifrovat, ale dešifrovat je může pouze majitel soukromého (privátního klíče). Je vhodné pro menší data (používá se pro distribuci klíčů), protože je výpočetně náročné. Označuje se také jako šifrování s veřejným klíčem. Příkladem je RSA, Diffie Hellman, DSA, ECC (Elliptic-Curve Cryptography).

V praktických situacích se často kombinují oba algoritmy, kdy se asymetrická kryptografie použije pro výměnu tajných klíčů pro symetrickou kryptografii, kterou se šifrují vlastní data. To se děje například u protokolu SSL (Secure Sockets Layer) s využitím certifikátů (ty jsou příkladem asymetrické kryptografie s veřejným a soukromým klíčem).

Bezpečnost šifer

Když chceme zašifrovat nějaká dat, tak nás zajímá, jak bezpečné to bude. To je ovlivněno řadou faktorů. Mluvíme o bezpečnostní úrovni (security level), což je měřítko síly, kterou šifra dosahuje. Běžně se vyjadřuje v bitech (n bitů znamená 2n operací k prolomení, jinak řečeno počet možných klíčů).

  • délka klíče je horní hranice bezpečnosti šifry, protože každý veřejný algoritmus lze prolomit hrubou silou (měří se použití nejrychlejšího známého algoritmu), záleží na aktuálně dostupném výpočetním výkonu a typu šifry (symetrické, asymetrické, eliptické), protože různé typy šifer mají různé úrovně kryptografické složitosti (mají různou velikost klíče pro stejný stupeň bezpečnosti, třeba bezpečnost 128 bitů má AES-128 a RSA s 3072 bitovým klíčem)
  • dolní hranice bezpečnosti šifry může být nižší (snažíme se, aby byla stejná) díky různým útokům, zranitelnostem nebo nedostatkům v algoritmu (3DES byl navržen s možností klíče 168b, ale známý útok snižuje na 112b), pro asymetrické šifry existují vždy útoky rychlejší než hledání hrubou silou

Šifrovací algoritmy mají dánu pevnou délku klíče. Příklad DES 56 bitů, 3DES 112 bitů, AES 128, 196 nebo 256 bitů, RSA 1024 nebo 2048 bitů. Nejkratší klíče mohou být pro symetrické algoritmy, mnohem delší pro asymetrické algoritmy. Speciální případ jsou eliptické křivky, které patří do asymetrických algoritmů, ale mohou mít kratší délku klíče.

Bezpečnost zašifrovaných dat

Při šifrování dat v praxi využijeme nějakou aplikaci, která podporuje určitou šifru a velikost klíče. V této aplikaci, pro zašifrování/rozšifrování, většinou nezadáváme přímo šifrovací klíč (třeba 256 bitový), který je určený pro SW a tedy nemusí být čitelný pro člověka (binární klíč má vyšší bezpečnost). Místo toho volíme heslo (či PIN), které je určeno pro použití člověkem (často jde o čitelný text, tedy má nižší bezpečnost). Většinou má jinou délku než klíč.

Šifrovací klíč pak vzniká dvěma způsoby:

  • aplikace jej vygeneruje a přístup k němu chrání pomocí hesla
  • odvozuje se z hesla pomocí Key Derivation Function (KDF), ta generuje klíč dané délky, může přidat sůl, řešit sílu, často se využívají hash funkce

Ve výsledku tedy může více záviset na zvoleném hesle (pokud na něj lze použít útok hrubou silou) než síle zvoleného algoritmu. V dnešní době je doporučení, pro používání počtu znaků v hesle, komplexní heslo min 10 znaků, slovní heslo min 15 až 20 znaků. Doplněno: Požadavky/doporučení na délku hesla stále rostou, viz. nové znění vyhlášky o kybernetické bezpečnosti č. 82/2018 Sb. Správa a ověřování identit.

Doporučené kryptografické algoritmy

Existuje řada norem, nařízení a doporučení, kde jsou definovány možné kryptografické algoritmy. Pro volbu vhodného algoritmu se také můžeme podívat na statistiky a odhady bezpečnosti šifer a délek klíčů. A podle toho najít vhodnou bezpečnost pro naše požadavky.

Pokud potřebujeme být ve shodě s českou legislativou, tak můžeme využít Vyhlášku č. 316/2014 Sb. - Vyhláška o bezpečnostních opatřeních, kybernetických bezpečnostních incidentech, reaktivních opatřeních a o stanovení náležitostí podání v oblasti kybernetické bezpečnosti (vyhláška o kybernetické bezpečnosti), kde jsou v příloze č. 3 uvedeny minimální požadavky na kryptografické algoritmy různých kategorií.

Vyhláška č. 316/2014 Sb. byla k 28. 5. 2018 nahrazena Vyhláškou č. 82/2018 Sb., která již neobsahuje přílohu o požadavcích na kryptografické algoritmy. Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) zveřejnil dne 28. 11. 2018 na své úřední desce dokument Doporučení v oblasti kryptografických prostředků: Minimální požadavky na kryptografické algoritmy.

Výběr nejběžnějších doporučených algoritmů:

  • symetrické algoritmy AES (Advanced Encryption Standard) s délkou klíčů minimálně 128 bitů
  • asymetrické algoritmy DSA (Digital Signature Algorithm), RSA (Rivest-Shamir-Adleman), DH (Diffie-Hellman) s délkou klíčů minimálně 2048 bitů, EC-DSA (Elliptic Curve Digital Signature Algorithm) a ECDH (Elliptic Curve Diffie-Hellman) s délkou klíčů minimálně 224 bitů
  • hashovací funkce SHA-2 a SHA-3

Kdy a jak použít šifrování

Nejprve si musíme určit co šifrovat. Jedna z možností (předepsaná například v ISO normách) je klasifikovat informace (třeba standardní, chráněné, přísně chráněné) a určité kategorie šifrovat. Dnes bychom měli šifrovat osobní údaje (z nařízení GDPR). Či obecně všechny pro nás cenné informace.

Šifrování využijeme pro uchovávání informací, tedy uložení na elektronické datové médium (jako je pevný disk v počítači nebo na diskovém poli, výměnné datové médium, apod.). Informace v síti jsou většinou chráněny pomocí řízení přístupu, to ale v řadě případů není dostačující. Výrazně bezpečnější je zároveň využít ochranu šifrováním. Může se použít šifrování disku či šifrování souborů (třeba šifrovaný archiv pomocí aplikace 7-Zip), výměnné datové médium může být šifrováno pomocí BitLocker To Go.

Nebo při přenosu informací, kdy potřebujeme informace přenést na jiné místo či jiné osobě. Běžně jde o přenos v počítačové síti, ale může se také jednat o přenos na výměnném médiu. V praxi se využívá elektronická pošta, kde můžeme využít S/MIME pro šifrování a podepisování certifikátem (veřejným klíčem) nebo zasílat informace jako šifrovanou přílohu (soubor). Nějaká specializovaná aplikace pro komunikaci (třeba OKsystem Babelnet). Další možnost je online souborové úložiště, kde jsou data při přenosu chráněna pomocí TLS.

Zajímavé odkazy

Digitální podpis vs. šifrování

Asymetrická kryptografie využívá dva klíče (veřejný, který se otevřeně distribuuje, a soukromý, který zná pouze majitel). Klíče se generují podle určitého kryptografického algoritmu (jako RSA či ECC), z privátního klíče můžeme spočítat veřejný. Nejznámější využití je pro

  • šifrování s veřejným klíčem - kdokoliv může data zašifrovat veřejným klíčem, rozšifrovat se dají pouze soukromým klíčem
  • digitální podpis (autentizace) - k podepsání dat se využívá soukromý klíč, pomocí veřejného může kdokoliv ověřit platnost

Digitální podpis funguje tak, že se pro podepisovaná data spočítá hash (pomocí určité hashovací funkce, jako je SHA256) a ten se zašifruje soukromým klíčem. Výsledná šifrovaná data jsou digitální podpis (podpis obsahuje také časové razítko, kdy k podpisu došlo). Pokud dojde ke změně dat, tak je podpis neplatný.

Při ověření podpisu se pomocí veřejného klíče rozšifruje podpis (hash). Pak se k datům spočítá hash (danou funkcí) a oba hashe se porovnají. Pokud jsou obě hodnoty stejné, tak je podpis platný.

Pozn.: Pokud se data zašifrují privátním klíčem, tak je možno je rozšifrovat pouze veřejným klíčem. A naopak zašifrovaná data veřejným klíčem se rozšifrují pouze soukromým.

zobrazeno: 14582krát | Komentáře [0]

Autor:

Související články:

Windows OS

Články, které se věnují operačním systémům firmy Microsoft, jak klientských, tak serverových.

Protokol SSL/TLS

Protokol Secure Sockets Layer a jeho nástupce Transport Layer Security se hojně využívají na internetu pro zabezpečení komunikace jiného protokolu (třeba HTTPS, SMTPS, XMPP) pomocí šifrování.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

Zatím tento záznam nikdo nekomentoval.

Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách