Passa al contenuto principale

19. Changes since RFC 3489 (Modifiche rispetto a RFC 3489)

Questa specifica rende obsoleto RFC 3489 [RFC3489]. Questa specifica differisce da RFC 3489 nei seguenti modi:

  • Rimosso il concetto che STUN fosse una soluzione completa di attraversamento NAT. STUN è ora uno strumento utilizzato come parte di una soluzione completa di attraversamento NAT. Di conseguenza, il nome del protocollo è stato cambiato in Session Traversal Utilities for NAT.

  • Introdotto il concetto di utilizzo STUN e descritto cosa un utilizzo STUN deve documentare.

  • Rimosso l'uso di STUN per il rilevamento del tipo NAT e la scoperta della durata del binding. Queste tecniche si sono rivelate troppo fragili data l'ampia gamma di variazioni NAT osservate nel deployment dalla pubblicazione di RFC 3489. Gli attributi RESPONSE-ADDRESS, CHANGED-ADDRESS, CHANGE-REQUEST, SOURCE-ADDRESS e REFLECTED-FROM sono stati rimossi.

  • Aggiunto un magic cookie fisso a 32 bit e ridotta la lunghezza dell'ID di transazione di 32 bit. Il magic cookie inizia allo stesso offset dell'ID di transazione originale.

  • Aggiunto l'attributo XOR-MAPPED-ADDRESS, che è incluso nelle risposte Binding se il magic cookie è presente nella richiesta. Altrimenti, viene preservato il comportamento di RFC 3489 (cioè, la risposta Binding include MAPPED-ADDRESS). Vedere XOR-MAPPED-ADDRESS per una discussione di questa modifica.

  • Introdotta una struttura formale nel campo dell'intestazione del tipo di messaggio, utilizzando esplicitamente una coppia di bit per indicare richiesta, risposta, risposta di errore o indicazione. Di conseguenza, il campo del tipo di messaggio è diviso in classe (una delle prime quattro) e metodo.

  • Dichiarato esplicitamente che i 2 bit più significativi di STUN sono 0b00, permettendo una facile differenziazione dei pacchetti RTP quando utilizzato con ICE.

  • Aggiunto l'attributo FINGERPRINT per fornire un modo esplicito per differenziare STUN da un altro protocollo quando i due sono multiplexati insieme.

  • Aggiunto il supporto per IPv6. Dichiarato esplicitamente che i client IPv4 possono ottenere indirizzi mappati v6 e viceversa.

  • Aggiunta l'autenticazione basata su credenziali a lungo termine.

  • Aggiunti gli attributi SOFTWARE, REALM, NONCE e ALTERNATE-SERVER.

  • Rimosso il metodo SharedSecret e quindi l'attributo PASSWORD. Questo metodo non è mai stato implementato e non è necessario per gli utilizzi attuali.

  • Rimossa la raccomandazione di continuare ad ascoltare le risposte STUN per 10 secondi per cercare di identificare gli attacchi.

  • Modificati i timer delle transazioni per essere più compatibili con TCP.

  • Rimossi gli esempi STUN sulla separazione del piano di controllo e del piano media. Invece, fornite maggiori informazioni sull'uso di STUN con i protocolli.

  • Definito un meccanismo di padding generico, modificando l'interpretazione dell'attributo di lunghezza. In teoria, questo rompe la compatibilità con le versioni precedenti. Tuttavia, il meccanismo in RFC 3489 non ha mai funzionato per il piccolo numero di attributi che non erano naturalmente allineati ai confini di 32 bit.

  • REALM, SERVER, frasi di ragione e NONCE sono limitati a 127 caratteri. USERNAME è limitato a 513 byte.

  • Modificate le procedure DNS SRV per TCP e TLS. UDP rimane lo stesso di prima.