Table des matières de l'article :
Comprendre la communication en temps réel sur Internet
Ces dernières années, le nombre d'applications nécessitant une communication en temps réel a connu une croissance exponentielle. Les plateformes de visioconférence, les outils de collaboration à distance, les services VoIP, les jeux en ligne, les systèmes de surveillance, les objets connectés et même les applications de télémédecine nécessitent tous la capacité de transmettre de l'audio, de la vidéo et des données en temps réel, avec une latence minimale et une fiabilité élevée.
Cependant, établir une communication directe entre deux appareils via Internet est loin d'être simple, notamment en raison de la NAT (traduction d'adresses réseau) et des pare-feu qui protègent les réseaux privés. C'est là qu'interviennent deux protocoles fondamentaux : STUN et TURN.
Le problème de traversée NAT
Pour comprendre l’utilité des protocoles STUN et TURN, il est essentiel d’analyser d’abord le principal obstacle qui entrave les communications pair à pair sur l’Internet moderne : le franchissement du NAT , ou le dépassement des barrières imposées par le NAT (Network Address Translation).
Qu'est-ce que NAT et pourquoi est-il utilisé ?
La technologie NAT est largement utilisée dans les routeurs et les passerelles réseau pour permettre à plusieurs appareils d'un réseau local (LAN) de partager une seule adresse IP publique. Concrètement, chaque appareil connecté au réseau domestique ou professionnel possède une adresse IP privée (par exemple, 192.168.1.x, 10.0.0.x), tandis que le routeur effectue la traduction d'adresses pour présenter une seule adresse IP publique à Internet.
Cette opération est essentielle pour deux raisons principales :
-
Économies d'adresses IPv4 : Les adresses IPv4 disponibles sont limitées, et la NAT permet de les réutiliser en interne.
-
Sécurité : Les appareils situés derrière un NAT ne sont pas directement accessibles depuis Internet, ce qui réduit l'exposition aux attaques externes.
Cependant, cette barrière même qui protège les appareils pose un problème de taille : l’absence d’accessibilité directe . Du point de vue d’un client externe, un appareil situé derrière un NAT ne possède pas d’identité publique unique, et le routeur ne sait pas vers quel hôte rediriger les requêtes entrantes, à moins qu’elles ne soient précédées d’une connexion sortante (comme dans le cas d’une requête HTTP).
Pourquoi est-ce un problème dans les communications peer-to-peer ?
Cette limitation est particulièrement problématique pour les applications qui reposent sur des connexions pair-à-pair (P2P), c'est-à-dire des connexions directes entre deux appareils, sans passer par des serveurs intermédiaires. Exemples typiques :
-
Services VoIP (Voix sur IP), tels que les téléphones SIP ou IP
-
Plateformes de visioconférence
-
Applications WebRTC comme Google Meet, Jitsi, Discord, etc.
-
Logiciel de bureau à distance
-
Jeux multijoueurs avec logique P2P
-
Appareils IoT et domestiques intelligents qui doivent envoyer ou recevoir des commandes en temps réel
Dans ces cas, les deux parties doivent pouvoir communiquer et, par conséquent, connaître leurs adresses IP publiques et leurs ports de communication respectifs. Cependant, si les deux appareils se trouvent derrière des NAT différents (ce qui est très fréquent de nos jours), une connexion directe devient impossible sans un mécanisme permettant de contourner cet obstacle.
Les complexités des différents types de NAT
Pour compliquer encore les choses, tous les NAT ne se comportent pas de la même manière. Il existe différents types de NAT, chacun présentant des caractéristiques et des niveaux de restriction différents :
-
NAT à cône complet : Une fois la correspondance établie entre l’adresse IP/le port interne et public, n’importe quel hôte peut envoyer des paquets à cette adresse publique, qui seront ensuite transmis au client interne. Il s’agit du mode le plus permissif.
-
NAT à cône restreint : seuls les hôtes externes ayant reçu des paquets du client peuvent lui envoyer des données.
-
NAT à cône restreint par port : comme le précédent, mais la restriction est également appliquée au port distant.
-
NAT symétrique : crée une nouvelle correspondance pour chaque connexion sortante vers un hôte distant. C’est la méthode la plus restrictive et le principal obstacle aux communications P2P.
Les applications doivent tenir compte de ces variables et s'adapter de manière dynamique. Cependant, sans outils de support comme STUN et TURN, la communication directe est souvent impossible.
L'obstacle supplémentaire des pare-feu
Pour compliquer les choses, les pare-feu , tant au niveau client qu'au niveau de l'entreprise, entrent également en jeu. Un pare-feu peut bloquer les connexions entrantes ou sortantes sur des ports spécifiques, empêchant ainsi le trafic pair à pair. Certains pare-feu sont configurés pour bloquer tout le trafic UDP, le protocole privilégié pour les communications en temps réel, ce qui rend la stabilité de la connexion encore plus difficile à garantir.
La nécessité de « découvrir » son identité publique
Pour que deux appareils puissent établir une connexion directe, ils doivent connaître leur identité sur Internet. Autrement dit, un appareil doit connaître son adresse IP publique et le port sur lequel le routeur a configuré ses communications. Or, ni les navigateurs ni les systèmes d'exploitation ne proposent nativement de méthode pour obtenir ces informations.
D'où la nécessité d'outils et de protocoles permettant d'obtenir ce type d'informations et de faciliter la communication entre pairs. D'où l'importance du protocole STUN (pour découvrir l'identité publique) et, dans les cas plus complexes, du protocole TURN (pour transmettre des données via un serveur tiers).
STUN : le premier pas vers la connexion directe
Qu'est-ce que STUN ?
STUN ( Session Traversal Utilities for NAT ) est un protocole léger et simple permettant à un périphérique de déterminer son adresse IP publique et la nature du NAT qui le protège. Décrit dans la RFC 5389 , STUN est conçu pour permettre aux applications de savoir comment elles sont perçues depuis l'extérieur de leur réseau.
Comment fonctionne STUN ?
Lorsqu'un client souhaite établir une connexion avec un autre pair, il envoie une requête STUN à un serveur STUN public . Ce serveur répond en fournissant l'adresse IP et le port d'où provient la requête, ce qui permet d'identifier publiquement le client. Ces informations peuvent ensuite être partagées avec l'autre pair, dans l'espoir d'établir une connexion directe entre les deux.
Le protocole STUN n'établit pas la connexion lui-même, mais constitue un outil de découverte qui contribue à préparer le terrain pour les négociations ultérieures entre pairs.
Limites STUN
Bien que STUN soit extrêmement utile, il n'est pas toujours suffisant. Certains types de NAT (notamment le NAT symétrique ) et les pare-feu particulièrement restrictifs empêchent toute connexion directe. Dans ces cas, la communication pair à pair échoue et un mécanisme de secours est nécessaire : c'est là qu'intervient TURN.
TURN : le canal sécurisé pour toutes les éventualités
Qu'est-ce que TURN ?
TURN ( Traversal Using Relays around NAT ) est un protocole permettant à un client d'envoyer et de recevoir des données via un serveur relais situé sur Internet. Défini par la RFC 5766 , TURN représente l'évolution du protocole STUN et offre une solution fiable quelles que soient les conditions réseau.
En termes simples, lorsqu'une connexion directe entre homologues est impossible, TURN agit comme intermédiaire : il reçoit les paquets d'un homologue et les retransmet à l'autre. Cela garantit une communication transparente, même si les deux appareils sont protégés par des NAT complexes ou des pare-feu restrictifs.
Comment fonctionne TURN ?
Le client contacte le serveur TURN et demande l'attribution d'une ressource (une paire adresse IP/port). Une fois cette ressource attribuée, le client peut utiliser ce point de terminaison public pour recevoir des paquets d'autres pairs. Lorsqu'un pair envoie un paquet à cette adresse, le serveur TURN le transmet au client, faisant office de relais.
Contrairement à STUN, TURN consomme davantage de ressources réseau car tout le trafic transite par le serveur TURN. Cela engendre une latence accrue et une consommation de bande passante importante, raison pour laquelle TURN n'est utilisé qu'en dernier recours, lorsque STUN échoue.
STUN et TURN dans le contexte WebRTC
WebRTC (Web Real-Time Communication) est une technologie permettant aux navigateurs de communiquer en temps réel via la vidéo, l'audio et les données. Elle est utilisée par des services tels que Google Meet, Zoom, Jitsi, Discord et bien d'autres. WebRTC intègre nativement les protocoles STUN et TURN dans son architecture de connexion.
Lors de la négociation entre deux pairs (la phase de « signalisation »), WebRTC utilise un processus appelé ICE (Interactive Connectivity Establishment) qui teste différentes connexions « candidates » entre les pairs :
-
Candidats hôtes : connexions directes sur le réseau local.
-
Candidats réflexifs du serveur : connexions obtenues via STUN.
-
Candidats relais : connexions via serveurs TURN.
L'algorithme ICE sélectionne dynamiquement le chemin le plus efficace. WebRTC n'utilise TURN que si les deux premières options échouent.
Coturn : la norme de facto pour les serveurs STUN/TURN open source
Lorsqu'on parle d'implémentations pratiques de STUN/TURN, il est impossible de ne pas mentionner coturn , le projet open source le plus répandu et le plus pris en charge dans ce domaine.
Qu'est-ce que coturn ?
Coturn est un serveur TURN/STUN conforme aux normes IETF, écrit en C et activement maintenu sur GitHub. Il prend en charge STUN et TURN, ainsi que des fonctionnalités avancées telles que :
-
Authentification basée sur le nom d'utilisateur/mot de passe
-
Prise en charge de TLS/DTLS
-
Proxy IPv4 ↔ IPv6
-
Prise en charge des connexions TCP et UDP
-
Intégration avec des systèmes d'authentification externes
Coturn est utilisé dans de nombreux projets professionnels, à la fois dans des environnements auto-hébergés et dans des infrastructures cloud, et constitue souvent le backend des capacités de communication en temps réel à l'échelle mondiale.
Pourquoi choisir coturn ?
(I.e. Fiabilité
Coturn est un projet open source mature , utilisé depuis des années en production, notamment pour les grands systèmes VoIP, les plateformes de visioconférence, les jeux multijoueurs et les outils de collaboration en temps réel. Sa stabilité opérationnelle a été rigoureusement testée dans des environnements à fort trafic et sur des connexions Internet instables. Grâce à un cycle de développement actif et à une communauté compétente, les bugs importants sont rapidement corrigés. Compatible avec un large éventail de clients, il ne souffre pas des instabilités souvent rencontrées avec certaines solutions alternatives.
🌐 Compatibilité
Coturn est entièrement conforme aux spécifications de l'IETF (RFC 5389, RFC 5766, RFC 5780, RFC 6062, RFC 6156) , garantissant une interopérabilité optimale avec les bibliothèques et clients WebRTC, SIP et VoIP. Il s'intègre ainsi facilement dans des environnements hétérogènes, sans nécessiter de solutions de contournement ni de personnalisations. Il prend en charge les protocoles STUN et TURN , ainsi que des fonctionnalités avancées telles que TURN sur TLS, STUN avec authentification longue durée et l'allocation TCP.
🚀 Évolutivité
Coturn est conçu pour gérer les charges importantes : grâce à son architecture multithread et à une utilisation efficace des ressources système, il peut prendre en charge des centaines, voire des milliers de connexions simultanées . Il peut être déployé derrière un équilibreur de charge ou configuré pour fonctionner en cluster, ce qui le rend adapté aussi bien aux petits projets qu’aux solutions d’entreprise à grande échelle . La possibilité d’intégrer des systèmes de journalisation et de surveillance (par exemple, via syslog ou prometheus-exporter) permet d’en assurer le contrôle même dans les environnements critiques.
(I.e. sécurité
La sécurité est un aspect fondamental de coturn : la plateforme prend en charge l’authentification à long terme , le protocole TLS/DTLS pour le chiffrement des flux, les restrictions d’adresse IP , les filtres pour prévenir les abus de serveur (par exemple, le proxy non autorisé) et peut être configurée pour fonctionner uniquement dans des environnements restreints ou derrière des VPN. De plus, des restrictions précises peuvent être activées afin d’empêcher toute utilisation abusive par des tiers, réduisant ainsi le risque d’abus de relais ou d’attaques par déni de service (DoS).
Pour toutes ces raisons, coturn est le choix recommandé pour toute personne souhaitant mettre en œuvre une solution professionnelle de traversée NAT.
Pour toutes ces raisons, coturn reste le choix idéal pour ceux qui recherchent une solution professionnelle permettant de contourner les limitations imposées par le NAT et les pare-feu, notamment dans les contextes WebRTC et VoIP. Gratuit, hautement configurable et stable même en cas de forte charge, il bénéficie du soutien d'une communauté technique compétente. Que vous développiez une application de visioconférence, un système de messagerie ou une plateforme multijoueur, coturn constitue une base solide pour vos projets.
Scénarios d'utilisation dans le monde réel
Voyons quelques exemples concrets où STUN et TURN sont fondamentaux :
1. Vidéoconférence d'entreprise
Une plateforme de visioconférence doit garantir que deux utilisateurs, même derrière des pare-feu d'entreprise différents, puissent communiquer de manière fluide. STUN tentera d'établir une connexion directe, mais en cas d'échec, TURN assurera la communication via un relais.
2. Assistance à distance ou application de bureau à distance
Des outils comme AnyDesk, TeamViewer ou les services d'assistance informatique doivent pouvoir établir une connexion même sur des réseaux restreints. Le recours à TURN permet un accès à distance même dans les cas les plus complexes.
3. Jeux vidéo multijoueurs peer-to-peer
De nombreux jeux en ligne utilisent la logique pair-à-pair pour réduire la charge des serveurs centraux. Avec STUN, les clients peuvent découvrir leur adresse IP publique et tenter des connexions directes. Si cela n'est pas possible, TURN assure la connexion.
4. IoT et appareils intelligents
Les appareils tels que les caméras IP, les interphones intelligents ou les capteurs intelligents doivent communiquer en temps réel avec les applications mobiles. STUN et TURN permettent cette communication même lorsque les appareils sont derrière un NAT.
Considérations de sécurité
L'utilisation des protocoles STUN et, surtout, TURN comporte des risques et des implications en matière de sécurité qu'il ne faut pas sous-estimer, notamment en production ou dans des environnements exposés publiquement sur Internet. TURN, en particulier, sert de relais pour le trafic entre deux pairs , exposant ainsi votre infrastructure à des risques d'exploitation si elle n'est pas correctement protégée.
⚠️ TURN et risque d'abus (DDoS, relais non autorisé)
Étant donné qu'un serveur TURN peut acheminer le trafic vers et depuis des pairs distants , il peut être utilisé comme pont pour :
-
Attaques DDoS par réflexion , où le trafic est acheminé via TURN pour masquer l'origine de l'attaque.
-
Abus de bande passante par des clients malveillants utilisant le relais pour contourner les restrictions géographiques ou les pare-feu.
-
Exfiltration de données ou communications non autorisées.
Sans authentification stricte , toute personne connaissant l'adresse IP du serveur peut tenter de l'utiliser comme relais gratuit.
✅ Authentification et gestion des accès
Pour prévenir les abus, il est essentiel que les serveurs TURN soient protégés par un système d'authentification robuste . TURN prend en charge nativement l'authentification :
-
À long terme : avec des identifiants statiques préconfigurés.
-
Dynamique (API REST TURN) : Génère des jetons temporaires signés avec HMAC et une date d'expiration, particulièrement utiles pour les environnements WebRTC.
L'utilisation de l'API REST TURN est désormais fortement recommandée , car elle vous permet de limiter temporairement et précisément l'accès aux clients légitimes.
De plus, vous pouvez :
-
Limiter l'accès à des plages d'adresses IP spécifiques.
-
Définir les délais d'expiration et les limites de bande passante par session.
-
Intégrez des systèmes de limitation de débit pour vous protéger contre les connexions massives ou automatisées.
-
Activer la journalisation complète des attributions TURN, utile pour détecter les comportements suspects ou enquêter sur les anomalies.
🔒 Utilisation de TLS et DTLS
La protection des communications doit être assurée non seulement au niveau applicatif, mais aussi au niveau du transport. Coturn prend en charge :
-
TURN over TLS (TCP+TLS)
-
TURN over DTLS (UDP+DTLS)
-
STUN sur TLS/DTLS
Ces modes chiffrent les flux de signalisation et multimédias, empêchant ainsi l'interception par des tiers et améliorant la confidentialité et l'intégrité des communications pair à pair.
L'utilisation de TLS/DTLS est particulièrement recommandée dans les contextes sensibles, où les pairs sont situés sur des réseaux non fiables (par exemple, Wi-Fi public, environnements d'entreprise mixtes, sessions WebRTC).
🛡️ Une configuration sécurisée avec coturn
Coturn fournit tous les outils nécessaires à la mise en œuvre d'une infrastructure TURN sécurisée :
-
Authentification dynamique avec expiration
-
Filtrage IP et contrôle d'allocation
-
Prise en charge TLS et DTLS
-
Journalisation détaillée pour l'audit et le diagnostic
-
Possibilité d'exécuter le service avec des privilèges limités
Une configuration soignée et éclairée contribue à atténuer les risques et à protéger l'infrastructure contre les abus et les attaques externes. Il est essentiel d'intégrer la sécurité dès la conception, et non comme une mesure corrective a posteriori.
L’adoption des protocoles STUN et TURN est essentielle pour garantir une communication directe dans les scénarios de traversée NAT. Cependant, il ne s’agit pas d’une solution « prête à l’emploi » : sa mise en œuvre doit s’accompagner de mesures de sécurité techniques, organisationnelles et procédurales.
Coturn , correctement configuré, représente une solution fiable, sûre et hautement contrôlable , idéale pour les environnements où la sécurité n'est pas une option mais une exigence.
conclusion
Les protocoles STUN et TURN sont des composants clés pour les communications en temps réel sur Internet. STUN permet la découverte d'adresses publiques et la négociation directe de connexions, tandis que TURN offre une solution de secours, même dans les scénarios les plus complexes.
Sans ces protocoles, des technologies comme WebRTC ne fonctionneraient tout simplement pas dans de nombreux environnements réels. C'est précisément pourquoi, lors de la conception de services de VoIP, de visioconférence ou de communication peer-to-peer, il est essentiel de déployer des serveurs STUN/TURN fiables, sécurisés et performants.
Si vous envisagez d'installer et de configurer un serveur TURN/STUN pour votre infrastructure, MANAGED SERVER SRL possède une vaste expérience dans la mise en œuvre et la gestion de serveurs TURN . Nous pouvons vous aider à concevoir une solution évolutive, sécurisée et performante, adaptée à vos besoins spécifiques.





