1.7. RFC 4306 とこの文書の重要な相違点
1.7. RFC 4306 とこの文書の重要な相違点
この文書には、IKEv2 [IKEV2] に対する明確化と補足が含まれています。明確化の多くは [Clarif] に基づいています。その文書に記載された変更は IPsec ワーキンググループで議論され、ワーキンググループが解散した後は IPsec メーリングリストで議論されました。その文書には IKEv2 で不明確だった領域の詳細な説明が含まれており、したがって IKEv2 の実装者にとって有用です。
この文書で説明するプロトコルは、RFC 4306 で使用されたのと同じメジャーバージョン番号(2)とマイナーバージョン番号(0)を保持しています。すなわち、バージョン番号は RFC 4306 から変更されていません。ここに列挙された少数の技術的変更は、この文書の公開時点で既に配備されている RFC 4306 の実装には影響しないと予想されます。
この文書は、[IKEV2] よりも図と参照を少し一貫性のあるものにしています。
IKEv2 の開発者は、RFC 4306 の SHOULD レベルの要件は、それに従わなくてもよい場合を明記していないため、しばしば不明確であると指摘しています。また、相互運用性に関係しない MUST レベルの要件があることも指摘しています。この文書には、これらの要件のいくつかの説明が追加されています。SHOULD と MUST という語の大文字でない用法はすべて、[MUSTSHOULD] の相互運用性の意味ではなく、通常の英語の意味を意味するようになりました。
IKEv2(および IKEv1)の開発者は、RFC 4306 のセクション 3.10.1 のコードの表に多くの資料があることを指摘しています。これにより、実装者が文書の本文に必要な情報をすべて持っていないという事態が生じます。これらの表の資料の多くは、文書の本文の関連部分に移動されました。
この文書は、AH と ESP の入れ子の議論を削除しています。これは、RFC 4306 の完成と RFC 4301 の間の遅延によって引き起こされた RFC 4306 の誤りでした。基本的に、IKEv2 は RFC 4301 に基づいており、RFC 2401 の一部であった「SA バンドル」は含まれていません。単一のパケットが IPsec 処理を複数回通過できる一方、これらの各パスは別個の SA を使用し、パスは転送テーブルによって調整されます。IKEv2 では、これらの各 SA は別個の CREATE_CHILD_SA 交換を使用して作成する必要があります。
この文書は、INTERNAL_ADDRESS_EXPIRY 構成属性の議論を削除しています。その実装が非常に問題があったためです。この文書に準拠する実装は、構成属性タイプ 5(INTERNAL_ADDRESS_EXPIRY の古い値)を持つプロポーザルを無視しなければなりません。この文書はまた、INTERNAL_IP6_NBNS を構成属性として削除しました。
この文書は、ペイロードが「正しい」順序でないメッセージを拒否する許可を削除しています。現在、実装はそれらを拒否してはなりません。これは、ペイロードの順序が説明されている箇所で明確さが欠如していたためです。
IANA レジストリに登録された RFC 4306 の項目のリストは、RFC 4306 で実際に定義された項目のみを含むように削減されました。また、これらのリストの多くには、開発時に IANA レジストリを実際に確認すべきであるという非常に重要な指示が前置きされています。RFC 4306 以降に新しい項目が追加されているためです。
この文書は、その時点のネゴシエーションの状態に応じて、通知が暗号化されて送信される場合とされない場合についての明確化を追加しています。
この文書は、複合モード暗号のネゴシエート方法についてさらに議論しています。
セクション 1.3.2 では、「The KEi payload SHOULD be included」が「The KEi payload MUST be included」に変更されました。これはセクション 2.18 の変更にもつながりました。
セクション 2.1 には、イニシエータの SPI や IP が「半開」(ハーフオープン)の IKE SA か新しい要求かを区別するためにどのように使用されるかを説明する新しい資料があります。
この文書は、セクション 2.5 におけるクリティカルフラグの使用を明確化しています。
セクション 2.8 では、「Note that, when rekeying, the new Child SA MAY have different Traffic Selectors and algorithms than the old one」が「Note that, when rekeying, the new Child SA SHOULD NOT have different Traffic Selectors and algorithms than the old one」に変更されました。
新しいセクション 2.8.2 は、同時の IKE SA 再鍵化について説明しています。
新しいセクション 2.9.2 は、再鍵化におけるトラフィックセレクタについて説明しています。
この文書は、セクション 2.13 に、IKEv2 で使用されるすべての疑似乱数関数(PRF)が可変長の鍵を受け入れなければならないという制限を追加しています。固定長の鍵を持つ標準化された PRF は存在しないため、これはどの実装にも影響しないはずです。
セクション 2.18 は、IKE_SA を再鍵化するときに Diffie-Hellman 交換を行うことを要求しています。理論上は、RFC 4306 は Diffie-Hellman 交換がオプションであるポリシーを許可していましたが、IKE_SA の再鍵化時にはこれは有用(または適切)ではありませんでした。
セクション 2.21 は、エラー応答が必要となるさまざまなケースとそれらへの適切な応答を網羅するために大幅に拡張されました。
セクション 2.23 は、NAT トラバーサルにおいて、受信時に UDP カプセル化された IPsec パケットと非 UDP カプセル化の IPsec パケットの両方を理解する必要があることを明確化しました。
トランスポートモードが要求された場合の NAT トラバーサルを説明するために、セクション 2.23.1 が追加されました。
SA の削除および/または再鍵化時のタイミング衝突が発生した場合の対処方法を説明するためにセクション 2.25 が追加され、TEMPORARY_FAILURE と CHILD_SA_NOT_FOUND の 2 つの新しいエラー通知が定義されました。
セクション 3.6 には、「Implementations MUST support the HTTP method for hash-and-URL lookup. The behavior of other URL methods is not currently specified, and such methods SHOULD NOT be used in the absence of a document specifying them」が追加されました。
セクション 3.15.3 には、IPv6 アドレスの構成に関連する新しい文書へのポインタが追加されました。
Appendix C は拡張され、明確化されました。