Passkeys не ловушка: автор библиотеки опроверг популярный пост

В последние дни по сети ходил и высоко поднимался на Hacker News пост «Passkeys are a trap. Do not use them» («Passkeys, это ловушка. Не используйте их»). Он адресован «нетехническим гражданам сети», а главный совет в нём, отказаться от ключей доступа (passkeys) и вернуться к одноразовым кодам TOTP и паролям. Автору рассматриваемой заметки такой пост присылали много раз с вопросом «это правда?», и он ответил на него отдельным текстом.
Центральный довод исходного поста: passkeys поддерживают аттестацию (attestation), то есть сайт может запросить криптографическое доказательство того, чем создан ключ. Автор поста называет это «скрытым регулятором» (hidden dial), который сайты будут постепенно «подкручивать», пока войти можно будет только с одобренного ПО на одобренной операционной системе, без модификаций, без LineageOS и без передачи пароля от Netflix. К этому добавлены uBlock Origin, список членов FIDO Alliance и британские предложения о сканировании изображений, а вывод, passkeys «не созданы так, чтобы учитывать ваши интересы».
Контраргументы автора заметки. Первое: большинство людей пользуются синхронизируемыми passkeys, в iCloud Keychain, Google Password Manager, 1Password, Bitwarden и других менеджерах. Такие ключи вообще не передают сайту аттестационное заявление: даже если сайт его запросит, в ответ придёт «ничего». Автор говорит, что знает это, потому что написал открытую библиотеку для passkeys. Если потребительский сайт завтра решит принимать только аттестованные ключи, он мгновенно отрежет почти всех своих пользователей; к тому же уже несколько лет рекомендация для таких сайтов, аттестацию даже не запрашивать.
Второе: аттестация доказывает не то, что приписывает ей исходный пост («используются одобренный менеджер ключей, ОС и прошивка»). Когда аттестация есть, WebAuthn сообщает сайту марку и модель аутентификатора по идентификатору AAGUID и цепочку сертификатов производителя. Ничего об ОС, браузере, расширениях, root/jailbreak и версии прошивки она не говорит.
Третье: исходный пост рекомендует аппаратный ключ вроде YubiKey, потому что он якобы «избегает аттестации на уровне ОС». Но именно YubiKey и есть аутентификаторы, которые делают аттестацию: каждый поставляется с сертификатом, выданным Yubico, а корпоративная аттестация существует, чтобы организации могли требовать одобренные аппаратные ключи. Автор заметки сам советует YubiKey и пользуется ими, но замечает, что совет поста толкает к аттестации, а не от неё.
Четвёртое: TOTP лучше одного пароля, но код можно ввести не на том сайте, автор в шутку отсылает к Troy Hunt. Фишинговые наборы вроде Evilginx встают посередине, в реальном времени передают пароль и код настоящему сайту и забирают сессию. По словам автора, так происходит огромное число захватов аккаунтов. Passkey привязан к домену, для которого создан, поэтому браузер не подставит ключ для example.com на examp1e.com; читать код вслух и ошибаться пользователю нечем. Сам автор исходного поста в дополнении признаёт, что passkeys привязаны к домену и устойчивы к атакам «человек посередине», но всё равно советует их избегать. Менять фишингоустойчивый способ входа на фишингуемый, по оценке автора, очень плохая сделка.
Итоговый совет: продолжать пользоваться passkeys везде, где сайт их предлагает, и хранить их в надёжном менеджере паролей и passkeys. Если нужно переносить учётные данные, выбирать провайдера, который это поддерживает. Если тревожит проникновение аттестации в потребительские входы, громко возражать, если это когда-нибудь произойдёт. Но этого не случилось, крупнейшие провайдеры её не поддерживают, а отказ от passkeys в ожидании ни от чего не защищает и оставляет открытым для фишинга.
Ключевые факты
- Исходный пост советует нетехническим пользователям отказаться от passkeys в пользу TOTP-кодов и паролей, опасаясь, что аттестация (attestation) приведёт к привязке к «одобренному» ПО.
- По словам автора заметки, синхронизируемые passkeys (iCloud Keychain, Google Password Manager, 1Password, Bitwarden) не отдают сайту аттестацию вовсе, в ответ приходит «ничего».
- Аттестация WebAuthn сообщает лишь марку и модель аутентификатора (AAGUID и цепочку сертификатов), но не ОС, браузер, расширения, root/jailbreak или прошивку.
- Рекомендация YubiKey в исходном посте противоречива: именно аппаратные ключи делают аттестацию, а корпоративная аттестация нужна, чтобы требовать одобренные ключи.
- TOTP фишингуется (например, через Evilginx), а passkey привязан к домену и не сработает на поддельном сайте.
Почему это важно
Пост с призывом отказаться от passkeys получил большой отклик и адресован как раз тем, кто не разбирается в технических деталях. Если совет ошибочен, он уводит людей от фишингоустойчивого входа к способу, который, по словам автора заметки, лежит в основе множества захватов аккаунтов. Разбор показывает, на чём стоят опасения про аттестацию и почему они не относятся к ключам, которыми пользуется большинство.
Кому это важно
Обычным пользователям, которым пересылали исходный пост с вопросом «это правда?», и тем, кто решает, включать ли passkeys в аккаунтах. Также тем, кто выбирает менеджер паролей и passkeys: в заметке отдельно сказано, что провайдера стоит выбирать с возможностью переносить учётные данные. Разработчикам потребительских сайтов полезно знать, что, по словам автора, рекомендация, аттестацию не запрашивать.
Как это применить
Совет автора простой: используйте passkeys везде, где сайт их предлагает, и храните их в менеджере паролей и passkeys, которому доверяете. Если хотите уметь переносить учётные данные, выбирайте провайдера с такой поддержкой. Аппаратный ключ вроде YubiKey автор по-прежнему рекомендует тем, кто его хочет. Если аттестация когда-нибудь начнёт требоваться на потребительских входах, возражайте громко.
Можно ли доверять
Это полемическая заметка-ответ, написанная практиком, и её выводы, позиция автора, а не независимое исследование. Автор перечисляет свой опыт: сервис WhyNoPasskeys.com, внедрение passkeys в собственном SaaS, открытая библиотека с проведённым аудитом безопасности. Это самоописание, в тексте оно не подтверждено внешними источниками. Имя автора в тексте не указано. Статистики по захватам аккаунтов через фишинг TOTP в заметке нет, только утверждение, что их «огромное число» и что доказательства есть. Исходный пост в заметке пересказан и цитируется фрагментами.
Риски и подводные камни
Сам автор не отрицает, что аттестация существует и используется: у YubiKey она есть, а корпоративная аттестация позволяет организациям требовать одобренные ключи. Опасение, что она проникнет в потребительские входы, он считает достойным громкого возражения, если это когда-либо случится, пока этого не произошло. Передавать ли учётные данные между менеджерами, зависит от провайдера, поэтому выбирать его стоит заранее. Конкретных сайтов, которые планируют требовать аттестованные passkeys, в заметке не названо.
«Я использую passkeys везде, где могу, потому что сейчас это лучшее, что у нас есть для защиты аккаунтов.»
— автор заметки «Passkeys are not a trap»