IPsec は、パケットの認証または暗号化、もしくはこの両方を実行することで、IP パケットを保護します。IPsec は、アプリケーション層よりかなり下の IP モジュール内で実行されます。したがって、インターネットアプリケーションは、IPsec を使用するために自分自身を設定することなく、IPsec を利用できます。正しく使用すれば、IPsec は、ネットワークトラフィックの保護に有効なツールとなります。
IPsec による保護では、次の 5 つのコンポーネントが主に使用されます。
セキュリティープロトコル – IP データグラムの保護機構です。認証ヘッダー (AH) は、IP パケットに署名を行い、完全性を保証します。データグラムの内容は暗号化されませんが、パケットの内容が変更されていないことが受信側に保証されます。また、パケットが送信側によって送られたことも保証されます。カプセル化セキュリティーペイロード (ESP)は、IP データを暗号化し、パケット転送中に内容が分からないようにします。ESP は、認証アルゴリズムオプションによってデータの完全性も保証します。
セキュリティーアソシエーションデータベース (SADB) – IP 宛先アドレスと索引番号にセキュリティープロトコルを関連付けるデータベースです。この索引番号は、セキュリティーパラメータインデックス (SPI)と呼ばれます。これらの 3 つの要素 (セキュリティープロトコル、宛先アドレスおよび SPI) は、正当な IPsec パケットを一意に識別します。セキュリティーアソシエーションデータベースにより、パケットの宛先に届いた保護対象のパケットは確実に受信側に認識されます。また、受信側は、このデータベースの情報を使用して、通信を復号化し、パケットが変更されていないことを確認し、パケットを再度組み立て、そのパケットを最終的な宛先に届けます。
鍵管理 – 暗号化アルゴリズムおよび SPI 用のキーの生成と配布です。
セキュリティーポリシーデータベース (SPD) – パケットに適用される保護レベルを指定するデータベースです。SPD は、IP トラフィックをフィルタリングし、パケットの処理方法を決定します。パケットは破棄したり、問題ない場合は、通過させたりできます。また、IPsec で保護することも可能です。出力パケットの場合、SPD と SADB が適用する保護レベルを決定します。入力パケットの場合、パケットの保護レベルを許容できるかどうかの決定に SPD が役立ちます。パケットが IPsec によって保護されている場合は、パケットを復号化し、確認したあとに、SPD が参照されます。
IPsec は、セキュリティー機構を IP 宛先アドレスに転送される IP データグラムに適用します。受信側ユーザーは、SADB の情報を使用して、到着パケットが正当なことを確認し、それらを復号化します。アプリケーションで IPsec を呼び出すと、ソケット単位レベルでも IP データグラムにセキュリティー機構が適用されます。
ソケットの動きはポートとは異なりますので注意してください。
ソケットごとの SA によって、SPD 内の対応するポートエントリが無効になります。
また、ポートのソケットが接続され、そのあとで IPsec ポリシーがそのポートに適用された場合、IPsec は、そのソケットを使用するトラフィックを保護しません。
当然、IPsec ポリシーがポートに適用された「あとに」ポート上で開かれたソケットは、IPsec ポリシーの保護対象となります。
インターネットエンジニアリングタスクフォース (IETF) は、IP 層のセキュリティーアーキテクチャーを説明するいくつかの RFC (Requests for Comments) を公表しています。すべての RFC の著作権は、インターネット協会が有しています。RFC へのリンクについては、http://www.ietf.org/を参照してください。次の RFC リストは、比較的一般的な IP セキュリティーの参考文献です。
RFC 2411、『IP Security Document Roadmap』、1998 年 11 月
RFC 2401、『Security Architecture for the Internet Protocol』、1998 年 11 月
RFC 2402、『IP Authentication Header』、1998 年 11 月
RFC 2406、『IP Encapsulating Security Payload (ESP)』、1998 年 11 月
RFC 2408、『Internet Security Association and Key Management Protocol (ISAKMP)』、1998 年 11 月
RFC 2407、『The Internet IP Security Domain of Interpretation for ISAKMP』、1998 年 11 月
RFC 2409、『The Internet Key Exchange (IKE)』、1998 年 11 月
RFC 3554、『On the Use of Stream Control Transmission Protocol (SCTP) with IPsec』、2003 年 7 月、[Solaris 10 リリースでは実装せず]
IPsec RFC は、IPsec をシステムに実装する際に分かっていると便利な用語を多数定義しています。次の例は、IPsec の用語、それらの一般的に使用されている用語を示し、各用語を定義しています。キーのネゴシエーションで使用する用語の一覧は、表 22–1 を参照してください。
表 19–1 IPsec の用語、略語、および使用方法
IPsec の用語 |
略語 |
定義 |
---|---|---|
セキュリティーアソシエーション |
SA |
ネットワーク上の 2 つのノード間の一意の接続。接続は、 セキュリティープロトコル、セキュリティーパラメータインデックス、および IP 宛先の 3 つで定義されます。IP 宛先は、IP アドレスまたはソケットのどちらでもかまいません。 |
セキュリティーアソシエーションデータベース |
SADB |
アクティブなセキュリティーアソシエーションをすべて含むデータベース。 |
セキュリティーパラメータインデックス |
SPI |
セキュリティーアソシエーションの索引値。SPI は、同じ IP 宛先およびセキュリティープロトコルを持つ SA を区別する 32 ビットの値です。 |
SPD |
出力パケットと入力パケットの保護レベルが指定どおりかを判断するデータベース。 |
|
キー交換 |
|
非対称暗号化アルゴリズムのキーを生成する処理。主な手法には RSA プロトコルと Diffie-Hellman プロトコルがあります。 |
Diffie-Hellman プロトコル |
DH |
キー生成とキー認証に関るキー交換プロトコル。しばしば「認証されたキー交換」と呼ばれます。 |
RSA プロトコル |
RSA |
キーの生成とキーの配布に関係するキー交換プロトコル。このプロトコル名は、作成者の Rivest、Shamir、Adleman の三氏に因んでいます。 |
インターネットセキュリティーアソシエーションおよび鍵管理プロトコル |
ISAKMP |
SA 属性の形式を設定し、SA のネゴシエーション、変更、削除を行うための共通フレームワーク。ISAKMP は、IPsec SA 処理の IETF 標準です。 |