Domovská » jak » Co je SHAttered? SHA-1 útoky, vysvětlení

    Co je SHAttered? SHA-1 útoky, vysvětlení

    První den roku 2016 ukončila společnost Mozilla podporu pro oslabenou bezpečnostní technologii nazvanou SHA-1 ve webovém prohlížeči prohlížeče Firefox. Téměř okamžitě zrušili své rozhodnutí, protože by omezili přístup k některým starším webům. Ale v únoru 2017 se jejich strachy konečně staly skutečností: výzkumníci přerušili SHA-1 tím, že vytvořili první kolizní útok v reálném světě. Zde je to, co všechno znamená.

    Co je SHA-1?

    SHA v SHA-1 znamená Secure Hash Algorithm, a jednoduše řečeno, můžete si myslet na to jako na druh matematického problému nebo metody, která skompiluje data, která jsou do něj vložena. Vyvinutý NSA Spojených států je základním prvkem mnoha technologií používaných k šifrování důležitých přenosů na internetu. Bežné metody šifrování SSL a TLS, o kterých jste možná slyšeli, mohou používat funkci hash jako SHA-1 k vytvoření podepsaných certifikátů, které vidíte na panelu nástrojů prohlížeče.

    Nebudeme jít hluboko do matematiky a informatiky o některé z funkcí SHA, ale tady je základní myšlenka. "Hash" je jedinečný kód založený na vstupu jakýchkoli dat. Dokonce i malý náhodný řetězec dopisů, který vstupuje do funkce hash, jako je SHA-1, vrátí dlouhý, nastavený počet znaků, takže je (potenciálně) nemožné vrátit řetězec znaků zpět k původním datům. Takto funguje úložiště hesel. Při vytváření hesla je zadání hesla šachováno a uloženo serverem. Po návratu, když zadáte své heslo, bude znovu použito. Pokud se shoduje s původním hash, lze předpokládat, že vstup je stejný a budete mít přístup k vašim datům.

    Hash funkce jsou užitečné zejména proto, že usnadňují zjistit, zda se změnil vstup, například soubor nebo heslo. Pokud jsou vstupní data tajná, jako je heslo, je téměř nevyhnutelné provedení hash zpět a obnovení původních dat (také známých jako "klíč"). To je trochu odlišné od "šifrování", jehož účelem je shromažďování dat za účelem jejich dešifrování později pomocí šifrovacích klíčů a tajných klíčů. Hashes jsou prostě určeny k zajištění integrity dat - aby se ujistil, že je vše stejné. Git, software pro kontrolu a distribuci verzí pro open source kód, používá SHA-1 hash právě z tohoto důvodu.

    To je spousta technických informací, ale jednoduše řečeno: hash není stejný jako šifrování používá se k určení, zda se soubor změnil.

    Jak tato technologie ovlivňuje mě?

    Řekněme, že musíte navštívit soukromý web. Vaše banka, váš e-mail, i váš účet ve službě Facebook - všichni používají šifrování pro uchování soukromých údajů. Profesní webová stránka poskytne šifrování získáním certifikátu od důvěryhodného orgánu - třetí strany, důvěryhodná, aby zajistila, že šifrování je na úrovni, soukromé mezi webovou stránkou a uživatelem, a nikdo jiným stranou neprohlíží. Tento vztah s třetí stranou, nazvaný Certifikační autority, nebo CA, je zásadní, jelikož každý uživatel může vytvořit "certifikát s vlastním podpisem" - můžete to dokonce udělat sám na počítači se systémem Linux s Open SSL. Symantec a Digicert jsou například dvě známé společnosti CA.

    Projděme teoretický scénář: How-To Geek chce zůstat přihlášený do uživatelských relací soukromých se šifrováním, proto petice CA, jako je Symantec, s Žádost o podepsání certifikátu, nebo CSR. Vytváří a veřejný klíč a soukromý klíč pro šifrování a dešifrování dat odesílaných přes internet. Požadavek CSR odešle veřejný klíč společnosti Symantec spolu s informacemi o webové stránce. Symantec kontroluje klíč proti záznamu, aby ověřil, že všechny údaje nezmění, protože každá malá změna v datech způsobuje, že hash je radikálně odlišný.

    Tyto veřejné klíče a digitální certifikáty jsou podepsány hashovými funkcemi, protože výstup těchto funkcí je snadno viditelný. Veřejný klíč a certifikát s ověřeným hash od Symantec (v našem příkladu), autorita, zajišťuje uživateli nástroje How-To Geek, že klíč je nezměněn a není odeslán od někoho škodlivého.

    Vzhledem k tomu, že hash je snadno monitorovatelný a nemožný (někteří by říkali "obtížné"), aby se obrátil, správný a ověřený hash podpis znamená, že certifikát a připojení mohou být důvěryhodné a data mohou být dohodnuty, aby byly zaslány šifrované od konce do konce . Ale co když má haš nebylo skutečně jedinečné?

    Co je kolizní útok, a je to možné v reálném světě?

    Možná jste slyšeli o "Narozeninovém problému" v matematice, i když jste možná nevěděli, co se říká. Základní myšlenka spočívá v tom, že pokud shromáždíte dostatečně širokou skupinu lidí, budou pravděpodobně dost vysoké, že dva nebo více lidí bude mít stejné narozeniny. Vyšší, než byste čekali, ve skutečnosti - to je dost, že to vypadá jako podivná náhoda. Ve skupině tak malých, jako 23 lidí, existuje 50% pravděpodobnost, že dva budou sdílet narozeniny.

    To je inherentní slabost ve všech hashách, včetně SHA-1. Teoreticky by funkce SHA měla vytvářet jedinečný hash pro všechna data, která jsou do ní vložena, ale jelikož počet hashů roste, je pravděpodobnější, že různé páry dat mohou vytvořit stejný hash. Takže bychom mohli vytvořit nedůvěryhodný certifikát se shodným hashem s důvěryhodným certifikátem. Pokud vás nechali nainstalovat tento nedůvěryhodný certifikát, mohli by se zabalit jako důvěryhodní a šířit škodlivé údaje.

    Hledání odpovídajících hashů v rámci dvou souborů se nazývá a kolizní útok. Je známo, že u MD5 hashů se již stalo alespoň jedno rozsáhlé útoky na kolizi. Ale 27. února 2017 Google oznámil SHAttered, první crafted srážku pro SHA-1. Společnost Google dokázala vytvořit soubor PDF, který měl stejný hash SHA-1 jako jiný soubor PDF, i když má jiný obsah.

    SHAttered byl proveden na souboru PDF. PDF soubory jsou relativně volné formáty; mohou se provést spousty drobných změn na úrovni bitů, aniž by se zabránilo tomu, aby čtenáři otevírali nebo způsobovali viditelné rozdíly. Dokumenty PDF se také často používají k poskytování malwaru. Zatímco SHAttered by mohl pracovat na jiných typech souborů, jako jsou ISO, certifikáty jsou pevně specifikovány, takže je takový útok nepravděpodobný.

    Takže jak snadný je tento útok? SHAttered byl založen na metodě, kterou objevil Marc Stevens v roce 2012, který vyžadoval více než 2 operace SHA-1 (2,923 quintilionů) - ohromující číslo. Tato metoda je však ještě 100 000krát méně operací, než by bylo nutné k dosažení stejného výsledku s hrubou silou. Společnost Google zjistila, že 110 paralelních grafických karet pracujících na paralelním trhu by trvalo přibližně jeden rok, než by došlo ke kolizi. Pronájem tohoto výpočetního času od společnosti Amazon AWS by stálo přibližně 110 000 dolarů. Mějte na paměti, že jelikož ceny klesají na části počítače a můžete získat více energie za méně, útoky jako SHAttered se stávají snazšími.

    110 000 dolarů může vypadat hodně, ale je to v oblasti dostupnosti pro některé organizace - což znamená, že cybervillians z reálného života mohou vytvořit digitální podpisy dokumentů, zasahovat do systémů pro zálohování a kontrolu verzí, jako je Git a SVN, nebo dělat škodlivý Linuxový systém ISO legitimní.

    Naštěstí existují zmírňující faktory bránící takovým útokům. SHA-1 se už zřídka používá pro digitální podpisy. Certifikační autority již neposkytují certifikáty podepsané s SHA-1 a Chrome a Firefox je pro ně upustily. Distribuce systému Linux se obvykle vydávají častěji než jednou za rok, takže je pro útočníka nepraktické, aby vytvořil škodlivou verzi a poté vytvořil jeden polstrovaný, aby měl stejný hash SHA-1.

    Na druhou stranu, některé útoky založené na SHAttered se již dějí v reálném světě. Řídicí systém verzí SVN používá SHA-1 k odlišení souborů. Nahrávání dvou souborů PDF s identickým shlukem SHA-1 do repositáře SVN způsobí, že je poškozen.

    Jak se mohu chránit před SHA-1 útoky?

    Pro typického uživatele není toho hodně. Pokud používáte kontrolní součet pro porovnání souborů, použijte SHA-2 (SHA-256) nebo SHA-3 namísto SHA-1 nebo MD5. Podobně, pokud jste vývojář, ujistěte se, že používáte více moderních hashovacích algoritmů jako SHA-2, SHA-3 nebo bcrypt. Pokud se obáváte, že SHAttered byl používán k tomu, aby dva odlišné soubory stejný hash, Google vydal nástroj na webu SHAttered, který může zkontrolovat pro vás.

    Kredity obrázku: Lego Firefox, Spousta Hashů, prosím neubližujte autorovi neznámého webu, Google.