xmr.club
EN 中文 ES RU
← все гайды
гайд · разбор

Как проверить бинарь кошелька до запуска

Подменённый бинарь кошелька — один из самых опасных сценариев для self-custody: одна замена скачивания — и все ключи, которые сгенерирует кошелёк, утекут. Защита — проверка подписи; почти у всех кошельков Monero инструменты для этого уже встроены. Ниже — рабочий пошаговый процесс.

Почему это важно

Бинари кошельков распространяются статически (GitHub releases, сайт проекта, зеркала). Каждая точка распространения — мишень. Компрометация CDN, hijack DNS и (в отдельных юрисдикциях) принудительная подпись наблюдались на практике. Защита — проверка бинаря против отдельно вам известной подписи, обычно GPG-ключа мейнтейнера.

Минимальная проверка (для любого кошелька)

  1. Скачайте бинарь вместе с публикуемым рядом файлом SHA256SUMS или hashes.txt.
  2. Локально посчитайте хеш: sha256sum monero-wallet-cli (Linux/macOS) или Get-FileHash (PowerShell).
  3. Сравните локальный хеш со строкой в опубликованном файле. Совпадение = файл бит-в-бит идентичен опубликованному проектом.

Это ловит подмену через CDN и порчу в транзите. Не ловит скомпрометированный ключ проекта — для этого шаг 2.

Проверка GPG-подписи (реальная защита)

  1. Импортируйте GPG-ключ мейнтейнера из источника, отличного от загрузки — keyserver, личный сайт мейнтейнера или fingerprint, опубликованный в коммите многолетней давности. Не импортируйте с того же домена, что отдавал бинарь.
  2. Проверьте подпись SHA256SUMS: gpg --verify SHA256SUMS.sig SHA256SUMS. Должно быть «Good signature from <maintainer>» с ожидаемым fingerprint.
  3. Проверьте цепочку доверия: убедитесь, что тот же fingerprint использовался в прошлых релизах. Подписи web-of-trust от знакомых лично людей усиливают это.
  4. Теперь делайте сверку хеша из шага 1.

Воспроизводимая сборка — золотой стандарт

Некоторые проекты экосистемы Monero (сам Monero CLI, Feather Wallet) публикуют инструкции по воспроизводимой сборке. Вы собираете из исходников у себя — итоговый бинарь бит-в-бит совпадает с опубликованным. Если не совпадает, либо ваш build-окружение не то, либо релиз проекта подменён. Самая строгая защита — см. reproducible-builds.org.

Режимы отказа по типу кошелька

  • Мобильные кошельки: app-store подписи заменяют GPG-верификацию. Вы доверяете Apple/Google + аккаунту разработчика. Менее строгая, но всё же значимая защита. Сверьте имя аккаунта-публикатора с тем, что документирует проект.
  • Web-кошельки: проверить нельзя — код доставляется заново при каждой загрузке страницы. Не держите там сумм, потерю которых заметите.
  • "Портативные" загрузки через Telegram / Discord: никогда. Бинари — только с канонического домена проекта, не из чат-ссылок.
  • Пре-компилированные в "удобном" репо: если владелец репо сам не публикует подписи — считайте, что не верифицировано, и качайте с канонического источника.

Статус кошельков, которые мы рекомендуем

  • Monero GUI / CLI: SHA256SUMS + GPG-подпись от binaryFate (давний fingerprint). Воспроизводимая сборка документирована.
  • Feather Wallet: SHA256SUMS + GPG-подпись от tobtoht. Воспроизводимая сборка документирована.
  • Cake Wallet: мобайл, полагается на подпись app-store. Десктоп-билды несут checksums.
  • Monerujo: Android, F-Droid + Play Store, оба подписаны. SHA256 APK опубликован.

Picks

  • Monero GUI — Официальный десктоп. GPG-подпись, воспроизводимая сборка документирована.
  • Feather — Десктоп XMR-кошелёк. GPG-подпись, воспроизводимая сборка документирована.
  • Monerujo — Android. F-Droid + Play Store, оба подписаны. SHA256 APK опубликован.
  • Cake Wallet — Мобайл (подпись app-store). Десктоп-сборки несут SHA256 checksums.