IKE(Internet Key Exchange)とは

IKEは、IPSecの通信を行うIPSec SAの生成、管理を行うためのプロトコルです。IPSec SAを生成するには、利用する暗号化アルゴリズムやハッシュアルゴリズムを決定しなければいけません。また、SAを生成するデバイスが正しいデバイスであるかを認証(ピア認証)する必要があります。そして、暗号化を行うための暗号鍵を決めないといけません。IPSecの暗号化は秘密鍵暗号方式を利用します。秘密鍵をデータの送信側と受信側で共有しなければいけません。さらに、同じ暗号鍵をずっと使い続けると、暗号が解読される可能性が増大します。そのため、定期的に暗号鍵を変更することも必要です。

こうした作業を手作業で行うのはとても手間がかかります。人間の手がかかるほど、設定ミスの可能性も増えるし、暗号鍵が漏れてしまう危険性も増えてしまいます。IPSec SAの暗号化アルゴリズム、ハッシュアルゴリズム、ピア認証や暗号鍵の共有・更新などを自動的に行うことがIKEの目的です。

IKEの基本機能

IKEには3つの基本機能があり、これらの機能によってIPSec SAの生成、管理を行います。

  • プロポーザル交換
    生成するSAの暗号化アルゴリズムやハッシュアルゴリズムをネゴシエーションするための機能
  • Diffie-Hellman交換
    IPSec SAの暗号化を行うための秘密鍵を生成します。Diffie-Hellman交換では、公開鍵暗号方式によって秘密鍵を安全に自動生成することができます。
  • ピア認証
    SAを生成する対向のデバイスが正規のデバイスであるかを認証します。ピア認証として、次のものがあります。
    →PSK(Pre Shared Key:事前共有鍵)
    →公開鍵暗号認証
    →デジタル証明書

ISAKMP SA

ここでもう1種類のSAが出てきます。ISAKMP SAは「アイサキャンプエスエー」もしくは「アイサカンプエスエー」と発音することが多いです。ISAKMP SAとは、IKEの制御を行うためのSAです。IKEの制御情報を安全にピア間でやりとりするためには、IKEの制御情報も暗号化し、整合性を確認するためにISAKMP SAを生成します。

ISAKMP SAを生成するためにピア間でプロポーザル交換をします。ISAKMP SAのためのパラメータは、次の通りです。

  • 暗号化アルゴリズム
  • ハッシュアルゴリズム
  • ピア認証方式
  • Diffie-Hellman交換のパラメータ
  • SAのライフタイム

これらの一連のパラメータがISAKMP SA用のプロポーザルで、ピア間でまずISAKMP SAのプロポーザル交換を行います。ピア間で一致するプロポーザルのパラメータを用いて、ISAKMP SAを生成します。

こうしたISAKMP SAを生成するプロセスはIKEのフェーズ1と呼ばれています。

IKEフェーズ1

IKEフェーズ1では、実際にデータを暗号化して安全な通信を行うためのIPSec SAを作成するためのISAKMP SAを作成します。ISAKMP SAを作成するためには、IPSecを利用するデバイス(VPNゲートウェイ)間でProposal交換します。

IKEフェーズ1のProposal交換では、次のパラメータをネゴシエーションします。

  • 暗号化アルゴリズム
    ISAKMP SAを暗号化するための暗号化アルゴリズムです。DES-CBCや3DES-CBCなどがあります。
  • ハッシュアルゴリズム
    フェーズ1で利用するハッシュアルゴリズムです。SHA-1やMD5などがあります。
  • 認証方式
    VPNゲートウェイ間の認証方式です。事前共有鍵(PSK)認証、デジタル署名認証、公開鍵認証などがあります。
  • Diffie-Hellman交換
    IPSec SAで利用する秘密対象鍵を安全に生成するためのDiffie-Hellman交換のパラメータです。DHグループ1、DHグループ2、DHグループ5などがあります。
  • SAのライフタイム
    ISAKMP SAの有効期間です。時間で指定する場合と、データの転送量で指定する場合があります。

Proposal交換は、IPSecで暗号化するパケットがトリガーとなります。VPNゲートウェイがIPSec化対象のパケットを受信すると、IKEフェーズ1のProposal交換を開始します。Proposalは複数設定することもできます。VPNゲートウェイ間で一致したパラメータのProposalのうちから選択します。

IKEフェーズ2

IKEフェーズ2では、実際にデータを転送するためのIPSec SAを確立するためのさまざまなパラメータのネゴシエーションを行います。フェーズ2でネゴシエーションするパラメータには次のものがあります。

  • セキュリティプロトコル(ESP or AH)
    IPパケットをESPもしくはAHのどちらでカプセル化するかを決めます。1つのSAにはESPかAHどちらかのみ適用できます。
  • ライフタイム
    IPSec SAの有効期間です。ISAKMP SAと同様に時間で指定することもできればデータの転送量で指定することもできます。
  • カプセル化モード
    トンネルモード、トランスポートモードのどちらのモードでカプセル化するかを決めます。
  • 暗号化アルゴリズム
    セキュリティプロトコルとして、ESPを利用しているときの暗号化アルゴリズムを決めます。
  • ハッシュアルゴリズム
    IPSec化したパケットが改ざんされていないかをチェックするためのハッシュアルゴリズムを決定します。セキュリティプロトコルとしてAHを指定しているときは必須です。ESPの場合はオプションです。
  • Diffie-Hellman交換
    基本的にIPSec SAでは、フェーズ1のDiffie-Hellman交換で生成した値とフェーズ2で生成する値から秘密対象鍵を生成します。よりセキュリティを高めるためのオプションとして鍵のPFS(Perfect Forward Security)があり、フェーズ2でもDiffie-Hellman交換により、秘密対象鍵を生成することができます。

フェーズ2は、フェーズ1のネゴシエーションが完了して、ISAKMP SAが確立してから行われます。フェーズ2でも複数のProposal交換を行うことができます。

IkEフェーズ2のネゴシエーションでIPSec SAが確立すれば、IPパケットにESPもしくはAHのカプセル化を行いIPSec化します。そして、そのIPSec化したパケットを送信します。また、生成されたIPSec SAはライフタイムが経過するとターミネートされることになります。