Le point sur le filtrage DNS

Stephane Bortzmeyer <[email protected]>
Newsgroups gmane.network.dns.french
Organization NIC France
Message-ID <[email protected]>
http://www.bortzmeyer.org/dns-filtering.html

----------------------------


À la réunion DNSEASY/SSR 
<https://www.icann.org/en/security/agenda-dns-ssr-symposium-20oct11-en.htm> 
d'octobre 2011 à Rome, une intéressante table ronde portait sur le 
filtrage du DNS. C'est l'occasion de faire le point sur cette pratique. 
La réunion ne cherchait pas à obtenir un accord unanime, ni des 
solutions magiques, mais au moint à définir et délimiter le phénomène.

Comme la réunion se tenait sous la règle de Chatham House, je ne dirai 
pas ici qui a dit quoi.

Donc, le filtrage DNS est cette pratique qui consiste à substituer aux 
réponses normales des vrais serveurs DNS des mensonges, de façon à 
empêcher un utilisateur de communiquer avec les serveurs du domaine 
filtré. Il est utilisé en entreprise (pour empêcher les employés de 
regarder Facebook, par exemple) et par les États.

Les points étudiés étaient :
* Aspects politiques, juridiques et éthiques du filtrage (mais 
rappelez-vous que la majorité des participants étaient des 
techniciens),
* Efficacité du filtrage (diminue-t-on le nombre de lecteurs de 
Copwatch 
<http://www.pcinpact.com/actu/news/66409-refere-ordonnance-copwatch-blocage.htm> 
en le filtrant ?),
* Conséquences pour DNSSEC (beaucoup d'opposants au filtrage font 
remarquer qu'il contredit directement une de nos principales techniques 
de sécurité),
* Effets techniques secondaires (par exemple sur la résilience),
* Effets non-techniques secondaires.


Sur le premier point, l'aspect politique (au sens large), l'accord 
s'est fait sur l'importance de distinguer *qui* demande le filtrage. Il 
peut y avoir :
* du filtrage auto-infligé (je bloque google-analytics.com sur mon 
résolveur car je ne veux pas laisser de trace de ma navigation chez 
Google). Le consensus est que c'est normal, de même qu'un citoyen a le 
droit de refuser de lire des livres dont les idées ne lui plaisent pas.
* du filtrage décidé par un prestataire (par exemple le FAI) « pour 
votre propre bien » (difficile de savoir si c'est le cas, très peu de 
FAI documentent leur politique).
* un filtrage décidé pour vous par votre employeur (dans un pays comme 
la France, la légalité de ce filtrage reste toujours à discuter ; mais 
il ne fait pas de doute que la pratique est répandue, voir par exemple 
comment une employée parle des problèmes avec le filtrage de sa boîte 
<http://www.numerama.com/magazine/11879-kosciusko-morizet-teste-le-filtr
age-du-net-en-avant-premiere.html>),
* un filtrage imposé par l'État, que ce dernier soit une dictature (cas 
de la Chine) ou une démocratie (de nombreuses démocraties filtrent, et 
il n'y a pas de différence technique avec ce que fait le gouvernement 
chinois).
Bien sûr, il y a des tas de zones grises. Ainsi, lorsque OpenDNS 
<http://www.bortzmeyer.org/opendns-non-merci.html> prétend que leur 
système est "opt in" et donc politiquement correct, ils oublient de 
préciser que, si l'administrateur réseaux d'une école choisit de 
configurer le relais DNS pour interroger OpenDNS, les enseignants vont 
être filtrés sans l'avoir demandé... Même chose pour les enfants, mais 
ils sont mineurs donc le problème est encore différent. À propos 
d'enfants, un participant a demandé si le cas de l'entreprise était 
analogue à celui de la famille (où les parentspeuvent décider de 
filtrer ce que peuvent voir leurs enfants) ; les employés sont-ils 
majeurs ? (En système capitaliste, la réponse est clairement non, 
l'entreprise n'est pas une démocratie.)

Le cas du filtrage par un prestataire est pour moi nettement un 
problème de violation de la neutralité du réseau 
<http://www.bortzmeyer.org/neutralite.html>. Toutefois, beaucoup de 
participants au débat ont refusé de poser le problème en ces termes car 
ce débat sur la neutralité est très chargé. Il pose pourtant les mêmes 
questions : information du client (les FAI qui filtrent, par exemple le 
port 53 <http://www.bortzmeyer.org/port53-filtre.html>, ne le 
documentent jamais), et possibilité réelle de changer (la concurrence 
est souvent insuffisante, par exemple parce qu'il n'existe pas de FAI 
alternatif, ou bien tout simplement tous les FAI se sont mis d'accord, 
comme pour les opérateurs mobiles en France qui interdisent tous la 
voix sur IP.

Certains prestataires se défendent en affirmant que ce filtrage est 
demandé (ou en tout cas accepté) par la grande majorité de leurs 
clients (comme disait Camus, « Quelque chose en leur âme aspire à la 
servitude »). Même si c'est vrai (tout le monde parle de Mme Michu, 
mais personne ne lui demande jamais son avis), l'opinion dominante 
était que cela ne change rien : si 0,1 % des clients ne veulent pas de 
filtrage, ils doivent pouvoir y arriver, par exemple par un système 
d'"opt-out" clair et gratuit. Notez, opinion personnelle, que cela 
finirait par créer un Internet à deux vitesses, un filtré pour la 
majorité des citoyens, et un libre pour les 0,1 % de "geeks" qui 
cliqueront sur l'option « "I know what I do, I understand that I may 
lose hair, be hacked and see awful things, and I accept the 
responsability" » pour désactiver le filtrage.

Un autre cas présenté comme acceptable a été celui d'un FAI qui se 
vante de fournir du filtrage, comme étant un service. Puisqu'on était à 
Rome, l'intervenant a pris comme exemple un FAI catholique affirmant 
qu'il filtrait l'accès à tout ce qui n'était pas approuvé par le 
Vatican. Le débat sur cette offre est rigolo, mais cet exemple est 
purement théorique. Comme je l'ai indiqué, les filtreurs n'annoncent 
jamais qu'ils le font, et un tel FAI n'existe pas (quoiqu'il trouverait 
peut-être des clients au fin fond des États-Unis).

Une anecdote révélatrice ici : la conférence se tenait dans les locaux 
de la Poste, qui pratique un filtrage sino-saoudien. Tout utilisateur 
doit être nommément identifié *et* l'Internet est peu accessible : 
seuls les ports 80 et 443 sont ouverts (le port 53 est filtré, donc pas 
question de contourner les résolveurs DNS officiels). Le port 443 a un 
système de DPI qui envoie des "resets" TCP dès qu'il détecte quelque 
chose qui n'est pas du TLS (par exemple du SSH). Or, quelles que soient 
leurs opinions sur la légitimité ou non du filtrage (on est dans les 
locaux de la Poste, on doit accepter leurs règles), la totalité des 
participants, au lieu d'écouter les exposés, a passé l'essentiel de la 
première matinée à mettre au point et à déployer (au besoin en créant 
des comptes pour les voisins) des systèmes de contournement. Pour les 
gens qui défendaient la légitimité du filtrage, c'était un bonne 
illustration du principe « le filtrage, c'est pour les autres ».

Le deuxième point étudié concerne l'efficacité du filtrage. S'il 
attente aux libertés, est-il au moins efficace ? (Et, question encore 
plus vicieuse, cette efficacité justifie-t-elle son coût ?) La question 
est complexe. Bien sûr, pour une minorité de "geeks", la question ne se 
pose pas. Ils trouveront toujours, et souvent assez facilement, un 
moyen de contourner le filtrage (comme l'a montré l'affaire Copwatch où 
les miroirs de secours 
<http://www.pcinpact.com/actu/news/66251-copwatch-effet-streisand-censur
e-blocage.htm> sont apparus avant même le jugement). Mais cela 
s'appliquera-t-il aux utilisateurs moins avertis, aux M. et Mme 
Toutlemonde ? Peut-être pas (sauf si quelqu'un fait un logiciel simple 
qui met en &#339;uvre les mesures d'évitement). Notez bien que le 
gouvernement répressif ne cherche pas forcément une efficacité à 100 %. 
Qu'une poignée de types dans leur garage contournent le filtre n'est 
pas forcément un problème. D'autant plus que, souvent, le gouvernement 
ne cherche pas d'efficacité du tout, il veut simplement faire du 
théâtre et donner l'impression qu'il agit.

Dans le cas où le filtrage est « auto-infligé » (par exemple parce 
qu'un utilisateur essaie de se prémunir contre la possibilité d'une 
vision accidentelle d'images qui le choqueraient), la question de 
l'efficacité ne se pose pas. Celui qui a voulu le filtrage ne va 
évidemment pas essayer de le contourner. Dans le cas où le filtrage est 
réellement mis en place pour protéger l'utilisateur (par exemple contre 
le "malware"), l'efficacité a des chances d'être assez bonne, tant que 
le filtrage n'énerve pas l'utilisateur, le motivant assez pour chercher 
un contournement. Et dans le cas d'un filtrage obligatoire par l'État ? 
Si l'État n'est pas trop méchant, l'efficacité du filtrage est faible. 
On a bien vu, selon un classique effet Streisand, que Copwatch était 
beaucoup plus lu après la plainte de Guéant qu'avant, où ce site était 
quasiment inconnu. Si l'État est prêt à cogner, les choses sont 
différentes. Si on contourne moins le filtrage en Chine qu'en France, 
c'est parce que le gouvernement chinois a d'autres moyens de persuasion 
à sa disposition. C'est d'ailleurs une leçon classique en sécurité, 
bien illustrée par un dessin de XKCD <http://xkcd.com/538/>.

Comme la grande majorité des participants était composée de 
technophiles, la question des liens entre le filtrage DNS et DNSSEC 
était inévitable. En effet, le filtrage DNS dans les résolveurs va 
invalider les signatures DNSSEC et sera donc détecté. À première vue, 
le filtrage va donc en opposition directe à la tentative de 
sécurisation du DNS qu'est DNSSEC.

En fait, le problème est plus complexe que cela. D'abord, si le 
filtrage est fait au niveau du registre (comme lors des cas des saisies 
ICE), DNSSEC ne protégera pas. Ensuite, DNSSEC ne gènera pas si le 
censeur veut uniquement bloquer l'accès : un SERVFAIL (parce que la 
validation DNSSEC aura échoué) est aussi bon pour lui qu'un NXDOMAIN 
(d'ailleurs, un des mécanismes de censure pourrait être de bloquer les 
réponses, au lieu de les remplacer par une réponse mensongère). Ce 
n'est que si le censeur voulait rediriger discrètement vers une autre 
destination que DNSSEC le gênerait. Mais il gênerait aussi 
l'utilisateur : le domaine serait inaccessible. DNSSEC permet de 
détecter la censure, pas de la contourner.

Néanmoins, DNSSEC est utile : dans beaucoup de pays, le gouvernement ne 
veut pas qu'on sache qu'il censure (ou, en tout cas, il essaie de 
rendre plus difficile la preuve) et, même s'il l'avoue, la liste des 
domaines censurés est en général secrète, ce qui permet de s'assurer 
que les citoyens ne pourront pas vérifier sa légitimité. DNSSEC permet 
d'être sûr qu'il y a bien filtrage, et on peut imaginer des logiciels 
qui utiliseront cette connaissance pour passer automatiquement à un 
plan B (un navigateur Web pourrait par exemple rereouter les requêtes 
pour ce domaine via Tor, s'il est sûr que c'est bien un problème de 
filtrage).

Et la détection qu'offre DNSSEC pourra servir aux opérateurs pour 
dégager leur responsabilité. « Vilain opérateur du .com, vous avez 
supprimé example.com ! » « Ah non, regardez les signatures DNSSEC, ce 
n'est pas nous, c'est un Homme du Milieu, sans doute l'opérateur du 
résolveur. »

À noter aussi que, si on imagine un pays dictatorial qui veut faire du 
filtrage, mais n'a pas le contrôle de tous les registres (contrairement 
au gouvernement états-unien), et choisit donc d'opérer dans les 
résolveurs, mais veut qu'on puisse quand même faire du DNSSEC, il 
existe toujours des solutions techniques (par exemple forcer les 
utilisateurs, dans ce pays, à utiliser une clé DNSSEC de la racine qui 
soit contrôlée par le gouvernement).

Quatrième point étudié pendant l'atelier, les conséquences techniques 
du filtrage. En fait, la discussion a un peu tourné court. Car, 
contrairement à un argument parfois entendu, le filtrage ne casse pas 
en soi le DNS. Il le rend simplement plus lent (traitement 
supplémentaire) et plus fragile (introduction d'un nouveau composant, 
qui peut avoir des problèmes). Bref, il peut y avoir des arguments 
techniques contre le filtrage, mais ils ne sont pas décisifs. Notons 
tout de même que certains gouvernements font preuve d'une grande 
schizophrénie en encourageant des travaux visant à améliorer la 
résilience de l'Internet, tout en prônant ou en imposant le filtrage, 
qui va certainement diminuer cette résilience.

Enfin, cinquième et dernier point de la discussion, les conséquences 
non techniques. Elles sont multiples :
* Certains utilisateurs, pour contourner le filtrage, vont utiliser des 
résolveurs DNS alternatifs comme Google Public DNS <google-dns> ou 
Telecomix <http://dns.telecomix.org/> ou comme des résolveurs ouverts 
par accident. Ces fournisseurs alternatifs ne sont pas forcément de 
confiance et leur utilisation relève parfois du « je me jette dans le 
lac pour éviter d'être mouillé par la pluie ». Certains font leur 
propre filtrage, d'autres analysent vos requêtes, d'autres ajoutent 
leurs propres TLD.
* Le filtrage peut mener au développement de systèmes de nommage et de 
résolution radicalement différents. Cela peut être une bonne chose (le 
filtrage de Napster a certainement puissamment aidé au développement de 
meilleurs algorithmes P2P). Pour l'instant, il faut bien constater 
qu'on a surtout du "vaporware <http://www.bortzmeyer.org/dns-p2p.html>" 
dans ce domaine.
* Le filtrage apporte ses propres dangers. Le plus évident, compte tenu 
de l'expérience des DNSBL, est celui de filtrage excessif. On aura 
certainement un jour des TLD entiers filtrés, volontairement (certaines 
entreprises filtrent déjà tout .ru ou tout .cn) ou par accident.


Compte-tenu de ces différents points, quels sont les scénarios 
possibles (je n'ai pas dit « souhaitables ») pour le futur de DNSSEC ? 
La discussion en a identifié trois :
* Un scénario modérement pessimiste. En raison du filtrage massif, la 
validation DNSSEC sur le poste de travail (ce que permet dnssec-trigger 
<http://www.bortzmeyer.org/dnssec-trigger.html>) deviendrait à peu près 
impossible. DNSSEC serait alors limité à protéger les résolveurs/caches 
des FAI et on ne pourrait pas créer de nouvelles applications sur 
DNSSEC (elles nécessitent en général une validation locale). Cela ne 
serait pas sa mort, mais certainement un gros échec.
* Un scénario modérement optimiste. La détection du filtrage par DNSSEC 
marche (la question des indicateurs à présenter à l'utilisateur pour 
que cela soit clair reste ouverte), le filtrage, ainsi repéré, fait 
l'objet d'articles dans Libération ou le Canard enchaîné, ou de 
protestations au Parlement, le filtrage continue mais reste limité, 
grâce à la vigilance citoyenne. Des mécanismes de contournement 
automatiques apparaissent (passer par un relais si DNSSEC montre qu'il 
y a censure).
* Un scénario optimiste. La démocratie l'emporte, la liberté est 
rétablie, le filtrage stoppe, et tout est signé avec DNSSEC. On a la 
sécurité fournie par les signatures. Cela serait très bien, mais c'est 
hélas peu vraisemblable.


Ah, et puis une dernière chose, qui a fait l'objet d'amusantes 
discussions. DNSSEC ne permet pas de distinguer facilement du filtrage 
d'une attaque. Si la recherche de l'adresse de www.example.com fait un 
SERVFAIL ("Server Failure", indication par le résolveur DNS qu'il y 
avait un problème), comment discerner si example.com a été bloqué par 
le résolveur (sur demande de l'ARJEL ou d'un autre censeur) ou bien si 
un attaquant essaie de détourner le trafic vers son propre site ?
 
Une des suggestions était donc, en cas de censure, de renvoyer un 
enregistrement spécial, qui indique qu'il y a eu censure. Le résolveur 
pourrait interroger sans validation (avec dig, c'est l'option +cd) et 
voir ainsi ce qui s'est passé, pour annoncer à l'utilisateur qu'il a 
été filtré pour son bien.

J'avais suggéré, en cas de requête de type A (adresse IPv4), de 
renvoyer la valeur spéciale 1.9.8.4. Mais, bon, le préfixe englobant 
est déjà alloué .
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.