Пересылка оригинального заголовка ‘大白话讲解Web3签名钓鱼底层逻辑“授权钓鱼、Permit与Permit2的区别’
«Почему я потерял деньги, просто подписав свое имя??» «Фишинг подписи» в настоящее время становится любимым методом фишинга для хакеров в Web3. Недавно я видел множество экспертов, таких как Cosine, различные кошельки и компании безопасности, непрерывно продвигающие и просвещающие в области знаний о фишинге подписей. Но все равно многие люди попадаются на удочку каждый день.
Одной из причин, по мнению Spinach, является то, что большинство людей не понимают основной логики обмена кошельков, и для тех, кто не разбирается в технике, кривая обучения слишком высока. Поэтому Spinach решил создать иллюстрированную версию, чтобы просветить людей о базовой логике фишинга по подписи и попытаться сделать ее понятной даже для непрофессионалов в области технологий.
Сначала нам нужно понять, что при использовании кошелька существует только два типа операций: «подписание» и «обмен». Самое простое и прямое понимание: подписание происходит вне блокчейна (вне цепи блоков) и не требует расходования комиссии за газ; обмен происходит на блокчейне (в цепи блоков) и требует расходования комиссии за газ.
Обычный сценарий подписания заключается в проверке вашей личности, например, при входе в кошелек. Например, если вы хотите обменять токены на Uniswap, вам сначала нужно подключить свой кошелек. На этом этапе вам нужно подписать сообщение, чтобы сказать веб-сайту: "Я - владелец этого кошелька", и затем вы сможете использовать Uniswap. Этот шаг не вызывает изменений данных или состояния на блокчейне, поэтому не требует затрат средств.
Что касается обмена, когда вы действительно хотите обменять токены на Uniswap, вам нужно потратить немного денег, чтобы сообщить смарт-контракту Uniswap: «Я хочу обменять 100 USDT на монету Spinach, и я разрешаю вам переместить мои 100 USDT». Этот шаг называется подтверждением. Затем вам нужно потратить еще немного денег, чтобы сообщить смарт-контракту Uniswap: «Я готов обменять 100 USDT на монету Spinach, вы можете продолжать операцию сейчас». После этого вы завершили операцию обмена 100 USDT на монету Spinach.
После простого понимания разницы между подписями и свопами давайте познакомимся с принципом фишинга. Фишинг обычно включает в себя три различных метода: Фишинг авторизации, Фишинг разрешения подписи и Фишинг разрешения2 подписи. Эти три метода являются очень распространенными приемами фишинга.
Давайте начнем с Фишинга Авторизации, который является одной из классических техник фишинга в Web3. Как следует из названия, он эксплуатирует механизм авторизации (approve). Как видно на примере Uniswap, авторизация позволяет смарт-контракту «разрешить вам переместить xxx количество моих токенов». Хакер может создать фальшивый фишинговый веб-сайт, замаскированный под проект NFT с привлекательным интерфейсом. В середине веб-сайта есть красивая большая кнопка с надписью «Получите свой Airdrop». При нажатии появляется кошелек с запросом авторизации ваших токенов на адрес хакера. Если вы это подтвердите, поздравляю, хакер успешно выполнил KPI.
Но у Фишинга авторизации есть проблема: поскольку для него требуются комиссионные сборы Gas, многие люди осторожны, когда речь идет о расходах. После перехода на подозрительный веб-сайт люди часто быстро замечают, что что-то не так, что относительно легко предотвратить.
Теперь перейдем к сегодняшнему фокусу: Фишинг подписей Permit и Permit2, которые являются горячими точками в области безопасности активов Web3. Почему их так сложно защищать? Это потому, что каждый раз, когда вы хотите использовать Dapp, вам нужно войти в свой кошелек. Многие люди развили инерцию в своем мышлении: "Эта операция безопасна." Кроме того, она не требует затрат денег, и большинство людей не понимают последствий каждой подписи.
Давайте сначала посмотрим на механизм Permit. Разрешение — это расширенная функция для авторизации в соответствии со стандартом ERC-20. Например, USDT, который мы обычно используем, является токеном ERC-20. Проще говоря, Permit позволяет вам подписывать и одобрять другим людям перемещение ваших токенов. Мы знаем, что авторизация (Approve) — это когда вы тратите деньги на то, чтобы сказать смарт-контракту: «Вы можете переместить xxx количество моих токенов». Таким образом, Permit - это все равно, что подписать кому-то "записку", в которой говорится: "Я разрешаю кому-то переместить xxx количество моих Токенов". Затем этот человек предъявляет эту «записку» смарт-контракту и платит комиссию за газ, сообщая смарт-контракту: «Он позволяет мне переместить xxx количество его токенов». Затем ваши токены могут быть переданы кем-то другим. В этом процессе вы просто подписываете имя, но за ним означает, что вы позволяете другим вызывать авторизацию (Approve) и передавать ваши токены. Хакер может создать фишинговый веб-сайт, заменив кнопку входа в кошелек кнопкой «Разрешить фишинг», что упрощает выудывание ваших активов.
Итак, что такое Permit2? Permit2 на самом деле не является функцией ERC-20, а функцией, запущенной Uniswap для удобства пользователей. В предыдущем примере говорилось, что если вы хотите обменять USDT на монеты шпината на Uniswap, вам нужно один раз разрешить (Approve), а затем обменять. , что требует двух комиссий за газ, поэтому Uniswap придумал способ: «Вы сразу разрешаете мне все квоты, и каждый раз, когда вы их погашаете, вы подписываете свое имя, и я это сделаю за вас». Эта функция помогает пользователям Uniswap. Вам нужно оплатить только один раз комиссию за газ при ее использовании, и этот шаг - подписание, поэтому комиссия за газ фактически не оплачивается вами, а оплачивается контрактом Permit2, но она будет вычтена из Токена, который вы в конечном итоге погашаете.
Однако условие для рыболовства Permit2 заключается в том, что вы должны были ранее использовать Uniswap и разрешить неограниченное разрешение на умный контракт Permit2. Поскольку действие по умолчанию Uniswap в настоящее время заключается в предоставлении неограниченного разрешения, количество пользователей, которые удовлетворяют этому условию, довольно велико. Точно так же, как только хакер обманет вас, подписав Permit2, он может передать ваши токены (ограниченные теми, на которые вы ранее дали разрешение).
В общем, суть фишинга авторизации заключается в том, что вы тратите деньги, чтобы сказать смарт-контракту: «Я одобряю вас переместить мои токены хакеру». Суть фишинга подписи заключается в том, что вы подписываете «заметку», разрешающую другим перемещать ваши активы хакеру, а хакер тратит деньги, чтобы сказать смарт-контракту: «Я хочу переместить его токены к себе». Permit и Permit2 в настоящее время являются точками фокуса для фишинга подписей. Permit - это функция расширения авторизации ERC-20, а Permit2 - новая функция, введенная Uniswap.
Итак, как можно предотвратить эти атаки фишинга, как только вы понимаете принципы?
Развивать осведомленность о безопасности:Важно всегда проверять, какую операцию вы выполняете каждый раз, когда взаимодействуете со своим кошельком.
Отдельные крупные средства и кошельки для онлайн-транзакций:** Разделяя крупные средства от кошельков, используемых для онлайн-транзакций, вы можете минимизировать потери в случае попадания жертвой фишинга.
Научитесь определять форматы подписи Permit и Permit2:** Будьте осторожны, встретив следующие форматы подписи:
Интерактивный: URL свопа
Владелец: Адрес авторизатора
Получатель: Адрес авторизованной стороны
Значение: Уполномоченное количество
Nonce: Случайное число
Срок истечения: Время истечения
Mời người khác bỏ phiếu
Nội dung
Пересылка оригинального заголовка ‘大白话讲解Web3签名钓鱼底层逻辑“授权钓鱼、Permit与Permit2的区别’
«Почему я потерял деньги, просто подписав свое имя??» «Фишинг подписи» в настоящее время становится любимым методом фишинга для хакеров в Web3. Недавно я видел множество экспертов, таких как Cosine, различные кошельки и компании безопасности, непрерывно продвигающие и просвещающие в области знаний о фишинге подписей. Но все равно многие люди попадаются на удочку каждый день.
Одной из причин, по мнению Spinach, является то, что большинство людей не понимают основной логики обмена кошельков, и для тех, кто не разбирается в технике, кривая обучения слишком высока. Поэтому Spinach решил создать иллюстрированную версию, чтобы просветить людей о базовой логике фишинга по подписи и попытаться сделать ее понятной даже для непрофессионалов в области технологий.
Сначала нам нужно понять, что при использовании кошелька существует только два типа операций: «подписание» и «обмен». Самое простое и прямое понимание: подписание происходит вне блокчейна (вне цепи блоков) и не требует расходования комиссии за газ; обмен происходит на блокчейне (в цепи блоков) и требует расходования комиссии за газ.
Обычный сценарий подписания заключается в проверке вашей личности, например, при входе в кошелек. Например, если вы хотите обменять токены на Uniswap, вам сначала нужно подключить свой кошелек. На этом этапе вам нужно подписать сообщение, чтобы сказать веб-сайту: "Я - владелец этого кошелька", и затем вы сможете использовать Uniswap. Этот шаг не вызывает изменений данных или состояния на блокчейне, поэтому не требует затрат средств.
Что касается обмена, когда вы действительно хотите обменять токены на Uniswap, вам нужно потратить немного денег, чтобы сообщить смарт-контракту Uniswap: «Я хочу обменять 100 USDT на монету Spinach, и я разрешаю вам переместить мои 100 USDT». Этот шаг называется подтверждением. Затем вам нужно потратить еще немного денег, чтобы сообщить смарт-контракту Uniswap: «Я готов обменять 100 USDT на монету Spinach, вы можете продолжать операцию сейчас». После этого вы завершили операцию обмена 100 USDT на монету Spinach.
После простого понимания разницы между подписями и свопами давайте познакомимся с принципом фишинга. Фишинг обычно включает в себя три различных метода: Фишинг авторизации, Фишинг разрешения подписи и Фишинг разрешения2 подписи. Эти три метода являются очень распространенными приемами фишинга.
Давайте начнем с Фишинга Авторизации, который является одной из классических техник фишинга в Web3. Как следует из названия, он эксплуатирует механизм авторизации (approve). Как видно на примере Uniswap, авторизация позволяет смарт-контракту «разрешить вам переместить xxx количество моих токенов». Хакер может создать фальшивый фишинговый веб-сайт, замаскированный под проект NFT с привлекательным интерфейсом. В середине веб-сайта есть красивая большая кнопка с надписью «Получите свой Airdrop». При нажатии появляется кошелек с запросом авторизации ваших токенов на адрес хакера. Если вы это подтвердите, поздравляю, хакер успешно выполнил KPI.
Но у Фишинга авторизации есть проблема: поскольку для него требуются комиссионные сборы Gas, многие люди осторожны, когда речь идет о расходах. После перехода на подозрительный веб-сайт люди часто быстро замечают, что что-то не так, что относительно легко предотвратить.
Теперь перейдем к сегодняшнему фокусу: Фишинг подписей Permit и Permit2, которые являются горячими точками в области безопасности активов Web3. Почему их так сложно защищать? Это потому, что каждый раз, когда вы хотите использовать Dapp, вам нужно войти в свой кошелек. Многие люди развили инерцию в своем мышлении: "Эта операция безопасна." Кроме того, она не требует затрат денег, и большинство людей не понимают последствий каждой подписи.
Давайте сначала посмотрим на механизм Permit. Разрешение — это расширенная функция для авторизации в соответствии со стандартом ERC-20. Например, USDT, который мы обычно используем, является токеном ERC-20. Проще говоря, Permit позволяет вам подписывать и одобрять другим людям перемещение ваших токенов. Мы знаем, что авторизация (Approve) — это когда вы тратите деньги на то, чтобы сказать смарт-контракту: «Вы можете переместить xxx количество моих токенов». Таким образом, Permit - это все равно, что подписать кому-то "записку", в которой говорится: "Я разрешаю кому-то переместить xxx количество моих Токенов". Затем этот человек предъявляет эту «записку» смарт-контракту и платит комиссию за газ, сообщая смарт-контракту: «Он позволяет мне переместить xxx количество его токенов». Затем ваши токены могут быть переданы кем-то другим. В этом процессе вы просто подписываете имя, но за ним означает, что вы позволяете другим вызывать авторизацию (Approve) и передавать ваши токены. Хакер может создать фишинговый веб-сайт, заменив кнопку входа в кошелек кнопкой «Разрешить фишинг», что упрощает выудывание ваших активов.
Итак, что такое Permit2? Permit2 на самом деле не является функцией ERC-20, а функцией, запущенной Uniswap для удобства пользователей. В предыдущем примере говорилось, что если вы хотите обменять USDT на монеты шпината на Uniswap, вам нужно один раз разрешить (Approve), а затем обменять. , что требует двух комиссий за газ, поэтому Uniswap придумал способ: «Вы сразу разрешаете мне все квоты, и каждый раз, когда вы их погашаете, вы подписываете свое имя, и я это сделаю за вас». Эта функция помогает пользователям Uniswap. Вам нужно оплатить только один раз комиссию за газ при ее использовании, и этот шаг - подписание, поэтому комиссия за газ фактически не оплачивается вами, а оплачивается контрактом Permit2, но она будет вычтена из Токена, который вы в конечном итоге погашаете.
Однако условие для рыболовства Permit2 заключается в том, что вы должны были ранее использовать Uniswap и разрешить неограниченное разрешение на умный контракт Permit2. Поскольку действие по умолчанию Uniswap в настоящее время заключается в предоставлении неограниченного разрешения, количество пользователей, которые удовлетворяют этому условию, довольно велико. Точно так же, как только хакер обманет вас, подписав Permit2, он может передать ваши токены (ограниченные теми, на которые вы ранее дали разрешение).
В общем, суть фишинга авторизации заключается в том, что вы тратите деньги, чтобы сказать смарт-контракту: «Я одобряю вас переместить мои токены хакеру». Суть фишинга подписи заключается в том, что вы подписываете «заметку», разрешающую другим перемещать ваши активы хакеру, а хакер тратит деньги, чтобы сказать смарт-контракту: «Я хочу переместить его токены к себе». Permit и Permit2 в настоящее время являются точками фокуса для фишинга подписей. Permit - это функция расширения авторизации ERC-20, а Permit2 - новая функция, введенная Uniswap.
Итак, как можно предотвратить эти атаки фишинга, как только вы понимаете принципы?
Развивать осведомленность о безопасности:Важно всегда проверять, какую операцию вы выполняете каждый раз, когда взаимодействуете со своим кошельком.
Отдельные крупные средства и кошельки для онлайн-транзакций:** Разделяя крупные средства от кошельков, используемых для онлайн-транзакций, вы можете минимизировать потери в случае попадания жертвой фишинга.
Научитесь определять форматы подписи Permit и Permit2:** Будьте осторожны, встретив следующие форматы подписи:
Интерактивный: URL свопа
Владелец: Адрес авторизатора
Получатель: Адрес авторизованной стороны
Значение: Уполномоченное количество
Nonce: Случайное число
Срок истечения: Время истечения