Čo je to slovníkový útok?

Ak sa chcete autentifikovať na webovej lokalite, musíte zadať používateľské meno a heslo. Stránka potom skontroluje vami poskytnuté overovacie údaje porovnaním s údajmi uloženými vo svojej databáze. Ak sa podrobnosti zhodujú, prístup je udelený. Ak sa podrobnosti nezhodujú, prístup je odmietnutý.

Bohužiaľ, úniky údajov sú pomerne častým javom. Porušenie údajov môže byť veľkým problémom, pretože jedným z najbežnejších údajov, na ktorý sa zameriavajú, sú používateľské údaje, konkrétne zoznam používateľských mien a hesiel. Ak sú heslá uložené tak, ako sú, v otvorenom texte, potom ktokoľvek s prístupom k databáze môže získať prístup k účtu akéhokoľvek iného používateľa. Je to, ako keby dostali kľúčenku s kľúčom ku všetkým dverám v bytovom dome.

Aj keď sa v prvom rade vynakladá veľké úsilie na predchádzanie narušeniam údajov, odporúča sa stratégia ochrany do hĺbky. Konkrétne bezpečnostné rady zastávajú názor, že heslá by sa mali hashovať, pričom by sa mal uchovávať iba hash hesla. Hašovacia funkcia je jednosmerná funkcia, ktorá vždy konvertuje rovnaký vstup na rovnaký výstup. Aj malá zmena na vstupe však vytvára úplne iný výstup. Je kritické, že neexistuje spôsob, ako zvrátiť funkciu a premeniť výstupný hash späť na pôvodný vstup. Čo však môžete urobiť, je hashovať nový vstup a zistiť, či sa výstup zhoduje s uloženým hashom v databáze. Ak áno, poznáte zhodné heslo bez toho, aby ste poznali skutočné heslo.

Užitočné to tiež znamená, že ak útočník poruší databázu, nedostane zoznam okamžite užitočných hesiel, ale namiesto toho dostane hash. Aby bolo možné použiť tieto hashe, musia byť cracknuté.

Prelomenie hash hesiel pomocou inteligentných nástrojov

Prelomenie hash hesla je proces, pri ktorom sa zistí, aké je pôvodné heslo, ktoré hash predstavuje. Pretože neexistuje spôsob, ako zvrátiť hashovaciu funkciu a zmeniť hash na heslo. Jediný spôsob, ako prelomiť hash, je uhádnuť heslo. Jednou z metód je použitie útoku hrubou silou. To doslova znamená vyskúšať každé možné heslo. To znamená začať od „a“, vyskúšať každé písmeno v oboch prípadoch a každé číslo a symbol. Potom musí útočník vyskúšať všetky kombinácie dvoch znakov, kombinácie troch znakov atď. Nárast možných kombinácií postáv je exponenciálny pri každom pridaní postavy. To sťažuje efektívne uhádnutie dlhých hesiel, aj keď sa používajú rýchle hašovacie algoritmy s výkonnými súpravami na prelomenie GPU.

Určité úsilie si môžete ušetriť, ak sa pozriete na požiadavky na heslá na stránke a nebudete skúšať heslá, ktoré by boli príliš krátke na to, aby boli povolené, alebo ktoré napríklad neobsahujú číslo. To by ušetrilo nejaký čas a stále to zapadá do triedy útoku hrubou silou skúšania všetkých povolených hesiel. Pomalé útoky hrubou silou – ak sú ponechané dostatočne dlho s veľkým výpočtovým výkonom – nakoniec prelomia akékoľvek heslo, pretože sa vyskúšajú všetky možné kombinácie.

Problém s útokmi hrubou silou je v tom, že nie sú príliš chytré. Slovníkový útok je variant, ktorý je oveľa cielenejší. Namiesto skúšania akéhokoľvek možného hesla skúša zoznam špecifikovaných hesiel. Úspech tohto typu útoku závisí od zoznamu hesiel a príslušného slovníka.

Vytváranie vzdelaných odhadov

Slovníky hesiel sú zvyčajne vytvorené z predtým prelomených hesiel z iných únikov údajov. Tieto slovníky môžu obsahovať tisíce alebo milióny hesiel. Toto stavia na koncepte, že ľudia sú zlí pri vytváraní jedinečných hesiel. Dôkazy z porušenia údajov ukazujú, že je to tak, bohužiaľ. Ľudia stále používajú variácie na slovo „heslo“. Ďalšími bežnými témami sú športové tímy, mená domácich miláčikov, názvy miest, názvy spoločností, nenávisť k svojej práci a heslá podľa dátumu. K tomuto poslednému špecificky dochádza, keď sú ľudia nútení pravidelne meniť svoje heslá.

Používanie slovníka hesiel výrazne znižuje počet odhadov, ktoré je potrebné vykonať, v porovnaní s útokom hrubou silou. Slovníky hesiel tiež zvyčajne obsahujú krátke aj dlhšie heslá, čo znamená, že niektoré heslá môžu byť vyskúšané, ku ktorým by sa nedospelo ani po rokoch alebo uhádnutí hrubou silou. Tento prístup sa tiež ukazuje ako úspešný. Štatistiky sa líšia v závislosti od porušenia údajov a veľkosti a kvality použitého slovníka, ale miera úspešnosti môže prekročiť 70%.

Miera úspešnosti sa dá ešte zvýšiť pomocou algoritmov na mangľovanie slov. Tieto algoritmy berú každé slovo zo slovníka hesiel a potom ho trochu upravujú. Tieto úpravy majú tendenciu byť štandardnými náhradami znakov a pridávaním koncových čísel alebo symbolov. Napríklad je bežné, že ľudia nahrádzajú písmeno „e“ „3“ a „s“ znakom „$“ alebo pridávajú na koniec výkričník. Algoritmy na mangľovanie slov vytvárajú duplikáty každého záznamu v slovníku hesiel. Každý duplikát má inú variáciu týchto nahradení znakov. To výrazne zvyšuje počet hesiel na uhádnutie a tiež zvyšuje úspešnosť, v niektorých prípadoch až nad 90%.

Záver

Slovníkový útok je cielená variácia útoku hrubou silou. Namiesto skúšania všetkých možných kombinácií znakov sa testuje podmnožina kombinácií znakov. Táto podmnožina je zoznam hesiel, ktoré boli predtým nájdené a v prípade potreby prelomené pri predchádzajúcich únikoch údajov. To výrazne znižuje počet hádaní, ktoré je potrebné vykonať pri pokrytí hesiel, ktoré už boli použité a v niektorých prípadoch často videné. Slovníkový útok nemá takú úspešnosť ako útok hrubou silou. To však predpokladá, že máte neobmedzený čas a výkon spracovania. Slovníkový útok má tendenciu dosiahnuť slušne vysokú úspešnosť oveľa rýchlejšie ako útok hrubou silou. Je to preto, že nestráca čas extrémne nepravdepodobnými kombináciami postáv.

Jednou z hlavných vecí, ktoré by ste mali urobiť pri vymýšľaní hesla, je uistiť sa, že sa neobjaví v zozname slov. Jedným zo spôsobov, ako to urobiť, je vytvoriť zložité heslo, druhým je vytvoriť dlhé heslo. Vo všeobecnosti je najlepšou možnosťou vytvoriť dlhé heslo zložené z niekoľkých slov. Je len dôležité, aby tieto slová netvorili skutočnú frázu, ako by sa dalo uhádnuť. Mali by spolu úplne nesúvisieť. Odporúča sa, aby ste si zvolili heslo s viac ako 10 znakmi, pričom 8 ako absolútne minimum.