Фактично, у більшості інцидентів крадіжки активів останні двері безпеки (авторизація підпису) охороняється самим користувачем, якщо користувач буде уважним і розуміє зміст підпису, він, швидше за все, зможе уникнути багатьох ризиків.

Отже, які існують типи підписів гаманців? Як визначити підозрілі операції? Далі автор коротко представить цей аспект.

Різниця між підписом і авторизацією

Перш за все, необхідно популяризувати різницю між підписом і авторизацією.

  • Простіше кажучи, підпис користувача схожий на підписання документа головою компанії. Це метод аутентифікації та дозволу. Усі взаємодії, будь то звичайна автентифікація особи, передача чи операції в Dapp, зрештою потребують нашої операції підпису для продовження. Під час фактичного використання гаманця, доки з’являється інтерфейс автентифікації (включно з підписом, підтвердженням тощо), програма шукає ваш підпис.

  • Авторизація (зокрема «Схвалити», «Дозволити» тощо) — це надання певних дозволів додатку (наприклад, перекази на суму менше 0,1 ETH можуть виконуватися від імені користувача), що є підмножиною підписів. Під час фактичного використання гаманця підпис може принести певну авторизацію, але авторизація має бути підписана користувачем. Варто зазначити, що авторизація призначена для покращення взаємодії з користувачем, але під час авторизації ви також повинні ретельно перевіряти авторизовані об’єкти та вміст, щоб запобігти крадіжці активів.

Особливо для користувачів, які тягнуть за волосся, щоб виконувати інтерактивні завдання, гаманець міг накопичити різні авторизації веб-сайтів. Безпечна пропозиція полягає в тому, щоб регулярно перевіряти авторизацію гаманця та скасовувати авторизацію деяких підозрілих або рідко використовуваних веб-сайтів, інакше наполегливі. волосся дибки. Номер бутику може бути весільною сукнею, пошитою для когось іншого.

Наразі Revoke є найпоширенішим веб-сайтом для перегляду та скасування авторизації гаманця.

https://revoke.cash

різні типи підписів

В Ethereum є три основні методи підпису: Personal_Sign, EIP712 Sign (eth_signTypedData) і Eth_Sign.

  • Personal_Sign

Personal_Sign є найпоширенішим методом підпису, який часто використовується для підтвердження особи та операцій входу на веб-сайті та в Dapp.

На малюнку нижче Personal_Sign, який використовується під час входу в Opensea, представлено як приклад.

1. Зверху – рахунок і баланс користувача, говорити особливо нічого;

2. Нижче наведено доменне ім’я Opensea. Багато користувачів іноді ігнорують цю інформацію, але варто перевірити, оскільки деякі фішингові веб-сайти підробляють той самий підпис під власним доменним іменем, щоб обдурити користувачів, тож чи є він у браузері. Незалежно від того, входите ви в Dapp або виконуєте подальші інтерактивні підписи в Dapp, вам потрібно перевірити, чи доменне ім’я правильне;

3. Унизу розміщено повідомлення. Усього є 6 елементів вмісту, включно з тими, що позначені на малюнку нижче: (1) Вітальне повідомлення (2) Контракт про відмову від відповідальності (3) Нагадування про те, що цей підпис не коштуватиме газу (4). ) Нагадування, що цей підпис дійсний. Адреса гаманця (6), підписана протягом 24 годин (5), доводить, що підпис є унікальним nonce.

Однак не всі повідомлення Personal_Sign програм можуть досягти рівня «те, що ви бачите, те й підписуєте», як Opensea. Деякі графіки програм легко написати й не такі повні, як Opensea, а деякі просто представляють рядок, який неможливо прочитати. користувачами (зазвичай відомий як «сліпий підпис»), навіть якщо немає проблем із безпекою, це може свідчити про те, що такий проект не звертає уваги на досвід користувача.

  • Знак EIP712(eth_signTypedData)

Підпис EIP712 є більш читабельним методом підпису, тому його часто використовують для підписів, пов’язаних із взаємодією контрактів, наприклад купівлею та продажем NFT, взаємодією обміну, голосуванням за управління тощо.

Як показано на малюнку нижче, верхня інформація схожа на Personal_Sign, включаючи обліковий запис, баланс і доменне ім’я. Різниця полягає в тому, що нижнє повідомлення не тільки читається, але й відображається відповідно до різних типів (Від, Гаманець, Кому, Сума, тощо), що дозволяє користувачам більше. Добре перевірити, чи вміст, який потрібно підписати, правильний.

Однак це не означає, що EIP712 Sign абсолютно безпечний, якщо користувач ніколи не читає вміст під час підписання, він буде марним, незалежно від того, наскільки він детальний. Як і в цій атаці Galxe, вміст транзакції був чітко написаний у підписі (хоча це не був знак EIP712), але деякі користувачі все одно постраждали.

  • Eth_Sign

Eth_Sign — це метод підпису, наданий MetaMask на ранній стадії. Його визнали дуже небезпечним методом підпису, і його часто використовують шахраї. Оскільки Eth_Sign є повним «сліпим підписом», рядок, представлений у нижньому повідомленні, не читається. Користувач поняття не має, що він підписує. Це може бути запит на вхід на веб-сайт чи авторизація, або це може бути транзакція, яка передає всі ваші активи.

Таким чином, під час зустрічі з підписом Eth_Sign MetaMask зазвичай з’являється червоне попередження (як показано нижче), щоб нагадати користувачам не вдаватися до шахрайства, але це не виключає можливість відсутності попередження. Коротше кажучи, коли користувач стикається з таким «сліпим підписом», це найбезпечніший спосіб не підписувати взагалі.

Звичайно, для вмісту «сліпого підпису» трюк ідентифікації полягає в тому, що якщо рядок починається з «0x», то існує висока ймовірність того, що підпис включає транзакцію; якщо він не починається з «0x», це може бути автентифікація особи або авторизація (на фото нижче).

Підведіть підсумки

Нам потрібно не тільки розуміти, що таке напад, але, що важливіше, нам потрібно бити на сполох.

Вище наведено лише короткий вступ до кількох методів підпису та речей, на які потрібно звернути увагу під час підписання. Це може не допомогти вам уникнути всіх фішингових атак, оскільки методи фішингу та атак хакерів постійно оновлюються. Але в будь-якому випадку, єдине, про що слід пам’ятати, це те, що ви повинні охороняти останні двері безпеки «підпису», вам потрібно будьте уважні та ретельно перевіряйте вміст, який потрібно підписати.