SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
Cookies y otras tecnologías de
monitorización en Internet
Alejandro Ramos
Twitter: @aramosf
Blog: http://www.securitybydefault.com
Slideshare: http://www.slideshare.com/aramosf
Junio/2014
Introducción.
• Por motivos históricos el protocolo HTTP no
está orientado a mantener la sesión.
• == No es capaz de distinguir a los usuarios
mientras navegan.
• Debido a la necesidad de crear un “carrito de la
compra” nacen las cookies.
El protocolo HTTP
GET /
GET /siames.jpg
GET /persa.jpg
GET /angora.jpg
<incluye imágenes con gatos>
El protocolo HTTP – Ej. Autenticación
POST / usuario=yo&contraseña=CatFan
GET /mensajes
Cookie: ID=HD5F12EEAB095EF112
Set-Cookie: ID=HD5F12EEAB095EF112
Ok! Usuario correcto.
Hola… este es un mensaje privado…
Propiedades de las cookies
• Una cookie es un secreto compartido entre
cliente y servidor para validar la identidad:
un testigo.
• Se almacenan en el sistema en ficheros de forma
persistente.
• Tienen fecha de expiración.
• Se pueden establecer para que solo se
transmitan en protocolo seguro (HTTPS).
• Las de un dominio no pueden ser consultadas
por otro dominio.
Set-Cookie y el fichero en el disco duro.
Ejemplos de otros usos de las cookies.
• Identificar de forma inequívoca a un usuario
permite:
▫ Saber que páginas ha visitado.
▫ Que productos ha buscado.
▫ Su localización geográfica.
▫ Conocer desde que página ha llegado.
▫ El navegador que utiliza.
▫ Ver en que parte de la web a movido el ratón.
▫ … O incluso las teclas que ha pulsado.
El poder de la analítica: Open Web Analytics
Tipos de cookies.
• Existen varios formas de almacenar información de forma
persistente en un navegador:
▫ Cookies estándar: aceptadas por los RFC de HTTP.
▫ Cookies de HTML5 “webstorage”: nuevo método para almacenar
cookies en el navegador.
▫ Cookies “Local Shared Object” o LSO: en las que se usa un
contenedor de Flash.
▫ IE userData: parar versiones anteriores a la 10 de IE.
▫ SilverLight Isolated Storage: similar a Flash pero de MS.
• No todas ellas son “ampliamente” conocidas o se pueden
eliminar desde el navegador.
Cookie estándar
• Definidas en los RFC 2109 y 2965.
• Son la gran mayoría y las más conocidas.
• Se establecen mediante cabecera HTTP Set-
Cookie.
• Según el navegador se almacenan en:
▫ IE (ficheros)
 %AppData%MicrosoftWindowsCookies
▫ Firefox (sqlite)
 %AppData%MozillaFirefoxProfilesxxxxxx.defaultcookies.sqlite
▫ Chrome (sqlite)
 %LocalAppData%GoogleChromeUser DataDefaultCookies
Peticiones HTTP
Servidor
HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: name=value
Set-Cookie: name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT
(content of page)
Navegador
GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: name=value; name2=value2
Accept: */*
Cookies Flash - Local Shared Object
• Es necesario utilizar el plugin de Flash.
• Se pueden compartir entre navegadores Firefox->IE.
• Existió controversia cuando se comenzó a utilizar. Su uso
era muy extendido y no se conocían los mecanismos para
eliminar este tipo de datos.
• Desde 2011 se pueden eliminar desde el propio
navegador.
• No caducan.
• Se almacenan en:
▫ IE/Firefox:
 %AppData%MacromediaFlash Player#SharedObjectsXXX
▫ Chrome:
 %LocalAppdata%GoogleChromeUser DataDefaultPepper
DataShockwave FlashWritableRoot#SharedObjects
Ejemplo de Almacenamiento ActionScript 3
http://research.zscaler.com/2009/03/demystifyingabusing-flash-cookies.html
La configuración de Flash y sus cookies.
SilverLight Isolated Storage
• Similar a las Cookies de Flash, pero menos
conocidas.
• No muy extendidas debido a la falta de
popularidad de SilverLight.
• Ruta de los ficheros:
▫ %UserProfile%AppDataLocalLowMicrosoftSil
verlightis
Ejemplo SilverLight
http://msdn.microsoft.com/es-es/library/cc221360(v=vs.95).aspx?cs-save-
lang=1&cs-lang=csharp#code-snippet-13
Cookies HTML5
• Nacen con HTML5 para aumentar el tamaño de las cookies y
mejorar el rendimiento.
• Se pueden almacenar de formas distintas:
▫ Session Storage: no persistente.
▫ Local Storage: persistente y ampliamente usada
▫ Global Storage: antiguo método.
▫ Database Storage: en sqlite. Soportado por pocos navegadores.
▫ IndexedDB: Chrome/Firefox y parcialmente en IE.
• Las que se usan normalmente son las dos primeras.
• Su ruta en el disco es:
▫ IE:
 %UserProfile%AppDataLocalLowMicrosoftInternet ExplorerDOMStore
▫ Firefox:
 %AppData%MozillaFirefoxProfilesxxxxxxx.defaultwebappsstore.sqlite
▫ Chrome:
 %LocalAppData%GoogleChromeUser DataDefaultLocal Storage
Ejemplo almacenamiento Local Storage
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=html5AlmacenamientoLocal
Como se consultan las cookies en HTML5
IE userData
• Utilizado como alternativa a “localStorage” en
navegadores IE sin soporte HTML5.
• Obsoleto en Internet Explorer 10.
• Peligrosas, ya que no expiran nunca.
• No soportado por otros navegadores.
• Ruta del almacén de ficheros:
▫ %USERPROFILE%AppDataRoamingMicrosoft
Internet ExplorerUserData
Ejemplo userData behavior
http://samples.msdn.microsoft.com/workshop/samples/author/persistence/userData_1.htm
Proyecto: Persist-JS
• Librería que implementa varios métodos para
almacenar cookies
▫ flash: Flash 8 persistent storage.
▫ gears: Google Gears-based persistent storage.
▫ localstorage: HTML5 draft storage.
▫ globalstorage: HTML5 draft storage (old spec).
▫ ie: Internet Explorer userdata behaviors.
▫ cookie: Cookie-based persistent storage.
• https://github.com/jeremydurham/persist-js
PersistJS en Internet.
Alternativas a las cookies.
• Técnicamente es posible “engañar” al navegador
para identificar a un usuario sin la necesidad de
cookies.
• Esto permite que algunas empresas usen estos
métodos para rastrear usuarios y sus
comportamientos, aunque eliminen las cookies.
¿Y estos métodos se usan?
Si….Y se las conoce como cookies zombie.
window.name
• Propiedad que permite especificar un nombre a
una ventana.
• Es permanente entre las páginas.
• Su uso esta muy extendido, sin propósitos de
monitorización.
• Aunque también se usa como sustituto de las
cookies de sesión..
• No es persistente en disco duro, salvo se
guarde en la caché.
Proyecto: jQuery-store
• Librería que permite almacenar información en:
▫ HTML 5's DOM Storage
▫ Microsoft's UserData
▫ Si esos métodos fallan: window.name
• Se puede usar para trazar una sesión, pero al no
ser persistente no aguanta los reinicios del
navegador.
https://github.com/medialize/jQuery-store
Fingerprint del navegador
• Identifica al usuario en base a una firma obtenida
al conectarse.
• Método ampliamente usado.
• La firma se genera en base a características como:
▫ Fuentes instaladas (javascript y flash).
▫ Complementos instalados.
▫ Zona horaria
▫ Resolución de la pantalla.
▫ Características del navegador (canvas)
Estudio sobre fingerprints
http://www.cosic.esat.kuleuven.be/publications/article-2334.pdf
Proyecto: FingerprintJS
• Permite obtener una huella única de un
navegador con una probabilidad del 94%.
• Múltiples variantes. Más de 10 proyectos en
Github similares.
• Proyecto EFF Panopticlick de 2010
https://github.com/Valve/fingerprintjs
https://github.com/carlo/jquery-browser-fingerprint
La huella digital del navegador.
HTTP ETags
• La cabecera HTTP ETag es un identificador único que
se entrega junto a un objeto de una página web.
• Es usada para que el navegador consulte si ha sido
modificado el objeto que almacena en caché.
▫ Si no se ha modificado, no hace la petición.
▫ Si se ha modificado, realiza la petición y actualiza la
caché.
• Si el servidor web manda un identificador único en el
Etag para cada usuario, puede leerlo posteriormente
para identificarlo.
Funcionamiento de ETag
Proyecto: Cookieless
• Aplicación que implementa tracking mediante Etag.
• Fácil de usar y muy difícil de detectar si está bien
implantado.
• Proyectos alternativos:
▫ http://lucb1e.com/rp/cookielesscookies/
▫ https://github.com/mephir/etagsession
▫ https://github.com/adamdeprince/etag-tracker
• https://github.com/lucb1e/cookielesscookies
Caso real: KissMetrics
http://www.wired.com/2011/07/undeletable-cookie/
Uso de Etag para almacenar una cookie.
WebCache: “If-Modified-Since”
• Similar al caso anterior de Etag, basándose en la
caché del navegador.
• El servidor establece una fecha concreta para
cada usuario en un objeto (Last-Modified)
• El navegador comprueba si la versión de su
caché es la última mediante la cabecera “If-
Modified-Since” más la fecha que recibió.
• El servidor lee la fecha de la petición e identifica
al usuario.
Javascript con código único.
• El servidor manda a cada usuario un javascript
con un ID único.
• El javascript es almacenado en la caché.
• El ID es obtenido por el propio javascript como
valor de sesión.
• Este método es ampliamente usado, no siempre
con propósitos malvados.
Un Javascript distinto para cada usuario.
WebHistory
• Mediante javascript se codifica en base64 la cookie.
• Se realizan peticiones en background para que queden
guardadas las URL en el historial del navegador.
• Por ejemplo, para almacenar “bcde-”, se harían las peticiones
de:
▫ google.com/evercookie/cache/b
▫ google.com/evercookie/cache/bc
▫ google.com/evercookie/cache/bcd
▫ google.com/evercookie/cache/bcde
▫ google.com/evercookie/cache/bcde-
• Para recuperar la sesión, se consulta el historial de
navegación mediante fuerza bruta (en local) utilizando CSS y
javascript.
• Es una prueba de concepto más que una realidad.
PNG, Canvas y caché
• Cuando el servidor genera la cookie, establece una
segunda cookie de control.
• El cliente solicita un PHP. Si el servidor observa que esa
petición contiene la cookie de control, crea una imagen
(PNG) que contiene los datos de la cookie a guardar.
• Se indica al cliente que guarde la imagen en la caché
durante años.
• Para recuperar la cookie el cliente solicita la imagen.
• El servidor devuelve un “304 Not Modified” y deja que el
navegador use la imagen de la caché.
• Mediante Canvas, recupera los bytes guardados en la
imagen.
PNG/Canvas – Crear imagen (cookie)
GET /index.html
Set-Cookie: ID=EE01AF
Set-Cookie: Control=778811
GET /pixel.png
Cookie: ID=EE01AF
Cookie: Control=778811
¿Tiene
cookie?
Si
EE01AF
Expires: Mon, 29 Apr 203’ 21:44:55 GMT
Queda
almacenada
en caché la
imagen
PNG/Canvas – Recuperar cookie (de la imagen)
GET /index.html
GET /pixel.png ¿Tiene
cookie?
No
304 Not ModifiedEn cache
Javascript lee el PNG con
“canvas” y establece la
cookie
Otros métodos
• Existen más métodos para identificar de forma
inequívoca a un usuario mientras navega:
▫ Java JNLP
▫ Google Gears
▫ HTTP Autenticación básica.
evercookie
• Herramienta que implementa hasta 14 métodos distintos
para persistir una cookie.
• Creada por Samy Kamkar en 2010
• Entre ellos algunos muy agresivos:
▫ Storing cookies in Web History
▫ Storing cookies in HTTP ETags
▫ Storing cookies in Web cache
▫ Java JNLP PersistenceService
▫ window.name caching
▫ PNG
▫ Java CVE-2013-0422 exploit
• https://github.com/samyk/evercookie
Evercookies en la NSA
• Presentación filtrada
por Snowden
• La NSA se plantea el
uso de evercookies.
http://www.theguardian.com/world/interactive/2013/oct/04/tor-stinks-nsa-
presentation-document
El uso de Evercookie
Recomendaciones.
• Pensemos que no hay manera de librarse.
• Única opción: navegar en modo privado
“InPrivate” o “Incógnito”. Esto deshabilita la
caché.
• Vaciar la caché del navegador al terminar de
usarlo.
• Cerrar el navegador al terminar de navegar.
• Utilizar extensiones como “AdBlock” , “Private
Browsing”, “Disconnect” y “SecretAgent”
Referencias.
• http://robertheaton.com/2014/01/20/cookieless-user-tracking-for-
douchebags/
• http://www.futureofprivacy.org/wp-
content/uploads/2011/07/Flash%20Cookies%20and%20Privacy%20II%20
Now%20with%20HTML5%20and%20ETag%20Respawning.pdf
• http://lucb1e.com/rp/cookielesscookies/
• http://samy.pl/evercookie/
• http://en.wikipedia.org/wiki/Local_shared_object
• http://en.wikipedia.org/wiki/Zombie_cookie
• http://www.w3schools.com/html/html5_webstorage.asp
• http://www.agpd.es/portalwebAGPD/canaldocumentacion/publicaciones/
common/Guias/Guia_Cookies.pdf
• http://msdn.microsoft.com/es-es/library/bdts8hk0(v=vs.95).aspx
• http://www.arctic.org/~dean/tracking-without-cookies.html
• http://ashkansoltani.org/2011/08/11/respawn-redux-flash-cookies/
• https://panopticlick.eff.org/browser-uniqueness.pdf
• http://msdn.microsoft.com/en-us/library/ms531424.aspx
• http://www.cosic.esat.kuleuven.be/publications/article-2334.pdf
Gracias.
Twitter: @aramosf
Blog: http://www.securitybydefault.com
Slideshare: http://www.slideshare.com/aramosf
Junio/2014

Contenu connexe

En vedette

Forrester’s study: Discover How Marketing Analytics Increases Business Perfor...
Forrester’s study: Discover How Marketing Analytics Increases Business Perfor...Forrester’s study: Discover How Marketing Analytics Increases Business Perfor...
Forrester’s study: Discover How Marketing Analytics Increases Business Perfor...Nicolas Valenzuela
 
Cookies
CookiesCookies
Cookies1 2d
 
9197757 los-sniffers
9197757 los-sniffers9197757 los-sniffers
9197757 los-sniffers1 2d
 
Metodologia de una tesis1
Metodologia de una tesis1Metodologia de una tesis1
Metodologia de una tesis1emelec2014
 
Guía de Cookies (Vídeo)
Guía de Cookies (Vídeo)Guía de Cookies (Vídeo)
Guía de Cookies (Vídeo)Xavier Ribas
 
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?madridgeekgirls
 
Procedimiento de notificacion de infracciones a ISP
Procedimiento de notificacion de infracciones a ISPProcedimiento de notificacion de infracciones a ISP
Procedimiento de notificacion de infracciones a ISPXavier Ribas
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii1 2d
 
Las redes sociales jose luis de la mata
Las redes sociales jose luis de la mataLas redes sociales jose luis de la mata
Las redes sociales jose luis de la mataConfesorAD
 
Propiedad intelectual e Internet - Gigantes o molinos?
Propiedad intelectual e Internet - Gigantes o molinos?Propiedad intelectual e Internet - Gigantes o molinos?
Propiedad intelectual e Internet - Gigantes o molinos?Xavier Ribas
 
Comunicaciones electronicas
Comunicaciones electronicasComunicaciones electronicas
Comunicaciones electronicasXavier Ribas
 
Cookies Y Bases De Datos
Cookies Y Bases De DatosCookies Y Bases De Datos
Cookies Y Bases De DatosConfesorAD
 
Google analytics interpretacion de la cookie
Google analytics interpretacion de la cookieGoogle analytics interpretacion de la cookie
Google analytics interpretacion de la cookieNicolas Valenzuela
 
DONNÉES PERSONNELLES : LE PARADOXE FRANÇAIS
DONNÉES PERSONNELLES : LE PARADOXE FRANÇAISDONNÉES PERSONNELLES : LE PARADOXE FRANÇAIS
DONNÉES PERSONNELLES : LE PARADOXE FRANÇAISIpsos France
 
Google insights Mobile momentomovil Argentina
Google insights Mobile momentomovil ArgentinaGoogle insights Mobile momentomovil Argentina
Google insights Mobile momentomovil ArgentinaNicolas Valenzuela
 

En vedette (19)

Forrester’s study: Discover How Marketing Analytics Increases Business Perfor...
Forrester’s study: Discover How Marketing Analytics Increases Business Perfor...Forrester’s study: Discover How Marketing Analytics Increases Business Perfor...
Forrester’s study: Discover How Marketing Analytics Increases Business Perfor...
 
Cookies
CookiesCookies
Cookies
 
Cookies: ¿Cómo funcionan?
Cookies: ¿Cómo funcionan?Cookies: ¿Cómo funcionan?
Cookies: ¿Cómo funcionan?
 
9197757 los-sniffers
9197757 los-sniffers9197757 los-sniffers
9197757 los-sniffers
 
Metodologia de una tesis1
Metodologia de una tesis1Metodologia de una tesis1
Metodologia de una tesis1
 
Guía de Cookies (Vídeo)
Guía de Cookies (Vídeo)Guía de Cookies (Vídeo)
Guía de Cookies (Vídeo)
 
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
 
Procedimiento de notificacion de infracciones a ISP
Procedimiento de notificacion de infracciones a ISPProcedimiento de notificacion de infracciones a ISP
Procedimiento de notificacion de infracciones a ISP
 
Php
PhpPhp
Php
 
PHP: Sesiones
PHP: SesionesPHP: Sesiones
PHP: Sesiones
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 
Las redes sociales jose luis de la mata
Las redes sociales jose luis de la mataLas redes sociales jose luis de la mata
Las redes sociales jose luis de la mata
 
Propiedad intelectual e Internet - Gigantes o molinos?
Propiedad intelectual e Internet - Gigantes o molinos?Propiedad intelectual e Internet - Gigantes o molinos?
Propiedad intelectual e Internet - Gigantes o molinos?
 
Comunicaciones electronicas
Comunicaciones electronicasComunicaciones electronicas
Comunicaciones electronicas
 
Cookies Y Bases De Datos
Cookies Y Bases De DatosCookies Y Bases De Datos
Cookies Y Bases De Datos
 
Google analytics interpretacion de la cookie
Google analytics interpretacion de la cookieGoogle analytics interpretacion de la cookie
Google analytics interpretacion de la cookie
 
DONNÉES PERSONNELLES : LE PARADOXE FRANÇAIS
DONNÉES PERSONNELLES : LE PARADOXE FRANÇAISDONNÉES PERSONNELLES : LE PARADOXE FRANÇAIS
DONNÉES PERSONNELLES : LE PARADOXE FRANÇAIS
 
Google insights Mobile momentomovil Argentina
Google insights Mobile momentomovil ArgentinaGoogle insights Mobile momentomovil Argentina
Google insights Mobile momentomovil Argentina
 
Macro PLC Educativo
Macro PLC EducativoMacro PLC Educativo
Macro PLC Educativo
 

Similaire à Cookies y otras tecnologías de monitorización en internet

Almacenamiento web HTML5
Almacenamiento web HTML5Almacenamiento web HTML5
Almacenamiento web HTML5Javii Enriquez
 
Mi querido navegador web ¿Qué sabe de mí?
Mi querido navegador web ¿Qué sabe de mí?Mi querido navegador web ¿Qué sabe de mí?
Mi querido navegador web ¿Qué sabe de mí?linenoise
 
Aplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiAplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiGuillermo Nassi
 
Ejemplos reales TPW
Ejemplos reales TPWEjemplos reales TPW
Ejemplos reales TPWYesenia_1226
 
HTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYHTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYJuan Eladio Sánchez Rosas
 
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...Juan Carlos Olivares Rojas
 
Estándares web y soporte en navegadores
Estándares web y soporte en navegadoresEstándares web y soporte en navegadores
Estándares web y soporte en navegadoresDemóstenes García G.
 
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web SitesopenfinanceDev
 
Seguridad y optimización en Magento
Seguridad y optimización en MagentoSeguridad y optimización en Magento
Seguridad y optimización en MagentoDevopensource
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuelacarmen51
 
fallas de internt
fallas de interntfallas de internt
fallas de interntcarmen51
 
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...Alejandro Ramos
 
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptxTEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptxAlfonsoJimenez51
 
Html5 - El futuro de la web
Html5 - El futuro de la webHtml5 - El futuro de la web
Html5 - El futuro de la webJoan Fernández
 
Certificados digitales
Certificados digitalesCertificados digitales
Certificados digitalesTensor
 
El tamaño importa - JoomlaDay Sevilla 2015
El tamaño importa - JoomlaDay Sevilla 2015El tamaño importa - JoomlaDay Sevilla 2015
El tamaño importa - JoomlaDay Sevilla 2015Alejandro Domínguez
 

Similaire à Cookies y otras tecnologías de monitorización en internet (20)

Almacenamiento web HTML5
Almacenamiento web HTML5Almacenamiento web HTML5
Almacenamiento web HTML5
 
Mi querido navegador web ¿Qué sabe de mí?
Mi querido navegador web ¿Qué sabe de mí?Mi querido navegador web ¿Qué sabe de mí?
Mi querido navegador web ¿Qué sabe de mí?
 
Aplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiAplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y Nassi
 
La Caché
La CachéLa Caché
La Caché
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
 
Ejemplos reales TPW
Ejemplos reales TPWEjemplos reales TPW
Ejemplos reales TPW
 
HTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYHTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOY
 
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
 
Estándares web y soporte en navegadores
Estándares web y soporte en navegadoresEstándares web y soporte en navegadores
Estándares web y soporte en navegadores
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
 
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
 
Seguridad y optimización en Magento
Seguridad y optimización en MagentoSeguridad y optimización en Magento
Seguridad y optimización en Magento
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuela
 
fallas de internt
fallas de interntfallas de internt
fallas de internt
 
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
 
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptxTEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
 
Html5 - El futuro de la web
Html5 - El futuro de la webHtml5 - El futuro de la web
Html5 - El futuro de la web
 
Tutoria 3
Tutoria 3Tutoria 3
Tutoria 3
 
Certificados digitales
Certificados digitalesCertificados digitales
Certificados digitales
 
El tamaño importa - JoomlaDay Sevilla 2015
El tamaño importa - JoomlaDay Sevilla 2015El tamaño importa - JoomlaDay Sevilla 2015
El tamaño importa - JoomlaDay Sevilla 2015
 

Plus de Alejandro Ramos

Rooted con 2015 - Rojos y Azules: dos equipos con dos sabores
Rooted con 2015 - Rojos y Azules: dos equipos con dos saboresRooted con 2015 - Rojos y Azules: dos equipos con dos sabores
Rooted con 2015 - Rojos y Azules: dos equipos con dos saboresAlejandro Ramos
 
Ejemplos de seguridad en aplicaciones moviles (IOS)
Ejemplos de seguridad en aplicaciones moviles (IOS) Ejemplos de seguridad en aplicaciones moviles (IOS)
Ejemplos de seguridad en aplicaciones moviles (IOS) Alejandro Ramos
 
Te pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLiteTe pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLiteAlejandro Ramos
 
Forense en windows - Resolución Reto I de Dragonjar
Forense en windows -  Resolución Reto I de DragonjarForense en windows -  Resolución Reto I de Dragonjar
Forense en windows - Resolución Reto I de DragonjarAlejandro Ramos
 
Análisis forense en linux - Compromised Linux Server
Análisis forense en linux - Compromised Linux ServerAnálisis forense en linux - Compromised Linux Server
Análisis forense en linux - Compromised Linux ServerAlejandro Ramos
 
Advanced password cracking
Advanced password crackingAdvanced password cracking
Advanced password crackingAlejandro Ramos
 
Seguridad en PDF: Adobe ¬¬
Seguridad en PDF: Adobe ¬¬Seguridad en PDF: Adobe ¬¬
Seguridad en PDF: Adobe ¬¬Alejandro Ramos
 
Jornada de ciberdefensa stuxnet
Jornada de ciberdefensa   stuxnetJornada de ciberdefensa   stuxnet
Jornada de ciberdefensa stuxnetAlejandro Ramos
 
Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0Alejandro Ramos
 
Pentest curso de verano - valencia 2010
Pentest curso de verano - valencia 2010Pentest curso de verano - valencia 2010
Pentest curso de verano - valencia 2010Alejandro Ramos
 
Seguridad en PDF - Adobe ¬¬
Seguridad en PDF - Adobe ¬¬Seguridad en PDF - Adobe ¬¬
Seguridad en PDF - Adobe ¬¬Alejandro Ramos
 
Fist - Negocio Pirateria
Fist - Negocio PirateriaFist - Negocio Pirateria
Fist - Negocio PirateriaAlejandro Ramos
 
Crapcha Sv1.0 Slide Share
Crapcha Sv1.0   Slide ShareCrapcha Sv1.0   Slide Share
Crapcha Sv1.0 Slide ShareAlejandro Ramos
 

Plus de Alejandro Ramos (20)

Rooted con 2015 - Rojos y Azules: dos equipos con dos sabores
Rooted con 2015 - Rojos y Azules: dos equipos con dos saboresRooted con 2015 - Rojos y Azules: dos equipos con dos sabores
Rooted con 2015 - Rojos y Azules: dos equipos con dos sabores
 
Ejemplos de seguridad en aplicaciones moviles (IOS)
Ejemplos de seguridad en aplicaciones moviles (IOS) Ejemplos de seguridad en aplicaciones moviles (IOS)
Ejemplos de seguridad en aplicaciones moviles (IOS)
 
Te pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLiteTe pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLite
 
Shodab
ShodabShodab
Shodab
 
Forense en windows - Resolución Reto I de Dragonjar
Forense en windows -  Resolución Reto I de DragonjarForense en windows -  Resolución Reto I de Dragonjar
Forense en windows - Resolución Reto I de Dragonjar
 
Análisis forense en linux - Compromised Linux Server
Análisis forense en linux - Compromised Linux ServerAnálisis forense en linux - Compromised Linux Server
Análisis forense en linux - Compromised Linux Server
 
Advanced password cracking
Advanced password crackingAdvanced password cracking
Advanced password cracking
 
Seguridad en PDF: Adobe ¬¬
Seguridad en PDF: Adobe ¬¬Seguridad en PDF: Adobe ¬¬
Seguridad en PDF: Adobe ¬¬
 
Wargame
WargameWargame
Wargame
 
Jornada de ciberdefensa stuxnet
Jornada de ciberdefensa   stuxnetJornada de ciberdefensa   stuxnet
Jornada de ciberdefensa stuxnet
 
Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0
 
Pentest curso de verano - valencia 2010
Pentest curso de verano - valencia 2010Pentest curso de verano - valencia 2010
Pentest curso de verano - valencia 2010
 
Seguridad en PDF - Adobe ¬¬
Seguridad en PDF - Adobe ¬¬Seguridad en PDF - Adobe ¬¬
Seguridad en PDF - Adobe ¬¬
 
Rooted2010 Otp
Rooted2010 OtpRooted2010 Otp
Rooted2010 Otp
 
Owasp Top10 FireFox
Owasp Top10 FireFoxOwasp Top10 FireFox
Owasp Top10 FireFox
 
Fist - Negocio Pirateria
Fist - Negocio PirateriaFist - Negocio Pirateria
Fist - Negocio Pirateria
 
Seguridad en Bluetooth
Seguridad en BluetoothSeguridad en Bluetooth
Seguridad en Bluetooth
 
DNI-E
DNI-EDNI-E
DNI-E
 
DoS En La Ciberguerra
DoS En La CiberguerraDoS En La Ciberguerra
DoS En La Ciberguerra
 
Crapcha Sv1.0 Slide Share
Crapcha Sv1.0   Slide ShareCrapcha Sv1.0   Slide Share
Crapcha Sv1.0 Slide Share
 

Dernier

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Dernier (15)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Cookies y otras tecnologías de monitorización en internet

  • 1. Cookies y otras tecnologías de monitorización en Internet Alejandro Ramos Twitter: @aramosf Blog: http://www.securitybydefault.com Slideshare: http://www.slideshare.com/aramosf Junio/2014
  • 2. Introducción. • Por motivos históricos el protocolo HTTP no está orientado a mantener la sesión. • == No es capaz de distinguir a los usuarios mientras navegan. • Debido a la necesidad de crear un “carrito de la compra” nacen las cookies.
  • 3. El protocolo HTTP GET / GET /siames.jpg GET /persa.jpg GET /angora.jpg <incluye imágenes con gatos>
  • 4. El protocolo HTTP – Ej. Autenticación POST / usuario=yo&contraseña=CatFan GET /mensajes Cookie: ID=HD5F12EEAB095EF112 Set-Cookie: ID=HD5F12EEAB095EF112 Ok! Usuario correcto. Hola… este es un mensaje privado…
  • 5. Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad: un testigo. • Se almacenan en el sistema en ficheros de forma persistente. • Tienen fecha de expiración. • Se pueden establecer para que solo se transmitan en protocolo seguro (HTTPS). • Las de un dominio no pueden ser consultadas por otro dominio.
  • 6. Set-Cookie y el fichero en el disco duro.
  • 7.
  • 8. Ejemplos de otros usos de las cookies. • Identificar de forma inequívoca a un usuario permite: ▫ Saber que páginas ha visitado. ▫ Que productos ha buscado. ▫ Su localización geográfica. ▫ Conocer desde que página ha llegado. ▫ El navegador que utiliza. ▫ Ver en que parte de la web a movido el ratón. ▫ … O incluso las teclas que ha pulsado.
  • 9. El poder de la analítica: Open Web Analytics
  • 10.
  • 11. Tipos de cookies. • Existen varios formas de almacenar información de forma persistente en un navegador: ▫ Cookies estándar: aceptadas por los RFC de HTTP. ▫ Cookies de HTML5 “webstorage”: nuevo método para almacenar cookies en el navegador. ▫ Cookies “Local Shared Object” o LSO: en las que se usa un contenedor de Flash. ▫ IE userData: parar versiones anteriores a la 10 de IE. ▫ SilverLight Isolated Storage: similar a Flash pero de MS. • No todas ellas son “ampliamente” conocidas o se pueden eliminar desde el navegador.
  • 12. Cookie estándar • Definidas en los RFC 2109 y 2965. • Son la gran mayoría y las más conocidas. • Se establecen mediante cabecera HTTP Set- Cookie. • Según el navegador se almacenan en: ▫ IE (ficheros)  %AppData%MicrosoftWindowsCookies ▫ Firefox (sqlite)  %AppData%MozillaFirefoxProfilesxxxxxx.defaultcookies.sqlite ▫ Chrome (sqlite)  %LocalAppData%GoogleChromeUser DataDefaultCookies
  • 13. Peticiones HTTP Servidor HTTP/1.0 200 OK Content-type: text/html Set-Cookie: name=value Set-Cookie: name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT (content of page) Navegador GET /spec.html HTTP/1.1 Host: www.example.org Cookie: name=value; name2=value2 Accept: */*
  • 14. Cookies Flash - Local Shared Object • Es necesario utilizar el plugin de Flash. • Se pueden compartir entre navegadores Firefox->IE. • Existió controversia cuando se comenzó a utilizar. Su uso era muy extendido y no se conocían los mecanismos para eliminar este tipo de datos. • Desde 2011 se pueden eliminar desde el propio navegador. • No caducan. • Se almacenan en: ▫ IE/Firefox:  %AppData%MacromediaFlash Player#SharedObjectsXXX ▫ Chrome:  %LocalAppdata%GoogleChromeUser DataDefaultPepper DataShockwave FlashWritableRoot#SharedObjects
  • 15. Ejemplo de Almacenamiento ActionScript 3 http://research.zscaler.com/2009/03/demystifyingabusing-flash-cookies.html
  • 16. La configuración de Flash y sus cookies.
  • 17.
  • 18. SilverLight Isolated Storage • Similar a las Cookies de Flash, pero menos conocidas. • No muy extendidas debido a la falta de popularidad de SilverLight. • Ruta de los ficheros: ▫ %UserProfile%AppDataLocalLowMicrosoftSil verlightis
  • 20. Cookies HTML5 • Nacen con HTML5 para aumentar el tamaño de las cookies y mejorar el rendimiento. • Se pueden almacenar de formas distintas: ▫ Session Storage: no persistente. ▫ Local Storage: persistente y ampliamente usada ▫ Global Storage: antiguo método. ▫ Database Storage: en sqlite. Soportado por pocos navegadores. ▫ IndexedDB: Chrome/Firefox y parcialmente en IE. • Las que se usan normalmente son las dos primeras. • Su ruta en el disco es: ▫ IE:  %UserProfile%AppDataLocalLowMicrosoftInternet ExplorerDOMStore ▫ Firefox:  %AppData%MozillaFirefoxProfilesxxxxxxx.defaultwebappsstore.sqlite ▫ Chrome:  %LocalAppData%GoogleChromeUser DataDefaultLocal Storage
  • 21. Ejemplo almacenamiento Local Storage http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=html5AlmacenamientoLocal
  • 22. Como se consultan las cookies en HTML5
  • 23.
  • 24. IE userData • Utilizado como alternativa a “localStorage” en navegadores IE sin soporte HTML5. • Obsoleto en Internet Explorer 10. • Peligrosas, ya que no expiran nunca. • No soportado por otros navegadores. • Ruta del almacén de ficheros: ▫ %USERPROFILE%AppDataRoamingMicrosoft Internet ExplorerUserData
  • 26. Proyecto: Persist-JS • Librería que implementa varios métodos para almacenar cookies ▫ flash: Flash 8 persistent storage. ▫ gears: Google Gears-based persistent storage. ▫ localstorage: HTML5 draft storage. ▫ globalstorage: HTML5 draft storage (old spec). ▫ ie: Internet Explorer userdata behaviors. ▫ cookie: Cookie-based persistent storage. • https://github.com/jeremydurham/persist-js
  • 28.
  • 29. Alternativas a las cookies. • Técnicamente es posible “engañar” al navegador para identificar a un usuario sin la necesidad de cookies. • Esto permite que algunas empresas usen estos métodos para rastrear usuarios y sus comportamientos, aunque eliminen las cookies.
  • 30. ¿Y estos métodos se usan? Si….Y se las conoce como cookies zombie.
  • 31. window.name • Propiedad que permite especificar un nombre a una ventana. • Es permanente entre las páginas. • Su uso esta muy extendido, sin propósitos de monitorización. • Aunque también se usa como sustituto de las cookies de sesión.. • No es persistente en disco duro, salvo se guarde en la caché.
  • 32. Proyecto: jQuery-store • Librería que permite almacenar información en: ▫ HTML 5's DOM Storage ▫ Microsoft's UserData ▫ Si esos métodos fallan: window.name • Se puede usar para trazar una sesión, pero al no ser persistente no aguanta los reinicios del navegador. https://github.com/medialize/jQuery-store
  • 33. Fingerprint del navegador • Identifica al usuario en base a una firma obtenida al conectarse. • Método ampliamente usado. • La firma se genera en base a características como: ▫ Fuentes instaladas (javascript y flash). ▫ Complementos instalados. ▫ Zona horaria ▫ Resolución de la pantalla. ▫ Características del navegador (canvas)
  • 35. Proyecto: FingerprintJS • Permite obtener una huella única de un navegador con una probabilidad del 94%. • Múltiples variantes. Más de 10 proyectos en Github similares. • Proyecto EFF Panopticlick de 2010 https://github.com/Valve/fingerprintjs https://github.com/carlo/jquery-browser-fingerprint
  • 36. La huella digital del navegador.
  • 37.
  • 38. HTTP ETags • La cabecera HTTP ETag es un identificador único que se entrega junto a un objeto de una página web. • Es usada para que el navegador consulte si ha sido modificado el objeto que almacena en caché. ▫ Si no se ha modificado, no hace la petición. ▫ Si se ha modificado, realiza la petición y actualiza la caché. • Si el servidor web manda un identificador único en el Etag para cada usuario, puede leerlo posteriormente para identificarlo.
  • 40. Proyecto: Cookieless • Aplicación que implementa tracking mediante Etag. • Fácil de usar y muy difícil de detectar si está bien implantado. • Proyectos alternativos: ▫ http://lucb1e.com/rp/cookielesscookies/ ▫ https://github.com/mephir/etagsession ▫ https://github.com/adamdeprince/etag-tracker • https://github.com/lucb1e/cookielesscookies
  • 42. Uso de Etag para almacenar una cookie.
  • 43.
  • 44. WebCache: “If-Modified-Since” • Similar al caso anterior de Etag, basándose en la caché del navegador. • El servidor establece una fecha concreta para cada usuario en un objeto (Last-Modified) • El navegador comprueba si la versión de su caché es la última mediante la cabecera “If- Modified-Since” más la fecha que recibió. • El servidor lee la fecha de la petición e identifica al usuario.
  • 45. Javascript con código único. • El servidor manda a cada usuario un javascript con un ID único. • El javascript es almacenado en la caché. • El ID es obtenido por el propio javascript como valor de sesión. • Este método es ampliamente usado, no siempre con propósitos malvados.
  • 46. Un Javascript distinto para cada usuario.
  • 47.
  • 48. WebHistory • Mediante javascript se codifica en base64 la cookie. • Se realizan peticiones en background para que queden guardadas las URL en el historial del navegador. • Por ejemplo, para almacenar “bcde-”, se harían las peticiones de: ▫ google.com/evercookie/cache/b ▫ google.com/evercookie/cache/bc ▫ google.com/evercookie/cache/bcd ▫ google.com/evercookie/cache/bcde ▫ google.com/evercookie/cache/bcde- • Para recuperar la sesión, se consulta el historial de navegación mediante fuerza bruta (en local) utilizando CSS y javascript. • Es una prueba de concepto más que una realidad.
  • 49. PNG, Canvas y caché • Cuando el servidor genera la cookie, establece una segunda cookie de control. • El cliente solicita un PHP. Si el servidor observa que esa petición contiene la cookie de control, crea una imagen (PNG) que contiene los datos de la cookie a guardar. • Se indica al cliente que guarde la imagen en la caché durante años. • Para recuperar la cookie el cliente solicita la imagen. • El servidor devuelve un “304 Not Modified” y deja que el navegador use la imagen de la caché. • Mediante Canvas, recupera los bytes guardados en la imagen.
  • 50. PNG/Canvas – Crear imagen (cookie) GET /index.html Set-Cookie: ID=EE01AF Set-Cookie: Control=778811 GET /pixel.png Cookie: ID=EE01AF Cookie: Control=778811 ¿Tiene cookie? Si EE01AF Expires: Mon, 29 Apr 203’ 21:44:55 GMT Queda almacenada en caché la imagen
  • 51. PNG/Canvas – Recuperar cookie (de la imagen) GET /index.html GET /pixel.png ¿Tiene cookie? No 304 Not ModifiedEn cache Javascript lee el PNG con “canvas” y establece la cookie
  • 52. Otros métodos • Existen más métodos para identificar de forma inequívoca a un usuario mientras navega: ▫ Java JNLP ▫ Google Gears ▫ HTTP Autenticación básica.
  • 53. evercookie • Herramienta que implementa hasta 14 métodos distintos para persistir una cookie. • Creada por Samy Kamkar en 2010 • Entre ellos algunos muy agresivos: ▫ Storing cookies in Web History ▫ Storing cookies in HTTP ETags ▫ Storing cookies in Web cache ▫ Java JNLP PersistenceService ▫ window.name caching ▫ PNG ▫ Java CVE-2013-0422 exploit • https://github.com/samyk/evercookie
  • 54. Evercookies en la NSA • Presentación filtrada por Snowden • La NSA se plantea el uso de evercookies. http://www.theguardian.com/world/interactive/2013/oct/04/tor-stinks-nsa- presentation-document
  • 55. El uso de Evercookie
  • 56.
  • 57. Recomendaciones. • Pensemos que no hay manera de librarse. • Única opción: navegar en modo privado “InPrivate” o “Incógnito”. Esto deshabilita la caché. • Vaciar la caché del navegador al terminar de usarlo. • Cerrar el navegador al terminar de navegar. • Utilizar extensiones como “AdBlock” , “Private Browsing”, “Disconnect” y “SecretAgent”
  • 58. Referencias. • http://robertheaton.com/2014/01/20/cookieless-user-tracking-for- douchebags/ • http://www.futureofprivacy.org/wp- content/uploads/2011/07/Flash%20Cookies%20and%20Privacy%20II%20 Now%20with%20HTML5%20and%20ETag%20Respawning.pdf • http://lucb1e.com/rp/cookielesscookies/ • http://samy.pl/evercookie/ • http://en.wikipedia.org/wiki/Local_shared_object • http://en.wikipedia.org/wiki/Zombie_cookie • http://www.w3schools.com/html/html5_webstorage.asp • http://www.agpd.es/portalwebAGPD/canaldocumentacion/publicaciones/ common/Guias/Guia_Cookies.pdf • http://msdn.microsoft.com/es-es/library/bdts8hk0(v=vs.95).aspx • http://www.arctic.org/~dean/tracking-without-cookies.html • http://ashkansoltani.org/2011/08/11/respawn-redux-flash-cookies/ • https://panopticlick.eff.org/browser-uniqueness.pdf • http://msdn.microsoft.com/en-us/library/ms531424.aspx • http://www.cosic.esat.kuleuven.be/publications/article-2334.pdf