Rainbow Tables: Vaše nejhorší noční můra

Nedopusťte, aby jejich roztomilé jméno oklamalo vás, jsou to děsivé věci.

Zatímco si můžete představit Rainbow Tables jako eklektický barevný nábytek, nejsou to ty, o kterých budeme diskutovat. Tabulky Rainbow, o kterých mluvíme, se používají k popraskání hesel a jsou dalším nástrojem v stále rostoucím arsenálu hackerů .

Co to sakra jsou Rainbow Tables? Jak by mohlo být něco s tak roztomilým a plyšovým jménem tak škodlivé?

Základní koncept za tabulemi duhových

Jsem špatný člověk, který právě zasunul palcovou jednotku do serveru nebo pracovní stanice, restartoval a spustil program, který kopíruje soubor s databází zabezpečení obsahující uživatelská jména a hesla na mé palcové jednotky.

Hesla v souboru jsou zašifrována, takže je nemohu přečíst. Budu muset spouštět hesla v souboru (nebo alespoň heslo správce), abych je mohl použít k přístupu do systému.

Jaké jsou možnosti krakování hesel? Můžu se pokusit použít program pro vyvrácení hesel, jako je John Ripper, který se odtáhne na soubor s heslem a snaží se iterativně odhadnout každou možnou kombinaci hesla. Druhou možností je načíst slovník pro rušení hesel, který obsahuje stovky tisíc běžně používaných hesel a zjistit, zda získává nějaké výsledky. Tyto metody mohou trvat týdny, měsíce nebo dokonce roky, pokud jsou hesla dostatečně silná.

Když je heslo "vyzkoušeno" proti systému, je šifrováno šifrováním tak, aby skutečné heslo nikdy nebylo odesláno v čistém textu přes komunikační linku. Zabraňuje tomu, aby odposlouchávatelé zachytili heslo. Heslo hesla obvykle vypadá jako spousta odpadků a je obvykle odlišná délka než původní heslo. Vaše heslo by mohlo být "shitzu", ale hash vašeho hesla by vypadal něco jako "7378347eedbfdd761619451949225ec1".

Pro ověření uživatele systém odebere hodnotu hash vytvořené funkcí hašovacího hesla v klientském počítači a porovná ji s hodnotou hash uloženou v tabulce na serveru. Pokud se shody shodují, uživatel je ověřen a udělen přístup.

Hashing heslo je jednosměrná funkce, což znamená, že nemůžete dešifrovat hash, abyste zjistili, jaký je jasný text hesla. Neexistuje žádný klíč pro dešifrování hash po jeho vytvoření. Neexistuje žádný "decoder ring", pokud budete chtít.

Programy pro vynechávání hesel fungují podobně jako proces přihlašování. Program rozbíjení začíná tím, že bere hesla prostého textu, spouští je algoritmem hash, jako je MD5, a porovnává výstup hash s hashes v souboru ukradeného hesla. Pokud nalezne shodu, pak program popraskal heslo. Jak již bylo řečeno, tento proces může trvat velmi dlouho.

Zadejte tabulky Rainbow

Tabulky Rainbow jsou v podstatě obrovské množiny předkompilovaných tabulek plné hashových hodnot, které jsou předem přizpůsobeny možným otevřeným heslům. Tabulky Rainbow v podstatě umožňují hackerům obrátit funkci hashování, aby zjistili, co může být heslo pro otevřený text. Je možné, že dvě různá hesla vedou ke stejnému hashnutí, takže není důležité zjistit, jaké původní heslo bylo, dokud má stejný hash. Heslo prostého textu nemusí být dokonce stejným heslem, které uživatel vytvořil, ale pokud odpovídá hash, pak nezáleží na tom, co bylo původním heslem.

Použití Rainbowových tabulek umožňuje, aby hesla byla ve velmi krátkém čase krakována ve srovnání s metodami brute-force, avšak kompromisem je, že vyžaduje spoustu úložišť (někdy Terabajty) Skladování v těchto dnech je bohaté a levné, takže tento kompromis není tak velký obchod, jako tomu bylo před deseti lety, kdy terabajtové disky nebyly něco, co byste mohli vyzvednout u místního Best Buy.

Hackeři si mohou zakoupit předkompilované Rainbow Tables pro praskání hesel zranitelných operačních systémů, jako jsou Windows XP, Vista, Windows 7 a aplikace používající MD5 a SHA1 jako mechanismus hašování hesla (mnoho vývojářů webových aplikací stále používá tyto algoritmy hashingu).

Jak se chránit proti napadení heslem z Rainbow Tables

Přejeme si, aby to bylo pro každého lepší. Chtěli bychom říci, že by mohlo pomoci silnější heslo , ale to není opravdu pravda, protože to není slabost hesla, je to slabost spojená s funkcí hašování, která se používá k šifrování hesla.

Nejlepší rady, které můžeme dát uživatelům, je zůstat daleko od webových aplikací, které omezují délku vašeho hesla na krátký počet znaků. To je jasný znak zranitelných rutin pro autentizaci hesla staré školy. Rozšířená délka a složitost hesla může trochu pomoci, ale není zaručená forma ochrany. Čím delší je vaše heslo, tím větší by měly být Rainbow Tables, ale hacker s množstvím zdrojů to ještě dokáže.

Naše rady ohledně ochrany proti Rainbow Tables jsou skutečně určeny pro vývojáře aplikací a administrátory systému. Jsou na frontě, pokud jde o ochranu uživatelů před tímto typem útoku.

Zde jsou některé tipy pro vývojáře proti bránícím se útokům Rainbow Table:

  1. Nepoužívejte MD5 nebo SHA1 v funkci hašování hesla. MD5 a SHA1 jsou zastaralé algoritmy hašovacího hesla a většina duhových tabulek používaných pro crack hesla jsou postavena tak, aby cílovala aplikace a systémy používající tyto metody hashování. Zvažte použití modernějších hashovacích metod, jako je SHA2.
  2. Pomocí šifrovacího rutiny použijte šifrovací "sůl". Přidáním šifrovací soli do funkce hašení heslem se pomůžete chránit proti používání tabulek Rainbow, které používají ke spuštění hesel ve vaší aplikaci. Chcete-li vidět některé příklady kódování, jak používat šifrovací sůl, aby pomohla aplikaci "Rainbow-Proof", podívejte se na stránku WebMasters By Design, která obsahuje skvělý článek o tématu.

Pokud chcete zjistit, jak hackeři provádějí útok pomocí hesla Rainbow Tables, můžete si přečíst tento vynikající článek o tom, jak používat tyto techniky k obnovení vlastních hesel.