RFC2385 日本語訳

2385 Protection of BGP Sessions via the TCP MD5 Signature Option. A.Heffernan. August 1998. (Format: TXT=12315 bytes) (Status: PROPOSED STANDARD)

RFC一覧
英語原文

Network Working Group                                       A. Heffernan
Request for Comments: 2385                                 cisco Systems
Category: Standards Track                                    August 1998


      Protection of BGP Sessions via the TCP MD5 Signature Option

      TCP MD5 署名オプションによる BGP セッションの保護



Status of this Memo

このメモの位置づけ

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

   この文書は、Internet community のための Internet standards track
   protocol を明細に記述し、改良のための討議と提案を要求する。このプロ
   トコルの標準化状態とステータスについては、"Internet Official
   Protocol Standards" (STD 1) の最新版を参照してもらいたい。このメモの
   配布は、無制限である。

-----------------------------------------------------------------------

Copyright Notice

著作権表示

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

-----------------------------------------------------------------------

IESG Note

IESG メモ

   This document describes currrent existing practice for securing BGP
   against certain simple attacks.  It is understood to have security
   weaknesses against concerted attacks.

   この文書は、確実なシンプル攻撃に対して BGP を守るため、現在存在して
   いる実行を記述する。関係する攻撃に対して、セキュリティ弱点を持つと解
   釈される。

-----------------------------------------------------------------------

Abstract

要約

   This memo describes a TCP extension to enhance security for BGP.  It
   defines a new TCP option for carrying an MD5 [RFC1321] digest in a
   TCP segment.  This digest acts like a signature for that segment,
   incorporating information known only to the connection end points.
   Since BGP uses TCP as its transport, using this option in the way
   described in this paper significantly reduces the danger from certain
   security attacks on BGP.

   このメモは、BGP のセキュリティを高めるための TCP 拡張を記述する。こ
   れは、TCP セグメントに MD5 [RFC1321] ダイジェストを運ぶ新しい TCP オ
   プションを定義する。このダイジェストは、コネクションエンドポイントに
   のみ知られた情報を組み入れて、そのセグメントに対する署名のようにふる
   まう。BGP は、そのトランスポート (輸送) として TCP を使用するので、
   この文書で記述された方法でこのオプションを使用することは、BGP 上の確
   実なセキュリティ攻撃から危険を減らす。

-----------------------------------------------------------------------

1.0  Introduction

1.0  序論

   The primary motivation for this option is to allow BGP to protect
   itself against the introduction of spoofed TCP segments into the
   connection stream.  Of particular concern are TCP resets.

   このオプションの主要な動機づけは、コネクションストリーム内へとだまさ
   れる TCP セグメントを導入することに対して、BGP に保護を許すためであ
   る。特定の関心は、TCP リセットである。

   To spoof a connection using the scheme described in this paper, an
   attacker would not only have to guess TCP sequence numbers, but would
   also have had to obtain the password included in the MD5 digest.
   This password never appears in the connection stream, and the actual
   form of the password is up to the application.  It could even change
   during the lifetime of a particular connection so long as this change
   was synchronized on both ends (although retransmission can become
   problematical in some TCP implementations with changing passwords).

   この文書で記述される案を使用してコネクションをだますため、攻撃者は、
   TCP 順序番号を推測しなければならないだけでなく、MD5 ダイジェストに含
   まれるパスワードも得なければならない。このパスワードは、コネクション
   ストリームに決して現れない。そしてそのパスワードの実際の形式は、アプ
   リケーションの責任である。このパスワードは、特定コネクションの生存時
   間の間、変更することさえできる。(ただし) この変更は、エンド両方で同
   期が取られさえすればである (パスワードを変更することで、再送は、いく
   つかの TCP 実装に問題のあるようにするけれども)。

   Finally, there is no negotiation for the use of this option in a
   connection, rather it is purely a matter of site policy whether or
   not its connections use the option.

   最終的に、コネクションでこのオプション使用のための取り決めは、ない。
   もっと正確に言えば、そのコネクションがこのオプションを使用するかどう
   かは、純粋にサイトポリシーの問題である。

-----------------------------------------------------------------------

2.0  Proposal

2.0  提案

   Every segment sent on a TCP connection to be protected against
   spoofing will contain the 16-byte MD5 digest produced by applying the
   MD5 algorithm to these items in the following order:

   だますことに対して保護することになる TCP コネクション上で、送信され
   るすべてのセグメントは、16-byte MD5 ダイジェストを含む。この MD5 ダ
   イジェストは、次に述べる順序でそれらアイテムに MD5 アルゴリズムを適
   用することにより生成される :

       1. the TCP pseudo-header (in the order: source IP address,
          destination IP address, zero-padded protocol number, and
          segment length)

          TCP 疑似ヘッダ (順序: 始点 IP アドレス、終点 IP アドレス、
          zero がパッドされたプロトコル番号とセグメント長)

       2. the TCP header, excluding options, and assuming a checksum of
          zero

          オプションと zero のチェックサム想定を除いた、TCP ヘッダ

       3. the TCP segment data (if any)

          (もしあるなら) TCP セグメントデータ

       4. an independently-specified key or password, known to both TCPs
          and presumably connection-specific

          TCP(s) 両方とたぶんコネクション特有で知られた、非依存の特有な
          鍵もしくはパスワード

   The header and pseudo-header are in network byte order.  The nature
   of the key is deliberately left unspecified, but it must be known by
   both ends of the connection.  A particular TCP implementation will
   determine what the application may specify as the key.

   ヘッダと疑似ヘッダは、ネットワークバイトオーダである。鍵の性質は、故
   意に未指定のままにされる。しかしこれは、コネクションの両エンドで知ら
   れてなければならない。特定の TCP 実装は、アプリケーションが鍵として
   指定するかもしれないものを決定するだろう。

   Upon receiving a signed segment, the receiver must validate it by
   calculating its own digest from the same data (using its own key) and
   comparing the two digest.  A failing comparison must result in the
   segment being dropped and must not produce any response back to the
   sender.  Logging the failure is probably advisable.

   署名されたセグメント受信の上で、受信側は、(自分自身の鍵を使用して)
   同じデータから (受信データの) ダイジェストを計算し、2 つのダイジェス
   トを比較することにより検証しなければならない。比較失敗は、セグメント
   が落とされるという結果にならなければならなく、送信側へとどんなレスポ
   ンスも生成してはならない。失敗をログに取ることは、たぶん賢明である。

   Unlike other TCP extensions (e.g., the Window Scale option
   [RFC1323]), the absence of the option in the SYN,ACK segment must not
   cause the sender to disable its sending of signatures.  This
   negotiation is typically done to prevent some TCP implementations
   from misbehaving upon receiving options in non-SYN segments.  This is
   not a problem for this option, since the SYN,ACK sent during
   connection negotiation will not be signed and will thus be ignored.
   The connection will never be made, and non-SYN segments with options
   will never be sent.  More importantly, the sending of signatures must
   be under the complete control of the application, not at the mercy of
   the remote host not understanding the option.

   他の TCP 拡張 (たとえば、Window Scale オプション [RFC1323]) と違って
   SYN,ACK セグメント中にこのオプションの欠如は、送信側に署名送信を不可
   能にさせない。この取り決めは、non-SYN セグメント内のオプション受信の
   上でいくつかの TCP 実装が不正処理するのを防ぐため、一般的におこなわ
   れる。このことは、このオプションについて問題ではない。それは、コネク
   ション取り決めの間に送信された SYN,ACK は署名されなく、したがい無視
   されるからである。コネクションは決して張られなく、オプションを持つ
   non-SYN セグメントは決して送信されない。より重要に、署名 (したもの)
   を送信することは、オプションを理解しないリモートホストのなすがままで
   なく、完全なアプリケーション制御のもとでなければならない。

-----------------------------------------------------------------------

3.0  Syntax

3.0  構文

   The proposed option has the following format:

   提案されるオプションは、次に述べる形式を持つ:

             +---------+---------+-------------------+
             | Kind=19 |Length=18|   MD5 digest...   |
             +---------+---------+-------------------+
             |                                       |
             +---------------------------------------+
             |                                       |
             +---------------------------------------+
             |                                       |
             +-------------------+-------------------+
             |                   |
             +-------------------+

   The MD5 digest is always 16 bytes in length, and the option would
   appear in every segment of a connection.

   MD5 ダイジェストは、常に 16 bytes 長である。そしてこのオプションは、
   コネクション上の全セグメントに現れる。

-----------------------------------------------------------------------

4.0  Some Implications

4.0  いくつかの影響

4.1  Connectionless Resets

4.1  コネクションレスリセット

   A connectionless reset will be ignored by the receiver of the reset,
   since the originator of that reset does not know the key, and so
   cannot generate the proper signature for the segment.  This means,
   for example, that connection attempts by a TCP which is generating
   signatures to a port with no listener will time out instead of being
   refused.  Similarly, resets generated by a TCP in response to
   segments sent on a stale connection will also be ignored.
   Operationally this can be a problem since resets help BGP recover
   quickly from peer crashes.

   コネクションレスリセットは、そのリセットを受け取った受信側により無視
   される。そのリセットの originator (生成者) は、鍵を知らなく、セグメ
   ントに対して適切な署名を生成できないからである。これは、次のことを意
   味する。それは、たとえばリスナーのいない port へと署名を生成している
   TCP によるコネクション試みは、拒否される代わりにタイムアウトするとい
   うことである。同様に、古いコネクションで送信されたセグメントへのレス
   ポンスに対し TCP により生成されるリセットも、無視される。(ただし) 運
   用上、これは問題でありうる。(なぜなら) BGP のピアクラッシュから、リ
   セットは (ピアの) すばやい回復を助けるからである。

4.2  Performance

4.2  パフォーマンス

   The performance hit in calculating digests may inhibit the use of
   this option.  Some measurements of a sample implementation showed
   that on a 100 MHz R4600, generating a signature for simple ACK
   segment took an average of 0.0268 ms, while generating a signature
   for a data segment carrying 4096 bytes of data took 0.8776 ms on
   average.  These times would be applied to both the input and output
   paths, with the input path also bearing the cost of a 16-byte
   compare.

   ダイジェスト計算で影響するパフォーマンスは、このオプション使用を抑制
   するかもしれない。単純な ACK セグメントに署名を生成するという、100
   MHz R4600 上で示されたサンプル実装のある測定では、平均 0.0268 ms か
   かった。4096 bytes データを運ぶデータセグメントに署名を生成するのに
   平均 0.8776 ms かかったけれども。これら時間は、入力/出力パス両方に適
   用した。(ただし) 入力パスには、16-byte 比較のコストも与えた。

4.3  TCP Header Size

4.3  TCP ヘッダサイズ

   As with other options that are added to every segment, the size of
   the MD5 option must be factored into the MSS offered to the other
   side during connection negotiation.  Specifically, the size of the
   header to subtract from the MTU (whether it is the MTU of the
   outgoing interface or IP's minimal MTU of 576 bytes) is now at least
   18 bytes larger.

   全セグメントに追加される他のオプションとともに、MD5 オプションサイズ
   は、コネクション取り決めの間、他のサイドに提供される MSS へともたら
   せなければならない。特に、(外行きインターフェイスの MTU であろうと
   IP の最小 MTU 576 bytes であろうと) MTU から引くヘッダサイズは、少な
   くとも 18 bytes より現在大きい。

   The total header size is also an issue.  The TCP header specifies
   where segment data starts with a 4-bit field which gives the total
   size of the header (including options) in 32-byte words.  This means
   that the total size of the header plus option must be less than or
   equal to 60 bytes -- this leaves 40 bytes for options.

   全ヘッダサイズも問題である。TCP ヘッダは、セグメントデータがどこから
   始まるかを、32-bytes word の (オプションを含む) ヘッダ全サイズを与え
   る 4-bit フィールドで指定する。これは、オプションを足したヘッダの全
   サイズが 60 byte より少ないか等しくなければならない -- オプションは
   40 bytes のままであることを意味する。

   As a concrete example, 4.4BSD defaults to sending window-scaling and
   timestamp information for connections it initiates.  The most loaded
   segment will be the initial SYN packet to start the connection.  With
   MD5 signatures, the SYN packet will contain the following:

   具体的な例として、4.4BSD は、コネクション初期化に window-scaling と
   timestamp 情報を送信するのがデフォルトである。ほとんどの詰め込まれた
   セグメントは、コネクションを始めるための初期 SYN パケットであろう。
   MD5 署名とで、SYN パケットは、次に述べるものを含む:

       -- 4 bytes MSS option

          4 bytes の MSS オプション

       -- 4 bytes window scale option (3 bytes padded to 4 in 4.4BSD)

          4 bytes のウィンドウスケールオプション (3 bytes が 4.4BSD で
          は 4 にパッドされる)

       -- 12 bytes for timestamp (4.4BSD pads the option as recommended
          in RFC 1323 Appendix A)

          タイムスタンプのための 12 bytes (4.4BSD は、RFC 1323 Appendix
          A で推奨されるとして、このオプションをパッドする)

       -- 18 bytes for MD5 digest

          MD5 ダイジェストのための 18 bytes

       -- 2 bytes for end-of-option-list, to pad to a 32-bit boundary.

          32-bit 境界にパッドするように、end-of-option-list のための
          2 bytes

       This sums to 40 bytes, which just makes it.

       これは、合計 40 bytes になり、ちょうどうまくいく。

4.4  MD5 as a Hashing Algorithm

4.4  ハッシュアルゴリズムとしての MD5

   Since this memo was first issued (under a different title), the MD5
   algorithm has been found to be vulnerable to collision search attacks
   [Dobb], and is considered by some to be insufficiently strong for
   this type of application.

   このメモは (異なるタイトルのもとで) 最初公開されたので、MD5 アルゴリ
   ズムは、衝突検索攻撃 [Dobb] に弱点があることが見つけられ、この適用タ
   イプにかなり不適当な強さであると考えられる。

   This memo still specifies the MD5 algorithm, however, since the
   option has already been deployed operationally, and there was no
   "algorithm type" field defined to allow an upgrade using the same
   option number.  The original document did not specify a type field
   since this would require at least one more byte, and it was felt at
   the time that taking 19 bytes for the complete option (which would
   probably be padded to 20 bytes in TCP implementations) would be too
   much of a waste of the already limited option space.

   しかしながらこのメモは、それでも MD5 アルゴリズムを指定する。それは
   このオプションが運用上すでに組み込まれ、同じオプションフィールドを使
   用してアップグレードを許すように定義された "algorithm type" を持たな
   いからである。もともとの文書は、タイプフィールドを指定しなかった。そ
   れは個のオプションが少な区とも 1 つ以上の byte を必要とし、かつその
   時点で全オプションの 19 bytes を得ること (そして TCP 実装で 20 bytes
   へとたぶんパディングされる) はすでに制限されたオプション空間の大変無
   駄な浪費であるからである。

   This does not prevent the deployment of another similar option which
   uses another hashing algorithm (like SHA-1).  Also, if most
   implementations pad the 18 byte option as defined to 20 bytes anyway,
   it would be just as well to define a new option which contains an
   algorithm type field.

   これは、(SHA-1 のような) 他のハッシュアルゴリズムを使用する他の同類
   のオプション組み込みを妨げない。その上、もしほとんどの実装がどんな方
   法にせよ 20 bytes に定義されたとして 18 bytes オプションをパディング
   するなら、アルゴリズムタイプフィールドを含む新しいオプションを当然お
   まけに定義するべきであろう。

   This would need to be addressed in another document, however.

   しかしながらこのことは、他の文書で述べられる必要があるだろう。

4.5 Key configuration

4.5 鍵設定

   It should be noted that the key configuration mechanism of routers
   may restrict the possible keys that may be used between peers.  It is
   strongly recommended that an implementation be able to support at
   minimum a key composed of a string of printable ASCII of 80 bytes or
   less, as this is current practice.

   ルータの鍵設定メカニズムは、ピア間で使用されるだろうという可能な鍵を
   制限するかもしれないことに注意されるべきである。現在の実施として、実
   装は 80 bytes か、または少ない (bytes 数の) 表示可能な ASCII 文字列
   から構成される最小鍵でサポートできることが強く推奨される。

-----------------------------------------------------------------------

5.0 Security Considerations

5.0 セキュリティに関する考察

   This document defines a weak but currently practiced security
   mechanism for BGP.  It is anticipated that future work will provide
   different stronger mechanisms for dealing with these issues.

   この文書は、不十分だが BGP のために現在実践されるセキュリティメカニ
   ズムを定義する。これら問題を扱うため、異なるさらに強力なメカニズムの
   提供を将来の研究で期待される。

-----------------------------------------------------------------------

6.0  References

6.0  参考文献

   [RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm," RFC 1321,
             April 1992.

   [RFC1323] Jacobson, V., Braden, R., and D. Borman, "TCP Extensions
             for High Performance", RFC 1323, May 1992.

   [Dobb] H. Dobbertin, "The Status of MD5 After a Recent Attack", RSA
             Labs' CryptoBytes, Vol. 2 No. 2, Summer 1996.
             http://www.rsa.com/rsalabs/pubs/cryptobytes.html

-----------------------------------------------------------------------

Author's Address

著者のアドレス

   Andy Heffernan
   cisco Systems
   170 West Tasman Drive
   San Jose, CA  95134  USA

   Phone:  +1 408 526-8115
   EMail:  ahh@cisco.com

-----------------------------------------------------------------------

Full Copyright Statement

著作権表示全文

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

一覧

 RFC 1〜100  RFC 1401〜1500  RFC 2801〜2900  RFC 4201〜4300 
 RFC 101〜200  RFC 1501〜1600  RFC 2901〜3000  RFC 4301〜4400 
 RFC 201〜300  RFC 1601〜1700  RFC 3001〜3100  RFC 4401〜4500 
 RFC 301〜400  RFC 1701〜1800  RFC 3101〜3200  RFC 4501〜4600 
 RFC 401〜500  RFC 1801〜1900  RFC 3201〜3300  RFC 4601〜4700 
 RFC 501〜600  RFC 1901〜2000  RFC 3301〜3400  RFC 4701〜4800 
 RFC 601〜700  RFC 2001〜2100  RFC 3401〜3500  RFC 4801〜4900 
 RFC 701〜800  RFC 2101〜2200  RFC 3501〜3600  RFC 4901〜5000 
 RFC 801〜900  RFC 2201〜2300  RFC 3601〜3700  RFC 5001〜5100 
 RFC 901〜1000  RFC 2301〜2400  RFC 3701〜3800  RFC 5101〜5200 
 RFC 1001〜1100  RFC 2401〜2500  RFC 3801〜3900  RFC 5201〜5300 
 RFC 1101〜1200  RFC 2501〜2600  RFC 3901〜4000  RFC 5301〜5400 
 RFC 1201〜1300  RFC 2601〜2700  RFC 4001〜4100  RFC 5401〜5500 
 RFC 1301〜1400  RFC 2701〜2800  RFC 4101〜4200 

スポンサーリンク

UTFとは

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る