DNSSEC, abréviation de « Domain Name System Security Extensions » (extensions de sécurité du système de noms de domaine), est un protocole renforcé conçu pour garantir l’authenticité des informations fournies par les serveurs DNS. Il s’appuie sur la cryptographie à clé publique et les signatures numériques pour remédier aux failles de sécurité du protocole DNS traditionnel. Développé en 1983, le DNS est un système qui traduit les noms de domaine (noms d’hôte) en adresses IP, mais il a été critiqué pour l’absence de mécanismes de sécurité robustes. L’une de ses principales vulnérabilités est son exposition aux attaques par empoisonnement du cache DNS.

L’infrastructure DNS se compose de deux principaux types de serveurs :

  1. Serveurs de contenu DNS (serveurs faisant autorité) : ils gèrent les informations réelles relatives aux domaines.
  2. Serveurs de cache DNS (serveurs de noms) : ils interrogent les serveurs de contenu pour le compte des clients et stockent temporairement les réponses en cache pendant une durée déterminée afin de répondre à de futures requêtes similaires sans avoir à effectuer de nouvelles interrogations.

Si des données malveillantes ou incorrectes sont stockées dans le cache (« cache empoisonné »), le serveur de cache DNS peut fournir aux clients une adresse IP erronée et les rediriger vers des sites frauduleux. Cette exploitation délibérée est appelée empoisonnement du cache DNS. Elle est rendue possible par le fait que les communications DNS entre serveurs utilisent le protocole UDP sans état, qui ne permet pas de vérifier l’expéditeur. En synchronisant habilement l’envoi de paquets de réponse usurpés avec des requêtes légitimes, les attaquants parviennent à empoisonner le cache.

DNSSEC atténue ce risque en introduisant une validation cryptographique. Les serveurs de contenu DNS faisant autorité génèrent une paire de clés cryptographiques : une clé privée et une clé accessible au public. Lorsqu’il répond à une requête, le serveur utilise sa clé privée pour signer la réponse DNS. À la réception de celle-ci, le serveur de cache DNS valide la signature numérique à l’aide de la clé publique. Ce processus garantit l’intégrité et l’authenticité des données, empêchant ainsi efficacement les attaques par empoisonnement du cache DNS.