DNSSEC : NSEC contre NSEC3
Les extensions de sécurité du système de nom de domaine (DNSSEC) offrent deux enregistrements différents pour la gestion sécurisée de noms non-existants dans DNS, NSEC et NSEC3. Ceux-ci s’excluent mutuellement, donc les opérateurs ont besoin d’en sélectionner un lors du déploiement du DNSSEC.
Le problème
Le problème à résoudre par le NSEC et le NSEC3 est de savoir à quel moment un nom existe au sein d’une zone donnée. C’est la solution pour empêcher les acteurs malveillants d’envoyer de fausses réponses négatives aux requêtes.
Imaginons que vous vouliez vous rendre sur « research.example.com » avec notre navigateur web. Le navigateur envoie la demande à votre serveur DNS récursif et obtient comme réponse que le site n’existe pas. Comment le navigateur sait-il qu’une personne malveillante n’a pas simplement usurpé cette réponse afin que vous ne puissiez accéder au site ? Comment le navigateur sait-il réellement que research.example.com n’a pas de A ou de AAAA enregistré ?
La solution
Les réponses à ces deux questions se trouvent dans les enregistrements DNS NSEC et NSEC3 qui fournissent « le déni d’existence authentifié ». Fondamentalement, ce qui se passe c’est que pour chaque enregistrement dans une zone, l’enregistrement NSEC / NSEC3 fournit un indicateur vers l’enregistrement suivant du même type. Imaginons que des enregistrements A existaient pour ces noms :
ftp.example.com
mail.example.com
research.example.com
www.example.com
Chacun disposait d’un indicateur vers le suivant dans un enregistrement NSEC, signé de manière cryptographique, et peut créer une liste connectée de tous les enregistrements. Donc si quelqu’un demandait « store.example.com », le serveur DNS était en mesure de répondre qu’un tel enregistrement n’existe pas.
NSEC contre NSEC3
La question évidente qui vient après est de savoir lequel utiliser. À quel moment un opérateur doit-il utiliser NSEC et à quel moment doit-il utiliser NSEC3 ?
Comme vous l’aurez compris à partir de l’exemple cité plus haut, le défi avec l’enregistrement NSEC tient au fait que quelqu’un peut utiliser les réponses NSEC pour « se promener dans la zone » et pour élaborer une liste de tous les enregistrements dans une zone DNS. À cause de cette exposition de l’information, l’enregistrement NSEC3 a été créé pour ajouter un mécanisme de hachage afin d’éviter toute simple promenade dans la zone.
NSEC est plus simple et la réponse simple à cette question est que les opérateurs doivent utiliser NSEC quand ils n’accordent aucun intérêt aux personnes qui traversent leurs domaines. Si vous n’accordez aucun intérêt au fait qu’une personne puisse énumérer tous les noms dans votre zone (promenade de zone), alors utilisez NSEC.
NSEC3 doit être utilisé dans les cas où les opérateurs de zone accordent de l’importance au fait que d’autres personnes se promènent dans toute leur zone. L’inconvénient c’est que cela exige une plus grande surveillance cryptographique pour les validateurs récursifs et une configuration DNS légèrement plus compliquée.
Lecture complémentaire
C’est la réponse courte. Pour une discussion plus longue et détaillée, consultez les ressources suivantes.
- Une discussion détaillée des deux options, notamment les exemples de configuration BIND.
- Section 5 du RFC 6781. Le RFC pertinent et la section où le NSEC et le NSEC3 sont expliqués.
- Section 10.3 du RFC 5155. Astuces utiles de déploiement pour effectuer la transition de NSEC à NSEC3 et vice-versa.
- Un argument en faveur de NSEC3 de la part d’un important fournisseur DNS.
Si vous voulez en savoir plus sur le DNSSEC, consultez nos autres ressources DNSSEC ou consultez nos pages « Démarrez ici » pour trouver les informations sur le DNSSEC concernant une entreprise de votre genre.
