Co znamená SHA otisk a šifrování o 256 bitech?

18. 6. 2018 | Jindřich Zechmeister

V souvislosti se SSL/TLS certifikáty jste již jistě narazili na poměrně ustálené výrazy jako SHA-1, SHA-2, 256 či 2048bitový klíč aj. Pokud nevíte, co si pod těmito pojmy vlastně představit, je následující článek určen právě pro vás. Navíc vás seznámí vás i se samotným principem vzniku SSL/TLS certifikátu!

Kde všude nalezneme 256 bitů?

Na začátek si zopakujme, kde se u SSL/TLS certifikátů můžete s magickým číslem 256 vlastně setkat. První možností je samotné šifrování certifikátem. Jistě víte, že klíče používané pro asymetrické šifrování mají délku 2048 bitů. Na tuto délkou klíče narazíte při tvorbě CSR requestu, který obsahuje veřejný klíč. Stejnou délku má i klíč privátní. Tyto dva stejně dlouhé klíče se použijí při navazování šifrované komunikace (handshake), ale samotná výměna dat mezi prohlížečem a serverem je šifrovaná kratším dočasným symetrickým klíčem o délce právě 256 bitů. Možná se ptáte, zdali je bezpečné používat kratší symetrický 256bitový šifrovací klíč, když je v certifikátu obsažen asymetrický 2048bitový klíč? Odpověď se dozvíte zanedlouho.

Dokážeme vám, že 256 bitů vás ochrání!Dokážeme vám, že 256 bitů vás ochrání dostatečně!

 Druhou možností, kde můžete číslo 256 zahlédnout, je elektronický podpis, který je obsažen ve vašem SSL/TLS certifikátu. Certifikační autorita opatří vámi dodanou žádost o certifikát (CSR) svým podpisem a výsledkem je právě SSL/TLS certifikát. Kromě podpisu certifikační autority je funkce SHA-256 použita i pro výpočet otisku certifikátu. V detailu certifikátu ji tedy můžete najít několikrát.

Hashovací funkce SHA - jaké může mít podoby?

Zkratka SHA znamená secure hashing algorithm a jedná se o matematickou funkci, která dokáže vstupním datům přiřadit unikátní číselný řetězec určité pevně dané délky. Existují tři verze SHA-hashe, SHA-1 a SHA-2 a SHA-3. SHA-1 certifikátům vládnul do roku 2011 a SHA-2 je standardem od roku 2016. Možná si ještě pamatujete na nutnost certifikáty vystavené s SHA-1 znovu vystavit – nejzazším datem byl 31. prosinec 2015.

Hashovací funkce se liší jak způsobem vzniku (jakým způsobem je výstup získán), tak bitovou délkou výsledku. Co se délky týče, je SHA-1 160bitový otisk, zatímco v případě SHA-2 můžeme mluvit o „rodině otisků“, protože pod něj spadá více délek. Členy této rodiny jsou SHA-224, SHA-256, SHA-384 a SHA-512. 256 bitů je standardem, občas můžeme ale narazit i na SHA-2 certifikát o 384 bitech. 244-bitová verze není pro veřejné certifikáty dostatečná a 512-bitová je potom ze strany softwaru málo podporována.

Nejpřesnější označení by bylo např. SHA-2 384 – tedy vypsání jak verze algoritmu, tak délky otisku v bitech. Protože je ale 256 bitů nejběžnějších, můžete si být jisti, že když narazíte na označení SHA-2, jedná se právě o tuto délku.

Lze prolomit standardní šifrování a vytváření otisků? Ano, ale...

Proč je otisk a šifrování o 256 bitech dostatečně bezpečné? Bit má dvě hodnoty: 0 a 1 a pokud je klíč složen z 256 binárních jednotek (tedy jedniček a nul), existuje 2256 jeho možných podob. Počet možných hodnot (vždy dvě) zmocníme množstvím bitů a máme výsledek, tedy celkový počet unikátních otisků – hashů, nebo binárních kombinací pro šifrovací klíč.

Představit si můžeme i dvoubitový klíč. Takový by měl 22 možností, tedy pouze 4: 00, 01, 10, 11. Pokud si pod zadáním 2256 nedokážete představit konkrétnější cifru, rádi za vás tuto jednoduchý výpočet vyřešíme: Jedná se o 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936 možných výsledků, což je jistě více než dost – takovouto cifru téměř nelze ani vyslovit. Prolomit tuto úroveň šifrování by i nejrychlejšímu superpočítači na světě trvalo milion let. Útočník by zkrátka musel  hledat mezi všemi těmito kombinacemi, než by uhádl správné řešení. Podobně u hashovací funkce: Čím je množství možných otisků vyšší (opět máme 2256 kombinací), tím je nižší šance, že dva vstupy vytvoří stejný otisk – hash (a podaří se provést tzv. Kolizní útok).

Ze srovnání je patrné, že 256 bitů je zatím dostatečně bezpečných jak pro šifrování, tak pro hashovací funkci. Momentální bezpečnost SHA-2 ovšem neznamená, že by kybernetičtí odbornící seděli se založenýma rukama a čekali na to, až se objeví nějaký problém. Finální podoba nástupce SHA-2, „originálně“ pojmenovaného SHA-3, již existuje a je jisté, že se dříve či později stane standardem.

Zdroje

What is 256-bit Encryption? How Safe is It?

The Difference Between SHA-1, SHA-2 and SHA-256 Hash Algorithms

Báječný svět elektronického podpisu

 


Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz