Chcete-li se přihlásit k webu, musíte zadat uživatelské jméno a heslo. Web poté zkontroluje ověřovací údaje, které jste poskytli, jejich porovnáním s údaji uloženými ve své databázi. Pokud se podrobnosti shodují, přístup je udělen. Pokud se podrobnosti neshodují, přístup je odepřen.
Bohužel úniky dat jsou poměrně častým jevem. Úniky dat mohou být velkým problémem, protože jedním z bitů dat, na které se nejčastěji zaměřuje, jsou uživatelská data, konkrétně seznam uživatelských jmen a hesel. Pokud jsou hesla uložena tak, jak jsou, v prostém textu, pak kdokoli s přístupem k databázi může přistupovat k účtu jakéhokoli jiného uživatele. Je to, jako by jim byl předán přívěsek na klíče s klíčem od všech dveří v činžovním domě.
I když je v první řadě vynaloženo velké úsilí na prevenci narušení dat, doporučuje se strategie ochrany do hloubky. Bezpečnostní rada konkrétně říká, že hesla by měla být hašována, přičemž by se měla ukládat pouze hash hesla. Hašovací funkce je jednosměrná funkce, která vždy převádí stejný vstup na stejný výstup. I malá změna vstupu však vede k úplně jinému výstupu. Je kritické, že neexistuje žádný způsob, jak funkci zvrátit a vrátit vydaný hash zpět na původní vstup. Co však můžete udělat, je hashovat nový vstup a zjistit, zda se výstup shoduje s uloženým hashem v databázi. Pokud ano, znáte odpovídající heslo, aniž byste kdy znali skutečné heslo.
To také znamená, že pokud útočník pronikne do databáze, nezíská seznam okamžitě užitečných hesel, ale místo toho získá hash. Aby bylo možné tyto hashe použít, musí být cracknuty.
Prolomení hash hesel pomocí chytrých nástrojů
Prolomení hashe hesla je proces, při kterém se zjistí, jaké je původní heslo, které hash představuje. Protože neexistuje způsob, jak zvrátit hashovací funkci a přeměnit hash na heslo. Jediný způsob, jak prolomit hash, je uhodnout heslo. Jednou z metod je použití útoku hrubou silou. To doslova znamená vyzkoušet všechna možná hesla. To znamená začít od „a“, vyzkoušet každé písmeno v obou případech a každé číslo a symbol. Poté musí útočník vyzkoušet všechny kombinace dvou znaků, kombinace tří znaků a tak dále. Nárůst možných kombinací postav je exponenciální pokaždé, když přidáte postavu. To ztěžuje efektivní uhodnutí dlouhých hesel, i když se používají rychlé hašovací algoritmy s výkonnými zařízeními na prolomení GPU.
Určité úsilí lze ušetřit tím, že se podíváte na požadavky na hesla na webu a nebudete zkoušet hesla, která by byla příliš krátká na to, aby byla povolena, nebo která například neobsahují číslo. To by ušetřilo nějaký čas a stále to zapadá do třídy útoků hrubou silou, které zkouší všechna povolená hesla. Útoky hrubou silou, i když jsou pomalé, – pokud jsou ponechány dostatečně dlouho s velkým výpočetním výkonem – nakonec prolomí jakékoli heslo, protože budou vyzkoušeny všechny možné kombinace.
Problém s útoky hrubou silou je v tom, že nejsou příliš chytré. Slovníkový útok je varianta, která je mnohem cílenější. Místo pouhého zkoušení jakéhokoli možného hesla zkouší seznam zadaných hesel. Úspěch tohoto typu útoku závisí na seznamu hesel a příslušném slovníku.
Vytváření kvalifikovaných odhadů
Slovníky hesel jsou obvykle sestaveny z dříve prolomených hesel z jiných úniků dat. Tyto slovníky mohou obsahovat tisíce nebo miliony hesel. To staví na konceptu, že lidé jsou špatní ve vytváření jedinečných hesel. Důkazy z narušení dat ukazují, že tomu tak je, bohužel. Lidé stále používají variace na slovo „heslo“. Dalšími běžnými tématy jsou sportovní týmy, jména domácích mazlíčků, názvy míst, názvy společností, nenávist ke své práci a hesla podle data. K tomuto poslednímu konkrétně dochází, když jsou lidé nuceni pravidelně měnit svá hesla.
Použití slovníku hesel výrazně snižuje počet odhadů, které je třeba provést, ve srovnání s útokem hrubou silou. Slovníky hesel také obvykle obsahují jak krátká, tak delší hesla, což znamená, že mohou být vyzkoušena některá hesla, která by nebyla dosažena ani po letech nebo hádání hrubou silou. Přístup se také osvědčuje. Statistiky se liší podle narušení dat a velikosti a kvality použitého slovníku, ale míra úspěšnosti může přesáhnout 70 %.
Míru úspěšnosti lze ještě dále zvýšit pomocí algoritmů pro mandlování slov. Tyto algoritmy převezmou každé slovo ve slovníku hesel a poté jej trochu upraví. Tyto modifikace mají tendenci být standardním nahrazením znaků a přidáním koncových čísel nebo symbolů. Lidé například běžně nahrazují písmeno „e“ „3“ a „s“ znakem „$“ nebo přidávají na konec vykřičník. Algoritmy úpravy slov vytvářejí duplikáty každé položky ve slovníku hesel. Každý duplikát má jinou variantu těchto nahrazení znaků. To výrazně zvyšuje počet hesel k uhádnutí a také zvyšuje úspěšnost, v některých případech až nad 90 %.
Závěr
Slovníkový útok je cílená varianta útoku hrubou silou. Namísto pokusů o všechny možné kombinace znaků se testuje podmnožina kombinací znaků. Tato podmnožina je seznam hesel, která byla dříve nalezena a v případě potřeby prolomena při minulých narušeních dat. To výrazně snižuje počet odhadů, které je třeba provést, a zároveň pokrýt hesla, která byla dříve používána a v některých případech často viděna. Slovníkový útok nemá tak vysokou úspěšnost jako útok hrubou silou. To však předpokládá, že máte neomezený čas a výpočetní výkon. Slovníkový útok má tendenci získat slušně vysokou úspěšnost mnohem rychleji než útok hrubou silou. Je to proto, že neztrácí čas extrémně nepravděpodobnými kombinacemi postav.
Jednou z hlavních věcí, kterou byste měli udělat při vymýšlení hesla, je zajistit, aby se neobjevilo v seznamu slov. Jedním ze způsobů, jak toho dosáhnout, je vytvořit složité heslo, druhým je vytvořit dlouhé heslo. Obecně platí, že nejlepší možností je vytvořit dlouhé heslo složené z několika slov. Je jen důležité, aby tato slova netvořila skutečnou frázi, jak by se dalo uhodnout. Měly by spolu zcela nesouviset. Doporučuje se, abyste zvolili heslo delší než 10 znaků s 8 jako naprosté minimum.