Преди две години, когато „Майкъл“ (това е псевдоним), собственик на криптовалута, се свързва с Джо Гранд, за да му помогне да възстанови достъпа си до биткойни на стойност около 2 милиона долара, които съхранява в криптиран формат на компютъра си, Гранд му отказва.

Майкъл, който е базиран в Европа и е поискал да остане анонимен, е съхранявал криптовалутата в цифров портфейл, защитен с парола. Той генерирал парола с помощта на мениджъра на пароли RoboForm и съхранявал тази парола във файл, криптиран с инструмент, наречен TrueCrypt. В някакъв момент този файл се повредил и Майкъл загубил достъп до 20-символната парола, която бил генерирал, за да защити своите 43.6 BTC (на обща стойност около 4000 евро, или 5300 долара, през 2013 г.). Майкъл е използвал мениджъра за пароли RoboForm, за да генерира паролата, но не я е съхранил в мениджъра си. Той се притеснявал, че някой ще хакне компютъра му и ще получи паролата.

„По онова време бях наистина параноичен по отношение на сигурността си“, смее се той в разговор с Wired.

Гранд е известен хардуерен хакер, който през 2022 г. помогна на друг собственик на криптопортфейл да възстанови достъпа си до 2 милиона долара в криптовалута, за които мислеше, че е загубил завинаги, след като забрави ПИН кода на портфейла си Trezor. Оттогава насам десетки хора са се свързали с Гранд, за да им помогне да възстановят съкровището си. Но Гранд, известен с хакерския псевдоним „Кингпин“, отказва на повечето от тях по различни причини.

Той е електроинженер, който започва да хакерства компютърен хардуер на 10-годишна възраст, а през 2008 г. е съводещ на предаването Prototype This по Discovery Channel. Сега той консултира компании, които изграждат сложни цифрови системи, за да им помогне да разберат как хардуерни хакери като него могат да подкопаят техните системи. През 2022 г. той разбива портфейла Trezor, като използва сложни хардуерни техники, които принуждават този USB-портфейл да разкрие паролата си.

Но Майкъл съхранява криптовалутата си в софтуерно базиран портфейл, което означава, че този път не са нужни хардуерните умения на Гранд. Той обмислял да разбие паролата на Майкъл с метода на „грубата сила“ - да напише скрипт, който автоматично да отгатва милиони възможни пароли, за да намери правилната, - но преценил, че това е невъзможно. За кратко обмисля, че мениджърът на пароли RoboForm, който Майкъл използва за генериране на паролата си, може да има недостатък в начина на генериране на пароли, което би му позволило да отгатне паролата по-лесно. Гранд обаче се усъмнил, че такъв недостатък съществува.

Майкъл се свързал с множество хора, които са специализирани в разбиването на криптографията; всички те му казали, че „няма никакъв шанс“ да възстанови парите си. Но през юни миналата година той отново се обърнал към Гранд с надеждата да го убеди да му помогне и този път Гранд се съгласил да опита, работейки с приятел на име Бруно в Германия, който също хаква цифрови портфейли.

Гранд и Бруно прекарват месеци в обратен инженеринг на версията на програмата RoboForm, която смятат, че Майкъл е използвал през 2013 г., и откриват, че генераторът на псевдослучайни числа, използван за генериране на пароли в тази версия - и в следващите версии до 2015 г., - наистина има съществен недостатък, който прави генератора на случайни числа не толкова случаен. Програмата RoboForm неразумно обвързвала генерираните от нея случайни пароли с датата и часа на компютъра на потребителя - тя определяла датата и часа на компютъра и след това генерирала пароли, които били предсказуеми. Ако знаете датата и часа и други параметри, можете да изчислите всяка парола, която би била генерирана на определена дата и час в миналото.

Ако Майкъл знаеше деня или общия период от време през 2013 г., когато е генерирал паролата, както и параметрите, които е използвал за генерирането ѝ (например броя на символите в паролата, включително малки и големи букви, цифри и специални символи), това би ограничило възможните предположения за парола до приемлив брой. След това биха могли да превземат функцията на RoboForm, която отговаря за проверката на датата и часа на компютъра, и да я накарат да се върне назад във времето, като смятат, че настоящата дата е ден от 2013 г., когато Майкъл е генерирал паролата си. След това RoboForm ще върне същите пароли, които е генерирал в дните през 2013 г.

Имаше един проблем: Майкъл не можеше да си спомни кога е създал паролата.

Според дневника на софтуерния му портфейл Майкъл е прехвърлил биткойни в портфейла си за първи път на 14 април 2013 г. Но той не може да си спомни дали е генерирал паролата същия ден или известно време преди или след това. Така че, разглеждайки параметрите на други пароли, които е генерирал с помощта на RoboForm, Гранд и Бруно конфигурирали RoboForm да генерира 20-символни пароли с главни и малки букви, цифри и осем специални символа от 1 март до 20 април 2013 г.

Така не успяват да генерират правилната парола. Затова Гранд и Бруно удължават срока от 20 април до 1 юни 2013 г., като използват същите параметри.

След месеци най-накрая намират правилната парола. Без специални символи, тя е генерирана на 15 май 2013 г. в 16:10:40 ч. по Гринуич.

Гранд и Бруно създадоха видеоклип, за да обяснят по-подробно техническите подробности.

Снимка: Unsplash

Виж още: Ето защо Apple създаде копие на Tetris за iPod, но така и не го пусна