Huella digital del dispositivo sin cookies: cómo funciona
Las cookies están muriendo. Así es como la huella digital del dispositivo ofrece una identificación persistente sin ningún almacenamiento del lado del cliente.
La cookie está muriendo. La Prevención Inteligente de Rastreo (ITP) de Safari limita la vida útil de las cookies a 7 días. La Protección de Rastreo Mejorada de Firefox bloquea por completo las cookies de terceros. El Privacy Sandbox de Chrome está eliminando gradualmente las cookies de terceros. Los requisitos de consentimiento del GDPR hacen que los usuarios rechacen cada vez más los banners de cookies.
Para la prevención del fraude, esto es un problema. Si no puede identificar dispositivos de forma persistente, no puede rastrear a reincidentes, detectar el multicuentas ni vincular sesiones sospechosas entre sí. La huella digital del dispositivo resuelve esto identificando dispositivos a través de sus características técnicas: sin cookies, sin localStorage, sin ningún tipo de almacenamiento del lado del cliente.
Las categorías de señales
Fingerprinting pasivo (sin necesidad de JavaScript)
Antes incluso de que su página se cargue, el navegador revela información a través de señales a nivel de red:
Fingerprinting de TLS (JA4). El mensaje Client Hello de TLS contiene suites de cifrado, extensiones, curvas elípticas y algoritmos de firma. Usamos el hashing JA4, un reemplazo moderno de JA3 con mejor granularidad.
Análisis de la pila TCP/IP. El tamaño de ventana TCP, los valores de TTL y la configuración de MSS varían entre sistemas operativos. Linux, Windows y macOS tienen cada uno configuraciones características de la pila TCP.
Análisis de encabezados HTTP. La ordenación de los encabezados, los valores de Accept-Language y las preferencias de conexión difieren entre navegadores.
Fingerprinting activo (JavaScript del lado del cliente)
Fingerprinting de canvas. Dibujamos una escena cuidadosamente diseñada: texto específico, formas geométricas y gradientes. Diferentes GPU la renderizan con sutiles diferencias a nivel de píxel debido al antialiasing, el renderizado de subpíxeles y las variaciones en la mezcla de colores. Aplicamos hash a los datos de los píxeles.
Fingerprinting de WebGL. WebGL expone las cadenas de fabricante/renderizador de la GPU, los tamaños máximos de textura, las extensiones soportadas y las capacidades de shader. Estos datos identifican con fuerza el modelo de GPU y la versión del driver.
Fingerprinting de AudioContext. Generamos una señal de prueba y analizamos cómo se procesa. Diferente hardware de audio produce una salida medible distinta debido a las diferencias de precisión en coma flotante.
Enumeración de fuentes. Las fuentes del sistema disponibles varían según el sistema operativo, el paquete de idioma y el software instalado. Comprobamos unas 300 fuentes de diagnóstico usando técnicas de medición con canvas.
Propiedades del navigator. Núcleos de CPU, memoria del dispositivo, plataforma, idioma, zona horaria, resolución de pantalla, profundidad de color y capacidades de puntero y táctiles.
Análisis de entropía
No todas las señales tienen el mismo peso. Medimos la entropía de cada señal:
| Categoría de señal | Entropía aproximada |
|---|---|
| Canvas + WebGL combinados | ~18 bits |
| Lista de fuentes | ~8 bits |
| AudioContext | ~5 bits |
| Propiedades del navigator | ~7 bits |
| Huella de TLS | ~6 bits |
| Pantalla + display | ~4 bits |
| Zona horaria + idioma | ~3 bits |
En conjunto, nuestras más de 130 señales proporcionan aproximadamente 50+ bits de entropía, suficientes para identificar de forma única más de mil billones de dispositivos distintos.
De las señales a un hash estable
La recopilación de señales sin procesar es solo la mitad del problema. Las actualizaciones del navegador cambian las cadenas del user agent. Las actualizaciones de drivers alteran los parámetros de WebGL. Las instalaciones de fuentes cambian la lista de fuentes.
Coincidencia difusa
En lugar de exigir coincidencias exactas, usamos un algoritmo de coincidencia difusa que pondera las señales según su estabilidad y entropía. Las señales estables (canvas, modelo de GPU) tienen más peso que las señales volátiles (user agent, resolución de pantalla).
La generación de candidatos usa hashing sensible a la localidad (LSH) sobre las señales más estables para identificar posibles coincidencias. La puntuación de similitud calcula una puntuación ponderada en todas las categorías de señales, calibrada de modo que los cambios normales del dispositivo no cambien el ID de visitante, mientras que los cambios reales de dispositivo sí lo hagan.
Esto logra una precisión del 99.5%: identifica correctamente a los visitantes recurrentes a través de actualizaciones del navegador, borrados de cookies, el modo incógnito y los cambios de navegador.
Arquitectura que preserva la privacidad
Procesamiento del lado del servidor. Todo el cálculo de la huella digital ocurre en nuestros servidores. El agente del lado del cliente recopila señales sin procesar, pero no calcula ni almacena el hash de la huella digital.
Sin almacenamiento de PII. Almacenamos hashes de huella digital, no señales sin procesar. El hash es una función unidireccional.
Residencia de datos. Los datos de clientes de la UE se procesan y almacenan en centros de datos de la UE. El artículo 6(1)(f) del GDPR cubre la prevención del fraude como interés legítimo.
Identificación entre navegadores
El desafío más difícil es identificar el mismo dispositivo a través de diferentes navegadores. Nos apoyamos en señales independientes del navegador: hardware de la GPU, características de la pantalla, zona horaria, configuración de idioma, fuentes instaladas (a nivel de sistema operativo) y características de la pila TCP/IP.
La precisión de la vinculación entre navegadores es de aproximadamente el 94%: inferior a la identificación dentro del mismo navegador, pero suficiente para detectar el multicuentas entre navegadores en el mismo dispositivo.
Integración
Añadir la huella digital del dispositivo requiere tres líneas de código. El agente se carga de forma asíncrona, recopila señales en menos de 50ms y las envía a nuestra API. La respuesta del servidor incluye el ID de visitante, la puntuación de confianza y las 24 Smart Signals.