Úvodná » ako » Čo je SHAttered? SHA-1 kolízne útoky, vysvetlené

    Čo je SHAttered? SHA-1 kolízne útoky, vysvetlené

    Prvý deň roku 2016 spoločnosť Mozilla ukončila podporu pre oslabenie bezpečnostnej technológie s názvom SHA-1 vo webovom prehliadači Firefox. Takmer okamžite zrušili svoje rozhodnutie, pretože by obmedzili prístup na niektoré staršie webové stránky. Ale vo februári 2017 sa ich obavy nakoniec stali skutočnosťou: výskumníci zlomili SHA-1 tým, že vytvorili prvý kolízny útok v reálnom svete. Tu je to všetko.

    Čo je SHA-1?

    SHA v SHA-1 znamená Algoritmus bezpečného hašovania, a jednoducho povedané, môžete to myslieť ako na matematický problém alebo metódu skompiluje dáta, ktoré sú do neho vložené. Vyvinutý NSA Spojených štátov je základnou súčasťou mnohých technológií používaných na šifrovanie dôležitých prenosov na internete. Bežné metódy šifrovania SSL a TLS, o ktorých ste mohli počuť, môžu používať funkciu hash ako SHA-1 na vytvorenie podpísaných certifikátov, ktoré vidíte na paneli s nástrojmi prehliadača.

    Nebudeme ísť hlboko do matematiky a informatiky o žiadnej z funkcií SHA, ale tu je základná myšlienka. "Hash" je jedinečný kód založený na vstupe akýchkoľvek údajov. Dokonca aj malé náhodné reťazce písmen, ktoré vstupujú do funkcie hash ako SHA-1, vrátia dlhý, nastavený počet znakov, čo spôsobí, že je (potenciálne) nemožné vrátiť reťazec znakov späť k pôvodným údajom. Takto funguje ukladanie hesiel. Keď vytvoríte heslo, zadanie hesla je šachované a uložené serverom. Pri návrate, keď zadáte svoje heslo, je znova zamietnutý. Ak sa zhoduje s pôvodným hash, môže sa predpokladať, že vstup je rovnaký a dostanete prístup k vašim údajom.

    Funkcie Hash sú užitočné predovšetkým preto, lebo uľahčujú zistiť, či sa vstup, napríklad súbor alebo heslo, zmenili. Keď sú vstupné dáta tajné, ako je heslo, je takmer nemožné prevrátiť a obnoviť pôvodné dáta (známe tiež ako "kľúč"). Toto je trochu iné ako "šifrovanie", ktorého účelom je skramblovanie údajov za účelom neskoršieho dekódovania pomocou šifier a tajných kľúčov. Hashes sú jednoducho určené na zabezpečenie integrity údajov - aby sa zabezpečilo, že všetko je rovnaké. Git, softvér na riadenie a distribúciu verzií pre open source kód, používa SHA-1 hash z tohto dôvodu.

    To je veľa technických informácií, ale jednoducho povedané: hash nie je to isté ako šifrovanie, pretože slúži na zistenie, či sa súbor zmenil.

    Ako táto technológia ovplyvňuje mňa?

    Povedzme, že musíte navštíviť webovú stránku súkromne. Vaša banka, váš e-mail, aj váš účet na Facebooku - všetci používajú šifrovanie na uchovávanie súkromných údajov. Profesionálna webová lokalita poskytne šifrovanie získaním certifikátu od dôveryhodného orgánu - tretej strany, ktorej dôverou je zabezpečenie toho, aby šifrovanie bolo na úrovni, súkromné ​​medzi webovou stránkou a používateľom a aby nebolo skontrolované žiadnou inou stranou. Tento vzťah s treťou stranou, nazvaný Certifikačné orgány, alebo CA, je dôležité, pretože každý používateľ môže vytvoriť certifikát s vlastným podpisom - dokonca to môžete urobiť sami na počítači so systémom Open SSL s operačným systémom Linux. Symantec a Digicert sú napríklad dve známe spoločnosti CA.

    Prejdime po teoretickom scenári: How-To Geek chce udržiavať prihlásenie v reláciách užívateľov súkromné ​​so šifrovaním, a preto predkladá CA CA ako Symantec s Žiadosť o podpis certifikátu, alebo CSR. Vytvárajú verejný kľúč a súkromný kľúč na šifrovanie a dešifrovanie údajov odosielaných cez internet. Žiadosť o CSR posiela verejný kľúč spoločnosti Symantec spolu s informáciami o webovej lokalite. Spoločnosť Symantec skontroluje kľúč proti svojmu záznamu, aby overila, či sú všetky údaje nezmenené, pretože akákoľvek malá zmena údajov spôsobuje, že hash je radikálne odlišný.

    Tieto verejné kľúče a digitálne certifikáty sú podpísané hashovými funkciami, pretože výstup týchto funkcií je ľahko viditeľný. Verejný kľúč a certifikát s overeným hashom od spoločnosti Symantec (v našom príklade), autorita, uisťuje používateľovi nástroja How-To Geek, že kľúč je nezmenený a nie je odoslaný od niekoho škodlivého.

    Vzhľadom na to, že hash je ľahko monitorovateľný a nemožný (niektorí by tvrdili, že je to "ťažké"), obrátiť sa, správny overený hash podpis znamená, že certifikát a spojenie môžu byť dôveryhodné a dá sa dohodnúť, že budú posielané zašifrované od konca do konca , Ale čo keď má haš nebolo v skutočnosti jedinečné?

    Čo je kolízny útok, a je to možné v skutočnom svete?

    Možno ste počuli o "Narodeninovom probléme" v matematike, hoci ste možno nevedeli, čo sa nazýva. Základná myšlienka je, že ak sa stretnete s dostatočne veľkou skupinou ľudí, je pravdepodobné, že dva alebo viac ľudí bude mať rovnaké narodeniny. Vyššia, ako by ste očakávali, v skutočnosti - dosť, aby to vyzeralo ako zvláštna náhoda. V skupine až 23 ľudí je 50% pravdepodobnosť, že dvaja budú mať narodeniny.

    To je vlastná slabosť vo všetkých hashoch, vrátane SHA-1. Teoreticky by mala funkcia SHA vytvoriť jedinečný hash pre ľubovoľné údaje, ktoré sú do nej vložené, ale keďže počet hashov rastie, je pravdepodobnejšie, že rôzne páry údajov môžu vytvoriť rovnaký hash. Takže by sa mohol vytvoriť nedôveryhodný certifikát s rovnakým hash na dôveryhodný certifikát. Ak vás nechali nainštalovať tento nedôveryhodný certifikát, mohli by sa maškarovať ako dôveryhodní a šíriť škodlivé údaje.

    Vyhľadanie zodpovedajúceho hashu v rámci dvoch súborov sa nazýva a kolízny útok. Je známe, že sa u MD5 hashov už stalo aspoň jedno veľké útoky na kolízie. Ale 27. februára 2017 spoločnosť Google oznámila SHAttered, prvú crafted collision pre SHA-1. Spoločnosť Google dokázala vytvoriť súbor PDF, ktorý mal rovnaký SHA-1 hash ako iný súbor PDF, aj keď má iný obsah.

    SHAttered bol vykonaný na súbore PDF. PDF sú pomerne voľné formáty; môžu sa urobiť veľa malých, bitových úrovní bez toho, aby sa zabránilo tomu, aby ich čitatelia otvorili alebo spôsobili viditeľné rozdiely. Súbory PDF sa tiež často používajú na šírenie škodlivého softvéru. Zatiaľ čo SHAttered by mohol pracovať na iných typoch súborov, ako sú ISO, certifikáty sú pevne špecifikované, takže takýto útok je nepravdepodobný.

    Takže ako ľahko je tento útok vykonávaný? SHAttered bol založený na metóde, ktorú objavil Marc Stevens v roku 2012, ktorý vyžadoval viac ako 2 60,3 (9,223 quintillion) operácií SHA-1 - prekvapujúce číslo. Avšak táto metóda je stále 100 000 krát menej operácií, ako by bolo potrebné na dosiahnutie rovnakého výsledku s hrubou silou. Spoločnosť Google zistila, že 110 paralelne pracujúcich grafických kariet trvalo približne jeden rok, kým došlo k zrážke. Prenájom tohto výpočtového času od spoločnosti Amazon AWS by stálo približne 110 000 dolárov. Majte na pamäti, že keď ceny klesnú na časti počítača a môžete získať viac energie za menej, útoky ako SHAttered sa stávajú ľahšie vytiahnutím.

    110 000 dolárov môže vyzerať ako veľa, ale je to v oblasti dostupnosti pre niektoré organizácie - čo znamená, že cybervillians v reálnom živote môžu vytvoriť digitálne podpisy dokumentov, zasahovať do systémov zálohovania a riadenia verzií ako sú Git a SVN alebo robiť škodlivý Linuxový systém ISO ako legitímny.

    Našťastie existujú zmierňujúce faktory, ktoré takéto útoky zabraňujú. SHA-1 sa už zriedka používa na digitálne podpisy. Certifikačné autority už neposkytujú certifikáty podpísané v systéme SHA-1 a prehliadač Chrome a Firefox k nim neposkytli podporu. Distribúcie Linuxu sa zvyčajne uvoľňujú častejšie ako raz za rok, takže je pre útočníka nepraktické, aby vytvoril škodlivú verziu a potom vytvoril jeden polstrovaný na to, aby mal rovnaký hash SHA-1.

    Na druhej strane, niektoré útoky založené na SHAttered sa už dejú v reálnom svete. Riadiaci systém verzie SVN používa SHA-1 na odlíšenie súborov. Odovzdanie dvoch súborov PDF s rovnakým SHA-1 hash do úložiska SVN spôsobí poškodenie.

    Ako sa môžem chrániť pred SHA-1 útokmi?

    Nie je veľa čo pre typického používateľa robiť. Ak používate kontrolné súčty na porovnávanie súborov, mali by ste používať SHA-2 (SHA-256) alebo SHA-3 skôr ako SHA-1 alebo MD5. Rovnako, ak ste vývojár, uistite sa, že používate modernejšie algoritmy likvidácie ako SHA-2, SHA-3 alebo bcrypt. Ak sa obávate, že SHAttered bol použitý na to, aby dva odlišné súbory mali ten istý hash, spoločnosť Google uverejnila na webe SHAttered nástroj, ktorý vám môže skontrolovať.

    Kredity obrázka: Lego Firefox, veľa Hash, prosím Neubližujte autorovi web neznámy, Google.