Introduction a DNSSEC
Domain Name System Security Extensions
Introduction
Qu'est-ce que DNSSEC ?
- Sécurisation des données (pas du canal) à travers un mécanisme de clés asymétriques
- Signe les enregistrements DNS de sa propre zone
- Chaque zone DNS parente, garantie l’authenticité des clés de ses zones filles en les signant
- Permet d’établir une « chaine de confiance » jusqu’à la racine DNS
Qu'est-ce que n'est pas DNSSEC ?
- Pas de chiffrement des enregistrements DNS
- Pas de confidentialité des échanges
- Ne garantit pas la sécurité d’un transaction (au sens certificat SSL)
Fonctionnement
DNSSEC repose avant tout sur un système de confiance des enregistrements DNS par signature.
Chaque information DNS est signée avec une clé privée et transmise avec l'information en elle même, de sorte à ce que les serveurs de résolution (ayant la clé publique) soient en mesure de déterminer la véracité de l'information.

Signature et authentification de clés DNSSEC (www.afnic.fr)
Au fur et a mesure que le système de signature d'enregistrements s'étend à l'arborescance DNS, une chaine de confiance s'installe. En effet, DNSSEC ne se base pas seulement sur la signature des enregistrements DNS. Il permet également de signer les clés publiques de manière hiérarchique. Ainsi, la zone mère signe toujours les clés publiques de ses zones filles, il en va ainsi jusqu'au domaine recherché.
De ce fait, lorsque le résolveur de notre FAI doit résoudre un nom, il n'a besoin que de la clé privée de la racine, ce qui lui permet de faire confiance à toutes les clés ascendantes.

La chaine de confiance DNSSEC (www.afnic.fr)
Le déploiement
DNSSEC a été adopté et est aujourd'hui en déploiement depuis presque 5 ans, les RR de la zone racine ont étés signés en Juillet 2010, ceux du .fr en Septembre 2010.
En France l'Afnic (Association française pour le nommage Internet en coopération) s'engage dans la promotion de DNSSEC :
- Elle propose notamment à ses bureaux d’enregistrement accrédités une remise de 20% sur le tarif des créations et la maintenances de noms de domaine en .fr signés par DNSSEC
De ce fait, plusieurs « registrars » proposent le déploiement DNSSEC à leurs clients (nous !) :

Avoir son propre résolveur DNSSEC ?
Une question subsiste cependant, pourquoi pas avoir son propre résolveur DNSSEC ? Après tout même si le résolveur de notre FAI de la résolution DNS, cela ne garanti pas la protection entre ce dernier et notre machine.
Pourquoi avoir son résolveur :
- Assurer son adhérence à la « chaine de confiance »
- Contourner la censure réalisée par certains résolveurs (DNS RPZ)
- On ne fait plus confiance aux DNS potentiellement fournis par DHCP (hotspots..)
A quel niveau, local ? distant ?
- Au niveau local, la « chaine de confiance » est complète car la validation DNSSEC est locale mais on perd la notion de cache partagé => accroit la charge sur la racine
- Au niveau distant, on a la possibilité de mutualiser le service et aussi de faire du partage de cache
Au final je pense que oui, il peut être intéressant d'avoir son propore résolveur. Mais que cela dépend vraiment des usages et du niveau de paranoïa de l'intéressé.
Installer son propre résolveur local
Exemple avec Unbound qui est un serveur DNS permettant de faire du DNSSEC (BIND le fait aussi)
- Dans /var/unbound/etc/unbound.conf :
server:
- interface: 127.0.0.1 auto-trust-anchor-file: "/var/lib/unbound/root.key"
- Récupération de la clé de la racine :
- unbound-anchor -a "/var/lib/unbound/root.key"
- Dans /etc/resolvconf/resolv.conf.d/head :
- nameserver 127.0.0.1
Les alternatives
Il existe des alternatives, qui n'utilisent pas le même système de sécurisation :
DNSCurve : Sécurisation du canal (contrairement a DNSSEC)
- Inutile si le serveur distant est un serveur pirate
DNSCrypt : Chiffre aussi le trafic DNS (simple)
- Outil open source
- Développé par OpenDNS