ファイアウォールを用いることで保護されたネットワークへの、許可しない通信を遮断する ことができるが、その際でも、許可された通信が公衆網上などの経路途中で盗聴される可能性 が残る。こうしたセキュリティの脅威に対して、IPsec(Security Architecture for Internet
Protocol)[13]は通信を暗号化することで、セキュリティ強度が低い経路を介しても通信の安全
を守る技術である。IPsecは、暗号技術を用いて、IPパケット単位でデータの改竄防止や秘匿 機能を提供するプロトコルである。これによって、HTTPやFTP`などのように暗号化をサポ
ートしていないアプリケーションを用いる際にも、通信路の途中で通信内容を盗聴されたり、
改竄されたりすることを防止できる。
IPsecはAH (Authentication Header)[14]と、ESP (Encapsulated Security Payload)[15]
の二つのセキュリティプロトコルが定義されている。この二つは実現するセキュリティ機能が 異なっている。
AHはIPパケットの完全性の保証を提供し、AHはIPヘッダの改ざんの検知も行う。ESP は送信側がIPパケットを暗号化するため、伝送経路の途中での盗聴を防止することができる。
これらのセキュリティプロトコルとは独立した概念として、トンネルモードとトランスポート モードの二種類のIPsecモードがある[13]。トンネルモードは主に端末間の間にあるルータ装
置間でIPsecを用いるケースで利用され、最初の端末が発信したパケットにルータ装置が新た
なIPヘッダとIPsec ヘッダをつけてオリジナルのパケットをカプセル化して対向のルータ装
置が、オリジナルのパケットを取り出して、本来のあて先に転送する。トランスポートモード では端末同士で直接IPsecを処理する際に用いられる。
2.6.1. IPsec のトンネルモードとトランスポートモード
本節ではIPsecのトンネルモードとトランスポートモードについて述べる。図 2-10に示す
ネットワークで端末Aが送信したIPパケット(図 2-11)を受け取ったIPsecルータAはこ のパケットをIPsecのトンネルモードのパケット(図 2-12)に変換してIPsecルータBへ送 信する。このパケットを受け取ったIPsec ルータ B はIPsec トンネルモードのパケット(図
2-12)を復号化して元のパケット(図 2-11)を取り出して端末Bに送信する。
IPsec
端末 A ルータA IPsec
ルータB 端末 B
図 2-10 IPsecトンネルモードで動作するルータを含むネットワーク
ペイロード ソースアドレス
端末A
宛先アドレス 端末B
図 2-11 通常のIPパケット概略図
ソースアドレス IPsecルータA
宛先アドレス IPsecルータB
IPsec
ヘッダ ペイロード
Inner Header Outer Header
ソースアドレス 端末A
宛先アドレス 端末B
図 2-12 トンネルモードのIPsecパケットの概略図
トランスポートモードでは端末同士が直接IPsecの処理を行う。図 2-13のようなネットワ ーク端末同士がIPsecトランスポートモードで通信を行っている。この際のIPsecのトランス ポートのパケットの概念図は図 2-14のようになる
端末 A ルータ 端末 B
IPsec通信
ルータ
図 2-13 トランスポートモードで動作する端末を含むネットワーク
ソースアドレス 端末A
宛先アドレス 端末B
IPsec
ヘッダ ペイロード Inner Header Outer Header
図 2-14 トンネルモードのIPsecパケットの概略図
端末同士が直接IPsec処理を行う際にはトランスポートモードだけでなく、トンネルモード を用いても良い。この場合は、IPsecヘッダの内外で同じIPアドレスが用いられることになる。
2.6.2. IPsec AH
トンネルモードとトランスポートモードでは、それぞれESP、AHを用いることができる。
以下にAHのパケットの概略を示す。図 2-15 はIPsecを用いていない通常のIPパケットの 概略図である。
ソースアドレス 端末A
宛先アドレス
端末B ペイロード
図 2-15 IPパケット概略図
図 2-16はAHでのトランスポートモードのパケットの概念図である。パケット全体が完全性 の検証範囲になっている。AHではパケットの暗号化は行われない。
ソースアドレス 端末A
宛先アドレス 端末B
AH
ヘッダ ペイロード
完全性の検証範囲
図 2-16 トランスポートのAHのIPsecパケットの概略図
図 2-17はAHのトンネルモードのパケットの概念図である。パケット全体が完全性の検証範 囲になっている。パケットの暗号化は行われない。
ソースアドレス 端末A
宛先アドレス 端末B AH
ヘッダ ペイロード
完全性の検証範囲
ソースアドレス IPsecルータA
宛先アドレス IPsecルータB
図 2-17 トンネルモードのAHパケットの概略図
トランスポートモード、トンネルモードの共に、パケットの生成時に送信者は送信者と受信者 のみが知っている鍵を用いて、全体のハッシュ値を計算しICV(Integrity Check Value)を求め、
AHヘッダに格納している。パケットの受信者は、受け取ったパケットを保持している鍵でハ ッシュ値を求め、格納されているハッシュ値と一致するかを確認することで、パケットが改ざ んされているかを検出することができる。
2.6.3. IPsec ESP
パディング、パディング長、次ヘッダの各フィールドが格納されている。
送信端末は、受信端末と共有している鍵を用いて、暗号化を行う。暗号化される範囲はペイ ロードと ESP トレイラである。また前述したように完全性のチェックについてはオプション である。
ソースアドレス 端末A
宛先アドレス 端末B
ESP
ヘッダ ペイロード
完全性の検証範囲
ESP
トレイラ ICV
暗号化の範囲
図 2-18 トランスポートモードのESPのIPsecパケット概略図
トンネルモードの場合は、端末A からパケットを受け取ったIPsecルータAが暗号化の処理 を行う。図 2-19に示すように暗号化される範囲は、本来の送受信のアドレスである端末Aと 端末Bのアドレス、ならびに、ペイロードとESPトレイラである。トンネルモードでも同様 に完全性のチェックはオプションである。
ソースアドレス 端末A
宛先アドレス 端末B ESP
ヘッダ ペイロード
完全性の検証範囲
ソースアドレス IPsecルータA
宛先アドレス IPsecルータB
ESP トレイラ ICV
暗号化の範囲
図 2-19 トンネルモードのESPのIPsecパケット概略図
IPsecの仕様では、ESPの実装は必須だがAHはオプション扱いであり、実際の利用において
もESPが主に用いられている。
2.6.4. SP と SA 、 IKE
前節まででIPsecのパケットについて述べたが、実際にIPsecを用いるためには、どの端末
とIPsec通信を行うか、通信はAHとESPのどちらで行うのかといった情報や、用いる暗号
方式や暗号鍵の管理などを行う必要がある[13]。
IP通信にIPsecを適用する端末を定めるものをSP(security policy)と呼び、これを管理する
データベースをSPDと呼ぶ。IPsecのパケットは同一の端末に対して送信と受信で別のルール を適用することができるため、SPは送受信でそれぞれ作成される。
IPsecを利用するかどうかを定めたSPの他に、具体的な IPsecのパケットの構築のための
情報、すなわち、セキュリティプロトコル(AHもしくは ESP)、モード(トランスポートモ
ードもしくはトンネルモード)、使用する認証アルゴリズムや暗号アルゴリズム、認証や暗号 に用いる鍵もしくは鍵の入手方法等を指定する必要がある。これらの情報を SA(Security
Association)と呼び、送信元と送信先のペアごとに管理される。すなわち、SAは単方向であり、
双方向の通信を行うためには、通信相手への送信用のSAと通信相手からの受信用のSAの二 つを設定する必要がある。これを管理するデータベースをSADと呼ぶ。SA にはSPIという SAを識別する値を定め、端末間ではこのSPIを用いパケットの生成に用いたSAを共有する。
SA は事前に管理者が手動で設定をしておくことが可能だが、自動鍵管理プロトコル(IKE Internet key Exchange)[16][17]で自動生成をすることも可能である。IKEはUDPの500番 ポートを用いるプロトコルであり、IPsec の通信に先立って、IPsec の通信を行う装置間で通 信を行い、SAの生成を行う。