Miedo con respecto a los tokens de sesión

3

He leído recientemente que las sesiones funcionan de la siguiente manera:

  1. Se verifican sus credenciales.
  2. Un token se genera y almacena en el lado del servidor, por ejemplo, UUID, y este token se entrega al cliente donde se almacena durante la sesión.
  3. Cuando el usuario cierra la sesión, su token de sesión se revoca y ya no es válido.

Mi preocupación es que las personas confían cada vez más en que sus navegadores recuerden sus credenciales y tengan sesiones que nunca caducan, o caducan después de un largo período de tiempo, esto significa que alguien podría simplemente copiar su token y omitir la autenticación en total, ya que los nombres de usuario y las contraseñas ya no son necesarios: solo los tokens.

¿Estoy malinterpretando algo o es un problema real y, si se trata de un problema real, cuáles son algunos de los medios para evitar este problema al crear sistemas de autenticación?

    
pregunta Dmitry 26.05.2016 - 21:40
fuente

1 respuesta

4

En primer lugar, no estoy seguro de seguir completamente esta declaración:

  

Mi preocupación es que las personas confían cada vez más en que sus navegadores recuerden sus credenciales y tengan sesiones que nunca caducan, o caducan después de un largo período de tiempo, esto significa que alguien podría simplemente copiar su token y omitir la autenticación en conjunto ...

El navegador que recuerda las credenciales es completamente independiente de las sesiones del sitio web que duran mucho tiempo. De hecho, tener su navegador para recordar sus credenciales es una conveniencia para que no tenga que hacer clic en la opción "Recordarme" en un sitio web, por lo que se podría argumentar que permitir que los navegadores almacenen las credenciales hace que sea más probable que cierre la sesión y que su sesión más corta en lugar de más larga Dicho esto, entiendo a dónde se dirige la pregunta, así que asumamos que no está almacenando credenciales en el navegador, y en su lugar, está haciendo clic en la opción "Recordarme" para tener una sesión que dure por mucho tiempo. tiempo (tal vez meses). ¿Qué tan insegura es la opción "Recuérdame"?

La opción Recordarme no es segura en ninguno de los siguientes escenarios:

  • Estás en una computadora compartida donde otra persona tiene acceso a la mismo usuario que utiliza, o alguien más tiene acceso de administrador a la computadora tu usas. En este caso, otro usuario de la computadora puede mirar su autentifique las cookies y copie su token como sugirió.
  • El sitio utiliza http en lugar de https. En este caso, alguien que esté oliendo la red puede capturar su token de sesión en tránsito.

Algunas cosas que puede hacer para ayudar a prevenir el robo de tokens son:

  1. Usa https.
  2. Use un token de autenticación de corta duración en combinación con un token de actualización .

Si se implementa correctamente, el token de actualización logra un par de cosas. Como la actualización solo se realiza periódicamente en lugar de con cada solicitud, es menos probable que se vea comprometida en primer lugar. Cuando se produce la actualización, todos los tokens de autenticación que se crearon con ese token de actualización caducan automáticamente, por lo que si alguna vez se compromete la actualización, y dos usuarios intentan usarla simultáneamente, habrá una lucha continua por el token de autenticación y varias actualizaciones. ocurriría antes de la expiración. El servidor podría detectar esto fácilmente y también vencer el token de actualización. Luego, el usuario tendría que iniciar sesión nuevamente y solo el usuario real podría hacer eso. Puede encontrar más información sobre esto aquí .

    
respondido por el TTT 26.05.2016 - 22:16
fuente

Lea otras preguntas en las etiquetas