En los últimos años se han producido varias caídas de servicios muy populares en internet. A veces no es sencillo saber dónde y cuándo se ha producido el problema. Eso sí, casi siempre, uno de los primeros sospechosos suele ser el denominado sistema de nombres de dominio, conocido como DNS, las siglas en inglés de Domain Name Service.
El DNS es un protocolo de comunicaciones imprescindible para el funcionamiento de todos los servicios que operan en internet. Algunos ejemplos son la navegación web, los servicios multimedia o el correo electrónico, entre otros. Para entender el motivo de esta importancia tenemos que remontarnos a los orígenes de la Red de redes, a los años 80.
Máquinas con nombres
A los humanos nos gusta poner nombres a las cosas. Es nuestra manera de identificarlas. Los ordenadores, por lo tanto, no fueron una excepción.
Inicialmente, se podía utilizar cualquier palabra para bautizarlos. Por ejemplo, una de las primeras máquinas conectadas a internet se llamaba Genie, genio en inglés.
Cuando se comenzaron a crear redes de comunicaciones entre los ordenadores se necesitó identificarlos mediante números, las conocidas direcciones de red, que permitían saber dónde están y llegar a ellos. En el caso de internet, son las direcciones IP (de Internet Protocol, protocolo de internet). Un ordenador conectado a la red tenía, por tanto, un nombre y una dirección IP.
Al principio, para relacionar estos dos valores se utilizó un sistema muy sencillo: escribirlos en un fichero. Era el conocido hosts.txt. En cada línea del fichero teníamos el nombre y la dirección IP de un ordenador. Podemos poner como símil las guías de teléfono donde el nombre y apellidos de una persona estaba asociado a un número fijo.
Este fichero se guardaba en un único ordenador (gestionado por el Stanford Research Institute) y todos los ordenadores conectados a la red se lo descargaban una vez al día.
Cada vez que se conectaba un nuevo ordenador a internet, había que añadirlo en este registro. Al aumentar el número de ordenadores conectados a la red, el sistema comenzó a ser muy complejo de mantener. Por una parte, ponerle nombre a una máquina era cada vez más complicado porque tenía que ser único. No podían existir dos máquinas con el mismo nombre, pero diferentes direcciones IP. Es decir, en todo internet no podía haber otra máquina que se llamara Genie. Por otra, el fichero cada vez era más grande y más difícil de manejar.
Creación del sistema DNS
Fue Paul Mockapetris el que a finales de los 80 propuso una solución al problema anterior. Definió el sistema de nombres de dominio en el año 1987. Este sistema permitía, por una parte, facilitar la creación de nombres y, por otra, conocer más rápidamente cuál es la dirección IP asociada a un nombre.
Para facilitar la creación de nombres, propuso una estructura basada en árbol invertido, en el que cada nodo tiene una etiqueta. El nombre de una máquina se construye uniendo estas etiquetas y separándolas por puntos.
Para que no existan conflictos entre nombres, lo único que hay que garantizar es que no existan nombres repetidos en el mismo nivel del árbol. Esto se consigue delegando las gestión de esos nombres.
Para entenderlo mejor, pongamos un ejemplo: el Gobierno de España tiene delegada la gestión de los nombres de dominio que finalizan por “.es”. Cuando alguien quiere crear un nombre que finaliza en “.es” debe solicitárselo. Así, la Universidad Carlos III de Madrid tiene el dominio “uc3m.es” y la Universidad Complutense de Madrid tiene “ucm.es”. Esto no impide que pueda existir un nombre “ucm.cl”, que se corresponde con una universidad de Chile.
El nivel más importante del DNS es el primero, el que está justo debajo de la raíz del árbol. Son los que se dominan dominios de nivel superior, o TLD, por sus siglas en inglés Top-Level Domain. En este nivel están los “.com”, “.net”, “.org”, etc. y también los correspondientes a países o regiones, “.es”, “.pt”, “.fr”, etc. La gestión de este nivel la realiza la Corporación de Internet para la Asignación de Nombres y Números (ICANN, por sus siglas en inglés).
Si bien esta nueva estructura solucionó muchos problemas, abrió otros diferentes, por ejemplo, ¿cuándo una región puede tener un TLD? El mundo de los nombres de dominio no está exento de las tensiones geopolíticas del mundo real. Aunque esto por sí solo necesitaría su propio artículo.
El otro problema que solventó el DNS fue el de almacenar y recuperar de forma más eficiente la información asociada a estos nombres, entre otras, las direcciones IP. Lo que se propuso es dividir el árbol de nombres DNS en zonas no solapadas. La información sobre cada zona se almacena en máquinas separadas. Estas máquinas se denominan servidores DNS. Es como si el fichero inicial hosts.txt se partiese en trozos más pequeños y se distribuyese por varias máquinas diferentes.
DNS como punto débil de internet
Todos los ordenadores del mundo tienen que conocer, al menos, a uno de estos servidores DNS para poder usar los servicios de internet. Así, cuando tecleamos en nuestro navegador theconversation.com para leer la portada del día, nuestro ordenador tiene que contactar primero con el servidor DNS que conoce, para que le indique cuál es la dirección IP asociada a ese nombre. Así se podrá conectar al servidor en el que están las noticias y podremos leerlas tranquilamente en nuestro navegador.
¿Qué ocurre si no obtengo respuesta del DNS? Pues que no podremos leer las noticias, aunque nuestro ordenador funcione perfectamente, el servidor de The Conversation también y nuestra conexión a internet no tenga ningún problema.
Por este motivo, el DNS siempre ha sido un punto crítico en la red. Si alguien consigue que una parte del servicio DNS no funcione, durante un tiempo nadie podrá acceder a la información que este posee del árbol DNS y muchos servicios estarán inaccesibles.
Uno de estos ataques fue el que se produjo en octubre de 2016 a la empresa Dyn, proveedora de servicios de DNS. Durante varias horas millones de usuarios no pudieron conectarse a servicios como la BBC, CNN, Amazon, Neflix, entre otros muchos… Se considera uno de los ataques más graves de los últimos años.
El DNS ha crecido mucho con los años y se ha mejorado en muchos aspectos relativos a su seguridad. Los lectores pueden estar tranquilos, aunque la seguridad completa nunca existe y es probable que se produzcan más ciberataques de este tipo.
Recordemos que, como todos los protocolos, inicialmente no contemplaban ningún tipo de seguridad. Internet era una red para colaborar, sin transacciones económicas de por medio. Además de ataques como el comentado anteriormente, el DNS presenta otros problemas.
Si un atacante consigue hacerse pasar por su servidor DNS, podría dirigirle a páginas maliciosas cuando se quiera conectar a su banco. También podría saber por qué sitios navega y deducir sus gustos o ideología política.
Así, con los años, se ha mejorado el DNS para incluir confidencialidad, integridad y disponibilidad, los pilares de la seguridad en redes de comunicaciones. Primero se definió DNSSEC y, más recientemente, han aparecido DoT (DNS sobre TLS), DoH (DNS sobre HTTPS) y, más recientemente, DoQ (DNS sobre QUIC).
Por último, no podemos dejar de recalcar que muchas de estas últimas propuestas han sido lideradas por mujeres científicas de redes (Allison Mankin y Sara Dickinson) que han tenido y tienen mucho que decir en la construcción de internet.
Celeste Campo, Profesora Titular del Departamento de Ingeniería Telemática, Universidad Carlos III y Carlos García Rubio, Profesor titular del Departamento de Ingeniería Telemática, Universidad Carlos III
Este artículo fue publicado originalmente en The Conversation. Lea el original.
Visitas: 0