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.
一覧
スポンサーリンク





