Jak moc je elektronická peněženka bezpečná, velmi závisí na použitém heslu. Michael, jenž si přál zůstat v anonymitě, a nejsme si tak jisti, že je to jeho pravé jméno, proto použil správce hesel RoboForm, ve kterém si nechal vygenerovat bezpečné heslo sestávající z dvaceti malých a velkých písmen, číslic a znaků. Toto heslo pak uložil do souboru, který zašifroval pomocí nástroje TrueCrypt a uložil na pevný disk počítače. Tak měl bezpečné heslo a ještě jej měl velmi bezpečně uložené. Bohužel jej nikam nezálohoval, a tak s daty z pevného disku jednoho dne zmizelo i heslo do elektronické peněženky.
V roce 2022 si Michael uvědomil, že vlastní obrovské jmění, ale nemůže se k němu dostat. Kontaktoval proto několik bezpečnostních specialistů a hackerů, ale nepochodil – „bruteforce“ do softwarové elektronické peněženky je prakticky neproveditelný.
O rok později Michael kontaktoval dva z již dříve oslovených hackerů ještě jednou. Ti za sebou zrovna měli několik měsíců práce s jinými generátory hesel, u kterých postupovali metodou zpětného inženýrství – rekonstrukce a porozumění toho, jak daný software vnitřně pracuje. A rozhodli se to zkusit i v případě správce hesel RoboForm.
Důležitá poznámka na webu
Na webových stránkách si totiž všimli changelogu (seznamu změn mezi jednotlivými verzemi programu) z roku 2015, ve kterém se jedno vylepšení týkalo „zvýšení náhodnosti“ vestavěného generátoru náhodných hesel. A z toho vyvodili, že pokud bylo potřeba náhodnost zvýšit, tak v předchozích verzích nebyla dostatečně náhodná a lze tedy objevit nějaký vzorec, podle kterého jsou generována. A protože ztracené heslo bylo vygenerováno v roce 2013, je možné, že nebylo vygenerováno tak náhodně, jak mělo být.
RoboForm je „closed source“ software, výrobce tedy nikomu neposkytl zdrojový kód programu. Pomocí nástrojů zpětného inženýrství se pustili do „rozebrání“ programu a nalezení té části, která se stará právě o generování hesel.
V nalezené části kódu si všimli reference k volání systémového času a další manipulaci s tímto parametrem. Vznikla tak pracovní hypotéza, že aktuální systémový čas se používá jako „základ“ pro tvorbu náhodného hesla. Rozhodli se proto ověřit, zda se hesla budou shodovat, když změní systémový čas počítače a vytvoří heslo dvakrát ve zcela stejný čas.
A ověření dopadlo dobře. Pokud na správném místě paměti podvrhli záznam o čase (píšeme čase, ale samozřejmě je jeho součástí i datum), program vygeneroval vždy stejné heslo. Napsali proto program, který toto řídil – podvrhl čas, uložil výsledek – a hodnotu času inkrementálně zvyšoval. Získávali tak seznam hesel, který by program v daných časech vytvořil. Rychlostí zhruba 100 hesel za sekundu.
Vygenerovali tak balík hesel za předpokládané období, kdy Michael v roce 2013 heslo vytvořil, vložili jej do nástroje na překonávání hesel – ale bez výsledku, peněženku to neotevřelo. Ve stavu nejvyššího zoufalství se ukázalo, že tehdy Michael možná při tvorbě hesla nezaškrtl volbu „speciální znaky“, a tak heslo může být složené pouze z velkých a malých písmen a číslic. Upravili proto parametry a celý proces započal nanovo. A na druhý pokus se povedlo.
„Nakonec jsme měli štěstí, že naše parametry a časový rozsah byly správné. Kdyby se některý z nich mýlil, pokračovali bychom v odhadech/výstřelech do tmy,“ komentoval pro server Wired přelomovou chvíli Joe Grand ze společnosti Offspec.io, který projekt prolomení peněženky vedl. „Předpočítání všech možných hesel by trvalo podstatně déle,“ doplnil hacker.
Peněženka s bitcoiny v hodnotě tří milionů dolarů, tedy zhruba 67 milionů korun, byla opět otevřená a s kryptoměnou bylo možné disponovat. Pravdou je, že nebýt pozdě opravené chyby v aplikaci RoboForm, dostat se do peněženky by v současnosti dostupnými prostředky nebylo možné.
Koho proces zajímá podrobněji, může se podívat na video Joe Granda, jednoho ze dvou hackerů, který za nalezením hesla k pokladu stojí. Z něj jsme čerpali i informace pro tento článek.



















