Как Moonvex защищает ваши деньги

Платёжный сервис отвечает за чужие деньги, поэтому защита заложена в архитектуру, а не добавлена сверху. Здесь описано, что именно защищает средства и данные мерчантов и что вы можете включить со своей стороны.

Обновлено: 12 ноября 2026

Ключи кошельков хранятся отдельно

Приватные ключи никогда не попадают на серверы, которые обрабатывают запросы из интернета. Ключи создаются и хранятся только в отдельном сервисе подписи. Он не принимает входящих подключений из интернета, а ключи в нём зашифрованы AES-256-GCM ключом из Vault, который работает на отдельном сервере.

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

Сервис подписи проверяет каждую операцию сам

Даже если бы кто-то получил доступ к основному серверу, сервис подписи не подпишет произвольную транзакцию. Он независимо проверяет каждый запрос:

  • лимиты на одну операцию, в час и в сутки по каждой монете;
  • сбор средств с адресов платежей разрешён только на собственный кошелёк сервиса;
  • монеты без настроенных лимитов не подписываются вообще;
  • каждый запрос подписывается не более одного раза и записывается в журнал вместе с решением;
  • подпись можно мгновенно заморозить для всего сервиса или одного кошелька.

Платёж засчитывается только после двойной проверки

Moonvex подключён к нескольким независимым провайдерам узлов в каждой сети. Платёж засчитывается, только когда транзакцию подтвердили два разных провайдера. Сбой или подмена данных у одного провайдера не может зачислить несуществующие деньги.

Каждый перевод в блокчейне учитывается ровно один раз: это гарантирует уникальный ключ в базе данных, а не только код приложения.

Учёт по двойной записи

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

Сервис регулярно сверяет учёт с реальными балансами кошельков в блокчейне. Расхождения попадают в отдельную очередь и разбираются вручную.

Выплаты: 2FA и лимиты

  • каждая выплата из кабинета или Telegram-бота подтверждается одноразовым кодом из приложения 2FA;
  • код нельзя использовать повторно, число попыток ограничено;
  • на выплаты действуют лимиты на одну операцию и в сутки, так что даже при утечке пароля нельзя быстро вывести весь баланс;
  • выплата по API требует идемпотентного ключа, поэтому повтор запроса после таймаута не создаст вторую выплату.

Защита аккаунта

  • пароли хранятся только в виде хеша argon2id;
  • двухфакторная аутентификация (TOTP) в кабинете, секреты 2FA зашифрованы;
  • блокировка после серии неудачных входов, ограничение частоты запросов;
  • роли в команде: владелец, разработчик, бухгалтер, наблюдатель. Каждый видит и делает только своё;
  • ключи API хранятся в виде хеша, у них есть права доступа, срок действия, отзыв и белый список IP.

Подписанные уведомления

Каждый webhook подписан HMAC-SHA256 с отметкой времени. Ваш сервер может проверить, что уведомление пришло от Moonvex и не было изменено или повторено. Доставка повторяется до трёх суток, журнал отправок виден в кабинете.

Webhooks отправляются только на адреса https. Внутренние и служебные адреса блокируются после разрешения DNS, переадресации не выполняются: через настройку webhook нельзя атаковать внутреннюю сеть.

Журнал аудита

Действия администраторов — изменения комиссий, лимитов, заморозки, выплаты — записываются в журнал, каждая запись которого связана с предыдущей хешем SHA-256. Удалить или тихо изменить запись задним числом нельзя: цепочка перестанет сходиться. Доступ к панели администратора разрешён только с доверенных сетей и требует 2FA.

Что можете сделать вы

  • включите 2FA в кабинете — без неё нельзя выводить средства;
  • всегда проверяйте подпись webhook и не засчитывайте заказ по одному только редиректу клиента;
  • храните секретный ключ API только на сервере, не в коде сайта или мобильного приложения;
  • ограничьте ключ API своими IP-адресами;
  • выдавайте сотрудникам минимально нужные роли.

Нашли уязвимость?

Напишите нам до публичного раскрытия и опишите, как воспроизвести проблему. Не обращайтесь к чужим данным и не нарушайте работу сервиса при проверке. Мы ответим, исправим проблему и сообщим, когда исправление будет выпущено. Контакт указан в файле /.well-known/security.txt.

Связаться с нами

Вопросы по безопасности и сообщения об уязвимостях: [email protected]. Отвечаем на каждое сообщение.

Правила сервиса →

Проверьте сами

Зарегистрируйтесь, примите тестовый платёж на 1 USDT и выведите его себе — это займёт около десяти минут.

Создать аккаунт