11 puntos por GN⁺ 2025-08-08 | 3 comentarios | Compartir por WhatsApp
  • Recientemente, muchos servicios han adoptado el método de inicio de sesión con códigos de 6 dígitos por correo electrónico o número de teléfono
    • El usuario ingresa su correo o número de teléfono, recibe un código de verificación de 6 dígitos y lo introduce para iniciar sesión
  • Este método provoca vulnerabilidades graves en la seguridad de las cuentas
    • Un atacante puede simplemente introducir el correo electrónico de otra persona en un servicio legítimo para solicitar el envío de un código de verificación
    • Esto genera el problema de que al usuario le resulta difícil saber si el código recibido realmente corresponde a una situación en la que debe usarse o si se trata de un intento de phishing
    • Las herramientas tradicionales de prevención de phishing, como los password managers (administradores de contraseñas), no son efectivas
  • En la práctica, este método de códigos de verificación sigue siendo explotado de forma continua
    • En el inicio de sesión de cuentas de Minecraft operado por Microsoft también se usa un método similar
    • En diversas comunidades en línea y medios como Reddit y YouTube se han reportado múltiples casos de robo de cuentas

Conclusión

El método de autenticación por correo electrónico con códigos de 6 dígitos es más vulnerable de lo esperado en términos de seguridad

  • En comparación con el sistema tradicional de contraseñas, el riesgo de phishing aumenta considerablemente
  • Aunque se introdujo para mejorar la experiencia del usuario o la seguridad, en la práctica puede provocar resultados peores

3 comentarios

 
roxie 2025-08-14

No me identifica mucho, porque me parece que es un truco que solo funciona en circunstancias muy específicas.

 
yinn27 2025-08-08

Si usas passkeys y luego pierdes el dispositivo, de verdad sería súper complicado...

 
GN⁺ 2025-08-08
Opiniones de Hacker News
  • El patrón de ataque funciona así
    1) El usuario se registra en un sitio fraudulento
    2) Ese sitio le indica: “Te enviamos un código de inicio de sesión del sitio GOOD por correo; ingrésalo”
    3) El sitio fraudulento inicia en el sitio GOOD el flujo de “iniciar sesión con código de un solo uso por correo” usando el correo del usuario
    4) El sitio GOOD le envía al usuario el código de inicio de sesión por correo
    5) El usuario ve que el correo viene de GOOD, confía en él e ingresa el código
    6) El usuario introduce el código en el sitio fraudulento
    7) El sitio fraudulento usa ese código para iniciar sesión en el sitio GOOD haciéndose pasar por el usuario
    Por eso, el método de autenticación de “enviar códigos de un solo uso por correo” es muy vulnerable al phishing
    El método de “hacer clic en un enlace dentro del correo” es un poco mejor, porque es más incómodo y sospechoso que el usuario copie y pegue ese enlace en el sitio fraudulento
    Aun así, si un servicio de correo popular empieza de repente a bloquear esos correos de inicio de sesión o incluso los enlaces mismos, muchos usuarios podrían quedarse sin poder iniciar sesión
    Passkeys es la forma más correcta de hacerlo
    El soporte de passkeys en los administradores de contraseñas está mejorando cada vez más
    Incluso si pierdes el dispositivo donde guardaste tus passkeys y con eso pierdes todas, sigo convencido de que es mucho más seguro que el esquema tradicional de contraseñas
    Prefiero que la abuela tenga que ir al banco para recuperar acceso a su cuenta antes de que alguien le robe todo su dinero con phishing

    • El problema de las passkeys es más complejo que simplemente “si pierdes el dispositivo, pierdes el acceso” (según la configuración, puede haber solución incluso si se pierde el dispositivo)
      El mayor problema es la attestation
      Permite que los servicios bloqueen a quienes usan herramientas que aumentan la libertad del usuario, como soluciones de autenticación de código abierto
      Las passkeys y los protocolos tipo challenge-response originalmente podían haber sido una mejora enorme para reemplazar las contraseñas
      Pero en la práctica están diseñados de una manera que fortalece todavía más el dominio de BigTech y reduce la libertad del usuario

    • Sobre eso de que “es mejor que la abuela vaya al banco a recuperar la cuenta”
      Hay que pensar qué pasa si alguien la amenaza con un arma, la obliga a desbloquear la cuenta y además le roba todo el dinero
      En el país del tercer mundo donde vivo, el robo de smartphones es tan grave que incluso 2FA resulta inviable en la práctica
      Una vez me tocó recuperar 2FA y fue un infierno
      Con contraseñas, desde cualquier lugar bastaba con entrar a Bitwarden y listo

    • Configuré una passkey en github y confirmé que está guardada en Chrome
      Cuando intento iniciar sesión en github con la passkey, Chrome muestra una ventana emergente pidiendo el PIN del administrador de contraseñas de Google
      No sé cuál es ese PIN y tampoco encuentro forma de restablecerlo
      No hay ninguna indicación sobre ese PIN ni en el perfil de Google, ni en el administrador de contraseñas, ni en la configuración de seguridad

    • En cuanto a la idea de que está bien que la abuela vaya al banco para recuperar la cuenta
      Yo sí puedo ir personalmente al banco o al help desk de TI de una empresa para recuperar una cuenta,
      pero no puedo ir a las oficinas centrales de Google, Facebook o Xitter para que hagan eso
      Las passkeys ligadas al dispositivo tienen una probabilidad muy alta de fallar en casos así
      La mayoría de los usuarios ni siquiera piensa en este tipo de situaciones

    • Las passkeys por sí solas no bastan
      La idea es no repetir los mismos errores de siempre
      El administrador de contraseñas debería ser la base, y solo en casos realmente excepcionales (por ejemplo, cuentas de correo o cuentas financieras) habría que introducir MFA dedicado
      También creo que la configuración de MFA debería obligar a establecer al menos 3 métodos, y requerir usar 2 o más de ellos
      Si no admite casi todos los métodos —códigos impresos, apps de autenticación independientes del sistema operativo, llaves de hardware como yubikey, etc.— entonces ese MFA no vale la pena

  • Recibo cuatro veces al día correos de notificación de solicitud de restablecimiento de contraseña de mi cuenta Microsoft
    Son correos con un número de 6 dígitos, y con eso se puede recuperar la cuenta
    Al final, eso significa que un atacante puede intentar secuestrar mi cuenta 4 veces al día con una probabilidad de 1 en un millón cada vez
    Si lo intenta contra miles de cuentas, cada día puede romper algunas gratis
    Incluso envié un reporte de seguridad sobre esto, pero se negaron a actuar diciendo que matemáticamente no demostraba suficientemente la vulnerabilidad
    Así que lo único que queda es aguantar el spam y rezar para que no me roben la cuenta

    • Lo resolví agregando un alias de inicio de sesión
      Bloqueé el inicio de sesión con el correo original de la cuenta (el correo público) y dejé que solo se pueda iniciar sesión con un alias que es una cadena aleatoria privada
      Desde entonces no he vuelto a ver ni un solo intento de inicio de sesión externo
      [Cómo configurarlo: account.microsoft.com > Tu información > preferencias de inicio de sesión > agregar correo > agregar alias y establecerlo como predeterminado > en preferencias de inicio de sesión elegir permitir solo el alias]

    • A mí me pasó lo mismo
      Sospecho que quizá tenga que ver con haber tenido que usar Microsoft Teams

    • Si un atacante usara este método contra 125,000 cuentas, podría sacar una cuenta al día en promedio
      Si no apunta a una cuenta concreta sino al conjunto completo, la eficiencia por tiempo invertido es bastante buena
      Para resolver esto, en vez de un límite fijo de 4 intentos, habría que aplicar exponential backoff aumentando el tiempo de espera con cada fallo

    • A mí también me siguen llegando mensajes parecidos desde una cuenta vieja de Instagram
      “¿Tienes problemas para iniciar sesión? ¡Haz clic aquí para cambiar tu contraseña!”

    • Me pasó exactamente lo mismo con una cuenta vieja e inútil
      Revisé las direcciones IP de los intentos de inicio de sesión y venían de varios ISP de todo el mundo, en su mayoría desde redes /16 distintas entre sí
      Si hasta para una cuenta “inútil” están movilizando una botnet, me preocupa cuánto peor debe ser para la gente realmente expuesta a amenazas
      Agregué 2FA y se resolvió por completo
      Todavía no sé cómo descubrieron ese flujo de inicio de sesión con código de 6 dígitos (porque a mí siempre me dejaba entrar directo después de poner la contraseña)
      Aun así, desde que agregué 2FA no he vuelto a ver un solo intento adicional
      Los códigos 2FA también los guardo en el administrador de contraseñas
      Me alegra que ya no puedan atacar la “contraseña” automática de 6 dígitos de Microsoft (¡ni siquiera letras, solo números!)

  • Lo peor de este tipo de autenticación es que empeora todavía más los hábitos y expectativas de los usuarios
    Si usas un administrador de contraseñas moderno como 1password, es mucho más fácil, seguro y rápido que los tokens por correo
    Solo hay que prestar un poco de atención durante la configuración inicial y la verificación en unos cuantos dispositivos
    Igual que cuando te mudas y haces copias de la llave, creo que solo puedes quedarte tranquilo después de guardar la contraseña en el administrador y comprobar que ya se sincronizó en otros dispositivos
    La gente sí puede hacerlo
    Sin saber de cifrado ni del concepto de 2FA, basta con dar clic en “crear nueva contraseña” y usar la contraseña aleatoria que guarda la app
    Con las passkeys pasa lo mismo, solo que hay que pensar no en guardarlas en el almacenamiento interno del dispositivo, sino con respaldo y recuperación en mente
    Irónicamente, el método antiguo (correo y contraseña) en realidad funciona mejor
    Como el administrador de contraseñas autocompleta de inmediato, en la práctica es mucho más rápido
    Las passkeys incluso podrían ser más rápidas que eso

    • Solo hace falta ponerle un poco de atención, pero ese “poquito” ya es una barrera de entrada demasiado grande y pesada para la mayoría
      A mí también me frustra, pero el 80% de la gente no técnica a mi alrededor parece totalmente ignorante en temas de seguridad y vive resignada
      El único caso más o menos exitoso que he visto es escribir los datos de la cuenta en una libretita y asegurarse de que la contraseña tenga números y letras
  • Entiendo cuál es el problema de este flujo
    Por lo que he visto, este esquema de contraseña de un solo uso es para la gente no técnica que me rodea la forma de autenticación más familiar después de la contraseña
    En el pueblito donde vivo, los administradores de contraseñas o las passkeys son todavía más difíciles; aunque les expliques en persona cómo usarlos, simplemente no logran entenderlos
    El modelo mental les resulta demasiado ajeno, y la UX es demasiado compleja para que la comprendan
    Hasta que aparezca algo que el público entienda de forma intuitiva, creo que la contraseña y este método “problemático” de código de un solo uso van a seguir dominando por pura simplicidad

    • Yo digo que mejor sigamos usando contraseñas
  • Incluso si usas una contraseña buena, la recuperación de cuenta cuando “olvidas” la contraseña suele usar exactamente este mismo patrón de código de un solo uso
    Al final, un atacante solo tiene que actuar como si la hubiera “olvidado” y termina iniciando sesión a través de ese flujo de recuperación
    Yo también uso el sistema de código de un solo uso para iniciar sesión en un servicio que hice
    Pero como no es un servicio sensible, el objetivo no es endurecer al máximo la autenticación
    Incluso yo lo llamo ICGAFAS (“I Couldn't Give A Factor” Auth System), dejando claro desde el principio que no me importa mucho la seguridad
    La autenticación basada en correo también añade trabajo para los administradores, como lidiar con problemas de envío y entrega de SMTP
    Al final, para evitar listas negras o filtros de spam, la realidad es que tienes que usar un servicio relay de terceros

    • Aunque tengas una contraseña buena, como la mayoría de los flujos de recuperación de cuenta usan este método de código de un solo uso, esa parte termina siendo el “eslabón más débil”
  • Me molesta muchísimo que tantos servicios estén obligando este método de código de un solo uso en lugar del clásico correo+PW o el inicio de sesión social
    Yo quiero que me dejen usar mi contraseña de 100 caracteres

    • Tú no eres el usuario objetivo
      Más bien formas parte de una minoría muy poco común
      A largo plazo hay que pensar en una solución que pueda conectar con “la mayoría”

    • No creo que las contraseñas largas, como una de 100 caracteres, tengan mucho sentido
      La longitud termina truncándose según el key length que realmente usa la criptografía por debajo

  • Revisé si este tipo de autenticación está oficialmente permitido en los documentos de NIST (NIST 800-63b section 5.1.2.1)
    Si se considera un “Look-up Secret Authenticator”, no parece haber ningún problema especial
    En esencia, se está abusando de un método que originalmente significaba códigos de autenticación preentregados (como códigos de recuperación), usándolo en tiempo real y como única opción
    Sí creo que este método es vulnerable al phishing, pero tampoco es fácil afirmar tajantemente que sea más peligroso que el esquema tradicional de usuario/contraseña
    Por ejemplo, si se pide un código de 6 dígitos enviado al correo del usuario, este no puede distinguir si el código es para un inicio de sesión legítimo o uno falso
    Eso sí, el atacante también podría engañar al usuario con una página que solo parezca convincente, como una cuenta de Google
    Al final, creo que el verdadero futuro está en la autenticación resistente al phishing

  • Tuve que borrar mi cuenta de gofundme porque hoy, de la nada, me atrapó en uno de estos ciclos de autenticación
    Usé la cuenta durante varios años e hice donaciones, pero ahora exigen obligatoriamente número de teléfono y código MFA, sin ofrecer opción de negarse
    Al final completé todo el proceso y desactivé la cuenta
    Me parece una autenticación innecesaria para la vida; puedo vivir sin gofundme
    Últimamente estoy buscando casa y la app de Zillow hace lo mismo: exige iniciar sesión y además pide MFA cada vez que quiero leer un mensaje
    La sesión expira en una hora
    Ya estoy harto de este tipo de autenticación
    Es un mundo completamente loco

    • Ticketmaster hace algo parecido
      No acepta números de Google Voice y solo exige números vinculados a una SIM
      Mi número de SIM no es más que un “detalle de implementación” que cambia con frecuencia, pero ahora, sin ese número, ya no puedo iniciar sesión en la cuenta
      En la práctica, eso significa renunciar a comprar boletos así o arriesgarte a quedar fuera de tu cuenta cada vez que cambias de SIM

    • Google activó 2FA por su cuenta en mi cuenta, y como el número de teléfono registrado era uno antiguo, quedé completamente bloqueado fuera de la cuenta

  • Cuando un servicio cambia sin previo aviso la contraseña y la autenticación secundaria, si estás de viaje sin el teléfono asociado a la cuenta, podrías perder el acceso para siempre
    La mayoría de los servicios considera que la autenticación secundaria es más segura que mi contraseña aleatoria de 20 caracteres (guardada en un administrador de contraseñas local)
    Pero esos métodos de autenticación secundaria al final son cosas tan poca cosa como SMS en texto plano o correo en texto plano

    • Me pregunto qué tan alta será la tasa de reutilización de contraseñas y qué porcentaje de gente usa administradores de contraseñas
  • Leí esta frase cuatro veces y aun así no la entendí
    Era algo como: “Si un atacante envía la dirección de correo del usuario a un servicio legítimo y solicita un código de 6 dígitos, el usuario no puede saber si ese código corresponde a un inicio de sesión real”

    • Ya entendí por qué no se entiende. Lo que el autor realmente quería decir era
      • Desde la perspectiva del usuario, entra a un sitio fraudulento que parece legítimo e introduce su correo e inicio de sesión
      • El hacker mete ese correo en el servicio legítimo, y el servicio legítimo le envía al usuario un código de 6 dígitos
      • El usuario confía solo en el hecho de que el código llegó desde el servicio legítimo por correo y lo introduce tal cual
      • El atacante toma ese código y accede de inmediato a la cuenta
      • Ese es el flujo por el cual terminan robando la información