Безопасность

Безопасность и некастодиальная модель

Эта страница описывает, что NextCryptoPay может и чего не может сделать с деньгами, как это закреплено в коде, а не обещано словами, и что вы потеряете в худшем случае. Она написана так, чтобы её можно было проверить, а не принять на веру.

Что платформа технически способна делать

  • Выводить адреса приёма из предоставленного вами публичного ключа и показывать их на странице оплаты.
  • Читать публичные данные блокчейна и определять, что счёт оплачен.
  • Уведомлять ваш сервер подписанным вебхуком и фиксировать состояние заказа в собственной базе данных.
  • Она НЕ может переместить, заморозить, отменить или вернуть платёж, потому что не владеет ни одним ключом, способным подписать блокчейн-транзакцию. Это свойство архитектуры, а не политика, которую мы обещаем соблюдать.

Почему мы не можем забрать ваши деньги — механизм

Платёжный процессор может двигать средства только если владеет ключом, способным подписывать транзакции. У нас нет ни одного. Настраивая кошелёк, вы передаёте нам либо адрес приёма, либо расширенный публичный ключ (xpub). И то и другое — публичные данные. Из xpub выводятся адреса приёма, но математически из него невозможно получить приватные ключи, необходимые для траты с этих адресов. Наши воркеры обращаются только к блокчейн-эндпоинтам на чтение — к тем же публичным данным, что стоят за Tronscan, BscScan и mempool.space, — и ни один путь исполнения в платформе не собирает, не подписывает и не отправляет транзакцию, тратящую средства продавца.

Закреплено в коде, а не просто заявлено здесь

  • Эндпоинт настройки кошелька отклоняет любой расширенный ключ, содержащий приватную часть: вставленный xprv будет отклонён, а не сохранён.
  • Собственный комиссионный кошелёк платформы подчиняется тому же правилу во всех окружениях: сервис отказывается запускаться, если этот кошелёк задан приватным ключом вместо публичного ключа «только для наблюдения».
  • В продакшене стартовая проверка дополнительно прерывает процесс, если любая переменная окружения содержит приватный ключ, мнемонику или сид-фразу.
  • Ончейн-воркеры используют только адаптеры данных на чтение. В платформе нет кода подписания или отправки транзакций.
  • Автоматический тест подтверждает, что обе точки ввода ключей отклоняют приватные ключи, поэтому инвариант нельзя тихо убрать в будущем релизе. А пометка заказа как возвращённого в панели меняет запись в базе данных — она не двигает и не может двигать монеты.

Единственное исключение, прямым текстом

Есть ровно одно место, где NextCryptoPay получает USDT, и это не деньги ваших клиентов: предоплаченный баланс, который вы пополняете для оплаты нашей комиссии платформы. Это наша выручка, оплаченная вами заранее, и она полностью отделена от платёжного потока между вами и вашим клиентом. Комиссионный кошелёк в нашей инфраструктуре тоже настроен «только для наблюдения» — именно поэтому сервис отказывается запускаться, если для него указан приватный ключ. Мы предпочитаем назвать это исключение сами, а не позволить вам обнаружить его и гадать, что ещё мы умолчали.

Смотреть текущую комиссию на странице тарифов →

Что получит атакующий, если наши серверы взломают

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

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

Возьмите настроенный вами адрес кошелька и найдите его в публичном блок-эксплорере: Tronscan для TRC-20, BscScan для BEP-20, Etherscan для ERC-20, mempool.space для Bitcoin. Вы увидите, что платёж приходит с адреса вашего клиента прямо на ваш, без промежуточных переходов. Если бы на этом пути когда-нибудь появился адрес, который контролируем мы, он был бы виден прямо там. Его там нет.

Обратная сторона — чего мы не можем сделать для вас

  • Мы не можем отменить или вернуть платёж. Ончейн-транзакции окончательны. Возврат вы отправляете сами, из собственного кошелька; наша панель лишь фиксирует, что вы это сделали.
  • Мы не можем вернуть средства, отправленные на неверный адрес. Если настроенный вами адрес кошелька неправильный, платежи уйдут на него и пропадут. Проверяйте адрес и сначала тестируйте небольшой суммой.
  • Мы не можем восстановить ваш кошелёк. У нас никогда не было ваших ключей. Если вы их потеряли, мы не поможем — ни через поддержку, ни в порядке исключения.
  • Мы не можем заморозить или изъять средства, в том числе по вашей просьбе или по требованию третьей стороны. У нас нет такой возможности.

Об аудитах и об анонимности — честно

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

Сообщить о проблеме безопасности

Присылайте находки на [email protected] или смотрите нашу политику приёма сообщений ниже. Мы подтверждаем получение и держим вас в курсе исправления. Пожалуйста, не проводите тесты на реальных счетах продавцов и на чужих платежах.

/.well-known/security.txt