ネットワーク WG
Request for Comments: 2401
廃止: 1825
分類: スタンダードトラック
S. Kent
BBN Corp
R. Atkinson
@Home Network
1998年11月

インターネットプロトコルのためのセキュリティアーキテクチャ
(Security Architecture for the Internet Protocol)

このメモの位置付け

本書は、 インターネットコミュニティに対してインターネットスタンダードトラックのプロトコルを定義するとともに、 それを改良するための議論や提言を求めるものである。 このプロトコルの標準化状態およびステータスについては、「Internet Official Protocol Standards」(STD 1) の最新版を参照すること。 このメモの配布に制限はない。

著作権表記

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

目次

1. はじめに

1.1 文書の要旨
1.2 対象とする読者
1.3 関連文書

2. 設計の目的

2.1 目標、目的、要求条件および問題点
2.2 注意および前提

3. システム概要

3.1 IPsecが行うこと
3.2 IPsecの動作
3.3 IPsecの実装場所

4. セキュリティアソシエーション

4.1 定義と範囲
4.2 セキュリティアソシエーションの機能
4.3 セキュリティアソシエーションの結合
4.4 セキュリティアソシエーションデータベース

4.4.1 セキュリティポリシーデータベース(SPD)
4.4.2 セレクタ
4.4.3 セキュリティアソシエーションデータベース(SAD)

4.5 セキュリティアソシエーションの基本的な組み合わせ

4.6 SAと鍵の管理

4.6.1 マニュアル手法
4.6.2 SAおよび鍵の自動管理
4.6.3 セキュリティゲートウェイの位置探索

4.7 セキュリティアソシエーションとマルチキャスト

5. IPトラフィック処理

5.1 出力IPトラフィック処理

5.1.1 SAまたはSAバンドルの選択と使用
5.1.2 トンネルモードでのヘッダ構成

5.1.2.1 トンネルモードでのヘッダ構成(IPv4)
5.1.2.2 トンネルモードでのヘッダ構成(IPv6)

5.2 入力IPトラフィック処理

5.2.1 SAまたはSAバンドルの選択と使用
5.2.2 AHおよびESPトンネルの処理方法

6. (IPsecと関連する)ICMP処理

6.1 PMTUおよびDF処理

6.1.1 DFビット
6.1.2 経路MTU探索(PMTU)

6.1.2.1 PMTUの伝播
6.1.2.2 PMTUの計算
6.1.2.3 PMTU処理のグラニュラリティ
6.1.2.4 PMTUのエージング

7. 監査

8. 情報フローセキュリティをサポートするシステムでの利用

8.1 セキュリティアソシエーションとデータセンシティビティの関係
8.2 センシティビティの一貫性チェック
8.3 セキュリティアソシエーションデータベース用の追加MLS属性
8.4 MLSネットワーキング用の追加入力処理ステップ
8.5 MLSネットワーキング用の追加出力処理ステップ
8.6 セキュリティゲートウェイ用の追加MLS処理

9. 性能に関する問題

10. 準拠に関する要求条件

11. セキュリティについての考慮事項

12. RFC 1825との相違点

謝辞

補遺 A 用語集

補遺 B PMTU、DF、分割に関する問題についての解釈および議論

B.1 DFビット
B.2 分割
B.3 経路MTU探索

B.3.1 生成元ホストの識別
B.3.2 PMTUの計算
B.3.3 PMTUデータのメンテナンスにおけるグラニュラリティ
B.3.4 PMTUデータのソケット別メンテナンス
B.3.5 PMTUデータのトランスポート層への配送
B.3.6 PMTUデータのエージング

補遺 C シーケンススペースウィンドウコードの例

補遺 D ICMPメッセージの分類

参考文献

免責事項

著者のアドレス

著作権表記全文

1. はじめに

1.1 文書の概要

このメモでは、 IPsecに準拠するシステムの基本的なアーキテクチャについて定義する。 このアーキテクチャの目標は、IPv4およびIPv6の両方の環境において、 IP層のトラフィックに様々なセキュリティサービスを提供することである。 この文書では、システムの目標、システムの構成要素、 そしてその構成要素がどのように連携するのか、 どのようにIP環境へ適用されるのかということについて定義する。 ただし、この文書では、 IPsecアーキテクチャのすべての側面を取り上げることはしない。 これに続く別の文書において、 NAT環境におけるIPsecの利用法やIPマルチキャストのより完全なサポートなど、 さらに進んだ機能のより詳細なアーキテクチャについて取り上げる予定である。 以下のIPsecセキュリティアーキテクチャの主要な構成要素について、 必要とされる基本的な機能を紹介する。 (a), (c), (d)のプロトコルは、 これに追加される別のRFC (別の文書へのポインタは 1.3章を参照のこと) において定義される。

  1. セキュリティプロトコル -- 認証ヘッダ(Authentication Header (AH))およびIP暗号ペイロード(Encapsulating Security Payload(ESP))
  2. セキュリティアソシエーション -- セキュリティアソシエーションとは何か、その動作、管理方法、 関連する処理について
  3. 鍵管理 -- マニュアルおよび自動鍵管理(Internet Key Exchange (IKE))
  4. 認証および暗号化のためのアルゴリズム

この文書では、 インターネットにおける総合的なセキュリティアーキテクチャを扱うのではなく、 暗号とプロトコルのセキュリティの仕組みの組み合わせによって提供される、 IP層におけるセキュリティのみを扱う。

この文書において、しなければならない(MUST)、 してはならない(MUST NOT)、要求される(REQUIRED)、 することになる(SHALL)、することはない(SHALL NOT)、 する必要がある(SHOULD)、しないほうがよい(SHOULD NOT)、 推奨される(RECOMMENDED)、してもよい(MAY)、 選択できる(OPTIONAL)のキーワードが使用された場合は、 RFC 2119 [Bra97]における定義に沿って解釈されるものとする。

1.2 対象とする読者

この文書が対象とする読者には、 IPセキュリティ技術を実装しようとする者、 およびこのシステムの一般的な背景の習得に関心のある者が含まれる。 特に、この技術を将来利用しようとするユーザ(エンドユーザまたはシステム管理者)が対象として含まれる。 知識の背景と語彙のギャップを埋めるために、 用語集を付録として付けておく。 この文書では、 読者がインターネットプロトコルおよび関連するネットワーク技術、 そして一般的なセキュリティ用語とコンセプトに精通していることを前提とする。

1.3 関連文書

上で説明したように、IPsecの構成要素の一部、 およびその相互関係について詳細に定義する文書が他に存在する。 それには、以下に関するRFCが含まれる。

  1. 「IP セキュリティ文書体系(IP Security Document Roadmap)」 [TDG97] -- このシステムで使用される暗号化および認証アルゴリズムを定義する仕様書のためのガイドラインを提供する文書。
  2. セキュリティプロトコル -- 認証ヘッダ(AH)[KA98a] およびIP暗号ペイロード(ESP)[KA98b] プロトコルを定義するRFC。
  3. 認証および暗号化のためのアルゴリズム -- それぞれのアルゴリズムについての個々のRFC。
  4. 自動鍵管理 -- 「Internet Key Exchange (IKE)」 [HC98]、「The Internet Security Association and Key Management Protocol (ISAKMP) [MSST97]、 「The OAKLEY Key Determination Protocol」 [Orm97]、 そして「The Internet IP Security Domain of Interpretation for ISAKMP」 [Pip98]のRFC。

2. 設計の目的

2.1 目標、目的、要求条件および問題点

IPsecは、IPv4およびIPv6に対して、 相互接続可能で高品質な暗号化ベースのセキュリティを提供するように設計されている。 提供されるセキュリティサービスには、アクセス制御、 コネクションレスインテグリティ、データ生成元認証、 リプレイに対する保護(部分的なシーケンスインテグリティの形式)、 守秘性(暗号)、そして限定されたトラフィックフロー守秘性が含まれる。 これらのサービスはIP層において提供され、 IPとその上位層プロトコルの保護機能を提供する。

これらのサービスの目標は、 認証ヘッダ(AH)とIP暗号ペイロード(ESP)の2つのトラフィックセキュリティプロトコルの利用、 および暗号鍵管理手法とそのプロトコルの利用によって達成される。 使用されるIPsecプロトコルのセット、およびプロトコルの使用法は、 ユーザ、アプリケーション、 そしてサイト/組織のセキュリティ要件とシステム要件によって決定される。

正確に実装され、使用された場合には、これらの仕組みは、 トラフィックの保護にこれらのセキュリティの仕組みを使用しないユーザ、 ホスト、およびその他のインターネット構成要素に対して不利な影響を及ぼすものであってはならない。 また、これらの仕組みはアルゴリズムに依存しないように設計されている。 このモジュラー方式により、実装の他の部分へ影響を与えることなく、 異なるアルゴリズムのセットを選択することが可能となる。 例えば、必要であれば(小集団を作ることにより)ユーザコミュニティ毎に異なるアルゴリズムのセットを選択する場合があるだろう。

インターネット全体における相互接続性を促進するため、 デフォルトのアルゴリズムの標準セットが指定されている。 これらのアルゴリズムをIPsecトラフィック保護プロトコルおよび鍵管理プロトコルと連携して利用することにより、 システム開発者およびアプリケーション開発者が、 インターネット層における高品質な暗号セキュリティ技術を実装することが可能となる。

2.2 注意および前提

IPsecプロトコル群とそのデフォルトのアルゴリズムは、 インターネットトラフィックに高品質なセキュリティを提供するために設計されている。 しかしながら、これらのプロトコルの利用によって提供されるセキュリティは、 プロトコルの実装品質に完全に依存しており、 その問題はこの標準セットの範囲外である。 さらに、コンピュータシステムやネットワークのセキュリティは、人的、 物理的、手順、危険からの影響や、 コンピュータセキュリティ対策などを含む多くの要因からなっている。 このように、IPsecは、 総合的なシステムセキュリティアーキテクチャの一部に過ぎないのである。

最後に、IPsecによってもたらされるセキュリティは、 IPsecの実装される運用環境の多くの要因に深く依存している。 例えば、OSのセキュリティ上の欠陥、低品質な乱数発生源、 ずさんなシステム管理手順や手法などはすべて、 IPsecによって提供されるセキュリティを低下させる要因となり得る。 このようないかなる環境上の属性も、IPsec標準の範囲には含まない。

3. システム概要

この章では、IPsecの動作、システムの構成要素、 そして上で述べたセキュリティサービスを提供するために各構成要素がどのように連携するかということについて概要を述べる。 ここでの目標は、読者が処理とシステムの全体について「想像」でき、 それがIP環境にどのように適用されるのかを目にすることができるようにすること、 そして各構成要素をより詳細に記述したこの文書の後半部分の周辺状況を提供することである。

IPsecの実装は、ホストまたはセキュリティゲートウェイ環境で動作し、 IPトラフィックに対する保護を提供する。 提供される保護は、ユーザまたはシステム管理者によって作成、 管理されるセキュリティポリシーデータベース(Security Policy Database (SPD))、または、 ユーザまたはシステム管理者が作る制約内で動作するアプリケーションによって定義される要求条件に基づいている。 一般的に、パケットはデータベース(SPD)のエントリにマッチしたIPおよびトランスポート層ヘッダの情報に従って、 3つの処理モードのうちの1つに選択される(4.4.2章のセレクタ)。 各パケットは、 セレクタによって識別される適用可能なデータベースのポリシーに従って、 IPsecセキュリティサービスが適用されるか、そのパケットが破棄されるか、 またはそのパケットがIPsecをバイパスされるかのいずれかの処理がされる。

3.1 IPsec が行うこと

IPsecでは、システムに要求されるセキュリティプロトコルを選択させ、 サービスに利用するアルゴリズムを決定させ、 要求されたサービスの提供に必要な暗号鍵を配備させることによって、 IP層におけるセキュリティサービスを提供する。 IPsecは、ホスト間、セキュリティゲートウェイ間、 およびセキュリティゲートウェイとホストの間の1つ以上の「経路」の保護に利用できる(「セキュリティゲートウェイ」は、 IPsecプロトコルを実装する中間システムを表すものとして、 IPsec文書全体で用いられる。 例えば、IPsecを実装するルータやファイアウォールはセキュリティゲートウェイとなる)。

IPsecが提供可能なセキュリティサービスには、アクセス制御、 コネクションレスインテグリティ、データ生成元認証、 リプレイパケットの拒否(部分的なシーケンスインテグリティの形式)、 守秘性(暗号)、そして限定されたトラフィックフロー守秘性が含まれる。 これらのサービスはIP層において提供されるため、上位層プロトコル、 すなわち、TCP、UDP、ICMP、BGPなどでも利用することが可能である。

IPsec DOIはまた、IP圧縮のネゴシエーション [SMPT98] もサポートする。 これは、IPsecで暗号化が使用された場合に下位プロトコル層による効果的な圧縮が妨げられるという観測が一部動機となっている。

3.2 IPsec の動作

IPsecはトラフィックセキュリティを提供するために、 認証ヘッダ(AH)および暗号ペイロード(ESP)の2つのプロトコルを使用する。 各プロトコルの詳細はそれぞれのRFCにおいて定義される [KA98a, KA98b]。

これらのプロトコルは、 IPv4およびIPv6において希望するセキュリティサービスのセットを提供するために、 単独でも組み合わせて適用しても良い。 各プロトコルは、 2つの使用モード(トランスポートモードとトンネルモード)をサポートする。 トランスポートモードでは、 プロトコルは主に上位層プロトコルの保護を提供し、トンネルモードでは、 トンネルIPパケットに対してプロトコルが適用される。 2つのモードの違いについては、4章にて説明する。

IPsecはユーザ(またはシステム管理者)に対し、 セキュリティサービスが提供されるグラニュラリティの制御を許可する。 例えば、 2つのセキュリティゲートウェイ間のすべてのトラフィックを運ぶ1つの暗号化トンネルを作成することもできるし、 これらのゲートウェイを越えて通信するホスト間の各TCPコネクションのために別の暗号化トンネルを作成することもできる。 IPsecの管理は、以下の事項を指定するための機能を持たなければならない。

これらのセキュリティサービスは共有秘密値(暗号鍵)を使用するため、 IPsecはこれらの鍵を配備する独立した仕組みのセットに依存する(鍵は認証/インテグリティおよび暗号化サービスに使用される)。 この文書では、 鍵のマニュアル配送および自動配送の両方のサポートを要求する。 この文書では、自動鍵管理にある特定の公開鍵ベースのアプローチ(IKE -- [MSST97Orm97HC98])を指定するが、 その他の自動鍵配送技術を利用してもよい(MAY)。 例えば、 ケルベロスのようなKDCベースのシステムやSKIPのような公開鍵システムを利用することができる。

3.3 IPsec の実装場所

ホスト上で、 または(セキュリティゲートウェイを構築するために)ルータやファイアウォールと連携してIPsecを実装するには、 いくつかの方法がある。 一般的な例を以下に示す。

  1. ネイティブIP実装とIPsecの統合。
  2. これには、IP送信元コードへのアクセスが必要であるが、 ホストおよびセキュリティゲートウェイの両方に適用可能である。
  3. 「bump-in-the-stack」(BITS)実装。 IPsecをネイティブIPとローカルネットワークの間の、 既存のIPプロトコルスタック実装の下に実装するもの。
  4. この場合、IPスタックに対する送信元コードアクセスは要求されないため、 この実装アプローチは既存システムでの利用に適したものとなっている。 このアプローチは通常ホスト上で使用される。
  5. 外部暗号化プロセッサの使用は、 軍事および一部の商用システムで使用されるネットワークセキュリティシステムの共通設計思想である。
  6. これはしばしば、「bump-in-the-wire」(BITW)実装と呼ばれる。 この実装は、 ホストまたはゲートウェイ(あるいは両方)へのサービスのために設計される場合がある。 通常、BITWデバイスにはIPアドレスを付与することが可能である。 これは、単独ホストをサポートする場合はBITS実装に非常に似ているが、 ルータまたはファイアウォールをサポートする場合はセキュリティゲートウェイのように動作しなければならない。

4. セキュリティアソシエーション

この章では、すべてのIPv6の実装、およびAH、ESP、 または両方を実装するIPv4の実装のための、 セキュリティアソシエーションの管理に関する要求条件を定義する。 「セキュリティアソシエーション」(SA)の概念はIPsecの基本となるものである。 AHおよびESPの両方がSAを使用し、IKEの主要機能によって、 セキュリティアソシエーションの確立とメンテナンスがなされる。 AHまたはESPのすべての実装は、 以下に示すセキュリティアソシエーションの概念をサポートしなければならない(MUST)。 この章の備考では、 セキュリティアソシエーションの管理における様々な側面について説明し、 SAポリシー管理、トラフィック処理、SA管理技術に要求される特長を定義する。

4.1 定義と範囲

セキュリティアソシエーション(SA)は、 それによって運ばれるトラフィックに対してセキュリティサービスを提供する単方向の「コネクション」である。 セキュリティサービスは、AHまたはESPのいずれか(両方ではない)を使用することによってSAに提供される。 AHおよびESP保護の両方がトラフィックの流れに対して適用される場合は、 そのトラフィックの流れを保護するために複数のSAが生成される。 2つのホスト間、 または2つのセキュリティゲートウェイ間の双方向の通信を保護するためには、 2つのセキュリティアソシエーション(それぞれの方向に1つづつ)が必要である。

セキュリティアソシエーションは、 セキュリティパラメータインデックス(Security Parameter Index(SPI))、 IP宛先アドレス、 セキュリティプロトコル(AHまたはESP)識別子の3つによって一意に識別される。 原則として、宛先アドレスはユニキャストアドレス、 IPブロードキャストアドレス、またはマルチキャストグループアドレスとなる。 ただし、IPsecのSA管理の仕組みは現在のところ、 ユニキャストSAに対してのみが定義されている。 以下に説明するように、SAの概念は2点間の通信の場合において記述するが、 1対Nの場合にも適用可能である。

前に説明したように、 2つのタイプ(トランスポートモードおよびトンネルモード)のSAが定義される。 トランスポートモードSAは、 2つのホスト間のセキュリティアソシエーションである。 IPv4では、トランスポートモードのセキュリティプロトコルヘッダは、 IPヘッダとすべてのオプションの直後、 すべての上位層プロトコル(例えばTCP、UDPなど)の直前に現れる。 IPv6では、セキュリティプロトコルヘッダは、 基本IPヘッダおよび拡張ヘッダの後に現れるが、 宛先オプションの前または後、 および上位層プロトコルの前に現れる可能性がある。 ESPの場合、トランスポートモードSAは、 上位層プロトコルに対するセキュリティサービスのみを提供し、 IPヘッダや、ESPヘッダに先行する拡張ヘッダにはサービスは提供されない。 AHの場合、IPヘッダの選択された部分、拡張ヘッダの選択された部分、 および選択されたオプション(IPv4ヘッダ、IPv6中継点拡張ヘッダ、 またはIPv6宛先拡張ヘッダに含まれる)にも保護が拡張される。 AHのカバー範囲についての詳細は、 AHの仕様 [KA98a]を参照のこと。

トンネルモードSAは、基本的にIPトンネルに対して適用されるSAである。 セキュリティアソシエーションの終端の一方がセキュリティゲートウェイである場合は、 常に、SAはトンネルモードでなければならない(MUST)。 従って、2つのセキュリティゲートウェイ間のSAは常にトンネルモードSAであり、 ホストとセキュリティゲートウェイの間のSAも同様にトンネルモードとなる。 ただし、 セキュリティゲートウェイ行きのトラフィックの場合(例えばSNMPコマンド)は、 セキュリティゲートウェイはホストとして動作し、 トランスポートモードが許可されることに注意すること。 しかしこの場合、セキュリティゲートウェイはゲートウェイとして動作せず、 すなわちトラフィックは転送しない。 また、2つのホスト間でトンネルモードを確立してもよい(MAY)。 IPsecパケットの分割と再構成に関する潜在的問題を回避する必要のため、 さらにセキュリティゲートウェイの背後の同じ宛先に対して複数の経路が存在する状況(例えば異なるセキュリティゲートウェイを経由する場合)では、 トンネルSAとなるセキュリティゲートウェイを含むすべての(通過トラフィック)SAが要求される。

トンネルモードSAには、 IPsec処理の宛先を示す「外側」IPヘッダに加え、 (外見上)パケットの最終の宛先を指定する「内側」IPヘッダが存在する。 セキュリティプロトコルヘッダは、外側IPヘッダの後、 および内側IPヘッダの前に現れる。 AHがトンネルモードで使用される場合、 外側IPヘッダの一部に保護が与えられるとともに、 トンネルされたすべてのIPパケットが保護される(すなわち、 すべての内側IPヘッダと上位層プロトコルが保護される)。 ESPが使用される場合は、トンネルされたパケットのみが保護され、 外側ヘッダは保護されない。

以上まとめると、

  1. ホストはトランスポートモードとトンネルモードの両方をサポートしなければならない(MUST)
  2. セキュリティゲートウェイはトンネルモードのサポートのみが要求される。
  3. トランスポートモードをサポートする場合は、それはセキュリティゲートウェイがホストとして動作する場合のみに使用される必要がある(例えばネットワーク管理など)。

4.2 セキュリティアソシエーションの機能

SAが提供するセキュリティサービスは、選択されたセキュリティプロトコル、 SAモード、SAの終端、 およびプロトコルでのオプションのサービスの選定に依存する。 例えば、AHはIPデータグラムにデータ生成元認証とコネクションレスインテグリティを提供する(以降、 単に「認証」と呼ぶことにする)。 認証サービスの「精度」は、 AHが使用されるセキュリティアソシエーションのグラニュラリティの機能であり、 これについては4.4.2章の「セレクタ」で説明する。

AHはまた、サービス妨害攻撃に対抗するために、 受信側の選択でリプレイ防止サービス(部分的なシーケンスインテグリティ)を提供する。 守秘性が要求されない(あるいは、 例えば暗号化の利用に関する政府規制のために守秘性が許可されない)場合には、 AHが適切なプロトコルとして使用される。 AHはまた、IPヘッダの選択された部分に対する認証も提供し、 これはある時に必要となる場合がある。 例えば、IPv4オプションまたはPv6拡張ヘッダのインテグリティが、 送信側と受信側の経路間で保護されなければならない場合に、 AHのこのサービスを提供することができる(予測不可能に変化するIPヘッダの部分を除く)。

ESPはオプションでトラフィックの守秘性を提供する。 (守秘性サービスの強度は、使用する暗号化アルゴリズムに一部依存する。) ESPは(上で定義したように)オプションで認証も提供する。 認証がESP SAでネゴシエートされる場合には、 受信側がAHリプレイ防止サービスと同じ機能を持つリプレイ防止サービスの適用を選択する場合がある。 ESPが提供する認証の範囲は、AHのものより狭い。 すなわち、ESPヘッダの「外側にある」IPヘッダは保護されない。 上位層プロトコルのみの認証が必要であるならば、 ESP認証を選択することが適切であり、 この場合AHカプセル化ESPを使用するよりもスペース効率がよい。 ここで、守秘性と認証はいずれもオプションであるが、 除外することができないことに注意すること。 少なくともどちらか1つは選択しなければならない(MUST)

守秘性サービスを選択する場合、 2つのセキュリティゲートウェイ間のESP(トンネルモード)SAは、 部分的なトラフィックフロー守秘性を提供することができる。 トンネルモードを使用することによって、内側IPヘッダが暗号化され、 (最終端の)トラフィックの送信元と宛先の情報が隠される。 さらにパケットサイズを隠すために、ESPペイロードでパディングも実行され、 トラフィックの外部特性を隠すことができる。 同様のトラフィックフロー守秘性サービスは、 ダイアルアップ環境でモバイルユーザが動的IPアドレスを割り当てられ、 企業のファイアウォール(セキュリティゲートウェイとして動作)に対して、 (トンネルモード)ESP SAを確立する際に提供される場合がある。 ここで、一般的に細かいグラニュラリティのSAは、 多くの加入者からトラフィックを運ぶ粗いグラニュラリティのSAに比べ、 トラフィック解析に対してより脆弱であることに注意すること。

4.3 セキュリティアソシエーションの結合

個々のSA上を転送されるIPデータグラムには、 AHまたはESPのいずれか一方(両方ではない)のセキュリティプロトコルによる保護が与えられる。 場合によっては、 単独のSAで達成できない特定のトラフィックフローに対して、 セキュリティポリシーがサービスの結合を要求することもある。 このような場合、要求されるセキュリティポリシーを実現するために、 複数のSAを使用することが必要となるだろう。ここで、 セキュリティポリシーを満足するためにトラフィックを処理しなければならないSAのシーケンスに対して「セキュリティアソシエーションバンドル」または「SAバンドル」という言葉を適用することにする(バンドルを構成するSAは、 異なる終端で終了する場合があることに注意すること。 例えば、あるSAがモバイルホストとセキュリティゲートウェイの間に存在し、 2番目の入れ子にされたSAはゲートウェイの背後のホストに対して存在することがある)。

セキュリティアソシエーションは2つの方法(トランスポート隣接と反復トンネリング)でバンドルされる。

反復トンネリングには、3つの基本ケースがあるが、 2と3のケースのみをサポートすればよい。

  1. SAの両方の終点が同じ -- Host 1が両方とも同じものを指定、すなわち、 AHの内側にAHを、またはESPの内側にESPを指定する可能性はあまりないが、 内側および外側のトンネルが、それぞれAHあるいはESPのいずれかとなり得る。
    Host 1 --- Security ---- Internet -- Security --- Host 2
    
     | |        Gwy 1                      Gwy 2        | |
    
     | |                                                | |
    
     | -------Security Association 1 (tunnel)---------- | |
    
     |                                                    |
    
     ---------Security Association 2 (tunnel)--------------
  2. SAの片方の終点が同じ -- 内側および外側のトンネルが、 AHまたはESPのいずれかとなり得る。
    Host 1 --- Security ---- Internet -- Security --- Host 2
    
     | |        Gwy 1                      Gwy 2         |
    
     | |                                     |           |
    
     | ----Security Association 1 (tunnel)----           |
    
     |                                                   |
    
     ---------Security Association 2 (tunnel)-------------
  3. どちらの終点も同じでない -- 内側および外側のトンネルがAHまたはESPのいずれかとなり得る。
    Host 1 --- Security ---- Internet -- Security --- Host 2
    
     |          Gwy 1                      Gwy 2         |
    
     |            |                          |           |
    
     |            --Security Assoc 1 (tunnel)-           |
    
     |                                                   |
    
     -----------Security Association 2 (tunnel)-----------

これらの2つのアプローチは、結合することも可能である。 例えば、SAバンドルを1つのトンネルモードSAと1つまたは2つのトランスポートモードSAから順番に組み立てることができる(4.5章「セキュリティアソシエーションの基本的な組み合わせ」を参照)。 ここで、入れ子にされたトンネルは、 どのトンネルの送信元終点も宛先終点も重ならない場合にも起こり得ることに注意すること。 この場合は、 入れ子にされたトンネルに対応するバンドルを持つホストまたはセキュリティゲートウェイは存在しないことになる。

トランスポートモードSAでのセキュリティプロトコルの順序は、 ただ1つだけが適しているようである。 AHは上位層プロトコルとIPヘッダ(の一部)の両方に適用される。 従って、AHをトランスポートモードでESPと組み合わせて使用する場合は、 AHはESPが出現する前の、 IPヘッダの後の最初のヘッダとして現れる必要がある(SHOULD)。 この場合、AHはESPの暗号文の出力に対して適用される。 それとは対照的に、トンネルモードSAでは、 AHとESPを様々な順序で使用することが想定できる。 IPsecに準拠する実装がサポートしなければならない(MUST)、 必須のSAバンドルタイプのセットについては、 4.5章にて説明する。

4.4 セキュリティアソシエーションデータベース

IPsecの実装におけるIPトラフィック処理に関連する部分の詳細の多くは、 ローカルの問題であり標準化するには適さない。 しかしながら、処理の外部側面については、相互接続性の確保、 およびIPsecの効率的な利用にとって重要な最小限の管理機能を提供するために標準化されなければならない。 これらの相互接続性と機能上の目標のため、 この章ではセキュリティアソシエーションに関連するIPトラフィック処理のための一般モデルについて説明する。 以下に示すモデルは名目上のものであり、 準拠する実装はこのモデルで示す詳細に一致させる必要はないが、 実装の外部動作はこのモデルの外部から見える特長に対応付けることが可能でなければならない。

このモデルでは、2つの名目上のデータベース、 セキュリティポリシーデータベースとセキュリティアソシエーションデータベースが存在する。 前者は、ホスト、セキュリティゲートウェイ、 BITSまたはBITW IPsec実装からのすべての入力/出力トラフィックの処理を決定するポリシーを指定する。 後者は、それぞれの(アクティブな)セキュリティアソシエーションに関連するパラメータを含むデータベースである。 この章ではさらに、トラフィックをポリシーすなわちSA(またはSAバンドル)に対応付けるためにセキュリティポリシーデータベースが使用する、 IPおよび上位層プロトコルフィールド値のセットであるセレクタの概念についても定義する。

IPsecが有効となる各インタフェースには、 セレクタとして使用される多くのフィールドが方向性を持つため、名目上、 入力および出力で独立したデータベース(SADとSPD)が必要とされる。 通常、ホストまたはセキュリティゲートウェイ(SG)のインタフェースは1つだけである。 SGは常に少なくとも2つのインタフェースを持つが、 企業ネットに対する「内部の」インタフェースは通常IPsecが有効となっていないことから、 1つのSADペアと1つのSPDペアのみが必要とされることに注意すること。 その一方、ホストが複数インタフェースを持っていたり、 SGが複数の外部インタフェースを持つのであれば、 それぞれのインタフェース用に、 独立したSADとSPDのペアを持つ必要がある場合がある。

4.4.1 セキュリティポリシーデータベース(SPD)

結局、セキュリティアソシエーションはIPsec環境においてセキュリティポリシーの実行のために使用される管理構造である。 従って、SA処理の重要な要素は、 どのようなサービスをどのような形態でIPデータグラムに提供するかを指定する、 基本的なセキュリティポリシーデータベース(SPD)である。 データベースとそのインタフェースの形式についてはこの仕様の範囲外である。 しかしながら、この章では、 ホストによって送信または受信されるトラフィックや、 セキュリティゲートウェイを通過するトラフィックに対するIPsecの適用をユーザやシステム管理者が管理できるようにするために必要な最低限の管理機能について定義する。

非IPsecトラフィックを含むすべてのトラフィック(入力および出力)の処理中に、 SPDを参照しなければならない。 これをサポートするために、SPDは入力と出力で別のエントリを必要とする。 これは、(入力および出力で)別のSPDとして考えることができる。 さらに、名目上別のSPDが、 IPsecが有効な各インタフェースに対して提供されなければならない。

SPDは、IPsec保護を受けるトラフィックおよびIPsecのバイパスが許可されるトラフィックを識別しなければならない。 これは、送信側によって適用されるIPsec保護、 および受信側に存在しなければならないIPsec保護に適用される。 すべての出力および入力データグラムに対して、 3つの処理(破棄、IPsecのバイパス、IPsecの適用)が選択できる。 最初の選択は、ホストからの出力、セキュリティゲートウェイの通過、 アプリケーションへの配送が全く許可されないトラフィックがあてはまる。 2番目の選択は、 IPsec保護を加えない状態で通過を許可されるトラフィックがあてはまる。 最後の選択は、IPsec保護が与えられるトラフィックがあてはまり、 この場合SPDは、 そのトラフィックに対して提供するセキュリティサービス、 使用するプロトコル、使用するアルゴリズムなどを指定しなければならない。

すべてのIPsecの実装は、 ユーザやシステム管理者がSPDを管理することのできる管理インタフェースを持っていなければならない(MUST)。 特に、 すべての入力または出力パケットはIPsecによる処理を受けなければならず、 SPDはそれぞれの場合にどのような処理を行うのかを指定しなければならない。 従って、管理インタフェースでは、ユーザ(あるいはシステム管理者)が、 システムに出入りするすべてのパケットに適用すべきセキュリティ処理をパケット単位で指定できるようにしなければならない。 (ソケットインタフェースを使用するホスト上でのIPsecの実装では、 SPDにパケット単位の参照を必要としない場合があるが、 効果は同じである)。 SPDの管理インタフェースでは、 4.4.2章で定義されるセレクタと一致するエントリの生成を許可しなければならず(MUST)、 さらに、 これらのエントリの(全体的な)順序付けをサポートしなければならない(MUST)。 様々なセレクタフィールドでワイルドカードが使用されるため、また、 単一のUDPまたはTCPコネクション上のすべてのパケットが1つのSPDエントリにマッチする傾向があるため、 この要求条件はSPDの仕様に対して過度なレベルの詳細は強制しないと予想される。 セレクタはステートレスなファイアウォールやフィルタリングルータと類似しており、 現時点ではこの方法で管理が可能である。

ホストシステムでは、アプリケーションが作成、 使用するトラフィックに適用するセキュリティ処理は、 そのアプリケーションに選択させてもよい(MAY)。 (IPsecの実装に対するこの要求のシグナリングの手段については、 この標準の範囲外である。)しかし、 ユーザまたはアプリケーションが(デフォルトの)システムポリシーを無効にできるか否かについてシステム管理者が指定できるようにしなければならない(MUST)。 ここで、 アプリケーションの要件を満たすために必要なIPsec処理以上の追加処理をシステムが行う必要がないように、 アプリケーションが指定するポリシーはシステム要件を満たす場合があることに注意すること。 管理インタフェースの形式についてはこの文書では指定せず、 これはホストとセキュリティゲートウェイで異なる場合がある。 また、ホストでは、 ソケットベースとBITS実装でインタフェースが異なる場合がある。 ただし、すべての IPsec 実装がサポートしなければならない(MUST)SPD要素の標準セットについてはこの文書で定義する。

SPDにはポリシーエントリの順番リストが含まれる。 各ポリシーエントリは、 このポリシーエントリに包含されるIPトラフィックのセットを定義する1つ以上のセレクタをキーとする。 (要求されるセレクタタイプは4.4.2章で定義する)。 これらはポリシーまたはSAのグラニュラリティを定義する。 各エントリには、このポリシーにあてはまるトラフィックをバイパスさせるか、 破棄するか、IPsec処理を受けさせるかどうかの指示が含まれる。 IPsec処理が適用される場合、エントリには、 使用するIPsecプロトコル、モード、アルゴリズムをリストした、 すべての入れ子要件を含むSA(またはSAバンドル)仕様が含まれる。 例えば、エントリはマッチしたすべてのトラフィックに対して、 HMAC/SHA-1を使用するトンネルモードのAHの内側に明示的IVを持つ3DES-CBCを使用するトランスポートモードのESPを入れ子にした保護を要求することがある。 ポリシーエントリは各セレクタに対して、 SPDとパケット内の値から、 新しいセキュリティアソシエーションデータベース(SAD、 4.4.3章を参照のこと)エントリに対応する値を導き出す方法を以下から指定する(現在のところ、 範囲指定はIPアドレスに対してのみサポートされているが、 ワイルドカードはすべてのセレクタで表現できることに注意すること)。

  1. パケット自身にある値を使用 -- この場合、ポリシーエントリのセレクタが、 このセレクタに対して許可される値の範囲またはワイルドカードを持っていたとしても、 そのSAの使用は、 セレクタに対するこのパケットの値を持つパケットのみに限定される。
  2. ポリシーエントリに関連する値を使用 -- これが単独の値となる場合には、(a) と (b) には違いがない。
  3. しかし、セレクタに対して許可される値が範囲指定(IPアドレス用)またはワイルドカードであれば、 範囲指定の場合には、 (b)はSAの生成のトリガーとなったパケットのセレクタ値を持つパケットのみならず、 その範囲内のセレクタ値を持つあらゆるパケットにそのSAの使用が許可される。
    ワイルドカードの場合には、 (b)はこのセレクタに対してどの値を持つパケットにもそのSAの使用が許可される。

例えば、 許可される送信元アドレスの値がホストの範囲(192.168.2.1から192.168.2.10)であるSPDエントリを考えてみる。 さらに、送信元アドレスが192.168.2.3であるパケットが送られるとする。 SAに対して使用される値は、 このセレクタに対するポリシーエントリで示されているセレクタ値のソースによって、 以下のサンプル値のいずれかとなる。

SAで使用される値のソース  新しいSADセレクタ値の例
------------------------  -----------------------
a. パケット               192.168.2.3(1 つのホスト)

b. SPDエントリ            192.168.2.1から192.168.2.10(ホストの範囲)

ここで、 SPDエントリが許可される送信元アドレスとしてワイルドカード値を持っている場合、 SADセレクタ値はワイルドカード(すべてのホスト)となり得ることに注意すること。 ケース(a)は、同じSPDエントリにマッチするパケットの間であっても共有を禁止するために使用することができる。

後の4.4.3章で説明するように、 セレクタには「ワイルドカード」エントリが含まれることがあるため、 2つのエントリに対するセレクタは重複する場合がある。 (これは、ルータやパケットフィルタリングファイアウォールで発生するACLまたはフィルタエントリの重複と類似している)。 従って、一貫性のある予測可能な処理を保証するため、 最初にマッチしたエントリが常に選択されるように、 SPDエントリは順序付けされなければならず(MUST)、 さらにSPDは常に同じ順序で検索されなければならない(MUST)。 (SPDエントリに対するトラフィック処理の効果が確実でなければならないことからこの要求条件が必要とされるが、 一部のセレクタにワイルドカードの使用が与えられたSPDエントリを規則化する方法は存在しない)。 SPDエントリに対するパケットのマッチングに関しての詳細は、 5章で説明する。

ESPが指定される場合、 認証または暗号化のいずれかが省略できる(両方を省略することはできない)ことに注意すること。 従って、認証または暗号化アルゴリズムのためのSPD値を「NULL」に設定することができなければならない(MUST)。 ただし、 これらのサービスのうち少なくとも1つが選択されなければならない(MUST)。 すなわち、 両方のサービスを「NULL」に設定できるようにしてはならない(MUST)

SPDは特定のSAまたはSAバンドルへトラフィックを対応付けるために使用することができる。 このため、SPDはセキュリティポリシーに対する参考データベースとして、 また既存のSA(またはSAバンドル)へのマップとして機能することができる。 (前に説明した、バイパスおよび破棄についてのポリシーを取り込むため、 これらの機能は本来IPsecの処理ではないのであるが、 SPDはこれらの機能へトラフィックをマッピングする手段も提供しなければならない(MUST)。) SPDの動作は、入力と出力のトラフィックで異なり、 ホストとセキュリティゲートウェイ、BITS、BITW実装でも異なる場合がある。 5.1章5.2章では、 出力および入力処理のためのSPDの使用についてそれぞれ説明する。

指定されたトラフィックに複数のSAをある特定の順序で適用するようにセキュリティポリシーで要求する場合があるため、 ポリシーエントリは、順序付けに関する要求条件が存在する場合は、 その要求条件をSPD内に保持しなければならない。 従って、 出力または入力パケットがSAの順序に沿って処理されなければならないことを、 IPsec実装が決定できるようにしなければならない。 概念的には、出力処理については、 アクティブなSAが存在するSPDエントリから(SADへの)リンクが想定され、 各エントリは、単独のSAか、SAバンドルを構成するSAの順序付きリストのどちらかで構成される。 パケットがSPDエントリにマッチし、 トラフィックを運ぶために使用できる既存のSAまたはSAバンドルが存在する時、 パケットの処理はSAまたはリスト上のSAバンドルエントリによって制御される。 複数のIPsec SAが適用される入力IPsecパケットについては、宛先アドレス、 IPsecプロトコル、そしてSPIに基づく検索によって1つのSAを識別する必要がある。

SPDは、 セキュリティゲートウェイの背後にあるエンティティに出入りする、 セキュリティおよび鍵管理トラフィック(例えばISAKMP)を含む、 IPsecシステムを通過するすべてのトラフィックのフローを制御するために使用される。 これは、ISAKMPトラフィックがSPD内で明示的に説明されていなければならず、 そうでない場合は破棄されることを意味する。 ここで、セキュリティゲートウェイは、 例えばESPパケットに対してSPD内に破棄エントリを持ったり、 あるいはプロキシ鍵交換を提供するなどの様々な方法によって、 暗号化されたパケットの通過を禁止することが可能であることに注意すること。 後者の方法では、 トラフィックはセキュリティゲートウェイ内の鍵管理モジュールに内部で送られる。

4.4.2 セレクタ

SA(またはSAバンドル)は、 SAに対するトラフィックのセットを定義するために使用されるセレクタに応じて、 細かい精製(fine-grained)または粗い精製(coarse-grained)となる。 例えば、2つのホスト間のすべてのトラフィックは、 1つのSAを経由させて運ばれても良く、この場合、 そのトラフィックには統一されたセキュリティサービスが与えられる。 これとは別に、ホスト間のトラフィックは、 使用されるアプリケーションに応じて(次プロトコルフィールドおよびポートフィールドの定義に従って)、 SAによって提供されるセキュリティサービスが異なる複数のSAに分散する場合がある。 同様に、セキュリティゲートウェイ間のすべてのトラフィックは、 1つのSAで運ぶことも可能であり、また、 それぞれの通信ホスト間にSAを1つずつ割り当てることも可能である。 SAのグラニュラリティ制御を容易にするために、 SA管理用に以下のセレクタパラメータをサポートしなければならない(MUST)。 ここで、ESPヘッダを持つパケットを受信する場合、例えば、 カプセル化セキュリティゲートウェイまたはBITW実装の場合には、 トランスポート層プロトコル、送信元/宛先ポート、 名前(存在する場合)は「不透明(OPAQUE)」となる場合があることに注意すること。 すなわち、暗号化または分割のためにアクセス不能となる場合がある。 また、送信元アドレス、宛先アドレスとも、 IPv4またはIPv6のどちらかである必要があることに注意すること。

IPsec実装によって、セレクタの使用法が決定される。 例えば、 スタックに統合されたホスト実装ではソケットインタフェースを使用する場合がある。 新しいコネクションが確立される際に、SPDを調べることができ、 SA(またはSAバンドル)がソケットに結びつけられる。 従って、そのソケットを経て送られるトラフィックは、 SPD/SADの追加検索の結果を必要としない。 これとは対照的に、BITS、BITWまたはセキュリティゲートウェイでの実装は、 各パケットを調べ、セレクタに基づいてSPD/SAD検索を行う必要がある。 セレクタフィールドに対して許可され得る値は、 トラフィックフロー、セキュリティアソシエーション、 セキュリティポリシーの間で異なる。

SPDおよびSAD内で表現できる必要のあるエントリの種類を以下の表にまとめる。 これは、エントリがIPsecスクリーニングに支配されるデータトラフィック内のフィールドとどう関係するのかについて示している。 (注釈:送信元アドレス(src address)および宛先アドレス(dst address)に対する「wild」または「wildcard」エントリには、 マスク(mask)、範囲(range)などを含む)。

フィールド     トラフィック値       SAD エントリ         SPD エントリ

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

src addr      single IP addr  single,range,wild  single,range,wildcard

dst addr      single IP addr  single,range,wild  single,range,wildcard

xpt protocol* xpt protocol    single,wildcard    single,wildcard

src port*     single src port single,wildcard    single,wildcard

dst port*     single dst port single,wildcard    single,wildcard

user id*      single user id  single,wildcard    single,wildcard

sec. labels   single value    single,wildcard    single,wildcard


     * トラフィック値が暗号化されるため、これらのフィールドに対する
       SADおよびSPDエントリは「不透明(OPAQUE)」となり得る。

注釈:原則として、 SAまたはSAバンドルをネゴシエートできないSPD内のセレクタまたはセレクタ値を持つことが可能である。 例として、リスト上の各アイテムに対して別々のSAを生成する、 破棄または列挙リストに対するトラフィックを選択するために使用するセレクタ値が含まれる場合がある。 当面、これについてはこの文書の将来のバージョンに委ねるとし、 要求されたセレクタのリストとセレクタ値はSPDとSADで同じであるとする。 しかし、ネゴシエートできないセレクタ値でSAを生成しているとユーザに誤解させないのであれば、 これらのセレクタ値の使用をサポートする管理インタフェースを持ってもよい。 例えば、インタフェースでは、 ユーザに値の列挙リストを指定させてもよいが、 そのリスト上の各アイテムに対する別々のポリシーとSAを結果的に作り出すことになるだろう。 ベンダーは、 顧客が容易に明確かつ簡潔なポリシーの仕様の設定ができるようにするため、 このようなインタフェースをサポートする可能性がある。

4.4.3 セキュリティアソシエーションデータベース(SAD)

IPsecの各実装には、 名目上のセキュリティアソシエーションデータベースが存在し、 ここでは各エントリに、ある1つのSAに関連するパラメータが定義される。

SAはそれぞれSAD内にエントリを持つ。 出力処理では、エントリはSPD内のエントリによって指し示される。 ここで、SPDエントリが、 現在そのパケットに対して適切なSAを指し示していない場合には、 実装は適切なSA(またはSAバンドル)を生成し、 SPDエントリをSADエントリにリンクすることに注意すること(5.1.1章を参照のこと)。 入力処理では、SAD内の各エントリは、宛先IPアドレス、 IPsecプロトコルタイプ、およびSPIによってインデックスされる。 以下のパラメータがSAD内の各エントリに関連付けられる。 この記述はMIBを意味しているのではなく、 IPsecの実装においてSAをサポートするために必要最小限のデータ項目の仕様のみを意味するものである。

入力処理用:SAD内のSAの検索に使用されるパケットフィールドは以下の通り。

4.4.2章で定義した各セレクタ用に、 SAD内のSAエントリは、 SAが生成された時点でネゴシエートされた値を含まなければならない(MUST)。 送信側では、これらの値は、 与えられたSAが出力パケットでの使用に適切であるかどうかを判断するために使用される。 これは、 使用できる既存のSAが存在するかどうかをチェックする処理の一部である。 受信側では、これらの値は、 入力パケットのセレクタ値がSAの値(間接的に、 一致するポリシーの値)と一致することをチェックするために使用される。 これは、 受信側でSAがこのパケットに対して適切であったことを確認する処理の一部である。 (ICMPメッセージのルールについては6章を参照のこと。) これらのフィールドは、 4.4.2章「セレクタ」で定義するように、 特定の値、範囲、ワイルドカード、 または「不透明(OPAQUE)」の形式を持つことができる。 ここで、ESP SAでは、 暗号化アルゴリズムまたは認証アルゴリズムが「NULL」となり得ることに注意すること。 ただし、両方とも「NULL」となってはならない(MUST)

IPsec処理で使用される SAD フィールドは以下の通り。

4.5 セキュリティアソシエーションの基本的な組み合わせ

この章では、 IPsecに準拠するホストまたはセキュリティゲートウェイがサポートしなければならない(MUST)、 セキュリティアソシエーションの4つの組み合わせ例について説明する。 これに追加して、トンネルまたはトランスポートモードでの、 AHまたはESPの別の組み合わせを実装者の判断でサポートしてもよい(MAY)。 準拠する実装は、これら4つの組み合わせを生成し、 処理できなければならないが(MUST)、 どのような組み合わせでも受信し、処理できる必要がある(SHOULD)。 以下の図と文において、基本的なケースについて説明する。 図の記号の意味は以下の通りである。

==== = 1 つ以上のセキュリティアソシエーション(AH または ESP、トランスポートまたはトンネル)

---- = コネクティビティ(ラベルが付いていれば、管理境界)

Hx   = ホスト x

SGx  = セキュリティゲートウェイ x

X*   = IPsec をサポートする X

注釈:以下のセキュリティアソシエーションはAHまたはESPのどちらかとなり得る。 モード(トンネルまたはトランスポート)は、 終点の性質によって決められる。 ホスト間のSAでは、 モードはトランスポートまたはトンネルのどちらかが可能である。

ケース 1. インターネット(またはイントラネット)を介した2つのホスト間において、終点間でのセキュリティを提供する場合。

 ====================================

 |                                  |

H1* ------ (Inter/Intranet) ------ H2*

ここで、トランスポートまたはトンネルモードのどちらかをホストが選択できることに注意すること。 従って、H1とH2間のパケット内のヘッダは、以下のいずれかとなる。

 トランスポート                  トンネル

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

1. [IP1][AH][upper]        4. [IP2][AH][IP1][upper]

2. [IP1][ESP][upper]       5. [IP2][ESP][IP1][upper]

3. [IP1][AH][ESP][upper]

一般的な入れ子をサポートするための要求条件は存在しないが、 トランスポートモードでは、 AHおよびESPの両方をパケットに適用することができることに注意すること。 この場合、SA確立の手順では、最初にESPをパケットに適用し、 次にAHを適用することを保証しなければならない(MUST)

ケース 2. これは、 単純な仮想私設網(Virtual Private Network)のサポートを示す。

                       ===========================

                       |                         |

  ---------------------|----                  ---|-----------------------

  |                    |   |                  |  |                      |

  |  H1 -- (Local --- SG1* |--- (Internet) ---| SG2* --- (Local --- H2  |

  |        Intranet)       |                  |          Intranet)      |

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

          管理境界                                      管理境界

この場合では、トンネルモードのみが要求される。 従って、SG1とSG2間のパケット内のヘッダは次のどちらかとなる。

       トンネル

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

4. [IP2][AH][IP1][upper]

5. [IP2][ESP][IP1][upper]

ケース 3. このケースはケース1と2の組み合わせであり、送信側ホストと受信側ホストの間に終点間でのセキュリティを追加している。

セキュリティゲートウェイの背後にあるホストのために、 セキュリティゲートウェイでIPsecトラフィック(ISAKMPトラフィックを含む)を通過させるように設定可能とする以外に、 ホストまたはセキュリティゲートウェイに新しい要求条件が追加されることはない。

     ===============================================================

     |                                                             |

     |                 =========================                   |

     |                 |                       |                   |

  ---|-----------------|----                ---|-------------------|---

  |  |                 |   |                |  |                   |  |

  | H1* -- (Local --- SG1* |-- (Internet) --| SG2* --- (Local --- H2* |

  |        Intranet)       |                |          Intranet)      |

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

          管理境界                                    管理境界

ケース 4.これは、リモートホスト(H1)が、ある組織のファイアウォール(SG2)に到達し、サーバーなどのマシン(H2)へアクセスするためにインターネットを利用する状況があてはまる。

このリモートホストは、 インターネット上のローカルPPP/ARAサーバー(これは図には存在しない)へダイヤルアップし、 インターネットを通過して、 自組織のファイアウォール(SG2)に至るモバイルホスト(H1)などにもなり得る。 このケースのサポートについての詳細(H1によるSG2の位置発見、認証、 H2へのオーソライゼーションの確認方法など)は、 4.6.3章の「セキュリティゲートウェイの位置探索」にて説明する。

======================================================

|                                                    |

|==============================                      |

||                            |                      |

||                         ---|----------------------|---

||                         |  |                      |  |

H1* ----- (Internet) ------| SG2* ---- (Local ----- H2* |

      ^                    |           Intranet)        |

      |                    ------------------------------

 PPP/ARA サーバーへの            管理境界(オプション)

 ダイヤルアップの場合あり

H1とSG2の間にはトンネルモードのみが要求される。 従って、H1とSG2間のSAの選択は、 ケース2での選択のうちのどちらか1つとなる。 H1とH2の間のSAの選択はケース1での選択のうちのどれか1つである。

ここで、このケースでは、 送信側はトンネルヘッダの前にトランスポートヘッダを適用しなければならない(MUST)ことに注意すること。 従って、IPsecの実装への管理インタフェースは、 このIPsecヘッダの適用の順番を保証するために、 SPDとSADの設定をサポートしなければならない(MUST)

前に説明したように、 これに加えて別のAHとESPの組み合わせをオプションでサポートできる。 他のオプションの組み合わせの使用により、 相互接続性に反する影響が出る場合がある。

4.6 SAと鍵の管理

IPsecでは、 マニュアルおよび自動のSAおよび暗号鍵の管理のサポートを義務付けている。 関連するSA管理手法は、IPsecプロトコル、 すなわちAHとESPによって提供されるセキュリティサービスの一部に影響を及ぼすが、 IPsecプロトコルは、その関連する手法とは大部分独立している。 例えば、AHとESPで利用できるオプションのリプレイ防止サービスでは、 自動SA管理が要求される。 さらに、IPsecで使用される鍵配送のグラニュラリティは、 提供される認証のグラニュラリティを決定する(4.7章でのこの問題についての議論も参照のこと)。 一般的に、AHおよびESPにおけるデータ生成元認証は、 認証アルゴリズム(またはこのような秘密情報を生成する鍵管理プロトコル)で使用される秘密情報が、 可能性のある複数の送信元の間で共有される範囲によって制限を受ける。

両方のタイプのSA管理について最低限の要求条件を次に説明する。

4.6.1 マニュアル手法

最も単純な管理の形態はマニュアル管理であり、 他のシステムとの安全な通信に適切な鍵管理情報とセキュリティアソシエーション管理データを、 人がそれぞれのシステムで手動で設定するというものである。 マニュアル手法は、小規模で静的な環境では実用的であるが、 規模の変化にうまく対応できない。 例えば、 ある企業がいくつかの拠点のセキュリティゲートウェイにIPsecを使用することによって、 仮想私設網(VPN)を構築することが可能である。 拠点数が少なく、 すべてのサイトが単一の管理ドメイン範囲内におさまる場合には、 マニュアル管理手法が適しているかもしれない。 この場合、セキュリティゲートウェイは、 手動で設定された鍵を使用して組織内の他のサイトとの入出力トラフィックを選択的に保護することが可能だが、 他の宛先行きのトラフィックを保護することはできない。 これはまた、 選択された通信のみに対して保護が必要な場合に適切であるかもしれない。 組織内に完全に閉じた少数のホストまたはゲートウェイ向けのIPsecの使用に対しても、 同様の議論が適用されるだろう。 マニュアル管理手法では、他のオプションも存在するが、 静的に設定された対称鍵を使用することが多い。

4.6.2 SA および鍵の自動管理

IPsecの利用の普及には、インターネット標準でスケーラブルな、 自動化されたSA管理プロトコルが必要である。 このサポートには、AHおよびESPのリプレイ防止機能の使用を強化することと、 例えばユーザ別およびセッション別鍵管理のために、 SAの要求に応じた生成に対応できることが要求される。 (ここで、SAを「再鍵付け」するという概念は、 新しいSPIでの新しいSAの生成、すなわち、 自動SA/鍵管理プロトコルの使用を一般的に意味する処理を実際に含むことに注意すること。)

IPsecで使用するように選択されたデフォルトの自動鍵管理プロトコルは、 IPsec domein of interpretation [Pip98]配下のIKE [MSST97, Orm97, HC98] である。 他の自動SA管理プロトコルを使用してもよい(MAY)

自動SA/鍵管理プロトコルが使用される場合、このプロトコルの出力は、 例えば1つのESP SA用の複数の鍵の生成に使用されることがある。 これは以下の理由により起こり得る。

鍵管理システムは、 それぞれの鍵用に独立したビットストリングを提供してもよいし、 すべてのビットが抽出された1つのビットストリングを生成してもよい。

1つのビットストリングが提供される場合、 システムの要求される鍵にそのビットストリングをあてはめる部分が、 SAの両終端で同じように動作することを保証するように注意する必要がある。 SAのそれぞれの終端におけるIPsecの実装が同じ鍵に対して同じビットを使用し、 システムの部分に関係なくビットストリングを個々の鍵に分割することを保証するために、 暗号鍵を最初の(左端、上位)ビットから採り(MUST)、 認証鍵を残りのビットから採らなければならない(MUST)。 それぞれの鍵のビット数は、 対応するアルゴリズムの仕様が記述されているRFCにて定義される。 複数の暗号鍵または複数の認証鍵を使用する場合、 アルゴリズムに提供される1つのビットストリングからの選択順序をアルゴリズムの仕様で指定しなければならない。

4.6.3 セキュリティゲートウェイの位置探索

この章では、 適切なセキュリティゲートウェイの存在をホストがいかにして知るか、 さらにホストがセキュリティゲートウェイとコンタクトした後、 それが正しいセキュリティゲートウェイであることをどのようにして知るかということについて説明する。 要求された情報をどこに保存するかということについての詳細は、 ローカルの問題である。

リモートホスト(H1)がサーバーまたはその他のマシン(H2)にアクセスするためにインターネットを使用し、 H1のトラフィックが通過しなければならない、 ファイアウォールのようなセキュリティゲートウェイ(SG2)が存在する状況を考えてみる。 この状況の例として、 インターネットを通って自組織のファイアウォール(SG2)に到達するモバイルホスト(Road Warrior)があてはまる。 (4.5章のケース4を参照のこと。) この状況では、いくつかの問題が起こる。

  1. H1はどのようにしてセキュリティゲートウェイSG2の存在を知る/学習するのか。
  2. H1はどのようにしてSG2を認証するのか、SG2が認証された後、SG2がH2の代理の権限が与えられていることをH1がどのように確認するのか。
  3. SG2はどのようにしてH1を認証するのか、またH1にH2と通信する権限を与えられていることをどのように確認するのか。
  4. H1はどのようにしてH2への代替経路を提供するバックアップゲートウェイについて知る/学習するのか。

これらの問題に対処するために、 ホストまたはセキュリティゲートウェイでは、ユーザまたは管理者が、 その使用を要求する宛先アドレスのセットに対するセキュリティゲートウェイのアドレスの設定ができるような管理インタフェースを持たなければならない(MUST)。 これには以下の事項を設定する機能が含まれる。

SPDではまた、 セキュリティゲートウェイおよび宛先ホストへの経路に対する、 他のどのようなIPsec要求条件をもカバーするようなポリシー情報が設定されると仮定する。

セキュリティゲートウェイの発見/確認の自動化方法の問題については、 この文書では扱わないこととする。

4.7 セキュリティアソシエーションとマルチキャスト

セキュリティアソシエーションの受信側指向とは、 ユニキャストトラフィックの場合では、通常、 宛先システムによってSPI値が選択されることを意味する。 宛先システムにSPI値を選択させることにより、 マニュアルで設定されたセキュリティアソシエーションが、 自動的に設定(例えば鍵管理プロトコルを経て)されたセキュリティアソシエーションと衝突する可能性、 または複数送信元からのセキュリティアソシエーションが互いに衝突する可能性がなくなる。 マルチキャストトラフィックの場合では、 マルチキャストグループ単位に複数の宛先システムが存在する。 従って、一部のシステムまたは人々は、 それぞれのマルチキャストグループに代わってSPIまたはSPI群を選択するために、 すべてのマルチキャストグループを調整し、 (ここで定義されない仕組みを経て)マルチキャストグループのすべての正規メンバーにグループのIPsec情報を伝達する必要がある。

対称鍵暗号化アルゴリズムまたは認証アルゴリズムが使用される場合、 マルチキャストグループへの複数の送信者は、 そのグループへのすべてのトラフィックのために1つのセキュリティアソシエーション(それにセキュリティパラメータインデックス)を使用する必要がある(SHOULD)。 このような状況では、受信側は、 メッセージがそのマルチキャストグループに対する鍵を保持するシステムから来たということのみを知る。 このような場合、受信側は、 一般的にどのシステムがマルチキャストトラフィックを送ったかを認証することは不可能となるだろう。 この他の、 より一般的なマルチキャストに関する仕様は後のIPsec文書に委ねることにする。

この仕様が発行された時点では、 マルチキャスト鍵配送のための自動化プロトコルは、 十分な標準化が考慮されていなかった。 メンバーが比較的少ないマルチキャストグループでは、 マニュアル鍵配送、または、改良されたDiffie‐Hellmanのような既存のユニキャスト鍵配送アルゴリズムを複数使用した方が現実的である。 大きなグループでは、新しいスケーラブルな手法が必要となるだろう。 この分野での現在の取り組み例として、 Group Key Management Protocol (GKMP) [HM97]があげられる。

5. IPトラフィック処理

4.4.1章の「セキュリティポリシーデータベース(SPD)」で説明したように、 非IPsecトラフィックを含むすべてのトラフィック(入力および出力)の処理中に、 SPDを参照しなければならない。 SPD内に、 当該パケットにあてはまるポリシーが(入力または出力トラフィックのいずれかに対して)発見されない場合は、 パケットは破棄されなければならない(MUST)

注釈:IPsecで使用されるすべての暗号化アルゴリズムは、 正規のネットワークバイト順序での入力を期待し(RFC 791の付録を参照のこと)、 正規のネットワークバイト順序の出力を生成する。 IPパケットもまた、ネットワークバイト順序で転送される。

5.1 出力IPトラフィック処理

5.1.1 SAまたはSAバンドルの選択と使用

セキュリティゲートウェイまたはBITW実装(および多くのBITS実装)では、 各出力パケットは、 そのパケットに要求される処理を決定するためにSPDと比較される。 パケットが破棄される場合には、これは監査対象イベントとなる。 トラフィックがIPsec処理のバイパスを許可される場合には、 そのパケットはIPsec処理が行われている環境での「通常の」処理を通り抜ける。 IPsec処理が要求される場合には、 パケットが既存のSA(またはSAバンドル)にマップされるか、 そのパケットに対して新しいSA(またはSAバンドル)が生成される。 パケットのセレクタが複数のポリシーまたは複数の既存SAにマッチする可能性があるため、 そして、SPDは順序付けされているが、SADは順序付けされていないため、 IPsecは以下のことを行わなければならない(MUST)

  1. SAD内の0個以上のSAバンドルを指し示す、 最初の適切なポリシーの位置を決めるために、 SPD内の出力ポリシーとパケットのセレクタフィールドをつきあわせなければならない。
  2. マッチする最初のSAバンドルの位置を決めるために、 (1)で発見されたSAバンドルにあるセレクタフィールドとパケットのセレクタフィールドをつきあわせなければならない。
  3. SAが発見されないか、どれにもあてはまらない場合、 適切なSAバンドルを生成し、 SPDエントリをSADエントリにリンクしなければならない。 鍵管理エンティティが発見されない場合は、 パケットをドロップしなければならない。
  4. 要求されたIPsec処理、例えば認証や暗号化を行うために、 (2)で発見/作成されたSAバンドルを使用しなければならない。

ソケットに基づくホストでのIPsec実装では、 ソケット上を流れるトラフィックに適用されるIPsec処理を決定するために、 新しいソケットが生成された際には常にSPDが参照されることになるだろう。

注釈:準拠する実装は、 NULL暗号化アルゴリズムおよびNULL認証アルゴリズムの両方を使用するESP SAのインスタンスを許可してはならない(MUST NOT)。 この種のSAをネゴシエートしようとする試みは、監査対象イベントとなる。

5.1.2 トンネルモードのヘッダ構成

この章では、内側および外側IPヘッダ、拡張ヘッダ、 そしてAHおよびESPトンネルのオプションの処理について説明する。 これには、カプセル化(外側)IPヘッダの構築方法、 内側IPヘッダ内のフィールドの処理方法、 および行うべきその他のアクションが含まれている。 一般的なアイディアは、RFC 2003 「IP Encapsulation with IP」で使用されているものをもとにモデル化されている。

以下の章の表は、 異なるヘッダ/オプションフィールドに対する処理方法を示している(constructed = 外側フィールドにある値は、内側の値とは独立して構成される)。

5.1.2.1 トンネルモードのヘッダ構成(IPv4)
                     <--    外側ヘッダと内側ヘッダの関係    -->

                     カプセル化器における           カプセル開放器における

IPv4                 外側ヘッダ                    内側ヘッダ

  Header fields:     --------------------         ------------

    version          4 (1)                        no change

    header length    constructed                  no change

    TOS              copied from inner hdr (5)    no change

    total length     constructed                  no change

    ID               constructed                  no change

    flags (DF,MF)    constructed, DF (4)          no change

    fragmt offset    constructed                  no change

    TTL              constructed (2)              decrement (2)

    protocol         AH, ESP, routing hdr         no change

    checksum         constructed                  constructed (2)

    src address      constructed (3)              no change

    dest address     constructed (3)              no change

  Options            never copied                 no change
  1. カプセル化ヘッダ内のIPバージョンは内側ヘッダの値と異なることが可能である。
  2. 内側ヘッダ内のTTLは転送される前にカプセル化器によってデクリメントされ、 かつパケットが転送されるのであれば、 カプセル開放器によってデクリメントされる(TTLが変化する時にはチェックサムが変化)。

    注釈:TTLのデクリメントは、 パケットの転送が行われる際に通常行われるアクションの1つである。
    送信ノードは、パケットを転送するのではなく送信するので、 カプセル化器と同じノードから送信されるパケットは、 TTLのデクリメントは行われない。

  3. 送信元および宛先アドレスは、 パケットを転送するためにどの送信元アドレス(ネットワークインタフェース)を使用するかを代わりに決定する宛先アドレスを決定するために使用されるSAに依存する。

    注釈:(例えば、カプセル化器がNATボックスとして動作している場合)、 パケットが送られる環境からカプセル化器を通って到達できるアドレスである限り、 原則として、カプセル化IP送信元アドレスは、 カプセル化器のインタフェースアドレスのどれか、 またはカプセル化器のIPアドレスのどれとも異なるアドレスであることができる。
    IPsecが現在のところ、 カプセル化IPヘッダの送信元アドレスを含む入力処理に関する要求条件を持たないため、 これは問題とはならない。
    従って、受信側トンネル終端は、 カプセル化IPヘッダ内の宛先アドレスを調べる一方、 内側(カプセル化) IPヘッダ内の送信元アドレスを調べるのみである。

  4. 設定によってDFを内側ヘッダ(IPv4のみ)からコピーするか、 クリアまたはセットするかが決定される。
  5. 内側ヘッダがIPv4(プロトコル = 4)であれば、TOSをコピーする。
  6. 内側ヘッダがIPv6(プロトコル = 41)であれば、 クラスをTOSにマッピングする。
5.1.2.2 トンネルモードのヘッダ構成(IPv6)

注釈番号1-5については、前の5.1.2章を参照のこと。

                     <--    外側ヘッダと内側ヘッダの関係    -->

                     カプセル化器における           カプセル開放器における

IPv6                 外側ヘッダ                    内側ヘッダ

  Header fields:     --------------------         ------------

    version          6 (1)                        no change

    class            copied or configured (6)     no change

    flow id          copied or configured         no change

    len              constructed                  no change

    next header      AH,ESP,routing hdr           no change

    hop limit        constructed (2)              decrement (2)

    src address      constructed (3)              no change

    dest address     constructed (3)              no change

  Extension headers  never copied                 no change
  1. 内側ヘッダがIPv6(次ヘッダ = 41)であれば、クラスをコピーする。
  2. 内側ヘッダがIPv4(次ヘッダ = 4)であれば、TOSをクラスにマッピングする。

5.2 入力 IP トラフィック処理

AHまたはESP処理の実行の前に、すべてのIPの断片が再構成される。 IPsec処理を適用する各入力IPデータグラムは、 IP次プロトコルフィールド内のAHまたはESP値(あるいは、 IPv6の場合における拡張ヘッダとしてのAHまたはESP)の存在によって識別される。

注釈:リプレイ防止サービスの実装時に利用できる、 32パケットウィンドウ用のビットマスクチェックのサンプルコードが付録 Cにある。

5.2.1 SA または SA バンドルの選択と使用

AHまたはESPヘッダにはSPIが存在するため、 適切なSAへのIPデータグラムのマッピングは簡略化されている。 ここで、セレクタチェックは外側(トンネル)ヘッダではなく、 内側ヘッダで行われることに注意すること。 実行のステップは以下の通りである。

  1. SAD内のSAを検索するために、 パケットの宛先アドレス(外側IPヘッダ)、IPsecプロトコル、 およびSPIを使用する。
  2. SAの検索に失敗した場合、パケットを破棄し、 エラーをログに残すかレポートする。
  3. IPsec処理、例えば認証や復号を行うために、 (1)で見つけられたSAを使用する。
  4. このステップには、 パケットの(トンネルされた場合は内側ヘッダ)セレクタと、 SA内のセレクタとのマッチングが含まれる。
    ローカルポリシーによって、SAセレクタの詳細(単独の値、リスト、範囲、 ワイルドカード)が決定される。
    一般に、 パケットの送信元アドレスはSAのセレクタ値と一致しなければならない(MUST)
    しかしながら、トンネルモードSAで受信されたICMPパケットは、 SAに結び付けられたアドレス以外の送信元アドレスを持つことがあるため、 この種のパケットはこのチェックの例外として許可される必要がある。
    ICMPパケットの場合、 それに封入された問題のあるパケットからのセレクタ(送信元アドレスおよび宛先アドレスとポートがスワップされる必要がある)は、 そのSAのセレクタに対してチェックされる必要がある。
    ここで、 ICMPパケットで運搬される問題のあるパケットのバイト数に制限があったり、 暗号化されている場合に、 これらのセレクタの一部またはすべてにアクセスできないことがあることに注意すること。
    これについては6章を参照のこと。

    このシステム用ではないトランスポートプロトコルヘッダまたはIPヘッダが現れるまで、 すべてのIPsecヘッダに対し(1)と(2)の処理を行う。
    どのSAが使用され、どの順番で適用されたかという情報を保持すること。

  5. そのパケットにあてはまる SPD 内の入力ポリシーを探す。
  6. これは、例えばSAからSPDへのバックポインタを使用するか、 パケットのセレクタ(トンネルされている場合は内側ヘッダ)をSPD内のポリシーエントリのセレクタとマッチングさせることによって行うことができる。
  7. 要求されたIPsec処理が適用されているかどうかをチェックする。
  8. すなわち、(1)と(2)で見つかったSAが、 (3)で見つかったポリシーによって要求されるSAの種類とその順序にマッチすることを確認する。

    注釈:正確な「マッチング」ポリシーは、 最初に見つけられた入力ポリシーである必要は必ずしもない。
    (4)のチェックに失敗した場合は、 すべてのポリシーエントリのチェックが完了するか、 チェックが成功するまで(3)と(4)のステップを繰り返す。

これらのステップの最後では、 その結果生じたパケットをトランスポート層に渡すか、 そのパケットを転送する。
ここで、 これらのステップで処理されたすべてのIPsecヘッダは削除されてしまうことがあるが、 この情報、つまり、使用されたSA、およびその適用順序は、 これに続くIPsec処理またはファイアウォール処理で必要となることがあることに注意すること。

ここで、セキュリティゲートウェイの場合に、パケットが転送されて、 IPsecが有効となっているインタフェースを経由して出ていく場合、 追加のIPsec処理が適用される場合があることに注意すること。

5.2.2 AH および ESP トンネルの処理方法

AHおよびESPトンネルでの、内側および外側IPヘッダ、拡張ヘッダ、 そしてオプションは、 5.1章の表に従って扱われる必要がある。

6. (IPsecと関連する) ICMP処理

この章では、ICMPエラーメッセージの処理について主にとりあげる。 例えばEcho/Replyのような他のICMPトラフィックは別のトラフィックのように扱う必要があり、 通常のようにSAを使用することによって終点間ベースで保護することが可能である。

AHまたはESPによって保護され、 ルータによって生成されるICMPエラーメッセージは、 トンネルモードSAで処理され、転送される必要がある(SHOULD)。 ローカルポリシーによって、 トンネルの宛先の終端ルータが送信元アドレスのチェックをするかどうかが決定される。 ここで、トンネルの生成側の終端ルータが他のルータからのICMPエラーメッセージを転送している場合には、 送信元アドレスのチェックに失敗することに注意すること。 AHまたはESPによって保護され、 ルータによって生成されるICMPメッセージは、 トランスポートモードSAで転送されてはならない(MUST NOT) (例えば、ルータを管理するために使用するTelnet接続のように、 SAがルータに対してホストとして動作するように設定されていない限り)。 ホストによって生成されたICMPメッセージは、 メッセージが到着するSAに結び付けられた送信元IPアドレスセレクタに対してチェックされる必要がある(SHOULD)。 ここでICMPエラーメッセージの送信元が認証されている場合でも、 それによって返されたIPヘッダは無効となり得ることに注意すること。 それに応じて、IPヘッダ内のセレクタ値もまた、 ICMPメッセージを受信したSAのセレクタと一致することを確かめるためにチェックされる必要がある(SHOULD)

付録 Dの表は、 ICMPメッセージを、ホストで生成されるもの、ルータで生成されるもの、 その両方、未知/未割り当てのものというように分類したものである。 後ろの2つのカテゴリに入るICMPメッセージは、 受信側のポリシーによって決定されるものとして扱われる必要がある。

AHまたはESPによって保護されていないICMPメッセージは認証されておらず、 それを処理したり、 転送したりすることによってサービス妨害を受ける可能性がある。 これは一般に、 このようなメッセージを無視することが望ましいということを意味している。 しかしながら、多くのルータ(セキュリティゲートウェイではない)は、 経由するトラフィック用にIPsecを実装しないだろうから、 このルールに厳密に従うと、 多くのICMPメッセージを破棄することになると予想される。 その結果、一部の重要なIP機能、 例えば経路変更やPMTU処理が失われることになる。 そのため、ローカルのセキュリティポリシーによって、 (ルータ)ICMPトラフィックを受け付けるか、 拒否するかをIPsecの実装に対して設定できるようにしなければならない(MUST)

この章の残りの部分では、ホストおよびセキュリティゲートウェイ上で、 PMTU処理がどのように実行されなければならないかb>(MUST)ということについて示す。 ここでは、認証されたICMP PMTUメッセージと認証されていないICMP PMTUメッセージの両方について取り上げている。 ただし、前に説明したように、 認証されていないICMPメッセージはローカルのポリシーに基づいて破棄してもよい(MAY)

6.1 PMTU / DF処理

6.1.1 DF ビット

システム(ホストまたはゲートウェイ)がカプセル化ヘッダ(ESPトンネルまたはAHトンネル)を追加する場合、 システムは、オリジナルのパケットからカプセル化ヘッダへDFビットをコピーするオプション(およびICMP PMTUメッセージを処理するオプション)をサポートしなければならない(MUST)。 これは、システムのDFビットの処理(セット、クリア、 カプセル化されたヘッダからのコピー)をインタフェース毎に設定できなければならない(MUST)ことを意味している(その根拠については付録 Bを参照のこと)。

6.1.2 経路MTU探索(PMTU)

この章では、経路MTU探索メッセージに対するIPsecの処理について説明する。 ここで、ICMP PMTUは、以下のICMPメッセージを参照するために使用される。

IPv4(RFC 792):

IPv6(RFC 1885):

6.1.2.1 PMTU の伝播

ICMP PMTUメッセージ(IPv4またはIPv6)で返される情報の量は限定されており、 PMTU情報をさらに伝播させるためにどのセレクタが利用できるのかということに影響がでてくる。 (この問題については付録 Bを参照のこと。)

6.1.2.2 PMTUの計算

ICMP PMTUからPMTUを計算する際には、 IPsecヘッダ(AHトランスポート、ESPトランスポート、AH/ESPトランスポート、 ESPトンネル、AHトンネル)の追加を考慮しなければならない(MUST)。 (実装の問題に関する議論については付録 Bを参照のこと。)

注釈:一部の状況では、IPsecヘッダの追加によって、 受け入れられないほど小さい、 有効なPMTU(ホストまたはアプリケーションによって見られる)を結果として引き起こすことがあり得る。 この問題を避けるために、実装では、 縮小されたPMTUを報告しない閾値を下げて設定しても良い。 このような場合、実装はIPsecを適用し、 その結果生じたパケットをPMTUに応じて分割する。 これは結果的に、利用可能な帯域幅をより効果的に使用することとなる。

6.1.2.3 PMTU処理のグラニュラリティ

ホストでは、ICMP PMTU処理が実行できるグラニュラリティは、 その実装の状況によって異なる。 ホストに関して言えば、PMTU問題に関連して関心を示す状況として、 以下の3つが存在する (この話題に関しての詳細については、 付録 Bを参照のこと)。

  1. ネイティブIP実装へのIPsecの統合
  2. bump-in-the-stack実装、 この場合IPsecは既存のTCP/IPプロトコルスタックの実装の「下部」、 ネイティブIPとローカルネットワークドライバの間に実装される。
  3. IPsec実装なし -- これは、 セキュリティゲートウェイがPMTU情報をホストに送り返す場合に関係するため、 ここに含まれている。

(a)の場合のみ、 PMTUデータは通信アソシエーションと同じグラニュラリティでメンテナンスすることが可能となる。 (b)と(c)では、IP層はRFC 1191で定義されているように、 PMTUデータのみを送信元および宛先IPアドレス(およびオプションでTOS)のグラニュラリティでメンテナンスすることが可能となる。 複数の通信アソシエーションが同じ送信元アドレスおよび同じ宛先IPアドレスにマッピングされ、 各通信アソシエーションが(例えば、異なる変換、 または異なるアルゴリズムを用いるために)異なる量のIPsecヘッダのオーバーヘッドを持つ可能性があるため、 これは重要な相違である。

PMTU計算の実装および個々の通信アソシエーションのグラニュラリティでのPMTUのサポートは、 ローカルの問題である。 ただし、ホストでのソケットベースのIPsecの実装では、 ソケット単位で情報をメンテナンスする必要がある(SHOULD)。 bump-in-the-stackシステムでは、 ICMP PMTUをシステムによって追加されるすべてのIPsecヘッダのオーバーヘッドに対して調整した後、 ホストのIP実装に渡さなければならない(MUST)。 オーバーヘッドの計算は、 SPIおよび返されるICMP PMTUメッセージ中に存在するその他のセレクタ情報の分析によって決定される必要がある(SHOULD)

6.1.2.4 PMTU のエージング

IPsecを実装し、 PMTU情報をメンテナンスするすべてのシステム(ホストまたはゲートウェイ)では、 セキュリティアソシエーション(トランスポートまたはトンネル)に関連するPMTUは「エージング」されなければならず、 PMTUをタイムリに更新し、特にPMTUが必要なものより小さいかどうかを発見するための仕組みを持たなければならない(MUST)。 与えれられたPMTUは、 パケットがセキュリティアソシエーションの送信側終端からセキュリティアソシエーションのもう片方の終端に到達し、 そして現在のPMTUが大きすぎる場合にはICMPエラーメッセージを伝播し返せるのに十分な長さの時間その場に留まらなければならない。 ここで、入れ子にされたトンネルが存在する場合には、 ICMPメッセージをカプセル化器または生成元ホストに戻すために複数のパケットと往復移動時間が必要となる場合があることに注意すること。

システムは、経路MTU探索についての文書(RFC 1191の6.3章)に記述されているアプローチを使用する必要がある(SHOULD)。 この文書では、 PMTUを最初の中継点のデータリンクMTUに定期的にリセットし、 必要であれば通常のPMTU探索処理にPMTUを更新させることが提案されている。 このリセット期間は設定できる必要がある(SHOULD)

7. 監査

IPsecを実装するすべてのシステムが監査機能を実装するわけではない。 監査のグラニュラリティについては、 ほとんどの部分がローカルの問題である。 しかしながら、 いくつかの監査対象イベントがAHおよびESPの仕様書内に存在しており、 その中では、これらの各イベントに対して、 監査ログに含む必要のある(SHOULD)最低限の情報セットが定義されている。 また、 これらの個々のイベントに対するこれ以外の情報を監査ログに含んでもよい(MAY)。 そして、 この仕様で明示的に取り上げられていないその他のイベントも監査ログのエントリに含んでもよい(MAY)。 監査対象イベントの検知に応じて、 受信側が偽証転送者にすべてのメッセージを転送してしまうような要求条件は存在しない。 これはこのようなアクションを介したサービス妨害を引き起こす可能性があるためである。

8. 情報フローセキュリティをサポートするシステムでの利用

様々なセンシティビティレベルを持つ情報が単一のネットワーク上を流れる可能性がある。 情報ラベル(例えば、非機密扱い(Unclassified)、企業所有物(Company Proprietary)、機密(Secret))[DoD85, DoD87]はしばしば、 このような情報を区別するために使用される。 ラベルの使用により、情報フローセキュリティモデル、 例えばBell-LaPadulaモデル [BL73]に沿った情報の選別が促進される。 このようなモデル、そしてそれに対応するサポート技術は、 たとえトロイの木馬攻撃を受けた場合でも、 重要な情報が許可なく流出するのを防ぐことができるように設計されている。 例えばアクセス制御リストに基づくような従来型の任意アクセス制御(discretionary access control) (DAC)の仕組みは、一般的に、 このようなポリシーをサポートするには十分ではないため、 SPDに代表される機能はこの種の環境においては十分ではない。

軍事関連では、このようなモデルをサポートする技術はしばしば、 マルチレベルセキュリティ(MLS)と呼ばれる。 コンピュータやネットワークが、情報フローセキュリティポリシーに沿った、 ラベル付きデータの分離をサポートする場合、 そのコンピュータやネットワークは、 しばしば「マルチレベルセキュア」と称される。 このような技術は、軍事関連以外にも幅広く適用可能であるが、 この文書では、多くの現存の文献と一致させて、 技術を称するために「MLS」という頭字語を使用することにする。

IPsecの仕組みは容易にMLSネットワーキングをサポートできる。 MLSネットワーキングでは、強力な強制アクセス制御 (Mandatory Access Controls) (MAC)の利用が要求される。 これは、 非特権ユーザまたは非特権プロセスのコントロールや違反を無効とするものである。 この章では、 MLS(情報フローセキュリティポリシー)環境におけるIPセキュリティの仕組みの利用のみに関して述べる。 MLSを提供しないシステムにはこの章の内容は適用されない。

この章で使用する「センシティビティ情報」には、 実装が定義する階層レベル、カテゴリ、 または発表可能な情報が含まれる場合がある。

MLS環境における強制アクセス制御の決定に沿った強力な認証を提供するためにAHを使用することが可能である。 明示的IPセンシティビティ情報(例えば、 IPSO [Ken91])が使用され、 守秘性がある特定の運用環境において必要であるとされないのであれば、 IPヘッダのセンシティビティラベルとIPペイロード(ユーザデータを含む)間のバインディングの認証にAHを使用することができる。 これは、 IPヘッダとユーザデータへの情報の認証または暗号バインディングが存在しなくても、 センシティビティ情報が信用されることから、 ラベル付きIPv4ネットワークにおける重要な改良となる。 IPv4ネットワークでは、 明示的ラベル付けを使用する場合と使用しない場合がある。 IPv6では通常、明示的センシティビティ情報を使用する代わりに、 IPsecセキュリティアソシエーションの一部であるが各パケットで転送されない暗黙的センシティビティ情報を使用する。 すべての明示的IPセンシティビティ情報は、 ESPまたはAHのどちらか、 あるいは両方を使用して認証されなければならない (MUST)

暗号化は有用であり、すべてのホストが保護された環境内、 例えばファイアウォールの背後にあったり、 すべての外部接続が遮断されているような場合であっても導入が望ましい。 ESPは、DACとMACの両方をサポートし、 適切な鍵管理および暗号化アルゴリズムと組み合わせて使用することができる。 (暗号化および認証アルゴリズムの選択、 そしてIPsecの実装の保証レベルは、 実装がMLSの要求条件を十分に満たすと考えられる環境を決定することになるだろう。) 鍵管理はMACを提供するためにセンシティビティ情報を活用することができる。 MLSを提供するシステムでのIPsec実装は、 IPベースの通信にMACを提供するためにIPsecが使用できる必要がある(SHOULD)

8.1 セキュリティアソシエーションとデータセンシティビティの関係

暗号ペイロードと認証ヘッダはいずれも、 マルチレベルセキュアネットワークを提供するために、 適切なセキュリティアソシエーションポリシーと組み合わせることができる。

この場合、それぞれのSA(またはSAバンドル)は、一般的に、 センシティビティ情報の1つのインスタンスのみに対して使用される。 例えば、「PROPRIETARY - Internet Engineering」は、 「PROPRIETARY -- Finance」とは異なるSA(またはSAバンドル)と関連付けられなければならない。

8.2 センシティビティの一貫性チェック

MLSの実装(ホストとルータの両方)では、 センシティビティ情報またはセンシティビティ情報の範囲を、 インタフェースまたはプレフィックス付きで設定されているIPアドレスと結び付けてもよい(MAY) (後者は論理インタフェース、 あるいはインタフェースエイリアスと呼ばれることがある)。 このような特性がある場合、 実装はパケットに結び付けられたセンシティビティ情報を、 パケットが到着あるいは出発する予定のインタフェースまたはアドレス/プレフィックスに結び付けられたセンシティビティ情報と比較する必要がある(SHOULD)。 このチェックでは、センシティビティが一致するか、 パケットのセンシティビティがインタフェースまたはアドレス/プレフィックスの範囲に収まるかのどちらであるかを確認する。

このチェックは、 入力と出力の両方の処理において行われる必要がある(SHOULD)

8.3 セキュリティアソシエーションデータベース用の追加MLS属性

4.4章では、 2つのセキュリティアソシエーションデータベース(セキュリティポリシーデータベース(SPD)とセキュリティアソシエーションデータベース(SAD))および関連するポリシーセレクタとSA属性について説明した。 MLS ネットワーキングでは、これに追加して以下のセレクタ/属性を導入する。

- センシティビティ情報

8.1章で説明したように、 トラフィックがその重要性とセンシティビティに適した保護レベルを得るように、 センシティビティ情報は適切なアルゴリズムと鍵強度の選択を可能にする。 センシティビティ情報の正確な構文は実装によって定義される。

8.4 MLS ネットワーキング用の追加入力処理ステップ

MLS実装では、入力パケットがIPsec処理を通過した後、 データグラムを上位層プロトコルに配送するか転送するかする前に、 最初に8.2章で定義されたインタフェースまたはアドレス/プレフィックスでパケットのセンシティビティ (そのパケットに対して使用されるSA(またはSAバンドル)によって定義される)をチェックする必要がある(SHOULD)

MLSシステムは、IPsecで保護されたパケットで受信したデータと、 処理に使用したSAまたはSA群内のセンシティビティ情報の間のバインディングを保持しなければならない(MUST)。 これにより、 データグラムをアプリケーションや転送エンジンに配送する際に、 適切なポリシーを決定することができる。 このバインディングのメンテナンス手段は実装特有である。

8.5 MLSネットワーキング用の追加出力処理ステップ

IPsecのMLS実装では、 5.1.1章で詳細に説明した通常ステップに追加して、 さらに2つのチェックを行わなければならない(MUST)。 出力セキュリティアソシエーションを発見するためにSPDまたはSADを調べる際に、 MLS実装は、 適切な出力SAまたはSAバンドルを選択するためにデータのセンシティビティを使用しなければならない(MUST)。 2つ目のチェックはパケットを宛先に転送する前に行われるものであり、 8.2章で説明したセンシティビティの一貫性チェックである。

8.6 セキュリティゲートウェイ用の追加MLS処理

MLSセキュリティゲートウェイは前に説明した入力と出力の処理ルールに従うとともに、 MLS環境におけるパケットの中間保護に特有の追加処理を実行しなければならない(MUST)

セキュリティゲートウェイは、 そのゲートウェイによって転送されるパケットを生成するMLSシステム用のSAを生成することによって出力プロキシとして動作してもよい(MAY)。 このMLSシステムは転送されるべきパケットに対して明示的にラベル付けをするか、 生成するネットワーク全体がそれに関連するセンシティビティ特性を持つ場合がある。 セキュリティゲートウェイは、転送するトラフィックを保護するために、 AHかESPのどちらか、または両方に対する適切なSAを作成し、 使用しなければならない(MUST)

同様に、このようなゲートウェイは、 明示的パケットラベリングを使用するか、 宛先ネットワークのセンシティビティ特性に依存しながら、 入力AHまたはESPパケットを適切に受領、処理し、 転送する必要がある(SHOULD)

9. 性能に関する事項

IPsecを使用することによって、 これらのプロトコルを実装するホストおよびセキュリティゲートウェイに計算性能コストを課すことになる。 このコストは、IPsecコードやデータ構造に必要なメモリ、 インテグリティチェック値や暗号化復号の計算、 パケット毎に追加される処理に関するものである。 パケット毎の計算コストは、増加する待ち時間と、おそらく、 減少するスループットによって示される。 SA鍵管理プロトコル、特に公開鍵暗号を使用するプロトコルの利用もまた、 IPsecを使用する際の計算性能コストに追加される。 これらのアソシエーション毎の計算コストは、 アソシエーション確立によって増加する待ち時間に関して示される。 多くのホストでは、 ソフトウェアベースの暗号によってスループットが大きく減少することはないと予想されるが、 セキュリティゲートウェイや一部のホストでは、 ハードウェアが要求される場合がある (ゲートウェイはトラフィックが集まる場所であるため)。

また、IPsecを使用することによって、インターネットのIPsecを実装しない、 伝送、スイッチング、 経路制御といった構成要素に帯域幅の利用コストを課すことになる。 これは、AHおよびESPヘッダの追加、AHおよびESPのトンネリング (2つ目のIPヘッダが追加される)によるパケットサイズの増加、 鍵管理プロトコルが使用するパケットトラフィックの増加によるものである。 ほとんどの場合、 この帯域幅の需要の増加はインターネットに大きな影響を及ぼさないと予想される。 しかしながら、ある状況では、 例えばトラフィックを別な方法で圧縮するダイヤルアップリンク上でESP暗号化トラフィックを転送する場合などでは、 多大な影響が出ることがある。

注釈:最初のSA確立時のオーバーヘッドは、 最初のパケットで感じられるだろう。 この遅延はトランスポート層とアプリケーションに影響を与える可能性がある。
例えば、ISAKMP交換が完了する前にTCPのSYNを再送信させてしまう可能性がある。 UDPでは、先に進めて最初のパケットを超えてデータを送信できるのに対し、 TCPでは接続が完了するまではSYN以外は何も送信すべきではないため、 遅延の影響はUDPとTCPでは異なるだろう。

注釈:前に説明したように、IPの上の層で圧縮をすることができる。 IETFには、 「ペイロードを暗号化するプロトコルによってペイロードが処理される前に、 個々のペイロードに対して損失のない圧縮を実現するプロトコルの仕様を作り、 この仕様によって、IPsecプロトコルによるペイロードの暗号化に先行して、 圧縮処理を実現する」ワーキンググループ(IP Payload Compression Protocol(ippcp))が存在する。

10. 準拠に関する要求事項

IPsecを実装するすべてのIPv4システムは、 セキュリティアーキテクチャ文書のすべての要求条件に準拠しなければならない(MUST)。 すべてのIPv6システムは、 セキュリティアーキテクチャ文書のすべての要求条件に準拠しなければならない(MUST)

11. セキュリティについての考慮事項

この文書の焦点はセキュリティであり、 従ってセキュリティに関する考慮事項はこの仕様書の全体に行き渡っている。

12. RFC 1825 との相違点

このアーキテクチャ文書は、RFC 1825と比べて、 詳細と構成の点で大きく異なっているが基本的な見解は変わらない。 この文書では、準拠する仕様に関する重要な詳細が追加されている。 また、SPDおよびSAD、そして、SAセレクタの概念について紹介されている。 そして、前版と異なる新バージョンのAHおよびESPに合わせている。 サポートされるAHとESPの組み合わせに特有の要求条件が、 PMTU管理の詳細として新たに追加されている。

謝辞

この仕様に含まれる概念の多くは、米国政府のSP3セキュリティプロトコル、 ISO/IECのNLSP、提案されたswIPeセキュリティプロトコル [SDNS, ISO, IB93, IBK93]、 SNMPセキュリティおよびSNMPv2セキュリティ向けになされた作業から導出され、 影響を受けたものである。

3年以上(本当はもっと長く感じるが)に渡って、 この文書は様々なバージョンと繰り返しを経て発展してきた。 この間、 多くの人々が重要なアイディアと熱意を作業と文書の両方に注いでくれた。 レビュー、編集、背景調査、 およびコーディネーション作業で多大な貢献をしてくれたKaren Seoに感謝する。 また、IPsecおよびIPngワーキンググループのメンバー、 特に(アルファベット順で)、 Steve Bellovin、Steve Deering、James Hughes、Phil Karn、Frank Kastenholz、Perry Metzger、David Mihelcic、Hilarie Orman、 Norman Shulman、William Simpson、Harry Varnis、Nina Yuanの各氏の努力に感謝する。


補遺 A -- 用語集

この章では、 この文書で使用されているいくつかの主要な用語について定義する。 この技術に関連する追加の定義と背景情報は別の文書、 例えば[VK83HA94] から提供されている。 この用語集には、 一般的なセキュリティサービスやセキュリティの仕組みについての用語とIPsec特有の用語が含まれる。

アクセス制御
アクセス制御とは、 無許可の資源利用を防ぐセキュリティサービスであり、 無許可の資源利用の回避が含まれる。
IPsecでは、アクセスを制御する資源には、以下のものが含まれる。
リプレイ防止
[後の「インテグリティ」を参照のこと]
認証
この用語は、名目上独立した2つのセキュリティサービスである、 データ生成元認証とコネクションレスインテグリティの組み合わせを指すために略して使用される。
後のそれぞれのサービスの定義を参照のこと。
可用性
セキュリティサービスとしてみた場合の可用性とは、 サービスを妨害または悪化させるような、 ネットワークに対する攻撃によって引き起こされるセキュリティに関する問題をさす。
例えば、IPsecでは、AHおよびESPでリプレイ防止の仕組みを使用した場合、 可用性をサポートしていることになる。
守秘性
守秘性とは、 データを無許可の漏洩から保護するセキュリティサービスである。
守秘性の主な関心は、ほとんどの場合、 アプリケーションレベルのデータの無許可の漏洩であるが、 通信の外部特性の漏洩もまた、ある状況では問題となり得る。 トラフィックフロー守秘性とは、送信元および宛先アドレス、 メッセージ長、通信頻度などを隠すことによって、 後者の問題に対処するサービスのことである。 IPsecでは、ESPをトンネルモード、 特にゲートウェイで使用することにより、 あるレベルのトラフィックフロー守秘性を提供することができる (後のトラフィック解析も参照のこと)。
暗号化
暗号化とは、 守秘性を提供するためにデータを理解できる形式(平文)から理解不可能な形式(暗号文)に変換するために使用されるセキュリティの仕組みである。
その変換を逆に辿る処理は、「復号」と呼ばれる。 「暗号化」という用語はしばしば、 総称的に両方の処理を指すものとして使用される。
データ生成元認証
データ生成元認証とは、 データの送信元の身元を確認するセキュリティサービスである。
このサービスは通常、 コネクションレスインテグリティサービスと一緒にされる。
インテグリティ
インテグリティとは、 データの修正が検出可能であることを保証するセキュリティサービスである。
アプリケーションの要求条件に合わせるために、 インテグリティは様々な形式を持つ。 IPsecは2つの形式のインテグリティ (コネクションレスおよび部分的なシーケンスインテグリティの形式) をサポートする。 コネクションレスインテグリティとは、 トラフィックの流れの中でのデータグラムの順序を考慮せずに、 個々のIP データグラムの修正を検出するサービスである。 IPsecが提供する部分的なシーケンスインテグリティの形式は、 リプレイ防止インテグリティを指し、 重複したIPデータグラムの到着を検出する (限定されたウィンドウの範囲で)。 これは、例えば、 紛失したメッセージや再送要求されたメッセージを発見できるようにトラフィックにより厳格な順序条件を強制する、 コネクション別インテグリティとは対照的である。 認証サービスとインテグリティサービスはしばしば別々に記述されるが、 実際には密接につながっているものであり、ほとんど常に同時に提供される。
セキュリティアソシエーション(SA)
セキュリティを目的に生成された、単一の(一方向の)論理コネクション。
あるSAを通過するすべてのトラフィックは同じセキュリティ処理が適用される。 IPsecでは、SAはAHまたはESPの使用を通じて実装される、 インターネット層の抽象概念である。
セキュリティゲートウェイ
セキュリティゲートウェイは、 2つのネットワークの間の通信インタフェースとして機能する中間システムである。
セキュリティゲートウェイの外側にあるホスト(およびネットワーク)は、 信頼されていない(あるいは、あまり信頼されていない)と見なされ、 一方、内側にあるネットワークとホストは信頼されている (あるいはより信頼できる)として見なされる。 セキュリティゲートウェイがサービス対象とする内部サブネットとホストは、 共通なローカルのセキュリティ管理を共有するという理由によって信頼されていると推測される。 (後の「信頼されているサブネット」を参照のこと。) IPsecでは、セキュリティゲートウェイは、 内部ホストに対してサービスを提供するためにAH / ESPを実装するポイントであり、 内部ホストがIPsecを使用する外部ホストと (直接または他のセキュリティゲートウェイ経由で) 通信する際にセキュリティサービスをこれらのホストに提供する。
SPI
「Security Parameters Index」 の頭字語。
宛先アドレス、セキュリティプロトコル、およびSPIの組み合わせにより、 セキュリティアソシエーション(SA、 上記を参照のこと)を一意に識別する。 受信側システムが、 受信パケットの処理に使用されるSAを選択できるようにするために、 AHおよびESPプロトコル中でSPIが運ばれる。 SPIは、 SAの生成者(通常SPIを運ぶパケットの受信側)によって定義されるものであり、 ローカルな意味しか持たない。 従って、SPIは一般的に隠されたビットストリングと見なされる。 ただし、SAの生成者は、 ローカル処理を手助けするためにSPI内のビットを解釈するように選択してもよい。
トラフィック解析
敵に対して有益な情報の推測を目的とした、 ネットワークトラフィックフローの解析。
この種の情報としては、伝送頻度、通信中の組織の身元、パケット長、 使用されるフロー識別子などがある。 [Sch94]
信頼されているサブネットワーク
積極的または消極的攻撃に加わっていないことを相互に信頼する、 ホストおよびルータを含むサブネットワーク。
根幹となる通信チャネル(例えばLANまたはCAN)が他の手段で攻撃されていないことも想定する。

補遺 B -- PMTU、DF、分割に関する問題についての解釈および議論

B.1 DF ビット

システム(ホストまたはゲートウェイ)がカプセル化ヘッダ(例えば、 ESPトンネル)を追加する場合、オリジナルパケット内のDFビットは、 カプセル化ヘッダにコピーすべき/しなければならないのだろうか?

パケットを分割することは、一部の状況では正しいように思える。 例えば、ごく小さいMTUを持つネットワーク、 例えばパケット無線網やモバイルノードへ携帯電話で中継する場合は、 残りの経路用にごく小さなPMTUを伝搬し返すよりもむしろ、 パケットを分割することが適切である場合がある。 その他、分割を要求するPMTU制約に関するフィードバックを後のルータから受けるために、 DFビットをセットすることが適切な場合がある。 これら2つの状況は、 ある特定のネットワーク「リンク」上でパケットを分割するかどうかをシステムに決定できるようにすることを主張していることになる。 すなわち、実装にDFビットをコピーすること (およびICMP PMTUメッセージを処理すること) を可能とすることを求めるが、 それはインタフェース毎に選択させるというオプションとすることである。 つまり、管理者が、ルータでのDFビットの処理 (セット、クリア、カプセル化ヘッダからのコピー) を各インタフェース毎に設定できるようにする必要がある。

注釈:IPsecのbump-in-the-stack実装が、送信元/宛先ポートに基づいて、 異なるIPsecアルゴリズムを適用しようとする場合、 経路MTU調整を適用することは困難となるだろう。

B.2 分割

必要であれば、IPsec実装でのIPsec処理の後にIPの分割が発生する。 従って、トランスポートモードAHまたはESPはIPデータグラム全体に対してのみ (IPの断片に対してではない)適用される。 AHまたはESPが適用されたIPパケットは、 配送経路上のルータによって分割される場合があり、 この結果生じた断片は受信側でIPsec処理の前に再構成されなければならない(MUST)。 トンネルモードでは、IPパケットに対してAHまたはESPが適用されるが、 この時、このIPパケットのペイロードは分割されたIPパケットであっても良い。 例えば、セキュリティゲートウェイ、「bump-in-the-stack」(BITS)、 または「bump-in-the-wire」(BITW)でのIPsec実装では、 このような断片に対して、トンネルモードAHを適用してもよい。 ここで、BITSまたはBITW実装というのは、 トンネルモードが適用される断片をホストのIPsec実装が受信する場合の例である。 その一方、トランスポートモードが適用される場合には、 これらの実装では、IPsecを適用する前に断片を再構成しなければならない(MUST)

注釈:IPsecは常に、 カプセル化IPヘッダのフィールドが何であるかを理解していなければならない。 これは、IPsecの挿入位置とは独立しており、 IPsecの定義に固有のものである。 そのため、IP実装に統合されないすべてのIPsec実装には、 必要なIPヘッダ(例えばIP2)を構成するためのコードが含まれなければならない。

*********************************************************************

全体的に、上記にて説明した分割/再構成のアプローチは、 調査済みのすべてのケースに作用する。

                             AH Xport   AH Tunnel  ESP Xport  ESP Tunnel

Implementation approach      IPv4 IPv6  IPv4 IPv6  IPv4 IPv6  IPv4 IPv6

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

Hosts (integr w/ IP stack)     Y    Y     Y    Y     Y    Y     Y    Y

Hosts (betw/ IP and drivers)   Y    Y     Y    Y     Y    Y     Y    Y

S. Gwy (integr w/ IP stack)               Y    Y                Y    Y

Outboard crypto processor *

* 暗号プロセッサシステム自身がIPアドレスを持つ場合は、 セキュリティゲートウェイのケースに含まれる。
このボックスがホストからのパケットを受信し、IPsec処理を行う。
これは同じAH、ESP、およびそれに関連する、 セキュリティゲートウェイが扱うべきIPv4/IPv6 トンネル処理を扱うことができる必要がある。
暗号プロセッサシステム自身がアドレスを持たない場合は、 IPとネットワークドライバ間に実装されるbump-in-the stackと同様である。

以下の分析では次の通りに仮定する。

  1. 所定のシステムのスタックには1つのIPsecモジュールのみが存在する。
  2. IPsecモジュールBからのトランスポートプロトコル、送信元ポート、宛先ポートを(ESP/暗号化を追加して)隠すようなIPsecモジュールAは存在しない。
  3. IPsecを実装できる場所は(上記の表に示すように)いくつか存在する。
    1. ネイティブIPに組み込まれたIPsec実装を持つホスト。
    2. 実装者はスタックのソースにアクセスする。
    3. bump-in-the-stack実装を持つホスト。
    4. IPsecはIPとローカルネットワークドライバの間に実装される。
      スタックのソースへのアクセスは利用できないが、IPsecコードをシステムに取り込むことが可能な、うまく定義されたインタフェースが存在する。
    5. スタックに組み込まれたIPsec実装を持つ、セキュリティゲートウェイと外部ボード暗号プロセッサ。
  4. 上記のすべてのアプローチがすべてのホストで実現可能であるわけではない。
  5. しかし、それぞれのアプローチに対して、そのアプローチが実現可能なホストがいくつか存在する。

上記の3つのカテゴリのそれぞれに対して、IPv4およびIPv6、 AHトランスポートモードおよびトンネルモード、 そしてESPトランスポートモードおよびトンネルモードの、 合計24のケース(3 x 2 x 4)が存在する。

一部のヘッダフィールドとインタフェースフィールドをここで参考としてあげておく。 これはヘッダ順ではないが、その代わり、 列間の比較ができるようにあげてある。 (* = AH認証には含まれない。 ESP認証には、先行するどのヘッダも含まれない。)

                                             IP/Transport Interface

             IPv4            IPv6            (RFC 1122 -- Sec 3.4)

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

             Version = 4     Version = 6

             Header Len

             *TOS            Class,Flow Lbl  TOS

             Packet Len      Payload Len     Len

             ID                              ID (optional)

             *Flags                          DF

             *Offset

             *TTL            *Hop Limit      TTL

             Protocol        Next Header

             *Checksum

             Src Address     Src Address     Src Address

             Dst Address     Dst Address     Dst Address

             Options?        Options?        Opt



             ? = AH には Option-Type と Option-Length は含まれるが、

                 Option-Data は含まれない場合がある。

20のケースそれぞれについての結果を以下に示す("works" = 出力IPsec処理の後に分割され、 入力IPsec処理の前に再構成される場合に動作)。
実装における問題点については、注釈において示される。

  1. ホスト(IP スタックに統合)
  2. ホスト(bump-in-the-stack) -- IPsecをIP層とネットワークドライバの間に挿入。
  3. この場合、IPsecモジュールは、 分割と再構成のために以下のいずれか1つを実行しなければならない。

    ネットワーク層において、 IPsecモジュールはパケットからの次のセレクタ -- 送信元アドレス、宛先アドレス、次プロトコル、 さらにトランスポート層ヘッダが存在する場合には、 送信元ポートと宛先ポートへアクセスすることになる。
    IPsecが名前にアクセスすることは仮定されない。
    利用可能なセレクタ情報は、 適切なセキュリティポリシーエントリとセキュリティアソシエーションを理解するのに十分であると仮定する。

  4. セキュリティゲートウェイ -- IPsec を IP スタックに統合

    注釈:IPsec モジュールはパケットから次のセレクタ -- 送信元アドレス、宛先アドレス、次プロトコル、さらに、 トランスポート層ヘッダが存在する場合には、 送信元ポートおよび宛先ポートにアクセスすることになる。 ユーザIDへはアクセスされない (ホストのみがユーザID情報へアクセスする)。 一部のBump-in-the-stack実装と異なり、 例えば動的に更新されるDNSエントリと連動して動的に割り当てられるIPアドレスを利用する環境が含まれるような場合、 セキュリティゲートウェイはシステム名を提供するためにDNS内の送信元アドレスの検索できる場合がある。 また、ESPヘッダが存在する場合、またはそれが、 分割されたメッセージの最初の断片でない場合には、 トランスポート層の情報へのアクセスは行われない。 利用可能なセレクタ情報は、 適切なセキュリティポリシーエントリとセキュリティアソシエーションを理解するのに十分であると仮定される。

**********************************************************************

B.3 経路 MTU 探索

以前に説明したように、 「ICMP PMTU」とは経路MTU探索に使用されるICMPメッセージを指す。

B.3.1およびB.3.3 (B.3.2は除く) の図における凡例は以下の通り。

==== = セキュリティアソシエーション(AH または ESP、トランスポートまたはトンネル)

---- = コネクティビティ(または、ラベル付けされる場合、管理境界)

.... = 以下の ICMP メッセージ(これ以降 ICMP PMTU と呼ぶことにする)

IPv4:

IPv6 (RFC 1885):

Hx   = ホスト x

Rx   = ルータ x

SGx  = セキュリティゲートウェイ x

X*   = IPsec をサポートする X

B.3.1 生成元ホストの識別

ICMPメッセージで返される情報量は限定されているため、 PMTU情報をさらに伝播させる目的で、セキュリティアソシエーション、 送信元ホストなどを識別するためにどのセレクタが利用できるかに影響が出てくる。

簡単に言えば、 ICMPメッセージは「違反」パケットからの以下の情報を含まなければならない。

- IPv4 (RFC 792) -- IP ヘッダに加えて最低 64 ビット分

従って、IPv4では、 ICMP PMTUは最初の(最も外側の)セキュリティアソシエーションのみを識別する。 これは、ICMP PMTUが、AHまたはESPからの最初のSPIのみが得られる、 「違反」パケットのIPヘッダの後の64ビット分のみを含むためである。 IPv6では、おそらくICMP PMTUはIPヘッダ内のすべてのSPIとセレクタを提供することになるが、 (トランスポートヘッダの)送信元/宛先ポート、 またはカプセル化されたプロトコル(TCP、UDPなど)までは提供しないだろう。 さらに、ESPが使用される場合、 トランスポートポートとプロトコルセレクタが暗号化される場合がある。

以下のセキュリティゲートウェイトンネルの図を見て頂きたい (至る所で説明しているように、 セキュリティゲートウェイはトランスポートモードを使用しない)

     H1   ===================           H3

       ¥  |                 |          /

   H0 -- SG1* ---- R1 ---- SG2* ---- R2 -- H5

       /  ^        |                   ¥

     H2   |........|                    H4

ホストH0、H1、H2とホストH3、H4、H5の間のすべてのトラフィックは、 SG2に対しての1つのSAを使用するというSG1のセキュリティポリシーを考える。 さらに、H0がH5に対してデータパケットを送信し、 その結果R1がICMP PMTUメッセージをSG1へ送信することを考える。 もし、PMTUメッセージがSPIのみを持つのであれば、 SG1はSAを検索し、可能性のあるホストのリスト(H0、H1、H2、 ワイルドカード)を割り出すことができるが、 H0がICMP PMTUメッセージを引き起こしたトラフィックを送信したことをSG1が理解する方法はない。

      original        after IPsec     ICMP

      packet          processing      packet

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

                                      IP-3 header (S = R1, D = SG1)

                                      ICMP header (includes PMTU)

                      IP-2 header     IP-2 header (S = SG1, D = SG2)

                      ESP header      minimum of 64 bits of ESP hdr (*)

      IP-1 header     IP-1 header

      TCP header      TCP header

      TCP data        TCP data

                      ESP trailer



      (*) The 64 bits will include enough of the ESP (or AH) header to



          include the SPI.

              - ESP -- SPI (32 bits), Seq number (32 bits)

              - AH -- Next header (8 bits), Payload Len (8 bits),

                Reserved (16 bits), SPI (32 bits)

ICMPメッセージで返される情報量の制限は、 (ICMP PMTUをどこに伝播させるかを知るために) パケットの生成元ホストを識別する際に問題がでる。 ICMPメッセージが64ビットのIPsecヘッダしか含まない (IPv4での最低限度)のであれば、 IPsecセレクタ(例えば、送信元および宛先アドレス、次プロトコル、 送信元および宛先ポートなど)は失われることになる。 しかし、ICMPエラーメッセージはそれでも、SG1に対してSPI、 PMTU情報、そして、 関連するセキュリティアソシエーションに対する送信元および宛先ゲートウェイを提供することになる。

宛先セキュリティゲートウェイとSPIは、 可能性のある生成元ホストのセットを順に定義していくセキュリティアソシエーションを一意に定義する。 この点において、SG1は、

  1. 可能性のあるすべての生成元ホストに対し、PMTU情報を送信することができる。
  2. これは、ホストのリストがワイルドカードの場合、または多くの/ほとんどのホストがSG1に対して送信してしない場合はうまく動作しない。
    しかし、SPI/宛先/その他が1つまたは少数のホストにマッピングされるのであればうまく動作する可能性がある。
  3. SPI/その他と共にPMTUを保存し、対応するセキュリティアソシエーションで、生成元ホストから次のパケットが到着するまで待つことができる。
  4. パケットがPMTUより大きい場合には、そのパケットをドロップし、新しいパケットと更新されたPMTUでICMP PMTUメッセージを生成し、その生じた問題についてのICMPメッセージを生成元ホストに送信する。
    これにより、生成元ホストへの通知が遅れることになるが、(a)における問題を回避することができる。

後者のアプローチのみがすべての状況において実行できるため、 セキュリティゲートウェイはこのサポートをオプションで提供しなければならない(MUST)。 ただし、オリジナルパケットからのより多くの情報がICMPメッセージに含まれる場合には、 ICMP/PMTUメッセージを伝播するホストをただちに決定し、 PMTUの保存/更新場所の決定に必要な5つのフィールド(送信元アドレス、 宛先アドレス、送信元ポート、宛先ポート、 トランスポートプロトコル)をシステムに提供するための十分な情報が存在する可能性がある。 このような状況では、セキュリティゲートウェイは、 経路の下のほうからICMP PMTUを受信した場合には、 ただちにICMP PMTUメッセージを生成しなければならない(MUST)

注釈:次プロトコルフィールドはICMPメッセージに含まれないことがあり、 そしてESP暗号化によって、 セレクタフィールドが暗号化されて隠されてしまう可能性がある。

B.3.2 PMTU の計算

ICMP PMTUからPMTUを計算するには、 H1によるあらゆるIPsecヘッダ(AH / ESPトランスポート、 またはESP / AHトンネル)の追加を考慮しなければならない。

1つのホスト内において、 複数のアプリケーションがSPIを共有する可能性があり、 セキュリティアソシエーションの入れ子が発生する可能性がある (サポートしなければならない(MUST)組み合わせについては4.5章のセキュリティアソシエーションの基本的な組み合わせを参照のこと)。

以下の図はホスト間のセキュリティアソシエーションの例を示している (ホストのうちの1つから見た場合)。

 (ESPx または AHx = トランスポートモード)
           Socket 1 -------------------------|

                                             |

           Socket 2 (ESPx/SPI-A) ---------- AHx (SPI-B) -- Internet

SPI-Bヘマッピングされる各ソケットに対するPMTUを計算するために、 SPI-Bに到達する2つの経路 -- Socket 1とSocket 2/SPI-AへのSPI-Bからのバックポインタを持つ必要があるだろう。

B.3.3 PMTU データのメンテナンスにおけるグラニュラリティ

ホストでは、PMTU ICMP処理が実行可能なグラニュラリティは、 実装状況に応じて異なる。 ホストを見ると、PMTU問題に関して以下の3つの興味ある状況が存在する。

  1. ネイティブIP実装へのIPsecの統合。
  2. 「bump-in-the-stack」(BITS)実装。
  3. IPsecがネイティブIPとローカルネットワークの間の、既存のIPプロトコルスタック実装の下に実装される。
  4. IPsec実装なし -- これはセキュリティゲートウェイがPMTU情報をホストに送信し返す場合に関連するため含まれる。

(a)の場合のみ、 PMTUデータは通信アソシエーションと同じグラニュラリティでメンテナンスすることが可能である。 その他の場合には、IP層はRFC 1191で定義されている通り、 送信元および宛先IPアドレス(およびオプションでTOS/クラス)のグラニュラリティでPMTUデータをメンテナンスすることになる。 これは、 複数の通信アソシエーションが同じ送信元と宛先IPアドレスにマップされる場合や、 それぞれの通信アソシエーションが(例えば、 異なる変換や異なるアルゴリズムの利用によって)異なる量のIPsecヘッダオーバーヘッドを持つ場合があるため、重要な相違となる。 これを以下の例で説明する。

ケース(a)と(b)において、以下の状況を考えてみる。 H1がH2へ送信する際に、 R1からR2に送信されるパケットがその間のネットワークホップのPMTUを超過する。

                 ==================================

                 |                                |

                H1* --- R1 ----- R2 ---- R3 ---- H2*

                 ^       |

                 |.......|

R1が加入者トラフィックを分割しないように設定されている場合、 R1はH1に対して適切なPMTUを持つICMP PMTUメッセージを送信する。 H1での処理は実装状況に応じて異なる。 (a)(ネイティブIP)の場合、 セキュリティサービスはソケットまたはそれと同等のものにバインドされる。 ここでH1におけるIP/IPsecの実装は、 関連するソケットに対してPMTUを保存/更新できる。 (b)の場合、H1のIP層はPMTUを保存/更新可能であるが、 前に説明したように、送信元および宛先アドレス、そして、 おそらくTOS/クラスのグラニュラリティでのみ行われる。 そのため、与えられた送信元/宛先/TOS/クラスに対するPMTUは、 与えられた送信元および宛先の間のすべての通信アソシエーションに対して使用されるIPsecヘッダの最大限の削減となることから、 結果はサブオプティマルとなる可能性がある。

(c)の場合には、 IPsec処理を行うためにセキュリティゲートウェイが存在しなければならない。 そのため、以下の状況を持つと想定する。 H1がH2へ送信する際に、SG1からRに送信されるパケットがその間のネットワークホップのPMTUを超過する。

                         ================

                         |              |

                H1 ---- SG1* --- R --- SG2* ---- H2

                 ^       |

                 |.......|

上記の(b)のケースで説明したように、 H1のIP層はPMTUを保存/更新可能であるが、送信元および宛先アドレス、 そして、おそらくTOS/クラスのグラニュラリティでのみ行われる。 そのため、与えられた送信元/宛先/TOS/クラスに対するPMTUは、 与えられた送信元および宛先の間のすべての通信アソシエーションに対して使用されるIPsecヘッダの最大限の削減となることから、 結果はサブオプティマルとなる可能性がある。

B.3.4 PMTU データのソケット別メンテナンス

PMTUの計算(B.3.2章)の実装、 および個々の「通信アソシエーション」のグラニュラリティでのPMTUのサポート(B.3.3章)はローカルでの問題である。

しかし、ホストにおけるソケットベースのIPsecの実装は、 ソケット単位で情報をメンテナンスする必要がある(SHOULD)

bump-in-the-stackシステムは、 このシステムによって追加されるすべてのIPsecヘッダオーバーヘッドに対して調整した後、 ICMP PMTUをホストのIP実装に渡さなければならない(MUST)

オーバーヘッドの決定は、 返されたICMP PMTUメッセージに存在するSPIやその他のすべてのセレクタ情報の解析によって決定する必要がある(SHOULD)

B.3.5 PMTU データのトランスポート層への配送

更新されたPMTUをトランスポート層へ届けるホストの仕組みは、 RFC 1191(経路MTU探索)で定義されたものから変更されていない。

B.3.6 PMTU データのエージング

この話題については、6.1.2.4章に含まれている。


補遺 C -- シーケンススペースウィンドウコードの例

この付録では、 32パケットウィンドウのビットマスクチェックを実装するルーチンを紹介しておく。 これは、James Hughes氏(jim_hughes@stortek.com)とHarry Varnis氏(hgv@anubis.network.com)によって提供されたものであり、 実装の例となることを意図して載せたものである。 ここで、 このコードはリプレイのチェックとウィンドウの更新の両方を行うことに注意すること。 従って以下のアルゴリズムは、 パケットが認証された後のみ呼び出される必要がある。 実装時には、ICVを計算する前にリプレイのチェックを行うようにするために、 コードを分割することを考慮してもよい。 パケットがリプレイしていない場合、コードはICVを計算し、 (悪いパケットを破棄し)、そしてパケットがOKであれば、 ウィンドウを更新する。

      
#include <stdio.h>
#include <stdlib.h>

typedef unsigned long u_long;
enum {
    ReplayWindowSize = 32
};

u_long bitmap = 0;                 /* session state - must be 32 bits */
u_long lastSeq = 0;                     /* session state */

/* Returns 0 if packet disallowed, 1 if packet permitted */
int ChkReplayWindow(u_long seq);

int ChkReplayWindow(u_long seq) {
    u_long diff;

    if (seq == 0) return 0;             /* first == 0 or wrapped */
    if (seq > lastSeq) {                /* new larger sequence number */
        diff = seq - lastSeq;
        if (diff < ReplayWindowSize) {  /* In window */
            bitmap <<= diff;
            bitmap |= 1;                /* set bit for this packet */
        } else bitmap = 1;          /* This packet has a "way larger" */
        lastSeq = seq;
        return 1;                       /* larger is good */
    }
    diff = lastSeq - seq;
    if (diff >= ReplayWindowSize) return 0; /* too old or wrapped */
    if (bitmap & ((u_long)1 << diff)) return 0; /* already seen */
    bitmap |= ((u_long)1 << diff);              /* mark as seen */
    return 1;                           /* out of order but good */
}

char string_buffer[512];

#define STRING_BUFFER_SIZE sizeof(string_buffer)

int main() {
    int result;
    u_long last, current, bits;

    printf("Input initial state (bits in hex, last msgnum):¥n");
    if (!fgets(string_buffer, STRING_BUFFER_SIZE, stdin)) exit(0);
    sscanf(string_buffer, "%lx %lu", &bits, &last);
    if (last != 0)
    bits |= 1;
    bitmap = bits;
    lastSeq = last;
    printf("bits:%08lx last:%lu¥n", bitmap, lastSeq);
    printf("Input value to test (current):¥n");

    while (1) {
        if (!fgets(string_buffer, STRING_BUFFER_SIZE, stdin)) break;
        sscanf(string_buffer, "%lu", &current);
        result = ChkReplayWindow(current);
        printf("%-3s", result ? "OK" : "BAD");
        printf(" bits:%08lx last:%lu¥n", bitmap, lastSeq);
    }
    return 0;
}

補遺 D -- ICMP メッセージの分類

以下の表は、ICMPメッセージの特長を、ホスト生成、ルータ生成、両方、 未割り当て/未知として分類したものである。
最初のセットがIPv4であり、2番目のセットがIPv6である。

                                IPv4



Type    Name/Codes                                             Reference

========================================================================

HOST GENERATED:

  3     Destination Unreachable

         2  Protocol Unreachable                               [RFC792]

         3  Port Unreachable                                   [RFC792]

         8  Source Host Isolated                               [RFC792]

        14  Host Precedence Violation                          [RFC1812]

 10     Router Selection                                       [RFC1256]









Type    Name/Codes                                             Reference

========================================================================

ROUTER GENERATED:

  3     Destination Unreachable

         0  Net Unreachable                                    [RFC792]

         4  Fragmentation Needed, Don't Fragment was Set       [RFC792]

         5  Source Route Failed                                [RFC792]

         6  Destination Network Unknown                        [RFC792]

         7  Destination Host Unknown                           [RFC792]

         9  Comm. w/Dest. Net. is Administratively Prohibited  [RFC792]

        11  Destination Network Unreachable for Type of Service[RFC792]

  5     Redirect

         0  Redirect Datagram for the Network (or subnet)      [RFC792]

         2  Redirect Datagram for the Type of Service & Network[RFC792]

  9     Router Advertisement                                   [RFC1256]

 18     Address Mask Reply                                     [RFC950]







                                IPv4

Type    Name/Codes                                             Reference

========================================================================

BOTH ROUTER AND HOST GENERATED:

  0     Echo Reply                                             [RFC792]

  3     Destination Unreachable

         1  Host Unreachable                                   [RFC792]

        10  Comm. w/Dest. Host is Administratively Prohibited  [RFC792]

        12  Destination Host Unreachable for Type of Service   [RFC792]

        13  Communication Administratively Prohibited          [RFC1812]

        15  Precedence cutoff in effect                        [RFC1812]

  4     Source Quench                                          [RFC792]

  5     Redirect

         1  Redirect Datagram for the Host                     [RFC792]

         3  Redirect Datagram for the Type of Service and Host [RFC792]

  6     Alternate Host Address                                 [JBP]

  8     Echo                                                   [RFC792]

 11     Time Exceeded                                          [RFC792]

 12     Parameter Problem                              [RFC792,RFC1108]

 13     Timestamp                                              [RFC792]

 14     Timestamp Reply                                        [RFC792]

 15     Information Request                                    [RFC792]

 16     Information Reply                                      [RFC792]

 17     Address Mask Request                                   [RFC950]

 30     Traceroute                                             [RFC1393]

 31     Datagram Conversion Error                              [RFC1475]

 32     Mobile Host Redirect                                   [Johnson]

 39     SKIP                                                   [Markson]

 40     Photuris                                               [Simpson]









Type    Name/Codes                                             Reference

========================================================================

UNASSIGNED TYPE OR UNKNOWN GENERATOR:

  1     Unassigned                                             [JBP]

  2     Unassigned                                             [JBP]

  7     Unassigned                                             [JBP]

 19     Reserved (for Security)                                [Solo]

 20-29  Reserved (for Robustness Experiment)                   [ZSu]

 33     IPv6 Where-Are-You                                     [Simpson]

 34     IPv6 I-Am-Here                                         [Simpson]

 35     Mobile Registration Request                            [Simpson]

 36     Mobile Registration Reply                              [Simpson]

 37     Domain Name Request                                    [Simpson]

 38     Domain Name Reply                                      [Simpson]

 41-255 Reserved                                               [JBP]





                                IPv6



Type    Name/Codes                                             Reference

========================================================================

HOST GENERATED:

  1     Destination Unreachable                                [RFC 1885]

         4  Port Unreachable









Type    Name/Codes                                             Reference

========================================================================

ROUTER GENERATED:

  1     Destination Unreachable                                [RFC1885]

         0  No Route to Destination

         1  Comm. w/Destination is Administratively Prohibited

         2  Not a Neighbor

         3  Address Unreachable

  2     Packet Too Big                                         [RFC1885]

         0

  3     Time Exceeded                                          [RFC1885]

         0  Hop Limit Exceeded in Transit

         1  Fragment reassembly time exceeded









Type    Name/Codes                                             Reference

========================================================================

BOTH ROUTER AND HOST GENERATED:

  4     Parameter Problem                                      [RFC1885]

         0  Erroneous Header Field Encountered

         1  Unrecognized Next Header Type Encountered

         2  Unrecognized IPv6 Option Encountered

参考文献

[BL73] Bell, D.E. & LaPadula, L.J.,
"Secure Computer Systems: Mathematical Foundations and Model", Technical Report M74-244, The MITRE Corporation, Bedford, MA, 1973年 5月.
[Bra97] Bradner, S.,
「RFCにおいて要請の程度を示すために用いるキーワード(Key words for use in RFCs to Indicate Requirement Level)」, BCP 14, RFC 2119, 1997年3月.
[DoD85] US National Computer Security Center,
"Department of Defense Trusted Computer System Evaluation Criteria", DoD 5200.28-STD, US Department of Defense, Ft. Meade, MD., 1985年12月.
[DoD87] US National Computer Security Center,
"Trusted Network Interpretation of the Trusted Computer System Evaluation Criteria", NCSC-TG-005, Version 1, US Department of Defense, Ft. Meade, MD., 1987年7月31日.
[HA94] Haller, N., and R. Atkinson,
「インターネット認証について(On Internet Authentication)」,
RFC 1704, 1994年10月.
[HC98] Harkins, D., and D. Carrel,
「IKE:インターネット鍵交換(The Internet Key Exchange (IKE))」,
RFC 2409, 1998年11月.
[HM97] Harney, H., and C. Muckenhirn,
"Group Key Management Protocol (GKMP) Architecture",
RFC 2094, 1997年7月.
[ISO] ISO/IEC JTC1/SC6, Network Layer Security Protocol, ISO-IEC DIS 11577, International Standards Organisation, Geneva, Switzerland, 1992年11月29日.
[IB93] John Ioannidis and Matt Blaze,
"Architecture and Implementation of Network-layer Security Under Unix",
Proceedings of USENIX Security Symposium, Santa Clara, CA, 1993年10月.
[IBK93] John Ioannidis, Matt Blaze, & Phil Karn,
"swIPe: Network-Layer Security for IP",
presentation at the Spring 1993年 IETF Meeting, Columbus, Ohio
[KA98a] Kent, S., and R. Atkinson,
「IP認証ヘッダ(IP Authentication Header)」,
RFC 2402, 1998年11月.
[KA98b] Kent, S., and R. Atkinson,
「IP暗号ペイロード(ESP)(IP Encapsulating Security Payload (ESP))」,
RFC 2406, 1998年11月.
[Ken91] Kent, S.,
「米国国防総省 インターネットプロトコルについてのセキュリティオプション(US DoD Security Options for the Internet Protocol)」,
RFC 1108, 1991年11月.
[MSST97] Maughan, D., Schertler, M., Schneider, M., and J. Turner,
「ISAKMP (Internet SAと鍵管理プロトコル)(Internet Security Association and Key Management Protocol (ISAKMP))」,
RFC 2408, 1998年11月.
[Orm97] Orman, H.,
"The OAKLEY Key Determination Protocol",
RFC 2412, 1998年11月.
[Pip98] Piper, D.,
「IPsecにおけるISAKMPの解釈(The Internet IP Security Domain of Interpretation for ISAKMP)」,
RFC 2407, 1998年11月.
[Sch94] Bruce Schneier,
Applied Cryptography, Section 8.6, John Wiley & Sons, New York, NY, 1994年.
[SDNS] SDNS Secure Data Network System, Security Protocol 3, SP3, Document SDN.301, Revision 1.5, 1989年 5月 15日, published in NIST Publication NIST-IR-90-4250, 1990年2月.
[SMPT98] Shacham, A., Monsour, R., Pereira, R., and M. Thomas, "IP Payload Compression Protocol (IPComp)",
RFC 2393, 1998年8月.
[TDG97] Thayer, R., Doraswamy, N., and R. Glenn,
「IPSEC文書ロードマップ(IP Security Document Roadmap)」,
RFC 2411, 1998年11月.
[VK83] V.L. Voydock & S.T. Kent, "Security Mechanisms in High-level Networks", ACM Computing Surveys, Vol. 15, No. 2, 1983年6月.

免責事項

本書において示された見解と仕様は著者によるものであり、 必ずしもその雇い主によるものではない。 著者とその雇い主は、正確/不正確な実装、 およびこの設計の利用から生じるどのような問題への責任も拒否する。

著者のアドレス

Stephen Kent
BBN Corporation
70 Fawcett Street
Cambridge, MA 02140
USA

電話: +1 (617) 873-3988
EMail: kent@bbn.com

Randall Atkinson
@Home Network
425 Broadway
Redwood City, CA 94063
USA

電話: +1 (415) 569-5000
EMail: rja@corp.home.net

翻訳者のアドレス

株式会社 NTTデータ
開発本部
馬場 達也

EMail: babatt@nttdata.co.jp

著作権表記全文

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

本文書とその翻訳は、複製および他に提供することができる。 また、この文書に論評や説明を加えたり、その実装を補助するものは、 上記の著作権表示およびこの節を付加していれば、 全体あるいは一部であっても一切の制約を課されることなく作成、複製、 発表、配布できる。 ただし、この文書自体に対して、 著作権表示やインターネットソサエティもしくは他のインターネット関連団体への参照を取り除くなどの変更を加えてはならない。 インターネット標準化過程で定義されている著作権のための手続きに従って、 インターネット標準を開発するために必要な場合や、 RFCを英語以外の言語に翻訳する必要がある場合はそのかぎりでない。

上記の制限は永続的なものであり、 インターネットソサエティもしくはその継承者や譲渡者によって取り消されることはない。

本文書とここに含まれた情報は「無保証」で提供され、 インターネットソサエティおよびIETFはすべての保証を明示的にも暗黙的にもおこなわない。 その中には、この情報がいかなる権利も侵害していないという保証や、 商用利用および特定目的における適合性への保証が含まれる。