Los problemas de inseguridad y usabilidad de las contraseñas son bien conocidos. Las contraseñas son algo que sabes, por lo que son vulnerables al olvido, lo cual ocurre con frecuencia. Por ello, el correo electrónico se utiliza ampliamente como respaldo para restablecer contraseñas.
El correo electrónico también tiene muchos problemas. Al igual que las contraseñas, las personas suelen reutilizar la misma dirección de correo electrónico en muchos servicios, lo que crea un riesgo para la privacidad si el correo electrónico es descubierto a partir del servicio. Cada vez es más difícil obtener una dirección de correo electrónico sin proporcionar información de identificación personal al servidor de correo. Como disuasivo contra el correo no deseado (y probablemente también porque facilita dirigir anuncios a los usuarios), los servicios de correo electrónico gratuitos suelen requerir proporcionar un número de teléfono, lo cual es fácil de asociar con una persona en particular. Los servicios de correo electrónico de pago podrían no requerir un número de teléfono, pero pagar por un servicio sin proporcionar información de identificación personal también es difícil, y depender de una suscripción a un servicio de correo electrónico de pago es vulnerable a cambios en las circunstancias financieras. Además, hoy en día es difícil alojar de manera confiable un servidor de correo electrónico propio. Además de los problemas de privacidad, la centralización creada por reutilizar una cuenta de correo electrónico en muchos servicios también genera un riesgo de seguridad, ya que un compromiso de la cuenta de correo electrónico comprometería muchas otras cuentas.
En la actualidad, no necesitamos contraseñas ni correos electrónicos para registrarnos o autenticarnos en un servicio. Discourse ya admite FIDO y TOTP, pero aún requiere una contraseña y una dirección de correo electrónico para registrarse y autenticarse. Sería excelente que Discourse hiciera opcionales las contraseñas y los correos electrónicos en favor de FIDO y TOTP.
La autenticación de un solo factor con FIDO puede ser muy conveniente, pero es vulnerable a la pérdida o destrucción del único token FIDO, similar al problema de registrarse con una contraseña pero sin dirección de correo electrónico. Para resolver esto, propongo que se requiera que los usuarios proporcionen al menos dos factores para registrarse, lo cual podría ser cualquier combinación de FIDO, TOTP y/o contraseña. Los usuarios que deseen autenticación sin correo electrónico y sin contraseña podrían simplemente registrar dos autenticadores móviles FIDO, como YubiKeys. Se podría aconsejar (o potencialmente exigir, especialmente para administradores) a los usuarios que registren más de los dos factores mínimos para evitar perder el acceso a sus cuentas.
Dado que los autenticadores FIDO de plataforma se están integrando en más y más dispositivos en estos días, con Windows Hello, Apple Touch ID y Face ID, y Android, este sistema de registro sin correo electrónico podría ser utilizable por usuarios no técnicos que no poseen hardware especializado de autenticadores móviles como un YubiKey. Los usuarios podrían registrarse con el autenticador FIDO de plataforma más una contraseña. La autenticación de un solo factor con el autenticador FIDO de plataforma podría funcionar sin problemas con esta configuración. Sin embargo, esto crearía un problema de usabilidad para la autenticación en nuevos dispositivos, ya que los usuarios no tendrían el autenticador FIDO de plataforma disponible en un nuevo dispositivo y confiar únicamente en la contraseña para configurar un nuevo dispositivo no sería seguro. Para resolver esto, propongo un flujo de trabajo similar al que Matrix utiliza para autenticar nuevos clientes. El usuario podría intentar iniciar sesión en un nuevo dispositivo con el autenticador FIDO de plataforma de ese dispositivo (un nuevo factor) y su contraseña (un factor ya registrado). Esto no iniciaría sesión realmente, pero crearía una solicitud para aprobar el nuevo autenticador FIDO en la cuenta. La interfaz de usuario en el nuevo dispositivo luego dirigiría al usuario a iniciar sesión en un dispositivo que ya tiene registrado para aprobar el nuevo dispositivo. Con los autenticadores FIDO de plataforma integrados en dispositivos móviles, esto podría ser prácticamente utilizable para una autenticación segura sin hardware especializado de autenticadores móviles o sin sacrificar la capacidad de usar cualquier dispositivo improvisado, como un quiosco público.
Acabo de idear este sistema de registro y autenticación anónimos ayer después de recibir mis YubiKeys. No tengo conocimiento de ningún sistema que implemente esto. Me encantaría ver que una aplicación web madura y ampliamente desplegada como Discourse sea pionera en un futuro sin necesidad de correo electrónico u otra información de identificación personal para usar Internet.