IPsecはIP Security Architectureの略で、 インターネットで安全な通信を実現するために提案されている方式のひとつです。 インターネットで安全な通信を実現するためには、さまざな方式があります。 たとえば、S/MIMEやPGPはメールの通信を保護し、 SSLはWWWの通信を保護します。これに対してIPsecは、 特定のアプリケーションではなく、 多様なアプリケーションを保護するという特徴を持っています。
本来、インターネットを経由する通信は、盗聴や改ざんなど、 さまざまな脅威にさらされます。 しかしながら、暗号によって通信を保護すれば、 これらの脅威を軽減することができます。 このように、安全でない通信路を使い、 暗号によって安全性を高めたネットワークのことを VPN(Virtual Private Network)といいます。 そして、IPsecはVPNを構築するための道具として広く用いられています。 次の図は、典型的なVPNの構成例です。
--------+-------- 本社ネットワーク | +----+----+ | router | .............. +---------+ .............. ......... * * * * ......... ... * * * * ... ... **************** * * **************** ... ... * * * * ... インターネット ... * ****** ****** * ... ....... * * * * ....... +--------+ +--------+ +--------+ +--------+ | router | | router | | router | | router | +---+----+ +---+----+ +---+----+ +---+----+ | | | | ---+--- ---+--- ---+--- ---+--- 支店ネットワーク ※ アスタリスク(*)の部分の通信が暗号化されている。
VPNの構成では、端末が通信を暗号化する必要がないので、 暗号化のためのソフトウェアを用意する必要はありません。 一方、ルータは、LANからWANへ向かう通信に暗号をかけ、 WANから受信した通信の暗号を解くという機能を持ちます。 IPsecでは、このような機能を持つルータのことを セキュリティ・ゲートウェイ(Security Gateway)とよんでいます。 RTシリーズのルータも同様にセキュリティ・ゲートウェイとして動作します。
IPsecはVPNを実現する道具として広く使われています。 しかし、VPNだけがIPsecの用途ではありません。たとえば、以下の図のように、 端末と端末の間で通信をするケースがあります。
+---------+ +---------+ | | <-------- TELNET + IPsec ------> | | | 端末 | <-------- FTP + IPsec ---------> | 端末 | | | <-------- POP + IPsec ---------> | | +---------+ +---------+
このような使用方法はトランスポートモードとして知られているものですが、 実際にはあまり使われていません。 ひとつの理由は、 アプリケーションごとにトランスポートモードの制御をする必要があり、 設定が面倒になることがあげられます。 すでに、SSHのように用途を限定したアプリケーションが広く普及しているので、 設定の難しいトランスポートモードは普及しにくいかもしれません。
ここではVPNを実現するために、 IPsecがどのように動作するかということを説明します。
VPNでは、2つのルータの間でデータを暗号化して通信を保護します。 このときに必要になるのが鍵とよばれる情報です。 鍵という言葉は比喩的なもので、 いわゆるパスワードや暗証番号と同じようなものです。
IPsecでは、鍵を自動で計算し管理するために、 IKE(Internet Key Exchange)というプロトコルをつかいます。 ルータにIKEを設定すると、2つのルータの間で鍵交換とよばれる手続きが行われ、 鍵が自動的に生成されます。 鍵には決められた有効期限(寿命)があり、それを過ぎると、 新しい鍵がつくられて置き換わる仕組みになっています。
また、通信を暗号化するために、 ESP(Encapsulating Security Payload) というプロトコルがつかわれます。 ルータは、通信を構成するひとつひとつのIPパケットを暗号化して、 新しいIPパケットを構成します。 また、ルータがESPで暗号化されたIPパケットを受け取ったら、 暗号を解いて、元のIPパケットを取り出します。 この様子を図に示します。
+--------+ | | もとのIPパケット +--------+ ↓ 暗号化 +--------+ |////////| +--------+ ↓ IPヘッダをつける +---+--------+ +---+--------+ | |////////| ---------- // ---------> | |////////| +---+--------+ インターネット +---+--------+ ^^^^^ 追加されたIPヘッダ ↓ 暗号部分を取り出す +--------+ |////////| +--------+ ↓ 解読 +--------+ | | もとのIPパケット +--------+
IPsecでは、暗号に加えて、認証の機能をつかうことができます。 認証とは印章やサインのようなもので、通信相手を確認し、 なりすましを防ぐことを目的とするものです。IPsecの認証は、 AH(Authentication Header)というプロトコルで実現されます。
AHでは、もとのIPパケットに対して、 印章やサインに相当する情報(認証情報)を計算します。そして、 認証情報をもとのIPパケットに追加して送信します。 AHで処理されたIPパケットを受け取ったら、 認証情報が妥当であることを確認し、妥当であれば、 認証情報を外してもとのIPパケットを取り出します。 この様子を図に示します。
+--------+ | | もとのIPパケット +--------+ ↓ 認証情報を追加する +--+--------+ |//| | +--+--------+ ↓ IPヘッダと認証情報をつける +---+--+--------+ +---+--+--------+ | |//| | ---------- // ---------> | |//| | +---+--+--------+ インターネット +---+--+--------+ ^^^^^ 追加されたIPヘッダ ↓ 認証情報を確認 +--------+ | | もとのIPパケット +--------+
これらのESPとAHの例では、もとのIPパケットに 新しいIPヘッダをつけてインターネットへ送信しています。 つまり、インターネットを経由するIPパケットは、 もとのIPパケットをデータとして運んでいます。 このように、IPパケットをIPパケットで運ぶことを トンネリング(tunneling)といいます。
[関連ドキュメント]
|