Huella digital del navegador: qué leen realmente los sitios

Un recorrido campo por campo por los valores que recoge un sitio web, del canvas y WebGL al audio, las fuentes, la pantalla y la zona horaria, y por qué una identidad coherente supera a una aleatoria.
La huella digital del navegador (browser fingerprinting) consiste en identificar un navegador por los valores que informa y no por nada que almacene. No hace falta ninguna cookie. El navegador simplemente responde a las preguntas que cualquier página web tiene permitido hacer, y las respuestas en conjunto son lo bastante distintivas como para reconocerlo de nuevo.
Los valores que se recogen
La mayoría de los scripts de huella digital leen de las mismas pocas superficies.
Los evidentes
- El user agent lleva el nombre del navegador, la versión y la plataforma, y se envía en cada petición.
- La pantalla informa del ancho, el alto, la profundidad de color, la relación de píxeles y el área de trabajo disponible.
- El idioma y la zona horaria abarcan el idioma regional que informa el navegador y el desfase que calcula.
- Las pistas de hardware dan el número de procesadores informado y, en algunos navegadores, una cifra aproximada de memoria.
Los de renderizado
Son los valores a los que la gente se refiere cuando habla de huella digital, porque son indirectos. Una página pide al navegador que dibuje algo y luego lee exactamente lo que se dibujó.
- El trabajo con canvas dibuja texto y formas en un canvas fuera de pantalla y calcula su hash. El resultado varía según la pila gráfica, las fuentes y el suavizado de bordes.
- WebGL expone las cadenas de fabricante y de renderizador del adaptador gráfico, además de un hash de una escena renderizada.
- El audio pasa un oscilador por el grafo de procesamiento de audio y calcula el hash de la salida. El comportamiento del punto flotante difiere ligeramente entre pilas.
- La detección de fuentes mide texto en fuentes candidatas e infiere cuáles están instaladas según qué mediciones difieren.
Los de red
- La dirección desde la que llega la petición y lo que dice de ella una base de datos de geolocalización.
- WebRTC, que puede revelar direcciones que la conexión no expondría de otro modo.
- El orden y el contenido de los campos del handshake TLS y HTTP, que varían según el cliente.
Por qué aleatorizar todos los campos es un mal instinto
La defensa intuitiva es cambiarlo todo en cada visita. Sale mal por dos razones.
La primera es la contradicción. Los campos aleatorizados no saben unos de otros. Un user agent que dice Windows junto a una cadena de renderizador WebGL que solo se entrega en hardware de Apple es una señal más fuerte de lo que habría sido cualquiera de los dos valores por separado. Las máquinas reales son coherentes internamente; solo las sintéticas se contradicen a sí mismas.
La segunda es la inestabilidad. Una cuenta que informa de un dispositivo distinto en cada visita describe algo que ninguna persona real posee. La coherencia a lo largo del tiempo es el aspecto de un usuario corriente.
Qué cubre la identidad de un perfil
| Superficie | Cómo se trata |
|---|---|
| User agent y plataforma | Se generan juntos, de modo que la plataforma declarada concuerda con los valores que la rodean |
| Pantalla y relación de píxeles | Fijas por perfil, tomadas de tamaños que las pantallas reales informan de verdad |
| Zona horaria e idioma regional | Se fijan por perfil y se ajustan a la ruta de red que usa |
| Canvas, WebGL y audio | Reciben un tratamiento estable por perfil, idéntico en cada apertura |
| Fuentes | Un conjunto por perfil coherente con la plataforma que declara el perfil |
| WebRTC | Restringido para que no contradiga la ruta de red del perfil |
Comprobar tu propio trabajo
Abre un perfil y visita una página de pruebas de huella digital. Varias publican los valores que leen, de forma gratuita. Las dos cosas que vale la pena comprobar no son las que cabría esperar:
- ¿Concuerdan los valores entre sí? La plataforma, las fuentes, las cadenas gráficas y la zona horaria deben describir una única máquina plausible.
- ¿Son los mismos que la vez anterior? Cierra el perfil, ábrelo de nuevo y repite la prueba. Un perfil cuyos valores cambian entre aperturas no es estable, y la estabilidad es la propiedad que importa.
La puntuación de rareza de una página de pruebas es el número menos útil de todos. Te mide frente a los visitantes de esa página, que son abrumadoramente personas que prueban navegadores antidetect.


