Cosine из SlowMist поднял вопрос о конфиденциальности при сборе данных для прозрачного подписания
Cosine из SlowMist поднял вопрос о конфиденциальности при сборе данных для прозрачного подписания
Прозрачное подписание призвано помочь пользователям криптовалют понять, что именно они подтверждают, прежде чем транзакция попадёт в блокчейн. Однако преобразование необработанных данных транзакции в понятное сообщение может происходить с помощью программного обеспечения за пределами аппаратного кошелька — и это ПО способно обрабатывать сведения, которыми пользователи не рассчитывают делиться.
11 ноября основатель SlowMist Cosine выразил обеспокоенность механизмом сбора данных, связанным с одной из интеграций прозрачного подписания. По его словам, этот механизм по умолчанию собирает определённую информацию о подписании, включая идентификатор сети или блокчейна, адрес назначения, версии устройства и программного обеспечения, а также сведения о том, использовалось ли слепое подписание.
Здесь важно уточнить: Cosine описал этот механизм не как функцию, встроенную в прошивку устройства, а как часть комплекта средств разработки, который используют приложения-кошельки. Он также отметил, что возможность изменить соответствующую настройку должно предоставлять приложение, подключающееся к устройству.
Какие данные могут собираться?
Упомянутые поля относятся как к контексту транзакции, так и к среде, в которой запрашивается подпись:
- Идентификатор сети или блокчейна: указывает, к какой блокчейн-сети относится запрос.
- Адрес назначения: может идентифицировать смарт-контракт или получателя.
- Модель устройства и версии программного обеспечения: позволяют определить используемые устройство, прошивку и приложение.
- Статус и причина слепого подписания: показывают, была ли операция подписана без полного и понятного отображения её содержания, и если да, то почему.
Эти сведения — не то же самое, что приватный ключ или фраза восстановления. Сам по себе описанный сбор данных не свидетельствует о раскрытии какого-либо из этих секретов.
Тем не менее такая информация может быть конфиденциальной. Адрес контракта способен показать, каким протоколом человек собирается воспользоваться, а адрес получателя — раскрыть контекст платежа. В сочетании со временем операции или другими доступными сервису сведениями метаданные могут упростить сопоставление действий с конкретным кошельком.
После отправки транзакции в блокчейн её данные зачастую становятся общедоступными, но это не означает, что все метаданные, связанные с подписанием, также должны быть публичными. Пользователь вправе видеть разницу между публикацией транзакции в сети и передачей сведений о попытке её подписания приложению или стороннему сервису.
Прозрачное и слепое подписание решают разные задачи
По необработанным данным транзакции не всегда легко понять, какое действие запрашивается. Прозрачное подписание должно показывать важную информацию — например, тип операции, адрес назначения и значимые параметры — в понятном виде, чтобы пользователь мог проверить её до подтверждения.
Слепое подписание устроено иначе: пользователь подтверждает запрос, который устройство не способно полностью расшифровать или содержательно отобразить. Такое может произойти, если кошельку или устройству не хватает контекста для декодирования конкретного взаимодействия.
В документации по транзакциям Ethereum описаны основные поля транзакций в сети Ethereum. Однако при более сложных взаимодействиях одного адреса назначения может быть недостаточно. Например, вызов смарт-контракта способен предоставить разрешение на расходование токенов или запустить действие, для понимания которого нужен дополнительный контекст.
Прозрачное подписание упрощает проверку транзакций, но понятное описание ещё не гарантирует безопасность взаимодействия. Пользователям по-прежнему следует проверять используемое приложение, запрашиваемое действие и разрешения на расходование средств.
Почему важен уровень приложения
Аппаратный кошелёк защищает ключи подписи, однако обычно пользователи взаимодействуют с ним через приложение-кошелёк, браузерное расширение или другое программное обеспечение. Такое приложение может задействовать сторонние компоненты для интерпретации данных транзакции или взаимодействия с внешними сервисами.
Описанный механизм показывает, почему при оценке безопасности и конфиденциальности необходимо учитывать весь процесс подписания:
- Пользователь инициирует действие в приложении.
- Приложение формирует запрос на подпись и может использовать дополнительное ПО для его интерпретации.
- Аппаратный кошелёк выводит информацию для проверки и подписывает запрос после подтверждения пользователем.
- Затем приложение может отправить подписанную транзакцию в сеть.
Если данные собираются программным обеспечением на стороне приложения, изменения одних лишь настроек устройства может оказаться недостаточно. Пользователю может потребоваться соответствующий параметр в подключённом кошельке — либо разъяснение от его разработчика о том, какие сведения собираются и как отключить их передачу.
Имеющаяся информация не доказывает, что все кошельки, использующие такое ПО, собирают одинаковые данные. Она также не позволяет установить, как долго собранная информация хранится и объединяется ли она с другими записями. Всё это зависит от конкретной реализации и применяемой политики конфиденциальности.
Как проверить конфиденциальность подписания
Чтобы серьёзно относиться к конфиденциальности, необязательно отказываться от понятного отображения транзакций. На практике стоит проверять и то, что показывает устройство, и то, как ведёт себя подключённое программное обеспечение:
- Проверьте настройки конфиденциальности кошелька. Найдите параметры, связанные с аналитикой, диагностикой, симуляцией транзакций и внешними сервисами обработки данных.
- Изучите информацию, предоставленную приложением. Обратите внимание на то, какие данные отправляются, кто их получает, как долго они хранятся и влияет ли отказ от их передачи на функциональность.
- Перед подтверждением проверяйте экран устройства. Сверяйте сеть, адрес назначения, сумму и действие со своими намерениями.
- Относитесь к слепому подписанию как к операции повышенного риска. Если вы не понимаете содержание запроса, остановитесь и разберитесь в нём до подтверждения.
- Периодически проверяйте разрешения на расходование токенов. Одобрение может позволить контракту списывать токены в будущем и не обязательно означает разовый перевод.
- Своевременно обновляйте программное обеспечение. Обновления могут повысить безопасность и улучшить интерпретацию транзакций, но вместе с тем способны изменить функции или настройки конфиденциальности, которые стоит перепроверить.
Главный вывод
Основной вопрос заключается не в том, полезно ли прозрачное подписание: оно действительно помогает лучше оценивать криптовалютные транзакции. Важно другое — достаточно ли у пользователей информации и контроля над данными, обмен которыми необходим для работы этой функции.
При выборе криптокошелька или подключаемого приложения защита приватного ключа — лишь один из факторов. Не меньшее значение имеют прозрачность транзакций, понятное и осознанное согласие пользователя, а также доступные настройки конфиденциальности.



