Resumen
DNS es una de las capas más simples y efectivas para bloquear dominios de rastreo y fingerprinting. Antes de cualquier conexión HTTP, hay una consulta DNS.
Cómo Ayuda el Bloqueo DNS
Al resolver dominios conocidos de rastreo/fingerprinting a 0.0.0.0 o 127.0.0.1, el cliente nunca se conecta a esos servidores:
Cliente Consulta DNS Obscura DNS 0.0.0.0 (bloqueado)
Lista de bloqueo (dominios)
Esto evita:
- Que se carguen scripts de rastreo de terceros
- Que se ejecute JS de fingerprinting
- Que balizas de análisis envíen datos
- Que redes de anuncios sirvan contenido
Listas de Bloqueo
| Fuente | Tipo | Cobertura |
|---|---|---|
| OISD | Completa | 1.2M dominios |
| StevenBlack/hosts | Unificada | 100K+ dominios |
| EasyList | Anuncios | 10K+ dominios |
| EasyPrivacy | Rastreo | 20K+ dominios |
| AdGuard DNS filter | Combinada | 100K+ dominios |
| NoTracking | Privacidad | 50K+ dominios |
Dominios Específicos de Fingerprinting
Algunos dominios se usan exclusivamente para fingerprinting:
fingerprintjs.com
fingerprint.com
fingerprintjs.net
fpjs.io
*.metrics.*
*.analytics.*
Enfoques de Implementación
Enfoque 1: Resolver DNS Local
Ejecutar un servidor DNS dentro del contenedor (ej., coredns, dnscrypt-proxy):
- Responde a consultas DNS de los clientes
- Verifica el dominio contra listas de bloqueo
- Devuelve
NXDOMAINo0.0.0.0para dominios bloqueados - Reenvía consultas no bloqueadas a DNS upstream (ej., Cloudflare, Quad9)
Enfoque 2: Upstream DNS-over-HTTPS/TLS
Reenviar consultas a DNS cifrado para evitar que el ISP vea las consultas de dominio:
Cliente Obscura DNS [DNS-over-HTTPS] Upstream
Enfoque 3: Inyección de Archivo Hosts
Inyectar entradas /etc/hosts en los dispositivos cliente mediante opciones DHCP. Menos flexible pero sin configuración para los clientes.
Limitaciones
- El bloqueo DNS solo funciona en dominios completos, no en subrutas
- Algunos rastreadores usan conexiones IP directas (sin consulta DNS)
- No puede bloquear análisis de primera parte (mismo dominio que el contenido)
- Algunos scripts de fingerprinting se sirven desde CDNs que también sirven contenido legítimo
Conclusiones
- El bloqueo DNS es la mitigación de menor esfuerzo y mayor impacto
- Debe ser una funcionalidad principal de Obscura
- Combinar con bloqueo a nivel HTTP para una cobertura completa
- Se requieren actualizaciones periódicas de las listas de bloqueo