Internet Engineering Task Force (IETF)                           F. Gont
Request for Comments: 6093                                       UTN/FRH
Updates: 793, 1011, 1122                                  A. Yourtchenko
Category: Standards Track                                          Cisco
ISSN: 2070-1721                                             January 2011
        
           On the Implementation of the TCP Urgent Mechanism
        

Abstract

抽象

This document analyzes how current TCP implementations process TCP urgent indications and how the behavior of some widely deployed middleboxes affects how end systems process urgent indications. This document updates the relevant specifications such that they accommodate current practice in processing TCP urgent indications, raises awareness about the reliability of TCP urgent indications in the Internet, and recommends against the use of urgent indications (but provides advice to applications that do).

この文書では、どのように現在のTCP実装プロセスのTCPの緊急指示し、いくつかの広く展開ミドルボックスの動作がどのようにエンド・システム・プロセスの緊急指示にどのように影響するかを分析します。この文書は、彼らがTCPの緊急指示を処理する際に、現在の慣行に適応するように、関連する仕様を更新し、インターネットでTCPの緊急指示の信頼性についての意識を高め、かつ緊急指示を使用しないことを推奨します(ただし、行うアプリケーションにアドバイスを提供しています)。

Status of This Memo

このメモのステータス

This is an Internet Standards Track document.

これは、インターネット標準化過程文書です。

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)の製品です。これは、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/rfc6093.

このドキュメントの現在の状態、任意の正誤表、そしてどのようにフィードバックを提供するための情報がhttp://www.rfc-editor.org/info/rfc6093で取得することができます。

Copyright Notice

著作権表示

Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.

著作権(C)2011 IETF信託とドキュメントの作成者として特定の人物。全著作権所有。

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ドキュメント(http://trustee.ietf.org/license-info)に関連IETFトラストの法律の規定に従うものとします。彼らは、この文書に関してあなたの権利と制限を説明するように、慎重にこれらの文書を確認してください。コードコンポーネントは、トラスト法規定のセクションで説明4.eおよび簡体BSDライセンスで説明したように、保証なしで提供されているよう簡体BSDライセンスのテキストを含める必要があり、この文書から抽出されました。

Table of Contents

目次

   1. Introduction ....................................................3
   2. Specification of the TCP Urgent Mechanism .......................3
      2.1. Semantics of Urgent Indications ............................3
      2.2. Semantics of the Urgent Pointer ............................4
      2.3. Allowed Length of "Urgent Data" ............................4
   3. Current Implementation Practice of the TCP Urgent Mechanism .....5
      3.1. Semantics of Urgent Indications ............................5
      3.2. Semantics of the Urgent Pointer ............................5
      3.3. Allowed Length of "Urgent Data" ............................6
      3.4. Interaction of Middleboxes with TCP Urgent Indications .....6
   4. Updating RFC 793, RFC 1011, and RFC 1122 ........................6
   5. Advice to New Applications Employing TCP ........................7
   6. Advice to Applications That Make Use of the Urgent Mechanism ....7
   7. Security Considerations .........................................7
   8. Acknowledgements ................................................8
   9. References ......................................................8
      9.1. Normative References .......................................8
      9.2. Informative References .....................................8
   Appendix A.  Survey of the Processing of TCP Urgent
                Indications by Some Popular TCP Implementations ......10
      A.1. FreeBSD ...................................................10
      A.2. Linux .....................................................10
      A.3. NetBSD ....................................................10
      A.4. OpenBSD ...................................................11
      A.5. Cisco IOS software ........................................11
      A.6. Microsoft Windows 2000, Service Pack 4 ....................11
      A.7. Microsoft Windows 2008 ....................................11
      A.8. Microsoft Windows 95 ......................................11
        
1. Introduction
1. はじめに

This document analyzes how some current TCP implementations process TCP urgent indications, and how the behavior of some widely deployed middleboxes affects the processing of urgent indications by hosts. This document updates RFC 793 [RFC0793], RFC 1011 [RFC1011], and RFC 1122 [RFC1122] such that they accommodate current practice in processing TCP urgent indications. It also provides advice to applications using the urgent mechanism and raises awareness about the reliability of TCP urgent indications in the current Internet.

この文書では、どのようにいくつかの現在のTCP実装プロセスのTCPの緊急指示を分析し、どのようにいくつかの広く展開ミドルボックスの動作は、ホストが緊急指示の処理に影響を与えます。この文書では、彼らがTCPの緊急指示を処理する際に、現在の慣行を受け入れることをRFC 793 [RFC0793]、RFC 1011 [RFC1011]、およびRFC 1122 [RFC1122]などを更新します。また、緊急のメカニズムを使用してアプリケーションへのアドバイスを提供し、現在のインターネットにおけるTCPの緊急指示の信頼性についての意識を高めます。

Given the above issues and potential interoperability issues with respect to the currently common default mode operation, it is strongly recommended that applications do not employ urgent indications. Nevertheless, urgent indications are still retained as a mandatory part of the TCP protocol to support the few legacy applications that employ them. However, it is expected that even these applications will have difficulties in environments with middleboxes.

上記の問題と現在の一般的なデフォルトモードの操作に対する潜在的な相互運用性の問題を考えると、強く、アプリケーションが緊急指示を使用しないことをお勧めします。それにもかかわらず、緊急の指示はまだそれらを採用するいくつかのレガシーアプリケーションをサポートするためのTCPプロトコルの必須部分として保持されています。しかし、それも、これらのアプリケーションは、ミドルボックスと環境の難しさを持っていることが期待されます。

Section 2 describes what the current IETF specifications state with respect to TCP urgent indications. Section 3 describes how current TCP implementations actually process TCP urgent indications. Section 4 updates RFC 793 [RFC0793], RFC 1011 [RFC1011], and RFC 1122 [RFC1122], such that they accommodate current practice in processing TCP urgent indications. Section 5 provides advice to new applications employing TCP, with respect to the TCP urgent mechanism. Section 6 provides advice to existing applications that use or rely on the TCP urgent mechanism.

第2節では、TCPの緊急指示に関して、どのような現在のIETF仕様の状態を説明しています。第3節では、現在のTCP実装は、実際にTCPの緊急指示を処理する方法を説明します。彼らはTCPの緊急指示を処理する際に、現在の慣行に対処するような第4の更新プログラムのRFC 793 [RFC0793]、RFC 1011 [RFC1011]、およびRFC 1122 [RFC1122]、。第5節では、TCP緊急のメカニズムに関して、TCPを使用する新しいアプリケーションへのアドバイスを提供しています。第6節は、TCP緊急メカニズムに使用したり、依存している既存のアプリケーションへのアドバイスを提供します。

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 RFC 2119 [RFC2119].

この文書のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", および "OPTIONAL" はRFC 2119 [RFC2119]に記載されているように解釈されます。

2. Specification of the TCP Urgent Mechanism
TCP緊急機構の2仕様
2.1. Semantics of Urgent Indications
2.1. 緊急指示のセマンティクス

TCP implements an "urgent mechanism" that allows the sending user to stimulate the receiving user to accept some "urgent data" and that permits the receiving TCP to indicate to the receiving user when all the currently known "urgent data" have been read.

TCPは、送信側のユーザが、いくつかの「緊急データ」を受け入れるように受信するユーザを刺激することを可能にする「緊急メカニズム」を実装し、それが現在知られている全ての「緊急データ」は読まれたときに受信ユーザに示すために、受信側TCPが可能になります。

The TCP urgent mechanism permits a point in the data stream to be designated as the end of urgent information. Whenever this point is in advance of the receive sequence number (RCV.NXT) at the receiving TCP, that TCP must tell the user to go into "urgent mode"; when the receive sequence number catches up to the urgent pointer, the TCP must tell user to go into "normal mode" [RFC0793]. This means, for example, that data that was received as "normal data" might become "urgent data" if an urgent indication is received in some successive TCP segment before that data is consumed by the TCP user.

TCP緊急メカニズムは、データストリーム内の点は、緊急情報の終わりに指定することを可能にします。たびに、この時点ではTCPが「緊急モード」に入るためにユーザーに伝える必要があることを、受信側TCPでの受信シーケンス番号(RCV.NXT)の前にあります。受信シーケンス番号が緊急ポインタに追いついたとき、TCPは「通常モード」[RFC0793]に入るようにユーザーに指示する必要があります。これは、データがTCPのユーザによって消費される前に緊急表示がいくつかの連続したTCPセグメントで受信された場合、例えば、「正常データ」として受信し、そのデータが「緊急データ」になるかもしれないことを意味します。

The URG control flag indicates that the "Urgent Pointer" field is meaningful and must be added to the segment sequence number to yield the urgent pointer. The absence of this flag indicates that there is no "urgent data" outstanding [RFC0793].

URG制御フラグが「緊急ポインタ」フィールドは、有意義であり、緊急ポインタを生成するセグメントのシーケンス番号に追加されなければならないことを示しています。このフラグが存在しない場合には「緊急データ」卓越した[RFC0793]が存在しないことを示しています。

The TCP urgent mechanism is NOT a mechanism for sending "out-of-band" data: the so-called "urgent data" should be delivered "in-line" to the TCP user.

TCP緊急メカニズムは、「アウトオブバンド」のデータを送信するためのメカニズムではありません。いわゆる「緊急データは、」TCPユーザに「インライン」配信されなければなりません。

2.2. Semantics of the Urgent Pointer
2.2. 緊急ポインタのセマンティクス

There is some ambiguity in RFC 793 [RFC0793] with respect to the semantics of the Urgent Pointer. Section 3.1 (page 17) of RFC 793 [RFC0793] states that the Urgent Pointer "communicates the current value of the urgent pointer as a positive offset from the sequence number in this segment. The urgent pointer points to the sequence number of the octet following the urgent data. This field is only be interpreted in segments with the URG control bit set" (sic). However, Section 3.9 (page 56) of RFC 793 [RFC0793] states, when describing the processing of the SEND call in the ESTABLISHED and CLOSE-WAIT states, that "If the urgent flag is set, then SND.UP <- SND.NXT-1 and set the urgent pointer in the outgoing segments".

緊急ポインタの意味論に関して、RFC 793 [RFC0793]でいくつかのあいまいさがあります。セクション3.1 RFC 793 [RFC0793]の(17ページ)は、緊急ポインタは「このセグメントのシーケンス番号から正のオフセットとして緊急ポインタの現在値を通信することを述べている。オクテットのシーケンス番号に緊急ポインタポイントは、以下の緊急データは、このフィールドは、URG制御ビットセット」(SIC)を有するセグメントで解釈されます。しかしながら、セクション3.9 RFC 793 [RFC0793]の状態(56ページ)、確立され、CLOSE-WAIT状態のSENDコールの処理、すなわち「緊急フラグが設定されている場合、SND.UP <記述する場合 - SNDを。 NXT-1および発信セグメント」における緊急ポインタを設定します。

RFC 1011 [RFC1011] clarified this ambiguity in RFC 793 stating that "Page 17 is wrong. The urgent pointer points to the last octet of urgent data (not to the first octet of non-urgent data)". RFC 1122 [RFC1122] formally updated RFC 793 by stating, in Section 4.2.2.4 (page 84), that "the urgent pointer points to the sequence number of the LAST octet (not LAST+1) in a sequence of urgent data".

RFC 1011 [RFC1011]は旨のRFC 793で、この曖昧さを明らかにし、「ページ17が間違っている。緊急ポインタポイントを緊急データの最後のオクテットに(ない非緊急データの最初のオクテットに)」。 RFC 1122 [RFC1122]正式に「最後のオクテットのシーケンス番号への緊急ポインタポイントが緊急データの順序で(+ 1続かない)」という、セクション4.2.2.4(84ページ)で、示すことによってRFC 793を更新しました。

2.3. Allowed Length of "Urgent Data"
2.3. 「緊急データ」の許容長

RFC 793 [RFC0793] allows TCP peers to send "urgent data" of any length, as the TCP urgent mechanism simply provides a pointer to an interesting point in the data stream. In this respect, Section 4.2.2.4 (page 84) of RFC 1122 [RFC1122] explicitly states that "A TCP MUST support a sequence of urgent data of any length".

TCP緊急メカニズムは、単にデータストリーム中の興味深い点へのポインタを提供するようにRFC 793 [RFC0793]は、TCPピアは、任意の長さの「緊急データ」を送信することを可能にします。この点では、RFC 1122 [RFC1122]のセクション4.2.2.4(84ページ)を明示的に「TCPは、任意の長さの緊急データのシーケンスをサポートしなければならない」と述べています。

3. Current Implementation Practice of the TCP Urgent Mechanism
TCP緊急メカニズムの3現在の実装実践
3.1. Semantics of Urgent Indications
3.1. 緊急指示のセマンティクス

As discussed in Section 2, the TCP urgent mechanism simply permits a point in the data stream to be designated as the end of urgent information but does NOT provide a mechanism for sending "out-of-band" data.

第2節で述べたように、TCP緊急メカニズムは、単にデータ・ストリーム内のポイントは、緊急情報の最後に指定することを可能にするが、「アウト・オブ・バンド」のデータを送信するためのメカニズムを提供しません。

Unfortunately, virtually all TCP implementations process TCP urgent indications differently. By default, the last byte of "urgent data" is delivered "out of band" to the application. That is, it is not delivered as part of the normal data stream [UNPv1]. For example, the "out-of-band" byte is read by an application when a recv(2) system call with the MSG_OOB flag set is issued.

残念ながら、ほとんどすべてのTCP実装プロセスのTCPの緊急指示違いました。デフォルトでは、「緊急データ」の最後のバイトは、アプリケーションへの「帯域外」配信されます。すなわち、それは通常のデータストリーム[UNPv1]の一部として提供されていない、です。 MSG_OOBフラグを設定してRECV(2)システムコールが発行されると、例えば、「アウトオブバンド」バイトは、アプリケーションによって読み取られます。

Most implementations provide a socket option (SO_OOBINLINE) that allows an application to override the (broken) default processing of urgent indications, so that "urgent data" is delivered "in line" to the application, thus providing the semantics intended by the IETF specifications.

ほとんどの実装では、「緊急データ」はこれIETF仕様で意図したセマンティクスを提供し、アプリケーションに「ラインに」配信されるように、緊急指示を(壊れた)デフォルトの処理をオーバーライドするアプリケーションを可能にするソケット・オプション(SO_OOBINLINE)を提供します。

3.2. Semantics of the Urgent Pointer
3.2. 緊急ポインタのセマンティクス

All the popular implementations that the authors of this document have been able to test interpret the semantics of the TCP Urgent Pointer as specified in Section 3.1 of RFC 793. This means that even when RFC 1122 formally updated RFC 793 to clarify the ambiguity in the semantics of the Urgent Pointer, this clarification was never reflected in actual implementations (i.e., virtually all implementations default to the semantics of the urgent pointer specified in Section 3.1 of RFC 793).

この文書の著者は、RFC 793のセクション3.1で指定されている。これは、RFC 1122が正式にセマンティクスにあいまいさを明確にするためにRFC 793を更新しても意味TCP緊急ポインタの意味を解釈し、テストすることができたすべての人気の実装緊急ポインタの、この明確化は、実際の実装に反映されなかった(すなわち、RFC 793の3.1節で指定された緊急ポインタのセマンティクスに事実上すべての実装のデフォルト)。

Some operating systems provide a system-wide toggle to override this behavior and interpret the semantics of the Urgent Pointer as clarified in RFC 1122. However, this system-wide toggle has been found to be inconsistent. For example, Linux provides the sysctl "tcp_stdurg" (i.e., net.ipv4.tcp_stdurg) that, when set, supposedly changes the system behavior to interpret the semantics of the TCP Urgent Pointer as specified in RFC 1122. However, this sysctl changes the semantics of the Urgent Pointer only for incoming segments (i.e., not for outgoing segments). This means that if this sysctl is set, an application might be unable to interoperate with itself if both the TCP sender and the TCP receiver are running on the same host.

一部のオペレーティングシステムは、RFC 1122で明らかなようにしかし、このシステム全体のトグルが矛盾であることが判明している。この動作を無効にし、緊急ポインタの意味を解釈するために、システム全体のトグルを提供しています。例えば、Linuxはセット、おそらくRFC 1122で指定されたTCP緊急ポインタの意味を解釈するために、システムの動作を変更するにはしかし、これはsysctlが変化したときに、というのsysctl「tcp_stdurg」(すなわち、net.ipv4.tcp_stdurg)を提供しますのみ受信セグメントの緊急ポインタの意味(すなわち、しない発信セグメントについて)。これは、このsysctlのが設定されている場合、アプリケーションは、TCPの送信側とTCP受信機の両方が同じホスト上で実行されている場合は、それ自体と相互運用できなくなる可能性がありますことを意味しています。

3.3. Allowed Length of "Urgent Data"
3.3. 「緊急データ」の許容長

While Section 4.2.2.4 (page 84) of RFC 1122 explicitly states that "A TCP MUST support a sequence of urgent data of any length", in practice, all those implementations that interpret TCP urgent indications as a mechanism for sending "out-of-band" data keep a buffer of a single byte for storing the "last byte of urgent data". Thus, if successive indications of "urgent data" are received before the application reads the pending "out-of-band" byte, that pending byte will be discarded (i.e., overwritten by the new byte of "urgent data").

RFC 1122のセクション4.2.2.4(84ページ)は、明示的に、実際には、「アウト・オブ送信するためのメカニズムとして、TCPの緊急指示を解釈するすべてのそれらの実装を「A TCPは、任意の長さの緊急データのシーケンスをサポートしなければならない」と述べながら、 -band緊急データの最後のバイト 『」データを格納するための単一バイトのバッファを維持します』。 「緊急データ」の連続表示は、アプリケーションの前に受信された場合したがって、保留中のバイトが破棄されることは、保留中の「アウトオブバンド」バイトを読み込む(すなわち、「緊急データ」の新たなバイトによって上書き)。

In order to avoid "urgent data" from being discarded, some implementations queue each of the received "urgent bytes", so that even if another urgent indication is received before the pending "urgent data" are consumed by the application, those bytes do not need to be discarded. Some of these implementations have been known to fail to enforce any limits on the amount of "urgent data" that they queue; thus, they become vulnerable to trivial resource exhaustion attacks [CPNI-TCP].

別の緊急の表示が保留「緊急データ」の前に受信された場合でも、アプリケーションによって消費されるように、廃棄されることから、「緊急データ」を避けるために、いくつかの実装は、受信した「緊急バイト」のそれぞれをキューに入れ、それらのバイトはしないでください廃棄する必要があります。これらの実装のいくつかは、彼らがキューという「緊急データ」の量上の任意の制限を強制するために失敗することが知られています。このように、彼らは些細なリソースの枯渇攻撃[CPNI-TCP]に対して脆弱になります。

It should be reinforced that the aforementioned implementations are broken. The TCP urgent mechanism is not a mechanism for delivering "out-of-band" data.

前述の実装が壊れていることを強化しなければなりません。 TCP緊急メカニズムは、「アウトオブバンド」データを配信するためのメカニズムではありません。

3.4. Interaction of Middleboxes with TCP Urgent Indications
3.4. TCPの緊急指示とのMiddleboxesの相互作用

As a result of the publication of Network Intrusion Detection System (NIDS) evasion techniques based on TCP urgent indications [phrack], some middleboxes clear the urgent indications by clearing the URG flag and setting the Urgent Pointer to zero. This causes the "urgent data" to become "in line" (that is, accessible by the read(2) call or the recv(2) call without the MSG_OOB flag) in the case of those TCP implementations that interpret the TCP urgent mechanism as a facility for delivering "out-of-band" data (as described in Section 3.1). An example of such a middlebox is the Cisco PIX firewall [Cisco-PIX]. This should discourage applications from depending on urgent indications for their correct operation, as urgent indications may not be reliable in the current Internet.

TCP緊急兆候[phrack]に基づいて、ネットワーク侵入検知システム(NIDS)回避技術の出版物の結果として、いくつかの中間装置は、URGフラグをクリアしてゼロに緊急ポインタを設定することにより、緊急指示をクリアします。これは、TCP緊急メカニズムを解釈するものTCPインプリメンテーションの場合に「ラインに」なるために「緊急データ」(MSG_OOBフラグなしすなわち、リードによってアクセス可能である(2)呼び出しまたはRECV(2)コール)を引き起こします(セクション3.1で説明したように)「アウトオブバンド」データを配信するための設備として。このようなミドルの例では、Cisco PIXファイアウォール[シスコPIX]です。緊急指示は、現在のインターネットでは信頼性がないかもしれないので、これは、彼らの正しい操作のための緊急指示に応じてからアプリケーションを阻止すべきです。

4. Updating , , and
4.更新、および

Considering that as long as both the TCP sender and the TCP receiver implement the same semantics for the Urgent Pointer there is no functional difference in having the Urgent Pointer point to "the sequence number of the octet following the urgent data" vs. "the last octet of urgent data", and that all known implementations interpret the semantics of the Urgent Pointer as pointing to "the sequence number of the octet following the urgent data", we hereby update RFC 793 [RFC0793], RFC 1011 [RFC1011], and RFC 1122 [RFC1122] such that "the urgent pointer points to the sequence number of the octet following the urgent data" (in segments with the URG control bit set), thus accommodating virtually all existing TCP implementations.

限り、TCPの送信側とTCP受信機の両方が緊急ポインタのために同じセマンティクスを実装すると、最後の「対「緊急データ次のオクテットのシーケンス番号」に緊急ポインタ点を有するには機能的な差がないことを考えると、緊急データのオクテット」、およびすべての既知の実装がポイントとして緊急ポインタの意味を解釈することを 『緊急データに続くオクテットのシーケンス番号』、私たちはここにRFC 793 [RFC0793]、RFC 1011を更新[RFC1011]、およびRFC 1122 [RFC1122]このようなこうして実質的にすべての既存のTCP実装を収容(URG制御ビットが設定されたセグメント内)、「緊急データに続くオクテットのシーケンス番号に緊急ポインタポイント」という。

5. Advice to New Applications Employing TCP
TCPを採用する新しいアプリケーションへのアドバイス5。

As a result of the issues discussed in Section 3.2 and Section 3.4, new applications SHOULD NOT employ the TCP urgent mechanism. However, TCP implementations MUST still include support for the urgent mechanism such that existing applications can still use it.

3.2節と3.4節で議論された問題の結果として、新しいアプリケーションは、TCP緊急メカニズムを採用すべきではありません。しかし、TCPの実装はまだ既存のアプリケーションはまだそれを使用することができるように、緊急メカニズムのサポートが含まれなければなりません。

6. Advice to Applications That Make Use of the Urgent Mechanism
緊急メカニズムを利用するアプリケーションへ6.アドバイス

Even though applications SHOULD NOT employ the urgent mechanism, applications that still decide to employ it MUST set the SO_OOBINLINE socket option, such that "urgent data" is delivered in line, as intended by the IETF specifications.

アプリケーションは、IETF仕様で意図したように、「緊急データ」は、ラインに送達されるよう緊急のメカニズム、まだそれはSO_OOBINLINEソケットオプションを設定しなければなりません採用することを決定したアプリケーションを、採用すべきではないにもかかわらず。

Additionally, applications that still decide to use the urgent mechanism need to be designed for correct operation even when the URG flag is cleared by middleboxes.

さらに、まだ緊急のメカニズムを使用することを決定したアプリケーションは、URGフラグがミドルボックスによってクリアされた場合でも、正しい動作するように設計する必要があります。

7. Security Considerations
7.セキュリティの考慮事項

Multiple factors can affect the data flow that is actually delivered to an application when the TCP urgent mechanism is employed: for example, the two possible interpretations of the semantics of the Urgent Pointer in current implementations (e.g., depending on the value of the tcp_stdurg sysctl), the possible implementation of the urgent mechanism as an "out-of-band" (OOB) facility (versus "in-band" as intended by the IETF specifications), or middleboxes (such as packet scrubbers) or the end-systems themselves that could cause the "urgent data" to be processed "in line". This might make it difficult for a Network Intrusion Detection System (NIDS) to track the application-layer data transferred to the destination system and thus lead to false negatives or false positives in the NIDS [CPNI-TCP] [phrack].

複数の要因がTCP緊急機構を採用した場合、実際のアプリケーションに配信されるデータ・フローに影響を与えることができる:例えば、現在の実装では緊急ポインタの意味論の二つの可能な解釈(例えば、tcp_stdurg用のsysctlの値に応じて「アウトオブバンド」(OOB)機能(IETF仕様により意図されるように「インバンド」対)として緊急機構)、可能な実装、またはそのようなパケットスクラバーとして中間装置()またはエンドシステム自ら「ラインに」処理する「緊急データ」を引き起こす可能性があるという。ネットワーク侵入検知システム(NIDS)は先のシステムに転送アプリケーション層のデータを追跡するため、NIDS [CPNI-TCP] [phrack]で偽陰性や偽陽性につながるためにこれは困難になるかもしれません。

Probably the best way to avoid the security implications of TCP "urgent data" is to avoid having applications use the TCP urgent mechanism altogether. Packet scrubbers could probably be configured to clear the URG bit and set the Urgent Pointer to zero. This would basically cause the "urgent data" to be put "in line". However, this might cause interoperability problems or undesired behavior in those applications that rely on the TCP urgent mechanism, such as Telnet [RFC0854] and FTP [RFC0959].

おそらく、TCP「緊急データ」のセキュリティへの影響を回避する最善の方法は、アプリケーションが完全にTCP緊急のメカニズムを使用することを避けることです。パケットスクラバーは、おそらくURGビットをクリアし、ゼロに緊急ポインタを設定するように構成することができます。これは、基本的には「緊急データ」を「行に」置くことになります。しかし、このようなTelnetの[RFC0854]およびFTP [RFC0959]などのTCP緊急メカニズムに依存しているこれらのアプリケーションにおける相互運用性の問題や望ましくない動作を引き起こす可能性があります。

8. Acknowledgements
8.謝辞

The authors of this document would like to thank (in alphabetical order) Jari Arkko, Ron Bonica, David Borman, Dave Cridland, Ralph Droms, Wesley Eddy, John Heffner, Alfred Hoenes, Alexey Melnikov, Keith Moore, Carlos Pignataro, Tim Polk, Anantha Ramaiah, Joe Touch, Michael Welzl, Dan Wing, and Alexander Zimmermann for providing valuable feedback on earlier versions of this document.

本書の著者は、(アルファベット順)ヤリArkko、ロンBonica、デビッド・ボーマン、デイブCridland、ラルフDroms、ウェスリーエディ、ジョンHeffner、アルフレッドHoenes、アレクセイ・メルニコフ、キースムーア、カルロスPignataro、ティムポークに感謝したいと思い、 Anantha Ramaiah、ジョー・タッチ、マイケルWelzl、ダン・ウィング、そしてアレクサンダー・ツィンマーマン、このドキュメントの以前のバージョンでの貴重なフィードバックを提供します。

Fernando would like to thank David Borman and Joe Touch for a fruitful discussion about the TCP urgent mechanism at IETF 73 (Minneapolis).

フェルナンドは、IETF 73(ミネアポリス)でTCP緊急メカニズムについて実りある議論のためのデビッド・ボーマンとジョー・タッチに感謝したいと思います。

Fernando Gont's attendance to IETF meetings was supported by ISOC's "Fellowship to the IETF" program.

IETFミーティングにフェルナンドGontの出席は、ISOCのプログラム「フェローシップIETFへ」によってサポートされていました。

Finally, Fernando Gont wishes to express deep and heartfelt gratitude to Jorge Oscar Gont and Nelida Garcia for their precious motivation and guidance.

最後に、フェルナンドGontは彼らの貴重なモチベーションと指導のためのホルヘオスカーGontとNelidaガルシアに深く心からの感謝の意を表したいと考えています。

9. References
9.参考文献
9.1. Normative References
9.1. 引用規格

[RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, September 1981.

[RFC0793]ポステル、J.、 "伝送制御プロトコル"、STD 7、RFC 793、1981年9月。

[RFC1011] Reynolds, J. and J. Postel, "Official Internet protocols", RFC 1011, May 1987.

[RFC1011]レイノルズ、J.とJ.ポステル、 "公式のインターネットプロトコル"、RFC 1011、1987年5月。

[RFC1122] Braden, R., Ed., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, October 1989.

[RFC1122]ブレーデン、R.、エド、 "インターネットホストのための要件 - 通信層"。、STD 3、RFC 1122、1989年10月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]ブラドナーの、S.、 "要件レベルを示すためにRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月。

9.2. Informative References
9.2. 参考文献

[CPNI-TCP] Gont, F., "Security Assessment of the Transmission Control Protocol (TCP)", "http://www.cpni.gov.uk/ Docs/tn-03-09-security-assessment-TCP.pdf", 2009.

[CPNI-TCP] Gont、F.、 "伝送制御プロトコル(TCP)のセキュリティ評価"、「http://www.cpni.gov.uk/ドキュメント/ TN-03-09-セキュリティ・アセスメント-TCP。 PDF」、2009年。

[Cisco-PIX] Cisco PIX, "http://www.cisco.com/en/US/docs/security/ asa/asa70/command/reference/tz.html#wp1288756".

[シスコPIX]シスコPIX、 "http://www.cisco.com/en/US/docs/security/ ASA / asa70 /コマンド/リファレンス/ tz.html#wp1288756"。

[FreeBSD] The FreeBSD project, "http://www.freebsd.org".

[FreeBSDの] FreeBSDプロジェクト、 "http://www.freebsd.org"。

[Linux] The Linux Project, "http://www.kernel.org".

[Linuxの] Linuxプロジェクト、 "http://www.kernel.org"。

[NetBSD] The NetBSD project, "http://www.netbsd.org".

[NetBSDの] NetBSDプロジェクト、 "http://www.netbsd.org"。

[OpenBSD] The OpenBSD project, "http://www.openbsd.org".

[OpenBSDの] OpenBSDプロジェクト、 "http://www.openbsd.org"。

[RFC0854] Postel, J. and J. Reynolds, "Telnet Protocol Specification", STD 8, RFC 854, May 1983.

[RFC0854]ポステル、J.、およびJ.レイノルズ、 "テルネットプロトコル仕様"、STD 8、RFC 854、1983年5月。

[RFC0959] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9, RFC 959, October 1985.

[RFC0959]ポステル、J.、およびJ.レイノルズ、 "ファイル転送プロトコル"、STD 9、RFC 959、1985年10月。

[UNPv1] Stevens, W., "UNIX Network Programming, Volume 1. Networking APIs: Sockets and XTI", Prentice Hall PTR, 1997.

[UNPv1]スティーブンス、W.、 "UNIXネットワークプログラミング、1巻ネットワークAPI:ソケットとXTI"、プレンティスホールPTR、1997。

[Windows2000] Microsoft Windows 2000, "http://technet.microsoft.com/ en-us/library/bb726981(printer).aspx".

[Windows2000の]のMicrosoft Windows 2000では、 "http://technet.microsoft.com/ EN-US /ライブラリ/ bb726981(プリンタ).aspxの"。

[Windows95] Microsoft Windows 95, "ftp://ftp.demon.co.uk/pub/ mirrors/win95netfaq/faq-c.html".

[Windows95の]のMicrosoft Windows 95、 "ftp://ftp.demon.co.uk/pub/ミラー/ win95netfaq / FAQ-c.html"。

[phrack] Ko, Y., Ko, S., and M. Ko, "NIDS Evasion Method named "SeolMa"", Phrack Magazine, Volume 0x0b, Issue 0x39, Phile #0x03 of 0x12 http://www.phrack.org/ issues.html?issue=57&id=3#article, 2001.

【phrack】コ、Y.、コ、S.、およびM.コSeolMa " "" という名前のNIDSの回避方法"、Phrack雑誌、ボリューム0x0Bの、発行ます。0x39、Phile番号0x12をHTTPの0x03の://www.phrack。 ORG / issues.html?問題= 57&ID = 3#記事、2001。

Appendix A. Survey of the Processing of TCP Urgent Indications by Some Popular TCP Implementations

いくつかの人気のTCP実装でTCPの緊急指示の処理の付録A.調査

A.1. FreeBSD

A.1。 FreeBSDの

FreeBSD 8.0 [FreeBSD] interprets the semantics of the urgent pointer as specified in Section 4 of this document. It does not provide any sysctl to override this behavior.

このドキュメントのセクション4で指定されるようにFreeBSDの8.0 [FreeBSDは】緊急ポインタの意味を解釈します。これは、この動作をオーバーライドする任意のsysctlのを提供していません。

FreeBSD provides the SO_OOBINLINE socket option that, when set, causes TCP "urgent data" to remain "in line". That is, it will be accessible by the read(2) call or the recv(2) call without the MSG_OOB flag.

FreeBSDは設定されたときに、「ラインに」のままにTCP「緊急データ」を引き起こし、というSO_OOBINLINEソケットオプションを提供します。つまり、リード(2)コールまたはMSG_OOBフラグなしRECV(2)コールによってアクセス可能になり、です。

FreeBSD supports only one byte of "urgent data". That is, only the byte preceding the Urgent Pointer is considered "urgent data".

FreeBSDは「緊急データ」の1バイトのみをサポートしています。これは、緊急ポインタの前にのみバイトは「緊急データ」と見なされています。

A.2. Linux

あ。2。 ぃぬx

Linux 2.6.15-53-386 [Linux] interprets the semantics of the urgent pointer as specified in Section 4 of this document. It provides the net.ipv4.tcp_stdurg sysctl to override this behavior to interpret the Urgent Pointer as specified in RFC 1122 [RFC1122]. However, this sysctl only affects the processing of incoming segments (the Urgent Pointer in outgoing segments will still be set as specified in Section 4 of this document).

このドキュメントのセクション4で指定されたとしてLinux 2.6.15-53-386 [Linuxは]緊急ポインタの意味を解釈します。これは、RFC 1122 [RFC1122]で指定された緊急ポインタを解釈するために、この動作をオーバーライドするnet.ipv4.tcp_stdurgのはsysctlを提供します。しかし、これのsysctlのみ(このドキュメントのセクション4で指定されるようにまだ設定され、送信のセグメントに緊急ポインタ)受信セグメントの処理に影響を与えます。

Linux provides the SO_OOBINLINE socket option that, when set, causes TCP "urgent data" to remain "in line". That is, it will be accessible by the read(2) call or the recv(2) call without the MSG_OOB flag.

Linuxは、セットは、「ラインに」維持するTCP「緊急データ」を引き起こすことがSO_OOBINLINEソケットオプションを提供します。つまり、リード(2)コールまたはMSG_OOBフラグなしRECV(2)コールによってアクセス可能になり、です。

Linux supports only one byte of "urgent data". That is, only the byte preceding the Urgent Pointer is considered "urgent data".

Linuxは、「緊急データ」の1バイトのみをサポートしています。これは、緊急ポインタの前にのみバイトは「緊急データ」と見なされています。

A.3. NetBSD

A.3。 NetBSDの

NetBSD 5.0.1 [NetBSD] interprets the semantics of the urgent pointer as specified in Section 4 of this document. It does not provide any sysctl to override this behavior.

このドキュメントのセクション4で指定されるようにはNetBSD 5.0.1 [NetBSDは】緊急ポインタの意味を解釈します。これは、この動作をオーバーライドする任意のsysctlのを提供していません。

NetBSD provides the SO_OOBINLINE socket option that, when set, causes TCP "urgent data" to remain "in line". That is, it will be accessible by the read(2) call or the recv(2) call without the MSG_OOB flag.

NetBSDは設定されたときに、「ラインに」のままにTCP「緊急データ」を引き起こし、というSO_OOBINLINEソケットオプションを提供します。つまり、リード(2)コールまたはMSG_OOBフラグなしRECV(2)コールによってアクセス可能になり、です。

NetBSD supports only one byte of "urgent data". That is, only the byte preceding the Urgent Pointer is considered "urgent data".

NetBSDは、「緊急データ」の1バイトのみをサポートしています。これは、緊急ポインタの前にのみバイトは「緊急データ」と見なされています。

A.4. OpenBSD

A.4。 OpenBSDの

OpenBSD 4.2 [OpenBSD] interprets the semantics of the urgent pointer as specified in Section 4 of this document. It does not provide any sysctl to override this behavior.

このドキュメントのセクション4で指定されるようにOpenBSD 4.2 [OpenBSDは】緊急ポインタの意味を解釈します。これは、この動作をオーバーライドする任意のsysctlのを提供していません。

OpenBSD provides the SO_OOBINLINE socket option that, when set, causes TCP "urgent data" to remain "in line". That is, it will be accessible by the read(2) or recv(2) calls without the MSG_OOB flag.

OpenBSDは設定されたときに、「ラインに」のままにTCP「緊急データ」を引き起こし、というSO_OOBINLINEソケットオプションを提供します。つまり、リード(2)またはRECV(2)MSG_OOBフラグなし呼び出しによってアクセスできるようになり、です。

OpenBSD supports only one byte of "urgent data". That is, only the byte preceding the Urgent Pointer is considered "urgent data".

OpenBSDは「緊急データ」の1バイトのみをサポートしています。これは、緊急ポインタの前にのみバイトは「緊急データ」と見なされています。

A.5. Cisco IOS software

A.5。 Cisco IOSソフトウェア

Cisco IOS Software Releases 12.2(18)SXF7, 12.4(15)T7 interpret the semantics of the urgent pointer as specified in Section 4 of this document.

Cisco IOSソフトウェアは、このドキュメントのセクション4で指定されている12.2(18)SXF7、12.4(15)T7は緊急ポインタの意味を解釈リリース。

The behavior is consistent with having the SO_OOBINLINE socket option turned on, i.e., the data is processed "in line".

動作はSO_OOBINLINEソケットオプションを有すると一致する、すなわち、データを「行に」処理され、オン。

A.6. Microsoft Windows 2000, Service Pack 4

A.6。マイクロソフトのWindows 2000、サービスパック4

Microsoft Windows 2000 [Windows2000] interprets the semantics of the urgent pointer as specified in Section 4 of this document. It provides the TcpUseRFC1122UrgentPointer system-wide variable to override this behavior, interpreting the Urgent Pointer as specified in RFC 1122 [RFC1122].

このドキュメントのセクション4で指定されたとして、Microsoft Windows 2000の[Windows2000の]は緊急ポインタの意味を解釈します。これは、RFC 1122 [RFC1122]で指定されるように緊急ポインタを解釈し、この動作をオーバーライドするTcpUseRFC1122UrgentPointerシステム全体の変数を提供します。

Tests performed with a sample server application compiled using the cygwin environment has shown that the default behavior is to return the "urgent data" "in line".

cygwinの環境を使用してコンパイルしたサンプル・サーバ・アプリケーションで実施された試験は、デフォルトの動作が「行に」「緊急データ」を返すことであることが示されています。

A.7. Microsoft Windows 2008

A.sht。 Mitsrosoft Vindovs 2008

Microsoft Windows 2008 interprets the semantics of the urgent pointer as specified in Section 4 of this document.

このドキュメントのセクション4で指定されたとして、Microsoft Windows 2008のは、緊急ポインタの意味を解釈します。

A.8. Microsoft Windows 95

A8。 Mitsrosoft Vindovs 95

Microsoft Windows 95 interprets the semantics of the urgent pointer as specified in Section 4 of this document. It provides the BSDUrgent system-wide variable to override this behavior, interpreting the Urgent Pointer as specified in RFC 1122 [RFC1122]. Windows 95 supports only one byte of "urgent data". That is, only the byte preceding the Urgent Pointer is considered "urgent data" [Windows95].

このドキュメントのセクション4で指定されたとして、Microsoft Windows 95は緊急ポインタの意味を解釈します。これは、RFC 1122 [RFC1122]で指定されるように緊急ポインタを解釈し、この動作をオーバーライドするBSDUrgentシステム全体の変数を提供します。 Windows 95は、「緊急データ」の1バイトのみをサポートしています。すなわち、緊急ポインタの前にのみバイトは「緊急データ」[Windows95の】考えられるれます。

Authors' Addresses

著者のアドレス

Fernando Gont Universidad Tecnologica Nacional / Facultad Regional Haedo Evaristo Carriego 2644 Haedo, Provincia de Buenos Aires 1706 Argentina

フェルナンドGont大学Tecnologicaナシオナル/ Facultad地域Haedoエバリスト・キャリエゴ2644 Haedo、1706ブエノスアイレス州アルゼンチン

Phone: +54 11 4650 8472 EMail: fernando@gont.com.ar URI: http://www.gont.com.ar

電話:+54 11 4650 8472 Eメール:URI fernando@gont.com.ar:http://www.gont.com.ar

Andrew Yourtchenko Cisco De Kleetlaan, 7 Diegem B-1831 Belgium

アンドリューYourtchenkoシスコデKleetlaan、7ディーゲムB-1831ベルギー

Phone: +32 2 704 5494 EMail: ayourtch@cisco.com

電話:+32 2 704 5494 Eメール:ayourtch@cisco.com