SHA-1 (zkratka pro Secure Hash Algorithm 1) je jednou z několika kryptografických hašovacích funkcí.
Nejčastěji se používá k ověření, zda byl soubor nezměněn. To se provádí vytvořením kontrolního součtu před odesláním souboru a poté znovu, jakmile dosáhne svého cíle.
Přenášený soubor lze považovat za pravý, pouze pokud jsou oba kontrolní součty identické.
Historie a zranitelnosti hashovací funkce SHA
SHA-1 je pouze jedním ze čtyř algoritmů v rodině 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. Jeho hašovací hodnoty jsou dlouhé 40 číslic. Byl publikován pod názvem "SHA" v roce 1993, ale nebyl použit v mnoha aplikacích, protože byl rychle nahrazen SHA-1 v roce 1995 kvůli bezpečnostní chybě.
SHA-1 je druhá iterace této kryptografické hašovací funkce. Tento má také 160bitový přehled zpráv a snažil se zvýšit bezpečnost opravou slabé stránky nalezené v SHA-0. V roce 2005 však bylo také zjištěno, že SHA-1 není bezpečný.
Jakmile byly v SHA-1 nalezeny kryptografické slabiny, NIST v roce 2006 učinil prohlášení, v němž vyzval federální agentury, aby přijaly používání SHA-2 do roku 2010. SHA-2 je silnější než SHA-1 a byly provedeny útoky proti SHA-2 je při současném výpočetním výkonu nepravděpodobné.
Nejen federální agentury, ale dokonce i společnosti jako Google, Mozilla a Microsoft buď začaly plánovat přestat přijímat certifikáty SHA-1 SSL, 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á data. Můžete si stáhnout dva jedinečné soubory PDF z SHAttered, abyste viděli, jak to funguje. Pomocí kalkulačky SHA-1 ve spodní části této stránky vygenerujte kontrolní součet pro oba a zjistíte, že hodnota je naprosto 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. Obsahuje šest hashovacích funkcí s různými velikostmi výtahu: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 a SHA-512/256.
Vyvinutý designéry mimo NSA a vydaný NIST v roce 2015, je dalším členem rodiny Secure Hash Algorithm, nazvaný SHA-3 (dříve Keccak).
SHA-3 nemá nahradit SHA-2, jako předchozí verze měly nahradit ty dřívější. Místo toho byl vyvinut jako další alternativa k SHA-0, SHA-1 a MD5.
Jak se používá SHA-1?
Jeden příklad ze skutečného světa, kde lze použít SHA-1, je, když zadáváte heslo na přihlašovací stránku webu. I když 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í pravosti vašeho hesla.
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 hašovací funkci SHA-1, znamená to, že se vaše heslo po zadání změní na kontrolní součet. Tento kontrolní součet je poté porovnán s kontrolním součtem uloženým na webu, který souvisí s vaším aktuálním heslo, ať už jste heslo nezměnili od chvíle, kdy jste se zaregistrovali, nebo jste ho změnili jen před chvílí. Pokud se oba shodují, máte přístup; pokud ne, bude vám řečeno, že heslo je nesprávné.
Další příklad, kde lze tuto hashovací funkci použít, je ověření souboru. Některé weby poskytnou kontrolní součet SHA-1 souboru na stránce stahování, takže když si soubor stáhnete, můžete si sami zkontrolovat kontrolní součet, abyste se ujistili, že stažený soubor je stejný jako ten, který jste chtěli stáhnout.
Mohli byste se divit, kde je skutečné využití tohoto typu ověření. Zvažte scénář, kdy znáte kontrolní součet SHA-1 souboru z webu vývojáře, ale chcete si stáhnout stejnou verzi z jiného webu. Poté můžete vygenerovat kontrolní součet SHA-1 ke stažení a porovnat jej se skutečným kontrolním součtem ze stránky stahování vývojáře.
Pokud se tyto dvě položky liší, znamená to nejen, že obsah souboru není totožný, ale v souboru může být skrytý malware, data mohou být poškozena a způsobit poškození souborů v počítači, soubor není cokoliv souvisejícího se skutečným souborem atd.
Může to však také znamenat, že jeden soubor představuje starší verzi programu než druhý, protože i tato malá změna vygeneruje jedinečnou hodnotu kontrolního součtu.
Můžete také zkontrolovat, zda jsou tyto dva soubory totožné, pokud instalujete aktualizaci Service Pack nebo jiný program nebo aktualizaci, protože problémy nastanou, pokud některé soubory během instalace chybí.
Kalkulačky kontrolního součtu SHA-1
K určení 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é dokážou generovat kontrolní součet SHA-1 libovolné skupiny textu, symbolů a/nebo čísel.
Tyto webové stránky vygenerují například tento pár:
pAssw0rd!
bd17dabf6fdd24dab5ed0e2e6624d312e4ebeaba