Los métodos para bloquear (si quieres) DoH en la red interna

Sergio De Los Santos    11 noviembre, 2019
Los métodos para bloquear (si quieres) DoH en la red interna

DNS es uno de los protocolos más antiguos de la red, y siempre ha sido un dolor de cabeza de de la seguridad (desde el ataque cumpleaños, hasta el problema de Kaminsky). Todo en claro, con posibilidad de UDP (más fácil aún de inyectar paquetes falsos…), un desastre incluso sin necesidad de ataques, porque los servidores pueden estar controlados por gobiernos y así redirigir o bloquear peticiones, y todo de forma absolutamente transparente y sin privacidad ni integridad (porque DNSSEC no está tan instaurado como debería). Hemos confiado los cimientos de Internet a un protocolo que no ha sabido protegerse tecnológicamente como para que se adoptaran masivamente las soluciones (o no se ha querido, precisamente por esa misma razón) y al que se le han aplicado todo tipo de parches y cataplasmas para no romper con el legado.

Tanto, que al final la propuesta para conseguir seguridad ha sido rompedora: pasar la resolución al plano de los datos. Y por si fuera poco, DoH (DNS over HTTPS) hace que la resolución no confíe en el DNS global del sistema, sino que podrá ignorar a ese servidor DNS que habitualmente se te proporciona por DHCP… de forma que cada aplicación podrá resolver a través de HTTPS de forma estándar. Esto es como si cada programa (navegador como estandarte) realizara sus resoluciones de dominio de forma individual, privada e inaccesible para el resto del sistema operativo o aplicaciones.

Pero esto no es malo, ¿verdad? ¿No sería maravilloso que nadie viera qué intentamos resolver, y no pudiera modificarlo de ninguna forma? Disfrazar en el HTTPS las peticiones, las respuestas, y dejarse arrastrar por la masa en un puerto que nadie puede cortar, el 443. No más espías o restricciones. Eso es lo que promete DoH, con Firefox como abanderado, pero ¿rompe más de lo que arregla? Algunos creen que sí. Y por eso vamos a explicar cómo deshabilitar DoH a diferentes niveles y aclarar además cuándo no va a activarse. Porque DoH no tiene nada de malo, pero habrá administradores interesados en que sus usuarios sigan confiando en los DNS “tradicionales”. Para los que estén alarmados, que sepan que se puede elegir. Vayamos caso a caso.

Cómo deshabilitar DoH en Chrome

Chrome usa una estrategia muy conciliadora con todos. Se trata de una tabla propia donde se mapearán los DNS con sus respectivos servidores DoH. Si los DNS de sistema tienen asociado un DoH, resolverá por el DoH de ese DNS. Esta es una aproximación interesante, a medio camino. Si un servidor DNS dispone de versión DoH gestionados por ellos mismos, se pueden seguir aplicando las políticas de seguridad necesarias, con lo que se alivian buena parte de los problemas, manteniendo los beneficios. Como la tabla es insostenible a largo plazo, ya existe una propuesta RFC para incluir tu servidor DoH en tu servidor DNS a través de un registro TXT o del propio HTTPS.

En todo caso, si se quiere no usar DoH para nada, se puede hacer desde chrome://flags y marcando la opción en la imagen “Secure DNS lookups”.

Cómo deshabilitarlo en Firefox: el dominio canario

Firefox es el navegador con la estrategia más agresiva, pretende que todos usen DoH contra Cloudfare por defecto. Pero tenemos varias opciones para poder elegir.

Si se controlan los DNS de red, se puede usar el dominio canario use-application-dns.net. Esto quiere decir que si Firefox detecta que ese dominio no resuelve con los DNS del sistema, deshabilitará DoH. Sencillo para quien controle sus DNS. Si estáis pensando que vale con bloquearlo en el /etc/hosts, no se podrá. Firefox intentará resolverlo con los DNS de sistema, y solo con ellos.

Si el DNS devuelve un NOERROR y contiene registros A, AAAA o ambos… el dominio existirá y por tanto DoH tendrá vía libre. Si devuelve un NXDOMAIN, SERVFAIL, o un NOERROR pero sin A o AAAA… se considerará que se ha bloqueado el dominio y por tanto no se quiere DoH.

Cómo deshabilitarlo en Firefox: otras opciones

Firefox mirar otras “señales” para saber si debe usar, o no, DoH. Por ejemplo, si detecta algún sistema de control parental en el sistema operativo. No da detalles de cómo, y solo lo hará en MacOS y Windows.

Una variante de lo de arriba es si detecta que SafeSearch está activo. Esto es un sistema de Google para evitar que Google y Youtube devuelvan resultados explícitos.

Por último, tampoco usará DoH si el flag security.enterprise_roots.enabled está activo en Firefox. Esto se usa en general para que Firefox mire en el repositorio de certificados del sistema operativo (y no en el suyo propio, como hace habitualmente). Ahora también servirá para indicar que no debe usar DoH.

Otra forma de usar DoH, pero con más capacidad de elección, es elegir libremente qué servidores DoH se quieren usar. Con nuestra extensión EasyDoH se podrá elegir de una lista de servidores, para no estar atado a Cloudfare y saber qué alternativas existen. Incluso, podemos jugar con las opciones (de momento muy oscuras) de qué modalidad de DoH. Si solo DoH, si DoH o DNS según se resuelva más rápido, deshabilitar el DoH por completo, etc.

En about:config con los TRR encontraremos más granularidad.

Y por cierto, para saber si lo estamos usando utilizamos o no TRR (al final así lo califica Firefox)  podemos visitar about:networking#dns en el navegador. Ahí veremos qué resuelve y por dónde.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *