Убрать лишние доступы — значит составить список всего, что способно читать или подписывать операции вашего кошелька, и сократить его до необходимого. Доступы делятся на отзываемые и неотзываемые: разрешения смарт-контрактов и сессии приложений отзываются транзакцией, а раскрытый ключ или копия фразы не отзываются никогда, и единственный выход в этом случае — перенос средств на новую ветку ключей. Процедура у них одна.
Какие доступы накапливаются незаметно
Инвентаризация обычно удивляет самих владельцев. Доступы копятся четырьмя путями: разрешения, выданные смарт-контрактам при обменах; расширенные публичные ключи, отданные наблюдательным сервисам и бухгалтерии; дубликаты фразы, переданные родственникам «на время»; устройства, которые кошелёк настраивали и не стёрли. Каждый путь выглядел разумным в момент возникновения, а вместе они дают картину, в которой владелец перестаёт понимать, кто способен увидеть его баланс. Контроль над этим списком — обязанность самого владельца.
Сюжет повторяется. В обращениях читателей доступ выдавался не злоумышленнику, а знакомому сервису или человеку, после чего утекал уже от них. Отзыв в таких случаях запаздывает на месяцы, потому что сам список доступов нигде не ведётся и вспоминается только после инцидента.
Типы доступа и как отзывается каждый
| Тип доступа | Что он позволяет | Как отзывается | Остаётся ли след после отзыва |
|---|---|---|---|
| Разрешение смарт-контракту на списание токена | Списывать токен с адреса владельца в пределах выданного лимита, многократно | Транзакцией, устанавливающей лимит в ноль, с оплатой комиссии сети | История выдачи и отзыва остаётся в сети навсегда, доступ прекращается |
| Сессия приложения, подключённого к кошельку | Запрашивать подписи у кошелька без повторного подключения | Отключением сессии в настройках кошелька, без транзакции и комиссии | Следов в сети нет, подключение прекращается сразу |
| Расширенный публичный ключ у сервиса или человека | Видеть все адреса и остатки ветки, включая будущие адреса | Отзыву не поддаётся: ключ уже скопирован, удаление из интерфейса ничего не меняет | Доступ к чтению сохраняется, снимается только переносом на новую ветку |
| Копия фразы восстановления у третьего лица | Полный контроль над средствами ветки, включая подпись любых операций | Отзыву не поддаётся, возврат носителя подтверждением уничтожения не является | Доступ сохраняется бессрочно, снимается только миграцией на новую фразу |
Две нижние строки и составляют основную ловушку. Отозвать знание нельзя. Владельцы же относятся к возвращённому носителю как к закрытому доступу, хотя фразу могли переписать за минуту, и никакое последующее действие этого не отменяет.
Инвентаризация и отзыв шаг за шагом
- Выпишите адреса, которыми пользуетесь, и для каждого отметьте сети, где с него подписывались операции, — чистку ведут по сетям отдельно.
- Соберите список выданных разрешений смарт-контрактам по каждой сети и отсортируйте его по размеру лимита и давности выдачи.
- Установите в ноль разрешения, которыми не пользовались, начиная с бессрочных и неограниченных по сумме, а не с самых старых по дате.
- Отключите в кошельке сессии приложений, подключённых ранее: это делается без транзакции и потому не требует комиссии.
- Отметьте доступы, которые отозвать нельзя: кому отдан расширенный ключ, у кого остались копии фразы, какие устройства не стёрты.
- Для неотзываемых доступов спланируйте миграцию на новую ветку ключей и сверьте новую резервную копию адресом до переноса средств.

Когда отзыв не помогает и нужна новая копия
Критерий один. Если доступ состоит в знании, а не в записи в сети, отзывать нечего. Фраза, запомненная или сфотографированная, остаётся работоспособной, пока на ветке есть средства, и никакая настройка кошелька этого не меняет. Расширенный публичный ключ ведёт себя похоже, но ограниченнее: он даёт чтение, а не подпись, и потому миграция тут вопрос приватности, а не сохранности.
Порядок миграции иной. Сначала новая ветка создаётся на устройстве, которого не касались посторонние; затем сверяется её резервная копия по первому адресу; и лишь после этого переводятся средства, начиная с небольшой части, чтобы убедиться в работоспособности цепочки. Старую ветку после переноса не используют даже для мелких сумм, иначе смысл миграции теряется.
Типовые ошибки при чистке доступов
- Разрешения отзывают только в той сети, где работали недавно. Лимиты, выданные в другой сети, остаются действующими и забываются.
- Сортировку ведут по дате, а не по размеру лимита. Опаснее не старое разрешение, а неограниченное по сумме.
- Возвращённый носитель с фразой считают закрытым доступом. Переписать 24 слова занимает минуту, и возврат ничего не доказывает.
- Расширенный ключ удаляют из интерфейса сервиса и считают вопрос решённым. Ключ уже скопирован, удаление касается только отображения.
- Миграцию делают на ту же фразу с другим номером счёта. Доступ при этом сохраняется: номер счёта выводится из той же фразы.
- Устройства, на которых кошелёк разворачивали для проверки, остаются настроенными. Каждое такое устройство — отдельная точка доступа.
Что делать, если лишний доступ уже использовали
Скорость важнее точности. Сначала выводите остаток на свежую ветку, потом разбирайтесь в причинах: если списание шло через разрешение смарт-контракту, обнуление лимита остановит повторные списания, но только для того адреса, где лимит выдан. Остальные адреса ветки проверяют отдельно, поскольку разрешения привязаны к адресу, а не к кошельку целиком.
Затем — восстановление контроля. Новая ветка, новая резервная копия, сверка адресом, запись даты. Параллельно стоит сузить круг на будущее: вести письменный список выданных доступов с датами и ревизовать его по расписанию. Такой список и есть главный результат чистки, потому что без него через полгода инвентаризацию придётся начинать заново с чистого листа.
Чек-лист
- Список используемых адресов составлен, по каждому отмечены сети, где подписывались операции.
- Разрешения смарт-контрактам собраны по всем сетям и отсортированы по размеру лимита.
- Неограниченные и неиспользуемые разрешения обнулены транзакцией.
- Сессии ранее подключённых приложений отключены в настройках кошелька.
- Неотзываемые доступы перечислены письменно: расширенные ключи, копии фразы, ненастёртые устройства.
- По неотзываемым доступам запланирована миграция, новая копия сверена адресом до переноса средств.
Частые вопросы
Нужно ли отзывать разрешения, если на адресе нет токенов?
Да. Разрешение сработает при следующем поступлении. Лимит привязан к адресу и живёт независимо от остатка: пустой адрес с выданным бессрочным разрешением опасен ровно в тот момент, когда на него придут средства. Обнуляйте лимиты, а не полагайтесь на нулевой баланс.
Отзывается ли доступ, если удалить приложение с телефона?
Нет. Удаление убирает интерфейс, а не разрешение в сети: лимит смарт-контракта остаётся выданным. Сессии подключения прерываются, но они и отзываются в настройках кошелька без удаления приложения. Эти два вида доступа путают чаще всего.
Можно ли вернуть приватность после выдачи расширенного ключа?
Для прошлых операций нет. История ветки уже видна держателю ключа и сохранится у него. Для будущих операций помогает миграция на новую ветку, созданную из новой фразы. Нового номера счёта на той же фразе недостаточно, ключ выводится из того же корня.
Как часто проводить ревизию доступов?
Раз в квартал для активного кошелька и раз в полгода для холодного хранения. Внеплановую ревизию проводят после каждого взаимодействия с новым смарт-контрактом и после передачи устройства в ремонт. Письменный список доступов сокращает такую ревизию до нескольких минут.
- Что такое самостоятельное хранение и какую ответственность оно даёт — опорный разбор: кому передаётся часть контроля.
- Как устроен расширенный публичный ключ в мультиподписи — что раскрывает выданный расширенный ключ.
- Как настроить мультисиг-хранилище для семьи или небольшой команды — разграничение прав подписи вместо дубликатов фразы.
- Как правильно мигрировать активы на аппаратное устройство — порядок переноса на новую ветку ключей.
Правила выдачи и обнуления разрешений заданы в тексте стандарта ERC-20 о токенах, а порядок отзыва описан в руководстве проекта Ethereum по отзыву доступа смарт-контрактов.
Вердикт
Чистка доступов делится надвое, и владельцы обычно занимаются только первой половиной. Обнулить лимиты не сложно. Это вопрос вечера и комиссий сети. Сложнее признать, что копия фразы у третьего лица и выданный расширенный ключ отзыву не поддаются, а значит чистка для них равна миграции. Начните со списка: письменный перечень доступов с датами меняет картину сильнее любого отзыва.
Практику ревизии доступов разбираем в нашем Telegram-канале Cryptium.
Обсуждение
Добавить комментарий