Implicaciones de seguridad de reutilizar la contraseña de un solo uso

2

Escenario:

  1. Inicie sesión en el sitio (utilizando 2SV).
  2. La contraseña de un solo uso (OTP) se envía al dispositivo del cliente.
  3. El cliente no terminará el proceso de autenticación.
  4. Al día siguiente (digamos después de las 24 h), los usuarios inician sesión en el sitio nuevamente.
  5. La OTP generada ayer sigue siendo válida (se reenvió al dispositivo del cliente).

Según tengo entendido, con la OTP basada en el tiempo (TOTP) esto no debería suceder nunca, si la implementación es correcta. Preguntas:

  1. ¿Es este un enfoque válido para los esquemas OTP basados en HMAC, o este escenario indica un error en la implementación (es decir, el contador debería aumentar después del inicio de sesión subsiguiente)?
  2. Si el escenario no se considera seguro, ¿cuáles son las implicaciones de seguridad?
pregunta bayotop 18.04.2016 - 08:38
fuente

1 respuesta

2

RFC 4226 se definió mucho antes de que Google formara el idioma de "verificación en dos pasos". La verificación en dos pasos no necesariamente tiene que hacer nada con HOTP o TOTP. Por supuesto, puede usar HOTP para crear códigos "no adivinables", pero no es necesario.

Su servicio podría simplemente recordar qué código se envió al usuario.

En cualquier caso, deberías:

  1. cree un código para cada intento de inicio de sesión y
  2. el código (incluso con HOTP) solo debe ser válido por un tiempo determinado.

La implementación en privacyidea lo hace de esta manera. Puede enviar códigos por mensaje de texto o correo electrónico al usuario. Estos códigos se calculan en base a HOTP. Pero los códigos solo son válidos por un cierto tiempo. Y el código solo es válido para esta sesión de inicio de sesión.

La pregunta es si el código que reside en el teléfono inteligente o la cuenta de correo electrónico probablemente sea más vulnerable. A un atacante dedicado probablemente no le importaría si el código está en el teléfono móvil durante 30 segundos o durante 30 horas. Pero pregúntate a ti mismo. Me sentiría incómodo transportando mi teléfono inteligente, sabiendo que hay un código en él, que todavía se puede usar para iniciar sesión en cualquiera de mis cuentas. A veces, el teléfono inteligente no está bloqueado, o podría instalarse un malware solo en este momento, después de recibir el código y antes de usar el código. Hay vectores de ataque adicionales. Por lo tanto, debe invalidar el código después de unos minutos.

    
respondido por el cornelinux 18.04.2016 - 21:03
fuente

Lea otras preguntas en las etiquetas