Текущее местоположение: Главная / Пароли, приватные ключи и повреждённые файлы / Текст статьи

btcrecover и Cosmos: полное руководство по восстановлению пароля кошелька

btcrecover и Cosmos: полное руководство по восстановлению пароля кошелька

Потеря пароля от Cosmos-кошелька — неприятная, но не всегда безнадёжная ситуация. Если у вас сохранился зашифрованный файл ключа, можно попытаться восстановить пароль локально. Инструмент btcrecover изначально создавался для Bitcoin, однако поддерживает формат Ethereum keystore, который часто совместим с Cosmos SDK keyring. Эта статья описывает полный процесс: от подготовки окружения до проверки найденного пароля. Материал предназначен только для законного восстановления собственных кошельков.

1. Когда btcrecover применим к Cosmos

Cosmos SDK и клиенты вроде gaiad или gaiacli часто хранят локальные ключи в зашифрованном JSON-файле. Такой файл обычно лежит в keyring-file и содержит параметры шифрования: cipher aes-128-ctr, kdf bcrypt, mac keccak256. Это очень похоже на Ethereum keystore, поэтому btcrecover может проверить пароль через режим Ethereum-кошелька.

Важно понимать ограничения:

  • Если у вас есть seed-фраза, btcrecover не нужен: кошелёк восстанавливается из мнемоники.
  • Если сохранился только адрес или публичный ключ, восстановить пароль невозможно.
  • Для Keplr, Leap и других браузерных кошельков нужен экспорт зашифрованного vault или резервная копия расширения. Просто найти файл в браузере бывает сложно.
  • Нестандартный формат keyring может потребовать ручного извлечения полей crypto.

2. Юридические и безопасностные границы

Используйте описанный метод только для собственных кошельков или при наличии письменного разрешения владельца. Восстановление чужих паролей незаконно.

Базовые правила безопасности:

  • Работайте на офлайн-машине. Отключите сеть и используйте чистую операционную систему.
  • Не загружайте файлы ключей, seed-фразы и словари паролей в облака и онлайн-сервисы.
  • Сделайте резервные копии исходных файлов. Не изменяйте оригиналы.
  • После восстановления сразу перенесите средства на новый кошелёк с новой seed-фразой.

3. Подготовка окружения

Для работы понадобятся Python 3, pip и git. Рекомендуется использовать отдельную папку и виртуальное окружение.

Пример команд:

git clone https://github.com/btcrecover/btcrecover.git

cd btcrecover

AES-128-CTR

pip install -r requirements.txt

python btcrecover.py --help

Если btcrecover не запускается, проверьте версию Python и установленные зависимости. Для bcrypt и AES могут потребоваться дополнительные библиотеки, но официальный requirements.txt обычно содержит всё необходимое.

Создайте отдельную рабочую папку, например cosmos_recovery, и скопируйте туда файл ключа. Дальнейшие действия выполняйте только с копией.

4. Поиск и идентификация файла ключа Cosmos

Типичные расположения файлов Cosmos SDK:

  • ~/.gaia/keyring-file/
  • ~/.gaiad/keys/
  • ~/.gaiacli/keys/
  • ~/.cosmos/keyring-file/

Файл может называться по адресу или имени ключа, например cosmos1...info. Откройте его текстовым редактором. Внутри должны быть поля cipher, ciphertext, cipherparams, iv, kdf, kdfparams, salt, cost, dklen, mac.

В Cosmos SDK эти поля часто находятся внутри объекта value.crypto. btcrecover же в режиме Ethereum keystore ожидает объект crypto на верхнем уровне. Поэтому файл нужно аккуратно преобразовать.

5. Преобразование в формат Ethereum keystore

Самый простой способ — извлечь вложенный объект crypto с помощью jq:

jq '.value.crypto' key.info > cosmos_keystore.json

Если jq не установлен, можно вручную скопировать содержимое value.crypto в новый JSON-файл. Главное — не менять значения ciphertext, salt, iv, mac и других параметров.

Проверьте, что в cosmos_keystore.json есть:

  • cipher: обычно aes-128-ctr

bcrypt

  • ciphertext: зашифрованный приватный ключ
  • cipherparams.iv: вектор инициализации
  • kdf: обычно bcrypt
  • kdfparams.salt, kdfparams.cost, kdfparams.dklen
  • mac: контрольная сумма для проверки пароля

Если структура сильно отличается, режим Ethereum keystore может не сработать. В таком случае потребуется custom-скрипт или другая версия btcrecover.

6. Базовый запуск btcrecover

Подготовьте файл passwords.txt — по одному вероятному паролю на строку. Затем выполните команду:

python btcrecover.py --ethereum-keystore cosmos_keystore.json --passwordlist passwords.txt --threads 8

Где --threads 8 означает использование восьми потоков CPU. Укажите число, близкое к количеству ядер вашего процессора. Если btcrecover сообщает о неподдерживаемом формате, проверьте доступные опции через python btcrecover.py --help и убедитесь, что используется актуальная версия инструмента.

7. Стратегии перебора пароля

Успех восстановления зависит от энтропии исходного пароля и качества словаря.

Практичные подходы:

  • Словарь: добавьте старые пароли, их варианты с заглавными буквами, цифрами и символами.
  • Личные данные: имена, даты, клички, названия проектов, номера, годы.
  • Токены: используйте --tokenlist tokens.txt, чтобы комбинировать фрагменты. Например: Cosmos, atom, gaia, wallet, 2021, !, _.
  • Опечатки: btcrecover умеет учитывать typos. Начните с --typos 1 или --typos 2, затем добавляйте --typos-case, --max-typos и другие опции.
  • Bcrypt cost: при cost 12 перебор идёт медленно. GPU не поддерживается, поэтому важны мощный CPU и разумное ограничение вариантов.
  • Автосохранение: добавьте --autosave progress.txt, чтобы продолжить с места остановки.

Для сложного случайного пароля полный brute force может быть нереалистичен. В таком случае btcrecover эффективен только при наличии хороших гипотез.

8. Пример пошагового сценария

Cosmos SDK keyring

  1. Скопируйте .info-файл Cosmos в офлайн-папку.
  2. Извлеките crypto: jq '.value.crypto' key.info > cosmos_keystore.json.
  3. Создайте passwords.txt с 50–100 наиболее вероятными паролями.
  4. Запустите: python btcrecover.py --ethereum-keystore cosmos_keystore.json --passwordlist passwords.txt --threads 8 --autosave progress.txt.
  5. Если пароль не найден, расширьте словарь, добавьте tokenlist и опции typos.
  6. При успехе btcrecover выведет найденный пароль. Сначала проверьте его на копии файла, не на оригинале.

9. Проверка пароля и доступ к средствам

После того как пароль найден, проверьте его через CLI Cosmos или через интерфейс кошелька. Например, можно попробовать открыть ключ командой gaiad keys show <name> --keyring-backend file и ввести найденный пароль.

Если доступ получен:

  • Немедленно экспортируйте мнемонику или приватный ключ в офлайн-хранилище.
  • Создайте новый кошелёк с новой seed-фразой.
  • Переведите все активы на новый адрес.
  • Удалите временные файлы, словари, логи и копии keyring.

10. Если btcrecover не помог

Проверьте следующие моменты:

  • Файл не повреждён и содержит полный объект crypto.
  • Формат действительно совместим с Ethereum keystore.
  • Используется актуальная версия btcrecover.
  • Словарь и токены достаточно реалистичны.
  • Пароль не был слишком длинным и случайным.

Для нестандартных форматов может понадобиться собственный валидатор: он должен вычислять bcrypt, AES-128-CTR и MAC, а затем сравнивать результат. Используйте только проверенные open-source решения. Не доверяйте онлайн-сервисам, которые обещают взлом кошелька за деньги.

Заключение

btcrecover может помочь восстановить пароль от Cosmos-кошелька, если keyring использует Ethereum-совместимый формат и у вас есть зашифрованный файл ключа. Метод требует офлайн-среды, резервных копий и реалистичных гипотез о пароле. После восстановления доступа обязательно перенесите средства на новый кошелёк и больше не используйте старый пароль.