Le DNS
Principes et fonctionnement
© Gilles TONCELLI Use at your own risk 💀
Définition du DNS
Le DNS (Domain Name System, conçu en 1983) est un service dont la
principale fonction est de traduire un nom de domaine en adresse IP, comme
un annuaire téléphonique permet d'associer un numéro de téléphone à un
nom d'abonné.
Conversion de nom de domaine en adresse IP Résolution DNS
Résolution inverse Reverse DNS
© Gilles TONCELLI Use at your own risk 💀
Définition du DNS
Le dépôt d'un nom de domaine (du type "[Link]") s'effectue auprès
d'un bureau d'enregistrement ("Registrar").
Registrar :
Intermédiaire entre les demandeurs de noms de domaine, et l'ICANN (société
à but non lucratif responsable de l'allocation des adresses IP dans le monde)
© Gilles TONCELLI Use at your own risk 💀
Organisation du système
Le sommet de la hiérarchie est le domaine dit "Racine".
Il est réparti en 13 serveurs, nommés de "[Link]" à "[Link]-
[Link]".
De cette racine partent des branches qui sont les domaines dits "de niveau
supérieur" ou TLD :
Les Top Level Domains (.com, .org, .net, .fr, .ca, etc.)
On distingue :
gTLD (generic Top Level Domains) : .com, .org, .net, .info...
ccTLD (country code Top Level Domains) : les suffixes nationaux .fr, .nl, .es, .it...
De ces TLD partent de nouvelles branches qui sont les domaines dits "de niveau inférieur"
© Gilles TONCELLI Use at your own risk 💀
Organisation du système
En plus de ces serveurs répartis dans le monde, chaque fournisseur d'accès à
Internet (FAI) propose un serveur DNS qui fait office d'intermédiaire entre les
abonnés et les serveurs "officiels".
Le FQDN :
Le nom de domaine complet, appelé "Fully Qualified Domain Name" (FQDN)
est constitué du nom d’hôte, suivi de tous les sous-domaines, domaines... et
inclut le point final, représentant le serveur racine ([Link].)
Pour la résolution, il se lit de droite à gauche.
© Gilles TONCELLI Use at your own risk 💀
Organisation du système
© Gilles TONCELLI Use at your own risk 💀
Les différentes requêtes
Il existe deux types de requêtes :
La requête récursive : Elle attend une réponse obligatoire du serveur interrogé.
La réponse peut être :
Les données demandées.
Un message d’erreur indiquant que les données du type demandé n’existent pas.
Un message indiquant que le nom de domaine spécifié n’existe pas.
La requête itérative : Elle attend la meilleure réponse du serveur interrogé.
Une réponse positive.
Une réponse négative.
Une référence à un autre serveur.
© Gilles TONCELLI Use at your own risk 💀
Déroulement d’une requête
Une personne veut accéder au site [Link].
Elle tape le nom dans la fenêtre de recherche de son navigateur.
Le navigateur recherche dans son cache l’adresse IP du site.
S’il ne la trouve pas il a recours à un résolveur.
Le serveur DNS récursif (ou résolveur), généralement fourni par le FAI, cherche dans son cache s'il
connaît l'adresse IP correspondant au nom de domaine.
S'il ne la trouve pas il va faire une requête au serveur racine (UDP, port 53). Celui-ci va le diriger vers
le serveur de premier niveau : celui qui gère les sites en .org
Le serveur récursif va réitérer sa demande à ce serveur de premier niveau qui va le diriger vers le
serveur faisant autorité sur le domaine de second niveau : celui qui gère wikipédia.
Le serveur récursif récupère l’adresse IP du site [Link] auprès de ce serveur et la
retranscrit au navigateur de la personne, après avoir mis l’information en cache pour la prochaine
demande.
Le navigateur de la personne se connecte au site et place l’adresse IP dans son cache en lui associant
un TTL.
© Gilles TONCELLI Use at your own risk 💀
Déroulement de la requête
© Gilles TONCELLI Use at your own risk 💀
Le DNS et la sécurité
Le DNS est un point sensible du point de vue de la sécurité dans une infrastructure
car il est vulnérable.
Rappel : Les serveurs DNS conservent les correspondances entre les hôtes et leur
adresse IP.
Un pirate atteignant le serveur DNS d’une entreprise peut ainsi avoir la "carte" de
tous les autres serveurs de son infrastructure.
Le cache peut être modifié pour renvoyer le demandeur vers une adresse
malveillante. Les stations de travail peuvent atteindre les serveur DNS externes.
Les requêtes DNS peuvent être utilisées pour exfiltrer des données de façon
discrète (DNS Tunneling).
© Gilles TONCELLI Use at your own risk 💀