Tabuľky dúhovky: Najhoršia nočná mora vášho hesla

Nenechajte ich roztomilé meno blázon, tieto veci sú desivé.

Zatiaľ čo si myslíte, že Rainbow Tables sú ako eklektický farebný nábytok, nie sú to tie, o ktorých budeme diskutovať. Tabuľky Rainbow, o ktorých hovoríme, sa používajú na rozbitie hesiel a sú ďalším nástrojom stále rastúceho arzenálu hackerov .

Čo to sakra sú Rainbow Tables? Ako by niečo s takým roztomilým a plyšovým názvom mohlo byť také škodlivé?

Základná koncepcia za tabuľami dúhoviek

Som zlý človek, ktorý práve pripojil palcovú jednotku na server alebo pracovnú stanicu, reštartoval ju a spustil program, ktorý kopíruje súbor databázy zabezpečenia obsahujúci užívateľské mená a heslá na moju palcovú jednotku.

Heslá v súbore sú šifrované, takže ich nemôžem čítať. Budem musieť skartovať heslá v súbore (alebo aspoň heslo správcu), aby som ich mohol použiť na prístup k systému.

Aké sú možnosti krakovania hesiel? Môžem sa pokúsiť použiť program na rozbitie hesiel s hrubou silou, ako je napríklad John Ripper, ktorý klesá na súbor s heslom a snaží sa iteračne odhadnúť každú možnú kombináciu hesla. Druhou možnosťou je načítať slovník na vylúčenie hesiel obsahujúci stovky tisíc bežne používaných hesiel a zistiť, či získajú akékoľvek prístupy. Tieto metódy môžu trvať týždne, mesiace alebo dokonca roky, ak sú heslá dostatočne silné.

Keď je heslo "vyskúšané" v systéme, je "šachované" pomocou šifrovania, takže skutočné heslo sa nikdy neposiela v čistom texte cez komunikačnú linku. Zabraňuje tomu, aby odposluchári zachytili heslo. Heslo hesla zvyčajne vyzerá ako banda odpadkov a je zvyčajne iná dĺžka ako pôvodné heslo. Vaše heslo môže byť "shitzu", ale hash vášho hesla by vyzeral ako "7378347eedbfdd761619451949225ec1".

Na overenie používateľa systém zoberie hodnotu hash vytvorenú funkciou hashovania hesla v klientskom počítači a porovnáva ju s hodnotou hash uloženou v tabuľke na serveri. Ak sa hash zhoduje, používateľ je overený a udelený prístup.

Hashing heslo je jednosmerná funkcia, čo znamená, že nemôžete dešifrovať hash, aby ste videli, aký je jasný text hesla. Neexistuje žiadny kľúč na dešifrovanie hash po jeho vytvorení. Neexistuje žiadny "decoder ring", ak budete chcieť.

Programy na štítkovanie hesiel pracujú podobne ako prihlasovacie procesy. Program rozbíjania začína prijímaním hesiel vo formáte plain, prebiehajúcich pomocou algoritmu hash, ako napríklad MD5, a potom porovnáva výstup hash s hashami v odcudzenom súbore hesiel. Ak nájde zhodu, potom program roztvoril heslo. Ako sme už povedali, tento proces môže trvať veľmi dlho.

Zadajte tabuľky Rainbow

Tabuľky Rainbow sú v podstate obrovské súbory predkompilovaných tabuliek naplnené hash hodnotami, ktoré sú predbežne zosúladené s možnými heslami. Tabuľky Rainbow v podstate umožňujú hackerom zvrátiť funkciu hash, aby určili, čo môže byť heslo pre text. Je možné, že dve rôzne heslá majú za následok rovnaký hash, takže nie je dôležité zistiť, aké pôvodné heslo bolo, len ak má to isté hash. Heslo čistého textu nemusí byť dokonca rovnaké heslo, ktoré vytvoril užívateľ, ale pokiaľ je zhoda hash, nezáleží na tom, aké pôvodné heslo bolo.

Použitie Rainbow Tables umožňuje, aby sa heslá rozpadali vo veľmi krátkom čase v porovnaní s metódami brute-force, avšak kompromisom je to, že vyžaduje veľa úložného priestoru (niekedy terabajtov) na to, aby držali Rainbow Tables sami, Skladovanie v týchto dňoch je bohaté a lacné, takže tento kompromis nie je taký veľký obchod ako pred desiatimi rokmi, keď terabajtové disky neboli niečo, čo by ste mohli vyzdvihnúť v miestnom Best Buy.

Hackeri môžu zakúpiť predkompilované tabuľky Rainbow pre popraskanie hesiel zraniteľných operačných systémov, ako sú Windows XP, Vista, Windows 7 a aplikácie, ktoré používajú MD5 a SHA1 ako mechanizmus hazarovania hesla (mnohí vývojári webových aplikácií stále používajú tieto algoritmy hashovania).

Ako sa chrániť proti útokom na tabuľky dúhových tabuliek

Chceli by sme, aby o tom bola lepšia rada pre všetkých. Chceli by sme povedať, že silnejšie heslo by pomohlo, ale to nie je naozaj pravda, pretože to nie je slabosť hesla, je to problém, je to slabosť spojená s funkciou hash používa na šifrovanie hesla.

Najlepšia rada, ktorú môžeme používateľom poskytnúť, je zostať ďaleko od webových aplikácií, ktoré obmedzujú dĺžku hesla na krátky počet znakov. Je to jasný znak zraniteľných rutín autentifikácie hesla staršej školy. Rozšírená dĺžka a zložitosť hesla môže pomôcť trochu, ale nie je garantovanou formou ochrany. Čím dlhšie je vaše heslo, tým väčšie bude tabuľky Rainbow, keby to bolo možné, ale hacker s množstvom zdrojov to ešte dokáže.

Naša rada o tom, ako brániť proti Rainbow Tables, je skutočne určená pre vývojárov aplikácií a správcov systémov. Sú na frontoch, pokiaľ ide o ochranu používateľov pred týmto druhom útoku.

Tu sú niektoré tipy pre vývojárov proti bránu Rainbow Table:

  1. Nepoužívajte MD5 alebo SHA1 vo funkcii hash hesiel. MD5 a SHA1 sú zastaralé algoritmy šifrovania hesla a väčšina dúhových tabuliek používaných na crack heslá je postavená na zacielenie na aplikácie a systémy používajúce tieto metódy hashovania. Zvážte použitie moderných metód hashovania ako SHA2.
  2. Použite kryptografickú "Soľ" v rutine pre hashovanie hesla. Pridanie kryptografickej Soľ do funkcie hešovania hesla pomôže chrániť proti použitiu tabuľiek Rainbow, ktoré sa používajú na spúšťanie hesiel vo vašej aplikácii. Ak chcete vidieť niektoré príklady kódovania, ako používať kryptografickú soľ, aby ste mohli pomôcť aplikácii "Rainbow-Proof", prečítajte si webovú stránku WebMasters By Design, ktorá má na túto tému veľký článok.

Ak chcete zistiť, ako hackeri vykonávajú útok pomocou hesiel Rainbow Tables, môžete si prečítať tento vynikajúci článok o tom, ako tieto techniky použiť na obnovenie vlastných hesiel.