6 мин чтения
Что произойдёт, если удалить passkey в CardanoWall?
Удаление passkey заново шифрует текущее хранилище идентичности CardanoWall для оставшихся факторов и безвозвратно удаляет старый шифротекст — это реальный отзыв на будущее, но он не может отменить доступ, который уже состоялся.

Когда вы удаляете passkey, CardanoWall заново шифрует текущее хранилище идентичности для тех факторов, что у вас остались, а затем безвозвратно удаляет старый шифротекст. Удалённый passkey больше не может открыть хранилище, которое существует после этого. Это настоящий отзыв доступа на будущее.
Чего удаление не делает — так это не действует задним числом. Если этот passkey уже использовался для открытия хранилища, пока был действителен, удаление не может вернуться назад и отменить это. В таком случае вы считаете идентичность скомпрометированной, а не просто «лишившейся одного фактора».
В этой статье разбирается, что именно меняется, что остаётся прежним и когда удаления достаточно, а когда нужна новая идентичность.
Что именно защищает passkey?
Он защищает доступ к вашему размещённому хранилищу идентичности — не больше и не меньше.
Хранилище — это зашифрованный набор, который содержит Identity Seed (сиды идентичности), принадлежащие вашему аккаунту, и приватные метки, которые вы дали каждому из них. Каждый зарегистрированный passkey — это один фактор для разблокировки этого набора. Сервер хранит только шифротекст, который не может прочитать; открыть его могут лишь ваши passkey. (Полную картину того, как устроено это хранилище, см. в статьях как CardanoWall хранит вашу идентичность и как passkey защищают хранилище вашей идентичности.)
Важно различать одно: ваша идентичность — это сид, а не passkey. Passkey — лишь удобный способ открыть зашифрованную копию сида. Удаление passkey меняет то, кто может открыть эту копию, но не меняет саму идентичность.
Что происходит при удалении?
Хранилище заново шифруется для оставшихся факторов. Последовательность такая:
- Вы разблокируете хранилище действительным фактором.
- CardanoWall убирает выбранный passkey из набора получателей.
- Ваш браузер заново собирает шифротекст хранилища для оставшихся факторов.
- Текущая строка хранилища заменяется новым шифротекстом с более высоким номером версии.
- Старый шифротекст безвозвратно удаляется.
- Запись об удалённом passkey стирается.
Порядок действий контролируется на сервере: passkey, который всё ещё присутствует в наборе получателей хранилища, удалить нельзя. Отзыв должен быть настоящим — ни один шифротекст, который способен открыть удалённый passkey, не должен сохраниться — и никогда не косметическим. Как только вызов завершается, удалённый passkey не открывает ничего из того, что ещё существует.
Почему так важно удалять старый шифротекст?
Потому что старый шифротекст по-прежнему могут открыть старые факторы.
Если бы каждая историческая копия хранилища хранилась вечно, удаление passkey было бы лишь спектаклем. Удалённый фактор всё равно смог бы расшифровать более старую версию хранилища, а в этой старой версии лежат те же самые сиды. Получилось бы, что вы «удалили» ключ, который по-прежнему работает с копией, лежащей прямо тут же в хранилище.
Именно поэтому размещённое хранилище — это одна текущая строка, которая заменяется, а не история, доступная только для добавления. Действенным удаление фактора делает именно безвозвратное удаление шифротекста. В реальной инфраструктуре могут существовать обычные окна ротации резервных копий, но продукт спроектирован так, чтобы никогда не хранить исторический шифротекст хранилища как функцию.
А если это был мой последний passkey?
Тогда удаляется само хранилище.
Если не остаётся ни одного фактора, CardanoWall не хранит шифротекст, который ничего из зарегистрированного не может открыть. Аккаунт переходит к пути ввода сида: вы возвращаете доступ, вставив свой Identity Seed.
Это нормально, если вы сохранили сид. И опасно, если нет. Удаление последнего фактора без сохранённого сида может закрыть вам доступ к будущему использованию этой идентичности — не потому, что что-то сломалось, а потому, что вы убрали все пути назад. Сид — это и есть настоящая резервная копия; хранилище — лишь удобный слой поверх него. (Почему сид по-прежнему важен разбирает это подробно.)
Влияет ли удаление passkey на мои опубликованные подтверждения?
Нет. Опубликованные записи Label 309 остаются в блокчейне и остаются проверяемыми.
Действительность подтверждения не зависит от ваших текущих passkey, текущего аккаунта или текущего состояния хранилища. Любой, у кого есть ссылка на транзакцию, может проверить его, используя только метаданные в блокчейне, при необходимости — байты содержимого, и публичный обозреватель блокчейна Cardano; вход в CardanoWall не требуется. Если подтверждение проходило проверку до того, как вы удалили passkey, оно проходит её точно так же и после.
Удаление passkey управляет будущим доступом к хранилищу вашей идентичности. Оно не переписывает ничего из того, что уже находится в блокчейне.
Я только что потерял passkey. Что мне делать?
Удалите его без промедления.
Если вы потеряли телефон, ноутбук или аппаратный ключ безопасности, удаление passkey — правильный первый шаг. После того как хранилище будет заново зашифровано без этого фактора, потерянное устройство уже не сможет открыть текущее хранилище.
Если вы уверены, что потерянным фактором никто посторонний не воспользовался — ключ завалился за стол, телефон стёрли перед перепродажей, — то удаления может быть достаточно. Менять идентичность не нужно.
Если же вы не можете исключить, что кто-то им воспользовался, читайте дальше.
А если passkey могли украсть и использовать?
Отнеситесь к риску серьёзно и чётко разграничьте, что украденный сам по себе passkey может и чего не может.
Украденный passkey сам по себе — это не то же самое, что украденный сид. Чтобы открыть ваше хранилище, злоумышленнику нужны ещё и шифротекст хранилища (а он передаётся только внутри аутентифицированной сессии), и та проверка пользователя, которую требует аутентификатор, — биометрия или PIN устройства. Сам по себе passkey хранит ключ, а не шифротекст, который этим ключом открывается.
Но если злоумышленник мог воспользоваться passkey до того, как вы его удалили, — внутри перехваченной сессии, против действующего хранилища, — то он мог открыть хранилище и прочитать ваш Identity Seed. Как только сид раскрыт, идентичность скомпрометирована полностью: тот, у кого есть сид, может вывести любой приватный ключ, расшифровать запечатанные записи, адресованные этой идентичности, и подписывать от её имени новые записи.
В этом сценарии удаления passkey недостаточно. Отзыв защищает хранилище на будущее; он не может вернуть в тайну сид, который уже стал известен.
Что делать после возможного раскрытия сида?
Перейдите на новую идентичность. Ответ на компрометацию — это новая идентичность, а не сброс старой на месте: поскольку сид и идентичность связаны навсегда, операции «сменить сид» не существует.
Если вы не можете исключить раскрытие сида:
- создайте новую идентичность и сохраните её новый Identity Seed;
- зарегистрируйте на ней новые факторы-passkey;
- деактивируйте скомпрометированную идентичность в CardanoWall (это блокирует новое подписание и публикацию, но всё ещё позволяет расшифровывать всё, что запечатано для неё);
- перестаньте делиться старыми адресами получателя;
- переопубликуйте свои новые публичные ключи везде, где публиковали старые, — в публичных профилях, на собственном сайте, в DNS-записях, в
.well-knownи у своих контактов; - опубликуйте замещающую запись там, где это поможет тем, кто будет читать её позже.
Один сид — это одна идентичность. (Активна, деактивирована, удалена проходит по каждому состоянию жизненного цикла.) Учтите честное ограничение: всё, что уже запечатано для скомпрометированных ключей, остаётся расшифровываемым для того, у кого они есть, — ни Cardano, ни Arweave не дают примитива отзыва для уже опубликованного содержимого. Деактивация и указатель замещения — это сигналы для полагающихся сторон, а не отзыв прошлых данных.
Что такое привязка к версии и зачем она нужна?
Это защита от того, чтобы сервер не подсунул вам устаревшее хранилище.
Строка хранилища несёт номер версии, который только растёт. Ваш браузер запоминает наибольшую версию, которую видел. Если скомпрометированный сервер попытается вернуть более старый шифротекст хранилища — тот, что ещё может открыть уже удалённый passkey, — клиент способен заметить, что возвращённая версия ниже ожидаемой, и отвергнуть её.
Это эшелонированная защита, а не замена бережного хранения сида. Она закрывает один конкретный пробел: повтор устаревшего хранилища против удалённого фактора. И она ничем не поможет, если вы разом потеряете сид и все факторы разблокировки.
Коротко
Удаление passkey заново шифрует текущее хранилище идентичности для оставшихся факторов и безвозвратно удаляет старый шифротекст. Удалённый passkey больше не может открыть хранилище, которое существует после удаления.
Одна оговорка: если этот фактор уже могли использовать, пока он был действителен, считайте, что сид мог быть раскрыт, и переходите на новую идентичность. Отзыв защищает будущее. Он не может изменить прошлое.
Дополнительное чтение
- Ваша идентичность — это сид и почему сид по-прежнему важен — устойчивый артефакт, стоящий за каждым passkey.
- Как CardanoWall хранит вашу идентичность и как passkey защищают хранилище вашей идентичности — устройство хранилища в подробностях.
- Синхронизируемые passkey против аппаратных ключей — выбор факторов и понимание их моделей восстановления.
- Активна, деактивирована, удалена — жизненный цикл идентичности, который вы используете при ответе на компрометацию.
- Стандарт Label 309 и его реализации с открытым исходным кодом размещены по адресу github.com/cardanowall; стандарт подан в процесс Cardano CIP и рассматривается редакторами CIP.