4 puntos por GN⁺ 2024-01-01 | 1 comentarios | Compartir por WhatsApp

La dirección de correo electrónico no es adecuada como identificador "permanente" de una cuenta

  • Usar una dirección de correo electrónico como identificador interno permanente de una cuenta es problemático. Las direcciones de correo de las personas pueden cambiar incluso dentro de una organización, por razones similares a las que cambian los nombres o los datos de inicio de sesión.
  • Que una organización no cambie ni reasigne las direcciones de correo asignadas a las personas puede no ser legalmente sostenible.
  • Existe la posibilidad de que una dirección de correo sea reutilizada o reasignada a otra persona específica, lo que puede generar problemas de seguridad.

Los identificadores internos no deben tener significado

  • Aunque sea necesario recordar una dirección de correo para la recuperación de la cuenta, el identificador interno de la cuenta no debería tener significado. Esto simplifica la administración del sistema a largo plazo.
  • En sistemas de autenticación como OIDC, se debe usar un ID interno único y permanente en lugar de una dirección de correo electrónico.
  • Darle demasiado significado a una dirección de correo puede provocar problemas de seguridad.

La opinión de GN⁺

  • Lo más importante de este texto es que usar una dirección de correo como identificador permanente de una cuenta puede causar varios problemas.
  • Este tema resulta interesante porque muchos sistemas usan direcciones de correo para autenticar usuarios, pero este texto señala que esa práctica puede generar riesgos de seguridad potenciales y problemas de administración.
  • Este texto puede ayudar a que los ingenieros de software tomen mayor conciencia sobre aspectos importantes de seguridad y administración que deben considerar al diseñar sistemas internos.

1 comentarios

 
GN⁺ 2024-01-01
Opinión de Hacker News
  • Las limitaciones del correo electrónico y los nombres de usuario

    • Las direcciones de correo electrónico pueden cambiar, y las personas pueden perder acceso a sus correos anteriores.
    • Hay descontento con los nombres de usuario, y la gente quiere elegir nombres que no sean únicos. Por ejemplo, en lugar de algo como user53267.
    • También hay casos en los que se pierde el dispositivo, y no basta con un UUID secreto guardado en cookies o solo una passkey del dispositivo.
    • Hay personas para quienes el correo o el nombre de usuario son estables, pero casi nadie usa el mismo dispositivo principal durante más de varios años.
    • A menudo surgen problemas con cuentas de correo corporativas (first.last@company.com) y con la forma en que el software de proveedores usa “Iniciar sesión con Google”.
    • La gente se casa, se divorcia, hace transición de género y se muda de cultura, eligiendo nuevos nombres. Los nombres y las direcciones de correo cambian.
    • Es posible que cosas como OIDC necesiten una API estándar que permita cambiar nombres de usuario y direcciones de correo electrónico.
  • Formas personales de afrontarlo

    • Gmail puede quedar bloqueado arbitrariamente por algoritmos de IA, y es difícil obtener ayuda cuando algo sale mal.
    • Yahoo puede pedir verificación con un correo antiguo, lo que puede hacer que se pierda el acceso.
    • Yahoo/AOL/Tutanota/Protonmail, entre otros, pueden borrar automáticamente cuentas si no se inicia sesión con frecuencia.
    • El self-hosting requiere un correo inicial, y si se pierde, también se pierde el acceso a la cuenta de hosting.
    • Duo push puede volverse un problema cuando el teléfono se descompone.
    • La verificación por SMS puede ser riesgosa por fallas del teléfono, pérdida de acceso al plan o problemas de seguridad de empleados.
    • Usar una dirección de Gmail de la universidad parece ser, por ahora, la mejor opción. Si algo sale mal, se puede pedir ayuda al centro de soporte de la universidad.
  • Problemas del correo electrónico y los números telefónicos

    • El correo electrónico no es bueno como identificador permanente, y usar un número telefónico como parte de la identificación es todavía peor.
    • Se ha usado el mismo correo durante casi 20 años a través de un dominio propio, pero en ese mismo período se han tenido casi 12 números telefónicos distintos.
    • Se pagan aproximadamente $150 al mes a AT&T para conservar un número de EE. UU. incluso viviendo en el extranjero.
  • Propuesta de direcciones de correo con clave pública

    • Se plantea la idea de soportar direcciones de correo con clave pública (<pk-12345@gmail.com>).
    • Aunque Google o Hotmail suspendan el servicio, se podría autenticar con la clave privada en otro servicio y seguir accediendo a la misma cuenta.
    • Esto permitiría que los clientes de correo mapeen esas direcciones o las rastreen por clave pública.
    • La idea requeriría soporte a gran escala, pero vale la pena considerarla.
  • Uso de UUID

    • Se opina que un UUID aleatorio es la mejor opción.
    • Hashear el correo inicial del usuario puede no ser suficiente solo con salting.
  • Vincular múltiples direcciones de correo

    • Se está cambiando el sistema de correo para permitir vincular varias direcciones a una cuenta.
    • Para ofrecer descuentos estudiantiles, la forma más fácil es verificar un correo educativo, pero la mayoría de la gente no quiere registrarse con ese correo.
    • Al permitir varios correos, se pueden obtener las ventajas de ambos mundos.
  • Problemas al vincular direcciones de correo con direcciones físicas

    • Se da el ejemplo de un proveedor de energía que no permite usar una misma dirección de correo para varias direcciones físicas.
    • Esto causa problemas al configurar cuentas en línea porque no se puede usar la misma dirección de correo.
  • Solución del lado del cliente

    • Se puede pagar un dominio para tener control total de los alias de correo.
    • Incluso si hay problemas con el proveedor actual (Google), se puede alojar el correo en un servidor propio para recuperar la cuenta y conservar la propiedad del alias.
  • El problema de identificación y autenticación

    • Hay un problema al mezclar en la discusión la identificación con la autenticación.
    • El problema de identificación está prácticamente resuelto mediante cadenas o números únicos vinculados a una persona, como nombres, correos o documentos de identidad.
    • El problema de autenticación consiste en verificar quién es realmente alguien, y es uno de los mayores retos de la tecnología moderna.
    • Se usan combinaciones de contraseñas, ubicación geográfica, dirección IP, correo electrónico, número telefónico, tokens de seguridad y certificados, pero estos sistemas se vulneran regularmente, y reforzar la seguridad suele afectar negativamente a los usuarios legítimos.
  • Problema de backend

    • Para el usuario, el correo es el ID, pero dentro de los datos del sistema no se debe usar el correo como clave primaria.
    • Es un problema básico de diseño de bases de datos: se debe tener una tabla de búsqueda que lo mapee a un ID único, como un UUID o un autoincremental de una secuencia, en lugar de usar identificadores como el correo.
    • El artículo no deja clara esta distinción, por lo que puede leerse como si el usuario tuviera que ser consciente de esa abstracción.