Fuites WebRTC : comment votre VPN vous trahit (guide complet et correctifs)
1. Introduction — Qu’est-ce que la fuite WebRTC et pourquoi c’est dangereux ?
Vous utilisez un VPN et pensez être invisible ? Malheureusement, certaines fonctionnalités des navigateurs (la norme WebRTC — Web Real-Time Communication) peuvent révéler votre adresse IP publique ou locale à un site Web même lorsque le VPN est actif. Ceci est particulièrement critique pour les journalistes, militants, RSSI, équipes OPSEC et toute organisation soucieuse de l’anonymat. WebRTC est une technologie standardisée pour la visioconférence et les communications temps réel, mais son mécanisme d’établissement de pair à pair (STUN/ICE) peut exposer des IPs derrière la couche VPN.
2. Comment WebRTC peut révéler votre IP
- WebRTC utilise RTCPeerConnection et contacte des serveurs STUN pour découvrir quelle adresse IP publique (ou locale) est utilisable pour une connexion directe.
- Si le navigateur peut atteindre un STUN via l’interface réseau réelle (pas via l’interface virtuelle du VPN), il publiera cette IP dans la “session description” (SDP). Un site malveillant peut lire cette SDP via JavaScript et connaître votre IP réelle.
- Ce n’est pas une “faille” ponctuelle, mais une conséquence de l’architecture WebRTC : bloquer ou mitiger la fuite est possible mais nécessite configuration.
3. Testez d’abord : comment vérifier une fuite WebRTC
Avant toute modification, reproduisez le test pour prouver l’existence d’une fuite.
Test 1 — BrowserLeaks (WebRTC Leak Test)
- Connectez-vous au VPN que vous utilisez.
- Ouvrez votre navigateur (Chrome/Firefox/Edge/Brave).
- Allez sur : https://browserleaks.com/webrtc
(copiez/collez l’URL dans la barre d’adresse et appuyez Entrée). - Lisez la section Your WebRTC IP / Remote IP : si vous voyez une adresse IPv4/IPv6 qui n’est pas l’adresse du serveur VPN, vous avez une fuite. BrowserLeaks
Test 2 — ipleak / Browser tools
- Allez sur https://ipleak.net (copier/coller).
- Notez l’IP publique et les DNS affichés. Si l’IP publique correspond à votre VPN, OK ; si les DNS listés sont ceux de votre ISP, DNS leak possible. (Voir partie DNS.)
- Test additionnel WebRTC : https://webbrowsertools.com/test-webrtc/
4. Mesures immédiates (navigateurs)
Remarque importante : bloquer WebRTC peut casser des services de visioconférence et certaines web apps. Conservez une procédure pour réactiver rapidement.
A. Google Chrome / Chromium / Brave (desktop)
Chrome n’expose pas de toggle direct. Deux approches : extension officielle WebRTC Network Limiter ou uBlock Origin option WebRTC.
Installer WebRTC Network Limiter (recommandé)
- Ouvrez Chrome.
- Cliquez sur les trois points verticaux en haut-à-droite → Paramètres.
- Dans la barre d’adresse des paramètres tapez
chrome://extensions/et appuyez Entrée. - Cliquez sur Ouvrir le Chrome Web Store (en bas à gauche si visible) ou allez directement sur : https://chrome.google.com/webstore
- Dans le champ de recherche du Chrome Web Store, tapez WebRTC Network Limiter puis Entrée.
- Cliquez sur Ajouter à Chrome → Ajouter l’extension.
- Vérifiez : dans
chrome://extensions/l’extension doit être activée. Testez ensuite sur https://browserleaks.com/webrtc.
WebRTC Network Limiter limite l’exposition des adresses locales tout en laissant WebRTC fonctionner pour la plupart des applications. ExpressVPN
Alternative : uBlock Origin (si déjà installé)
- Ouvrez le panneau d’options d’uBlock Origin (icône extension → clic droit → Options).
- Allez dans l’onglet Paramètres avancés (si présent) et activez Prevent WebRTC from leaking local IP addresses (si disponible).
- Redémarrez le navigateur et retestez.
B. Mozilla Firefox (desktop) — méthode interne (sans extension)
Firefox permet une configuration fine via about:config.
Désactiver / limiter WebRTC (pas à pas)
- Ouvrez Firefox.
- Dans la barre d’adresse tapez
about:configet validez (acceptez l’avertissement). - Dans le champ de recherche tapez
media.peerconnection.enabled. - Si la valeur est
true, double-cliquez dessus pour la passer àfalse→ cela désactive WebRTC entièrement.
Alternative moins intrusive :- Recherchez
media.peerconnection.ice.default_address_only. - Double-cliquez pour mettre la valeur à
true→ cela limite WebRTC aux adresses par défaut (empêche exposition des IP locales).
- Recherchez
- Fermez et retestez sur https://browserleaks.com/webrtc.
Avantage : pas besoin d’extensions ; Inconvénient : certains sites WebRTC peuvent ne plus fonctionner.
C. Microsoft Edge (Chromium) / Opera
Edge est basé sur Chromium. Même méthode que Chrome : installer WebRTC Network Limiter ou uBlock Origin. Pour Edge : menu → Extensions → Ouvrir le Microsoft Edge Add-ons (ou utiliser Chrome Web Store si activé).
Option expérimentale Edge : tapez edge://flags → rechercher Hide my local IP address over WebRTC connections → activer → redémarrer. Testez ensuite.
D. Safari (macOS / iOS)
Safari historique : WebRTC est moins permissif par défaut. Néanmoins :
Safari (macOS) — désactiver (si disponible)
- Ouvrez Safari → Safari (barre) → Préférences.
- Onglet Advanced → cochez Show Develop menu in menu bar.
- Dans la barre, Develop → sous WebRTC (ou Experimental Features) vérifier les réglages. Pour désactiver l’API legacy : décochez Enable Legacy WebRTC API.
- Testez ensuite. Généralement Safari ne fuit pas les IPs comme Chrome/Firefox, mais prudence lors d’acceptation de caméra/micro.
5. Mesures réseau et système (VPN, DNS, IPv6, Kill-Switch)
Les fuites WebRTC peuvent être combinées à des DNS leaks et des fuites IPv6. Voici les étapes système pour se protéger.
A. Choisir un VPN configuré pour éviter WebRTC/DNS/IPv6 leaks
Critères : DNS leak protection, killswitch, IPv6 leak protection, et préférence pour un client qui route WebRTC via l’interface VPN ou bloque ICE. Vérifiez les options dans les Paramètres de votre client VPN : activez DNS leak protection et IPv6 leak protection si présent. (Chaque fournisseur diffère ; voir docs officiels de votre service.) Multilogin+1
B. Windows — désactiver IPv6 (optionnel mais efficace)
- Ouvrez Panneau de configuration → Réseau et Internet → Centre Réseau et partage.
- Cliquez sur Modifier les paramètres de la carte (colonne gauche).
- Clic droit sur l’adaptateur réseau actif (ex. : Ethernet ou Wi-Fi) → Propriétés.
- Décochez la case Protocole Internet version 6 (TCP/IPv6).
- Cliquez OK puis redémarrez la connexion réseau.
Astuce : certains VPN supportent IPv6 ; dans ce cas, préférer la configuration du VPN plutôt que de désactiver IPv6 globalement.
C. macOS — désactiver IPv6 sur un service réseau
- Préférences Système → Réseau.
- Sélectionnez le service (Wi-Fi ou Ethernet) → Avancé → onglet TCP/IP.
- Pour Configurer IPv6, choisissez Lien-local uniquement ou Désactivé (selon version macOS). Appliquez.
- Fermez et testez.
D. Linux (systemd) — désactiver IPv6 (exemple Debian/Ubuntu)
- Ouvrez un terminal.
- Éditez
/etc/sysctl.conf:sudo nano /etc/sysctl.conf - Ajoutez les lignes :
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
- Sauvegardez et exécutez
sudo sysctl -p. - Vérifiez avec
ip aque IPv6 est désactivé.
E. DNS : forcer le DNS via le VPN
- Dans le client VPN : Paramètres → DNS → sélectionnez Use VPN DNS ou entrez manuellement
10.x.x.xsi le fournisseur l’indique. - Si votre VPN n’offre pas l’option, configurez le système pour utiliser DNS publics (ex. : Cloudflare 1.1.1.1, Google 8.8.8.8) via l’interface du VPN ou en modifiant les paramètres réseau (Panneau de configuration / Préférences Système).
- Testez sur https://ipleak.net ou https://dnsleaktest.com pour vérifier que les serveurs DNS visibles correspondent à votre VPN ou à vos choix. dmarcdkim.com+1
F. Kill-Switch : procédure générale
- Ouvrez le client VPN → Paramètres → recherchez Kill Switch ou Network Lock.
- Activez la fonction. Elle empêchera toute sortie réseau si le VPN tombe.
- Vérifiez en coupant le VPN (bouton disconnect) : si le kill-switch bloque l’accès, la navigation est coupée — c’est normal. Rée/activez pour tester.
6. Bonnes pratiques opérationnelles et trade-offs
- Testez toujours avant et après chaque modification (browserleaks, ipleak).
- Documentez quelles applications ont besoin de WebRTC (visioconf, WebRTC apps). Pour ces usages, préférez un profil navigateur dédié (ex. : profil « voip ») avec règles différentes.
- Séparer les environnements : profil A (navigation privée + WebRTC bloqué) / profil B (visioconf activé) — réduit le risque.
- Éviter les extensions non-auditées : préférez uBlock Origin, WebRTC Network Limiter, ou extensions réputées.
- Mise à jour : gardez navigateurs et clients VPN à jour (les correctifs et mitigations évoluent).
7. Exemples concrets reproduisibles (scénarios)
Scénario A — Journaliste en déplacement
- Sur machine personnelle : installez profil navigateur « private » (Chrome → icône profil → Ajouter).
- Installez WebRTC Network Limiter (voir étapes plus haut).
- Activez kill-switch dans le VPN et testez sur https://browserleaks.com/webrtc.
- Si vous devez participer à une interview par Jitsi : ouvrez un autre profil (profil « voip ») sans extension, activez la webcam uniquement pour cet onglet et fermez-le après la session.
Scénario B — RSSI validant une solution VPN entreprise
- Sur poste Windows : désactivez IPv6 si l’infrastructure ne le supporte (voir étapes Windows).
- Configurez le client VPN d’entreprise : activez DNS leak protection et Network Lock.
- Lancez tests automatisés :
curl ifconfig.me(via terminal VPN connecté) et vérifiez correspondance avec IP VPN ; exécutez navigateur avec profile de test ; visitez https://browserleaks.com/webrtc et consignez les résultats.
8. Checklist opérationnelle
- Exécuter test initial : https://browserleaks.com/webrtc
- Installer WebRTC Network Limiter / uBlock Origin (Chrome/Edge/Brave)
- Configurer
about:configpour Firefox si nécessaire (media.peerconnection.enabled=falseoumedia.peerconnection.ice.default_address_only=true) - Activer DNS leak protection dans le client VPN
- Activer Kill-Switch / Network Lock dans le client VPN
- Désactiver IPv6 au niveau OS si non supporté par le VPN
- Effectuer test final : https://ipleak.net et comparer résultats
- Documenter procédures de réversion (réactiver WebRTC) pour visioconf
Conclusion
Les fuites WebRTC sont une menace discrète mais documentée : elles peuvent annuler l’anonymat d’une session protégée par VPN si l’environnement n’est pas correctement configuré. En tant que RSSI (ou responsable sécurité) mettez en place des profils, tests automatisés et règles réseau (DNS/IPv6/Kill-Switch) pour assurer une protection robuste. Si vous souhaitez que nous réalisions un audit complet de vos postes (tests WebRTC, DNS, IPv6, configuration VPN + documentation), contactez-nous maintenant pour un diagnostic gratuit et un plan d’action adapté à votre organisation.