Siguiendo Support passwordless login with Passkeys y tras unas semanas de pruebas internas, nos complace anunciar que la compatibilidad con las passkeys ya está disponible en Discourse.
¿Qué son las passkeys?
Las passkeys son una alternativa más segura y sencilla al uso de contraseñas para la autenticación. La creación y el uso de una passkey están ahora ampliamente soportados en plataformas y navegadores. En comparación con las contraseñas, las passkeys tienen una seguridad integrada mejorada gracias a credenciales sólidas generadas por la plataforma y a la validación biométrica de la identidad (como Touch ID, Face ID, PIN o contraseña del dispositivo). Las passkeys también son seguras frente a fugas de datos en el lado del servidor (la parte privada de la clave nunca sale del dispositivo) o el phishing (cada clave está vinculada a un solo sitio web/servicio).
Despliegue de la función
Si eres un cliente alojado, la compatibilidad con passkeys se desplegará en tu instancia en los próximos días. Si deseas habilitarlas de inmediato, ponte en contacto con @team aquí en meta o por correo electrónico a team@discourse.org.
Si alojas Discourse tú mismo, ten en cuenta que la función se habilitará por defecto en el núcleo de Discourse en breve ya está habilitada por defecto en el núcleo a partir de este commit. Si deseas deshabilitarla, puedes hacerlo a través de la consola de Rails:
launcher enter app
rails c
SiteSetting.enable_passkeys = false
Ten en cuenta que las passkeys solo se pueden usar en instancias de Discourse con inicios de sesión locales habilitados. Si tu instancia no utiliza inicios de sesión locales, la función de passkeys no tiene ningún efecto.
Una vez habilitada la función, los usuarios pueden añadir passkeys a su cuenta yendo a la pestaña de seguridad de sus preferencias de usuario:
Una vez registrada una passkey, pueden iniciar sesión con ella a través del menú desplegable de autocompletado debajo del campo del nombre de usuario (1) o haciendo clic en el botón “Iniciar sesión con una passkey” (2).
Una vez completada la implementación inicial de la función, podemos considerar la posibilidad de realizar las siguientes mejoras:
Permitir la configuración de una passkey al crear una cuenta.
Permitir el uso de passkeys al confirmar acciones sensibles (actualmente soportado en la pestaña Seguridad de las Preferencias del Usuario pero no en algunas pantallas solo para administradores).
Permitir la eliminación de contraseñas por completo (¿por usuario o por instancia?).
¡Esta es una gran adición! Sin embargo, los beneficios de seguridad se pueden eludir fácilmente iniciando sesión con una contraseña. Esperaba que todavía se me pidiera una clave de acceso después de ingresar mi contraseña, pero simplemente inicia sesión con la contraseña. Esto se puede evitar volviendo a registrar las claves de seguridad en la configuración separada de 2FA, pero eso no es obvio y es engorroso.
En la mayoría de las implementaciones actuales, las claves de acceso aún no se están implementando de esta manera. Se tratan de forma independiente de la autenticación de dos factores (2FA), véase este informe sobre el enfoque de Youtube. Creo que la industria se adaptará lentamente a esto.
Se necesitan dos cambios para que esto funcione como esperas:
paso 1: permitir el uso de claves de acceso como 2FA (actualmente, como has señalado, las claves de seguridad deben registrarse de forma independiente)
paso 2: aplicar la 2FA en los inicios de sesión con contraseña cuando el usuario haya añadido una clave de acceso
El paso 1 tiene sentido para mí y no es disruptivo. El paso 2 también tiene sentido, pero es un poco disruptivo; si el usuario elimina la clave de acceso de su navegador (o no la tiene en un dispositivo determinado), se bloqueará el acceso.
Creo que tiene sentido investigar esto, sin embargo.
Creo que Firefox está trabajando activamente para añadir soporte para passkeys en general, pero todavía no está al 100% si estoy interpretando este gráfico correctamente.
Dependiendo de tu versión y sistema operativo, es posible que aún no esté disponible. Acabo de hacer una prueba rápida en macOS e iOS, y la autenticación con passkeys estuvo disponible y funcional para mí aquí en meta.discourse.org.
Puedes escribir un mensaje privado a @team aquí o enviar un correo electrónico a team@discourse.org y podemos desactivar esta función para ti. No recomendamos hacerlo, muchos servicios en la web están adoptando passkeys como una opción más segura para la autenticación.
¿Está en los planes poder deshabilitar la contraseña por completo (preferiblemente según la configuración de la cuenta, ya que veo que obligar a sitios enteros a hacerlo no terminará bien)? Porque tener tanto una passkey como una contraseña activas limita un poco la utilidad de la passkey. Se puede mitigar un poco creando una contraseña absurdamente compleja y simplemente sin usarla, pero eso es solo eludir el propósito de las passkeys.
Si entiendo correctamente el mecanismo de passkey, necesitas tener instalado un contenedor de confianza, como un gestor de contraseñas, para almacenar las claves de acceso. Eliminar las contraseñas asume que todos los usuarios han instalado dicho gestor, entonces, ¿cómo iniciarán sesión aquellos usuarios que no lo han hecho?
De la misma manera que las personas que no usan 2FA acceden a sitios que requieren 2FA: no lo hacen.
Tampoco es una preocupación real, ya que Chrome, Safari, Windows, iPhones, Android, Yubi, etc., son alternativas a los administradores de contraseñas (que ya deberías estar usando en 2024 de todos modos) y todos funcionan con passkeys.
Tampoco estaba sugiriendo obligar a todos los usuarios a no tener contraseña (aunque estoy de acuerdo con eso), pero si TÚ, el usuario de passkey, no puedes deshabilitar tu contraseña, entonces la passkey tiene mucho menos propósito y sigues siendo completamente susceptible a phishing.
Si eligiera las claves de acceso para Discourse, ya no usaría mi contraseña, así que ¿cómo puedo ser susceptible al phishing? Entiendo que el riesgo de ataque malicioso o de fuerza bruta al inicio de sesión con contraseña seguirá existiendo, y tu sugerencia de deshabilitarlo por usuario es válida, pero ¿no por phishing?
¿Alguna novedad sobre la posible compatibilidad con la creación de cuentas solo con passkeys y sin contraseña? Parece casi inútil admitir passkeys cuando de todos modos se requiere una contraseña.