Завдяки недоліку у версії менеджера паролів RoboForm десятирічної давності та частці удачі дослідники змогли розкопати пароль до крипто-гаманця, який містив Fortune..

Два роки тому, коли «Майкл», власник Cryptocurrency, зв’язався з Джо Грандом, щоб допомогти відновити доступ до біткойнів на суму близько 2 мільйонів доларів, які він зберігав у зашифрованому форматі на своєму комп’ютері, Гранд відмовив йому.

Майкл, який живе в Європі і попросив залишитися анонімним, зберігав криптовалюту в захищеному паролем цифровому гаманці. Він створив пароль за допомогою менеджера паролів RoboForm і зберіг цей пароль у файлі, зашифрованому за допомогою інструменту під назвою TrueCrypt. У якийсь момент цей файл був пошкоджений, і Майкл втратив доступ до 20-значного пароля, який він згенерував для захисту своїх 43,6 BTC (загальна вартість близько 4000 євро, або 5300 доларів США, у 2013 році). Майкл використав менеджер паролів RoboForm, щоб створити пароль, але не зберіг його у своєму менеджері. Він хвилювався, що хтось може зламати його комп’ютер і отримати пароль.

«У [той] час я був справді параноїк щодо своєї безпеки», — сміється він.

Гранд — відомий апаратний хакер, який у 2022 році допоміг іншому власнику крипто-гаманця відновити доступ до 2 мільйонів доларів у криптовалюті, яку, як він вважав, назавжди втратив після того, як забув PIN-код свого гаманця Trezor. Відтоді десятки людей зв’язалися з Грандом, щоб допомогти їм повернути їхні скарби. Але Гранд, відомий під псевдонімом хакера Kingpin, відмовляє більшості з них з різних причин.

Гранд — інженер-електрик, який почав зламувати комп’ютерне обладнання у віці 10 років, а в 2008 році був співведучим шоу «Прототип цього» на 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 року, використовуючи ті самі параметри. Все одно не пощастило.

Майкл каже, що вони постійно поверталися до нього, запитуючи, чи він впевнений щодо параметрів, які він використав. Він залишився при своїй першій відповіді.

«Вони мене дуже дратували, тому що хтозна, що я робив 10 років тому», - згадує він. Він знайшов інші паролі, які згенерував за допомогою RoboForm у 2013 році, і два з них не використовували спеціальні символи, тож Гранд і Бруно відкоригували. У листопаді минулого року вони звернулися до Майкла, щоб домовитися про особисту зустріч. «Я подумав: «Боже мій, вони запитають мене про налаштування».

Натомість вони показали, що нарешті знайшли правильний пароль — без спеціальних символів. Він був створений 15 травня 2013 року о 16:10:40 за Гринвічем.

«Зрештою нам пощастило, що наші параметри та часовий діапазон були правильними. Якби будь-яке з них було неправильним, ми б... продовжували робити припущення/зйомки в темряві», — говорить Гранд в електронному листі до WIRED. «Попереднє обчислення всіх можливих паролів зайняло б значно більше часу».

Гранд і Бруно створили відео, щоб детальніше пояснити технічні деталі.

Згідно зі звітом компанії, RoboForm, створений американською компанією Siber Systems, був одним із перших менеджерів паролів на ринку, і на даний момент має понад 6 мільйонів користувачів у всьому світі. У 2015 році Siber, здається, виправив менеджер паролів RoboForm. При побіжному погляді Гранд і Бруно не змогли знайти жодних ознак того, що генератор псевдовипадкових чисел у версії 2015 року використовував час комп’ютера, що змушує їх думати, що вони видалили його, щоб виправити недолік, хоча Гранд каже, що їм потрібно перевірити це більш ретельно, щоб бути впевненим.

Siber Systems підтвердила WIRED, що вирішила проблему з версією 7.9.14 RoboForm, випущеною 10 червня 2015 року, але представник не відповів на запитання про те, як це вдалося. У журналі змін на веб-сайті компанії згадується лише те, що програмісти Siber внесли зміни, щоб «підвищити випадковість згенерованих паролів», але не повідомляється, як вони це зробили. Представник Siber Саймон Девіс каже, що «RoboForm 7 було припинено в 2017 році».

Гранд каже, що, не знаючи, як Siber вирішив цю проблему, зловмисники все ще можуть відновити паролі, згенеровані версіями RoboForm, випущеними до виправлення в 2015 році. Він також не впевнений, чи поточні версії містять проблему.

«Я все ще не впевнений, що довіряв би цьому, не знаючи, як вони насправді покращили генерацію паролів у останніх версіях», — каже він. «Я не впевнений, чи знав RoboForm, наскільки серйозною була ця конкретна слабкість».

Клієнти також можуть використовувати паролі, які були згенеровані в ранніх версіях програми до виправлення. Схоже, що Siber ніколи не сповіщав клієнтів, коли випустив виправлену версію 7.9.14 у 2015 році, що вони повинні створити нові паролі для важливих облікових записів або даних. У компанії не відповіли на запитання з цього приводу.

Якби Siber не повідомила клієнтів, це означало б, що будь-хто, як Майкл, який використовував RoboForm для генерації паролів до 2015 року — і досі використовує ці паролі — може мати вразливі паролі, які хакери можуть відновити.

«Ми знаємо, що більшість людей не змінюють паролі, доки їм не буде запропоновано це зробити», — каже Гранд. «З 935 паролів у моєму менеджері паролів (не RoboForm), 220 із них належать до 2015 року та раніше, і більшість із них [для] сайтів, якими я досі користуюся».

Залежно від того, що компанія зробила для вирішення проблеми в 2015 році, нові паролі також можуть бути вразливими.

У листопаді минулого року Гранд і Бруно відрахували відсоток біткойнів з рахунку Майкла за виконану ними роботу, а потім дали йому пароль для доступу до решти. На той час біткойн коштував 38 000 доларів за монету. Майкл дочекався, поки вона зросла до 62 000 доларів за монету, і продав частину. Зараз у нього є 30 BTC, які зараз коштують 3 мільйони доларів, і він чекає, поки вартість зросте до 100 000 доларів за монету.

Майкл каже, що йому пощастило, що він загубив пароль багато років тому, оскільки в іншому випадку він продав би біткойни, коли вони коштували 40 000 доларів за монету, і втратив би більші статки.

«Те, що я втратив пароль, було фінансово добре».