No se puede registrar Yubikey como passkeys para inicio de sesión sin contraseña

Tengo un problema extraño: no puedo registrar Yubikeys (estoy usando la serie 5 y tengo 4 de ellas) como claves de acceso en ningún foro de Discourse. Puedo registrar la clave de acceso de mi teléfono Android y la clave de acceso de mi gestor de contraseñas con éxito.

Cuando intento registrar Yubikey, siempre obtengo el siguiente error:

Sin embargo, se crea una clave residente en mi Yubikey. Lo confirmo con ykman fido credentials list.
image

Esta clave, obviamente, no funciona cuando intento iniciar sesión de nuevo.

Posteriormente, intenté registrar la clave en mi propia instalación de Discourse para verificar los registros y este es el error que veo:

COSE::MalformedKeyError (Entrada de clave CBOR mal formada) lib/discourse_webauthn/registration_service.rb:161:in `extract_public_key_and_credential_from_attestation' lib/discourse_webauthn/registration_servic

Quiero entender si este es un problema conocido, ya que no encontré nada en el foro sobre que Yubikey no funcione. Si no es así, estaré encantado de compartir cualquier detalle adicional que pueda ser necesario.

2 Me gusta

No estoy seguro de si una yubikey sería un buen candidato para una passkey, ¿solo la bio?

Sin embargo, no deberían ocurrir errores y deberíamos tener algunas yubikeys para probar. @pmusaraj ayudará a clasificar esto.

EDITAR La bio funciona como passkey. ¿No estoy seguro de que algo que no sea la bio sea adecuado como passkey? En ese punto, solo tienes 1 factor.

2 Me gusta

¿Puedes registrar estas YubiKeys en una aplicación de claves de acceso que no sea de Discourse, como Github, Google o una implementación de prueba como https://www.passkeys.io/?

2 Me gusta

@pmusaraj Sí, los he registrado correctamente en Google, GitHub, Vercel y algunos servicios más y funcionan bien.

@sam Yubikey Series 5 es un buen candidato para passkey porque combina algo que sé (PIN) y algo que tengo (el token en sí) para usar como passkey. Ni siquiera mostrará las claves residentes sin el PIN. La serie Bio reemplaza el PIN con datos biométricos.

4 Me gusta

Gracias por revisar, @rishabhlakhotia. Veo los errores en nuestros registros en meta y la ubicación de este fallo es una función general de atestación de clave de seguridad que no ha tenido cambios desde hace cuatro años. También es utilizada por el proceso de clave de seguridad 2FA.

¿Puedes registrar la Yubikey como clave de seguridad de autenticación de dos factores aquí en meta?

2 Me gusta

¿Cuál es la salida de ykman list?

Mi YubiKey 5 NFC (5.1.2) funciona bien como clave de acceso aquí en Meta.

Me registré con Chromium y puedo usarlo para iniciar sesión con Chromium, Firefox y Edge.

3 Me gusta

Cualquier Yubikey con claves residentes debería ser adecuado, ya que el navegador puede forzar la autenticación multifactor en ella: tanto la comprobación de presencia (tocar la clave) como el PIN de Yubikey que se debe configurar.

6 Me gusta

Sí, tengo las cuatro Yubikeys registradas como Claves de Seguridad. Para evitar posibles casos extremos, lo intenté de nuevo eliminando dos de ellas como claves de seguridad para volver a registrarlas como passkeys, pero ni siquiera eso funcionó.

Tengo YubiKey 5C NFC (5.4.3) y uso el navegador Chrome.

Sé que si una llave tiene una credencial de Llave de Seguridad para un sitio, intentar usarla como passkey fallará, me ha pasado.

Pero eliminar la Llave de Seguridad y volver a registrarla como passkey debería funcionar.

2 Me gusta

ACTUALIZACIÓN: Gracias a la respuesta de @supermathie, acabo de descargar Firefox y he intentado registrar la Yubikey y ha funcionado. Pude registrar la misma clave que daba un error en Chrome.

Curiosamente, una vez registrada en Firefox, pude iniciar sesión usando la misma Yubikey en Chrome. Luego repetí el mismo proceso una vez más en Chrome pero obtuve el mismo error, una vez más.

Creo que podemos acotar un poco el problema.

3 Me gusta

¿Puede indicarnos la versión de Chrome y FF que probó?

3 Me gusta

Versión de Chrome 120.0.6099.234 (Build oficial) (arm64) y Versión de Firefox 122.0.1 (64 bits)

1 me gusta

Enfrenté el mismo problema ahora mismo con una YubiKey 5C NFC (5.4.3) y una YubiKey Security Key (las azules) con el navegador Arc, es decir, Chromium (122.0.6261.57) en macOS.

Hice lo mismo con Safari y funcionó perfectamente. Y al igual que en tu caso, usar esas Passkeys no planteó ningún problema con el navegador Chromium tampoco.

3 Me gusta

¡Hola, me alegra mucho haber encontrado este hilo! Estaba intentando desesperadamente añadir mi YubiKey en una instancia de Discourse, lo cual no estaba funcionando correctamente. Pensé, bueno, quizás ellos mismos lo alojan y tienen algún error de configuración. Luego pensé que podría buscarlo en Google y vi que meta.discourse.org parecía haberlo mencionado en algún momento.

Desafortunadamente, mi intento de configurar las cosas en Brave (Chromium) falló por completo, como antes, y tal como informó el OP.

Aquí está mi configuración:

  • macOS Big Sur 11.7.9 (20G1426) ejecutándose en un antiguo MacBook Pro de Apple.
  • YubiKey 5 NFC Firmware: 5.4.3

Navegadores:

  • Brave [Chromium] Versión 1.73.91 Chromium: 131.0.6778.85 (Build oficial) (x86_64)
  • Safari: [WebKit] 16.6.1 (16615.3.12.11.5, 16615)
  • Firefox: [Gecko] 133.0
  • Microsoft Edge: [Chromium] Versión 131.0.2903.70 (Build oficial) (x86_64)

Así que, lancé Safari, procedí a añadir una clave de acceso, comencé con una clave de acceso basada en software, que a Safari le gustó y Discourse aceptó; luego, adicionalmente, intenté añadir la YubiKey 5 NFC como clave de acceso y como confirmación adicional de 2FA, ¡y Discourse no tuvo problemas en aceptar todo!

Una vez configurado, probé con Firefox y funcionó de inmediato; lo mismo ocurrió con Microsoft Edge. Y, al volver a Brave, ahora funcionaba con la YubiKey sin ningún problema.

Parece que el único problema que tiene Discourse es con la comunicación inicial con la clave (o, más bien, lo que permite que la clave sea ‘visible’ para el navegador) en los navegadores basados en Chromium. Una vez que esa clave se asigna a Discourse, será fácilmente aceptada por cualquier otro navegador. No lo probé en Safari para iOS (la YubiKey 5 NFC definitivamente funciona con él también), pero sospecho seriamente que tampoco tendrá problemas allí.

¡Ahora tendré que volver a esas muchas configuraciones de Discourse a las que me uní sin éxito y ver si funcionan ahora! :smile_cat:

2 Me gusta