Web11: Cookies HTTP y algunos problemas de seguridad

1. Introducción

Cookie , o cookie HTTP, cookie web, cookie del navegador es un pequeño fragmento de datos enviado desde el sitio web y almacenado en el navegador del usuario cuando navega por este sitio web. Cada vez que un usuario carga un sitio web, el navegador enviará automáticamente cookies al servidor web para notificar al sitio web de las acciones anteriores del usuario.

Las cookies están diseñadas para ser un mecanismo confiable que ayuda a los sitios web a recordar información de estado (como artículos en el carrito de compras) o almacenar las actividades del usuario (incluidos los clics): un enlace, inicio de sesión, páginas visitadas durante la semana, mes o año,... ).

Aunque las cookies no pueden transportar virus ni instalar malware en su computadora, el uso de cookies de seguimiento y especialmente de terceros se considera una forma de identificar información personal a partir del historial de navegación de los usuarios. Las cookies pueden guardar contraseñas o contenido que los usuarios ingresan en formularios html, como números de tarjetas de crédito o direcciones personales.

Cuando un usuario visita un sitio web por primera vez, se envía una cookie desde el servidor web al navegador y se almacena en su ordenador. Luego, cuando regrese al sitio web, el sitio web lo reconocerá gracias a la información guardada en la cookie.

Las cookies de autenticación son un método común utilizado para determinar si un usuario ha iniciado sesión en un sitio web o no. Sin dicho mecanismo, será difícil para el sitio web saber cuándo enviar información personal al usuario y obligarlo a iniciar sesión varias veces. Las cookies de autenticación, aunque son muy convenientes, crean oportunidades para que los piratas informáticos lean datos confidenciales en las cookies, realizando así acciones que perjudican a los usuarios.

2. Descripción general de las cookies HTTP

2.1. Historia

El término cookie se deriva del término cookie mágica, que es un dato inmutable enviado y recibido por un programa informático. A un programador llamado Lou Montuli se le ocurrió la idea de utilizar cookies mágicas en las comunicaciones web en 1994. En ese momento, trabajaba para Netscape Communications, en un proyecto para desarrollar aplicaciones de comercio electrónico para MCI. Las cookies se han utilizado como una solución para crear carritos de compras virtuales, lo que ayuda a que los servidores de MCI no tengan que guardar el estado de las transacciones, sino que se almacenan en la computadora del usuario.

Junto con John Giannandrea, Montuli escribió la primera especificación para las cookies de Netscape. La versión 0.0beta de Mosaic Netscape, lanzada el 13 de octubre de 1994, admitía cookies. El primer uso de cookies (fuera del laboratorio) comprobó si un cliente que visitaba el sitio web de Netscape lo había visitado antes o no. A Montuli se le concedió una patente de cookies en 1995. Y la versión 2 de Internet Explorer (lanzada en octubre de 1995) incorporó el uso de cookies.

La introducción de cookies no estaba muy extendida durante esta época. En particular, las cookies se aceptan por defecto y no se notifica a los usuarios de su presencia. El público no conoció las cookies hasta después de que se publicara un artículo sobre ellas en el Financial Times el 12 de febrero de 1996. Desde entonces, las cookies han recibido mucha atención, especialmente la información privada que contienen. Las cookies fueron discutidas en dos audiencias de la Comisión Federal de Comercio de Estados Unidos en 1996 y 1997.

La primera discusión sobre una especificación formal de cookies comenzó en abril de 1995. Se formó un grupo especial dentro del Internet Engineering Task Force (IETF) con el fin de llevar a cabo este trabajo. Finalmente, el grupo publicó la especificación en febrero de 1997. La especificación definía las cookies de terceros como no aceptables para todos, o al menos no habilitadas de forma predeterminada.
En abril de 2011 se publicó en el documento RFC 6265 la especificación estándar para las cookies en su uso práctico .

2.2. Terminología

Cookies de sesión

Las cookies de sesión, también llamadas cookies en memoria o cookies transitorias, sólo existen en la memoria temporal mientras el usuario navega por el sitio web. Si no se establece una fecha de vencimiento o un intervalo de validez en el momento de la creación de la cookie, se establecerá una cookie de sesión. Normalmente los navegadores web eliminarán automáticamente las cookies de sesión cuando el usuario cierre el navegador.

Cookies persistentes

Las cookies persistentes prolongan la sesión del usuario. Si una cookie persistente tiene una duración máxima de 1 año, durante ese período, el valor inicial establecido en la cookie se enviará al servidor cada vez que el usuario visite el sitio web. Se puede utilizar para registrar información importante, como cómo el usuario visitó el sitio web por primera vez. Por este motivo, las cookies persistentes también se denominan cookies de seguimiento.

Cookies seguras

La cookie segura es un atributo de seguridad habilitado cuando se utiliza HTTPS, lo que garantiza que la cookie siempre esté cifrada cuando se transfiere del cliente al servidor, lo que ayuda a evitar escuchas y revelaciones de información. Además, todas las cookies deben cumplir con la política de mismo origen del navegador.

Cookies HttpOnly

El atributo HttpOnly de las cookies es compatible con la mayoría de los navegadores. Una cookie de sesión HttpOnly solo se utilizará en una solicitud HTTP (o HTTPS), lo que limitará el acceso de API que no sean HTTP, como Javascript. Esta restricción mitiga, pero no elimina, el robo de cookies a través de vulnerabilidades de secuencias de comandos entre sitios (XSS).

Cookies de terceros

Las cookies de origen son cookies que pertenecen al mismo dominio (o subdominios dentro del mismo dominio) que se muestran en la barra de direcciones del navegador. Las cookies de terceros son cookies pertenecientes a distintos dominios que se muestran en la barra de direcciones del navegador. Los sitios web pueden tener contenido de dominios de terceros (como anuncios publicitarios), desde los cuales se puede rastrear el historial de navegación de los usuarios. La configuración de privacidad de la mayoría de los navegadores bloquea las cookies de seguimiento de terceros.

Por ejemplo, supongamos que un usuario visita el sitio web ejemplo1.com . Este sitio web contiene publicidad de ad.foxytracking.com. Cuando se carga, las cookies de ad.foxytracking.com se guardarán. Luego visita otro sitio web (ejemplo2.com), que también contiene un anuncio de ad.foxytracking.com y también establece una cookie que pertenece a ad.foxytracking.com. Finalmente, ambas cookies se enviarán al anunciante al cargar anuncios o acceder a su sitio web. Los anunciantes pueden utilizar estas cookies para crear el historial de navegación de un usuario en todos los sitios web que contienen sus anuncios.

En 2014, había algunos sitios web que configuraban cookies que podían ser leídas por más de 100 dominios de terceros. De media, un sitio web tendrá unas 10 cookies configuradas, siendo el número máximo de cookies superior a 800.

supergalleta

Una supercookie es una cookie que se origina en un dominio de nivel superior, como .com, o un sufijo público, como .co.uk. Es importante que los navegadores bloqueen las supercookies debido a algunos problemas de seguridad. Si se desbloquea, un atacante que controle un sitio web malicioso puede configurar una supercookie para suplantar las solicitudes de los usuarios y enviar solicitudes a otros sitios web que comparten el mismo dominio de nivel superior o sufijo público. Por ejemplo, una supercookie que se origina en el dominio .com podría dañar las solicitudes a ejemplo.com, incluso si la cookie no se originó en ejemplo.com. Puede explotarse para falsificar inicios de sesión o cambiar la información del usuario.

galletas zombies

Las cookies zombies son cookies que se recrean automáticamente después de que el usuario las elimina. Esto se hace mediante un script que almacena el contenido de la cookie en otra ubicación, como un almacén de contenido Flash, un almacén HTML5 o algún otro mecanismo del lado del cliente.

2.3. Estructura de las cookies

Una cookie con un tamaño de 4KB, incluye 7 componentes principales:

  1. Nombre
  2. Valor
  3. Caduca (fecha de vencimiento)
  4. Ruta (ruta donde la cookie es válida, "/" significa que la cookie es válida en cualquier ruta)
  5. Dominio
  6. Seguro
  7. Sólo Http

Los dos primeros componentes (nombre y valor) son obligatorios.

2.4. Usar

Gestión de sesiones

Las cookies se pueden utilizar para mantener datos relacionados con el usuario en múltiples visitas al sitio web. Las cookies son una solución para crear un carrito de compra, un carrito de compra virtual que ayuda al usuario a guardar los artículos que elige mientras navega por los productos.

Las aplicaciones de carrito de compras actuales a menudo almacenan la lista de artículos en el carrito en la base de datos del lado del servidor en lugar de almacenarla en una cookie del lado del cliente. El servidor web normalmente enviará una cookie que contiene el identificador de sesión - ID de sesión (que es único). El navegador web devolverá este ID de sesión con la solicitud de compra de cada usuario.

Permitir a los usuarios iniciar sesión en sitios web es otra aplicación de las cookies. Normalmente, durante el primer inicio de sesión, el servidor web enviará al cliente una cookie que contiene el ID de la sesión. Los usuarios enviarán su información y la aplicación web autenticará la sesión y luego permitirá que el usuario utilice sus servicios.

Las cookies proporcionan un mecanismo de interacción cliente/servidor rápido y conveniente. Una de las ventajas de las cookies es que almacenan la información del usuario en un archivo ubicado en el ordenador del usuario. Esto reduce significativamente el espacio de almacenamiento y el tiempo de procesamiento del servidor.

Personalizado

Las cookies se pueden utilizar para recordar la información personal de un usuario cuando visita un sitio web, para mostrar contenido más relevante a ese usuario cada vez que visita el sitio web nuevamente.

Un ejemplo destacado es la función de recomendación de libros de amazon.com. Cuando un usuario hace clic en un libro, Amazon le hará sugerencias sobre los próximos libros que el usuario debería consultar. Estas sugerencias se basan en los libros que los usuarios han buscado anteriormente y los libros que han elegido comprar.

Otro ejemplo es la función de sugerencias de búsqueda de la Búsqueda de Google. Cuando inicia sesión con su cuenta personal y realiza una búsqueda, Google le brindará sugerencias "solo para usted" y los resultados que desea siempre aparecerán en la parte superior de la lista.

Monitor

Las cookies de seguimiento se pueden utilizar para rastrear el historial de navegación de un usuario. Esto también se puede hacer utilizando la dirección IP de la computadora que envía la solicitud al sitio web o confiando en el campo Referente del encabezado de la solicitud HTTP, pero las cookies brindan más precisión. Esto se hace de la siguiente manera:

  1. Si un usuario visita un sitio web, pero esta solicitud no contiene una cookie, el servidor asumirá que es la primera vez que el usuario visita este sitio web; El servidor generará una cadena aleatoria y la enviará como una cookie al navegador junto con la página web solicitada.
  2. A partir de este momento, la cookie será enviada automáticamente por el navegador al servidor cada vez que se solicite una nueva página web en este sitio web, el servidor devolverá la página web solicitada con normalidad, pero con la URL de esa página web y el tiempo El acceso se guardará en un archivo de registro. Al analizar la información guardada en este archivo de registro, se revelará el historial de navegación de la persona, los sitios web visitados con frecuencia y los hábitos de navegación.

2.5. Despliegue

Web11: Cookies HTTP y algunos problemas de seguridad

Las cookies son datos enviados desde el servidor al navegador. Luego, el navegador lo enviará de regreso al servidor sin cambiar el contenido interno, cada vez que el usuario envíe una solicitud al sitio web. Las cookies también pueden configurarse mediante un lenguaje de programación, como Javascript.

Cada navegador web puede almacenar al menos 300 cookies en un archivo de 4 KB y al menos 20 cookies por servidor o dominio.

Configurar cookies

El servidor web y el navegador se comunican entre sí a través de HTTP (Protocolo de transferencia de hipertexto). Por ejemplo, para acceder a la página http://www.example.org/index.html, el navegador se conecta al servidor enviando una solicitud HTTP como esta:

Web11: Cookies HTTP y algunos problemas de seguridad

El servidor responderá enviando al navegador un paquete de texto simple, llamado respuesta HTTP. Este paquete puede contener una línea que contiene el contenido de la cookie:

Web11: Cookies HTTP y algunos problemas de seguridad

Set-Cookie es un campo que indica al navegador que almacene la cookie y la envíe al servidor en el futuro cada vez que haya una solicitud al servidor (si la cookie aún está caducada). Por ejemplo, el navegador envía una solicitud a http://www.example.org/spec.html enviando una solicitud HTTP como esta:

Web11: Cookies HTTP y algunos problemas de seguridad

Esta es una solicitud a otra página que pertenece al mismo servidor. En este caso, el servidor entenderá que esta solicitud está relacionada con la solicitud anterior y responde enviando la página web solicitada al navegador, posiblemente agregando otros valores de cookies.

El servidor puede modificar el valor de la cookie enviando el campo Set-Cookie: nombre=valor en la respuesta HTTP al navegador. Luego, el navegador reemplazará el valor de la cookie anterior con este nuevo valor.

El valor de la cookie puede incluir cualquier carácter ASCII imprimible excepto “,””, “;” y espacios en blanco. Los nombres de las cookies tampoco pueden contener el carácter '=", ya que ese es el carácter que separa el nombre y el valor.
El término cookie de migajas se utiliza a veces para referirse al par nombre-valor de una cookie.

Las cookies también pueden establecerse mediante Javascript o un lenguaje de programación similar. En Javascript, el objeto document.cookie se utiliza para configurar cookies. El atributo HttpOnly es responsable de evitar que scripts incorrectos lean el contenido de las cookies.

Propiedades de las cookies

Además del par nombre-valor, el servidor también puede establecer otras propiedades de cookies: Dominio, Ruta, Expirse, Max-Age, Secure y HttpOnly. El navegador no enviará estos atributos al servidor, solo enviará el par nombre-valor. El navegador utiliza estos atributos para determinar cuándo eliminar cookies, bloquear cookies o enviar cookies al servidor.

Dominio y ruta

El dominio y la ruta determinan el alcance de la cookie. Permiten al navegador determinar cuándo enviar cookies al servidor. Si no se especifican, de forma predeterminada utilizan el dominio y la ruta del objeto solicitado. Sin embargo, existe una diferencia entre una cookie configurada para foo.com sin el atributo de dominio y una cookie configurada con el atributo de dominio foo.com. En el primer caso, la cookie sólo se enviará cuando haya una solicitud a foo.com. En este último caso, la cookie se enviará a todos los subdominios de foo.com. El siguiente es un ejemplo de una directiva Set-Cookie de un sitio web después de que el usuario inicia sesión, desde una solicitud a docs.foo.com:

Web11: Cookies HTTP y algunos problemas de seguridad

El primer LSID de cookie no tiene un atributo de dominio y tiene la ruta /cuentas. El navegador solo enviará cookies cuando la página solicitada esté contenida en docs.foo.com/accounts. Las dos cookies restantes, HSID y SSID, se envían de vuelta al servidor si hay una solicitud a cualquier subdominio de foo.com.
Las cookies también se pueden configurar solo para el dominio superior y sus subdominios. No se permitirá la instalación de cookies en www.foo.com desde www.bar.com por motivos de seguridad.

Caduca y edad máxima

El atributo Expires le dice al navegador cuándo eliminar la cookie. La fecha en Expires se ve así: “Wdy, DD Mon AAAA HH:MM:SS GMT”. Max-Age también se utiliza para indicar la fecha de vencimiento de una cookie. Consideremos el siguiente ejemplo:

Web11: Cookies HTTP y algunos problemas de seguridad

La primera cookie expirará el 15 de enero de 2013 y será utilizada por el navegador cuando expire. La segunda cookie made_write_conn no caduca y se utiliza como cookie de sesión; se eliminará cuando se apague el navegador. La tercera cookie reg_fb_gate, tiene fecha de caducidad en el pasado, será eliminada inmediatamente.

Seguro y solo Http

Las propiedades Secure y HttpOnly son nulas; en cambio, su presencia indica que se aplican las bases Secure y HttpOnly.

El atributo Seguro mantiene la transmisión de cookies dentro de una conexión cifrada. Si el servidor web configura una cookie con el atributo seguro desde una conexión no segura, la cookie aún puede ser interceptada por un ataque de intermediario.

El atributo HttpOnly indica al navegador que no exponga cookies a través de una conexión que no sea HTTP (o HTTPS), como Javascript, y por lo tanto dificulta la obtención de cookies explotando las vulnerabilidades de Cross-Site Scripting (XSS).

3. Algunos problemas de seguridad al utilizar cookies

Si un sitio web utiliza un ID de sesión para identificar la sesión de un usuario, un atacante podría robar la cookie para hacerse pasar por el usuario. A continuación se muestran algunos escenarios comunes de robo de cookies:

Escuchar a escondidas

Web11: Cookies HTTP y algunos problemas de seguridad

El tráfico en una red puede ser interceptado y leído por un tercero (que no sea el destinatario y el remitente). Este tráfico incluye cookies. Si la transmisión no está cifrada, un atacante puede leer la información confidencial contenida en la cookie. Y aprovechando esta información, los atacantes se harán pasar por usuarios para realizar acciones peligrosas, como transacciones bancarias.

Este problema se puede resolver utilizando un protocolo seguro entre la computadora del usuario y el servidor: el protocolo HTTPS. El servidor puede utilizar el indicador Seguro al configurar cookies. En ese caso, la cookie sólo se enviará a través de un canal cifrado, como una conexión SSL.

secuencias de comandos entre sitios

Web11: Cookies HTTP y algunos problemas de seguridad

Los lenguajes de scripting, como Javascript, pueden leer valores de cookies y enviarlos a servidores arbitrarios.

Supongamos que un sitio web tiene un error de secuencias de comandos entre sitios, los piratas informáticos pueden insertar código malicioso, como el siguiente:

Web11: Cookies HTTP y algunos problemas de seguridad

Cuando la víctima hace clic en el enlace anterior, el navegador ejecutará el script en el atributo onclick: enviando la cookie de la víctima al servidor attacker.com.

Los scripts entre sitios son una de las vulnerabilidades comunes de los sitios web (ocuparon el tercer lugar entre las 10 vulnerabilidades más comunes en 2013, según OWASP).

El riesgo de esta vulnerabilidad se puede limitar configurando el indicador HttpOnly para las cookies. En ese momento, los lenguajes de programación no accederán a las cookies.

Falsificación de solicitudes entre sitios

CSRF (falsificación de solicitud entre sitios) o ataque con un solo clic, es un método para explotar las vulnerabilidades de un sitio web mediante el cual las víctimas (usuarios autorizados por el sitio web sin su conocimiento) ejecutan comandos no autorizados.

CSRF engañará al navegador de la víctima para que envíe solicitudes http a aplicaciones web. En caso de que la sesión de la víctima no haya caducado, las solicitudes anteriores se realizarán con los derechos de autenticación de la víctima.

Por ejemplo, la víctima Bob está realizando transacciones en el sitio web de cierto banco X. Fred es el atacante, este tipo sabe cómo funciona el sitio web del banco X cuando quiere transferir dinero de la cuenta A a la cuenta B de la siguiente manera:

http://bank.example.com/withdraw?account=accountA&amount=100&for=accountB

Le enviará a Bob un mensaje malicioso.

Si el banco X almacena información de autenticación del usuario en una cookie y Bob hace clic en el enlace anterior, el dinero de Bob se transferirá a Fred.

Para limitar este riesgo, se pueden configurar parámetros de Expires para las cookies.

4. Conclusión

Las cookies se utilizan en la mayoría de las aplicaciones web actuales. También contiene riesgos potenciales que afectan significativamente a los usuarios. Por lo tanto, por parte del desarrollador, debemos comprender claramente las cookies y saber cómo configurar los parámetros necesarios para que la aplicación pueda ser más segura contra ataques de piratas informáticos.

Dejar un comentario

Cómo eliminar el aviso de solicitud de derechos de autor en la esquina derecha de la pantalla en Windows 10

Cómo eliminar el aviso de solicitud de derechos de autor en la esquina derecha de la pantalla en Windows 10

¿Ves una notificación de activación de Windows 10 en la esquina derecha de la pantalla? Este artículo le guiará sobre cómo eliminar el aviso de solicitud de derechos de autor en Windows 10.

Instrucciones de AZ sobre cómo instalar Windows 10 compilación 14393.222

Instrucciones de AZ sobre cómo instalar Windows 10 compilación 14393.222

Recientemente, Microsoft lanzó la última actualización acumulativa para usuarios de PC con Windows 10 llamada Build 14393.222. Esta actualización lanzada para Windows 10 corrige principalmente errores basados ​​en los comentarios de los usuarios y mejora la experiencia de rendimiento del sistema operativo.

Proteja su red informática con Bastion host en solo 3 pasos

Proteja su red informática con Bastion host en solo 3 pasos

¿Tiene computadoras en su red local que necesitan acceso externo? Usar un host bastión como guardián de su red puede ser una buena solución.

3 formas de borrar rápidamente todos los registros de eventos en Windows 10

3 formas de borrar rápidamente todos los registros de eventos en Windows 10

A veces es posible que necesites eliminar todos los registros de eventos antiguos a la vez. En esta guía, Quantrimang.com le mostrará 3 formas de eliminar rápidamente todos los registros de eventos en el Visor de eventos de Windows 10.

Cómo crear una tecla de Windows si tu teclado no está disponible

Cómo crear una tecla de Windows si tu teclado no está disponible

Si prefiere usar un teclado clásico antiguo, como el IBM Modelo M, que no incluye una tecla física de Windows, existe un método sencillo para agregar más, tomando prestada una tecla que no usa con frecuencia.

Cómo crear un modo de fondo transparente en Windows 10

Cómo crear un modo de fondo transparente en Windows 10

WindowTop es una herramienta que tiene la capacidad de atenuar todas las ventanas de aplicaciones y programas que se ejecutan en computadoras con Windows 10. O puede usar una interfaz de fondo oscuro en Windows.

Los métodos de IP falsos te ayudan a acceder de forma anónima

Los métodos de IP falsos te ayudan a acceder de forma anónima

En muchos artículos anteriores hemos mencionado que permanecer anónimo en línea es extremadamente importante. Cada año se filtra información privada, lo que hace que la seguridad en línea sea cada vez más necesaria. Esa es también la razón por la que deberíamos utilizar direcciones IP virtuales. ¡A continuación, aprenderemos sobre métodos para crear IP falsas!

Cómo desactivar la barra de idioma en la barra de tareas de Windows 8

Cómo desactivar la barra de idioma en la barra de tareas de Windows 8

La barra de idioma en Windows 8 es una barra de herramientas de idioma en miniatura diseñada para mostrarse automáticamente en la pantalla del escritorio. Sin embargo, mucha gente quiere ocultar esta barra de idioma en la barra de tareas.

Consejos para optimizar la velocidad de conexión a Internet de Linksys

Consejos para optimizar la velocidad de conexión a Internet de Linksys

Maximizar la velocidad de Internet es esencial para optimizar su conexión de red. Podrás tener una óptima experiencia de entretenimiento y trabajo utilizando computadoras, televisores con acceso a Internet, consolas de juegos, etc.

Cómo configurar WEP, WPA, WPA2 para el enrutador Linksys

Cómo configurar WEP, WPA, WPA2 para el enrutador Linksys

La conectividad inalámbrica es una necesidad hoy en día y, por eso, la seguridad inalámbrica es esencial para garantizar la seguridad en su red interna.