Le protocole DNS (Domain Name System) est un système de nommage hiérarchique et décentralisé utilisé pour traduire les noms de domaine lisibles par les humains en adresses IP compréhensibles par les machines. Par exemple, il convertit un nom de domaine comme www.example.com en une adresse IP comme 192.0.2.1, permettant ainsi aux utilisateurs d’accéder facilement aux sites web sans avoir à mémoriser des adresses IP complexes.

1. Pourquoi a-t-il été créé ?

Le protocole DNS a été créé pour résoudre le problème de la complexité croissante des adresses IP au fur et à mesure que l’Internet se développait. Avant le DNS, un fichier centralisé appelé HOSTS.TXT, maintenu par l’ARPANET, était utilisé pour la résolution des noms de domaine. Cependant, avec l’explosion du nombre de dispositifs connectés, cette approche est devenue impraticable. Le DNS a été conçu pour permettre une gestion plus flexible et évolutive de la résolution des noms de domaine.

2. Quand et par qui a-t-il été créé ?

Le protocole DNS a été créé en 1983 par Paul Mockapetris, un informaticien américain, sous la forme des RFC 882 et 883, remplacées plus tard par les RFC 1034 et 1035. Ce développement a été soutenu par l’Internet Engineering Task Force (IETF) pour répondre aux besoins croissants du réseau ARPANET, précurseur de l’Internet.

3. Comment fonctionne le protocole DNS ?

Le DNS fonctionne grâce à une structure en arborescence de serveurs de noms distribués. Lorsqu’un utilisateur saisit un nom de domaine dans son navigateur, une requête DNS est envoyée à un serveur DNS local, qui vérifie s’il possède la réponse en cache. Si ce n’est pas le cas, le serveur DNS local interroge d’autres serveurs DNS, en commençant par les serveurs racine, puis les serveurs TLD (Top-Level Domain), et enfin les serveurs faisant autorité pour le domaine recherché. Le processus se termine lorsque l’adresse IP associée au nom de domaine est trouvée et renvoyée à l’utilisateur.

4. Port utilisé par le protocole

Le DNS utilise principalement le port UDP 53 pour les requêtes de résolution rapide. Cependant, pour des transactions plus complexes ou sécurisées, il peut utiliser le port TCP 53.

5. Niveau dans le modèle OSI

Le protocole DNS opère principalement au niveau de la couche Application (couche 7) du modèle OSI. Il facilite la communication entre les applications en traduisant les noms de domaine en adresses IP, ce qui est essentiel pour l’acheminement des données à travers le réseau.

6. Évolution sécuritaire du protocole DNS

Au fil des ans, plusieurs améliorations de sécurité ont été apportées au DNS, notamment avec l’introduction de DNSSEC (DNS Security Extensions). DNSSEC ajoute des signatures cryptographiques aux enregistrements DNS pour vérifier leur authenticité et intégrité, empêchant ainsi des attaques telles que le spoofing DNS.

7. Fait historique amusant

Elizabeth J. Feinler, qui a dû avoir un sacré boulot de saisie à un moment de sa vie… !

Un fait intéressant est que les premiers serveurs DNS étaient configurés manuellement à partir d’un fichier texte, le fichier HOSTS.TXT, qui contenait toutes les correspondances entre noms de domaine et adresses IP. Ce fichier était distribué par FTP à tous les ordinateurs connectés à ARPANET. La première personne responsable de la mise à jour et de la distribution de ce fichier était Elizabeth (Jake) Feinler, qui travaillait au Stanford Research Institute (SRI). Son travail était crucial pour le fonctionnement des premiers réseaux, illustrant à quel point les débuts d’Internet étaient rudimentaires comparés à aujourd’hui.

8. Cas de détournement

Un exemple célèbre de détournement du DNS est l’attaque de type « DNS Spoofing » ou « Cache Poisoning ». En 2008, une vulnérabilité critique, découverte par Dan Kaminsky, a montré comment des attaquants pouvaient empoisonner le cache DNS des serveurs pour rediriger le trafic vers des sites malveillants, entraînant des risques de vol de données et de phishing.

9. Commandes utiles et logiciels

Pour utiliser le protocole DNS, voici quelques commandes pratiques avec les logiciels ou applications associés :

Commande nslookup

  • Usage : Utilisée pour interroger les serveurs DNS et obtenir des informations sur un nom de domaine.
  • Logiciel/Appli : Disponible en ligne de commande sur Windows, macOS et Linux.
  • Exemple :
nslookup www.example.com

Commande dig

  • Usage : Fournit des informations détaillées sur les requêtes DNS, idéale pour le dépannage avancé.
  • Logiciel/Appli : Disponible en ligne de commande sur macOS et Linux. Peut être installé sur Windows via Cygwin ou BIND.
  • Exemple :
dig www.example.com

Commande host :

  • Usage : Simple utilitaire de recherche DNS, similaire à nslookup mais avec une sortie plus concise.
  • Logiciel/Appli : Disponible sur Linux et macOS.
  • Exemple :
host www.example.com

Outil Wireshark

  • Usage : Permet d’analyser le trafic réseau en temps réel, y compris les requêtes et réponses DNS.
  • Logiciel/Appli : Application graphique disponible sur Windows, macOS et Linux.
  • Exemple : Filtrer le trafic DNS dans Wireshark avec le filtre :
dns

Le mot de la fin…

Le protocole DNS est une composante fondamentale de l’Internet moderne, facilitant la navigation en traduisant les noms de domaine en adresses IP. Malgré les défis de sécurité auxquels il a été confronté, des améliorations comme DNSSEC ont renforcé sa robustesse.