Не удалось зарегистрировать Yubikey в качестве passkeys для входа без пароля

У меня возникла странная проблема — я не могу зарегистрировать YubiKeys (у меня серия 5, и их у меня 4) в качестве ключей доступа ни на одном форуме Discourse. Я успешно регистрирую ключ доступа на своём Android-смартфоне и в своём менеджере паролей.

При попытке зарегистрировать YubiKey я всегда получаю следующую ошибку:

Однако на YubiKey создаётся ключ-резидент. Я подтверждаю это командой ykman fido credentials list.

image

Этот ключ, очевидно, не работает при повторной попытке входа.

Затем я попытался зарегистрировать ключ на своей собственной установке Discourse, чтобы проверить логи, и вот какая ошибка появилась:

COSE::MalformedKeyError (Malformed CBOR key input) lib/discourse_webauthn/registration_service.rb:161:in `extract_public_key_and_credential_from_attestation' lib/discourse_webauthn/registration_servic

Хочу понять, является ли это известной проблемой, так как я не нашёл на форуме ничего о том, что YubiKey не работает. Если нет, я с радостью предоставлю любые дополнительные детали, которые могут понадобиться.

2 лайка

Не уверен, что YubiKey подходит в качестве ключа доступа — только биометрия?

Ошибок возникать не должно, и у нас должно быть несколько YubiKey для тестирования. @pmusaraj поможет разобраться с этим.

РЕДАКТИРОВАНИЕ: Биометрия действительно работает в качестве ключа доступа. Не уверен, что что-либо, кроме биометрии, подходит для этой роли? В таком случае у вас остаётся только один фактор аутентификации.

2 лайка

Можно ли зарегистрировать эти YubiKey в приложении, поддерживающем passkeys, но не являющемся Discourse, например, в GitHub, Google или в тестовой реализации, такой как https://www.passkeys.io/?

2 лайка

@pmusaraj Да, я успешно зарегистрировал их в Google, GitHub, Vercel и ещё в нескольких сервисах, и они работают без проблем.

@sam YubiKey серии 5 — хороший кандидат для использования в качестве passkey, поскольку он сочетает то, что я знаю (PIN-код), и то, что у меня есть (сам токен). Без ввода PIN-кода он даже не покажет резидентные ключи. В серии с биометрией PIN-код заменён на биометрические данные.

4 лайка

Спасибо за проверку, @rishabhlakhotia. Я вижу ошибки в наших логах на Meta, и место этой ошибки — функция общей аутентификации ключа безопасности, в которую не вносили изменений уже четыре года. Она также используется в процессе двухфакторной аутентификации с ключом безопасности.

Можете ли вы зарегистрировать Yubikey в качестве ключа безопасности для двухфакторной аутентификации здесь, на Meta?

2 лайка

Каков результат выполнения команды ykman list?

Мой YubiKey 5 NFC (5.1.2) здесь, в Meta, работает нормально в качестве ключа доступа.

Я зарегистрировался через Chromium и могу использовать его для входа в Chrome, Firefox и Edge.

3 лайка

Любой YubiKey с резидентными ключами должен подойти, так как браузер может обеспечить многофакторную аутентификацию: проверку наличия (нажмите на ключ) и установку PIN-кода YubiKey.

6 лайков

Да, у меня все четыре Yubikey зарегистрированы в качестве ключей безопасности. Чтобы, возможно, избежать каких-либо крайних случаев, я попытался снова, удалив два из них как ключи безопасности, чтобы повторно зарегистрировать их в качестве паролей, но даже это не сработало.

У меня YubiKey 5C NFC (5.4.3), и я использую браузер Chrome.

Я знаю, что если у ключа есть учетные данные ключа безопасности для сайта, попытка использовать его в качестве ключа доступа завершится неудачей — я сталкивался с этим.

Но удаление ключа безопасности и повторная регистрация в качестве ключа доступа должны сработать.

2 лайка

ОБНОВЛЕНИЕ: Благодаря ответу от @supermathie я только что загрузил Firefox, попробовал зарегистрировать Yubikey, и всё сработало. Мне удалось зарегистрировать тот же ключ, который выдавал ошибку в Chrome.

Интересно, что после регистрации в Firefox я смог войти в систему с помощью того же Yubikey в Chrome. Затем я повторил тот же процесс ещё раз в Chrome, но снова получил ту же ошибку.

Я думаю, что мы можем несколько сузить круг проблем.

3 лайка

Не могли бы вы сообщить, какие версии Chrome и FF вы использовали?

3 лайка

Версия Chrome 120.0.6099.234 (Официальная сборка) (arm64) и версия Firefox 122.0.1 (64-разрядная)

1 лайк

Столкнулся с той же проблемой прямо сейчас с YubiKey 5C NFC (версия 5.4.3) и YubiKey Security Key (синие) в браузере Arc, то есть Chromium (122.0.6261.57) на macOS.

Я сделал то же самое в Safari, и всё прошло отлично. И, как в вашем случае, использование этих ключей доступа не вызвало никаких проблем и в браузере Chromium.

3 лайка

Привет! Я так рада, что нашла эту тему! Я отчаянно пыталась добавить свой YubiKey на экземпляр Discourse, но у меня ничего не получалось — и я подумала: «Может, эти ребята используют самохостинг и где-то допустили ошибку в конфигурации?» Затем я решила поискать в Google и обнаружила, что на meta.discourse.org, кажется, уже упоминалось что-то подобное.

К сожалению, моя попытка настроить всё в браузере Brave (Chromium) снова полностью провалилась, точно так же, как и у автора оригинального поста.

Вот моя конфигурация:

  • macOS Big Sur 11.7.9 (20G1426) на старом MacBook Pro от Apple.
  • YubiKey 5 NFC: прошивка 5.4.3

Браузеры:

  • Brave [Chromium] Версия 1.73.91 Chromium: 131.0.6778.85 (Официальная сборка) (x86_64)
  • Safari: [WebKit] 16.6.1 (16615.3.12.11.5, 16615)
  • Firefox: [Gecko] 133.0
  • Microsoft Edge: [Chromium] Версия 131.0.2903.70 (Официальная сборка) (x86_64)

Итак, я запустила Safari, начала добавлять ключ доступа (passkey), сначала создала программный ключ, который Safari принял, а Discourse — тоже. Затем я попыталась добавить YubiKey 5 NFC как ключ доступа и как дополнительный метод двухфакторной аутентификации — и Discourse без проблем принял всё!

После настройки я протестировала всё в Firefox — всё заработало сразу; то же самое произошло с Microsoft Edge. А когда я вернулась в Brave, YubiKey теперь работал без каких-либо проблем.

Похоже, единственная проблема Discourse связана с первоначальным взаимодействием с ключом (или, точнее, с тем, что делает ключ «видимым» для браузера) в браузерах на базе Chromium. Как только ключ привязан к Discourse, его без проблем принимают любые другие браузеры. Я не пробовала это на Safari для iOS (YubiKey 5 NFC точно работает и там), но серьёзно подозреваю, что там тоже не будет никаких проблем.

Теперь мне нужно вернуться к тем многим установкам Discourse, к которым я ранее безуспешно пыталась подключиться, и проверить, работают ли они сейчас! :smile_cat:

2 лайка