ネットワークワーキンググループ
Request for Comments: 3093
分類: 情報提供
M. Gaynor
S. Bradner
Harvard 大学
2001年4月1日

ファイアウォール強化プロトコル(FEP)
(Firewall Enhancement Protocol (FEP))

English

このメモの位置付け

このメモは、インターネットコミュニティに対して情報を提供します。 何らインターネット標準を規定するものではありません。 本書の配布に制限はありません。

著作権表記

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

要旨

インターネットの「エンド to エンド」アーキテクチャによるインターネットの透過性は、 新技術やサービスの目覚ましい革新をもたらしました [1]。 しかし、近年のファイアウォール技術における開発は、 このモデルを変更してしまい、 イノベーションを抑制することが示されてきた。 我々は、ファイアウォールのセキュリティモデルを破壊することなくイノベーションをできるようにするために、 FEP (Firewall Enhancement Protocol)を提案します。 ファイアウォール運用管理者からの協力をあおがずとも、FEPは、 あらゆるアプリケーションがファイアウォールを通り抜けることができるようにします。 我々の方法論は、あらゆるアプリケーション層TCP/IP (Transmission Control Protocol/User Datagram Protocol)パケットをHTTP (HyperText Transfer Protocol)プロトコル上に敷くことです。 なぜなら、HTTPパケットは、典型的には、 ファイアウォールを通過できるからです。 このスキームは、 ファイアウォールの実質的なセキュリティの有用性を破壊しません。 なぜならば、ファイアウォールは、外部からの攻撃を妨害し、 内部からの脅威を無視するように設計されているからです。 FEPの利用は、 現行のファイアウォールセキュリティモデルと互換性があります。 なぜならば、これは、 ファイアウォールの内側のホストからの協力を要求するからです。 FEPは、両世界にとって最善を実現できるようにします。 :すなわち、ファイアウォールのセキュリティと、 ファイアウォール経由の透過なトンネリングです。

1.0 用語法 English

本書中のキーワード"MUST"、 "MUST NOT"、"REQUIRED"、 "SHALL"、"SHALL NOT"、 "SHOULD"、"SHOULD NOT"、 "RECOMMENDED"、"MAY"、 "OPTIONAL"は、 RFC2119 [1] に記述されているように解釈されるべきものです。

2.0 はじめに English

インターネットは、「まだ10年も経っていませんが、 協働環境としては決して機能することは無いと通信業界が主張していたこと」を考えると、 うまくやってきました。 これについて、多くの理由があります。; 特に強い理由は、Reed、 SeltzerおよびClarkによって検討された「エンド to エンド論」[2] です。 「エンド」におけるイノベーションは、 かつて想像されていたよりも大きな価値を創り出す、 とても強力な方法論であることが証明されてきました。 しかし、Clarkが [6] において注目しているように、世界は変化しています。 産業界のインターネット接続に伴って、 セキュリティについての関心事は、 「エンド to エンド」パラダイムを破壊することさえも代償とするほどに、 最重要事項(paramount)となってしまいました。 一例は、ファイアウォール(外部者が、 企業内へ不正アクセスすることを防ぐデバイス)です。 我々の新しいプロトコルであるFEP (Firewall Enhancement Protocol)は、 ファイアウォールによって作られたセキュリティのレベルを維持しつつ、 「エンド to エンド」モデルを再構築するために設計されています。

「『エンド to エンド』モデルがいかに強力であるか」をみるために、 下例を検討しましょう。 ScottとMarkが、ある良いアイディアと、 ある程度の実装能力をもっている場合、彼らは、作品を作って、 それを使って、他の友人にそれを送ることができる。 これが良いアイディアであると判明した場合、この友人らは、 それを採用し、おそらくそれを改良することができる。 そこにファイアウォールを導入します。: Markが、 たまたまファイアウォールを導入している会社で働いている場合、 彼は、友人のScottと実験できません。 イノベーションは、より難しくなり、おそらく不可能です。 ScottとMarkが、 それらがユーザにより良いサービスを提供できるようにするための何らかの実験を行うことを望む場合、 ITマネージャーの仕事とは何でしょうか?
これは、Webが創り出された過程と同じです。: 才能と、 わずかな良いアイディアと、革新する能力をもった奴が居ました。

ファイアウォールは、重要であり、我々は、 (他者が迷惑を受けない限り)あらゆる者の自身を守る権限を、 彼らが望むいかなるやり方であれ尊重します。 ファイアウォールは、インターネットにおいて、動作し、 存在しています。 しかし、ファイアウォールは、内部の脅威からではなく、 外部の脅威から防護するために構築されています。 我々が提案したプロトコルは、 ファイアウォールのセキュリティモデルを壊しません。; ファイアウォールは、 なおも特定のファイアウォールが守ることができるすべての外部のリスクから守ります。 我々のプロトコルが動作するためには、 ファイアウォールの内側の者は、 TCP 80番ポートにアクセスできるアプリケーション層プロトコルを動作させなければなりません。 我々の概念設計は、 一貫したレベルのセキュリティを可能にする一方、 ファイアウォールに責任を負うITマネージャーを迂回する。 我々は、外部からのセキュリティと、 ことさらに妥協をはかること無しに、そして、最も良いのは、 承認のためにいかなるマネージャーをも巻き込む時間を費やす必要無しに、 革新するための自由を提供します。

我々は、増加しつつある、専らHTTPを使うアプリケーションから、 このアイディアを得ました。 なぜならば、HTTPは、 ファイアウォールのバリアを迂回できるからです。 この特定のアプリケーションの断片的な(piecemeal)配備は、 ファイアウォールによって作り出されたイノベーションの挑戦に適合させるためには効率的なやり方ではありません。 我々は、 TCP/IP自体がHTTP上を運ばれるようなプロセスを開発することを決意しました。

このイノベーションによって、あらゆる人々が、 特定のアプリケーション用にファイアウォールアクセスを扱うという面倒なプロセスを行う必要無しに、 あらゆる新しいTCP/IPアプリケーションを直ちに使えるようになります。 この提案の意図していなかった副産物は、 「既存のTCP/IPアプリケーションは、 ユーザにより良いサービスを提供するようにサポートされうること」です。 FEPがあれば、ユーザは、 「どのアプリケーションを動作させるか?」を判断できます。

我々のプロトコルは、シンプルであり、 IPパケットのMIME encodingについてのEastlakeの提案 [3] に基づいています。 我々は、 どこにでも存るHTTPプロトコルフォーマットを使います。 IPデータグラムは、 HTTPメッセージのメッセージbodyに入れて運ばれ、 TCPパケットヘッダー情報は、 そのメッセージのHTTPヘッダー中に符号化されます。 このヘッダーフィールドのASCII encodingは、 多くの優位性をもち、これには、可読性、 新しいアプリケーションのデバッグ可能性(debuggability)の向上、 および 、パケット情報のログ記録の容易性が含まれます。 これが広く採用されるようになる場合、 tcpdumpのようなツールは、陳腐化します。

3.0 FEPプロトコル English

図1は、我々のプロトコルの抽象的な概観を示します。 host A (outside the ファイアウォール)中のアプリケーション(1)は、 TCP/IPデータグラムをhost B (within the ファイアウォール)宛に送ります。 トンネルインターフェイスを使って、TCP/IPデータグラムは、 我々のFEPソフトウェア(2)宛に経路制御されます。 これは、HTTPメッセージ中のデータグラムを符号化します。 次に、このメッセージは、 HTTP/TCP/IPトンネル(3)経由で普通のHTTPポート(4)上のhost B宛に送られます。 これがhost Bに到達するとき、このパケットは、 そのトンネル経由でFEPソフトウェア(5)宛に経路制御されます。 (5)は、そのパケットをデコードし、 hostのBプロトコルスタック(6)に入れるTCP/IPデータグラムを作り出します。

このパケットは、 ファイアウォール(8)がまったく存在していなかったかのようにhost B(7)上のアプリケーション宛に経路制御されます。

             host A                                       host B
           ----------                                   ----------
          |    App   | (1)                             |    App   | (7)
          |----------|                                 |----------|
          |    TCP   |                                 |    TCP   |
          |----------|                                 |----------|
          |     IP   |                                 |    IP    | (6)
          |----------|                                 |----------|
          | FEP dvr  | (2)                             |  FEP dvr | (5)
          |----------|                                 |----------|
          |    TCP   |                                 |    TCP   |
          |----------|                                 |----------|
          |    IP    |         Firewall (8)            |    IP    |
           ----------              ---                  -----------
                 |       (3)       | |                       ^ (4)
                 +---------------->| |-----------------------+
                                   | |
                                   | |
                                   ---
                                   図1
    

3.1 HTTP Method English

FEPは、 両側がクライアントとサーバーのどちらにでも見えることを許容します。 各TCP/IPパケットは、HTTP GET requestとしても、あるいは、 GET requestに対するレスポンスとしても、送信されます。 この柔軟性は、 ファイアウォールを横断する妥当なHTTPコマンドを検証して、 望まないFEPパケットのinterceptingを止めることを試みるファイアウォールと共に、 うまく機能します。

3.2 TCP ヘッダーのカプセル化: English

この提案は、 IPv4ヘッダー情報を再現するために下記の新しいHTTPヘッダーを規定します。:

これらのオプションとしてのヘッダーは、 IPv4 [5] ヘッダーを、より良い可読性のための符号化用に使われます。 これらのフィールドは、 上記のTCPヘッダーフィールドと同様の作法で符号化されます。

base IPパケットは、既にHTTPヘッダー中にあるので、 下記のヘッダーは、オプションとしてのものです。 それらのNone/some/allは、 そのプログラマの気まぐれ(whim)に依存して使われる可能性があります。

(作業中)

IP_value_opt
このASCII stringは、
for the下記のフィールドs where a mandatory encoding type is not specified
その符号化typeを表現する。 正規の値は、TCP_value_optについてと同一である。
IP_Ver
IPバージョン番号。 UTF-8 stringとして符号化される。 このstringについての正規の値は、 "four", "five", "six"である。
IPヘッダー中のフィールドのencapsulationは、
in this section if the value is "four",
and in section 3.3 if the value is "six。
IP_Verの値として"five"をもつヘッダーについてのEncapsulationsは、
the right orders are received
場合、開発される。
for ヘッダーs with the IP_Ver value of "eight"
Encapsulationsは、空である。 実装は、これらの文字列について、 任意のnative languagesをサポートできなければならない(MUST)
IP4_Hlen
IPインターネットヘッダー長フィールド。 これは、TCP_DODOと同様のやり方で符号化される。
IP4_Type_of_Service (この名前は、case sensitiveである)
これは、
is an obsolete name for a フィールド in the IPv4 ヘッダー,
which has been replaced with IP_$$ and IP_CU。
IP_$$
6-bit Differentiated Services フィールド。
encapsulated as an UTF-8 string representing the name of the DS codepoint in the フィールド。
IP_CU
2-bit フィールド that was the 2 low-order bits of the TOS フィールド。
このフィールドは、現在、
for experiments it has to be coded in the most general way possible
使われているので、それゆえ、
it is encoded as 2 ASCII strings of the form "bit0=X" and "bit1=X," where "X" is "on" or "off"。
「bit 0は、MSBであること」に注意。
IP4_Total
16-bit合計長フィールド。 このフィールドの値を表現するASCII stringとして符号化される。
IP4_SSN
IP識別フィールド。 このフィールドの値を表現するASCII stringとして符号化される。
IP4_Flags
IPフラグ。
the set of 3 comma separated ASCII strings
として符号化される。:
[{"Must Be Zero"}, {"May Fragment"|"Don't Fragment"}, {"Last Fragment"|"More Fragments"}]
IP4_Frager
13-bit Fragment Offsetフィールド。
このフィールドの値を表現するASCII stringとして符号化される。
IP4_TTL
8-bit Time-to-Liveフィールド。
encoded as an UTF-8 string of the form "X hops to destruction"。
ここで、"X"は、
is the decimal value -1 of the フィールド。
実装は、 このstringについて任意(arbitrary)な言語をサポートできなければなりません(MUST)
IP4_Proto
8-bitプロトコルフィールド。
the common name for the プロトコル whose ヘッダー follows the IP ヘッダー
を表現するUTF-8 stringとして符号化される。
IP4_Checkit
16-bitチェックサムフィールド。
TCP_Checkitと同じ方法で符号化される。
IP4_Apparent_Source
32-bit発信元アドレスフィールド。
For ユーザ friendliness
this is encoded as an UTF-8 string representing the ドメイン名 of the apparent sender of the パケット。
An alternate form,
to be used when the ドメイン名自体 might be blocked by a ファイアウォール programmed to protect the innocence of the corporate ユーザs,
is an ASCII string representing the dotted quad form of the IPv4 アドレス。
IP4_Dest_Addr
32-bit宛先アドレスフィールド。
is IP4_Apparent_Source
と同じ方法で符号化される。
IP4_Opp_Lst
A comma-separated list of all IPv4 options that are present。
各オプションは、
as an ASCII string representing the name of the option followed by option-specific 情報 enclosed in square brackets
符号化される。
Representative options and their encoding follow,
他の IP options は、
follow the same form:

End of Options option: ["End of Options"]

Loose Source Routing option:
["Loose Source Routing", length, pointer, IP4_addr1, IP4_addr2, ...],
where length and pointer are ASCII strings representing the value of それらのフィールドs。

3.3 IPv6 ヘッダーのカプセル化: English

この提案は、 IPv6ヘッダー情報を再現するために下記の新しいHTTPヘッダーを規定します。:

これらのオプションとしてのヘッダーは、 IPv6 [5] ヘッダーを、より良い可読性(readability)のために符号化します。 これらのフィールドは、 上記TCPヘッダーフィールドと同様の作法で符号化されます。

base IPパケットは、既にHTTPヘッダー中に在るので、 下記のヘッダーは、オプションとしてのものです。 それらのNone/一部/すべては、 そのプログラマの気まぐれ(whim)に依存して使われる可能性があります。 現時点において、base IPv6ヘッダーのみがサポートされています。 十分な関心がある場合、 サポートがIPv6拡張ヘッダー用に配備されます。

(作業中)

IP_$$
6-bit Differentiated Services フィールド。(上記参照)
IP_CU
2-bit unused フィールド。(上記参照)
IP6_Go_with_the_Flow
20-bit Flow Labelフィールド。
このフィールドは、現在、使われていないので、
the UTF-8 string "do not care"
として符号化される必要がある。
IP6_PayLd
16-bit Payload長フィールド。
the フィールド
Eの値を表現する ASCII string として符号化される。
FEP with IPv6 jumbograms
の利用は、推奨されない。
IP6_NxtHdr
8-bit Nextヘッダーフィールド。
IP4_Protoと同じ方法で符号化される。
IP6_Hopping
8-bit Hop Limitフィールド。
IP4_TTLと同じ方法で符号化される。
IP6_Apparent_Source
128-bit Sourceアドレスフィールド。
For ユーザ friendliness,
これは、
of the apparent sender of the パケット
the ドメイン名を表現する UTF-8 stringとして符号化される。
An alternate form,
to be used when the ドメイン名自体 might be blocked by a ファイアウォール programmed to protect the innocence of the corporate ユーザs,
is an ASCII string representing any one of the legitimate forms of representing an IPv6 アドレス。
IP6_Dest_Addr
128-bit宛先(Destination)アドレスフィールド。
IP6_Apparent_Sourceと同じ方法で符号化される。

3.4 TCP ヘッダー圧縮 English

パケットの大きさを莫大にするものともいえるようなプロトコルに直面する際に、 TCPヘッダーを圧縮することは愚かであり、それゆえ、 我々は、それを無視します。

4.0 セキュリティについての考慮事項 English

このプロトコルはファイアウォールを扱うので、 本当のセキュリティについての考慮事項はありません。

5.0 謝辞 English

我々は、 インターネットの成功をもたらした革新を再現するための我々の作業を支援してくださった数多くのファイアウォールベンダーに感謝したいと思います。 彼らは、 ファイアウォールが提供するセロファンの僅かな葉っぱのようなセキュリティを諦めませんでした。

6.0 著者のアドレス

Mark Gaynor
Harvard University
Cambridge MA 02138

EMail gaynor@eecs.harvard.edu

Scott Bradner
Harvard University
Cambridge MA 02138

電話: +1 617 495 3864
EMail sob@harvard.edu

翻訳者のアドレス

独立行政法人 情報処理推進機構
技術本部 セキュリティセンター

(作業中)

参考文献

[1] Carpenter, B.,
"Internet Transparency",
RFC 2775, 2000年2月.
[2] Saltzer, J., Reed, D., and D. Clark,
"End-to-End Arguments in System Design".?
2nd International Conference on Distributed Systems, Paris, France, 1981年4月.
[3] Eastlake, D.,
"IP over MIME",
作業中。
[4] Postel, J.,
"Transmission Control Protocol", STD 7, RFC 793, 1981年9月.
[5] Postel, J.,
"Internet Protocol",
STD 5, RFC 791, 1981年9月.
[6] Clark, D. and M. Blumenthal,
"Rethinking the Design of the Internet: The end-to-end argument vs. the brave new world".
2000年.

著作権表記全文

Copyright (C) The Internet Society (2001). 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.

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.