July 8, 2022

Опасная подпись

Всем привет! С вами Тёма!

Сегодня мы разберемся в новом методе скама!

Предыстория

Последнее время в сети стало появляться большое количество минтов по типу такого - ТЫК (если сайт не работает, значит его уже снесли, долго они не живут). Все такие сайты имеют одинаковую структуру, что может нам говорить об одном - за всем этим стоит один человек (либо он сам делает все эти сайты, либо он сдает софт в аренду)

В чем опасность?

При входе на сайт вас просят подписать сообщение, ну и вы его подписываете, ведь всем известно что простая подпись сообщения через метамаск ничем не страшна, правда? А вот и нет, метамаск вас даже предупреждает красной надписью, но невнимательные пользователи все равно подписывают это сообщение и после происходит самое интересное - отправка транзакции на адрес скамера со всем вашим эфиром! Да, при помощи простой подписи сообщения они могут отправить транзакцию от вашего лица!

Как это работает?

Не будем сильно углубляться в технические подробности, постараемся максимально поверхностно и грубо разобраться с этим делом. Есть разные способы подписать сообщение (например personal_sign) и только при одном из них метамаск будет предупреждать вас, это происходит только в случае eth_sign, а всему виной простая строка “\x19Ethereum Signed Message:\n”, но как она так сильно влияет?

Для начала разберемся в каком порядке происходит процесс подписи каждого из этих двух видов подписей:

eth_sign: message -> hash(message) -> JSON-RPC request -> display request -> sign request
personal_sign: message -> JSON-RPC request -> display request -> hash(message) -> sign request

Как мы можем видеть, в eth_sign у нас сначала идет хэширование, а уже после добавляется “\x19Ethereum Signed Message:\n”, а в personal_sign у нас сначала идет добавление “\x19Ethereum Signed Message:\n”, а уже после хэширование, таким образом в eth_sign мы можем передать сообщение со всеми данными о транзакции, вытащить ненужное “\x19Ethereum Signed Message:\n” и получить подписанную транзакцию, которую теперь надо просто отправить и все!

Не стоит бояться всех подписей

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

Сюрприз

Эта статья была бы скучной, если бы я сам не реализовал подобный метод скама!

Вот репозиторий - https://github.com/ortomich/scam_with_sign

Использовать данную информацию исключительно в образовательных целях!!!

Надеюсь статья была интересной и понятной!

Мой телеграмм канал - https://t.me/ortomich_crypto