Lorsque vous activez un VPN, les sites web devraient voir l'adresse du serveur VPN à la place de la vôtre. C'est presque toujours ce qui se passe. Il vaut pourtant la peine de le vérifier, car les navigateurs disposent d'une fonctionnalité en particulier, WebRTC, qui peut dévoiler des adresses réseau d'une manière à laquelle on ne s'attend pas.

Ce guide explique ce qu'est une adresse IP, ce qu'elle dit de vous, comment se produit une fuite WebRTC et comment tester votre propre configuration, étape par étape.

Ce que révèle votre adresse IP

Une adresse IP est le numéro qui identifie votre connexion sur Internet. Vous rencontrerez deux types d'adresses :

  • L'adresse IP publique. C'est l'adresse que voit le reste d'Internet. À la maison, elle appartient généralement à votre box ou à votre routeur et elle est attribuée par votre fournisseur d'accès. En données mobiles, elle appartient au réseau de votre opérateur.
  • L'adresse IP locale (privée). C'est l'adresse de votre appareil à l'intérieur du réseau de votre domicile ou de votre bureau, par exemple une adresse commençant par 192.168 ou par 10. Elle n'est pas joignable depuis Internet, mais elle peut tout de même servir à établir l'empreinte d'un appareil.

Votre IP publique ne donne pas à un site votre nom ni votre adresse postale, mais elle indique en général votre fournisseur d'accès et une localisation approximative, souvent une ville ou une région. Les sites peuvent s'en servir pour estimer où vous vous trouvez et, combinée aux cookies et à d'autres signaux, elle vient enrichir un profil.

Étape 1 : vérifier votre IP publique

Ouvrez notre outil Quelle est mon IP. Il affiche l'adresse IP publique depuis laquelle votre navigateur se connecte, ainsi que la localisation approximative et le propriétaire du réseau qui lui sont associés. Il indique aussi un statut simple :

  • Protégé signifie que votre trafic arrive depuis un serveur VPNRice.
  • Exposé signifie que le site voit une adresse qui n'est pas celle d'un serveur VPNRice, en général votre véritable connexion.

Faites le test deux fois : une fois avec le VPN désactivé, une fois avec le VPN activé. Notez ou retenez la première adresse. Avec le VPN activé, l'adresse et la localisation doivent changer pour celles du serveur VPN.

Si vous souhaitez obtenir des informations sur une autre adresse, par exemple une adresse trouvée dans un fichier journal, utilisez l'outil Recherche d'IP. Il affiche le pays, la région et le réseau enregistrés pour cette adresse. Les données de localisation proviennent de DB-IP et sont, par nature, approximatives.

Étape 2 : comprendre WebRTC

WebRTC est la technologie des navigateurs qui permet les appels vidéo, les discussions vocales et certains partages de fichiers réalisés directement dans une page web. Pour relier deux personnes de manière efficace, WebRTC cherche le chemin réseau le plus court entre elles. Le procédé utilisé s'appelle ICE et il est défini dans la RFC 8445.

ICE rassemble des « candidats », c'est-à-dire des adresses possibles auxquelles votre appareil peut être joint. La documentation MDN de l'interface RTCIceCandidate en énumère les principaux types :

  • Les candidats hôtes (host) sont les propres adresses de votre appareil sur ses interfaces réseau.
  • Les candidats réflexifs serveur (server reflexive) correspondent à votre adresse publique telle que la voit un serveur STUN. STUN, décrit dans la RFC 8489, est un protocole simple qui indique à un appareil l'adresse qu'il semble avoir vu de l'extérieur.
  • Les candidats relais (relay) sont des adresses situées sur un serveur relais qui transmet le trafic lorsqu'un chemin direct n'est pas possible.

Une page web peut demander au navigateur de rassembler ces candidats, et le JavaScript de cette page peut les lire. C'est là que se trouve le cœur du problème : si le navigateur inclut une adresse qui ne passe pas par votre VPN, la page peut en prendre connaissance.

À quoi ressemble une fuite WebRTC

Une fuite se produit lorsqu'un candidat WebRTC fait apparaître une adresse que vous pensiez masquée. Les cas les plus courants :

  • Votre véritable IP publique apparaît comme candidat alors que votre VPN est activé. Cela peut arriver si le navigateur envoie la requête STUN par un chemin réseau situé hors du tunnel, ou si le trafic IPv6 n'est pas pris en charge alors que l'IPv4 l'est.
  • Votre adresse IP locale est exposée. C'est moins grave, mais cela fournit tout de même des informations supplémentaires pour établir une empreinte.

L'IETF a précisé par écrit comment les navigateurs doivent se comporter. La RFC 8828 définit quatre modes de gestion des adresses IP dans WebRTC, depuis l'énumération de toutes les adresses (mode 1) jusqu'à l'obligation de faire passer tout le trafic par un proxy (mode 4). Elle indique que le mode 1 ne doit pas être utilisé sans le consentement de l'utilisateur et que, sans ce consentement, les navigateurs devraient utiliser le mode 2, qui n'expose que les adresses de la route par défaut. De nombreux navigateurs récents remplacent également les adresses locales par des noms aléatoires se terminant par « .local », de sorte que les pages voient un nom de substitution au lieu de l'adresse privée.

Concrètement, un VPN qui fonctionne correctement à l'échelle du système empêche généralement les fuites, car la route par défaut passe par le tunnel. Les problèmes viennent plutôt des configurations à tunnel partagé, des proxys limités au navigateur ou d'une prise en charge absente de l'IPv6.

Étape 3 : lancer le test de fuite WebRTC

Ouvrez notre test de fuite WebRTC. Le test s'exécute dans votre navigateur : il lui demande de rassembler des candidats ICE pendant quelques secondes et vous montre toutes les adresses trouvées. Il les compare ensuite à l'adresse publique qu'utilise votre connexion. Il ne contacte aucun serveur STUN tiers ; il n'affiche donc que les candidats hôtes (souvent masqués sous forme de noms .local). Il peut ainsi révéler l'exposition d'une adresse locale, mais il ne peut pas détecter une IP publique divulguée par une requête STUN.

Lancez-le avec votre VPN activé et interprétez les résultats ainsi :

  1. Seule l'adresse du serveur VPN apparaît, ou aucune adresse publique n'apparaît. Aucune fuite.
  2. Un nom en « .local » apparaît. C'est le navigateur qui masque votre adresse locale. Ce n'est pas une fuite.
  3. Une adresse publique qui n'est pas celle du serveur VPN apparaît. Considérez qu'il s'agit d'une exposition.
  4. Une adresse privée du type 192.168.x.x apparaît. Exposition mineure. Envisagez les réglages du navigateur décrits ci-dessous.

Comment corriger une fuite

Essayez les solutions suivantes dans l'ordre, en refaisant le test après chacune :

  • Utilisez une application VPN qui protège tout le système plutôt qu'un proxy limité au navigateur. Les extensions de navigateur qui fonctionnent comme des proxys font passer les requêtes web par un autre serveur, mais le trafic WebRTC ne respecte pas toujours les réglages de proxy. Une véritable application VPN fait passer la route par défaut dans le tunnel. Les applications VPNRice pour Android, iPhone et iPad, et Windows fonctionnent de cette façon ; les extensions Chrome et Firefox sont des proxys de navigateur qui font passer le trafic de votre navigateur par les serveurs VPNRice (elles n'ajoutent pas de chiffrement elles-mêmes ; les sites que vous ouvrez en HTTPS restent chiffrés de bout en bout).
  • Reconnectez le VPN et rechargez la page. Les candidats sont rassemblés au moment où la page les demande ; une page chargée avant la connexion du VPN peut donc afficher des résultats périmés.
  • Vérifiez l'IPv6. Si votre réseau utilise l'IPv6 et que la fuite montre une adresse IPv6, assurez-vous que votre VPN la prend en charge, ou faites le test sur un réseau sans IPv6 pour confirmer la cause.
  • Activez un kill switch. Un kill switch empêche le trafic de quitter votre appareil en dehors du tunnel. Sur Android, le kill switch de VPNRice s'appuie sur le réglage « VPN permanent » d'Android, associé au blocage des connexions sans VPN.
  • Limitez WebRTC dans le navigateur. Certains navigateurs proposent des réglages ou des stratégies qui restreignent les interfaces réseau que WebRTC peut utiliser. Les utilisateurs de Firefox peuvent modifier les options WebRTC dans about:config. Désactiver complètement WebRTC empêchera les appels vidéo dans le navigateur : gardez cette option en dernier recours.

Une liste de vérification rapide

  • Vérifiez votre IP avec le VPN désactivé, puis activé. L'adresse doit changer.
  • Recherchez le statut « Protégé » sur la page Quelle est mon IP.
  • Lancez le test de fuite WebRTC avec le VPN activé.
  • Recommencez après les mises à jour du navigateur ou lorsque vous changez de réseau.
  • Utilisez l'outil Recherche d'IP lorsque vous voulez comprendre une adresse inconnue.

Ces tests prennent moins d'une minute et vous montrent l'essentiel de ce que votre connexion laisse paraître. Les outils de VPNRice s'exécutent dans votre navigateur ou sur le propre service de VPNRice, sans traceurs ni cookies tiers.

Si vous souhaitez un VPN qui protège l'ensemble de votre appareil, et pas seulement le navigateur, téléchargez VPNRice et refaites les tests avec le VPN activé.