jueves, enero 03, 2008

Correos en la Web (III de IV)

***************************************************************************************
- Correos en la Web (I de IV)
- Correos en la Web (II de IV)
- Correos en la Web (III de IV)
- Correos en la Web (IV de IV)
***************************************************************************************

Tercera parte sobre los correos Web, que hacía tiempo que no los tocábamos. Hoy vamos con otra parte. El mantenimiento de la sesión.

Uno de los ataques que más se intenta realizar en este tipo de entornos es el de Hijacking o robo de la sesión activa. Ejemplos de estos ataques hay muchos, basados en CSRF o XSS, valga por ejemplo como se atacó a Zone-h aprovechándose de un hijacking a Hotmail o como se realizaba el ataque a Gmail o Slashdot.

¿Cuánto dura una sesión?

La variable de sesión es un identificador único compartido entre el cliente y el servidor que se comprueba en cada petición que va desde el cliente hasta el servidor. Este identificador único tiene un tiempo de vida establecido por el servidor. El servidor establece dos tiempos, el de tiempo de uso máximo y el tiempo de inactividad. Cuando se supera el tiempo de uso es necesario cambiarlo y cuando se supera el tiempo de inactividad el servidor lo caduca cerrando la sesión si no se ha negociado otro nuevo identificador. Para ello el cliente tiene que guardar el identificador de alguna forma y entregarlo al servidor de correo.

La Sesión "Inmortal" de Gmail

En el caso de Gmail sucede un comportamiento muy curioso, las sesiones parecen inmortales. Una de las vaguerías que tengo es usar un XP virtualizado sobre mi Vista para determinadas cosas puntuales. Así, a veces, me conecto a mi cuenta de Gmail como se ve en la imagen 1. Nótese que tengo tooodos los mails sin leer. (Sólo la uso de backup, no me mandéis nada allí)

Como se puede ver, hemos abierto una sesión de Gmail en un XP corriendo sobre un VMWare sobre Windows Vista. En el XP son las 22:24 de… cualquier día. En el Windows vista son las 19:29 de …cualquier otro día. En Gmail es 10 de Diciembre de 2007, como se puede ver por los correos recibidos.

Sesión Gmail en máquina virtual

Suspendemos la máquina y vemos que se preservará todo el entorno.

Suspensión del entorno con VMWare

Días más tarde, volvemos a conectarnos, arrancamos la máquina virtual y hacemos F5 para actualizar la página cargada.

Sesión viva un día después

Como se puede ver ahroa es día 11 de Diciembre (tenemos correos del 10 de Diciembre) pero no se ha caducado la sesión. ¡Es mágica! ¿La sesión es inmortal?

Doctor, se me ha caído una pestaña, ¿es grave?

Otra curiosidad es la “muerte” por pestañas, es el ejemplo en el que alguien le dice a otro: “¿Me dejas ver mi correo un segundo?”, “Sí, como no”, contesta el otro y le abre una pestaña que abra el correo.

Paso 1: Gmail abierto en una pestaña y en la otra pesataña… Nada, o cualquier cosa.

Visitando mi correo

Paso 2: Se cierra la pestaña de Gmail y se vuelve a invocar Gmail.

Pestaña de correo cerrada e invocación de Gmail

Paso 3: et voila… el sistema busca la sesión “apestañada” y…

Reutilizando la sesión

Paso 4: De nuevo el correo electrónico abierto.


Pero no solo eso, como esto es “singelsaingnon” pues se puede pedir, por ejemplo, el blog. ¿Tú no leerás tu correo en cualquier pestaña de por ahí? ¿no? Esto se debe a que mientras que no se cierre el navegador todas las cookies se guardan en el mismo cookie jar.

Uso de la sesión para entrar en Blogger

¿Cómo se cierra una sesión?

La sesión debe ser matada en el servidor ante diversos eventos. Uno de estos eventos es simplemente cerrar el navegador, pero en muchos casos se utiliza un link en la página para realizar un cierre explícito de la sesión. Hay que tener en cuenta que este cierre debe ser real y probado con un código que rule en todos los navegadores.

¿Qué pasaría si el javascript que caduca la sesión no funciona con el navegador que está usando el cliente? ¿O si el cierre no es correcto?

La sesión Malherida, pero no muerta, de Terra

Con mi correo de terra me ha pasado una experiencia muy curiosa.

Paso 1: Entro en mi cuenta de correo de terra a ver si tengo algún mensaje

Bandeja de Entrada

Paso 2: Porque soy muy despistado me copio esa URL tan bonita y me la guardo.

http://correo13.terra.es/cp/ps/Main/layout/MetaFrameset?forceWelcome=welcome&d=terra.es&u=el_malignito&t=12610

Paso 3: Le damos a la X pequeñita que hay arriba al lado del nombre.

Paso 4: Una vez que nos ha echado pegamos la URL que hemos copiado en la barra de direcciones y damos al botoncito de enter.

Bandeja de Entrada..¿con sesión cerrada?

Curioso, de la parte de arriba nos ha echado (Terra), pero la sesión de correo sigue siendo totalmente funcional y se puede acceder a todo el correo.

La Cuenta Listener

Una de las tonterías más tontas que se pueden realizar en estos casos es espiar el correo electrónico mediante una Cuenta Listener. Las Cuentas Listener en correo electrónico son direcciones para almacenar una copia de todo el correo que recive alguien mediante el uso de los servicios de reenvío de mensajes. Mucha gente no sabe ni que existe este servicio y las personas que lo saben, pocas veces se paran a comprobar si ha sido configurada una nueva cuenta. Sólo se suele acceder allí cuando lo necesitas por algo en concreto. ¿Habéis comprobado recientemente que no os hayan configurado ninguna Cuenta Listener?

Cuenta "Listener"

Bueno, basta de cosas tontas por esta tercera entrega, ya habra tiempo para hablar de más cosas tontas en la cuarta … y última.

Saludos Malignos!

***************************************************************************************
- Correos en la Web (I de IV)
- Correos en la Web (II de IV)
- Correos en la Web (III de IV)
- Correos en la Web (IV de IV)
***************************************************************************************

2 comentarios:

Anónimo dijo...

tio una vez más, gracias por la clase!

Gangrolf dijo...

Esto me recuerda algo que me pasó.... hace 2 horas. Un cliente que tiene un webmail bastante flojillo, al que le estamos bombardeando con pruebas finalmente peta y nos da un error de "Too many logins failed". Pero no hay problema, ya que desde la mismá página de error, hay un enlace para configurar la cuenta desde el que se puede... si, amigos, cambiar la contraseña. Me he librado de hacerlo a mano a través del ldap, pero menos mal que la aplicacion web no es nuestra. Que vergüenza sino...

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares