Kryptologie v kostce

Jednou z nejdůležitějších částí při utajování informací ve zprávě je kryptografie. Při procesu šifrování převádíme původní „otevřenou“ čitelnou zprávu na zašifrovaný text. Výsledný text by v závislosti na použitém algoritmu měl být nesmyslný či přímo nečitelný pro entitu, která nezná pomocné informace k dešifrování. Tento proces se provádí dle předem určených pravidel či pomocí zvoleného algoritmu. Příkladem finálního produktu šifrování může být náhodná směsice čísel, písmen, slov, nesmyslných vět.

Tato podkategorie kryptologie se zabývá celkovým pohledem na šifrování dat, taktéž pod tuto kategorii spadá zpětná dešifrace. Dále zkoumá bezpečnost použitých šifrovacích algoritmů či případně celkovou bezpečnost šifrovacích systémů. Podstatnou částí je i tvorba šifrovacích a dešifrovacích klíčů, které se využívají v šifrovacích algoritmech a jejich případných interních výpočtech.
Při použití symetrického algoritmu se využije klíč, který je totožný pro šifrování i dešifrování. Tato varianta je jednoduchá, avšak při prolomení klíče v jednom přeneseném zašifrovaném textu dojde k prolomení zbytku, kde je klíč použit.

Typické využití tohoto typu klíče lze nalézt u blokových šifer, dále se jedná o substituční a transpoziční šifry. Toto šifrování pomocí bloků využívá implementace Feistelovy funkce. Využití lze nalézt například v algoritmu DES (Data Encryption Standard).

Výhodou DES je možnost využití „lavinového“ efektu, kdy při editaci otevřeného textu nastane velká změna v šifrovaném textu. Použití DES není příliš bezpečné, lepší je využít jeho náhradníka s názvem AES. Symetrické algoritmy jsou spíše vhodné pro archivaci důvěrných informací bez posílání druhé entitě.
Pod pojmem asymetrický algoritmus se schovává využití dvou odlišných klíčů. Oba klíče mají svůj specifický úkol a na nic jiného je nelze využít. Využíváme klíč na šifrování (veřejný) a také odlišný klíč určený k dešifrování (privátní).

Pro komunikaci s příjemcem je pak nutné předat privátní klíč v uzavřené lince, aby nedošlo k úniku daných informací. O tuto záležitost se nyní dokážou postarat moderní algoritmy samy. Ukázkovým příkladem je algoritmus RSA a zabezpečení digitálním podpisem.

K dosažení asymetrického šifrování je zapotřebí splnit tři základní požadované podmínky. První podmínkou je již zmíněné využití dvou různých klíčů. Druhou podmínkou je zajistit, aby ze zašifrovaného textu nebylo možné získat původní text i se znalostí veřejného klíče. Třetí a poslední nutnou podmínkou je „nevypočitatelnost“ privátního klíče. Této vlastnosti se dosahuje pomocí využití jednostranné funkce.
Pokročilé šifrování se v současné době využívá prakticky všude, kde je potřeba utajit osobní či tajné informace. Ukázkovým příkladem mohou být hesla uložená v databázích.

Dalším příkladem jsou síťové protokoly typu TLS a SSL, které zajišťují, aby komunikace mezi klientem a serverem probíhala bezpečně. Tato část je především viditelná ve webových prohlížečích díky známému HTTPS a ikonickému zámečku vedle textového pole s adresou. Využití kryptografie je významné také v oblasti mobilních plateb či tvorbě digitálních podpisů.
Pro vysvětlení kryptografických protokolů je potřeba definovat si slovo „protokol“ a pochopit jeho význam. Protokol je sada pravidel a instrukcí určující, jak se má daný systém zachovat v určité situaci a reagovat na ni. Protokoly se používají prakticky všude v oblasti informačních technologií.

Kryptografický protokol je takový protokol, který zajišťuje bezpečnou komunikaci mezi zařízeními na síti. Jeho úkoly jsou například zajištění dohody na privátních a veřejných klíčích, zajištění bezpečného spojení, šifrování komunikace symetrickým algoritmem. Je složen z menších celků takzvaných „kryptografických primitiv“, které jsou vždy zaměřeny na provádění jedné specifické věci.

Kryptografické primitiva jsou šifrovací algoritmy speciálně vytvořené za účelem stavby kryptografického protokolu a díky jejich zaměření na jeden úkol jsou vysoce spolehlivé. Pokud se u těchto prvků vyskytne zranitelnost, jsou ohroženy všechny protokoly, které daných primitiv využívají.

Mezi nejznámější a nejvíce uživateli používané kryptografické protokoly patří SSL, TLS, SSH.
V oblasti kryptologie jsou nejznámější především kryptografické protokoly Secure Socket Layer (SSL) a Transport Layer Security (TLS). Vytvořeny byli s cílem zajistit bezpečnou a šifrovanou komunikaci na síti. Zmíněné protokoly se zaměřují na ověření obou zařízení a následné šifrované přenosy v oblasti aplikační vrstvy.

V současné době je SSL označeno jako „zastaralé“ a je nahrazováno novější verzí s názvem TLS, které má opravené zranitelnosti z původního SSL. Pokud klient chce svůj provoz šifrovat tímto způsobem je nutno to serveru specifikovat. Nejjednodušší způsob, jak dosáhnout této komunikace je pak užitím specifikovaného portu. Příkladem je https na portu 443.

Komunikace probíhá v několika krocích. Prvním krokem je „handshake“, což je krok, ve kterém klient požádá server o zabezpečené spojení a domlouvá se na parametrech pro danou session, specificky pak šifrovací klíče a použití šifrovacího algoritmu. Tento proces využívá asymetrického šifrování, další komunikace však probíhá pomocí symetrických algoritmů.

V prvním kroku taktéž server odesílá svůj SSL/TLS certifikát ke klientovi, který ho následně ověřuje. Po ověření a úspěšném dokončení fáze „handshake“ se zahajuje zabezpečené spojení.
SSL/TLS certifikáty jsou možností, jak ověřit bezpečnost připojení k serveru. Tyto certifikáty umožňují šifrování HTTP přenosu, což se projevuje známým prefixem HTTPS a ikonou zámečku v internetových prohlížečích. Vygenerovaný certifikát obsahuje název domény, název organizace, název vystavitele certifikátu, datum vystavení, datum zániku, digitální podpis a veřejný klíč. Taktéž může obsahovat případné subdomény.

Při připojení k serveru pod šifrovaným portem je tento certifikát odeslán klientovi ve fázi „handshake“. Klient přijatý certifikát ověřuje na straně vydavatele před další komunikací. Tato kontrola zajistí, že je server tím, za koho se vydává. Pokud je certifikát platný a jeho ověření na straně vydavatele také, pak se přechází k další komunikaci v opačném případě k ukončení handshaku a spojení.

Symetrické algoritmy

V této sekci je možné vyzkoušet si převod textu z jeho původní plain formy do zašifrované podoby za pomocí jednoho klíče.

Asymetrické algoritmy

V této sekci je možné vyzkoušet si převod textu z jeho původní plain formy do zašifrované podoby za pomocí dvou klíčů.

Ostatní algoritmy

Ostatní algoritmy implementují šifrování klíčů a jejich bezpečnou výměnu s protistranou - aby nemohl být při přesunu zneužit. Většina těchto systémů se nezabývá pouze šifrováním zpráv jako takových.
Z důvodu složité implementace (a staré verze php) nejsou další algoritmy přidány k převodu textu jako u algoritmů symetrických.

Porovnání šifrovacích algoritmů

V této sekci se nachází tabulka porovnávající rychlost jednotlivých algoritmů na základě šifrování malého textového souboru (0.5 MB) a velkého textového souboru (5 MB)

Šifrování v praxi

V této části se nachází přístup do dvou databázových tabulek. Obě tabulky zobrazují, jak je důležité pracovat se zašifrovanými daty v případě úniku dat z databáze.

Tabulka bez šifrování hesel

ID Přezdívka Heslo Zpráva

Tabulka se šifrováním hesel - Blowfish

ID Přezdívka Heslo Zpráva