IPSecとは

IPSecとは、ネットワーク層レベルでパケットの暗号化や認証を行い安全な通信を行うためのプロトコルです。ネットワーク層レベルでのセキュリティ技術なので、IPSecを利用すると、アプリケーションに依存せずにすべてのIPパケットのセキュリティを確保することができます。

IPSecは、RFCで標準化されており、インターネット上で安全に通信をするための、インターネットVPNを実現するための技術として、広く利用されています。IPSecによるインターネットVPNは、IPSec VPNとも呼ばれます。

IPSecのプロトコル

IPSecによる通信では、いくつかのプロトコルが組み合わさって動作します。その中でも重要なものが次の3つです。

  • ESP(Encapsulating Security Payload)
  • AH(Authentication Header)
  • IKE(Internet Key Exchange)

ESPとAH

ESPとAHによってIPパケットをカプセル化します。ESPはパケットの暗号化、接続先の認証およびパケットが改ざんされていないことの認証といった機能を提供します。つまり、データの機密性とデータの完全性を提供することができます。AHは暗号化せずに、接続先およびパケットが改ざんされていないことの認証を行います。

ESPまたはAHでIPパケットをカプセル化するときに「トランスポートモード」と「トンネルモード」という2つのモードがあります。トランスポートモードは、元のIPヘッダはそのまま残します。データ部分だけをカプセル化します。ホスト間の接続を行うときにトランスポートモードを利用します。トンネルモードは、元のIPヘッダとデータ部分をすべてカプセル化します。そして、新しくIPヘッダを付加します。VPNゲートウェイによって、LAN間接続を行うときにトンネルモードを利用します。新しいIPヘッダはVPNゲートウェイのIPアドレスの情報が記載されることになります。

AHのトランスポートモード、トンネルモードのカプセル化の様子は次の図のようになります。

図 AHのカプセル化
図 AHのカプセル化

また、ESPのトランスポートモード、トンネルモードのカプセル化の様子は次の図のようになります。

図 ESPのカプセル化
図 ESPのカプセル化

以上のように、IPSecにはAH、ESPのプロトコルと、トランスモード、トンネルモードの動作モードがあり、暗号化の必要性やどのような用途に利用するかによって、これらを組み合わせて利用します。

たとえば、インターネットVPNを利用して拠点間を接続するには、ESPトンネルモードでパケットの暗号化と認証を行います。社内LANなどのコンピュータ間の通信では、AHトランスポートモードやESPトランスポートモードを利用します。

IKE(Internet Key Exchange)

IPSecで通信を行うためには、VPNゲートウェイ間または、VPNゲートウェイとVPNクライアント間といったVPN装置間でコネクション(トンネル)を設定する必要があります。そのコネクションを「SA(Security Association)」といいます。

SAを確立するためには、IPSecのプロトコルやモードの他に暗号化する際の暗号化アルゴリズムや認証アルゴリズムを双方でネゴシエーションします。なお、SAは片方向のトンネルであるため、IPSecでパケットを送受信するためには、対向のVPN装置との間に2つのSAが必要となります。

このSAを確立するために一般的に、「IKE(Internet Key Exchange)」という鍵交換プロトコルが利用されます。ここでいう鍵とは、暗号化に使う鍵だけでなく、認証に使う鍵も含まれており、IKEによって鍵の生成と交換、鍵の更新を自動的に行うことができます。

IKEを利用してIPSecのSAを確立するためには、フェーズ1とフェーズ2の2つの段階を踏みます。フェーズ1は、IKE自身が安全に情報を交換するためにISAKMP SA(Internet Security Association and Key Management Protocol SA)を確立します。そして、フェーズ2で実際にパケットを転送するためのIPSec SAを確立します。