Chiffrement et hash en PHP contre l'attaque Man in the middle


précédentsommairesuivant

II. Origine de ces attaques

II-A. Présentation de l'attaque « Man in the middle »

L'attaque « Man in the middle » consiste pour le pirate à se brancher sur la ligne entre vous et le serveur, à écouter ce qui transite, puis, au bon moment, à essayer de prendre votre place.

Dans l'exemple suivant, John est le pseudonyme d'un administrateur se connectant au site, toto123 est l'identifiant de session.

Schématisation d'une attaque Man in the middle
Schématisation d'une attaque Man in the middle

Cette technique est très facile à mettre en place dans les entreprises ou les universités, car il y a souvent une seule passerelle entre internet et le reste du réseau. Cela signifie que toute donnée envoyée sur internet par un ordinateur du réseau sera susceptible d'être « entendue ». Le pire scénario se produit lorsque le matériel est un peu vieux ou que l'installation a été réalisée à moindre coût et que les boîtiers permettant la mise en réseau sont des hubs et non des switchs. Le hub, lorsqu'il reçoit un message provenant d'un ordinateur, se contente de l'amplifier et de l'envoyer à tout le monde, alors que le switch n'envoie qu'à la bonne machine. Ce qui veut dire qu'avec un logiciel comme Ethereal sur un réseau constitué de hubs (il y en a encore beaucoup), un hacker pourrait prendre la place de n'importe quel membre sur n'importe quel site ouvert depuis le réseau.

II-B. Les vols

Nous avons vu comment il est possible pour un hacker d'écouter le réseau. Mais que peut-il voler exactement ?

II-B-1. Session

Pour voler une session, il suffit de récupérer l'identifiant de session. Cet identifiant est unique et propre à une et une seule session à un instant donné. L'identifiant de session en PHP peut être transmit par deux moyens, cookie ou url.

Le passage par URL est une faille de sécurité. Imaginons ce cas de figure : Vous naviguez sur un site qui transmet l'identifiant de session par URL, par exemple un forum comme phpBB. Un visiteur (mal intentionné) que nous nommerons Mr X, poste un message avec un lien sur son site perso, avec en général beaucoup de pipo pour attirer les gens. Sur ce site, Mr X a écrit un script qui récupère la variable globale $_SERVER['HTTP_REFERER'] qui contient la dernière adresse visitée, c'est-à-dire celle du forum avec l'identifiant de session dedans. Le script de Mr X va repérer cet identifiant et Mr X pourra alors l'utiliser pour voler la session.

Que ce soit par URL ou par cookie, l'attaque du "Man in the middle" permet de récupérer l'identifiant de session. Voici ici une capture d'écran du logiciel Ethereal. Cette capture d'écran présente ce que le logiciel a enregistré dans le court intervalle de temps qu'il m'a fallu pour valider une inscription sur un forum PHPBB. On voit ici l'entête HTTP correspondant à l'envoi du cookie contenant l'identifiant de session. Le vol de cet identifiant est d'autant plus facile que le cookie est envoyé avec chaque élément de la page, images comprises.

Identifiant de session capturé grâce à Ethereal
Identifiant de session capturé grâce à Ethereal

II-B-2. Mot de passe

Le pire scénario, le vol du mot de passe. Ce vol est aussi le plus dur, car le hacker n'a souvent qu'un seul essai, lors de la phase d'identification (ou d'inscription). Dans un espace membre classique, autant lors de l'inscription que de la connexion, le mot de passe circule en clair.

Mot de passe capturé grâce à Ethereal
Mot de passe capturé grâce à Ethereal

II-B-3. Cookie

Il existe 2 types de cookie permettant l'identification : le cookie de session, tel qu'on l'a vu précédemment, ne contenant en général que l'identifiant de session, et un cookie dit « d'autologin » qui permet à un visiteur de ne pas saisir de nouveau son login et son mot de passe lors d'une visite ultérieure. Le vol peut, comme on l'a vu, se faire par l'attaque du "Man in the middle", mais peut aussi se faire par un vol physique (pour les cookies d'autologin en général). Une personne utilise votre PC, fouille dans vos cookies et copie par exemple sur une clé USB les cookies d'autologin qui l'intéressent. Elle les copie chez elle, et se connecte ensuite directement sur votre compte sur le site concerné. La seule solution pour éviter ceci est de ne pas faire de cookie d'autologin et de forcer le visiteur à se reconnecter manuellement à chaque fois.

Affichage du contenu d'un cookie sur Firefox
Affichage du contenu d'un cookie sur Firefox

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 25/01/2007 Guillaume Affringue. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.