SHA-1 (zkratka pro Secure Hash Algorithm 1) je jednou z několika kryptografických hashovacích funkcí. SHA-1 se nejčastěji používá k ověření, že soubor byl nezměněn. To se provádí vytvořením kontrolního součtu před přenosem souboru a poté znovu, jakmile dosáhne svého cíle. Předaný soubor lze považovat za pravý pouze v případě, že oba kontrolní součty jsou identické.
Historie a chyby zabezpečení funkce SHA Hash
SHA-1 je pouze jedním ze čtyř algoritmů v rodině algoritmů Secure Hash Algorithm (SHA). Většina z nich byla vyvinuta americkou Národní bezpečnostní agenturou (NSA) a publikována Národním institutem pro standardy a technologie (NIST). SHA-0 má 160bitovou velikost souhrnu zpráv (hodnota hash) a byla první verzí tohoto algoritmu. Hodnoty hash SHA-0 jsou dlouhé 40 číslic. Byl vydán pod názvem „SHA“ v roce 1993, ale nebyl používán v mnoha aplikacích, protože v roce 1995 byl kvůli bezpečnostní chybě rychle nahrazen SHA-1. SHA-1 je druhá iterace této kryptografické hashovací funkce. SHA-1 má také přehled zpráv 160 bitů a snažil se zvýšit zabezpečení opravením slabosti nalezené v SHA-0. V roce 2005 však bylo shledáno, že SHA-1 je nejistý. Jakmile byly v SHA-1 nalezeny kryptografické slabosti, vydal NIST v roce 2006 prohlášení vyzývající federální agentury, aby přijaly používání SHA-2 do roku 2010. SHA-2 je silnější než SHA-1 a útoky proti SHA-2 jsou nepravděpodobné se současným výpočetním výkonem. Nejen federální agentury, ale dokonce i společnosti jako Google, Mozilla a Microsoft začaly buď plánovat, že přestanou přijímat certifikáty SSL SHA-1, nebo již zablokovaly načítání těchto druhů stránek. Google má důkaz o kolizi SHA-1, která činí tuto metodu nespolehlivou pro generování jedinečných kontrolních součtů, ať už jde o heslo, soubor nebo jakýkoli jiný údaj. Můžete si stáhnout dva jedinečné soubory PDF z SHAttered, abyste zjistili, jak to funguje. Pomocí kalkulačky SHA-1 ze spodní části této stránky vygenerujte kontrolní součet pro oba a zjistíte, že hodnota je přesně stejná, i když obsahují různá data.
SHA-2 a SHA-3
SHA-2 byl publikován v roce 2001, několik let po SHA-1. SHA-2 obsahuje šest hash funkcí s různými velikostmi digestu: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, a SHA-512/256. Vyvinutý jinými než NSA designéry a vydaný NIST v roce 2015, je dalším členem rodiny Secure Hash Algorithm s názvem SHA-3 (dříve Keccak). SHA-3 není určen k nahrazení SHA-2, stejně jako předchozí verze měly nahradit starší. Místo toho byl SHA-3 vyvinut jako další alternativa k SHA-0, SHA-1 a MD5.
Jak se používá SHA-1?
Příkladem reálného světa, kde lze použít SHA-1, je zadání hesla na přihlašovací stránku webu. Ačkoli se to děje na pozadí bez vašeho vědomí, může to být metoda, kterou web používá k bezpečnému ověření, že vaše heslo je autentické. V tomto příkladu si představte, že se pokoušíte přihlásit na web, který často navštěvujete. Pokaždé, když požádáte o přihlášení, musíte zadat své uživatelské jméno a heslo. Pokud web používá kryptografickou hashovací funkci SHA-1, znamená to, že se vaše heslo po zadání změní na kontrolní součet. Kontrolní součet se poté porovná s kontrolním součtem uloženým na webu, který souvisí s vaším aktuálním heslem, ať už jste Vaše heslo se nezměnilo od doby, kdy jste se zaregistrovali, nebo pokud jste jej změnili před několika okamžiky. Pokud se oba shodují, je vám udělen přístup; pokud ne, řekli jste, že heslo je nesprávné. Dalším příkladem, kde lze použít hashovací funkci SHA-1, je ověření souboru. Některé weby poskytnou na stránce stahování kontrolní součet SHA-1 souboru, takže při stahování souboru můžete kontrolní součet sami zkontrolovat, abyste se ujistili, že stažený soubor je stejný jako ten, který jste chtěli stáhnout. Možná se divíte, kde je v tomto typu ověření skutečné využití. Zvažte scénář, kde znáte kontrolní součet SHA-1 souboru z webu vývojáře, ale chcete stáhnout stejnou verzi z jiného webu. Poté byste mohli vygenerovat kontrolní součet SHA-1 pro vaše stažení a porovnat jej se skutečným kontrolním součtem ze stránky stahování vývojáře. Pokud jsou dva různé, znamená to nejen, že obsah souboru není totožný, ale že existuje mohl být skrytý malware v souboru, data mohou být poškozena a způsobit poškození souborů v počítači, soubor nesouvisí se skutečným souborem atd. Může to však také znamenat, že jeden soubor představuje starší verzi program, než ten druhý, protože i ta malá změna vygeneruje jedinečnou hodnotu kontrolního součtu. Možná budete také chtít zkontrolovat, zda jsou tyto dva soubory identické, pokud instalujete aktualizaci Service Pack nebo jiný program nebo aktualizaci, protože k problémům dochází, pokud některé soubory během instalace chybí.
Kalkulačky kontrolního součtu SHA-1
Ke stanovení kontrolního součtu souboru nebo skupiny znaků lze použít speciální druh kalkulačky. Například SHA1 Online a SHA1 Hash Generator jsou bezplatné online nástroje, které mohou generovat kontrolní součet SHA-1 jakékoli skupiny textu, symbolů nebo čísel. Tyto weby například vygenerují kontrolní součet SHA-1 bd17dabf6fdd24dab5ed0e2e6624d312e4ebeaba pro text pAssw0rd!.