L'acronyme DNS est les initiales de Domain Name System (Domain Name System). Ce système de nomenclature hiérarchique des réseaux, en plus d'être distribué, fait office de traducteur pour les noms de domaine.
Esystème l DNS C'est l'une des technologies fondamentales dans le fonctionnement d'Internet tel que nous le connaissons actuellement. Grâce à ce système, nous pouvons accéder à l'adresse IP du serveur auquel nous voulons accéder via Internet. Il agit comme s'il s'agissait d'un annuaire téléphonique ou d'une plate-forme dédiée à la traduction des noms d'un site Web en une adresse IP permettant de localiser le serveur Web. Cela permet aux utilisateurs d'accéder rapidement et facilement aux services hébergés sur des serveurs connectés à Internet. Les DNS sont également connus sous le nom de serveur de noms ou serveur de noms.
Lorsque nous nous connectons à Internet, notre ISP (Fournisseur d'accès Internet) nous attribue un Adresse IP. Cette adresse peut être une série de 12 chiffres (dans le cas de IPv4) ou 32 caractères au format hexadécimal (dans le cas de IPv6). Dans les deux cas, un ordinateur peut facilement gérer ces formats d'adresses. En revanche, pour une personne, ce ne serait pas une tâche facile.
Il est très difficile de mémoriser, par exemple, une adresse comme 172.217.3.78, qui est l'adresse Google IPv4. Ou l'adresse 91.121.161.210, qui correspond à l'adresse Bit4Me Academy IPv2. Les choses se compliquent encore plus lorsque, en tant qu'utilisateurs, nous accédons à divers sites Web et services. Et cela devient un défi lorsque les adresses de ces services sont dynamique (Ils changent au fil des jours).
Face à cette situation, le meilleur moyen est de disposer d'une base de données des noms de domaine auxquels elle se rapporte avec une adresse IP. Les noms de domaine sont plus faciles à retenir et nous facilitent la navigation sur Internet. Par exemple, écrire Wikipedia.com n'est pas la même chose qu'écrire 208.80.154.224.
Comment fonctionne le DNS
L'infrastructure d'exploitation de ce type de serveur est divisée en une série de couches avec des fonctions bien définies. Ces couches sont responsables de l'enregistrement, de la demande et de la résolution des noms de domaine.
Ces niveaux de fonctionnement sont les suivants:
Couche n ° 1: clients ou résolveurs
Il s'agit de la première couche de fonctionnement DNS. C'est le plus proche des ordinateurs des utilisateurs. La fonction principale des clients DNS est d'effectuer des requêtes (requêtes) pour résoudre les domaines en serveurs DNS. Autrement dit, ils sont chargés de demander les informations afin que nous puissions naviguer sur Internet en résolvant les domaines.
Tout système d'exploitation ayant la capacité de se connecter à Internet, a des fonctions de ces clients. Ceci afin de faciliter la navigation sur le Web. Les tâches de ces clients sont:
- Interrogez le serveur DNS pour les domaines auxquels l'utilisateur accède.
- Interprétez les réponses du serveur DNS sur les domaines demandés.
- Renvoyez les informations au programme qui a fait la demande (navigateurs Web, Programmes P2P, entre autres).
En général, ces clients appliquent certaines techniques telles que la mise en cache DNS, pour permettre une navigation beaucoup plus rapide. Ceci grâce au fait que les requêtes correctement répondues par le serveur DNS sont stockées localement. De cette manière, la résolution de noms prend beaucoup moins de temps que l'envoi d'informations à un serveur distant et l'attente d'une réponse de celui-ci.
Les autres fonctionnalités affichées par ces clients sont DNS sur TLS (DNS sur TLS) Y DNSSEC (Extensions de sécurité DNS). Les deux sont des couches de sécurité qui dépendent d'une opération en deux parties (le serveur et le client doivent prendre en charge les options). Cela évite que le trafic DNS soit analysé ou corrompu par des tiers malveillants. Dans le cas de DNS-over-TLS, il crypte la connexion du client avec les serveurs distants. Tandis que DNSSEC, sécurise cryptographiquement les réponses des serveurs DNS, grâce à un système de cryptage asymétrique.
Une autre fonction des clients est de servir de mémoire cache pour le DNS. Avec cette fonctionnalité, les clients cherchent à résoudre les adresses de serveur plus rapidement et à offrir aux utilisateurs une expérience de navigation plus fluide.
Couche n ° 2: serveurs
Les serveurs DNS sont des ordinateurs qui Ils répondent aux demandes et résolvent les noms de domaine via un système arborescent. Ces serveurs ont une base de données avec les noms de domaine et leur adresse IP enregistrée correspondante. De cette manière, à chaque fois qu'un client DNS fait une requête (requête), le serveur la reçoit, recherche le domaine en question dans sa base de données et envoie une réponse. Cette réponse est l'adresse IP du domaine auprès duquel le client a demandé des informations. Grâce à cette opération, nous pouvons naviguer en toute sécurité sur Internet en tapant des noms simples dans nos navigateurs.
Généralement, ces serveurs sont connectés à Internet en utilisant des adresses IP statiques (elles ne changent jamais). Ces adresses IP sont celles qui sont normalement configurées automatiquement lorsque nous nous connectons à Internet via notre FAI. Cependant, nous pouvons également les changer en adresses d'autres serveurs IP de notre choix. Les adresses IP 8.8.8.8 et 8.8.4.4 en sont un exemple. Les deux adresses correspondent au DNS du service Google DNS. Il est également possible d'utiliser les adresses 1.1.1.1 et 1.0.0.1 de Cloudflare DNS , ce dernier avec prise en charge de DNSSEC et DNS-over-TLS. D'autre part, il est également important de noter qu'il existe des serveurs DNS publics et privés.
Dans ce cas, nous pouvons voir que les options de sécurité doivent être fournies côté serveur pour les avoir. Il est inutile d'avoir un client DNS avec le support DNSSEC, si le serveur ne propose pas de support pour celui-ci. Ce manque de fonctionnalités n'est qu'une des nombreuses failles du modèle client-serveur. Un modèle centralisé qui se prête à des actions telles que l'espionnage, le phishing ou la censure.
Les serveurs DNS sont généralement construits par un logiciel très simple, ils ne disposent donc pas d'un panneau de contrôle graphique. Ceci afin de créer un logiciel résistant, avec très peu de consommation et qui supporte un grand nombre de requêtes par seconde.
Couche # 3: Zones d'autorité
En raison de la structure arborescente sur laquelle le système DNS a été conçu, il pourrait être subdivisé. Chacune de ces divisions est appelée zones d'autorité. Une zone d'autorité est une base de données complète pour un sous-arbre qui fait partie de l'arborescence racine du système DNS.
Chaque zone est placée sous une autorité et peut déléguer la gestion d'une partie de l'arbre. La source de l'arborescence DNS contient la zone racine qui contient les délégations pour les TLD (domaine de premier niveau). Chaque TLD constituerait à son tour une zone DNS, tout comme les domaines de second niveau, etc. Chacune de ces zones peut être placée sous une autorité différente. Ces serveurs ou groupes d'entre eux sont ceux qui, par exemple, gèrent la résolution de noms de sous-domaines tels que .es ou .org. En bref, ce sont ces zones qui délimitent les types d'enregistrements et de domaines d'un serveur DNS.
Importance du DNS dans l'infrastructure Internet
À ce stade, nous pouvons dire que l'utilité et l'importance du DNS sont incontestables. Grâce à l'infrastructure DNS, nous pouvons profiter d'Internet et de ses services. Faciliter l'accès des utilisateurs aux plates-formes est la clé de leur surpeuplement, et à ce stade, DNS a parfaitement respecté cette prémisse. Le fait que nous n'ayons qu'à taper un nom de domaine (par exemple bit2me.com) et à accéder au site est très pertinent. Surtout lorsque l'option initiale est de taper une chaîne de nombres ou des caractères hexadécimaux assez cryptiques.
De plus, l'ouverture et la distribution du système permettent à Internet de se développer continuellement. Par exemple, une entreprise peut créer un serveur DNS qui peut être utilisé pour résoudre ses ressources internes. Mais en même temps, il est capable de résoudre (ou non) les ressources externes de cette même entreprise (la sienne ou non). Cette flexibilité est unique et est l'une des raisons de la croissance rapide et continue du réseau.
Cependant, malgré son importance, le système centralisé et faisant autorité a posé de graves problèmes. Par exemple, la manipulation des enregistrements DNS est la forme la plus courante de censure dans le monde. Les gouvernements du monde entier l'appliquent pour empêcher l'accès à certains sites Web ou services à partir d'un certain territoire. Face à cette situation, on voit pourquoi il est également important d'avoir des options décentralisées qui évitent ce type d'action. Non seulement pour accorder la liberté, mais aussi pour offrir plus de transparence et un accès plus universel.
Décentralisé ou distribué?
Nous disons généralement que le DNS est 'centralisé'car il a un composant client-serveur centralisé. Il a également un point central où il peut échouer. Ce point faible se situe dans la gestion de sa structure racinaire, réalisée par IANA/L'ICANN.
D'autre part, le DNS est aussi un système distribué puisqu'il s'agit d'une multitude d'ordinateurs à travers le monde. C'est pourquoi, comme la plupart des réseaux, le DNS est un système distribué.
Comment la blockchain peut-elle aider à les améliorer?
Technologie blockchain Il a montré de grandes capacités à transformer différents scénarios dans le monde d'aujourd'hui. Et précisément l'un de ces scénarios est la technologie derrière le DNS. La structure centralisée, basée sur l'autorité et cryptographiquement faible du système actuel s'est avérée insuffisante. La facilité d'effectuer des attaques de déni de services c'est effrayant. Mais ce n'est pas la seule chose qui puisse être faite. Le fait, par exemple, que normalement les demandes de nos équipes se font en texte clair et sans utilisation du la cryptographie, est déjà préoccupant. Toute personne ayant des connaissances peut espionner ce que nous faisons avec nos équipements (ordinateurs ou smartphones). En fait, ils peuvent rediriger notre navigation vers des sites avec la possibilité de voler nos données sans s'en rendre compte jusqu'à ce qu'il soit trop tard. Face à cette situation, la blockchain se présente comme un moyen de résoudre définitivement ces problèmes.
Un service DNS sur la blockchain serait cryptographiquement sécurisé, décentralisé, sans autorité, résistant aux attaques, immuable et non censuré. C'est de loin mieux que ce que nous avons actuellement avec le service DNS actuel. Un bon exemple de ce type de système peut être vu dans Namecoin, une blockchain dédiée à devenir un système DNS fonctionnant sur la technologie blockchain.
Dans cet esprit, il est compréhensible de dire que la technologie blockchain peut aider à améliorer la technologie DNS. Améliorations de la sécurité, de la confidentialité et de la non-censure par des groupes puissants.
Avantages et inconvénients
Avantages
- Le système est facile à mettre en œuvre et à mettre à l'échelle. La capacité de créer des répliques, d'équilibrer les charges du réseau et d'être tolérant aux pannes a fait du DNS un pilier fondamental d'Internet.
- Il nécessite peu de puissance de calcul. Recevoir et répondre aux clients DNS n'est pas un travail coûteux en calcul. Pour cette raison, la configuration matérielle requise pour établir des services DNS massifs est faible.
- L'impact sur la navigation est minime. Normalement, un service DNS bien configuré prend moins d'une seconde pour répondre. De cette manière, l'impact sur le temps d'établissement de la connexion entre l'utilisateur et la machine finale est réduit au minimum.
- Il offre un service qui «stabilise» l'accès aux services sur Internet. De nombreux serveurs sur Internet proposent leurs services en utilisant des adresses IP dynamiques. Cela signifie que leurs adresses IP changent en quelques heures ou quelques jours. Cependant, malgré cela, le service peut mettre à jour les enregistrements IP d'un domaine. Grâce à cela, le nom de domaine pointera vers la nouvelle adresse IP et nous pourrons continuer à y accéder en utilisant la même.
Inconvénients
- Son système centralisé le rend particulièrement vulnérable. Un acteur malveillant, par exemple, peut intercepter les communications entre le client et le serveur et les altérer. Avec cela, il parvient à rediriger le client (utilisateur) vers où il le souhaite, en pouvant voler des données.
- Le système envoie par défaut les informations en texte brut sans cryptage. Lorsque DNS est né, le souci de sécurité était minime et l'utilisation du cryptage était réservée. Pour cette raison, DNS est un protocole qui envoie et reçoit des informations en texte brut. N'importe qui peut intercepter la communication et savoir que nous demandons (en tant que clients) et que le serveur nous répond.
- Il n'est pas décentralisé et sa sécurité cryptographique est complexe à mettre en œuvre. Cela signifie, par exemple, que le système ne résiste pas aux attaques par déni de service. De plus, sa capacité de protection est complexe et cela empêche son utilisation de se généraliser. C'est la raison principale pour laquelle DNS-over-TLS et DNSSEC ne sont pas largement utilisés.