Comment connaître l’adresse IP de quelqu’un, caché derrière un VPN ?

Daniel Roesler, un chercheur en sécurité informatique travaillant à Oakland, a publié hier une démo surprenante (31 janvier 2015). Si vous utilisez un VPN (hors CISCO) sur Windows et que vous surfez avec Chrome ou Firefox, votre IP réelle peut être découverte par n’importe quel site web sans même que vous ne le sachiez.

EDIT : la faille pourrait fonctionner sur les OS GNU/Linux. A confirmer, je n’ai pas encore pu essayer personnellement.

A l’heure où j’écris ces lignes, la faille est toujours opérationnelle. Si elle ne l’est plus au moment où vous lisez cet article, les explications que j’y donne reste valables et vous intéresseront si vous avez envie de comprendre un peu mieux le fonctionnement d’Internet.

Avant de détailler la faille, il est important de comprendre le principe du protocole STUN (RFC 5389). C’est assez simple vous allez voir.

A quoi sert un routeur ?

Vous utilisez sûrement une box Internet chez vous, pour vous connecter à Internet (une bbox, une livebox, etc…). Dans le jargon informatique, une box s’appelle un routeur. Pour faire simple, on peut dire qu’un routeur sert à connecter un réseau informatique à un autre réseau informatique.

Dans votre cas, votre box vous sert à connecter votre petit réseau local (c’est à dire tous les appareils de votre maison : téléphone, ordi, tablette, …) à un gros réseau qui s’appelle… Internet !

Venons en au fait ! Votre box, comme tout routeur qui se doit, a une mission importante : offrir à votre réseau local une adresse IP pour être identifiable sur Internet. C’est entre autre pour cela que vous payez votre fournisseur d’accès tous les mois une trentaine d’euros.

Réseau local et Internet

Votre maison ne peut pas être branchée à Internet si elle ne dispose pas d’une adresse IP publique. Ça serait comme rouler sur l’autoroute sans plaque d’immatriculation en quelques sortes.

Pour résumer en 2 mots : un routeur (votre box) sert à connecter votre maison à Internet. Cette box a une mission bien particulière : rendre votre petit réseau local visible sur le grand Internet, en lui attribuant une adresse IP.

A quoi sert le protocole STUN ?

Maintenant, passons à la faille à proprement dite.

Sans rentrer dans le fonctionnement d’un réseau informatique, vous devez savoir qu’un ordinateur à l’intérieur de votre maison n’est pas censé connaître l’IP publique qui l’identifiera sur Internet. Il n’en a pas besoin en fait…. enfin, presque pas besoin.

Je dis “presque”, parce que certaines applications comme la “voix sur IP (voIP)”, c’est à dire téléphoner en utilisant Internet, obligent votre ordinateur à connaître son adresse IP Internet. Le pauvre, il ne la connait pas et n’a aucun moyen de la connaître (même si ça peut paraître bizarre).

Pour palier à ce problème, les informaticiens ont inventé le serveur STUN. Il s’agit d’un système qui permet à un ordinateur de connaître sa propre adresse IP Internet (et pas mal d’autres trucs sympas) simplement en allant la demander à un serveur situé à l’autre bout de la planète. C’est le job des serveurs STUN. Ouf, heureusement qu’ils sont là.

La faille STUN / Web-RTC

Vous commencez à voir le lien avec l’histoire des VPN ? La majorité des navigateurs Internet utilisent cette technologie des serveurs STUN lorsqu’ils en ont besoin (encore une fois, dans des situations assez particulières).

Cependant, les versions Windows de Firefox et Chrome ont un gros problème : elles permettent à n’importe quel site web de récupérer l’adresse IP réelles des internautes, par l’intermédiaire d’une technologie que l’on appelle WebRTC, couplée au protocole STUN dont je vous ai parlé.

Pour vous le prouver, il suffit d’aller sur cette page que j’ai hébergée ici. Si vous utilisez un VPN en visitant cette page ET que vous utilisez Chrome/Firefox sur Windows, vous verrez l’adresse IP que vous tentez de cacher. Si vous la voyez, cela veut dire je peux aussi l’enregistrer de mon côté pour vous identifier… pas top !

Comment vous protéger de la faille ?

Pour être tranquille, vous devez bloquer l’API WebRTC sur votre navigateur. Il s’agit du module de développement qui sert à interroger le serveur STUN qui communique votre IP réelle. Bloquer WebRTC peut rendre indisponible certaines applications qui l’utilisent.

  • Pour vous protéger sur Chrome / Chromium / Opera, il suffit d’installer l’extension suivante qui désactive WebRTC : WebRTC Block.
  • Pour vous protéger sur Firefox, tapez about:config dans votre barre d’adresse du navigateur. Cherchez le paramètre “media.peerconnection.enabled”, faîtes un clic droit dessus puis “inverser” (pour le passer à false).
  • Pour vous protéger sur Internet Explorer et Safari : ces deux navigateurs n’utilisent pas WebRTC à l’origine de la faille. Vous n’avez donc rien à faire.
  • Pour vous protéger sur TOR Browser : par défaut, TOR Browser désactive WebRTC. Là encore, aucun problème à signaler.

Pour en savoir plus

Si les notions de réseau que j’ai vulgarisées vous intéressent, voici quelques articles intéressants pour en savoir plus :