¿La caducidad de 90 días para la URL única es demasiado larga?

2

Una aplicación web que he estado desarrollando tiene un nuevo caso de uso que me hace buscar algo más fácil que la autenticación de nombre de usuario / contraseña.

Los usuarios actuales no se inscriben en el servicio porque son un servicio b2b utilizado por sus compañías, por lo que para la autenticación de nombre de usuario / contraseña estándar, les enviamos su nombre de usuario y una contraseña temporal de uso único a través del correo electrónico. Se les pide que cambien su contraseña y acepten los términos de uso en el primer inicio de sesión.

Para este nuevo caso de uso, algunos subconjuntos de usuarios ahora solo ingresarán datos durante un período de 90 días que ocurre una vez al año. La mayoría de las veces, esto significa que solo estarán haciendo esto durante un día, tal vez dos, un año.

Debido a que les será fácil olvidar la contraseña que configuraron después de iniciar sesión con la contraseña temporal, me gustaría probar algo así como una URL única que caduca. La URL debe ser válida por 90 días (o al menos hasta que hayan terminado de ingresar sus datos si podemos averiguar cómo medir eso).

Cada año reciben un nuevo correo electrónico con una URL única para comenzar ese período de 90 días.

Los inconvenientes de seguridad aquí son los típicos:

  • La URL única se muestra en los marcadores y en el historial del navegador
  • La URL única se muestra en los registros del servidor
  • El usuario puede reenviar el correo electrónico a otro buzón y el mensaje no se transporta de forma segura.
  • Es necesario protegerse contra la inyección de SQL en la URL

Los esquemas de URL normalmente únicos son válidos por períodos cortos de 24 horas, por lo que me preocupa que un período de 90 días sea demasiado largo.

En cuanto a los riesgos: si una persona no autorizada obtiene acceso, habrá muy poca fuga de información (y, ciertamente, nada que sea PII), pero todavía hay algunas preocupaciones de "pérdida de confianza".

¿Esto es lo suficientemente seguro? Si no es así, ¿hay otros métodos de autenticación que podamos usar aquí?

    
pregunta Van Gale 20.01.2012 - 01:04
fuente

1 respuesta

7

Dos problemas con esta pregunta:

Nadie puede decir con seguridad que X días es demasiado largo. Si no hay nada en juego y nada de esto tiene ningún valor, entonces X puede ser infinito y a nadie le importará.

Si hay algo en juego o algo de valor, sin embargo, depende, y ahí es donde debe realizar una evaluación de riesgos y amenazas.

Tiene un requisito de 90 días sobre el cual puede ocurrir una tarea; Su solución para permitir que alguien realice esa tarea es una URL única desconocida y no otras protecciones.

Una URL única (pero desconocida, excepto para la parte de confianza) es un ejemplo de seguridad en la oscuridad.

Mientras más larga sea la vida útil, más posibilidades de que alguien no autorizado acceda a la URL. Cuanto más alta sea la recompensa, más corto será el tiempo y mayor será la probabilidad de que un atacante invierta tiempo, esfuerzo y dinero en ingresar (o conseguir que alguien le reenvíe esa URL).

Los pagos pueden incluir la venganza de empleados / contratistas descontentos; el hecho de que no se adjunte un valor en dólares a algo no hace que valga la pena hackearlo (usted mencionó el daño a la reputación).

Si la entrada de confianza es importante, la filtración del secreto (URL) podría provocar que se ingrese información errónea, maliciosa o engañosa.

Entonces, mis $ 0.02: si vale la pena protegerlo, haga un análisis cuidadoso de la confiabilidad que espera que tenga su población de usuarios, o simplemente quédese con la autenticación de nombre de usuario y contraseña; use una URL única para la recuperación de la contraseña / autenticación de la cuenta de correo.

    
respondido por el TristanK 20.01.2012 - 06:58
fuente

Lea otras preguntas en las etiquetas