19. Changes since RFC 3489 (Änderungen seit RFC 3489)
Diese Spezifikation macht RFC 3489 [RFC3489] obsolet. Diese Spezifikation unterscheidet sich in folgenden Punkten von RFC 3489:
-
Entfernung des Konzepts, dass STUN eine vollständige NAT-Traversal-Lösung war. STUN ist jetzt ein Werkzeug, das als Teil einer vollständigen NAT-Traversal-Lösung verwendet wird. Folglich wurde der Name des Protokolls in Session Traversal Utilities for NAT geändert.
-
Einführung des Konzepts einer STUN-Verwendung und Beschreibung dessen, was eine STUN-Verwendung dokumentieren muss.
-
Entfernung der Verwendung von STUN zur NAT-Typerkennung und Binding-Lebensdauererkennung. Diese Techniken erwiesen sich angesichts der breiten Palette von NAT-Variationen, die seit der Veröffentlichung von RFC 3489 im Einsatz zu sehen waren, als zu spröde. Die Attribute RESPONSE-ADDRESS, CHANGED-ADDRESS, CHANGE-REQUEST, SOURCE-ADDRESS und REFLECTED-FROM wurden entfernt.
-
Hinzufügung eines festen 32-Bit-Magic-Cookie und Reduzierung der Länge der Transaktions-ID um 32 Bits. Das Magic Cookie beginnt am gleichen Offset wie die ursprüngliche Transaktions-ID.
-
Hinzufügung des XOR-MAPPED-ADDRESS-Attributs, das in Binding-Antworten enthalten ist, wenn das Magic Cookie in der Anfrage vorhanden ist. Andernfalls wird das RFC 3489-Verhalten beibehalten (d.h. die Binding-Antwort enthält MAPPED-ADDRESS). Siehe XOR-MAPPED-ADDRESS für eine Diskussion dieser Änderung.
-
Einführung einer formalen Struktur in das Nachrichtentyp-Header-Feld, wobei explizit ein Bitpaar verwendet wird, um Anfrage, Antwort, Fehlerantwort oder Anzeige anzuzeigen. Infolgedessen ist das Nachrichtentyp-Feld in Klasse (eine der ersten vier) und Methode unterteilt.
-
Explizite Angabe, dass die signifikantesten 2 Bits von STUN 0b00 sind, was eine einfache Unterscheidung von RTP-Paketen bei Verwendung mit ICE ermöglicht.
-
Hinzufügung des FINGERPRINT-Attributs, um eine explizite Möglichkeit zur Unterscheidung von STUN von einem anderen Protokoll zu bieten, wenn beide zusammen multiplexiert werden.
-
Hinzufügung von IPv6-Unterstützung. Explizite Angabe, dass IPv4-Clients v6-gemappte Adressen erhalten können und umgekehrt.
-
Hinzufügung einer auf Langzeit-Credentials basierenden Authentifizierung.
-
Hinzufügung der Attribute SOFTWARE, REALM, NONCE und ALTERNATE-SERVER.
-
Entfernung der SharedSecret-Methode und daher des PASSWORD-Attributs. Diese Methode wurde nie implementiert und wird von aktuellen Verwendungen nicht benötigt.
-
Entfernung der Empfehlung, 10 Sekunden lang weiter auf STUN-Antworten zu hören, um zu versuchen, Angriffe zu identifizieren.
-
Änderung der Transaktions-Timer, um TCP-freundlicher zu sein.
-
Entfernung der STUN-Beispiele zur Trennung von Kontroll- und Medienebene. Stattdessen wurden mehr Informationen zur Verwendung von STUN mit Protokollen bereitgestellt.
-
Definition eines generischen Padding-Mechanismus, Änderung der Interpretation des Längenattributs. Theoretisch bricht dies die Rückwärtskompatibilität. Der Mechanismus in RFC 3489 hat jedoch nie für die kleine Anzahl von Attributen funktioniert, die nicht natürlich an 32-Bit-Grenzen ausgerichtet waren.
-
REALM, SERVER, Begründungsphrasen und NONCE sind auf 127 Zeichen begrenzt. USERNAME ist auf 513 Bytes begrenzt.
-
Änderung der DNS-SRV-Verfahren für TCP und TLS. UDP bleibt wie zuvor.