Материал проверен 10 ноября 2026?
БК

ГЛАВНАЯ / ИНСТРУКЦИИ / SIWE (EIP-4361): КАК ПРОВЕРИТЬ СООБЩЕНИЕ ДЛЯ ВХОДА ЧЕРЕЗ ETHEREUM

SIWE (EIP-4361): как проверить сообщение для входа через Ethereum

Sign-In with Ethereum (SIWE, EIP-4361) – стандартный текстовый формат сообщения, которым приложение может попросить подтвердить владение Ethereum-аккаунтом для off-chain входа. Перед подписью кошелёк должен показать содержание, а пользователь – проверить сайт, адрес, сеть, назначение и ограничения по времени. После этого сервер всё равно обязан проверить формат, одноразовый nonce и подпись. SIWE не является ончейн-переводом, но результат входа может открыть доступ к аккаунту сайта.

Структура SIWE

Поля сообщают, кто, что и для какой сети подписывает

Стандартный SIWE message начинается с домена и фразы о входе, затем содержит Ethereum-адрес. Дальше идут URI, Version, Chain ID, Nonce и Issued At. Statement может объяснять цель простым текстом; Expiration Time, Not Before, Request ID и Resources являются дополнительными полями.

Обязательные поля важны совместно. Domain связывает запрос с сайтом, URI задаёт ресурс, address указывает аккаунт, Chain ID ограничивает сеть, а nonce защищает от повторного использования. Version для этой схемы равна 1. Само наличие правильных названий полей ещё не удостоверяет сайт; сравнивайте их значения с реальным адресом страницы и ожидаемым действием.

  • domain и URI сопоставлены с origin
  • Chain ID соответствует сценарию
  • statement прочитан целиком
ПолеЧто проверитьЕсли не совпало
DomainТекущий сайт и originОтказать
AddressВыбранный аккаунтПереключить или отказаться
URIРесурс авторизацииПроверить полный адрес
Chain IDОжидаемая сетьУточнить, зачем она нужна
Nonce / Issued AtСвежесть и одноразовостьНе подписывать старый запрос
Смысл подписи

Вход в сайт отличается от транзакции, но подпись всё равно имеет последствия

Обычная SIWE-подпись использует персональное сообщение и не отправляет транзакцию в блокчейн, поэтому сама по себе не перемещает монеты и не создаёт расход газа. Сервис проверяет подпись вне сети и может создать web session, связав её с адресом. Такая авторизация способна открыть приватные данные, настройки или функции сайта.

Проверяйте каждую строку текста. Если сообщение содержит неизвестные Resources, права, срок или просьбу подписать не вход, остановитесь. Некоторые кошельки показывают structured message, другие – текст по-разному; не соглашайтесь на нечитаемые данные только потому, что сайт называет действие «login». Проверяйте, что метод кошелька действительно подписывает сообщение, а не отправляет транзакцию.

  • message signing отличён от транзакции
  • проверены resources и intent
  • вход не приравнен к безопасности dApp
Nonce и время

Одноразовый nonce защищает от повтора украденной подписи

Nonce обычно выдаёт сторона, которая проверяет вход, и принимает его однократно. По спецификации он должен содержать не менее восьми буквенно-цифровых символов. Старое сообщение, уже использованный nonce или неожиданная дата Issued At – причина не подписывать запрос и запросить новый вход только с доверенного сайта.

Expiration Time ограничивает срок действия; Not Before задаёт момент, раньше которого сообщение не должно приниматься. Эти поля не заменяют nonce и серверную проверку. Сверяйте дату и временную зону, а при отсутствии ожидаемых ограничений решайте, соответствует ли это назначению и политике сайта.

  • nonce свежий и одноразовый
  • Issued At и срок проверены
  • nonce не заменён timestamp
Проверка сервером

Сервер проверяет сообщение и подпись, а не только адрес аккаунта

После подписи сервер разбирает сообщение по формату EIP-4361, проверяет ожидаемые domain и URI, chain ID, nonce, время действия и криптографическую подпись. Nonce нельзя принимать повторно: иначе ранее перехваченную подпись могут повторно использовать для входа. Для contract wallet проверка подписи зависит от состояния и реализации аккаунта в указанной сети.

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

  • сервер сверяет ожидаемые поля
  • подпись криптографически проверяется
  • replay не допускается
Красные флаги

Откажитесь при чужом домене, непонятной цели или неожиданном формате

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

Успешный SIWE-вход не подтверждает безопасность самого dApp и не выдаёт права на конкретный токен в блокчейне. Отдельно проверяйте Web3-соединения, transaction requests и allowances. Если не можете объяснить подпись простыми словами, отклоните её и начните с адреса сайта, который нашли самостоятельно.

  • чужой origin приводит к отказу
  • непонятные resources не подписаны
  • транзакция не названа SIWE
FAQ

Частые вопросы

SIWE отправляет транзакцию?

Стандартный SIWE – off-chain текстовая подпись для аутентификации. Она не является on-chain переводом, хотя может создать авторизованную сессию сайта.

Что главное в сообщении?

Проверьте domain, address, URI, Version, Chain ID, Nonce и Issued At, затем прочитайте statement и дополнительные поля.

Зачем нужен nonce?

Он снижает риск повторного использования перехваченной подписи; сервер должен принимать его однократно.

Подпись SIWE выдаёт токену allowance?

Нет, не сама по себе. Token allowance устанавливается отдельной транзакцией, но любую подпись нужно читать целиком.

Почему кошелёк показывает странную сеть?

Chain ID определяет сеть, с которой связана аутентификация. Если она не ожидается, откажитесь и выясните причину у проверенного сайта.

Итоговая проверка

Чек-лист: siwe (eip-4361): как проверить сообщение для входа через ethereum

  • origin в адресной строке проверен;
  • domain в сообщении совпадает с ожидаемым сайтом;
  • address – нужный аккаунт;
  • URI ведёт на ожидаемый ресурс;
  • Chain ID соответствует сценарию входа;
  • nonce свежий и не повторялся;
  • statement и resources понятны;
  • неожиданная транзакция не принята за SIWE.

Материал подготовлен редакцией сайта и проверен 10 ноября 2026 года. Условия бирж, кошельков и блокчейн-сетей могут меняться. Перед операцией сверяйте данные в интерфейсе выбранного сервиса.