Файл с названием wallet.dat от Bitcoin Core – это своего рода хранилище ваших приватных ключей. Потерять к этому хранилищу доступ очень легко. Если был поврежден диск, пользователь забыл пароль либо случайно стер файл, то картина весьма печальна. Именно поэтому мы поможем с разбором каждого возможного сценария и доступно объясним, что можно сделать.

Если отвечать на вопрос о восстановлении кратко, то стоит сказать, что такая возможность есть. К примеру, если пользователь не помнит пароль полностью, но частично все же его знает, то можно применить словарные и гибридные атаки с использованием GPU-кластеров. Если файл был поврежден, то его восстановление запустить помогут инструменты работы с базой Berkeley DB. Если файл был утерян, то используя метод форензики, извлечь его из диска можно. Главное до начала работы ничего поверх диска не записать.
Почему так важен wallet.dat и что это такое вообще?
Оригинальным клиентом сети Биткоин, является Bitcoin Core. Именно он производит хранение приватных пользовательских ключей в файле, имеющем наименование wallet.dat. ключи пользователей хранятся не в формате текстового документа, а в формате Berkeley DB – то есть, это зашифрованная база данных. Эта база содержит приватные ключи для каждого адреса, в ней есть данные о ключах, что когда-либо были сформированы в вашем кошельке, также есть настройки, адресная книга и метаданные по транзакциях.
Если при создании кошелька пользователь устанавливал пароль, то он получил дополнительное шифрование, что производится алгоритмом AES-256-CBC. То есть, содержимое файла точно прочитать не удастся, если правильного пароля пользователь не знает. Это и делает Bitcoin Core одним из наиболее надежных способов хранения биткоинов, но это и создает проблемы для пользователей, что забывают свои пароли.
В зависимости от конкретной операционной системы, будут определяться расположение файла. Если говорить про операционную систему Windows, то путь к файлу выглядит так: C:\Users\[имя_пользователя]\AppData\Roaming\Bitcoin\wallet.dat. Если же пользователь имеет гаджет, что работает на системе macOS: ~/Library/Application Support/Bitcoin/wallet.dat. Если у компьютера человека операционная система Linux: ~/.bitcoin/wallet.dat. Также стоит отметить AppData папка в Windows скрыта по умолчанию, соответственно о ее существовании знают далеко не все, узнают про такой файл, когда возникает проблема.
Как действовать, если пользователь забыл пароль
Запрос с забытым паролем является наиболее распространенным. Бывает так, что пару лет назад человек зарегистрировал свой кошелек, выбрал пароль понадежнее, но записать его забыл. А вот когда вспомнил о монетах и пытается к ним доступ получить, сделать этого не может. Тут возникает паника, но ситуацию можно решить благополучно.
Мы, как специалисты, в таком ситуации спрашиваем у человека, а что он помнить о своем пароле вообще. И тут в пользу человека играет наличие любой информации, даже если он запомнил всего пару букв или чисел. Возможно это будет какой-то шаблон или слова, применяемые для любых других паролей. Чем больше человек помнит, тем уже становится пространство поиска решений.
Если говорить о профессиональной крипто криминалистике, что помогает восстанавливать пароли wallet.dat, то тут используются такие профессиональные инструменты, как Hashcat и John the Ripper. Эти инструменты используются для обеспечения корпоративной безопасности и для индустрии они являются стандартом. Также их в своей деятельности используют правоохранители. Hashcat может применить мощность видеокарт (GPU) чтобы за секунду перебрать миллиард комбинаций одновременно. GPU-кластеры современного образца перебирают пароли со скоростью десятков тысяч попыток в секунду для Bitcoin Core составляет десятки тысяч попыток в секунду и если словари составлены правильно, то это дает достаточно много шансов на успех.
Тут очень важно, что далеко не вслепую перебираются эти комбинации. Специалисты изучают внимательно предполагаемые паттерны, они составляют персонализированный профиль, используют правила трассировки с характерными заменами символов типа «a»->»@». Также специалисты в работе используют именно словари на языке, на котором думает человек. Поскольку используется в работе, как аналитика, так и технический перебор, то это шансы на успех повышает.
Чего при забытом пароле делать не стоит?
Не стоит прибегать к использованию бесплатных инструментов в онлайне, чтобы восстановить пароль bitcoin wallet». Нужно понимать, что большинство таких программ относятся к категории фишинговых. После загрузки пользователем файла wallet.dat на такие сервера, часто у пользователей крадут средства. Нужно понимать, что wallet.dat содержит приватные ключи, соответственно только проверенным компаниям такие данные можно передавать. Они подписывают NDA, а также в работе применяют изолированную среду. Еще не стоит пробовать много раз вручную вводить случайные пароли, поскольку это является попросту бессмысленной тратой времени.
Что делать, если файл wallet.dat поврежден – сценарий второй
Если wallet.dat является поверженным, то случиться такое может по нескольких причинах. Такое случается если Bitcoin Core некорректно завершил свою работу во время записи транзакции. Может банально произойти отказ жесткого диска, нередко случаются вирусные атаки, не исключена случайная перезапись или повреждение файловой системы. Bitcoin Core в таких случаях при запуске может выдавать ошибку, клиенту будет кошелек виден, но не отображения баланса он так и не получит. Может быть и такое, что открыть факт не может ни одна программа.
Формат Berkeley DB, где и происходит хранение wallet.dat, обладает встроенным для восстановления механизмом. Утилита db_recover, что входит в пакет Berkeley DB именно для такого сценария и предназначается: делает качественный анализлог-файла транзакции, затем активно пытается восстановить целостность тех данных, что находятся в базе. Когда с wallet.dat сохранились также файлы журнала (log.0000000001 и подобные), есть достаточно высокие шансы на восстановление.
Если данные все же повреждены более серьезно, то применяются инструменты, что разрешают работать с сырыми данными, а именно pywallet. Это и позволяет с поврежденного файла доставать записи ключей, при чем даже при нарушении структуры базы данных. Бинарное содержимое файла анализируется специалистом, для поиска байтовых характерных последовательностей. Именно их и маркируют под записи приватных ключей, а потом извлекает напрямую, не задевая поврежденную оболочку базы данных.
В этом процессе есть одно важное правило, что выглядит так: не запускайте Bitcoin Core повторно и не устанавливайте новое ПО на тот же диск. Чем больше операций записи на диск было запущено, тем меньше шансов на восстановление остается. Если же с физической исправностью диска все хорошо, то можно и нужно сделать побитовую копию, используя для dd либо специализированное ПО.
Что делать если wallet.dat утерян или удален – сценарий третий
Бывали такие случаи, когда пользователи случайно форматировали диск, переустанавливали операционную систему, не делая резервного копирования и, при такой утере файла более сложно сделать восстановление. Но это не значит, что надежда совсем отсутствует. Фактически на диске удаленные файлы остаются, но до момента, пока на них новые данные не запишут. Операционная система пометит секторы диска, как свободные, но до новой записи не сотрет их содержимое.
Есть несколько актуальных подходов для форензики удаленных файлов. Есть такой вариант, как карвинг, предполагающий сканирование диска, это нужно, чтобы найти характерные сигнатуры файлов Berkeley DB безотносительно системы файлов. Второй вариант состоит в анализе файловой системы (MFT на NTFS, журнал ext4 на Linux). Использование именно таких системных таблиц часто помогает увидеть метаданные об удаленных файлах, в том числе физическое расположение на диске. Часть используется и такой вариант, как восстановление через теневые копии Volume Shadow Copy на Windows. Для этого в автоматическом режиме системой создаются снапшоты файловой системы, где хранится более ранняя версия wallet.dat.
Тут критически важно понимать, насколько часто после удаления был использован диск, да бы оценить шансы на восстановление. Высокая вероятность восстановления есть в случае, когда сразу после удаления файла компьютер был выключен, а человек обратился к специалистам. Если несколько гигабайтов новой информации все же было записано на диск, то шансы на восстановление частичные. Соответственно, обнаружив потерю файла, лучше сразу компьютер выключать и консультироваться со специалистом.
Резервные копии и их роль: важно для большинства пользователей
Bitcoin Core функцию резервного копирования кошелька имеет встроенную, реализована она через меню File — Backup Wallet. Часто пользователи про эту опцию даже не догадываются или ее на регулярном основании не применяют. Но все же внимательно стоит проверять все места, где могут храниться резервные копии. В их перечне такие:
внешние диски, USB, облачные хранилища (iCloud, Google Drive, Yandex Disk), почтовые вложения, отправленные пользователем самому же себе. Если есть хотя бы одна рабочая копия wallet.dat, сохраненная одним из способов, прописанных выше, то это уже очень хорошо. Тут просто придется восстановить пароль, но не целый файл.
Еще пользователю нужно другие компьютеры проверить тщательно, где могла быть установлена копия Bitcoin Core. Требуется определенное время для проведения синхронизации. Часто бывает так, что на нескольких машинах пользователи сохраняли wallet.dat и он остался незатронутым, что и решает ситуацию.
Как мы работаем в подобных случаях?
Сначала проводится первичная диагностика. Клиент предоставляет wallet.dat и описывает полностью свою ситуацию. Мы подписываем NDA обязательно перед получением файла, а еще соглашение о неразглашении. Такие документы не являются формальностью, они строго определяют обязательства по конфиденциальности. Также они накладывают запрет на любые операции с активами, если клиент не давал свое письменное согласие. Еще прописываются данные про период уничтожения информации после завершения работы.
Происходит помещение файла в среду, что является изолированной. Работа проходит со станции, что не имеет выхода в интернет. Используемое хранилище является зашифрованным. Специалистом составляется специальный профиль для атаки на пароль и собираются все необходимые для этого сведенья. Также составляются правила и словари мутации. Еще идет оценка технического состояния файла, специалисты смотрят, можно ли извлечь ключ напрямую. По факту диагностики уже дают оценку, насколько высоки шансы на успех, также специалисты скажут о стоимости и сроках работы. Работу, с которой мы результат гарантировать не можем, мы не берем.
Результат выполненной работы – это восстановление доступа к кошельку. Или же человек получает зашифрованные ключи и отдельную инструкцию, как установить их. Файл wallet.dat, что отправил клиент, также рабочие данные по протоколу будут стерты и пользователь получит подтверждение этому.
Что стоит сделать именно сейчас?
Если проблема с доступом к wallet.dat только обнаружена, то для действий предусмотрен конкретный алгоритм. Нужно на компьютере, где устроен доступ, прекратить какие-либо операции, особенно что касаются загрузки новых файлов. Нельзя скачивать никакие файлы и устанавливать программы, также не стоит делать дефрагментацию диска. Стоит проверить на всех возможных носителях наличие резервной копии файла. Все, что пользователь помнит о пароле, ему стоит записать. Также точно нужно зафиксировать ошибку, что выдает Bitcoin Core, сделав скриншот. Потом стоит связаться для получения первичной консультации со специалистом. Далее будет оценка ситуации и разработка плана действий.
Тут нужно понимать, что если доступ к wallet.dat потерян, то это не значит, что и биткоины потеряны. Ваши монеты не на файле, а в блокчейне. Файл – это только право на управление криптой и восстановить его можно в большинстве случаев.
