Borrás las cookies, abrís una pestaña de incógnito y hasta activás una VPN, pero el sitio te sigue mostrando el mismo contenido personalizado que ayer. Eso no es magia: es fingerprinting del navegador, una técnica que identifica tu dispositivo por cómo responde tu hardware, no por un archivo que guardaste en el disco.
A diferencia de una cookie, no hay nada que borrar. El identificador nace de tu GPU, tus fuentes instaladas y la forma en que tu navegador dibuja un canvas invisible, y eso no cambia aunque reinicies el router o te conectes desde otro país.
TL;DR
- El fingerprinting del navegador combina GPU, fuentes y audio para identificarte sin cookies.- Borrar cookies o conectar una VPN no cambia tu hardware, así que el identificador se mantiene estable entre sesiones.- Canvas, WebGL y AudioContext exponen tu GPU y drivers con una sola línea de JavaScript.- Brave aplica farbling (ruido) mientras Tor y Mullvad uniforman a todos los usuarios por igual.- Herramientas como coveryourtracks.eff.org y amiunique.org miden cuán único es tu navegador frente a millones de otros.
¿Qué es el fingerprinting del navegador?
El fingerprinting del navegador es una técnica de identificación que combina decenas de señales de hardware y software (GPU, fuentes instaladas, resolución de pantalla, zona horaria, comportamiento de audio) para generar un identificador único por dispositivo, sin depender de cookies ni de ningún dato que el usuario pueda borrar manualmente.
El resultado es parecido a una huella digital del navegador real: cada persona tiene dedos distintos, pero el patrón de cada dedo se mantiene estable toda la vida. Tu laptop no cambia de GPU entre sesiones, así que el patrón que genera tampoco cambia.
La diferencia clave con una cookie es quién guarda el dato. Una cookie vive en tu disco y la podés borrar. El fingerprinting de dispositivo no se guarda en ningún lado de tu lado: se recalcula cada vez que cargás la página, y da el mismo resultado porque tu hardware sigue siendo el mismo hardware.
Por qué importa: sobrevive a borrar cookies y usar VPN
Una VPN cambia tu dirección IP, no tu placa de video. Por eso el fingerprinting del navegador atraviesa exactamente las dos defensas que la mayoría de la gente usa para sentirse anónima: borrar cookies y cambiar de IP. Ninguna de las dos toca las señales que realmente identifican al dispositivo.
Esto importa porque el negocio detrás no es solo mostrarte un anuncio relevante. Cualquier sitio que corra el script puede vender esa identidad persistente a terceros: nombre, actividad, historial de compras, lo que sea que su política de privacidad permita compartir. Con el tiempo, ese perfil puede saber más de vos que tus amigos.
Hay un historial concreto detrás de por qué esto escaló. Cuando las cookies de terceros se volvieron mala prensa (Safari y Firefox ya las bloqueaban desde 2019), la respuesta de la industria publicitaria no fue abandonar el rastreo, sino buscar una señal que las cookies nunca garantizaron del todo: una que sobreviva al modo incógnito.
AmIUnique mide la entropía individual de cada señal de tu navegador, no solo el resultado final.
Cómo funciona: las señales que te delatan
Señales de red: frágiles pero inmediatas
Cuando tu navegador pide una página, el request ya entrega datos sin que ninguna línea de JavaScript se ejecute. La dirección IP revela tu proveedor y, casi siempre, tu ciudad. Las cabeceras User-Agent y Accept-Language delatan el navegador, el sistema operativo y el idioma configurado.
El problema para un rastreador es que estas señales son frágiles. La IP rota si usás datos móviles, cambia si usás una VPN y se comparte si estás en el wifi de una oficina. Son útiles como primer filtro, pero solas no alcanzan para reconocerte de forma consistente.
Señales de ejecución de código: estables y sin permisos
Las señales realmente estables aparecen cuando el sitio puede ejecutar código en tu navegador, porque ahí puede medir tu hardware sin pedirte ningún permiso. Ni vos ni el navegador ven una alerta, porque técnicamente no se está accediendo a ningún archivo tuyo: solo se le pide a la GPU que dibuje algo y se mide cómo lo dibuja.
-
Canvas: el sitio dibuja texto y figuras en un
<canvas>invisible. El resultado en píxeles varía según la GPU, el driver y el subpíxel rendering del sistema operativo.- WebGL: expone directamente el fabricante y el modelo de tu GPU, y cómo renderiza sombras y texturas 3D.- AudioContext: procesa una onda de audio sintética y mide cómo el hardware de sonido la distorsiona, de forma inaudible para el usuario.- Fuentes instaladas: mide qué tipografías tiene el sistema, lo que delata programas instalados (diseño, ingeniería, idiomas).- Resolución, pixel ratio y refresh rate: combinados, acotan muchísimo el modelo de pantalla.
Así se combinan todas estas señales en un identificador único antes de llegar a la base de datos del rastreador:
flowchart TD
A["Peticion HTTP"] --> B["User-Agent, idioma, IP"]
C["JavaScript en el navegador"] --> D["Canvas, WebGL, audio, fuentes"]
B --> E["Combinador de senales"]
D --> E
E --> F["Hash unico del dispositivo"]
F --> G[("Base de datos del rastreador")]
Zona horaria, fuentes y la lista que no sabías que exponías
Fuera del canvas y el audio, hay señales más simples que igual aportan lo suyo. La zona horaria del sistema, detectable con una sola línea de JavaScript (Intl.DateTimeFormat().resolvedOptions().timeZone), acota tu ubicación aunque la IP esté detrás de una VPN. La lista exacta de fuentes instaladas, no solo las del sistema operativo sino también las que vienen con Photoshop, LaTeX o un IDE, varía tanto entre usuarios que por sí sola puede aportar varios bits de entropía.
Ninguna de estas señales pide permiso al usuario porque técnicamente no son datos privados en el sentido clásico: no son tu nombre ni tu ubicación exacta de GPS. Son metadatos del entorno de ejecución, y ahí está el punto ciego que durante años dejó pasar a los navegadores sin bloquearlos.
Ejemplos prácticos: de una huella simple a un hash combinado
Veamos el código real detrás de esto. Lo siguiente es un fingerprint de canvas mínimo, el mismo principio que usan librerías de detección de fraude y redes publicitarias:
function getCanvasFingerprint() {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillStyle = '#f60';
ctx.fillRect(0, 0, 100, 20);
ctx.fillStyle = '#069';
ctx.fillText('programacion.dev 2026', 2, 2);
return canvas.toDataURL();
}
console.log(getCanvasFingerprint().slice(0, 60));
La salida es una cadena base64 que arranca siempre con data:image/png;base64,iVBORw0KGgo.... El valor exacto depende de tu GPU y tu sistema operativo, pero dos cargas seguidas en el mismo navegador devuelven exactamente la misma cadena, carácter por carácter. Ese es justo el comportamiento que convierte un dibujo en un identificador.
El audio funciona con la misma lógica, pero en lugar de píxeles mide una onda sintética procesada por tu hardware de sonido:
async function getAudioFingerprint() {
const ctx = new OfflineAudioContext(1, 5000, 44100);
const oscillator = ctx.createOscillator();
oscillator.type = 'triangle';
oscillator.frequency.value = 10000;
const compressor = ctx.createDynamicsCompressor();
oscillator.connect(compressor);
compressor.connect(ctx.destination);
oscillator.start(0);
const buffer = await ctx.startRendering();
const samples = buffer.getChannelData(0);
return samples.slice(4500, 4600).reduce((a, b) => a + Math.abs(b), 0);
}
getAudioFingerprint().then(console.log);
// ejemplo de salida: 124.0434765780810 (varía según tu placa de audio y su driver)
Un rastreador no usa una sola señal: las concatena todas (canvas, audio, fuentes, WebGL, zona horaria) y les aplica un hash criptográfico para obtener un identificador corto y estable. Así se ve el paso final, usando la Web Crypto API que ya viene en cualquier navegador moderno:
async function combinarFingerprint(señales) {
const texto = señales.join('|');
const datos = new TextEncoder().encode(texto);
const hashBuffer = await crypto.subtle.digest('SHA-256', datos);
const hashArray = Array.from(new Uint8Array(hashBuffer));
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}
combinarFingerprint(['canvas:abc123', 'audio:124.04', 'webgl:ANGLE (Apple, Apple M2)'])
.then(console.log);
// 9f2b7c4e1a... (64 caracteres hexadecimales, estable mientras no cambies de hardware)
Para entender por qué el canvas es tan efectivo, conviene ver la secuencia completa de lo que pasa dentro del navegador cuando corre ese primer script:
sequenceDiagram
participant N as Navegador
participant J as Script de rastreo
participant GPU as GPU y drivers
J->>N: solicita renderizar un canvas oculto
N->>GPU: dibuja texto y figuras con la GPU local
GPU-->>N: devuelve pixeles con variaciones propias del hardware
N-->>J: entrega el buffer de imagen como base64
J->>J: calcula un hash SHA-256 del buffer
Note over J: el hash es estable entre sesiones y entre pestañas
Cómo detectar y reducir tu huella digital del navegador
Antes de cambiar nada, conviene medir. Cover Your Tracks, de la Electronic Frontier Foundation, corre el mismo tipo de pruebas que un rastreador real y te dice si tu combinación de señales es única entre los navegadores que analizó, o si te confundís con un grupo grande. AmIUnique hace lo mismo pero además desglosa cuánta entropía aporta cada señal individual: canvas, fuentes, plugins, zona horaria.
Con ese diagnóstico, las opciones reales son pocas pero concretas:
-
Firefox: abrí
about:config, buscáprivacy.resistFingerprintingy poné el valor entrue. Reiniciá el navegador. Para confirmar que funcionó, volvé a correr Cover Your Tracks: la zona horaria debería reportarse como UTC en lugar de la tuya real, y el resultado de canvas debería figurar como bloqueado en vez de único.- Brave: entrá abrave://settings/shieldsy subí el bloqueo de fingerprinting a modo agresivo. Brave no bloquea el canvas: le agrega ruido aleatorio distinto en cada carga, una técnica que el proyecto llama farbling. La verificación es la misma: dos lecturas de AmIUnique deberían dar valores de canvas diferentes entre sí.- Tor Browser o Mullvad Browser: no hay nada que configurar. Su estrategia es la opuesta al ruido: uniformar a todos los usuarios para que todos reporten exactamente el mismo canvas, el mismo WebGL y la misma lista de fuentes, sin importar el hardware real debajo.- Chrome y Edge: no tienen una protección de fingerprinting equivalente activada por defecto. Aíslan el almacenamiento entre sitios, pero no agregan ruido ni uniforman las señales de hardware.
Casos de uso reales
La publicidad es el caso más conocido, pero no el único. Las plataformas de e-commerce usan el fingerprinting de dispositivo para detectar fraude: si una cuenta nueva se conecta con el mismo canvas y el mismo WebGL que una cuenta ya bloqueada por chargebacks, el sistema la marca aunque use otra IP y otro mail.
Los bancos y las fintech lo usan para el lado contrario de la misma moneda: autenticación silenciosa. Si reconocen tu dispositivo habitual, te dejan pasar sin pedir un segundo factor; si el fingerprint cambia de golpe, disparan una verificación extra. Y en el extremo más preocupante, el mismo mecanismo permite rastreo dirigido: actores con acceso a esos datos pueden reidentificar a una persona concreta cruzando sesiones que, en apariencia, no tenían ninguna cookie en común.
En el sector salud y seguros, algunas plataformas usan el mismo mecanismo para detectar cuentas compartidas entre varios usuarios: si cinco perfiles distintos inician sesión siempre desde el mismo canvas y el mismo WebGL, lo más probable es que sea una sola persona con cinco cuentas, no cinco personas distintas. Es la contracara defensiva de la misma técnica que la publicidad usa para vigilar.
Un dispositivo promedio expone más de media docena de señales distintas sin ningún aviso del sistema.
Errores comunes y buenas prácticas
El error más común es creer que el modo incógnito protege de esto. El modo incógnito borra cookies e historial al cerrar la ventana, pero no toca tu GPU ni tus fuentes instaladas: el fingerprinting del navegador es idéntico adentro y afuera de una pestaña privada.
El segundo error, más contraintuitivo, es instalar muchas extensiones para protegerse. Cada extensión que agregás es, en sí misma, una señal más: la lista exacta de extensiones activas vuelve tu navegador más único, no menos. Tres o cuatro extensiones de privacidad bien elegidas hacen más que quince instaladas por si acaso.
Tercer error: cambiar solo el User-Agent con una extensión. Eso modifica una señal frágil de red y deja intactas las señales de hardware, que son las que realmente importan. Es la versión moderna de maquillarse la cara pero dejar la huella digital en el vaso.
⚠️ Ojo: Ninguna extensión de anti-fingerprinting aislada elimina el riesgo si el resto del navegador sigue siendo Chrome sin cambios. La protección real viene del navegador completo (Brave, Tor, Mullvad), no de un parche suelto.
Comparativa con alternativas
No existe un navegador que elimine el fingerprinting del todo: existen distintas estrategias, con distintos costos. Antes de elegir una, conviene ver las cuatro posturas una junto a la otra.
OpciónCuándo usarlaVentajaLimitaciónChrome / Edge (sin defensa)Navegación cotidiana sin necesidad de anonimatoCompatibilidad total con cualquier sitioFingerprint real y estable, cero protecciónFirefox con resistFingerprintingQuerés privacidad sin cambiar de navegadorUn solo flag, reversible en cualquier momentoPuede romper sitios que dependen de zona horaria o canvas realesBrave (farbling)Uso diario con protección activa de fábricaRuido automático, no hay que tocar nadaCada carga da un valor distinto, lo cual puede ser en sí misma una señal para rastreadores avanzadosTor Browser / Mullvad BrowserAnonimato fuerte, investigación, denunciaTodos los usuarios reportan el mismo fingerprintRendimiento más lento y algunos sitios bloquean la red Tor
La fila que más sorprende suele ser Brave: agregar ruido no es lo mismo que desaparecer. Un sitio todavía puede notar que estás usando Brave, porque el propio ruido es un patrón detectable, pero ya no puede reconocerte de una sesión a otra por ese canal. Es una protección contra el rastreo persistente, no contra la identificación del navegador en sí.
Profundizando: cuánta información hace falta para identificarte
La forma correcta de pensar esto es en bits de entropía, el mismo concepto que mide cuánta sorpresa aporta un dato. Si una señal te agrupa con una de cada dos personas, aporta 1 bit. Si te agrupa con una de cada 1.024, aporta 10 bits (logaritmo en base 2 de 1.024). Sumá suficientes señales de baja entropía y el total alcanza para identificarte entre millones: no hace falta una sola señal perfecta, basta con combinar varias imperfectas.
Esto explica por qué el canvas y el WebGL son tan valiosos para un rastreador: no identifican solos, pero aportan muchos bits cada uno porque dependen de una combinación específica de GPU, driver, sistema operativo y hasta la versión exacta de las librerías gráficas instaladas. Dos personas con la misma laptop del mismo año pueden tener fingerprints distintos si uno actualizó el driver de video y el otro no.
Este no es un problema nuevo. La EFF lanzó en 2010 un proyecto llamado Panopticlick, hoy evolucionado en Cover Your Tracks, específicamente para medir cuán identificable era el navegador promedio antes de que el término fingerprinting se volviera de uso cotidiano. La conclusión de esa investigación original fue que la combinación de señales, tomada en conjunto, identificaba a la gran mayoría de los navegadores analizados con una precisión que ninguna señal individual podía lograr por sí sola.
La defensa por ruido y la defensa por uniformidad atacan el problema desde ángulos opuestos, y vale la pena verlo como una decisión de diseño, no como dos variantes de lo mismo:
flowchart LR
A["Fingerprint real del dispositivo"] --> B{"Estrategia de defensa"}
B -->|"Ruido (farbling)"| C["Brave: cada carga da un valor distinto"]
B -->|"Uniformidad"| D["Tor y Mullvad: todos reportan el mismo valor"]
B -->|"Sin defensa"| E["Chrome y Edge: valor real y estable"]
El ruido rompe la estabilidad, porque el rastreador ya no puede reconocerte entre sesiones, pero el navegador sigue siendo distinguible de otro Brave por otros medios. La uniformidad va más lejos: si todos los usuarios de Tor Browser reportan el mismo canvas, el mismo WebGL y la misma lista de fuentes, no hay nada que diferenciar, sin importar que el hardware real debajo sea un servidor o un teléfono de gama baja.
📖 Resumen en Telegram: Ver resumen
Tu próximo paso: entrá ahora a coveryourtracks.eff.org, corré el test y anotá qué señal específica te marca como único para decidir qué configurar primero.
Preguntas frecuentes
¿El modo incógnito me protege del rastreo por hardware?
No. El modo incógnito borra cookies e historial locales, pero tu GPU, tus fuentes instaladas y tu hardware de audio siguen siendo los mismos adentro y afuera de esa pestaña, así que el fingerprinting del navegador no cambia.
¿Una VPN cambia mi huella digital del navegador?
Cambia tu IP y a veces tu zona horaria reportada, pero ninguna VPN modifica el canvas, el WebGL ni el audio que genera tu hardware real, que son las señales que más entropía aportan.
¿Qué navegador ofrece la mejor protección contra el fingerprinting de dispositivo?
Depende de qué necesites. Para anonimato fuerte, Tor Browser o Mullvad Browser, porque uniforman a todos los usuarios. Para uso diario con protección activa, Brave, porque aplica farbling por defecto sin configuración adicional.
¿Las extensiones de privacidad reducen o aumentan mi rastreo sin cookies?
Depende de cuántas instales. Dos o tres extensiones de privacidad bien elegidas ayudan, pero una lista larga de extensiones activas se vuelve, en sí misma, una señal más que te distingue del resto.
¿Cómo sé si un sitio está usando device fingerprinting conmigo?
No hay forma directa de confirmarlo desde afuera sin herramientas de desarrollador: podés abrir la pestaña Network de las herramientas de desarrollo y buscar llamadas a toDataURL(), getChannelData() o a la API de WebGL poco después de cargar la página, o usar extensiones como CanvasBlocker que avisan cuando un script intenta leer el canvas.
Referencias
- royfish.dev: el artículo original en inglés que inspiró este análisis, "Fingerprints are the new cookies".- Cover Your Tracks (EFF): herramienta gratuita de la Electronic Frontier Foundation para medir cuán único es tu navegador.- AmIUnique: desglosa la entropía que aporta cada señal individual de tu navegador.- MDN Web Docs: definición técnica de fingerprinting y APIs relacionadas.- Brave Browser Wiki: documentación oficial de las protecciones de fingerprinting y la técnica de farbling.- Wikipedia: historia y contexto general del device fingerprinting.
📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.
Top comments (1)
tr.ee/dev-to