特大のIPv6ヘッダーチェーンの影響
英文を機械翻訳で日本語訳としています。日本語訳が正しくないことが考えられますので原文をメインとし、参考程度にご利用ください。
日本語訳
Internet Engineering Task Force (IETF) F. Gont Request for Comments: 7112 Huawei Technologies Updates: 2460 V. Manral Category: Standards Track Ionos Networks ISSN: 2070-1721 R. Bonica Juniper Networks January 2014 Implications of Oversized IPv6 Header Chains
特大のIPv6ヘッダーチェーンの影響
Abstract
概要
The IPv6 specification allows IPv6 Header Chains of an arbitrary size. The specification also allows options that can, in turn, extend each of the headers. In those scenarios in which the IPv6 Header Chain or options are unusually long and packets are fragmented, or scenarios in which the fragment size is very small, the First Fragment of a packet may fail to include the entire IPv6 Header Chain. This document discusses the interoperability and security problems of such traffic, and updates RFC 2460 such that the First Fragment of a packet is required to contain the entire IPv6 Header Chain.
IPv6仕様では、任意のサイズのIPv6ヘッダーチェーンが許可されています。 この仕様では、各ヘッダーを拡張できるオプションも許可されています。 IPv6ヘッダーチェーンまたはオプションが異常に長く、パケットがフラグメント化されているシナリオ、またはフラグメントサイズが非常に小さいシナリオでは、パケットの最初のフラグメントにIPv6ヘッダーチェーン全体を含めることができない場合があります。 このドキュメントでは、このようなトラフィックの相互運用性とセキュリティの問題について説明し、パケットの最初のフラグメントにIPv6ヘッダーチェーン全体を含める必要があるようにRFC 2460を更新します。
Status of This Memo
このメモのステータス
This is an Internet Standards Track document.
これはInternet Standards Trackドキュメントです。
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.
このドキュメントは、IETF(Internet Engineering Task Force)の製品です。 これは、IETFコミュニティのコンセンサスを表しています。 公開レビューを受け、インターネットエンジニアリングステアリンググループ(IESG)による公開が承認されました。 インターネット標準の詳細については、RFC 5741のセクション2を参照してください。
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7112.
このドキュメントの現在のステータス、エラータ、およびフィードバックの提供方法に関する情報は、http://www.rfc-editor.org/info/rfc7112で入手できます。
Gont, et al. Standards Track [Page 1] RFC 7112 Implications of Oversized Header Chains January 2014 Copyright Notice
著作権表示
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
Copyright(c)2014 IETF Trustおよびドキュメントの作成者として識別された人物。 全著作権所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
この文書は、BCP 78およびIETF文書に関するIETFトラストの法的規定(http://trustee.ietf.org/license-info)の対象であり、この文書の発行日に有効です。 これらのドキュメントは、このドキュメントに関するあなたの権利と制限を説明しているため、注意深く確認してください。 このドキュメントから抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eに記載されているSimplified BSD Licenseのテキストが含まれている必要があり、Simplified BSD Licenseに記載されているように保証なしで提供されます。
Table of Contents 1. Introduction ....................................................2 2. Requirements Language ...........................................3 3. Terminology .....................................................3 4. Motivation ......................................................4 5. Updates to RFC 2460 .............................................5 6. IANA Considerations .............................................5 7. Security Considerations .........................................6 8. Acknowledgements ................................................6 9. References ......................................................7 9.1. Normative References .......................................7 9.2. Informative References .....................................7
1.はじめに............................................... ..... 2 2.要件言語........................................... 3 3.用語......................................................... ...... 3 4.動機......................................................... ....... 4 5. RFC 2460の更新............................................ .5 6. IANAの考慮事項............................................. 5 7.セキュリティに関する考慮事項.................................................. 6 8.謝辞............................................... .6 9.参考資料......................................................... .......7 9.1. 規範的な参照................................................. 7 9.2. 有益な参照..................................... 7
1. Introduction
1.はじめに
With IPv6, optional internet-layer information is carried in one or more IPv6 Extension Headers [RFC2460]. Extension Headers are placed between the IPv6 header and the Upper-Layer Header in a packet. The term "Header Chain" refers collectively to the IPv6 header, Extension Headers, and Upper-Layer Header occurring in a packet. In those scenarios in which the IPv6 Header Chain is unusually long and packets are fragmented, or scenarios in which the fragment size is very small, the Header Chain may span multiple fragments.
IPv6では、オプションのインターネット層情報が1つ以上のIPv6拡張ヘッダー[RFC2460]で運ばれます。 拡張ヘッダーは、パケットのIPv6ヘッダーと上位レイヤーヘッダーの間に配置されます。 「ヘッダーチェーン」という用語は、パケット内で発生するIPv6ヘッダー、拡張ヘッダー、および上位レイヤーヘッダーを総称したものです。 IPv6ヘッダーチェーンが異常に長く、パケットがフラグメント化されているシナリオ、またはフラグメントサイズが非常に小さいシナリオでは、ヘッダーチェーンが複数のフラグメントにまたがることがあります。
While IPv4 had a fixed maximum length for the set of all IPv4 options present in a single IPv4 packet, IPv6 does not have any equivalent maximum limit at present. This document updates the set of IPv6 specifications to create an overall limit on the size of the combination of IPv6 options and IPv6 Extension Headers that is allowed in a single IPv6 packet. Namely, it updates RFC 2460 such that the First Fragment of a fragmented datagram is required to contain the entire IPv6 Header Chain.
IPv4には、単一のIPv4パケットに存在するすべてのIPv4オプションのセットの最大長が固定されていましたが、IPv6には現在、同等の最大長はありません。 このドキュメントは、IPv6仕様のセットを更新して、単一のIPv6パケットで許可されるIPv6オプションとIPv6拡張ヘッダーの組み合わせのサイズに全体的な制限を作成します。 つまり、フラグメント化されたデータグラムの最初のフラグメントがIPv6ヘッダーチェーン全体を含む必要があるように、RFC 2460を更新します。
Gont, et al. Standards Track [Page 2] RFC 7112 Implications of Oversized Header Chains January 2014 It should be noted that this requirement does not preclude the use of large payloads but, instead, merely requires that all headers, starting from the IPv6 base header and continuing up to the Upper- Layer Header (e.g., TCP or the like) be present in the First Fragment.
この要件は大きなペイロードの使用を排除するものではなく、IPv6ベースヘッダーから始まり、上位層ヘッダー(TCPなど)まで続くすべてのヘッダーが存在することを要求するだけであることに注意してください。 最初のフラグメントで。
2. Requirements Language
2.要件言語
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
このドキュメントのキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、および「OPTIONAL」は、 [RFC2119]で説明されているように解釈されます。
3. Terminology
3.用語
For the purposes of this document, the terms Extension Header, IPv6 Header Chain, First Fragment, and Upper-Layer Header are used as follows:
このドキュメントでは、拡張ヘッダー、IPv6ヘッダーチェーン、最初のフラグメント、および上位レイヤーヘッダーという用語を次のように使用します。
Extension Header:
拡張ヘッダー:
Extension Headers are defined in Section 4 of [RFC2460]. As a result of [RFC7045], [IANA-PROTO] provides a list of assigned Internet Protocol Numbers and designates which of those protocol numbers also represent Extension Headers.
拡張ヘッダーは、[RFC2460]のセクション4で定義されています。 [RFC7045]の結果として、[IANA-PROTO]は割り当てられたインターネットプロトコル番号のリストを提供し、それらのプロトコル番号のどれが拡張ヘッダーも表すかを指定します。
First Fragment:
最初のフラグメント:
An IPv6 fragment with Fragment Offset equal to 0.
フラグメントオフセットが0のIPv6フラグメント。
IPv6 Header Chain:
IPv6ヘッダーチェーン:
The IPv6 Header Chain contains an initial IPv6 header, zero or more IPv6 Extension Headers, and optionally, a single Upper-Layer Header. If an Upper-Layer Header is present, it terminates the header chain; otherwise, the "No Next Header" value (Next Header = 59) terminates it.
IPv6ヘッダーチェーンには、初期IPv6ヘッダー、0個以上のIPv6拡張ヘッダー、およびオプションで単一の上位層ヘッダーが含まれます。 上位ヘッダーが存在する場合は、ヘッダーチェーンを終了します。 それ以外の場合は、「次のヘッダーなし」の値(次のヘッダー= 59)で終了します。
The first member of the IPv6 Header Chain is always an IPv6 header. For a subsequent header to qualify as a member of the header chain, it must be referenced by the "Next Header" field of the previous member of the header chain. However, if a second IPv6 header appears in the header chain, as is the case when IPv6 is tunneled over IPv6, the second IPv6 header is considered to be an Upper-Layer Header and terminates the header chain. Likewise, if an Encapsulating Security Payload (ESP) header appears in the header chain, it is considered to be an Upper-Layer Header, and it terminates the header chain.
IPv6ヘッダーチェーンの最初のメンバーは常にIPv6ヘッダーです。 後続のヘッダーをヘッダーチェーンのメンバーとして認定するには、ヘッダーチェーンの前のメンバーの[次のヘッダー]フィールドで参照する必要があります。 ただし、IPv6がIPv6を介してトンネリングされる場合のように、2番目のIPv6ヘッダーがヘッダーチェーンに表示される場合、2番目のIPv6ヘッダーは上位層ヘッダーと見なされ、ヘッダーチェーンを終了します。 同様に、カプセル化セキュリティペイロード(ESP)ヘッダーがヘッダーチェーンに表示される場合、それは上位層ヘッダーと見なされ、ヘッダーチェーンを終了します。
Gont, et al. Standards Track [Page 3] RFC 7112 Implications of Oversized Header Chains January 2014 Upper-Layer Header:
上位層ヘッダ:
In the general case, the Upper-Layer Header is the first member of the header chain that is neither an IPv6 header nor an IPv6 Extension Header. However, if either an ESP header, or a second IPv6 header occur in the header chain, they are considered to be Upper-Layer Headers, and they terminate the header chain.
一般的なケースでは、Upper-Layerヘッダーは、IPv6ヘッダーでもIPv6拡張ヘッダーでもないヘッダーチェーンの最初のメンバーです。 ただし、ESPヘッダーまたは2番目のIPv6ヘッダーがヘッダーチェーンで発生した場合、それらは上位層ヘッダーと見なされ、ヘッダーチェーンを終了します。
Neither the upper-layer payload, nor any protocol data following the upper-layer payload, is considered to be part of the IPv6 Header Chain. In a simple example, if the Upper-Layer Header is a TCP header, the TCP payload is not part of the IPv6 Header Chain. In a more complex example, if the Upper-Layer Header is an ESP header, neither the payload data, nor any of the fields that follow the payload data in the ESP header are part of the IPv6 Header Chain.
上位層のペイロードも、上位層のペイロードに続くプロトコルデータも、IPv6ヘッダーチェーンの一部とは見なされません。 簡単な例では、Upper-LayerヘッダーがTCPヘッダーの場合、TCPペイロードはIPv6ヘッダーチェーンの一部ではありません。 より複雑な例では、Upper-LayerヘッダーがESPヘッダーである場合、ペイロードデータも、ESPヘッダーのペイロードデータに続くフィールドもIPv6ヘッダーチェーンの一部ではありません。
4. Motivation
4.モチベーション
Many forwarding devices implement stateless firewalls. A stateless firewall enforces a forwarding policy on a packet-by-packet basis. In order to enforce its forwarding policy, the stateless firewall may need to glean information from both the IPv6 and upper-layer headers.
多くの転送デバイスは、ステートレスファイアウォールを実装しています。 ステートレスファイアウォールは、パケットごとに転送ポリシーを適用します。 転送ポリシーを実施するために、ステートレスファイアウォールは、IPv6ヘッダーと上位層ヘッダーの両方から情報を収集する必要がある場合があります。
For example, assume that a stateless firewall discards all traffic received from an interface unless it is destined for a particular TCP port on a particular IPv6 address. When this firewall is presented with a fragmented packet that is destined for a different TCP port, and the entire header chain is contained within the First Fragment, the firewall discards the First Fragment and allows subsequent fragments to pass. Because the First Fragment was discarded, the packet cannot be reassembled at the destination. Insomuch as the packet cannot be reassembled, the forwarding policy is enforced.
たとえば、ステートレスファイアウォールが、特定のIPv6アドレスの特定のTCPポートを宛先としない限り、インターフェイスから受信したすべてのトラフィックを破棄するとします。 このファイアウォールに別のTCPポート宛のフラグメント化されたパケットが提示され、ヘッダーチェーン全体が最初のフラグメント内に含まれている場合、ファイアウォールは最初のフラグメントを破棄し、後続のフラグメントの通過を許可します。 最初のフラグメントが破棄されたため、パケットは宛先で再構成できません。 パケットは再構成できないため、転送ポリシーが適用されます。
However, when the firewall is presented with a fragmented packet and the header chain spans multiple fragments, the First Fragment does not contain enough information for the firewall to enforce its forwarding policy. Lacking sufficient information, the stateless firewall either forwards or discards that fragment. Regardless of the action that it takes, it may fail to enforce its forwarding policy.
ただし、ファイアウォールにフラグメント化されたパケットが提示され、ヘッダーチェーンが複数のフラグメントにまたがっている場合、最初のフラグメントには、ファイアウォールが転送ポリシーを適用するのに十分な情報が含まれていません。 十分な情報がないと、ステートレスファイアウォールはそのフラグメントを転送または破棄します。 実行するアクションに関係なく、転送ポリシーを適用できない場合があります。
Gont, et al. Standards Track [Page 4] RFC 7112 Implications of Oversized Header Chains January 2014 5. Updates to RFC 2460
5. RFC 2460の更新
When a host fragments an IPv6 datagram, it MUST include the entire IPv6 Header Chain in the First Fragment.
ホストがIPv6データグラムをフラグメント化するとき、最初のフラグメントにIPv6ヘッダーチェーン全体を含める必要があります。
A host that receives a First Fragment that does not satisfy the above-stated requirement SHOULD discard the packet and SHOULD send an ICMPv6 error message to the source address of the offending packet (subject to the rules for ICMPv6 errors specified in [RFC4443]). However, for backwards compatibility, implementations MAY include a configuration option that allows such fragments to be accepted.
上記の要件を満たさない最初のフラグメントを受信したホストは、パケットを破棄し(SHOULD)、ICMPv6エラーメッセージを問題のあるパケットの送信元アドレスに送信する必要があります([RFC4443]で指定されているICMPv6エラーのルールに従います)。 しかしながら、後方互換性のために、実装はそのようなフラグメントが受け入れられることを可能にする構成オプションを含むかもしれません。
Likewise, an intermediate system (e.g., router or firewall) that receives an IPv6 First Fragment that does not satisfy the above- stated requirement MAY discard that packet, and it MAY send an ICMPv6 error message to the source address of the offending packet (subject to the rules for ICMPv6 error messages specified in [RFC4443]). Intermediate systems having this capability SHOULD support configuration (e.g., enable/disable) of whether or not such packets are dropped by the intermediate system.
同様に、上記の要件を満たさないIPv6の最初のフラグメントを受信する中間システム(ルーターやファイアウォールなど)は、そのパケットを破棄してもよい(MAY)、ICMPv6エラーメッセージを問題のパケットの送信元アドレス(サブジェクト [RFC4443]で指定されたICMPv6エラーメッセージのルールに準拠)。 この機能を持つ中間システムは、そのようなパケットが中間システムによってドロップされるかどうかの構成(たとえば、有効化/無効化)をサポートする必要があります(SHOULD)。
If a host or intermediate system discards a First Fragment because it does not satisfy the above-stated requirement and sends an ICMPv6 error message due to the discard, then the ICMPv6 error message MUST be Type 4 ("Parameter Problem") and MUST use Code 3 ("First Fragment has incomplete IPv6 Header Chain"). The Pointer field contained by the ICMPv6 Parameter Problem message MUST be set to zero. The format for the ICMPv6 error message is the same regardless of whether a host or intermediate system originates it.
ホストまたは中間システムが上記の要件を満たさないために最初のフラグメントを破棄し、破棄のためにICMPv6エラーメッセージを送信する場合、ICMPv6エラーメッセージはタイプ4(「パラメーターの問題」)であり、コードを使用する必要があります。 3(「最初のフラグメントに不完全なIPv6ヘッダーチェーンがあります」)。 ICMPv6パラメータ問題メッセージに含まれるポインタフィールドはゼロに設定する必要があります。 ICMPv6エラーメッセージの形式は、ホストシステムまたは中間システムが発信元であるかどうかに関係なく同じです。
As a result of the above-mentioned requirement, a packet's header chain length cannot exceed the Path MTU associated with its destination. Hosts discover the Path MTU using procedures such as those defined in [RFC1981] and [RFC4821]. Hosts that do not discover the Path MTU MUST limit the IPv6 Header Chain length to 1280 bytes. Limiting the IPv6 Header Chain length to 1280 bytes ensures that the header chain length does not exceed the IPv6 minimum MTU [RFC2460].
上記の要件の結果として、パケットのヘッダーチェーンの長さは、その宛先に関連付けられたパスMTUを超えることはできません。 ホストは、[RFC1981]や[RFC4821]で定義されているような手順を使用して、パスMTUを発見します。 パスMTUを検出しないホストは、IPv6ヘッダーチェーンの長さを1280バイトに制限する必要があります。 IPv6ヘッダーチェーンの長さを1280バイトに制限すると、ヘッダーチェーンの長さがIPv6の最小MTU [RFC2460]を超えないようになります。
6. IANA Considerations
6. IANAに関する考慮事項
IANA has added the following "Type 4 - Parameter Problem" message to the "Internet Control Message Protocol version 6 (ICMPv6) Parameters" registry:
IANAは、「インターネット制御メッセージプロトコルバージョン6(ICMPv6)パラメータ」レジストリに次の「タイプ4-パラメータの問題」メッセージを追加しました。
CODE NAME/DESCRIPTION 3 IPv6 First Fragment has incomplete IPv6 Header Chain
コード 名前/説明 3 IPv6の最初のフラグメントに不完全なIPv6ヘッダーチェーンがあります
Gont, et al. Standards Track [Page 5] RFC 7112 Implications of Oversized Header Chains January 2014 7. Security Considerations
7.セキュリティに関する考慮事項
No new security exposures or issues are raised by this document. This document describes how undesirably fragmented packets can be leveraged to evade stateless packet filtering. Having made that observation, this document updates [RFC2460] so that undesirably fragmented packets are forbidden. Therefore, a security vulnerability is removed.
このドキュメントによって、新たなセキュリティ上の問題や問題が発生することはありません。 このドキュメントでは、望ましくない状態でフラグメント化されたパケットを活用して、ステートレスパケットフィルタリングを回避する方法について説明します。 その観察を行ったので、このドキュメントは[RFC2460]を更新して、望ましくない断片化されたパケットが禁止されるようにします。 したがって、セキュリティの脆弱性が取り除かれます。
This specification allows nodes that drop the aforementioned packets to signal such packet drops with ICMPv6 "Parameter Problem, IPv6 First Fragment has incomplete IPv6 header chain" (Type 4, Code 3) error messages.
この仕様により、前述のパケットをドロップするノードは、ICMPv6「パラメーターの問題、IPv6の最初のフラグメントに不完全なIPv6ヘッダーチェーンがあります」(タイプ4、コード3)エラーメッセージでそのようなパケットドロップを通知できます。
As with all ICMPv6 error/diagnostic messages, deploying Source Address Forgery Prevention filters helps reduce the chances of an attacker successfully performing a reflection attack by sending forged illegal packets with the victim's/target's IPv6 address as the IPv6 source address of the illegal packet [RFC2827] [RFC3704].
すべてのICMPv6エラー/診断メッセージと同様に、Source Address Forgery Preventionフィルターを配備すると、攻撃者が不正なパケットのIPv6送信元アドレスとして被害者/ターゲットのIPv6アドレスを使用して偽造された不正パケットを送信することにより、リフレクション攻撃を成功させる可能性を減らすことができます[RFC2827 ] [RFC3704]。
A firewall that performs stateless deep packet inspection (i.e., examines application payload content) might still be unable to correctly process fragmented packets, even if the IPv6 Header Chain is not fragmented.
ステートレスのディープパケットインスペクションを実行する(つまり、アプリケーションのペイロードコンテンツを検査する)ファイアウォールは、IPv6ヘッダーチェーンがフラグメント化されていなくても、フラグメント化されたパケットを正しく処理できない場合があります。
8. Acknowledgements
8.謝辞
The authors would like to thank Ran Atkinson for contributing text and ideas that were incorporated into this document. The authors would like to thank (in alphabetical order) Ran Atkinson, Fred Baker, Stewart Bryant, Brian Carpenter, Benoit Claise, Dominik Elsbroek, Wes George, Mike Heard, Bill Jouris, Suresh Krishnan, Dave Thaler, Ole Troan, Eric Vyncke, and Peter Yee, for providing valuable comments on earlier versions of this document. Gont, et al. Standards Track [Page 6] RFC 7112 Implications of Oversized Header Chains January 2014 9. References
9.リファレンス
9.1. Normative References
9.1。 規範的な参考文献
[RFC1981] McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery for IP version 6", RFC 1981, August 1996. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998. [RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", RFC 4443, March 2006. [RFC4821] Mathis, M. and J. Heffner, "Packetization Layer Path MTU Discovery", RFC 4821, March 2007. [RFC7045] Carpenter, B. and S. Jiang, "Transmission and Processing of IPv6 Extension Headers", RFC 7045, December 2013. 9.2. Informative References
9.2。 参考情報
[RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", BCP 38, RFC 2827, May 2000. [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed Networks", BCP 84, RFC 3704, March 2004. [IANA-PROTO] Internet Assigned Numbers Authority, "Protocol Numbers", <http://www.iana.org/assignments/protocol-numbers>. Gont, et al. Standards Track [Page 7] RFC 7112 Implications of Oversized Header Chains January 2014 Authors' Addresses Fernando Gont Huawei Technologies Evaristo Carriego 2644 Haedo, Provincia de Buenos Aires 1706 Argentina Phone: +54 11 4650 8472 EMail: fgont@si6networks.com Vishwas Manral Ionos Networks Sunnyvale, CA 94089 US Phone: 408-447-1497 EMail: vishwas@ionosnetworks.com Ronald P. Bonica Juniper Networks 2251 Corporate Park Drive Herndon, VA 20171 US Phone: 571 250 5819 EMail: rbonica@juniper.net Gont, et al. Standards Track [Page 8]