logo
logo
Menu
Подписи и подтверждения

БЕЗОПАСНОЕ ПОДПИСАНИЕ 101

4 минут

Доступно в:

Aug 1st, 2023 - 04:25 am

Translated By:
EpiphanyEpiphany
SHARE

Понимание подписи сообщения

Существует множество заблуждений относительно подписей. В этой статье я хочу рассмотреть четыре типа подписей сообщений, чтобы помочь пользователям понять риски, связанные с подписанием сообщений (также иногда называемым безгазовыми подписями) на Ethereum или других блокчейнах, совместимых с EVM.

Четыре типа подписей

Эти типы подписей абсолютно важны для понимания всеми Ethereum в web3.

Тип №1 - Доказательство идентичности (безопасная)

Именно для этого в основном используются подписи в web3. Хотя нет единого стандарта того, как они выглядят, некоторые общие вещи включают условия предоставления услуг, адрес вашего кошелька, иногда nonce для предотвращения атак повторного воспроизведения, и, возможно, короткую строку, чтобы убедиться, что сообщение, которое вы подписываете на программном кошельке, будет таким же и на аппаратном кошельке. Смотрите пару примеров ниже:

NormalSign2.png
NormalSign1.png

Тип №2 - Типизированная подпись [Взаимодействие с умным контрактом] (Будьте осторожны)

Часто некоторые части смарт-контрактов полагаются на подписи вне цепи, чтобы заставить вещи происходить. Эти типы подписей разбивают все входы, которые будут частью взаимодействия контракта. Это довольно удобно, но здесь, если у вас есть открытые одобрения, нужно быть осторожным. Как мы уже говорили в нашей статье об одобрениях, хотя вы можете точно сказать, что они делают в этом примере, вам нужно убедиться, что источник, из которого поступают такие запросы на подпись, является надежным.

Например, если вы получили изображенный на картинке запрос на одобрение подписи не из Opensea, вы должны быть очень обеспокоены и никогда не подписывать его. Это особенно верно, если вы используете адрес кошелька "Sell", о котором мы рассказывали в статье “Кошелек на все случаи жизни”.

Boringsec.png

Тип №3 - Обфусцированная шестнадцатеричная подпись (будьте предельно осторожны!)

Если что-то не имеет красиво напечатанной подписи в соответствии со стандартом EIP-712, это еще не значит, что это мошенничество. Однако это означает, что вы доверяете контрагенту, какое бы сообщение вы не подписывали, поскольку вы, по сути, подписываете сообщение “вслепую”.
Хотя в настоящее время мы не наблюдаем такого использования на Opensea в связи с модернизацией контракта Seaport, я бы все же сделал паузу перед подписанием такого рода сообщений, особенно если вы находитесь на адресе кошелька с открытыми одобрениями. Не уверены? Ознакомьтесь с нашей статьей об отзыве разрешений и посмотрите, какие разрешения у вас открыты на этом адресе кошелька!
 

signaturestuff.jpg

Тип № 4 - ETH_Sign - устаревший и немного страшный (опасный!)

Это очень опасный тип подписи, по сути, "чистый чек" Ethereum. Запросчик может использовать его для подписания любой транзакции с вашим приватным ключом. Хорошей новостью является то, что Metamask показывает большое красное предупреждение, если ее запрашивают. Она позволяет кому-то, если он правильно составит полезную нагрузку подписи, "переиграть" транзакцию в своих интересах, например, отправить себе ETH. Это не зависит от одобрения, как это делают украденные токены wETH, NFT и другие. Это единственный тип подписи, который подвержен такому риску, и его следует избегать любой ценой, поскольку сервисы редко используют его законно!

ML311.png

UPDATE: На основании наших отзывов и отзывов других участников сообщества, ETH_SIGN теперь отключен по умолчанию в Metamask
(но вы можете включить его в расширенных настройках, поэтому мы оставляем это здесь для полноты картины! Мы считаем это огромной победой в области UI/UX и упрощаем наши сообщения относительно подписей.


Дополнительные ресурсы

Мы понимаем, что упрощаем некоторые технические термины, поэтому прежде чем вы скажете: "Вы, ребята, используете неправильные слова для этого!", просто знайте, что мы пытаемся упростить структуру, чтобы сделать ее более понятной для всех! Ниже приведены дополнительные ресурсы и более технические объяснения подписей, типов подписей и их реализаций!

Больше информации о технических аспектах здесь:

Еще несколько полезных статей о подписях:

У вас есть вопросы или вы хотите узнать больше о безопасности web3 и быть в курсе самой актуальной информации о безопасности, мошенничестве и тактике? Присоединяйтесь к нам в нашем discord по адресу https://discord.gg/boringsecurity . BoringSecurityicon.png