Co je SHAttered? SHA-1 Cílové útoky, vysvětlil

Obsah:

Video: Co je SHAttered? SHA-1 Cílové útoky, vysvětlil

Video: Co je SHAttered? SHA-1 Cílové útoky, vysvětlil
Video: How to Enable Desktop Peek or Aero Peek in Windows 10 Tutorial 2023, Prosinec
Co je SHAttered? SHA-1 Cílové útoky, vysvětlil
Co je SHAttered? SHA-1 Cílové útoky, vysvětlil
Anonim
První den roku 2016 ukončil program Mozilla podporu pro oslabenou bezpečnostní technologii nazvanou SHA-1 ve webovém prohlížeči Firefoxu. Téměř okamžitě zrušili své rozhodnutí, protože by omezili přístup na některé starší webové stránky. Ale v únoru 2017 se jejich obavy 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ě. Tady to všechno znamená.
První den roku 2016 ukončil program Mozilla podporu pro oslabenou bezpečnostní technologii nazvanou SHA-1 ve webovém prohlížeči Firefoxu. Téměř okamžitě zrušili své rozhodnutí, protože by omezili přístup na některé starší webové stránky. Ale v únoru 2017 se jejich obavy 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ě. Tady to všechno znamená.

Co je SHA-1?

Image
Image

SHA v SHA-1 znamená Secure Hash Algorithm, a jednoduše řečeno, můžete si myslet na to jako na nějaký matematický problém nebo metodu, která kóduje 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é se zobrazují 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á řada písmen, která vstupují 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. Když vytvoříte heslo, vstupní heslo je š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, může se předpokládat, že vstup je stejný a budete mít přístup k vašim datům.
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á řada písmen, která vstupují 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. Když vytvoříte heslo, vstupní heslo je š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, může se předpokládat, že vstup je stejný a budete mít přístup k vašim datům.
Hashové funkce jsou užitečné zejména proto, že usnadňují zjištění, zda se změnil vstup, například soubor nebo heslo. Pokud jsou vstupní data tajná, jako je heslo, je téměř nevyhnutelné, aby se hash zvrátil a obnovil původní data (také známý jako "klíč"). Toto je trochu odlišné od "šifrování", jehož účelem je shromažďování dat za účelem jejich další dešifrování 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 z tohoto důvodu.
Hashové funkce jsou užitečné zejména proto, že usnadňují zjištění, zda se změnil vstup, například soubor nebo heslo. Pokud jsou vstupní data tajná, jako je heslo, je téměř nevyhnutelné, aby se hash zvrátil a obnovil původní data (také známý jako "klíč"). Toto je trochu odlišné od "šifrování", jehož účelem je shromažďování dat za účelem jejich další dešifrování 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 z tohoto důvodu.

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

Jak to ovlivňuje tato technologie?

Image
Image

Řekněme, že potřebujete navštívit soukromý web. Vaše banka, váš e-mail, i váš účet ve službě Facebook - všichni používají šifrování, aby uchovávaly údaje, které jim posíláte, soukromé. 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 není šetřeno žádnou jinou stranou. Tento vztah s třetí stranou, nazvaný Certifikační autority, nebo CA, je zásadní, jelikož jakýkoli 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.

Image
Image

Projděme teoretický scénář: How-To Geek chce udržovat přihlašování v relacích uživatelů soukromých se šifrováním, a proto petice CA jako 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. Žádost o 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 se nezmění, protože každá malá změna dat činí hash radikálně odlišným.

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, ujišťuje uživatele aplikace How-To Geek, že klíč je nezměněn a nebyl poslán od někoho škodlivého.
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, ujišťuje uživatele aplikace How-To Geek, že klíč je nezměněn a nebyl poslán od někoho škodlivého.
Image
Image

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á hash nebylo vlastně 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ž možná jste 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 by bylo jako zvláštní podivná shoda. Ve skupině, která je malá jako 23 lidí, existuje 50% pravděpodobnost, že dva budou sdílet narozeniny.

To je inherentní slabost ve všech hasí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 protože počet hashů roste, je více pravděpodobné, že různé páry dat mohou vytvořit stejný hash.Takže by se dalo 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 mu zabývat jako důvěryhodnými a šířit škodlivé údaje.
To je inherentní slabost ve všech hasí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 protože počet hashů roste, je více pravděpodobné, že různé páry dat mohou vytvořit stejný hash.Takže by se dalo 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 mu zabývat jako důvěryhodnými a šířit škodlivé údaje.
Image
Image

Hledání shody shody v rámci dvou souborů se nazývá a kolizní útok. Je známo, že se u MD5 hashů 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ý SHA-1 hash jako jiný soubor PDF, přestože má jiný obsah.

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

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, což je ohromující číslo. Tato metoda je však stále 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 zhruba rok, než 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ů se může zdát jako hodně, ale je to v oblasti dostupnosti pro některé organizace - což znamená, že cybervillians v reálném životě mohou vytvářet digitální podpisy dokumentů, zasahovat do systémů pro zálohování a kontrolu verzí jako Git a SVN nebo dělat škodlivý Linuxový systém ISO.

Naštěstí existují zmírňující faktory bránící takovým útokům. SHA-1 je zřídkakdy používán pro digitální podpisy. Certifikační autority již neposkytují certifikáty podepsané s SHA-1 a pro ně i Chrome a Firefox upustily od podpory. Distribuce systému Linux se obvykle vydávají častěji než jednou za rok, takže je nepraktické pro útočníka, 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 služba SHAttered byla použita k tomu, aby dva odlišné soubory měly stejný hash, společnost Google vydala na webu SHAttered nástroj, který vás může zkontrolovat.

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

Doporučuje: