Saltar al contenido principal
es/blog/obscura/research/uncontrollable/index/

obscura/research/uncontrollable/index

17 min de lectura

Un Análisis Técnico de Señales de Hardware, Comportamiento y Navegador Inherentes que No Pueden Falsificarse en la Capa de Red

Investigación Obscura — Julio 2026


Resumen

Las herramientas de privacidad a nivel de red como Obscura pueden falsificar eficazmente headers HTTP, fingerprints TLS, consultas DNS y propiedades del navegador accesibles desde JavaScript. Sin embargo, una clase significativa de vectores de fingerprinting opera por debajo, por encima o fuera del alcance del proxy. Estos vectores derivan de características físicas del hardware, detalles de implementación del navegador, patrones de comportamiento del usuario y la asimetría inherente de la carrera armamentista de detección.

Este documento cataloga estos vectores incontrolables, analiza sus fortalezas y debilidades desde la perspectiva de un atacante, y propone estrategias de mitigación — tanto dentro del alcance de Obscura como mediante herramientas complementarias.


1. Introducción

1.1 La Brecha del Proxy

Obscura opera en las Capas OSI 3-7 (red a aplicación). Las señales que se originan en:

  • Capa 0-2 (hardware físico, GPU, chip de audio, CPU)
  • Capa 7+ (motor de renderizado del navegador, comportamiento del usuario)
  • Inconsistencias entre capas (desajustes entre señales falsificadas y no falsificadas)

...están fuera del control directo del proxy.

1.2 Clasificación

Categoría Vectores Causa Raíz Apalancamiento del Proxy
GPU/Hardware Renderizado Canvas, WebGL, WebGPU Pipeline de renderizado físico Ninguno
Audio Hardware AudioContext, latencia DSP de audio, controladores Ninguno
CPU/Plataforma Precisión matemática, características Wasm, SIMD Microarquitectura Ninguno
Navegador Inherente Soporte de características, CSS media, bugs, rarezas Implementación del motor Ninguno (solo bloqueo DNS)
Comportamiento Ratón, teclado, desplazamiento, temporización Usuario Ninguno
Residual de Red TCP/IP, clock skew, RTT Pila SO/contenedor Parcial
Entre Capas Inconsistencia de perfil, heurísticas de detección Lógica Indirecto

1.3 El Problema de la Asimetría

La asimetría fundamental: el servicio de fingerprinting necesita solo un vector exitoso para identificar o correlacionar a un usuario. El defensor debe bloquear todos los vectores.

Este documento no pretende resolver esta asimetría. Documenta el riesgo residual.


2. Fingerprinting de GPU y Pipeline de Renderizado

Documento completo: gpu-rendering.md

2.1 Por Qué Funciona

El pipeline de renderizado GPU es físicamente determinista — la misma entrada siempre produce la misma salida en el mismo hardware. Las diferencias surgen de:

  • Microarquitectura GPU (cantidad de ALUs, unidades de rasterización, TMUs, ROPs)
  • Versión del controlador y optimizaciones del compilador
  • Diferencias de precisión de punto flotante en shaders
  • Algoritmos de anti-aliasing
  • Orden de renderizado subpíxel (RGB vs BGR)
  • Matrices de conversión de espacio de color

2.2 Vectores

Vector Entropía Detectable si se Bloquea
Hash de Canvas toDataURL() ~5-7 bits
WEBGL_debug_renderer_info.UNMASKED_RENDERER ~20 bits (modelo exacto de GPU)
Hash de renderizado de escena WebGL ~10-15 bits
adapterInfo de WebGPU (vendor, arch, device, driver) ~25+ bits
Límites de WebGPU (50+ capacidades numéricas) ~30+ bits
Lista de extensiones WebGL ~8-12 bits

2.3 Ventajas del Atacante

  • Sin dependencia de red: El renderizado es local, no se necesita petición
  • Bloqueado al hardware: No puede cambiarse sin hardware diferente
  • Multi-navegador: La misma GPU produce fingerprints similares en Chrome/Firefox/Safari
  • Pasivo: El usuario no puede saber que está siendo fingerprintado

2.4 Debilidades (desde la perspectiva del atacante)

  • Bloquear es fácil para el usuario: Las flags de Firefox privacy.resistFingerprinting y CanvasBlocker funcionan
  • Tor Browser lo derrota: El renderizado por software (SwiftShader) normaliza toda la salida
  • Las actualizaciones de controladores cambian el fingerprint: Inestabilidad periódica
  • La inyección de ruido funciona: La inyección de píxeles aleatorios de CanvasBlocker rompe la repetibilidad
  • La detección estadística de manipulación es imperfecta: Los atacantes solo pueden adivinar si se inyectó ruido

2.5 Mitigaciones Propuestas

Mitigación Efectividad Impacto Implementación
Bloquear WebGL/WebGPU por completo Alta Rompe contenido 3D Inyección JS
Inyección de ruido en Canvas Media-Alta Detectable Inyección JS (algoritmo CanvasBlocker)
Ruido aleatorio consistente por sesión Media Correlación de sesión posible Inyección JS
Bloquear WEBGL_debug_renderer_info Media Bloquea fuga de modelo GPU Inyección JS
Renderizado GPU por software (SwiftShader) Muy Alta Gran impacto en rendimiento Solo lado cliente (Tor Browser)
Redondear dimensiones de canvas a cuadrícula Baja Reduce entropía Inyección JS

Lo mejor que Obscura puede hacer: Bloquear + inyección de ruido mediante JS. No puede igualar el renderizado por software de Tor Browser.


3. Fingerprinting de Hardware de Audio

Documento completo: audio-hardware.md

3.1 Por Qué Funciona

El procesamiento de audio involucra:

  • Implementación del controlador de audio (ALSA, PulseAudio, PipeWire, CoreAudio, WASAPI)
  • Características del hardware DAC/ADC
  • Algoritmos de conversión de frecuencia de muestreo
  • Comportamiento de compresión de dinámicas
  • Manejo de búferes de audio

Estos producen diferencias consistentes y medibles en la salida del oscilador y el comportamiento del compresor.

3.2 Vectores

Vector Entropía Notas
getChannelData de AudioContext sobre salida de DynamicsCompressor ~8-12 bits Más común
Latencia base de AudioContext ~4-6 bits Dependiente del hardware
Soporte de frecuencia de muestreo ~2-3 bits Varía según hardware
Número máximo de canales ~1-2 bits Stereo vs envolvente

3.3 Ventajas del Atacante

  • Consistente entre sesiones: Mismo hardware → mismo fingerprint de audio
  • Difícil de detectar manipulación: El sitio puede comparar múltiples lecturas
  • Funciona en segundo plano: No se necesita interacción del usuario

3.4 Debilidades

  • El comportamiento de DynamicsCompressor cambia entre versiones del navegador
  • Puede bloquearse por completo (Firefox resistFingerprinting bloquea AudioContext)
  • Aplanar la salida es detectable pero no puede distinguirse de hardware real con comportamiento idéntico

3.5 Mitigaciones Propuestas

Mitigación Efectividad Impacto
Bloquear AudioContext por completo Alta Rompe aplicaciones dependientes de audio
Aplanar salida del compresor (devolver todo -100dB) Media Patrón detectable
Inyectar ruido periódico en el búfer de salida Media-Alta Complejo, detectable
Anular frecuencia de muestreo a valor fijo Baja Solo una señal

Lo mejor que Obscura puede hacer: Bloquear AudioContext mediante inyección JS.


4. Fingerprinting de CPU y Plataforma

Documento completo: cpu-platform.md

4.1 Por Qué Funciona

La CPU es el componente más fundamental del sistema. Su comportamiento es determinista y medible desde JavaScript:

  • Precisión aritmética de punto flotante (el cumplimiento de IEEE 754 varía ligeramente)
  • Resolución de performance.now() (depende del temporizador hardware, SO)
  • Detección de características basada en Wasm (SIMD, AES-NI, AVX, BMI1/BMI2, POPCNT)
  • Canales laterales de temporización de caché (aunque mitigados en navegadores)
  • Velocidad de ejecución de WebAssembly (benchmark de rendimiento relativo)

4.2 Vectores

Vector Entropía Notas
Fingerprint matemático (precisión FPU) ~4-6 bits Sutil, sorprendentemente identificador
Detección de características Wasm ~8-12 bits Capacidades de CPU
Resolución de performance.now() ~2-3 bits Dependiente de SO/CPU
navigator.hardwareConcurrency ~3-4 bits Número de núcleos (falsificable mediante JS)

4.3 Ventajas del Atacante

  • Bloqueado al hardware: Las características de CPU no cambian
  • Wasm es rápido: Detección binaria de características en <1ms
  • No puede falsificarse a nivel de proxy: Wasm se ejecuta localmente

4.4 Debilidades

  • Precisión de performance.now() reducida en navegadores (1ms → 100μs → 5μs → vaivén)
  • La detección de características Wasm depende de que el navegador lo exponga
  • hardwareConcurrency es falsificable mediante JS — ya listado como controlable
  • El fingerprint matemático tiene muy baja entropía — solo útil en combinación

4.5 Mitigaciones Propuestas

Mitigación Efectividad Impacto
Reducir precisión de performance.now() mediante JS Baja Los atacantes usan temporización Wasm
Bloquear Wasm por completo Alta Rompe muchos sitios
Anular hardwareConcurrency Alta Trivial mediante inyección JS
Aceptar fingerprint matemático FPU Ninguna Entropía demasiado baja por sí sola

Lo mejor que Obscura puede hacer: Aceptar — o bloquear Wasm (drástico).


5. Características Inherentes del Navegador y Rarezas de Implementación

Documento completo: browser-features-quirks.md

5.1 Por Qué Funciona

Cada motor de navegador (Blink, Gecko, WebKit) tiene un conjunto único de:

  • APIs web soportadas (100+ características binarias)
  • Soporte de propiedades CSS
  • Bugs y rarezas de implementación
  • Configuraciones por defecto (tamaño de fuente, ancho de scrollbar, estilo de formularios)
  • Comportamiento de renderizado Unicode
  • Versión de soporte de emojis

5.2 Vectores

Vector Entropía Notas
Vector de soporte de características (~100 características) ~10-15 bits Altamente correlacionado
Rarezas de renderizado CSS ~5-8 bits Específico del motor
Renderizado Unicode/emoji ~3-5 bits Dependiente de SO+navegador
Ancho de scrollbar ~2-3 bits Dependiente del SO
Métricas de fuente por defecto ~4-6 bits Dependiente de SO+navegador

5.3 Ventajas del Atacante

  • No puede cambiarse: Son inherentes al navegador/SO
  • Sin permiso necesario: No se requiere consentimiento del usuario
  • Difícil de bloquear: Bloquear características cambia el vector de características en sí mismo

5.4 Debilidades

  • Principalmente identifica familia de navegador + versión, no usuarios individuales
  • Baja entropía dentro de la misma versión del navegador (todos los usuarios de Chrome 120 se ven similares)
  • Los scripts de detección de características pueden bloquearse por DNS antes de que se carguen

5.5 Mitigaciones Propuestas

Mitigación Efectividad Impacto
Bloqueo DNS de dominios de scripts de fingerprinting Alta Detiene la enumeración de características por completo
Aceptar — baja entropía individual Pasivo Puede aún correlacionarse con otras señales
Parchear el navegador (no a nivel de proxy) Muy Alta Requiere compilación de navegador personalizada

Lo mejor que Obscura puede hacer: Bloqueo DNS de dominios de fingerprinting conocidos.


6. Biometría del Comportamiento

Documento completo: behavioral-biometrics.md

6.1 Por Qué Funciona

Los patrones de comportamiento del usuario son altamente individuales:

  • Trayectorias de movimiento del ratón (velocidad, aceleración, vibración)
  • Dinámica de teclado (tiempo de pulsación, intervalos entre teclas, patrones de error)
  • Patrones de desplazamiento (velocidad, aceleración, comportamiento de pausa)
  • Gestos táctiles (en móvil: ángulo de deslizamiento, presión, velocidad)
  • Patrones de lectura (ritmo de desplazamiento-y-pausa)
  • Tiempo y preferencias de ubicación de clic/toque

6.2 Vectores

Vector Entropía Notas
Dinámica de teclado ~15-25 bits Altamente individual
Movimiento del ratón ~10-20 bits Menos estable en el tiempo
Comportamiento de desplazamiento ~8-12 bits Dependiente del contenido
Gestos táctiles ~12-18 bits Específico de móvil

6.3 Ventajas del Atacante

  • Autenticación continua: No es una instantánea, sino continua
  • Difícil de falsear: Imitar el comportamiento de otro usuario es extremadamente difícil
  • Sin restricción de API JS: Todo legible desde event listeners JS

6.4 Debilidades

  • Requiere interacción significativa del usuario: No puede tomar fingerprint pasivamente
  • Alta varianza: El comportamiento cambia con el estado de ánimo, fatiga, contexto
  • Largo tiempo de recolección: Necesita minutos de interacción
  • Requiere aprendizaje automático: El hash simple no funciona
  • Fácilmente interrumpido: Cualquier script que interfiera con la temporización lo rompe

6.5 Mitigaciones Propuestas

Mitigación Efectividad Impacto
Bloquear event listeners de ratón/táctil mediante anulación JS Media Rompe sitios interactivos
Inyectar ruido de temporización sintético Baja Puede filtrarse
Usar Tor Browser para sesiones de alta sensibilidad Muy Alta La solución más práctica
Aceptar — el comportamiento es de contexto limitado Pasivo Solo funciona en sesiones iniciadas

Lo mejor que Obscura puede hacer: Muy limitado. Tor Browser es la solución práctica.


7. Fingerprints Residuales a Nivel de Red

Documento completo: residual-network.md

7.1 Por Qué Funciona

Incluso con falsificación TLS y HTTP, señales de red residuales permanecen:

  • Parámetros de pila TCP/IP (heredados del SO del contenedor)
  • Tiempo de ida y vuelta de red (RTT) y su varianza
  • Descubrimiento de MTU de ruta
  • TTL de paquetes (revela número aproximado de saltos)
  • Desviación de reloj entre cliente y servidor
  • Parámetros de transporte QUIC HTTP/3 (si no está bloqueado)

7.2 Vectores

Vector Entropía Notas
Tamaño de ventana TCP ~2-4 bits Específico del SO del contenedor
TTL inicial ~1-2 bits 64 vs 128
RTT + varianza ~5-8 bits Dependiente de la ruta de red
Clock skew ~4-8 bits Deriva del reloj hardware
SETTINGS HTTP/2 (si no se falsifica) ~6-10 bits Específico de la librería del proxy

7.3 Ventajas del Atacante

  • Siempre presente: Las señales de red son inevitables
  • Pueden combinarse: La referencia cruzada de múltiples señales débiles aumenta la entropía
  • Estable: La ruta de red cambia con poca frecuencia

7.4 Debilidades

  • Baja entropía individual: TCP/IP solo rara vez identifica
  • Entorno de contenedor compartido: Múltiples usuarios detrás del mismo contenedor se ven similares
  • La falsificación TLS elimina la señal más identificadora

7.5 Mitigaciones Propuestas

Mitigación Efectividad Impacto
Falsificación de fingerprint TLS (JA3/JA4 mediante utls) Muy Alta Crítico para Obscura
Reflejo de SETTINGS HTTP/2 Alta Implementación compleja
Normalizar parámetros TCP Ninguna El contenedor hereda del host
Enrutar mediante VPN/Tor upstream Alta Cambia las características de red

Lo mejor que Obscura puede hacer: Falsificación TLS + HTTP/2. TCP/IP se acepta.


8. Detección de Proxy e Inconsistencias de Falsificación

Documento completo: proxy-detection.md

8.1 Por Qué Funciona

El acto de falsificar crea patrones detectables:

  • Inconsistencia de perfil: User-Agent Chrome + pila TLS Go + plataforma Win32 + fuentes no Windows
  • Señales faltantes: APIs bloqueadas (WebGL devuelve null) crean un fingerprint único de "bloqueado"
  • Anomalías de temporización: MITM añade latencia medible
  • Fingerprints de certificados: Los certificados CA autofirmados son detectables
  • Normalización de headers: Headers demasiado limpios/consistentes (los navegadores reales tienen variación)
  • Detección de anulación JavaScript: Object.getOwnPropertyDescriptor() puede detectar anulaciones de Object.defineProperty

8.2 Técnicas de Detección

Técnica Qué Detecta Fiabilidad
Desajuste de fingerprint TLS Software proxy vs navegador declarado Muy Alta
Bloqueo de características Uso de herramientas de privacidad Alta
Detección de anulación JS Scripts inyectados Media
Inspección de certificados Proxy MITM Alta
Análisis de temporización Latencia del proxy Media
Correlación entre señales Inconsistencia de perfil Muy Alta

8.3 Ventajas del Atacante

  • La falsificación aumenta la superficie detectable: Cuanto más cambias, más hay para detectar
  • Análisis estadístico: Comparar contra grandes conjuntos de datos revela anomalías
  • Aprendizaje automático: Puede encontrar patrones que los humanos pasan por alto

8.4 Debilidades

  • La detección es probabilística, no determinista
  • Falsos positivos: Las actualizaciones legítimas de navegador parecen falsificación
  • Millones de personas usan herramientas de privacidad: Ser detectado como "usuario de privacidad" no es único
  • Gato y ratón: La detección de anulación puede contrarrestarse con anulaciones más profundas

8.5 Mitigaciones Propuestas

Mitigación Efectividad Impacto
Consistencia perfecta de perfil Muy Alta Requiere actualizaciones continuas de perfil
Filtrar algunas señales reales Contra intuitivo Hace que el perfil parezca más natural
Usar certificado CA real Media Evita la detección de CA autofirmado
Redondear temporización en lugar de eliminar Media Menos sospechoso que latencia cero
No bloquear — falsificar en su lugar Alta Más difícil de detectar que bloquear

Lo mejor que Obscura puede hacer: Pruebas rigurosas de consistencia de perfil y actualizaciones continuas.


9. El Problema de la Agregación

9.1 Entropía Individual vs Combinada

Una visión crucial: los vectores incontrolables individuales tienen baja entropía por sí solos, pero combinados se vuelven identificadores.

Htotal=i=1nHiHcorrelationH_{total} = \sum_{i=1}^{n} H_i - H_{correlation}

Donde HiH_i es la entropía individual y HcorrelationH_{correlation} representa las dependencias entre vectores.

Para vectores incontrolables solos (GPU + Audio + CPU + Características + Red + Comportamiento):

Hincontrolable5+8+4+12+6+1550 bitsH_{incontrolable} \approx 5 + 8 + 4 + 12 + 6 + 15 \approx 50 \text{ bits}

Esto es suficiente para identificar de forma única a un usuario entre ~101510^{15}.

9.2 Implicaciones

  • Incluso la falsificación perfecta por proxy de vectores controlables es insuficiente si los incontrolables permanecen
  • El bloqueo DNS es crítico: Evita que la librería de fingerprinting vea los vectores incontrolables
  • Defensa en profundidad: Cada vector bloqueado reduce la entropía agregada

10. Direcciones de Investigación Propuestas

10.1 Corto plazo (Obscura v1)

  1. Consistencia perfecta de perfil: Herramientas de validación automatizadas
  2. Mantenimiento de listas de bloqueo DNS: Fuente de dominios de fingerprinting
  3. Inyección de ruido en Canvas: Algoritmo de CanvasBlocker
  4. Bloqueo de información de depuración WebGL/WebGPU: Inyección JS
  5. Bloqueo de AudioContext: Inyección JS

10.2 Medio plazo

  1. Aprendizaje automático para detección de anomalías: Detectar cuándo las modificaciones de Obscura crean patrones detectables
  2. Selección adaptativa de perfiles: Elegir el perfil que mejor coincida con el hardware real del usuario (no declarar Safari en Windows)
  3. Degradación elegante: Retroceder a falsificación menos agresiva si el riesgo de detección es alto

10.3 Largo plazo / Fuera de Alcance

  1. Modificación del navegador: Compilación de navegador personalizada que normalice fingerprints (enfoque Tor Browser)
  2. Normalización de GPU a nivel de hardware: Intercepción de renderizado a nivel de controlador
  3. Ofuscación del comportamiento: Patrones de ratón/teclado generados por IA
  4. Fingerprinting resistente a cuánticos: Preparación para el futuro contra nuevas técnicas

11. Conclusión

Los vectores incontrolables documentados aquí representan el límite fundamental del anti-fingerprinting a nivel de red. Ningún proxy puede eliminarlos por completo porque derivan de:

  • Física: Renderizado GPU, procesamiento de audio, deriva de reloj
  • Biología: Patrones de comportamiento del usuario
  • Ingeniería: Decisiones de implementación del navegador

El enfoque de Obscura es pragmático:

  1. Controlar lo que se puede controlar (headers, TLS, DNS, APIs JS) — ~55% de la superficie
  2. Bloquear lo que no se puede falsificar (canvas, audio, WebGL) — previene la observación
  3. Aceptar el riesgo residual — documentar y monitorear

La alternativa — protección perfecta — requiere Tor Browser, que lo logra normalizando cada señal a costa de funcionalidad, rendimiento y conveniencia. Ambos enfoques tienen su lugar.


Referencias

  1. Acar, G. et al. (2014). "The Web Never Forgets: Persistent Tracking Mechanisms in the Wild." CCS 2014.
  2. Mowery, K. & Shacham, H. (2012). "Pixel Perfect: Fingerprinting Canvas in HTML5." WOOT 2012.
  3. Eckersley, P. (2010). "How Unique Is Your Web Browser?" PETS 2010.
  4. Englehardt, S. & Narayanan, A. (2016). "Online Tracking: A 1-million-site Measurement and Analysis." CCS 2016.
  5. Tor Browser Design Document (2024). "The Design and Implementation of the Tor Browser."
  6. FingerprintJS (2026). "Browser Fingerprinting Techniques." fingerprintjs.com.
  7. FoxIO (2024). "JA4: TLS Client Fingerprinting." GitHub.
  8. Laperdrix, P. et al. (2020). "Browser Fingerprinting: A Survey." ACM TOIT.