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
1alere0morbiPurple
2massad1vulputateMaroon
3tmicheli2integer aliquetBlue
4fmaccarrane3estMauv
5btheis4namTurquoise
6brosgen5tempor turpisMauv
7mpetrillo6neque aeneanGoldenrod
8bsigars7viverraOrange
9crobjant8dictumstRed
10moverlow9volutpat sapienYellow
11lparadineaeu interdumTeal
12komoylanbin imperdietPink
13emallindercante vestibulumTurquoise
14aleifdnatoqueTurquoise
15mtettesapien urnaTurquoise
16ekolushevfconsequatOrange
17jdillowgnisi volutpatPink
18lvanhaeftenhsitPink
19ehairiaenean auctorViolet
20dsyddalljvulputate nonummyPink
21tpellingkaliquam eratViolet
22rbruckentallaliquam lacusTurquoise
23eferrolimvestibulumPurple
24adukernfelisGoldenrod
25storrioultrices posuereYellow
26nchallinerpconvallis duisViolet
27bmckelveyqmorbiTurquoise
28sfullaloverprimis inTurquoise
29mkarpfsvenenatisBlue
30emadderntmaecenasPuce

Tabulka se šifrováním hesel - Blowfish

ID Přezdívka Heslo Zpráva
1alere08sZL4Do/pjT7Nv6hfuutMA==Purple
2massad1mmhP4/x2ZsqZnErDBDoR3ebkUTRLlPPVMaroon
3tmicheli2KGZLo57NR2Kzhdq8DtHU896K4C5BJU+HNDanTGnEeN8=Blue
4fmaccarrane32WDyMjVLH5Q=Mauv
5btheis4cLlpUJ7s/50=Turquoise
6brosgen52EHCXVTqirxfc9HM5jciy0YkYi+dEvi1ni0DiEa16cM=Mauv
7mpetrillo67gOa/QGW9yEh5P6da1cOXmsXuBeA2eLR01P5vRKlEPE=Goldenrod
8bsigars7T8Mzdj1GLjDC5mhYWd0ZlA==Orange
9crobjant8nhnd4zjYVdWqYKCGOybg0MT/DT6HqBQuRed
10moverlow96rnzRwHUzT41PcGDvfTtQQYX0JWFDoVeOVkzbGBrcsA=Yellow
11lparadineaqb1Jj2pUdQZPvSO7HRIG4FPAvzhmP2n4Teal
12komoylanbTAJungR5NIuUdvIMRpaGBrwp8RKY+O7rNnPmFk1KLck=Pink
13emallinderc4s4OkXhoBkvFcS5PrFtN07s1gtROvQsaO880eJ842as=Turquoise
14aleifdVMYY/S6ZVUKkPgSbykMJlA==Turquoise
15mtetteW+L82LtIVEEDT7dzryol3iG67ebkqGUTTurquoise
16ekolushevf0TDcxmVDzVS7qBYaFxKWLI2M/cmmkZIKOrange
17jdillowgBnxMmbJhxedIuRscp5J8QEq/EaTixMLPVCKSaZl06Fs=Pink
18lvanhaeftenhLe9u4uRAaVI=Pink
19ehairidfbBctpxEL8tUPcuTY1xoGMzxedzrb4tGve9vrWze/Q=Violet
20dsyddalljmmhP4/x2ZsqZnErDBDoR3SJAeZH3SOxtpxTfSrqYCsx97MsLZpntDw==Pink
21tpellingk7xm/cAywz/eodZ7oHTqZuZE4X25qx3PZ5MXmYM5zFy0=Violet
22rbruckentall7xm/cAywz/eodZ7oHTqZuVyD0Y8nWrJ+5jmguuSscpg=Turquoise
23eferrolimx9dCefitbYqVUpmV3jy8GY1D97zTVX7fPurple
24adukern1iyMaQQfWo2LjWCptiIqeQ==Goldenrod
25storrio4b4hrQZaI7BnIxNmzBYLVmMVAMKMDhLyMyfgSzrmQWC4WFkRdZhxsg==Yellow
26nchallinerps3j69FoEQiq9xosH9GAsLAQnDpxzA2adcv7QdPeAMd4=Violet
27bmckelveyq8sZL4Do/pjT7Nv6hfuutMA==Turquoise
28sfullaloverDTpJilDNvHR2TqXXSJkuvhUpQM7uDF1RTurquoise
29mkarpfs/e+t6QN305nBmUBWgTrViQRdrJK9FAiXBlue
30emaddernt4+wM9KxTrCCYnvVC4f73yBDnEf71faSSPuce