Jak prolomit MD5

MD5 je nejčastěji používaná funkce pro výpočet hashů – jednosměrné šifrování. Je založena na tom, že vypočítat hash z originálního zápisu je velice jednoduché a prakticky okamžité. Nicméně, vypočítání originálního textu z hashe je nemožné. Ale, existují metody, jak se dá originální text získat.

Časová složitost

Všechny bezpečnostní šifry jsou založeny na času potřebného pro jejich prolomení. I kdyby jste měli nejlepší počítač, který používá NASA pro výpočet vesmírných plánů, tak vám může u komplikovaného hashe trvat výpočet i stovky let – a přitom má stále jen 32 znaků.

Výpočet

Vzorec na výpočet MD5 je všeobecně známý. MD5 si může vypočítat každý. Má to ale jednu obrovskou slabinu – nedá se vypočítat zpět i přesto, že známe postup, jak jsme se k číslu dostali.

Metody prolomení

Metod je hned několik. Těmto typům útoků se správně říká útok hrubou silou, protože se nevyužívá matematiky k výpočtu (údajně to ani nejde), ale jen se zkouší možnosti.

Já znám tyto metody:

  • Pokus/omyl
  • Zkoušení slovníkových hesel
  • Duhové tabulky
  • Vyhledat přes Google
  • Hledání kolize – hodně teorie

Metoda pokus-omyl

Postupně se zkoušejí všechny kombinace písmen, čísel a ostatních znaků. Tyto pokusy se zahashují a porovnají s originálním hashem. U 8 znaků dlouhého hesla to je tolik pokusů, že by na to váš počítač potřeboval dalších 30 období od velkého třesku do teď. Pokusy vypadají třeba takto:

1 aaaaaaabaaacaaadaaaeaaaf...

Trochu pomalé a neefektivní, že?

Metoda slovníkových hesel

Na začátku máme obsáhlý slovník nejčastějších slov všech jazyků a hash. Postupně se zkoušejí všechny slova ze slovníku, následně jejich kombinace a později i přidané symboly. Tímto omezíme počet pokusů a zvyšujeme šance v případě, že originální hash obsahuje nějaké existující slovo, které lze běžně najít ve slovníku. Vyhneme se proto zápisům typu CkfNjs@6w1SCq5cs, které jsou méně pravděpodobné, než existující slova. Proto si nikdy nevolte heslo, které existuje ve slovníku!

Duhové tabulky

Jedná se o obří databázi hashů a jejich řešení. Tyto tabulky mají často obrovský rozsah v řádu terabajtů a jsou neustále rozšiřovány. Obvykle jsou přístupné online a fungují rychle. Pokud hledáte hash, který pravděpodobně už někdo hledal, tak ho můžete přes duhové tabulky najít prakticky ihned. Je to asi nejrozumnější řešení.

Google

Někdy stačí hash zadat do Googlu a často se výsledek dozvíte také „na počkání“. Je pravděpodobné, že bude Google znát nějakou stránku z katalogu hashů a zde najdete řešení. Je to způsob, jak si „hackerové“ (ehm. crackerové) zvedají návštěvnost.

Hledání kolize

Pokud má hash vždy 32 znaků, tak logicky existují minimálně 2 různé originální zápisy o délce 33 znaků, které mají stejný hash. Dlouho se hledání takové kolize matematikům nedařilo, ale nakonec se to povedlo. Bylo tím tedy dokázáno, že i MD5 má „chybu“ – kolizi.

Teoreticky je časově výhodnější a efektivnější hledat právě kolizi, než originální zápis (který není vždy možné najít). A to hlavní: kolizí pravděpodobně existuje nekonečně mnoho.

Pokud lámete heslo, tak vám může být jedno, zda objevíte to původní, nebo právě kolizi. V obou případech se povede to co tak žádáte – můžete se přihlásit na cizí účet.

Sponzorované odkazy
Pomohl Vám tento článek?