Registro y autenticación sin correo electrónico ni contraseña

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.

3 Me gusta

Es probable que sea cierto. Pero es difícil imaginar que alguien que inicie sesión con el sistema que propones no sepa qué es un gestor de contraseñas. He estado utilizando un gestor de contraseñas durante una década o más, tengo varias claves FIDO, uso Google Authenticator y no termino de entender lo que propones.

Parece improbable que se añada un sistema así a menos que al menos algunos clientes empresariales lo deseen. Creo que equivale a al menos 50 horas de trabajo para alguien que conoce mucho el sistema de autenticación, y probablemente el doble con las especificaciones adecuadas. Hace un tiempo hubo un intento de integrarse con Keybase, lo cual podría hacer parte de lo que buscas, pero no creo que haya avanzado mucho.

Es una idea interesante, aunque. Quizás sea más fácil de lo que pienso.

1 me gusta

Cualquier persona con un dispositivo reciente que tenga un autenticador de plataforma FIDO integrado podría usarlo con bastante facilidad. En unos pocos años, esto podría ser posible para casi cualquiera.

Lo dije en el título: haz que el correo electrónico sea opcional. Sería genial también hacer que las contraseñas sean opcionales.

Estoy seguro de que requeriría una cantidad considerable de trabajo implementarlo. Creo que la parte más difícil sería lograr que el diseño de la experiencia de usuario (UX) sea realmente claro. Discourse ya tiene los componentes básicos en su lugar, con la autenticación de dos factores (2FA) que soporta FIDO y TOTP.

1 me gusta

Un primer paso pequeño para implementar esto podría ser agregar la interfaz de usuario para registrar FIDO y TOTP en la interfaz de registro, de modo que no sea necesario realizar un paso adicional en las preferencias después del primer inicio de sesión. Más adelante, el diseño de la interfaz de usuario podría mejorarse aún más para hacer que el correo electrónico y la contraseña sean opcionales.

1 me gusta

Me pregunto qué piensa @codinghorror sobre esto, considerando sus diversas entradas de blog sobre contraseñas.

3 Me gusta

El correo electrónico debería ser opcional. Usar el correo electrónico es cada vez más poco fiable, imposible debido al oligopolio de los grandes proveedores de correo electrónico.

Ahora, de repente, Gmail está bloqueando mi nombre de dominio.

  • Incluso después de configurar perfectamente toda la seguridad del correo electrónico (SPF, DKIM, DMARC, …) durante años
  • ¿Qué quiero decir con perfecto? Todas las herramientas de prueba e informes de seguridad de correo electrónico muestran “100% OK” y
  • el nombre de dominio tampoco ha estado en ninguna lista de spam (spamhouse…) durante años.

Pero, ¿puedes contactar con Gmail? Claro…

Cita Sender Contact Form - Gmail Help

Utilizaremos la información que proporciones para investigar y mejorar nuestros sistemas de detección de spam y abuso. Lamentablemente, no podemos proporcionar detalles sobre nuestros hallazgos durante o después de la investigación.

Así que, probablemente, la respuesta será algo como “sí, lo revisamos, no lo arreglamos, el problema es tuyo pero no compartes ningún ejemplo de spam y no te decimos cuál es el problema”… Eso, si es que hay algún problema.

De todos modos, usé ese formulario de contacto. Tarda dos semanas en responder, decía el formulario al final. Eso hace que el correo electrónico sea prácticamente poco fiable y demasiado engorroso para trabajar con él.

No es solo mi experiencia.

Mucha gente ha escrito sobre experiencias similares.

Estas artimañas se suman a todas las dificultades técnicas de autoalojar tu servidor de correo electrónico.

¿Podrías hacer que el correo electrónico sea opcional?

  • Al registrarse con dirección de correo electrónico: La recuperación de contraseña será posible.
  • Al registrarse sin dirección de correo electrónico: La recuperación de contraseña será imposible.
  • Si el administrador del sitio lo permite (configuración opcional), advierte al usuario pero permite el registro sin dirección de correo electrónico.
  • Solo nombre de usuario + contraseña.

Temas similares:

1 me gusta

Una solución rápida y sencilla es utilizar otro sistema para la autenticación utilizando Discourse Connect.

Mi estimación anterior de lo difícil que sería crear un sistema sin correo electrónico está muy equivocada. Utilizar otro identificador con un nombre de host not-email.invalid para esos correos electrónicos debería ser factible. Creo que el plugin Sign-In with Ethereum podría hacer lo que buscas, si estás dispuesto a que la gente use Ethereum, pero algo similar también podría funcionar. Necesitas alguna forma de establecer la identidad.

Necesitas alguna forma de establecer identidad.

Solo nombre de usuario + contraseña.

Entonces, ¿cualquiera (o cualquier bot) en todo Internet puede ir a tu foro y crear un número infinito de cuentas inventando un nombre de usuario y una contraseña?

Sí.

Según mi experiencia con varias aplicaciones web, los bots de spam no tienen muchos problemas para crear direcciones de correo electrónico de Gmail y otras. En mi sitio, tampoco excluimos las direcciones de correo electrónico temporales y desechables. También hay otro software de foros / foros que permiten el registro sin (o sin una dirección de correo electrónico válida) y esto tampoco ha causado ningún problema que yo haya visto. Por lo tanto, no veo las direcciones de correo electrónico como una gran barrera para evitar una avalancha de cuentas de bots / ataques DOS.

Pero puedo ver de dónde vienes. Permitir que los usuarios se registren sin dirección de correo electrónico podría generar muchos problemas de seguimiento. ¿Qué pasa si hay una gran avalancha de ataques de bots y / o ataques DOS donde se crea un número de cuentas de foro increíblemente grande?

En ese caso, se requerirían medidas de prevención contra el spam. Pero estas no serían específicas de aquellas instancias de foros donde el correo electrónico es opcional en comparación con aquellas donde el correo electrónico es obligatorio.

Eso se debe a que los spammers hoy en día también tienen acceso a muchas direcciones de correo electrónico creadas o pirateadas. También podrían usar proveedores de correo electrónico temporal. O comprar / robar un nombre de dominio y configurar su propio servidor de correo electrónico solo para fines de configuración de foros de spam.

Las mismas preguntas surgirían tanto de los usuarios que usan / no usan correo electrónico. A efectos de esta discusión, preguntas teóricas.

  • ¿Cómo ver todas las cuentas que se crearon desde hace X días, que iniciaron sesión menos de X minutos, que tienen 0 publicaciones? Probablemente cuentas de bots. Quiero encontrar y eliminar todas estas.
  • ¿Cómo agregar una pregunta personalizada / rompecabezas / captcha / lo que sea antes de aceptar un registro?
  • ¿Podría el panel de administración tener un botón fácil donde los administradores puedan aprobar / desaprobar fácilmente nuevos registros capaces de manejar el spam de registro masivo?

Parece que Google ha encontrado una solución interesante para esto usando códigos QR y Bluetooth:

1 me gusta

Relacionado: Users logging with SSO, without email address

1 me gusta

Ahora que las claves de acceso son tan prevalentes, muchos servicios ofrecen registro sin contraseña en el que nunca tienes que crear una. Tener una contraseña anula los beneficios de seguridad de las claves de acceso. De manera similar, usar el correo electrónico como método de recuperación significa que la seguridad de todas tus cuentas depende de la seguridad de tu cuenta de correo electrónico. Requerir contraseñas/correo electrónico es malo para la seguridad y la privacidad del usuario, sin mencionar lo fácil que es crear nuevas cuentas de correo electrónico. Puedo decir por experiencia que el requisito de correo electrónico no detiene en absoluto a los bots que envían spam a tu foro. Una de las principales razones por las que los servicios han requerido históricamente un correo electrónico es para que puedas recuperar tu cuenta en caso de que olvides tu contraseña, pero con las claves de acceso se almacenan en tu gestor de contraseñas y se sincronizan en todos los dispositivos. Incluso puedes añadir varias claves de acceso a una cuenta, lo que elimina en gran medida el problema de que la gente olvide su contraseña. Aquí tienes algunos ejemplos de sitios que implementan el registro sin contraseña:

https://app.uninbox.com/ Creo que este es especialmente bueno ya que no requiere correo electrónico
https://www.kayak.com/

1 me gusta

Por favor, explícamelo como si tuviera 80 años.

Target ofrece registro usando solo passkey (con opción de correo electrónico/contraseña) y Discourse te obliga a usar correo electrónico o correo electrónico a través de SSO. Kayak (realmente no me gusta ese nombre de dominio, por cierto :smirking_face:) usa solo Google SSO, y Discourse ya ofrece eso.

Entonces, la pregunta abierta aquí es si existe una opción similar a la que usa Target, porque la opción Kayak ya está ahí (no limitaría el registro solo a usuarios de Google, pero eso soy solo yo).

¿Qué sucede cuando un usuario de Target cambia, por ejemplo, de iPhone a Android?

Kayak en realidad te permite registrarte con una passkey si introduces tu correo electrónico. Desafortunadamente, el correo electrónico todavía es necesario.

Tus passkeys deberían sincronizarse con tu gestor de contraseñas para que estén disponibles. También puedes añadir múltiples passkeys a una cuenta, por lo que puedes crear una nueva con el nuevo teléfono también. Actualmente están trabajando para hacerlas exportables para que puedas moverte entre gestores de contraseñas más fácilmente.

1 me gusta