Web3. Безопасность. Что такое слепая подпись? Перевод
Перевод
Это вольный перевод: ledger.com/academy/cryptos-greatest-weakness-blind-signing-explained.
Ключевые выводы
Blind signing означает подписание транзакции без знания или просмотра всех её данных до подтверждения.
Это одна из самых часто эксплуатируемых уязвимостей в криптокошельках, поэтому крайне важно принимать меры для ограничения blind signing и связанных с ним рисков.
Ledger стремится полностью искоренить blind signing, внедряя транзакции с прозрачной подписью (Clear Signed transactions) в Ledger Live и продвигая стандартизацию Clear Signing во всей блокчейн-экосистеме.
Введение
Если раньше блокчейн-технологии в основном сводились к передаче ценности, владению и безопасному хранению, то сегодня они эволюционировали в нечто большее. Мир цифровых активов вышел далеко за рамки монет и стал значительно более разнообразным, чем можно было представить в момент его зарождения. Одной из ключевых инноваций стали смарт-контракты - самоисполняющиеся программы, которые работают на основе разрешений, когда вы даёте приложению право управлять вашими активами.
Однако такие сложные транзакции открыли новый вектор атак: мошенник может убедить вас подписать вредоносную транзакцию, тем самым предоставив ему доступ к вашим ценным активам. Проблема в том, что большинство криптокошельков просто не способны корректно отобразить детали транзакции, которую вы подтверждаете. Эта опасность и называется blind signing.
Что такое Blind Signing?
Blind signing в мире цифровых активов можно сравнить с подписанием пустого чека: вы авторизуете транзакцию, не понимая и не видя полностью её содержимое. Обычно это выглядит как экран с набором цифр и букв (так называемый хэш), который большинству людей невозможно расшифровать.
Чаще всего необходимость blind signing возникает при использовании программного кошелька или при подключении аппаратного кошелька к интерфейсу программного кошелька. Однако и некоторые более сложные транзакции в Ledger Live также могут потребовать blind signing.
В чём опасность Blind Signing?
При blind signing отсутствие прозрачности открывает целый спектр рисков. Например, можете отправить средства нежелательному получателю (злоумышленнику). Или подписать разрешение, которое позволит смарт-контракту забирать ваши монеты или токены в любой момент.
Читая об этих атаках, может показаться, что у вас достаточно опыта, чтобы избежать их. Но на практике вредоносные транзакции часто маскируются очень изощрённо - с помощью фишинга или приёмов социальной инженерии. Поэтому соблюдение правильных мер предосторожности помогает принимать более осознанные решения.
Теперь, когда мы понимаем, что такое blind signing и как это может быть использовано против вас, перейдём к тому, как снизить связанные с ним риски.
Как можно бороться с рисками Blind Signing?
Используйте аппаратный кошелёк с защищённым экраном
Когда подписываете любую транзакцию с помощью компьютера или смартфона, фактически всегда выполняете blind signing. Эти устройства подключены к интернету и используют экраны, управляемые небезопасными чипами, поэтому они уязвимы к подмене данных (spoofing).
Проще говоря, злоумышленник может изменить детали транзакции на экране вашего компьютера или смартфона и обманом заставить вас подписать то, чего вы на самом деле не видели.
Устройства Ledger оснащены защищённым экраном, которому можно доверять. Экран Ledger управляется напрямую чипом Secure Element - защищённым элементом, который предотвращает подмену отображаемых данных и защищает вас от spoofing-атак.
Разделяйте свои криптоактивы
Если всё же необходимо использовать слепое подписание транзакций, можете защитить основные активы, разделив криптоактивы между несколькими аккаунтами и подписывая потенциально опасные транзакции только с тех аккаунтов, на которых хранится минимальная сумма.
Таким образом, даже если подпишете вредоносное разрешение (approval), злоумышленник не сможет получить доступ к вашим ценным активам: каждое разрешение действует только для одного адреса. Храните аккаунты с основными средствами в "хранилище" или холодном аккаунте, отдельно от транзакций со слепым подписанием - это значительно повысит вашу защиту от атак, связанных с blind signing.
Не доверяй - проверяй
Мошенничества, связанные со слепым подписанием, почти всегда включают элементы социальной инженерии. Проще говоря, мошенники мастерски создают ситуацию, в которой вы начинаете им доверять и теряете бдительность.
Перед тем как подключать кошелёк и подписывать транзакцию, изучайте каждое приложение. Проверяйте каждую платформу, с которой собираетесь взаимодействовать, и убеждайтесь, что заходите именно на официальный сайт. Должная проверка (due diligence) поможет избежать подписания вредоносных разрешений и транзакций.
Когда и как включать Blind Signing?
Стоит отметить, что при использовании программного кошелька вместе с устройством Ledger слепое подписание иногда неизбежно. В настоящее время детали транзакций не стандартизированы, поэтому кошелёк не может перевести их в понятный для человека формат.
Даже если используете устройство Ledger для проверки и подтверждения транзакции, оно не сможет показать все детали - промежуточное программное обеспечение просто не располагает необходимой информацией для передачи.
Вместо этого устройство покажет лишь сообщение "Data Present", не позволяя вам увидеть ключевые параметры транзакции - такие как действие, цена или адрес получателя - до подтверждения...
Если подписываете транзакции вслепую через программный кошелёк, как описано выше, рекомендуется разделять активы. А если всё же решаете использовать слепое подписание, обязательно оценивайте надёжность платформы, с которой взаимодействуете. Подписывайте такие транзакции только в доверенных приложениях и сервисах.
Инициатива Ledger Clear Signing
Миссия Ledger- устранить слепое подписание, обеспечив принцип "что видишь - то и подписываешь". Осознавая, какую опасность blind signing представляет для пользователей криптовалют, компания стремится помочь всей экосистеме эволюционировать и заранее учитывать эти риски. Решение простое - внедрение Clear Signing по всей экосистеме.
Clear Signing состоит из двух ключевых элементов. Первый - это чёткое описание намерения транзакции: кошелёк показывает, какое именно разрешение или транзакция запрашивается и каким приложением. Второй - это человекочитаемые поля транзакции, чтобы владелец кошелька мог понять, что именно он подписывает...
Вместо сообщения "Data Present" устройство может показать полные детали транзакции на своём защищённом экране - какие активы затрагиваются и куда они отправляются. И, разумеется, поскольку экран Ledger напрямую управляется защищённым элементом (Secure Element), отображаемым данным можно доверять.
За более чем десять лет разработки аппаратных кошельков на этой модели безопасности Ledger запустила масштабную инициативу по устранению blind signing. Работая вместе с другими лидерами отрасли и разработчиками, компания предложила метод стандартизации Clear Signing, чтобы сделать безопасные транзакции доступными для всех кошельков и dApp’ов, которые внедрят этот подход.
Проще говоря, предложение Ledger превращает нечитаемые хэши в понятную и осмысленную информацию о транзакции - решение проблемы слепого подписания, которая становится всё более актуальной.