DNSSEC en détail

La communication sur Internet utilise le DNS de manière très étendue pour la recherche d'informations. DNSSEC sécurise le protocole DNS et améliore ainsi la sécurité de toutes les communications sur Internet. Nous l'expliquons plus en détail ci-dessous.

Comment le DNS (Domain Name System) fonctionne-t-il?

On peut se représenter le DNS comme une sorte d'annuaire téléphonique réparti sur le monde affectant les noms de domaine univoques au niveau mondial (switch.ch) aux adresses Internet (adresses IP) elles aussi mondialement univoques (par exemple 130.59.138.34). Les noms de domaine servent uniquement à simplifier l'écriture.

Afin que toutes les demandes n'aboutissent pas à un seul serveur, le DNS est de structure hiérarchique. L'espace de nom est partagé en se qu'on appelle des zones. Pour www.switch.ch, cela serait selon le plus haut niveau hiérarchique ("root zone") les serveurs pour la Suisse ("ch") puis les serveurs de SWITCH ("switch.ch"). Les compétences des zones sont partagées (déléguées) dans la hiérarchie.

Lorsque vous appelez le site web www.switch.ch depuis votre ordinateur, le serveur de noms de votre fournisseur d'accès interroge l'un après l'autre tous les niveaux de la hiérarchie mentionnés ci-dessus. Chaque niveau qui ne parvient pas à répondre à la question sur l'adresse de destination donne une indication du niveau inférieur suivant. Enfin, le serveur situé tout au bas de la hiérarchie peut fournir l'adresse IP du serveur de destination.

Le Domain Name System (DNS) est de structure hiérarchique. Les serveurs de noms pour ".ch" transmettent les demandes de noms de domaine se terminant par .ch (par ex. switch.ch) automatiquement à l'adresse correcte.

A quoi sert DNSSEC?

Imaginez que quelqu'un parvienne à modifier des inscriptions à l'annuaire téléphonique. Vous cherchez le numéro de SWITCH et trouvez un faux numéro. Auriez-vous la possibilité de détecter l'abus? Certainement pas. Sur Internet, un tel scénario est possible si un attaquant modifie la hiérarchie mentionnée ci-dessus. S'il parvenait par exemple à introduire des données erronées au serveur de votre fournisseur (Cache Poisoning), en appelant www.switch.ch, vous tomberiez sur un autre site web. Mieux vaut ne pas songer à ce qui pourrait se passer si le site falsifié était celui de votre banque. Ou si vous envoyiez la dernière stratégie de votre société au serveur mail falsifié d'un partenaire.

Le "Cache Poisoning" permet de modifier la hiérarchie.

Etant donné qu'Internet est utilisé actuellement à toutes les fins possibles et imaginables, de telles attaques de pirates peuvent avoir de graves conséquences. DNSSEC offre une protection de base de telles attaques - et non seulement à l'appel de sites.

DNSSEC ne peut pas protéger d'une manière générale des attaques de Phishing mais offre une protection efficace contre les attaques au DNS. Ceci est important car la plupart des attaques de Phishing peuvent être décelées et empêchées par des usagers vigilants d'Internet. Cependant, les attaques au DNS ne sont guère décelables même par des experts.

Comment fonctionne DNSSEC?

DNSSEC est basé sur les signatures cryptographiques permettant de signer les inscriptions DNS actuelles. Toute personne compétente ayant autorité pour un nom de domaine sur Internet peut protéger ses informations par DNSSEC. Toutes les informations pour lesquelles un fournisseur de services est compétent sont signées de son code privé et les signatures sont inscrites au DNS (RRSIG Record).

Un exemple avec DNSSEC
Le serveur de noms de votre fournisseur d'accès suit à nouveau la hiérarchie connue pour résoudre une question. Cette fois-ci, il peut cependant vérifier, sur la base des signatures reçues, si l'origine des réponses est juste et si une réponse a été modifiée en route. Il ne répondra qu'une fois que toutes les informations seront correctes.

Avec DNSSEC, le serveur de noms de votre fournisseur d'accès peut identifier une hiérarchie modifiée par "Cache Poisoning".

Mais comment toutes ces signatures peuvent-elles être vérifiées?

Pour établir des signatures numériques, il est généré une paire de codes. Une telle paire de codes se compose d'un code privé et d'un code public (système cryptographique asymétrique). Comme le nom le dit, la partie privée est secrète et reste chez le propriétaire. La partie publique est publiée au DNS (DNSKEY Record). Le code public permet de vérifier et de valider une signature qui a été donnée avec le code privé.

On doit donc faire confiance à un code public avant de pouvoir vérifier une signature. Etant donné qu'il n'est pas possible de faire confiance à tous les codes sur Internet, il est utilisé une hiérarchie des codes analogue à la hiérarchie DNS ("Chain of Trust"). Cela paraît un peu embrouillé à première vue mais sert uniquement à pouvoir vérifier toutes les signatures avec un seul code public.

"Chain of Trust" en détail

Une image du code public est communiquée au niveau suivant de la hiérarchie. L'instance supérieure inscrit cette image à sa zone (DS Record) et garantit l'authenticité par signature. Le code public de cette instance est à son tour communiqué à l'instance immédiatement supérieure.

Dans une "Chain of Trust", l'instance supérieure (par ex. le serveur de noms pour .ch) garantit l'authenticité des données de l'instance inférieure.