Meta-Conclusión (2026-07-08)
Después de un análisis exhaustivo del fingerprinting de navegadores — examinando FingerprintJS (44 vectores), BrowserLeaks (15+ herramientas), EFF Cover Your Tracks, fingerprints de capa de red (TCP, TLS, HTTP/2, QUIC) y vectores a nivel de hardware — las siguientes conclusiones informan el diseño de Obscura.
Resumen del Inventario de Vectores
| Categoría | Vectores Totales | Controlable por Proxy | Parcial | Incontrolable |
|---|---|---|---|---|
| Red y Protocolo | 13 | 3 | 6 | 4 |
| HTTP y Headers | 12 | 11 | 1 | 0 |
| APIs JavaScript / DOM | 44 | 29 | 13 | 2 |
| Características del Navegador | ~100+ | 0 | ~10 | ~90+ |
| Sistema y Hardware | 15 | 6 | 4 | 5 |
| Comportamiento | 8 | 1 | 4 | 3 |
| Total Distintos | ~60+ únicos | ~50 | ~38 | ~100+ |
Cobertura realista: El proxy controla ~55% de la superficie de fingerprint. El ~45% restante son hardware, comportamiento o características inherentes del navegador.
Evaluación de Impacto por Capa
Capa 1: Red y Protocolo — ALTO IMPACTO, Controlable
| Vector | Controlable | Prioridad para Obscura | Método |
|---|---|---|---|
| Fingerprint TLS (JA3/JA4) | Sí | Crítica | utls (Go) / Rust TLS personalizado |
| Fingerprint HTTP/2 | Parcial | Alta | Control personalizado de tramas SETTINGS |
| Headers HTTP (12 vectores) | Sí | Alta | Reescritura de headers en el proxy |
| DNS | Sí | Alta | Resolver local + listas de bloqueo |
| Fuga de IP por WebRTC | Sí | Alta | Inyección JS para bloquear RTCPeerConnection |
| Pila TCP/IP | No | Baja | Pila del contenedor heredada |
| QUIC/HTTP/3 | Bloquear | Media | Bloquear UDP 443 |
| Ataques de temporización | Parcial | Baja | Redondear performance.now() |
Capa 2: APIs JavaScript — IMPACTO MEDIO, Parcialmente Controlable
29 vectores totalmente falsificables mediante inyección JS:
navigator.userAgent,platform,language,languagesnavigator.hardwareConcurrency,deviceMemoryscreen.width,height,colorDepth,pixelDepth,availTop/Leftnavigator.cookieEnabled,webdriverIntl.DateTimeFormatzona horarianavigator.vendor,vendorFlavorsnavigator.architecture,pdfViewerEnabled- Apple Pay, Private Click Measurement
- Media queries (prefers-reduced-motion, color-gamut, etc.)
localStorage,sessionStorage,indexedDB,openDatabase
13 vectores parcialmente falsificables:
- Canvas — la inyección de ruido es detectable
- WebGL — puede bloquear
debug_renderer_info, no el renderizado - Audio — puede aplanar la salida, la variación de hardware permanece
- Fuentes — puede redondear mediciones, no eliminar la enumeración
- Plugins — puede anular, pero limitado
- Bloqueadores DOM — detectables
2 vectores no falsificables:
- Fingerprint matemático FPU — comportamiento de punto flotante hardware
- Latencia base de audio — pila de audio hardware
Capa 3: Características del Navegador — BAJO IMPACTO, Incontrolable
~100+ pruebas de soporte de características (WebGL, WebGPU, WebUSB, Service Workers, etc.) son inherentes al navegador. No pueden cambiarse a nivel de proxy.
Mitigación: El bloqueo DNS de dominios de fingerprinting conocidos evita que muchos scripts de detección de características se carguen.
Capa 4: Hardware y Sistema — BAJO IMPACTO, Incontrolable
Modelo de GPU, características de CPU, hardware de audio, diseño de teclado, fuentes instaladas — estas son propiedades del sistema local que el proxy no puede modificar.
Capa 5: Comportamiento — FUERA DE ALCANCE
Movimientos del ratón, dinámica de teclado, patrones de desplazamiento, duración de sesión — la biometría del comportamiento está fuera del control de cualquier proxy.
Hallazgos Clave
1. La Falsificación del Fingerprint TLS es Innegociable
Si Obscura termina TLS (requerido para MITM), el servidor ve la pila TLS del proxy. Sin falsificación, el destino detecta inmediatamente que hay un proxy en uso. Esta es la característica más crítica.
2. La Consistencia Interna es Obligatoria
Cada señal debe coincidir con el mismo perfil:
Perfil: "Chrome 120 / Windows 11"
User-Agent: Chrome 120 en Win11
Sec-CH-UA-Platform: "Windows"
JA3: Chrome 120 Win11
HTTP/2 SETTINGS: valores de Chrome
timezone: coincide con locale Win11
screen: resolución típica de Win11
platform: "Win32"
La inconsistencia es en sí misma un fingerprint.
3. El Bloqueo DNS es la Mayor Rentabilidad
Bloquear fingerprintjs.com, *.metrics.* y dominios de rastreo evita que los scripts de fingerprinting se carguen por completo. Esta es la protección más simple y más efectiva.
4. Canvas/WebGL/WebGPU son los Problemas Difíciles
Estos se renderizan en el hardware local. El proxy puede:
- Bloquear las APIs de información de depuración (modelo de GPU oculto)
- Inyectar ruido en la salida del canvas (detectable por comparación)
- No controlar el renderizado de píxeles real
Tor Browser resuelve esto haciendo que todos los usuarios sean idénticos (rompe WebGL por completo). Obscura no puede igualar esto a nivel de red.
5. QUIC/HTTP/3 Debe Bloquearse
QUIC está cifrado de extremo a extremo. Si se permite, el tráfico evita el proxy por completo. Bloquear UDP 443.
6. WebRTC Debe Bloquearse
WebRTC evita el proxy mediante STUN. Bloquear mediante inyección JS anulando RTCPeerConnection.
Principios de Diseño
Consistencia sobre exhaustividad: Un conjunto más pequeño de señales perfectamente consistentes supera a una protección amplia pero inconsistente.
Bloquear sobre falsificar: Si un vector no puede falsificarse de forma fiable (canvas, audio), bloquéalo en lugar de filtrar datos parciales. Bloquear es detectable pero filtra menos información.
Defensa en profundidad: Bloqueo DNS (detiene la carga de scripts) + falsificación de headers (capa HTTP) + falsificación TLS (capa de transporte) + inyección JS (capa de API del navegador) — cada capa añade protección.
Cerrar en caso de fallo: Cuando haya incertidumbre, bloquear. Siempre preferir la prevención de pérdida de privacidad sobre la funcionalidad.
Actualizaciones periódicas de perfiles: Los navegadores lanzan nuevas versiones mensualmente, cambiando los fingerprints. Los perfiles deben actualizarse o Obscura se vuelve detectable.
Diversidad de perfiles: Diferentes perfiles para diferentes contextos (trabajo, personal, similar a incógnito) previene la correlación entre contextos.
Alcance para Obscura v1
[MVP]
Falsificación de headers HTTP (todos los headers, 12 vectores)
Falsificación de fingerprint TLS (JA3/JA4 mediante utls)
Bloqueo DNS (gestión de listas de bloqueo)
Bloqueo WebRTC (inyección JS)
Falsificación de Navigator API (29 vectores JS)
Bloqueo QUIC (descarte UDP 443)
3-5 perfiles de identidad (Chrome, Firefox, Safari)
Interfaz web (TS + CSS, gestión de perfiles)
[Post-MVP]
Inyección de ruido en Canvas (mejor esfuerzo)
Bloqueo de información de depuración WebGL (parcial)
Bloqueo de AudioContext (parcial)
Falsificación de fingerprint HTTP/2 (SETTINGS personalizados)
Editor de perfiles personalizado (funcionalidad UI)
Estadísticas de tráfico (panel)
Reducción de enumeración de fuentes (redondeo de mediciones)
Evaluación Final
| Aspecto | Veredicto |
|---|---|
| Viabilidad | Viable como una mejora significativa de privacidad |
| Definitividad | No definitivo — ninguna herramienta puede serlo |
| Singularidad | Único — no existe ninguna herramienta de red multi-capa anti-fingerprint |
| Cobertura de Vectores | ~55% controlable, ~45% fuera de alcance |
| Mantenimiento | Medio-Alto — los perfiles TLS/HTTP necesitan actualizaciones |
| Impacto en Rendimiento | Bajo-Medio — MITM añade latencia |
| Experiencia de Usuario | Alta — transparente para los dispositivos finales |
| Despliegue | Simple — contenedor Docker, configurar una vez |
Palabra Final
Obscura vale la pena construirlo como una capa de privacidad práctica que aumenta significativamente el costo del fingerprinting, no como una bala de plata. Su valor único es la protección multi-capa en toda la red sin configuración por dispositivo — algo que ninguna herramienta existente proporciona.
"La privacidad perfecta es imposible. La privacidad significativa no lo es."