DNSSEC ajoute une sécurité essentielle au DNS en vérifiant l'authenticité et l'intégrité des enregistrements grâce à des signatures numériques et une chaîne de confiance. Découvrez son fonctionnement, ses avantages, ses limites, et pourquoi il est crucial pour lutter contre la falsification DNS.
DNSSEC est un ensemble d'extensions pour le DNS qui permet de vérifier l'authenticité des enregistrements DNS reçus et de s'assurer qu'ils n'ont pas été modifiés de manière invisible en chemin. Le DNS classique excelle dans la recherche de l'adresse IP d'un site, mais à l'origine, il prévoit peu de mécanismes pour vérifier l'identité de l'auteur de la réponse. Ainsi, un attaquant peut, dans certaines conditions, tenter de falsifier une réponse DNS et rediriger l'utilisateur vers un autre serveur, sans que l'adresse du site ne paraisse suspecte. DNSSEC résout ce problème grâce à des signatures cryptographiques et à une chaîne de confiance, permettant au résolveur DNS de vérifier la provenance des données avant leur utilisation.
Il est important de souligner que DNSSEC ne chiffre pas les requêtes DNS et ne remplace pas HTTPS, DNS over HTTPS ou DNS over TLS. Son objectif est de garantir l'intégrité et l'authenticité des données DNS. Cette spécialisation rend la technologie cruciale pour la sécurité du DNS, tout en expliquant pourquoi elle ne résout pas tous les problèmes du système de noms de domaine.
Le DNS, ou Système de Noms de Domaine, agit comme l'annuaire décentralisé d'Internet. Lorsqu'un utilisateur saisit l'adresse d'un site, son appareil ignore généralement à quel serveur se connecter. Il envoie une requête DNS et reçoit l'adresse IP du service recherché.
Pour en savoir plus sur le fonctionnement du DNS et la séquence des requêtes, consultez l'article " Comment fonctionne le DNS : explications simples ". À l'origine, le protocole DNS n'a pas été conçu pour se protéger contre la falsification délibérée des données.
Le problème vient donc de la confiance en la réponse obtenue. Si le résolveur reçoit une entrée indiquant que example.com se trouve à une certaine adresse IP, le DNS de base ne propose aucun mécanisme cryptographique complet pour prouver que cette entrée a vraiment été publiée par le serveur DNS autoritaire de ce domaine.
DNSSEC signifie Domain Name System Security Extensions - extensions de sécurité pour le système de noms de domaine. Cette technologie ne crée pas un nouveau système DNS ni ne modifie la façon dont les noms de domaine sont convertis en adresses IP : elle ajoute un mécanisme de signatures numériques à l'infrastructure existante.
Le propriétaire d'une zone DNS peut signer certains ensembles d'enregistrements avec une clé cryptographique. Un résolveur compatible DNSSEC vérifie alors la signature pour s'assurer que les données proviennent bien du détenteur de la zone.
Cela permet de détecter toute tentative de modification. Si un attaquant change l'adresse IP dans un enregistrement signé, la signature numérique ne correspond plus aux données. Le résolveur détecte l'erreur et ne transmet pas la réponse falsifiée à l'utilisateur.
Il est essentiel de noter que DNSSEC protège avant tout l'authenticité des informations DNS, et non le canal de communication lui-même. Un observateur peut toujours voir quels domaines sont demandés si le trafic DNS n'est pas chiffré. C'est pourquoi la sécurité du DNS repose sur plusieurs volets : vérification de l'authenticité, protection contre la modification, et confidentialité des requêtes.
DNSSEC ne doit pas non plus être confondu avec le simple fait d'utiliser un " serveur DNS sécurisé ". Changer de fournisseur de DNS ne suffit pas à garantir la véracité des réponses. DNSSEC fonctionne au niveau des zones DNS et permet d'établir une chaîne de confiance vérifiable entre les différents niveaux du système de noms de domaine.
Au cœur de DNSSEC se trouve la cryptographie asymétrique. Pour chaque zone, une paire de clés est générée : la clé privée signe les enregistrements, la clé publique est publiée dans le DNS et permet de vérifier la signature. La clé secrète n'est jamais partagée avec les utilisateurs ou les résolveurs.
Lorsque le propriétaire d'un domaine publie, par exemple, un enregistrement A (adresse IP du serveur), DNSSEC ne chiffre pas son contenu. Au lieu de cela, l'ensemble des enregistrements est signé et accompagné d'un enregistrement RRSIG contenant la signature cryptographique. Toute modification, même minime, entraîne l'échec de la vérification de la signature.
Les clés publiques sont stockées sous forme d'enregistrements DNSKEY. Un résolveur compatible DNSSEC peut ainsi vérifier que le RRSIG a bien été créé avec la clé privée adéquate.
Mais une seule signature ne suffit pas. Un attaquant pourrait théoriquement modifier à la fois l'enregistrement DNS et la clé publique. C'est pourquoi DNSSEC utilise une chaîne de confiance reliant les zones filles à leurs zones parentes via des enregistrements DS. Par exemple, pour example.com, cette relation doit être établie au niveau de la zone .com, elle-même liée à la racine DNS.
La vérification s'effectue ainsi : la confiance commence avec la clé de la racine, puis se propage à la zone de premier niveau, puis au domaine spécifique. Si une signature ou une clé ne correspond pas à un maillon de la chaîne, la validation DNSSEC échoue.
En pratique, c'est le résolveur DNS récursif (celui du fournisseur d'accès ou un service DNS public) qui effectue ces vérifications. Si tout est correctement signé et que la chaîne de confiance est confirmée, la réponse est considérée comme valide.
Si la zone doit être protégée par DNSSEC mais que la signature est incorrecte, le résolveur peut rejeter la réponse. Pour l'utilisateur, cela ressemble à une erreur DNS classique : le site ne s'ouvre pas, même si le serveur web fonctionne.
DNSSEC répond à la question " Peut-on faire confiance à ces données DNS ? ", mais pas à " Quelqu'un peut-il voir ma requête ? ". Le nom de domaine et le contenu de la réponse DNS restent visibles si le DNS n'est pas chiffré.
Pour protéger le canal, d'autres technologies sont utilisées. DNS over HTTPS et DNS over TLS chiffrent la connexion entre l'appareil de l'utilisateur et le résolveur DNS, compliquant la lecture ou la modification des requêtes sur ce segment du réseau.
DNSSEC et le DNS chiffré répondent donc à des besoins différents et peuvent être utilisés ensemble. DoH ou DoT protègent la transmission de la requête jusqu'au résolveur, tandis que DNSSEC permet au résolveur de vérifier l'authenticité des informations reçues du système DNS.
Le processus peut être résumé par plusieurs vérifications successives :
Si toute la chaîne est validée, la réponse est considérée comme authentique. Sinon, DNSSEC détecte l'anomalie.
La chaîne de confiance distingue DNSSEC d'une simple signature d'enregistrements DNS : le résolveur vérifie à la fois les données et l'origine de la clé de signature.
L'un des principaux objectifs de DNSSEC est de contrer les situations où un utilisateur reçoit une réponse DNS différente de celle publiée par le propriétaire du domaine. Cette falsification est particulièrement dangereuse car elle peut passer inaperçue : l'utilisateur saisit la bonne adresse, mais le DNS le redirige ailleurs.
Un scénario courant est le DNS spoofing : l'attaquant tente de faire accepter à l'appareil une fausse réponse DNS avant la vraie. Par exemple, au lieu de l'adresse IP officielle, l'utilisateur reçoit celle d'un serveur contrôlé par l'attaquant.
DNSSEC complique ce type d'attaque car il ne suffit plus de fournir une réponse factice : il faut aussi une signature numérique valide, vérifiable via DNSKEY et la chaîne de confiance. Seul le détenteur de la clé privée de la zone peut générer une telle signature.
Si l'attaquant se contente de remplacer l'adresse IP, la signature RRSIG ne correspondra plus, et le résolveur refusera la réponse.
De même, DNSSEC protège contre l'empoisonnement du cache DNS, où l'on tente d'insérer une fausse entrée dans le cache du résolveur afin que de nombreux utilisateurs reçoivent une adresse erronée.
Sans vérification cryptographique, le résolveur s'appuie sur d'autres paramètres pour juger de la validité d'une réponse. DNSSEC ajoute une exigence incontournable : la donnée reçue doit passer le contrôle de la signature. Si la chaîne de confiance ne peut être établie, le résolveur considère la réponse comme non fiable, ce qui empêche l'entrée falsifiée d'être mise en cache.
Cependant, DNSSEC n'est pas une protection universelle contre toutes les attaques DNS : il ne prévient pas la surcharge des serveurs DNS, ne protège pas l'appareil contre les logiciels malveillants, ni contre la modification directe des paramètres DNS sur l'ordinateur ou le routeur.
Il n'empêche pas non plus les attaques survenant après une résolution DNS réussie : une fois connecté à la bonne adresse IP, la protection dépend d'autres mécanismes comme HTTPS ou TLS.
DNSSEC garantit donc l'intégrité et l'authenticité des données DNS. Il permet de s'assurer qu'un enregistrement reçu correspond bien à ce qui a été publié par le propriétaire de la zone et n'a pas été modifié en transit.
L'atout principal de DNSSEC est la possibilité de vérifier cryptographiquement les enregistrements DNS. Cela est crucial pour les domaines où une falsification pourrait avoir des conséquences graves : services bancaires, ressources gouvernementales, infrastructures d'entreprise, etc.
DNSSEC réduit aussi l'efficacité des attaques basées sur la falsification de réponses ou l'empoisonnement de cache. Même si l'attaquant transmet de fausses données, il doit fournir une signature valide liée à la chaîne de confiance.
Autre avantage : le modèle de confiance distribué. La vérification ne dépend pas d'un service central qui approuve chaque réponse DNS, mais de la hiérarchie DNS existante : de la racine vers le domaine de premier niveau, puis le domaine cible.
Mais cette sécurité accrue a un coût : la complexité. DNSSEC nécessite la génération et la gestion de clés cryptographiques, la signature des zones, et la bonne configuration des enregistrements DS dans la zone parente.
Une erreur dans cette chaîne peut avoir des conséquences plus graves qu'une erreur DNS classique. Par exemple, si le propriétaire change de clé sans mettre à jour l'enregistrement DS associé, les résolveurs validenturs peuvent ne plus faire confiance au domaine, rendant le site inaccessible pour certains utilisateurs.
Les signatures et clés supplémentaires augmentent aussi la taille des réponses DNS. L'infrastructure moderne le gère généralement bien, mais DNSSEC ajoute tout de même une charge supplémentaire par rapport aux réponses non signées.
Enfin, limitation fondamentale : DNSSEC n'assure pas la confidentialité. Un fournisseur ou tout observateur sur le chemin peut toujours voir les noms de domaine demandés si le trafic DNS n'est pas chiffré.
Il ne faut donc pas voir DNSSEC comme la solution à tous les problèmes de sécurité DNS. Son point fort est l'authenticité des données, tandis que le chiffrement des requêtes, la sécurité des connexions et la protection de l'appareil requièrent d'autres technologies.
Malgré ses avantages, DNSSEC n'est pas déployé sur tous les domaines. La principale raison : la complexité de la configuration et de la gestion. Le DNS classique est relativement simple : le propriétaire définit les enregistrements, et les serveurs DNS les diffusent dans le réseau. Avec DNSSEC, une couche supplémentaire apparaît : clés, signatures et liaison avec la zone parente.
Pour que la technologie fonctionne correctement, plusieurs acteurs doivent coopérer : le fournisseur DNS signe la zone et gère les clés, le bureau d'enregistrement transmet l'enregistrement DS à la zone supérieure, et les serveurs DNS récursifs doivent valider les signatures. Une erreur à n'importe quelle étape peut briser la chaîne de confiance.
La rotation des clés est particulièrement délicate. Les clés cryptographiques ne doivent pas être utilisées indéfiniment, donc elles sont remplacées régulièrement. Si une nouvelle clé signe déjà la zone mais que l'enregistrement DS n'a pas encore été mis à jour, les résolveurs validenturs peuvent rejeter les réponses.
Pour un propriétaire de site, ce type d'erreur est frustrant : le serveur fonctionne, le domaine existe, les enregistrements DNS sont publiés, mais certains utilisateurs ne parviennent pas à accéder à la ressource. Ce risque a longtemps freiné l'adoption de DNSSEC.
Autre raison organisationnelle : l'utilisateur ne perçoit pas forcément la différence entre un DNS classique et un DNS avec DNSSEC. La technologie n'accélère pas le chargement du site, n'ajoute pas d'icône de sécurité visible dans le navigateur, et n'offre pas de nouvelle fonction évidente. Ainsi, les propriétaires de petits sites voient difficilement l'intérêt d'ajouter cette configuration.
Les fournisseurs DNS modernes ont en partie résolu ce problème. Beaucoup de panels permettent d'activer DNSSEC automatiquement, la génération et la rotation des clés étant gérées par le service. Mais la simplicité dépend à la fois de l'hébergeur DNS, du bureau d'enregistrement et de la zone de domaine.
Si votre bureau d'enregistrement et votre fournisseur DNS proposent une configuration automatique de DNSSEC, il est généralement pertinent de l'utiliser. Cela ajoute une couche de vérification aux enregistrements DNS et réduit le risque de falsification invisible dans l'infrastructure DNS.
Cette protection est particulièrement utile pour les services où une modification des enregistrements DNS peut avoir de graves conséquences : boutiques en ligne, plateformes financières, systèmes d'entreprise, infrastructures de messagerie, etc.
Néanmoins, il vaut mieux éviter d'activer DNSSEC manuellement sans bien comprendre les paramètres. Toute erreur dans l'enregistrement DS ou lors d'un changement de clé peut rendre le domaine inaccessible aux résolveurs stricts. Si le fournisseur propose une gestion entièrement automatisée de DNSSEC, le risque de problème est bien moindre.
Plusieurs méthodes existent pour vérifier la présence de DNSSEC :
dig example.com A +dnssec. Si le domaine utilise DNSSEC, la réponse contient des données supplémentaires, dont l'enregistrement RRSIG. Toutefois, la seule présence de RRSIG ne garantit pas la validité de la chaîne complète.Pour les propriétaires de site, il est recommandé de vérifier la configuration DNSSEC après chaque activation initiale, migration vers un autre fournisseur DNS, ou toute opération sur les clés ou les enregistrements DS. Ce sont ces étapes qui entraînent le plus souvent des erreurs impactant la chaîne de confiance.
DNSSEC rend le DNS nettement plus fiable là où le système classique ne peut pas prouver l'authenticité des réponses. Grâce aux signatures numériques et à la chaîne de confiance, le résolveur peut vérifier qu'un enregistrement a bien été publié par le propriétaire de la zone et n'a pas été modifié en chemin.
Cependant, DNSSEC ne résout pas tous les problèmes de sécurité DNS : il ne dissimule pas les requêtes au fournisseur, ne remplace pas HTTPS, ni ne chiffre les communications entre l'appareil et le serveur DNS. Pour la confidentialité, il faut recourir à DoH ou DoT, et pour la protection du site lui-même, à TLS et d'autres mécanismes.
La principale faiblesse de DNSSEC n'est pas liée à la cryptographie, mais à la complexité de l'infrastructure. Des erreurs lors de la configuration des enregistrements DS, du changement de clé ou du transfert DNS peuvent rendre un domaine correctement configuré inaccessible aux utilisateurs avec la validation DNSSEC activée. Cela explique la lenteur de son déploiement par rapport à d'autres mécanismes de sécurité Internet.
Si votre bureau d'enregistrement et votre fournisseur DNS facilitent la configuration et la rotation automatique des clés, activer DNSSEC est pertinent. Pour le propriétaire du domaine, cela ajoute une couche de protection contre la falsification des données DNS, sans nécessiter de modifications sur le site lui-même.