Blog - Kodrla.eu

Šifrování

Předpokládám, že všichni víme, co je šifrování. Dá se říct, je to činnost, kterou skrýváme data před nepovolanými zraky. Pojďme se ale podívat na šifrování trochu podrobněji.

V tomto článku si uděláme základní přehled o šifrování. Řekneme si, co je symetrické a asymetrické šifrování a vysvětlíme si, k jakému účelu je které vhodné.

Základní dělení kryptografických metod

Předpokládám, že všichni víme, co je šifrování. Dá se říct, že je to činnost, kterou skrýváme informace před nepovolanými zraky. Pojďme se tedy rovnou podívat na šifrování trochu podrobněji. Šifrovací metody dělíme na dva základní typy –symetrické a asymetrické šifrování.

Symetrické šifrování

Pro symetrické šifrování je typické, že pro zašifrování i dešifrování používá stejný klíč (laicky řečeno heslo).
Příklad: Alice a Bob se domluví, že klíčem bude tajny_klic123. Alice tímto klíčem zašifruje zprávu (nebo třeba ZIP archiv), Bob tím samým klíčem data zase rozšifruje.

  • Výhoda: rychlé a nenáročné na výkon.

  • Nevýhoda: tajný klíč si musíme nejdřív nějak bezpečně předat – a to je často problém.

Asymetrické šifrování

Abychom se vyhnuli předávání tajného klíče, používá se asymetrická šifra. Ta pro šifrování a dešifrování používá pár klíčůkde každý uživatel používá svou dvojici. Tento pár tvoří:

  • veřejný (public) klíč, který může rozdat všem,

  • soukromý (privátní) klíč, který si vlastník striktně nechává jen pro sebe.

Tyto dva klíče jsou spolu matematicky propojené a šifrovací algoritmy zaručují, že ke každému soukromému klíči patří pouze jeden veřejný klíč (a naopak). Z toho vyplývá, že co se zašifruje veřejným klíčem, dokáže rozšifrovat jen odpovídající privátní klíč.

Příklad: Alice chce poslat Bobovi zprávu.Vezme Bobův veřejný klíč a zašifruje s ním zprávu. Rozšifrovat ji dokáže jedině Bob, protože jen on má ten správný privátní klíč. Ani Alice, i když data šifrovala, nemůže data dešifrovat.

  • Výhoda: veřejný klíč můžeš klidně vyvěsit na web – nemusíš ho tajně předávat.

  • Nevýhoda: výpočtově je to náročnější a pomalejší než symetrické šifrování. Nutnost bezpečného uchování privátního klíče.

Certifikáty

Abychom si mohli být jisti tím, s kým komunikujeme, existují u asymetrického šifrování certifikáty.Certifikát je soubor, který obsahuje veřejný klíč, informaci o identitě vlastníka (např. že klíč patří doméně www.firma.cz nebo uživateli s e-mailem info@kodrla.eu) a podpis certifikační autority (CA). CA je důvěryhodná třetí strana, která ověřila, komu klíč skutečně patří. CA můžebýt veřejná, poskytující služby komukoli (např. I.CA nebo PostSignum), nebo interní, obvykle ve firmě a sloužící interním potřebám firmy. 

Poznámka: Certifikační autority, které splní požadavky, mohou vystavovat např. i certifikáty pro úředně uznávaný elektronický podpis. Pro vystavení tzv. kvalifikovaného certifikátu pak ověřují totožnost žadatele třeba podle občanského průkazu.

Jakou šifru zvolit?

V běžné praxi je celkem jedno, jestli zvolíte symetrické, nebo asymetrické šifrování. U jednotlivých souborů, které si vyměňují uživatelé, obvykle vítězí symetrické, pro svou jednoduchost. Zašifrovaný soubor si pošlou e-mailem, klíč v SMS a (pokud se e-mail i SMS nenacházejí ve stejném telefonu pod kontrolou útočníka) bezpečnosti je učiněno zadost.

Mnohem důležitější je použitý šifrovací algoritmus a délka klíče. Je potřeba používat takové algoritmy, které jsou bezpečné, a s dostatečnou délkou klíče. Algoritmy zastarávají v čase. To, co bylo bezpečné před desti lety, dnes za bezpečné považováno být nemusí. Musíme to zohlednit zejména u dlouhodobého šifrování, kde potřebujeme mít jistotu, že data budou v bezpečí i za delší dobu v budoucnosti.

Mezi aktuálně doporučované symetrické šifrovací algoritmy patří zejména AES a ChaCha20. AES je dnes standardem pro většinu použítí, ChaCha20 je vhodný pro mobilní zařízení a prostředí bez hardwarové akcelerace. Pro asymetrické šifrování se stále používá RSA, ideálně s klíčem o délce alespoň 3072 bitů, a modernější ECC (Elliptic Curve Cryptography), který nabízí stejnou úroveň bezpečnosti při menší délce klíč.

Inspiraci pro algoritmy, které lze považovat za bezpečné, můžete nalézt v dokumentu Minimální požadavky na kryptografické algoritmy na stránkách NÚKIBu.