IKE(Internet Key Exchange : 鍵交換)
- 暗号化アルゴリズムを決定し、暗号化鍵を動的に生成する鍵プロトコルで、暗号化通信を行う
- UDP/500
- パケット構成
- IKEv1 の主な機能と動作
- 通信相手の認証
- SA の作成と管理
- ISAKMP SA, IPsec SA の順番で SA を作成
- パケットの交換方法によって幾つかの交換タイプ(Exchange type) がある
- ISAKMP SA の作成にはメインモードかアグレッシブモード
- メインモード
- ネゴシエーション
- イニシエータが ISAKMP パラメタ(暗号化アルゴリズム、ハッシュアルゴリズム、認証方式など) を提案し、レスポンダがその中から受諾可能なパラメタを選択
- 秘密対称鍵の生成・交換
- イニシエータとレスポンダが DH 鍵交換アルゴリズムによって秘密鍵を共有し、そららをもとにそれぞれ次の 4 つの秘密対称鍵を生成
- SKEYID
- SKEYID_d
- SKEYID_a
- SKEYID_e
- イニシエータとレスポンダが DH 鍵交換アルゴリズムによって秘密鍵を共有し、そららをもとにそれぞれ次の 4 つの秘密対称鍵を生成
- 相手の認証
- ID と認証用のハッシュ値により相手を認証し、ISAKMP SA が確立
- ID と認証用のハッシュ値は SKEYID_e によって暗号化される
- メインモードで事前共有鍵認証を行う場合、3 で ID を交換する前に 2 において通信相手の事前共有鍵を特定する必要がある
- これを行なうには、通信相手の IP アドレスを頼りにするしかない
- そのため 3 の ID には IP アドレスしか使用できない制約がある
- 毎回動的に IP がかわる環境では事前共有鍵が特定できなくなるため、この組み合わせ(事前共有鍵認証によるメインモードでは使用できない)
- ネゴシエーション
- アグレッシブモード
- イニシエータが ISAKMP パラメタ、DH 公開値、ID, 認証用乱数を送信
- メインモードとは異なり、秘密対称鍵を生成する前に最初のパケット ID を送るため、暗号化はされない
- レスポンダが、受諾するパラメタ、DH 公開値、ID, 認証用乱数、認証用ハッシュ値を送信
- これによりイニシエータとレスポンダが DH 秘密鍵を共有し、メインモードと同様に 4 つの秘密対称鍵を生成
- イニシエータが、認証用のハッシュ値をレスポンダに送信
- これによりレスポンダはイニシエータを認証し、ISAKMP SA が確立
- 事前共有鍵認証を行う場合、ID は暗号化されないが、最初に送信されるため、ID に FQDN などを使用して事前共有鍵との対応付を行なうことができる
- IP が動的に変更されても問題ない
- IKEv2 ではメインモード、アグレッシブモードが統合化され、動的に設定される IP アドレスにも標準で対応
- イニシエータが ISAKMP パラメタ、DH 公開値、ID, 認証用乱数を送信
- メインモード
- IPsec SA の作成にはクイックモードが使用
- イニシエータとレスポンダが 1 往復半のパケット交換によって IPsec SA を作成する
- この通信は前フェーズで確立された ISAKMP SA を使用して行われるため、パケットのペイロード部分が暗号化される
- IPsec SA で使用される秘密対称鍵の生成には、前フェーズで生成された SKEYID_d が使用されるため、通常は DH 鍵交換アルゴリズムによる新たな秘密対称鍵の生成は行わない
- イニシエータが IPSec SA パラメタ、認証用乱数、認証用ハッシュ値を送信
- これらのデータは前フェーズで生成した SKEYID_e によって暗号化される
- レスポンダが、受諾するパラメタ、認証用乱数、認証用ハッシュ値を送信
- イニシエータとレスポンダは、SKEYID_d, SPI, イニシエータ認証用乱数、レスポンダ認証用乱数などから IPsec SA で使用する秘密対称鍵を生成する
- イニシエータが、認証用のハッシュ値をレスポンダに送信
- 一般的な事前共有鍵(Pre-Shared Key) による認証
- ISAKMP SA の作成にはメインモードかアグレッシブモード
- 通信相手の認証