Introduction

La quasi totalité des flux d'informations sur Internet utilisent le protocole TCP/IP (couches 3 et 4). Une grande partie des protocoles (POP/SMTP/FTP) utilisent d'autres protocoles de communication au mieux binaires, au pire en clair. Les protocoles encryptant leurs données sont relativement spécialisés et donc assez peu utilisés (ssh, https, pop3-ssl...) pourtant, il est extrêmement facile sur Internet pour une personne ayant accès à un périphérique de routage (serveur classique ou routeur) de voir tous les paquets circulants sur le réseau.

Par exemple, on peut facilement analyser les trames relatives à la consultation des emails (protocole POP3). Par défaut dans le protocole POP3, les mots de passe circulent en clair sur le réseau. Ainsi, il est facile d'obtenir le mot de passe du compte pop d'un utilisateur sans pour autant avoir le moindre accès au poste client ou au serveur.

Avec la commande ngrep, on voit très rapidement les problèmes de sécurité posés par ce protocole.
T 217.167.120.134:110 -> 81.249.31.222:1817 [AP]
  +OK <8182.1078671690@mail-hitomi.ecranbleu.org>..                          
#
T 81.249.31.222:1817 -> 217.167.120.134:110 [AP]
  CAPA..                                                                     
##
T 217.167.120.134:110 -> 81.249.31.222:1817 [AP]
  -ERR authorization first..                                                 
#
T 81.249.31.222:1817 -> 217.167.120.134:110 [AP]
  USER berangere@mondomaine.com..                                           
#
T 217.167.120.134:110 -> 81.249.31.222:1817 [AP]
  +OK ..                                                                     
#
T 81.249.31.222:1817 -> 217.167.120.134:110 [AP]
  PASS kangourou..                                                            
##
T 217.167.120.134:110 -> 81.249.31.222:1817 [AP]
  +OK ..                                                                     
#
T 81.249.31.222:1817 -> 217.167.120.134:110 [AP]
  STAT..                                                                     
##
T 217.167.120.134:110 -> 81.249.31.222:1817 [AP]
  +OK 0 0..                                                                  
#
T 81.249.31.222:1817 -> 217.167.120.134:110 [AP]
  QUIT..                                                                     
#
T 217.167.120.134:110 -> 81.249.31.222:1817 [AP]
  +OK ..
De plus, il est même possible de consulter le contenu des emails en sniffant le réseau. Cette opération est totalement transparente et indétectable pour le client ou le serveur.

[...]
T 217.167.120.134:110 -> 62.39.154.188:64269 [AP]
  1 2131..2 5312..3 2365..4 2615..5 1385..6 4169.....                               
#
T 62.39.154.188:64269 -> 217.167.120.134:110 [AP]
  RETR 1..                                                                          
#
T 217.167.120.134:110 -> 62.39.154.188:64269 [AP]
  +OK ..                                                                            
#
T 217.167.120.134:110 -> 62.39.154.188:64269 [A]
  Return-Path: <plop-return-1604-mondomaine.com-chrispy=mondomaine.com@mondomaine
  .com>..Delivered-To: mondomaine.com-chrispy@mondomaine.com..Received: (qmail 289
  46 invoked by uid 98); 7 Mar 2004 03:41:26 -0000..Mailing-List: contact plop-help@
  mondomaine.com; run by ezmlm..Precedence: bulk..X-No-Archive: yes..List-Post: <ma
  ilto:plop@mondomaine.com>..List-Help: <mailto:plop-help@mondomaine.com>..List-Un
  subscribe: <mailto:plop-unsubscribe@mondomaine.com>..List-Subscribe: <mailto:plop
  -subscribe@mondomaine.com>..Reply-to: plop@mondomaine.com..Delivered-To: mailing
   list plop@mondomaine.com..Received: (qmail 28938 invoked from network); 7 Mar 20
  04 03:41:24 -0000..From: Sylvestre Ledru <sylvestre@ledru.info>..To: Plop Mailing 
  Liste Mondomaine <plop@mondomaine.com>..Cc: Pierre Marot <pierre.marot@jovialyte
  am.com>..Content-Type: text/plain; charset=ISO-8859-1..Message-Id: <1078630913.143
  03.123.camel@localhost>..Mime-Version: 1.0..X-Mailer: Ximian Evolution 1.4.5 ..Dat
  e: Sun, 07 Mar 2004 04:41:54 +0100..Content-Transfer-Encoding: 8bit..Subject: [plo
  p] faites chauffer les photos....Bon..suite a cette tres sympas soir.es a l'alien 
  ce soir, j'ai mis rapido en..place le systeme de gallerie dont j'ai parl. un peu a
[...]
Ceci est le fait que le canal de communication est dit non sécurisé, c'est-à-dire que l'on a aucune garantie quant à la confidentialité du flux d'informations circulant sur le réseau. Sur le LAN d'une entreprise, un utilisateur consultant ses emails sur un serveur situé localement est à priori peu problématique mais lorsqu'il consulte ses emails à partir de chez lui sur le serveur mail de sa société, il n'a aucun moyen de controle sur les flux passant chez différents prestataires (Fournisseurs d'accès internet, backbone...). Des informations sensibles circulant par email peuvent donc être interceptées.
Le protocole POP3 est loin d'être le seul protocole pouvant être écouté de manière très simple. En effet, il est possible d'écouter une bonne partie des protocoles de cette manière : HTTP, SMTP, IMAP, DNS, Messageries instantanées (MSN, ICQ...)... Pour peu que le "voyeur" espionne l'utilisateur à partir de la passerelle que ce dernier utilise, toute l'activité Internet de l'utilisateur est connue.

Pour sécuriser ces flux, il existe plusieurs manières de le faire :

Connexions privées :
C'est la solution idéale, on reste maître de tout ce qui circule sur le canal. Les personnes ayant accès à des routeurs sur ce canal étant identifiées. Le principal (unique ?) problème de cette solution est son coût. En effet, il coute beaucoup plus cher de faire tirer une ligne spécialisée qu'utiliser des canaux existants.

Protocoles nativement cryptés :
C'est une solution efficace en général mais qui a le désavantage de laisser l'implémentation du système de cryptage/décryptage aux applications (serveurs ou clientes). En effet, si un client ou un serveur ne gère pas l'implémentation en crypté, il n'est pas possible d'utiliser le protocole crypté. Par exemple, certaines versions de Outlook ne supportent pas le POP3-SSL et donc obligent l'utilisation du POP3 classique.
Un autre point problématique est que les flux entre les deux machines restent identifiables. Les protocoles cryptés utilisent des ports identifiés. Il reste donc possible à l'attaquant de savoir à quel service le client fait appel.

Le VPN (Virtual Private Network / Réseau privé virtuel) :
Le VPN permet de relier deux réseaux distants à travers Internet. Il est ainsi possible de faire communiquer ces deux réseaux comme si ils étaient connectés directement ensemble. Dans la quasi totalité des implémentations d'un VPN, un cryptage est rajouté entre les deux connectiques qui vont initier la VPN. Ainsi, par exemple, on peut avoir deux réseaux distants d'une deux offices d'une entreprise reliées à travers un VPN.

root 2004-05-04