Journal QNAME minimization

Posté par  . Licence CC By‑SA.
Étiquettes :
15
16
mai
2015

Cher journal,

En lisant les retweets de Stéphane Bortzmeyer, je suis tombé sur une présentation lors du workshop OARC permettant d'amener un peu de vie privée dans les DNS: query name minimization. Alors, quel est le problème ? Actuellement quand on fait une requête DNS, on envoie à tout le monde le site auquel on désire accéder. Voici le fonctionnement:

      www.example.com. ? +---------------------+ 
     +------------------>| a.root-servers.net. | 
     |                   +------------+--------+
     |                                |   
     | com. in NS a.gtld-servers.net. | 
+----+-----+<-------------------------+
|          |   
| Resolver | www.example.com. ? +---------------------+
|          +------------------->| a.gtld-servers.net. |
+-------+--+<-------------------+---------------------+
     ^  |    example.com. in NS NS a.iana-servers.net.
     |  |
     |  | www.example.com. ?
     |  +---------------------->+----------------------+
     |                          |  a.iana-servers.net. |
     +--------------------------+----------------------+
         www.example.com. in A 93.184.216.34

L’inconvénient principal est la divulgation d'informations au monde entier. Ainsi, la racine DNS est au courant de toutes les requêtes qui se font (bon, avec les différents niveaux de resolver, elle ne peut pas exactement cibler l'historique de chacun, et il y a plusieurs racines) alors qu'on lui envoie des informations dont elle n'a pas besoin et c'est valable pour tous les intervenants de la chaîne. Voici ce que ça donne quand on minimise la question:

                  com. ? +---------------------+ 
     +------------------>| a.root-servers.net. | 
     |                   +------------+--------+
     |                                |   
     | com. in NS a.gtld-servers.net. | 
+----+-----+<-------------------------+
|          |   
| Resolver |     example.com. ? +---------------------+
|          +------------------->| a.gtld-servers.net. |
+-------+--+<-------------------+---------------------+
     ^  |    example.com. in NS NS a.iana-servers.net.
     |  |
     |  | www.example.com. ?
     |  +---------------------->+----------------------+
     |                          |  a.iana-servers.net. |
     +--------------------------+----------------------+
         www.example.com. in A 93.184.216.34

Un avantage aussi, c'est de pouvoir arrêter la recherche dès qu'on reçoit un NXDOMAIN et pouvoir garder cette information. Par exemple, vous consultez une page web et chargez les ressources de ces différents domaines: i.plop.example.com, v.plop.example.com et t.plop.example.com, vous recevez un NXDOMAIN lors de votre demande sur plop.example.com et vous n'avez pas besoin de faire vos différentes demandes pour savoir qu'il n'y a pas d'information. Cependant, cela amène un problème: les CDN, par exemple www.upenn.edu qui est un alias pour www.upenn.edu-dscg.edgesuite.net. Or, edu-dscg.edgesuite.net. renvoie un NXDOMAIN (la norme dit que si l'arborescence continue mais qu'il n'y a pas d'information, il faut renvoyer NODATA). Vous allez me dire qu'il suffit de continuer même si on se prend des NXDOMAIN, cependant, ça permettrait de facilement faire des attaques par déni de service. En effet, si la technique se répand et que je décide, par exemple, d'attaquer GitHub par qu'ils hébergent le code source de .Net, je n'ai qu'à injecter dans les pages une balise du genre <img src="1.2.3.4.5.6.7.8.9.github.com"> et plein d'utilisateurs vont tenter les requêtes jusqu'au bout. Il faut donc que les CDN corrigent leurs DNS, c'est déjà fait pour Cloudfare, c'est annoncé pour akamai.

Un autre problème, c'est le nombre de requêtes qui augmente. Par exemple, vous faite une requête sur plop.truc.coin.example.com (on part du principe que ce domaine existe), vous pouvez avoir une réponse directement lors de la requête sur a.iana-servers.net, soit 3 requêtes, si vous appliquez la minimisation, vous en avez 5. Je vous laisse faire le calcul pour un PTR en IPv6.

Si ça vous intéresse, un draft est publié sur le site de l'IETF.

Et pour ceux qui utilisent NetBios et donc s'en foutent du DNS, une nimage

  • # XKCD

    Posté par  . Évalué à 3.

    C’est pas cool de poster une image de XKCD sans le titre (et encore moins via un lien Imgur). Voici l’image original : Server Attention Span.

    • [^] # Re: XKCD

      Posté par  . Évalué à 5.

      Effectivement, j'avais l'image que j'ai posté, j'ai utilisé Google pour retrouvé le lien sur xkcd et j'ai copié le mauvais. Je blâme donc entièrement mon presse papier, je n'ai pas pu faire une erreur aussi grosse.

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.