Главный аргумент
Недавно в сети набрал популярность пост, утверждающий что passkeys — это ловушка, от которой нужно отказаться. Материал разошёлся по Hacker News и пришёл в личку множество раз с вопросом: это правда?
Автор статьи, обращаясь к неподготовленной аудитории, рекомендует вернуться к TOTP-кодам и паролям. Центральный тезис: passkeys поддерживают attestation — механизм, позволяющий сайту запросить криптографическое подтверждение того, какое устройство создало passkey.
Статья называет это «скрытой регулировкой» и предсказывает, что сайты постепенно её подкрутят, пока вход не будет возможен только с одобренного ПО на одобренной ОС без любых модификаций — ни LineageOS, ни Netflix-sharing. Плюс uBlock Origin, список членов FIDO Alliance и предложения по сканированию изображений в Великобритании — и вывод готов: passkeys «не разработаны в интересах пользователя». Убедительная история. Просто она не совпадает с тем, как всё это на самом деле работает.

Большинство Passkey не отправляют Attestation
Большинство людей используют синхронизированные passkey, хранящиеся в iCloud Keychain, Google Password Manager, 1Password, Bitwarden или подобном ПО. Эти passkey вообще не отправляют attestation-заявление сайтам — если сайт запрашивает, в ответ приходит none. Это известно потому, что разработан открытый код для работы с passkeys, доступный всем.
Если бы потребительский сайт завтра решил принимать только attested passkeys, он мгновенно заблокировал бы почти всех своих пользователей. Какой сайт это сделает? К тому же профессиональные рекомендации для потребительских сервисов годами включают совет не запрашивать attestation.
Attestation — это не то, что вы думаете
Пост описывает attestation как доказательство «использования одобренного менеджера паролей, операционной системы и прошивки». Это неправда.
Когда attestation присутствует, WebAuthn attestation сообщает сайту только производителя и модель аутентификатора, идентифицируемого по AAGUID, с цепочкой сертификатов от производителя. Он ничего не говорит о вашей ОС, браузере, расширениях, укоренена ли ваша система, версии прошивки или даже цвете устройства.
Рекомендация YubiKey — парадокс
Больше всего удивило другое. Для повышения безопасности пост рекомендует аппаратный ключ вроде YubiKey, потому что он якобы «избегает OS-wide attestation».
YubiKey — это как раз те аутентификаторы, которые делают attestation. Каждый поставляется с сертификатом attestation от Yubico, и enterprise attestation существует специально, чтобы организации могли требовать одобренные аппаратные ключи. YubiKey действительно отличные, и рекомендовать их имеет смысл, но если вас беспокоит attestation, то рекомендация поста толкает вас прямо в его объятия, а не прочь от него!
TOTP — шаг назад
Пост возносит TOTP как уже хорошее решение. TOTP лучше, чем один пароль, да, но у него есть серьёзный недостаток: можно ввести код на неправильный сайт. Именно это произошло с одним известным специалистом. Фишинг-киты типа Evilginx встают посередине, в реальном времени передают пароль и код на настоящий сайт и уходят с вашей сессией. Это не теория — это то, как происходит большинство перехватов учётных записей сегодня, и у нас есть доказательства.
Это проблема, которую решают passkeys. Passkey привязан к домену, для которого был создан, так что браузер не будет использовать ваш example.com-passkey на examp1e.com. Нет кода для прочтения, нечему ошибиться пользователю. Автор даже признаёт это в приложении, говоря, что passkeys привязаны к домену и устойчивы к атакам man-in-the-middle, но всё равно советует их избегать. Менять защищённое от фишинга удостоверение на уязвимое для фишинга — плохая сделка.
Что делать
Продолжайте использовать passkeys! Везде, где сайт их предлагает, принимайте, и храните в менеджере паролей/passkeys, которому вы доверяете. Если хотите перемещать учётные данные между сервисами, выберите провайдера, поддерживающего это. Если беспокоитесь, что attestation проникнет в потребительские логины, то это стоит громко отстаивать (если когда-нибудь произойдёт). Но этого не произошло, крупные провайдеры это не поддерживают, и избегание passkeys сегодня в ожидании этого вас ничему не защитит — только оставит вас открытым для фишинга.