¿Cerrar sesión en un sitio web garantiza que nadie pueda piratear cookies?

16

Si hago clic en el enlace de cierre de sesión de un sitio web, ¿significa esto que no es posible que alguien secuestre mi cookie e inicie sesión con ella?

Mientras estoy conectado, ¿es posible que alguien que tenga acceso al disco duro de mi computadora simplemente tome la cookie y luego inicie sesión?

¿Algo así como la autenticación de 2 factores de Gmail ayuda en cualquiera de los escenarios anteriores?

    
pregunta codecompleting 12.08.2011 - 17:17
fuente

3 respuestas

13

La respuesta aquí depende de cómo el sitio web maneja la administración de cookies. Si están haciendo las cosas correctamente, seguir el enlace de cierre de sesión debe invalidar la cookie en el servidor y también eliminarla del cliente.

Como tal, si un atacante tuvo acceso a su PC después de eso, no debería poder usar mal la cookie, incluso si pudieran acceder a ella.

Si todavía está conectado y deja su PC, sin cerrar el navegador, es probable que un atacante pueda capturar la cookie con solo usar el navegador. Si solo tienen acceso a su disco duro (por ejemplo, a través de una red), es posible que puedan acceder al archivo de cookies, pero podría ser algo más difícil de explotar.

la autenticación de dos factores puede ayudar en el escenario en el que alguien roba una cookie mientras está conectado, pero mientras la sesión continúa, es probable que haya cookies en la máquina que brindarán acceso.

La apuesta más segura es asegurarse de cerrar la sesión de todas las sesiones antes de abandonar la computadora y también cerrar el navegador (una gran cantidad de cookies de sesión se eliminan del cliente cuando se cierra el navegador)

    
respondido por el Rоry McCune 12.08.2011 - 17:45
fuente
10

En términos generales, esto realmente depende de cómo el servidor implementa la autenticación basada en cookies.

  • Si el servidor utiliza la cookie como una clave de indexación en la base de datos del servidor, que el servidor utiliza para recuperar toda la información de la sesión, entonces "cerrar sesión" significa que el servidor olvide todo acerca de la sesión, momento en el que la cookie pierde su valor para el atacante, ya que ya no hace referencia a una sesión existente. En ese caso, el cierre de sesión lo protege contra el secuestro de cookies.

  • Si el servidor almacena la información de sesión dentro de la cookie en sí misma (preferiblemente encriptada y con un MAC para que los usuarios no puedan "inventar" o modificar las sesiones por sí mismos), luego "cerrar sesión" significa que el navegador olvide la cookie. No cambia nada del lado del servidor; si un atacante obtuvo una copia de la cookie antes del borrado (o si el borrado no fue muy efectivo, por ejemplo, el atacante copió el disco duro y recuperó el archivo borrado), entonces puede usarlo para volver a ingresar a la sesión.

En cuanto a agarrar la cookie del disco duro, generalmente es simple. Por ejemplo, en mi máquina, parece que mi navegador web (cromo) almacena localmente las cookies como una base de datos SQLite , es decir, un solo archivo con sin protección alguna.

La autenticación es algo que se realiza cuando se crea la sesión; por lo que es mayormente irrelevante para la discusión en cuestión. Aunque un servidor podría agregar algunas protecciones adicionales, como rechazar una cookie si no proviene de la misma dirección IP que anteriormente (esto frustrará parcialmente a algunos atacantes, pero también puede ser inconveniente para los usuarios honestos que tienen una IP dinámica).

    
respondido por el Thomas Pornin 12.08.2011 - 17:45
fuente
2

El cierre de sesión de una aplicación web hace que la fecha de caducidad de las cookies se establezca en el pasado, lo que desencadena su eliminación por parte del navegador. Así que esencialmente cerrar la sesión elimina la cookie.

Todo depende de cómo el sitio hace uso de cookies. Un buen sistema simplemente almacenará un token de autenticación que luego se verifica contra el sistema para garantizar su validez. El token de autenticación puede tomar aspectos tales como el navegador de los usuarios y la dirección IP en una cuenta, de modo que incluso si un atacante obtiene la cookie, también tendrá que falsificarlos para autenticarse con éxito. Un mal sistema podría simplemente almacenar la contraseña de los usuarios en la cookie, ya sea en texto sin formato o simplemente como un hash sería muy malo y significaría que un atacante podría hacer uso de los detalles.

    
respondido por el Mark Davidson 12.08.2011 - 17:45
fuente

Lea otras preguntas en las etiquetas