Comment prendre l’IP de quelqu’un?

Le 31 août 2010

Contrairement à ce qui a été dit pendant le débat sur l'Hadopi, c'est pas si facile que ça d'utiliser l'adresse IP d'un autre ordinateur. Petites explications sur comment fonctionnent les réseaux.

On entend beaucoup de bêtises, y compris dans l’hémicycle, ces temps-ci, à propos des adresses IP qui seraient de petites choses très faciles à usurper. Où est le vrai, où est le faux ?

Peut-on utiliser l’IP de quelqu’un d’autre?

La réponse est oui, mais pas sans conditions et certainement pas à l’aide d’un sabre et d’un perroquet.

Il existe trois grande familles de protocoles servant à faire voyager des données sur Internet (il y en a en réalité beaucoup plus, mais ces trois la représentent la majorité des applications)

  • ICMP, qui sert principalement aux machines elles-mêmes pour s’échanger des informations sur l’état du réseau et des autres machines (telle machine ne répond pas, tel portion du réseau réclame des paquets plus petits, …) et accessoirement permet de s’assurer qu’une machine répond un minimum.
  • UDP, qui sert principalement aux applications dites “temps réel” (la téléphonie, quelques applications de vidéo, …) et dont la particularité est de ne pas effectuer de contrôle d’intégrité de la transmission. En français, avec ce protocole, la machine qui reçoit un paquet n’a aucun moyen de savoir si un autre paquet aurait dû être reçu avant et si celui-ci s’est perdu en route.
  • TCP, qui représente l’immense majorité des usages (c’est là-dessus que voyagent le web, le mail, le FTP, les newsgroup, les vidéos Youtube, etc ..) qui, lui, dispose en interne d’un mécanisme de contrôle s’assurant que tous les paquets émis sont bien reçus et peuvent être remis dans le bon ordre à l’arrivée.

Un ordinateur peut envoyer sur le réseau un paquet avec n’importe quelle adresse IP comme source (de la même façon que n’importe qui peut envoyer un email venant  de nicolas.sarkozy@elysee.fr).

Personne, en tout cas pas derrière une connexion ADSL, ne peut en revanche recevoir des données envoyées à une IP qui n’est pas la sienne (de la même façon que vous ne pouvez pas recevoir de réponse à votre mail envoyé depuis nicolas.sarkozy@elysee.fr)

Partant de la, ICMP et UDP n’ayant aucune notion de contrôle d’intégrité, on peut envoyer à peu près n’importe quoi à n’importe qui, mais les conséquences sont généralement minimes. Sauf envoi massif pour saturer la connexion de l’ordinateur cible, le seul dégât que vous pourriez peut-être causer, c’est de rompre une communication en cours qui se relancerait d’elle même quelques instant plus tard.

Avec TCP, par contre, pour établir une connexion avec une machine distante (par exemple avec le serveur de mail de votre fournisseur) vous devez envoyer une demande de connexion (SYN) qui contiendra un numéro de séquence à respecter et à laquelle, pour simplifier, l’autre va répondre (SYN/ACK) avec un autre numéro de séquence que vous allez devoir reprendre (ACK) pour pouvoir commencer la discussion et la poursuivre. Sans avoir le numéro de séquence envoyé par le serveur (puisque vous ne pouvez pas recevoir les paquets à destination de la fausse IP que vous voulez prendre), il est strictement impossible de maintenir une connexion TCP ouverte.

Il est éventuellement imaginable d’arriver par chance à deviner ce numéro de séquence (c’était plus facile il y a quelques années quand les système choisissaient des numéros de séquence avec un algorithme plus que douteux quant à sa faculté à générer du hasard) et donc de pouvoir envoyer des données, mais c’est sans compter sur la destination réelle des réponses de la cible de votre attaque qui se rebiffera rapidement en disant que “non, je n’ai jamais demandé à établir cette connexion, ferme la !”. Tout ceci se jouant en quelques secondes, on peut valablement dire que “non, on ne peut pas prendre une IP au hasard”, qui plus est pour télécharger un film sur un réseau P2P, chose qui, d’une part, prend généralement quelques heures au bas mot, et d’autre part nécessite de pouvoir recevoir des données.

Ce qu’on peut faire

Ce qui est par contre possible de faire, c’est d’utiliser l’ordinateur de quelqu’un d’autre à son insu pour y faire passer ses propres données et, de fait, utiliser son IP. Pour cela, il faut l’avoir piraté d’une manière ou d’une autre (avec un virus envoyé par email que l’internaute à ouvert volontairement, pensant trouver des photos de sa femme, en exploitant une faille de sécurité, ou tout simplement en ayant l’occasion de s’assoir devant pour y installer discrètement un logiciel de prise en main à distance)

De même, avec un réseau wifi, on utilise l’IP du propriétaire de la connexion qui est au bout (exception faite du service Freewifi qui distribue une IP publique différente de celle de l’abonné dont on utilise la box).

Autre méthode, fortement conditionnée par le fait d’être sur un réseau de type réseau local d’entreprise, il n’est pas rare que les switchs reliant tous les ordinateurs ne soient pas configurés pour empêcher les postes de changer d’IP. Vous pouvez donc théoriquement, dans ce cas, utiliser n’importe quelle IP voisine de la vôtre (celle du collègue parti en vacances et qui a éteint son PC, deux machines avec la même adresse ne pouvant cohabiter). Même chose pour beaucoup de réseaux wifi publics couvrant les zones blanches ADSL.

Enfin, tous les services de VPN permettent, contre une obole mensuelle de l’ordre de 5 euro, de bénéficier d’une adresse IP complètement indépendante de son FAI mais vous ne la volez à personne puisqu’elle est là pour ça. Ceci dit, c’est au détriment de la vitesse et du débit de la connexion, toutes les données devant transiter par la plateforme VPN généralement située très loin et pratiquant le surbooking à outrance niveau bande passante pour être rentable.

Billet initialement publié sur Turb(l)o(g)

illustrations FlickR CC : Darren Hester, splorp

Laisser un commentaire

Derniers articles publiés