¿Por qué cada OTP debe ser única?

0

Todos los sistemas OTP que he observado, envían una nueva OTP cada vez que un usuario solicita una OTP. (por ejemplo, whatsapp) Solo la última OTP es válida y una OTP solo se puede utilizar durante X horas.

Me pregunto cuál sería el inconveniente si enviara la misma OTP para cada solicitud de usuario en las X horas mencionadas.

Digamos que X = 2, luego, una vez que se envía una OTP, todas las solicitudes adicionales de OTP en las próximas 2 horas enviarán la misma OTP. Cualquier solicitud después de las 2 horas generará una nueva OTP.

Tengo una aplicación donde usamos OTP. La razón por la que pregunto es que a veces el OTP SMS se retrasa, por lo que el usuario solicita otra OTP. Finalmente, cuando llegan los SMS, el usuario no está seguro de qué OTP utilizar.

    
pregunta arahant 11.08.2014 - 11:46
fuente

4 respuestas

3

La idea detrás de una OTP es que solo se puede usar una vez, por lo tanto, "One Time Pin". Si reutiliza la misma OTP durante un cierto período de tiempo, no la usará solo una vez. El uso único es garantizar que la pérdida de la PTO comprometida se vuelva ineficaz tan pronto como se solicite una nueva.

Si su "OTP", que es válida por un período de tiempo determinado (2 horas en su ejemplo) está comprometida, el usuario malintencionado puede usar eso durante ese mismo período de tiempo.

Imagina por un momento que Alice quiere realizar alguna acción en tu aplicación que requiera que ingrese a una OTP, en el momento en que trabaja en una cafetería en el Punto de Acceso Rouge de Malory. Cuando Alice recibe su OTP y la ingresa, Malory la intercepta y descubre qué puede hacer con ella.

Ahora Malory tiene 2 horas de libertad para realizar cualquier función como Alice (suponiendo que tenga la otra información necesaria para hacerse pasar por Alice) utilizando la OTP que aún es válida. Y aunque Alice solicite una nueva OTP, esa misma OTP comprometida será enviado a ella, persistiendo la capacidad de Malory para hacerse pasar por Alice.

si fuera un OTP de un solo uso, Malory no tendría ningún uso desde ese momento en adelante.

    
respondido por el ilikebeets 11.08.2014 - 12:34
fuente
1

El único inconveniente que se me ocurre, que es un serio inconveniente a tener en cuenta, es que está introduciendo una nueva lógica en el proceso que complicará su implementación y, eventualmente, podría introducir errores que degradarán su seguridad.

Por cierto, si quieres probar y resolver la experiencia del usuario, puedes agregar un comentario en tu interfaz de usuario para que la OTP tarde unos X minutos en llegar ...

    
respondido por el aviv 11.08.2014 - 12:34
fuente
1

Si está pensando en hacer todo el trabajo para enviar la misma P para un usuario determinado dentro de una ventana de X horas, ¿por qué no hacer la misma cantidad de trabajo para permitir que su servidor de autenticación acepte cualquiera de los NP? ¿Has enviado las últimas X horas? Eso resuelve perfectamente su problema con usuarios impacientes sin comprometer el OT en OTP. (No hace falta decir que todas las P se deben invalidar tan pronto como una se use con éxito).

El uso de la misma P parecerá menos seguro: para sus usuarios y (si tiene alguno) para sus auditores. Una OTP sin OT no es aconsejable, tanto para las apariencias como para la verdadera seguridad

    
respondido por el gowenfawr 11.08.2014 - 14:46
fuente
0

Creo que todas las respuestas señaladas, que debilitará su seguridad. Ya que hace que una contraseña sea reutilizable (si permite que se use la misma contraseña por única vez) o debilita la seguridad al permitir que varias OTP sean válidas a la vez.

Bueno, vi muchas de esas solicitudes durante mi tiempo de implementación de una solución OTP y puedo entenderlas. Incluso tuvimos la solicitud de tener una "contraseña del día", una contraseña que es válida por un día para tantos inicios de sesión como desee y se cambia al día siguiente automáticamente. Esta no es una contraseña única, pero en ciertos casos es un requisito legítimo.

La solución de la que estoy hablando es privacyIDEA . Puede enviar SMS y también invalidará el valor OTP anterior si envía uno nuevo. Pero este comportamiento se puede mejorar fácilmente con aproximadamente 3 líneas de código en SMS módulo .

    
respondido por el cornelinux 12.08.2014 - 08:23
fuente

Lea otras preguntas en las etiquetas