\documentclass{beamer}
%\documentclass[ignorenonframetext,handout]{beamer}
%\usepackage{pgfpages}
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]

\usetheme{JuanLesPins}
\usepackage[french]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{bortzmeyer-utils}

\title{Domain Name System}
\author{Stéphane Bortzmeyer\\\texttt{stephane+cnam@bortzmeyer.org}}
\date{CNAM, 11 mai 2017}

%\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} 
% \setlength{\parskip}{15pt} 
\setlength{\parskip}{15pt plus 10pt minus 10pt} 
%\setbeamersize{text margin left=0.2cm,text margin right=1.8cm}

\begin{document}

\maketitle

\expandafter\def\expandafter\insertshorttitle\expandafter{%
       \insertshorttitle\hfill%
       \insertframenumber\,/\,\inserttotalframenumber}

\begin{frame}
  \titlepage
\end{frame}

\AtBeginSection[]
{
\begin{frame}
    \frametitle{Plan du tutoriel}
    \tableofcontents[currentsection]
\end{frame}
}

\section{Les noms de domaine}

\begin{frame}
  \frametitle{Généralités}
  \begin{itemize}
   \item Des noms uniques et mémorisables,
     \item Un vecteur d'identité, % Pensez à amazon.com, dont le nom est un nom de domaine. Un NDD n'est pas purement un truc technique.
  \item Un nommage arborescent : racine, puis TLD puis domaine de deuxième niveau, de troisième niveau et ainsi de suite,
  \item Le nombre de composants dans un nom est quelconque (2, 3, 4…)
  \end{itemize}
\end{frame}

  \begin{frame}[fragile]
  \frametitle{Les noms}
  \begin{itemize}
  \item<2->Exemples de noms de domaines : \url{wiki.a-brest.net}, \url{www.phy.cam.ac.uk},
    \url{www.potamochère.fr}, \url{gmail.com},
    \url{www.st-cyr.terre.defense.gouv.fr}, \url{re}, \url{_sipfederationtls._tcp.en-marche.fr},
    \url{fr.wikipedia.org}, \url{mamot.fr}\ldots
   \item<3->\url{nca.x.gsi.gov.uk} a cinq composants. Le nom le plus
     général, le \emph{TLD} 
    (\foreign{Top-Level Domain}, ici \url{uk}) est à la fin.
  \end{itemize}
\end{frame}

  \begin{frame}
  \frametitle{L'arbre du DNS}
  \includegraphics[scale=0.3]{arbre.eps}
\end{frame}

  \begin{frame}
   \frametitle{Délégation} 
   \begin{block}
     {Des noms peuvent être \emph{délégués} et on change alors
    d'organisme responsable. Par exemple \url{uk.com} est délégué
    depuis \url{com} et délègue à son tour.}
     {Rien dans le nom
    n'indique où est la frontière de délégation : il faut utiliser le
    DNS.}
   \end{block}
   \end{frame}

\section{Le protocole DNS}

\begin{frame}
  \frametitle{Nommage et protocole}
  \begin{itemize}
    \item Les \emph{noms de domaine} : des identificateurs
     \item Le \emph{DNS} : un protocole réseau pour résoudre ces noms en données
    \end{itemize}
     Le DNS n'est qu'une des techniques possibles. Les noms de domaine
     lui survivront sans doute.
 \end{frame}

\begin{frame}
  \frametitle{Un peu de technique}
  \begin{itemize}
  \item<2->Les machines sont identifiées par une \emph{adresse} comme
    \computer{2001:4b98:dc2:45:216:3eff:fe4b:8c5b},
   \item<3->L'adresse dépend de votre connexion, de votre FAI, vous en
     changez parfois,
  \end{itemize}
\end{frame}

\begin{frame}
    \frametitle{Le DNS}
  DNS = \foreign{Domain Name System}
  \begin{itemize}
  \item<2->Les adresses IP ne sont pas stables (et ont d'autres
    limites),
   \item<3->On utilise donc plutôt des \emph{noms} qui, eux, sont
     stables,
    \item<4->Le DNS est une base de données qui associe à ces noms des
      informations (comme les adresses IP),
     \item<5->C'est une technologie d'\emph{infrastructure} comme
       l'eau ou l'électricité : tant qu'elle marche, personne ne la
       voit.\only<5->{ Le DNS reste donc peu connu et peu discuté.}
  \end{itemize}
\end{frame}


\begin{frame}
  \frametitle{La résolution DNS}  
  \begin{block}
    {Résolution : demander aux serveurs DNS les informations associées
      à un nom de domaine (par exemple les adresses IP)}
    {Il y a les serveurs \emph{résolveurs} (typiquement fournis par le
      FAI) et les serveurs \emph{faisant autorité} (ceux des
      titulaires de noms ou d'un hébergeur DNS).}
  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Vocabulaire important}
  \begin{itemize}
     \item \emph{Résolveur} (ou serveur récursif) : serveur DNS qui ne connait rien mais pose des questions aux serveurs faisant autorité et mémorise les réponses. Chez le FAI, ou sur le réseau local ou chez Google.
     \item \emph{Serveur faisant autorité} : serveur DNS qui connait le contenu d'un domaine. Exemple : les serveurs de l'AFNIC qui connaissent ce qu'il y a dans \url{.fr} et peuvent répondre. Ou les serveurs de \computer{lacantine.org} (chez Bearstech)
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Résolution de noms, ou le protocole DNS en action}
  \includegraphics[scale=0.41]{resolution.eps}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Avec le client DNS dig}
\begin{info}
% dig AAAA www.bortzmeyer.org
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11397
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1
...
;; ANSWER SECTION:
www.bortzmeyer.org.  10791  IN  AAAA  2605:4500:2:245b::42
...
;; Query time: 2937 msec
;; SERVER: 192.168.10.110#53(192.168.10.110)
;; WHEN: Wed Aug 14 17:46:47 2013
;; MSG SIZE  rcvd: 164
\end{info}
\end{frame}

\begin{frame}
  \frametitle{Types de données}
  \begin{itemize}
  \item AAAA : adresses IP
  \item NS : serveurs de noms faisant autorité
  \item SOA : \foreign{Start Of Authority}, diverses méta-données sur
    la zone, dont un numéro de série, versionnant la zone  
  \item A : adresses de l'ancien protocole IP (IPv4)
  \item SRV : serveurs du domaine pour une application donnée (par
    exemple XMPP)
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Avec le client check-soa}
  \begin{info}
% check-soa -i mr
censvrns0001.ird.fr.
        91.203.32.147: OK: 2017050701 (14 ms)
ns.univ-nkc.mr.
        82.151.64.1: OK: 2017050701 (149 ms)
ns1.nic.mr.
        41.188.65.193: OK: 2017050701 (104 ms)
ns3.nic.fr.
        192.134.0.49: OK: 2017050701 (6 ms)
        2001:660:3006:1::1:1: OK: 2017050701 (6 ms)    
  \end{info}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Les champs d'une requête DNS}
  Vus par tshark
  \begin{info}
User Datagram Protocol, Src Port: 38590 (38590), Dst Port: domain (53)
Domain Name System (query)
    Transaction ID: 0xcc27
    Flags: 0x0100 Standard query
        0... .... .... .... = Response: Message is a query
        .000 0... .... .... = Opcode: Standard query (0)
        .... ..0. .... .... = Truncated: Message is not truncated
        .... ...1 .... .... = Recursion desired: Do query recursively
        .... .... .0.. .... = Z: reserved (0)
        .... .... ...0 .... = Non-authenticated data: Unacceptable
    Questions: 1
    Answer RRs: 0
    Authority RRs: 0
    Additional RRs: 0
    Queries
        www.cnam.fr: type AAAA, class IN
            Name: www.cnam.fr
            Type: AAAA (IPv6 Address) (28)
\end{info}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Les champs d'une réponse DNS}
  \begin{info}
% dig AAAA mamot.fr           

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17124
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; ANSWER SECTION:
mamot.fr.               86400 IN AAAA 2a00:99a0:0:1000::7

;; AUTHORITY SECTION:
mamot.fr.               86400 IN NS secondary.heberge.info.
mamot.fr.               86400 IN NS primary.heberge.info.

;; Query time: 215 msec
;; SERVER: ::1#53(::1)
;; WHEN: Thu May 11 06:17:27 UTC 2017
;; MSG SIZE  rcvd: 123    
  \end{info}
\end{frame}

\begin{frame}
  \frametitle{Dans la réponse}
  \begin{itemize}
  \item Le code de retour (\foreign{status}) : NOERROR, NXDOMAIN,
    SERVFAIL
  \item Les \foreign{flags}
  \item Plusieurs sections, dont une pour la réponse
  \item Dans les enregistrements (RR, \foreign{Resource Record}), notez
    le TTL (\foreign{Time To Live}).
  \end{itemize}
\end{frame}

\section{Opérationnel}

\begin{frame}[fragile]
  \frametitle{Les problèmes}
\begin{info}
%  check-soa -i bf
censvrns0001.ird.fr.
        91.203.32.147: OK: 2015092800 (2 ms)
nahouri.onatel.bf.
        206.82.130.196: OK: 2015092800 (130 ms)
nahouri1.onatel.bf.
        206.82.130.203: ERROR: read udp 206.82.130.203:53: i/o timeout
nahouri2.onatel.bf.
        206.82.130.204: ERROR: read udp 206.82.130.204:53: i/o timeout
ns1.as6453.net.
        66.198.145.55: OK: 2015092800 (27 ms)
        2001:5a0:d00:ffff::42c6:9137: OK: 2015092800 (118 ms)
ns2.as6453.net.
        66.198.145.99: OK: 2015092800 (26 ms)
        2001:5a0:d00:ffff::42c6:9163: OK: 2015092800 (211 ms)    
\end{info}
\end{frame}

\begin{frame}
  \frametitle{Exemple de surveillance continue}
    \includegraphics[scale=0.31]{mon-domaine.png}

    \url{https://atlas.ripe.net/domainmon/}
\end{frame}

\begin{frame}
  \frametitle{Robustesse}
  \begin{itemize}
  \item<2->Exemple du tremblement de terre à Haïti en 2010 :
  \item<3->Le domaine \url{.ht} était sur six serveurs dont deux à
    Port-au-Prince,
  \item<4->Évidemment, les serveurs en Haïti ont stoppé,
   \item<5->Les serveurs extérieurs ont continué, \url{.ht} n'a jamais
     stoppé,
   \item<6->En se concertant, les gérants des serveurs extérieurs ont
     pu prolonger le service (aucun contact avec les gérants
     haïtiens).
    \item<7->Leçons : la coopération marche mieux que les règles et
      les processus. 
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Mesures depuis plusieurs points}
  \begin{itemize}
  \item<2-> Le résultat peut dépendre d'où on est (problème de
    routage, censure nationale…)
  \item<3-> Il faut donc mesurer depuis plusieurs points
  \item<4-> Les sondes RIPE Atlas sont de petits boitiers que les
    volontaires installent chez eux et qui effectuent des mesures actives
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Autre exemple de panne}
  Panne DNS de \dns{impots.gouv.fr} en Avril 2016
  (serveurs accessibles depuis certains réseaux seulement)
  \begin{info}
% atlas-resolve -r 500 -c FR impots.gouv.fr
[ERROR: SERVFAIL] : 177 occurrences
[145.242.11.48] : 213 occurrences
[TIMEOUT(S)] : 107 occurrences
Test #3645793 done at 2016-04-05T10:01:16Z
  \end{info}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Panne Cedexis le 10 mai}
  \begin{info}
% check-soa -i cedexis.net            
flipa.cedexis.net.
   68.232.43.4: ERROR: read udp 10.10.86.133:53036->68.232.43.4:53: i/o timeout
flipd.cedexis.net.
   69.28.180.4: OK: 1494424929 (4 ms)
flipg.cedexis.net.
   204.48.34.10: ERROR: read udp 10.10.86.133:59627->204.48.34.10:53: i/o timeout
flipm.cedexis.net.
   204.48.34.10: ERROR: read udp 10.10.86.133:35249->204.48.34.10:53: i/o timeout

% atlas-resolve -c FR -r 100 www.sudouest.fr 
[195.154.181.181] : 10 occurrences 
[ERROR: SERVFAIL] : 50 occurrences 
[TIMEOUT(S)] : 33 occurrences 
[37.187.142.180] : 5 occurrences 
[62.210.93.5] : 2 occurrences 
Test #8681136 done at 2017-05-10T13:23:15Z
\end{info}
\end{frame}

\section{Configurer les serveurs}

  \begin{frame}
    \frametitle{Quels logiciels utiliser et comment les configurer ?}
    \begin{itemize}
    \item<2->Certains logiciels font à la fois résolveur et serveur
      faisant autorité (mauvaise idée),
    \item<3->Résolveur : Unbound, Knot Resolver (kres), PowerDNS
      Recursor, BIND
     \item<4->Serveur faisant autorité : NSD, Knot, BIND 
    \end{itemize}
   \end{frame}

   \begin{frame}
     \frametitle{BIND}
     \begin{itemize}
       \item Sans doute le serveur DNS le plus répandu (mais pas le
         meilleur, de loin),
       \item Peut faire serveur faisant autorité \emph{ou} résolveur.
     \end{itemize}
   \end {frame}


\begin{frame}[fragile]
     \frametitle{Configuration de BIND en résolveur simple}
\begin{info}
acl me {
                2001:db8:43::/48;
};
options {
        recursion yes;
        allow-recursion   { me; };
        allow-query-cache { me; };
        allow-query { me; };
};
\end{info}
\end{frame}

\begin{frame}[fragile]
     \frametitle{Configuration de BIND en serveur faisant autorité}
     Pour le TLD \url{.example}
\begin{info}
options {
        recursion no;
};
zone "example" {
        type master;
        file "example";
};
\end{info}
   
Et le fichier \computer{example} contient les données.
\end{frame}

\begin{frame}[fragile]
     \frametitle{Les données (« fichier de zone »)}
\begin{info}
@       IN      SOA     ns1.nic root@nic (
                2013071800              ; Serial
                7200            ; Refresh
                1800            ; Retry
                2419200         ; Expire
                600 )   ; Negative Cache TTL

@       IN      NS      ns1.nic.example.
        IN      NS      ns1.pch.net.

www     IN    AAAA   2001:db8::bad:dcaf
\end{info}
\end{frame}

\begin{frame}[fragile]
     \frametitle{Configuration NSD}
        Serveur faisant autorité pour plusieurs gros TLD (et la racine)
\begin{info}
zone:         
        name: "example"
        zonefile: "example"
\end{info}
\end{frame}
   

\begin{frame}[fragile]
     \frametitle{Configuration Unbound}
        Résolveur
\begin{info}
server:
  interface: ::0
  interface: 0.0.0.0
  access-control: 2001:db8:43::/48 allow
\end{info}
\end{frame}

\section{Avitaillement}

\begin{frame}
\frametitle{L'industrie des noms de domaine}  
\begin{itemize}
\item<1->Il y a au moins deux acteurs, le \emph{titulaire}
  (\foreign{registrant}) du nom et le \emph{registre}
  (\foreign{registry}).
\item<2->Dans certains cas, l'enregistrement ne se fait pas en direct
  mais via un troisième acteur, le \emph{bureau d'enregistrement}
  (BE, \foreign{registrar}). C'est le système RRR
  (\foreign{registry-registrar-registrant}). Par exemple Gandi, OVH…
\item<3->Les serveurs faisant autorité pour le nom sont parfois gérés par le titulaire,
  parfois par le BE, parfois par un hébergeur DNS.
\end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Interroger les bases sociales}
  \begin{itemize}
  \item<2->Protocole whois: interrogation des bases des registres et
    BE
  \item<3->Registres et BE fournissent également souvent une interface
    Web 
  \item<4->Les bons clients whois trouvent automatiquement le serveur
    (pas trivial)
  \item<5->Rappel : les bases sont purement déclaratives et leur
    valeur varie...
  \item<6->whois remplacé dans le futur ? Par RDAP ?
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Démo whois}
  \begin{info}
% whois cecyf.fr
...
%% This is the AFNIC Whois server.
...
status:      ACTIVE
holder-c:    C30672-FRNIC
...
nic-hdl:     C30672-FRNIC
type:        ORGANIZATION
address:     C/ centre de recherches de l'Eogn
address:     49, rue de Babylone
  \end{info}
\end{frame}

\section{Gouvernance}

\begin{frame}
  \frametitle{Les acteurs}
  \begin{itemize}
  \item<2->Qui gère toutes ces machines, les achète, les remplace,
    paie les techniciens ?
   \item<3->Rappel : il n'y a pas de président de l'Internet, en
     charge de s'assurer que tout est fait.
   \item<4->Il y a donc \emph{des tas} d'acteurs :
     \begin{itemize}
     \item<5->Registres de noms de domaines,
     \item<6->Gérants de résolveurs DNS\only<6>{ (FAI, votre service
       informatique, GAFA\ldots)}
     \item<7->Hébergeurs DNS (OVH, Gandi, Linode\ldots)
     \item<8->BE (Bureaux d'Enregistrement, \foreign{registrars})
     \end{itemize}
     \only<9->{Il est fréquent qu'un acteur ait plusieurs rôles.}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Les acteurs, suite}
  \begin{itemize}
  \item<2->Qui décide, qui organise, qui établit les normes techniques ?
  \item<3->Ce n'est pas toujours clair. (Et c'est une très bonne
    chose.)
  \item<4->Règles d'enregistrement dans un domaine : le registre du
    domaine. \only<4>{Pour la racine, c'est l'ICANN (mais pas toute seule).}
   \item<5->Politique du résolveur (« DNS menteur », qui fausse les
     réponses) : le gérant du résolveur, la justice locale, la loi
     locale.
   \item<6->Normes techniques : l'IETF, via ses normes (notamment les
     documents nommés RFC).  
  \end{itemize}
\end{frame}


\begin{frame}
  \frametitle{Étude de cas : qui décide de la racine unique ?}
  \begin{itemize}
  \item<2->Il faut une racine unique du DNS\only<2>{, sinon, un nom
    pourrait signifier des choses différentes - RFC 2826}
  \item<3->Mais qui décide de laquelle ?
   \item<4->Le gérant du résolveur DNS choisit la racine qu'il
     interroge
   \item<5->Il peut en changer (« racine alternative »)
   \item<6->En pratique, presque tout le monde utilise la même :
     intérêt commun\only<7>{, même des gouvernements chinois et russes}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Organisation de la coopération}
  Pas de chef ne veut pas dire pas d'ordre ! L'an-archie n'est pas la jungle.
  \begin{itemize}
  \item<2->Du plus informel (administrateurs système qui se parlent en
    IRC),
   \item<3->Au plus formel (organisations professionnelles comme
     DNS-OARC),
   \item<4->En passant par diverses formules ad-hoc (liste de
     diffusion dns-fr, groupe de travail dnsop ou dns-privacy à
     l'IETF, forum ServerFault\ldots).
    \item<5->Beaucoup d'échanges d'informations. \foreign{Share what
      you know, learn what you don't.}
  \end{itemize}
\end{frame}

\section{Sécurité}

\begin{frame}
\frametitle{SécuritéS}
Il n'y a pas \emph{la} sécurité. Il y a \emph{plusieurs} services de
sécurité, parfois contradictoires, entre autres :
\begin{enumerate}
\item La disponibilité (le service fonctionne)
\item L'intégrité (le service n'a pas été modifié subrepticement)
\item La confidentialité (le service ne laisse pas fuir des
  informations)
  % Non-répudiation, si on y tient
\end{enumerate}
Disponibilité et intégrité s'entendent souvent mal.
\end{frame}

\begin{frame}
  \frametitle{Au secours, je suis attaqué par les cyberguerriers !}
  \begin{itemize}
  \item<2->Les attaques par déni de service\only<2>{ (DoS = \foreign{Denial of
      Service})} sont une plaie de l'Internet
  \item<3->« Tout écosystème réel a des parasites » (Cory Doctorow)
  \item<4->Le DNS en est aussi victime\only<4>{ (voire est utilisé
    pour ces attaques)}
  \item<5->La défense : redondance, réactivité, coopération, créativité
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Attaque contre la racine de juin 2016, vue par DNSmon}
  \includegraphics[scale=0.32]{attaque-racine-juin-2016.jpg}
  \url{https://atlas.ripe.net/dnsmon/}
\end{frame}

\begin{frame}
  \frametitle{La censure, et comment la contourner}
  \begin{itemize}
  \item<2->En France, plusieurs sources de censure frappent le DNS :
    ARJEL, ministère de l'Intérieur\only<2>{ (la Main Rouge)},
    tribunaux\ldots
   \item<3->Le mécanisme ? Les résolveurs DNS mentent pour les noms
     censurés,
   \item<4->Seuls les gros FAI français le font, les réseaux locaux, les petits FAI ou les
     étrangers ignorent cette règle,
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Exemple de censure en France, vu par les sondes Atlas}
  \begin{info}
% atlas-resolve --country FR  -r 500   thepiratebay.se
Measurement #2420872 for thepiratebay.se/A uses 500 probes
[141.101.118.194 141.101.118.195] : 239 occurrences     
[ERROR: NXDOMAIN] : 21 occurrences 
[146.112.61.106] : 2 occurrences 
[ERROR: SERVFAIL] : 31 occurrences 
[127.0.0.1] : 184 occurrences 
Test done at 2015-09-16T07:43:43Z        
  \end{info}
\end{frame}

\begin{frame}
  \frametitle{Détournement de nom de domaine}
  (\foreign{Hijacking}) : prendre le contrôle d'un nom par
  \begin{itemize}
  \item<2-> Ingéniérie sociale
  \item<3-> Craquage de mot de passe
  \item<4-> Procédures (par exemple de transfert) insuffisamment sécurisées 
  \end{itemize}
\end{frame}

% TODO expliquer le passive DNS

\begin{frame}[fragile]
  \frametitle{Analyse d'un détournement, a posteriori, avec DNSDB}
\begin{info}
NORMALEMENT
;; bailiwick: fr.
;;
count: 116142
;; first seen: 2012-11-26 10:28:11 -0000
;; last seen: 2016-09-01 13:04:31 -0000
meteofrance.fr. IN NS vivaldi.meteo.fr.
meteofrance.fr. IN NS cadillac.meteo.fr.

PENDANT LE DÉTOURNEMENT
;; bailiwick: fr.
;;
count: 57
;; first seen: 2016-05-23 22:33:49 -0000
;; last seen: 2016-05-24 08:00:57 -0000
meteofrance.fr. IN NS ns1.hostinger.fr.
meteofrance.fr. IN NS ns2.hostinger.fr.
meteofrance.fr. IN NS ns3.hostinger.fr.
meteofrance.fr. IN NS ns4.hostinger.fr.    
\end{info}
\end{frame}

\begin{frame}
  \frametitle{Vie privée}
  \begin{itemize}
  \item<2-> Sans le savoir, vous envoyez des requêtes DNS à plein
    d'acteurs
  \item<3-> Et elles sont en clair, donc écoutables
  \item<4-> La NSA a un programme d'espionnage du DNS (MoreCowBell)
    mais elle n'est pas la seule
  \item<5-> Projet « \foreign{DNS privacy} » à l'IETF, solution en deux
    approches
  \item<6->1) Minimiser les données (ne plus envoyer le nom complet
    dans la requête)
  \item<7->2) Chiffrer (DNS sur TLS)  
  \end{itemize}
  \end{frame}

\begin{frame}
  \frametitle{Quel résolveur ?}
  \begin{itemize}
  \item<2->Contre la censure et les pannes, passer à un autre
    résolveur ? Google ? Cisco ? 
  \item<3->Risques pour la vie privée
  \item<4->Pas d'authentification : parlez-vous vraiment à Google ?
  \end{itemize}
\end{frame}

% TODO expliquer empoisonnement

\begin{frame}
  \frametitle{DNSSEC}
  \begin{itemize}
  \item<1->On peut \emph{empoisonner} la mémoire d'un résolveur, en
    répondant avant le vrai serveur faisant autorité,  
  \item<2->DNSSEC signe cryptographiquement les enregistrements DNS,
    pour détecter toute modification,
  \item<3->Si le menteur transforme le code en NXDOMAIN, pas trop de
    changement (SERVFAIL au lieu de NXDOMAIN, le déni de service
    fonctionne),
  \item<4->Permet d'empêcher les détournements,
  \item<5->En supposant qu'on valide en aval du résolveur menteur\ldots  
  \end{itemize}
\end{frame}


\section{Alternatives}

\begin{frame}
  \frametitle{« Nous vous rappellons qu'il existe d'autres possibilités »}
    Mais pas de miracles : les alternatives ont aussi leurs inconvénients
\begin{itemize}
  \item Identificateurs fondés sur le contenu comme les magnets de BitTorrent
  \item Identificateurs fondés sur la cryptographie (BitMessage,
    \url{.onion}, Namecoin - chaîne de blocs, GNUnet)
 \end{itemize}
\end{frame}


\section{Conclusion}

\begin{frame}
  \frametitle{Avenir}
  \begin{itemize}
  \item<2-> Les noms de domaine ne sont pas qu'une solution
    technique : c'est aussi un vecteur d'identité
  \item<3-> Cela ne durera pas forcément toujours. Tout le monde sur
    Facebook ?
  \item<4-> Mais la base installée est énorme
   \item<5-> Le DNS peut être remplacé, même si on garde les noms de
     domaine
   \item<6-> Mais là aussi, la base installée est énorme  
  \end{itemize}

\end{frame}


\end{document}
