SHA-1 (skratka pre Secure Hash Algorithm 1) je jednou z niekoľkých kryptografických hašovacích funkcií.
Najčastejšie sa používa na overenie, či súbor nebol zmenený. Toto sa dosiahne vytvorením kontrolného súčtu pred odoslaním súboru a potom znova, keď sa dostane do cieľa.
Prenášaný súbor možno považovať za pravý iba vtedy, ak sú oba kontrolné súčty identické.
História a slabé miesta hashovacej funkcie SHA
SHA-1 je len jeden zo štyroch algoritmov z rodiny Secure Hash Algorithm (SHA). Väčšina z nich bola vyvinutá Národnou bezpečnostnou agentúrou USA (NSA) a publikovaná Národným inštitútom pre štandardy a technológie (NIST).
SHA-0 má veľkosť 160-bitového súhrnu správ (hodnota hash) a bola prvou verziou tohto algoritmu. Jeho hašovacie hodnoty sú dlhé 40 číslic. Bol publikovaný pod názvom "SHA" v roku 1993, ale v mnohých aplikáciách sa nepoužíval, pretože bol v roku 1995 rýchlo nahradený SHA-1 kvôli bezpečnostnej chybe.
SHA-1 je druhá iterácia tejto kryptografickej hašovacej funkcie. Tento má tiež súhrn správ 160 bitov a snažil sa zvýšiť bezpečnosť opravou slabiny nájdenej v SHA-0. V roku 2005 sa však zistilo, že aj SHA-1 nie je bezpečný.
Po zistení kryptografických nedostatkov v SHA-1 NIST v roku 2006 vydal vyhlásenie, v ktorom vyzval federálne agentúry, aby do roku 2010 prijali používanie SHA-2. SHA-2 je silnejšie ako SHA-1 a uskutočnili sa útoky proti SHA-2 je pri súčasnom výpočtovom výkone nepravdepodobné.
Nielen federálne agentúry, ale dokonca aj spoločnosti ako Google, Mozilla a Microsoft začali plánovať prestať akceptovať certifikáty SHA-1 SSL alebo už zablokovali načítanie takýchto stránok.
Google má dôkaz o kolízii SHA-1, ktorá robí túto metódu nespoľahlivou pri generovaní jedinečných kontrolných súčtov, či už ide o heslo, súbor alebo akékoľvek iné údaje. Môžete si stiahnuť dva jedinečné súbory PDF z SHAttered, aby ste videli, ako to funguje. Pomocou kalkulačky SHA-1 v spodnej časti tejto stránky vygenerujte kontrolný súčet pre obe a zistíte, že hodnota je úplne rovnaká, aj keď obsahujú rôzne údaje.
SHA-2 a SHA-3
SHA-2 bola publikovaná v roku 2001, niekoľko rokov po SHA-1. Zahŕňa šesť hašovacích funkcií s rôznymi veľkosťami súhrnu: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 a SHA-512/256.
Vyvinutý dizajnérmi mimo NSA a vydaný NIST v roku 2015 je ďalším členom rodiny Secure Hash Algorithm s názvom SHA-3 (predtým Keccak).
SHA-3 nemá nahradiť SHA-2, pretože predchádzajúce verzie mali nahradiť predchádzajúce verzie. Namiesto toho bol vyvinutý len ako ďalšia alternatíva k SHA-0, SHA-1 a MD5.
Ako sa používa SHA-1?
Jedným skutočným príkladom, kde možno použiť SHA-1, je zadávanie hesla na prihlasovacej stránke webovej lokality. Hoci sa to deje na pozadí bez vášho vedomia, môže to byť metóda, ktorú webové stránky používajú na bezpečné overenie pravosti vášho hesla.
V tomto príklade si predstavte, že sa pokúšate prihlásiť na webovú stránku, ktorú často navštevujete. Zakaždým, keď požiadate o prihlásenie, musíte zadať svoje používateľské meno a heslo.
Ak webová lokalita používa kryptografickú hašovaciu funkciu SHA-1, znamená to, že vaše heslo sa po zadaní zmení na kontrolný súčet. Tento kontrolný súčet sa potom porovná s kontrolným súčtom, ktorý je uložený na webovej lokalite a ktorý súvisí s vaším aktuálnym heslo, či ste si heslo nezmenili odkedy ste sa zaregistrovali, alebo či ste ho zmenili len pred chvíľou. Ak sa tieto dva zhodujú, máte prístup; ak nie, bude vám povedané, že heslo je nesprávne.
Ďalším príkladom, kde možno túto hašovaciu funkciu použiť, je overenie súboru. Niektoré webové stránky poskytnú kontrolný súčet SHA-1 súboru na stránke sťahovania, takže keď si súbor stiahnete, môžete skontrolovať kontrolný súčet, aby ste sa uistili, že stiahnutý súbor je rovnaký ako ten, ktorý ste chceli stiahnuť.
Možno by vás zaujímalo, kde je skutočné využitie tohto typu overenia. Predstavte si scenár, v ktorom poznáte kontrolný súčet SHA-1 súboru z webovej lokality vývojára, ale chcete si stiahnuť rovnakú verziu z inej webovej lokality. Potom môžete vygenerovať kontrolný súčet SHA-1 na stiahnutie a porovnať ho so skutočným kontrolným súčtom zo stránky na stiahnutie vývojára.
Ak sú tieto dva odlišné, znamená to nielen, že obsah súboru nie je identický, ale v súbore môže byť skrytý malvér, údaje môžu byť poškodené a spôsobiť poškodenie súborov v počítači, súbor nie je čokoľvek súvisiace so skutočným súborom atď.
Môže to však znamenať aj to, že jeden súbor predstavuje staršiu verziu programu ako druhý, pretože aj tá malá zmena vygeneruje jedinečnú hodnotu kontrolného súčtu.
Môžete tiež skontrolovať, či sú tieto dva súbory identické, ak inštalujete servisný balík alebo iný program alebo aktualizáciu, pretože problémy sa vyskytnú, ak niektoré súbory počas inštalácie chýbajú.
Kalkulačky kontrolného súčtu SHA-1
Na určenie kontrolného súčtu súboru alebo skupiny znakov možno použiť špeciálny druh kalkulačky.
Napríklad SHA1 Online a SHA1 Hash Generator sú bezplatné online nástroje, ktoré dokážu vygenerovať kontrolný súčet SHA-1 akejkoľvek skupiny textu, symbolov a/alebo čísel.
Tieto webové stránky vygenerujú napríklad tento pár:
pAssw0rd!
bd17dabf6fdd24dab5ed0e2e6624d312e4ebeaba