メインコンテンツまでスキップ

19. Changes since RFC 3489 (RFC 3489以降の変更)

本仕様はRFC 3489 [RFC3489]を廃止します。本仕様は、RFC 3489と以下の点で異なります:

  • STUNが完全なNATトラバーサルソリューションであるという概念を削除。STUNは現在、完全なNATトラバーサルソリューションの一部として利用されるツールです。その結果、プロトコルの名前がNAT会話穿透ツール (Session Traversal Utilities for NAT) に変更されました。

  • STUN使用法の概念を導入し、STUN使用法が文書化しなければならない内容を説明しました。

  • NATタイプ検出とバインディング生存期間発見のためのSTUNの使用法を削除。これらの技術は、RFC 3489の公開以降に展開で見られたNATの変動の広い範囲を考えると、脆弱すぎることが証明されました。RESPONSE-ADDRESS、CHANGED-ADDRESS、CHANGE-REQUEST、SOURCE-ADDRESS、およびREFLECTED-FROM属性が削除されました。

  • 固定の32ビットマジッククッキーを追加し、トランザクションIDの長さを32ビット削減。マジッククッキーは、元のトランザクションIDと同じオフセットから始まります。

  • XOR-MAPPED-ADDRESS属性を追加。リクエストにマジッククッキーが存在する場合、Binding応答にこの属性が含まれます。それ以外の場合、RFC 3489の動作が保持されます(つまり、Binding応答にはMAPPED-ADDRESSが含まれます)。この変更の説明については、XOR-MAPPED-ADDRESSを参照してください。

  • メッセージタイプヘッダーフィールドに正式な構造を導入。リクエスト、レスポンス、エラーレスポンス、またはインディケーションを示すために明示的にビットのペアを使用します。その結果、メッセージタイプフィールドはクラス(最初の4つのうちの1つ)とメソッドに分割されます。

  • STUNの最上位2ビットが0b00であることを明示的に述べました。ICEと一緒に使用する場合、RTPパケットを簡単に区別できます。

  • FINGERPRINT属性を追加。2つのプロトコルが一緒に多重化される場合に、STUNを別のプロトコルと区別する明示的な方法を提供します。

  • IPv6のサポートを追加。IPv4クライアントがv6マップアドレスを取得でき、その逆も可能であることを明示的に述べました。

  • 長期クレデンシャルベースの認証を追加

  • SOFTWARE、REALM、NONCE、およびALTERNATE-SERVER属性を追加

  • SharedSecretメソッドを削除し、したがってPASSWORD属性も削除。このメソッドは実装されたことがなく、現在の使用法では必要ありません。

  • 攻撃を識別しようとするためにSTUN応答を10秒間聞き続ける推奨事項を削除

  • トランザクションタイマーをよりTCPフレンドリーに変更

  • 制御プレーンとメディアプレーンの分離に関するSTUNの例を削除。代わりに、プロトコルでSTUNを使用することに関する詳細情報を提供しました。

  • 汎用パディングメカニズムを定義し、長さ属性の解釈を変更。理論的には、これは後方互換性を破ります。ただし、RFC 3489のメカニズムは、32ビット境界に自然に整列しない少数の属性に対して機能したことはありませんでした。

  • REALM、SERVER、理由フレーズ、およびNONCEは127文字に制限。USERNAMEは513バイトに制限されます。

  • TCPとTLSのDNS SRV手順を変更。UDPは以前と同じままです。