Aller au contenu principal

19. Changes since RFC 3489 (Changements depuis RFC 3489)

Cette spécification rend obsolète RFC 3489 [RFC3489]. Cette spécification diffère de RFC 3489 de la manière suivante :

  • Suppression du concept selon lequel STUN était une solution complète de traversée NAT. STUN est maintenant un outil utilisé dans le cadre d'une solution complète de traversée NAT. Par conséquent, le nom du protocole a été changé en Session Traversal Utilities for NAT.

  • Introduction du concept d'utilisation STUN et description de ce qu'une utilisation STUN doit documenter.

  • Suppression de l'utilisation de STUN pour la détection du type NAT et la découverte de la durée de vie des liaisons. Ces techniques se sont avérées trop fragiles compte tenu de la large gamme de variations NAT observée dans le déploiement depuis la publication de RFC 3489. Les attributs RESPONSE-ADDRESS, CHANGED-ADDRESS, CHANGE-REQUEST, SOURCE-ADDRESS et REFLECTED-FROM ont été supprimés.

  • Ajout d'un magic cookie fixe de 32 bits et réduction de la longueur de l'ID de transaction de 32 bits. Le magic cookie commence au même décalage que l'ID de transaction d'origine.

  • Ajout de l'attribut XOR-MAPPED-ADDRESS, qui est inclus dans les réponses Binding si le magic cookie est présent dans la requête. Sinon, le comportement de RFC 3489 est préservé (c'est-à-dire que la réponse Binding inclut MAPPED-ADDRESS). Voir XOR-MAPPED-ADDRESS pour une discussion de ce changement.

  • Introduction d'une structure formelle dans le champ d'en-tête de type de message, utilisant explicitement une paire de bits pour indiquer requête, réponse, réponse d'erreur ou indication. En conséquence, le champ de type de message est divisé en classe (l'un des quatre premiers) et méthode.

  • Déclaration explicite que les 2 bits les plus significatifs de STUN sont 0b00, permettant une différenciation facile des paquets RTP lorsqu'il est utilisé avec ICE.

  • Ajout de l'attribut FINGERPRINT pour fournir un moyen explicite de différencier STUN d'un autre protocole lorsque les deux sont multiplexés ensemble.

  • Ajout du support IPv6. Déclaration explicite que les clients IPv4 peuvent obtenir des adresses mappées v6 et vice versa.

  • Ajout de l'authentification basée sur des identifications à long terme.

  • Ajout des attributs SOFTWARE, REALM, NONCE et ALTERNATE-SERVER.

  • Suppression de la méthode SharedSecret et donc de l'attribut PASSWORD. Cette méthode n'a jamais été implémentée et n'est pas nécessaire pour les utilisations actuelles.

  • Suppression de la recommandation de continuer à écouter les réponses STUN pendant 10 secondes pour essayer d'identifier les attaques.

  • Modification des minuteries de transaction pour être plus compatibles avec TCP.

  • Suppression des exemples STUN concernant la séparation du plan de contrôle et du plan média. Au lieu de cela, fourni plus d'informations sur l'utilisation de STUN avec les protocoles.

  • Définition d'un mécanisme de remplissage générique, modifiant l'interprétation de l'attribut de longueur. En théorie, cela rompt la compatibilité descendante. Cependant, le mécanisme dans RFC 3489 n'a jamais fonctionné pour le petit nombre d'attributs qui n'étaient pas naturellement alignés sur des frontières de 32 bits.

  • REALM, SERVER, phrases de raison et NONCE sont limités à 127 caractères. USERNAME est limité à 513 octets.

  • Modification des procédures DNS SRV pour TCP et TLS. UDP reste le même qu'auparavant.