- 追加された行はこの色です。
- 削除された行はこの色です。
- IKE へ行く。
[[ネットワーク用語]] > IKE
* IKE [#g23236a8]
IKE = Internet Key Exchange インターネット鍵交換
[[IKEv1 - Wikipedia>http://ja.wikipedia.org/wiki/IPsec#IKEv1]]
>[[IKE]]v1は Internet Key Exchange protocol version 1 の意味であり、UDPポート番号500上で通信される&color(red){鍵交換プロトコル};である。
開発時には ISAKMP/Oakley と呼ばれた過去があり、これはISAKMP(Internet Security Association and Key Management Protocol)プロトコルの上でOakley鍵交換手順を実装したものという意味である。
すなわち、IKEv1はISAKMPと必ずしも同じものではない。
----
[[@IT:管理者のためのインターネットVPNの接続環境とその機>http://www.atmarkit.co.jp/fsecurity/special/41vpn/vpn01.html]]
** IPSec標準における接続先相手認証 [#d76fdc58]
[[IPsec]]では、実際にデータの暗号化通信の開始に先立ち、IKE(Internet Key Exchange)[[プロトコル]](暗号化方式の決定や鍵の交換や相互認証に使われるプロトコル)を使用した通信の中で接続先相手の認証を行う。
*** ●IKEプロトコルの目的 [#z3439b2c]
|BGCOLOR(orange):(1)VPN接続のエンドポイント間でプロポーサルを交換する。|
|BGCOLOR(yellow):自身のVPNゲートウェイが提供可能なパラメータ(暗号化アルゴリズムやハッシュアルゴリズムなど)を提案し、互いに接続先相手が使用可能なパラメータを認識、共有する。|
|BGCOLOR(orange):(2)鍵交換|
|BGCOLOR(yellow):エンドポイント間で以降のIKEプロトコルを使用した通信の暗号化に使用する鍵を交換し、共有する。|
|BGCOLOR(orange):(3)接続先相手認証|
|BGCOLOR(yellow):エンドポイント間でIDを交換することで接続先相手を認証する。|
上記の目的を実現するために、IKEプロトコルは2つの実行モードを用意している。
[[メイン・モード>メインモード]](Main Mode:フェーズ1メイン・モードなどと記述される)と[[アグレッシブ・モード>アグレッシブモード]](Aggressive Mode:フェーズ1アグレッシブ・モードなどと記述される)である。
CENTER:&ref(vpn2_1.gif);
>図2 メイン・モード
CENTER:&ref(vpn2_2.gif);
>図3 アグレッシブ・モード
*** ●接続先認証に使用するIDの暗号化 [#m4f3efb1]
上図に示したように2つのモードの大きな違いは、&color(red){接続先認証に使用されるID情報に対するセキュリティ};である。
&color(red){メイン・モードではIDが暗号化};されて送信されるのに対して、&color(red){アグレッシブ・モードでは平文のまま};送信される。
IDの暗号化を実現するために、メイン・モードではエンドポイント間でID交換をする前に接続先相手の[[事前秘密鍵>PSK]](Pre-Shared Secret Key)を知る必要がある。
しかし、図2にあるように、鍵交換フェーズではVPN[[ゲートウェイ]]は接続先相手のIDを知らないため、この時点では接続先相手の事前秘密鍵を特定することができない。
そのために、IKEプロトコルの実装では、IKEの通信中に送受信される&color(red){IPパケットの送信元アドレスをID};として事前秘密鍵の特定に使用している。
この場合、メイン・モードでは、鍵交換の段階で接続先相手のエンドポイントのIPアドレスを持つオブジェクト(VPN製品に定義される要素)がVPNゲートウェイ上で定義されている必要がある(事前に接続先相手のIPアドレスが定義される。つまり、&color(red){接続先相手のIPアドレスが固定};されている必要がある)。
一方、図3にあるように、アグレッシブ・モードでは鍵交換情報と同じ&color(red){メッセージの中で接続先相手のID};が送受信される。そのため、IDは暗号化されずに送受信される。
ここで、2つのモードを実際のVPN接続環境に対応させてみる。
一般に、サイト間接続型VPNでは、互いのVPNゲートウェイのIPアドレスが固定されるため、メイン・モードを利用することが可能である(アグレッシブ・モードでも可能であるが、通常はIDが暗号化されるメイン・モードを利用する場合が多い)。
リモートアクセス型VPNでは、ダイヤルアップ接続などを使用してアクセスポイントに接続した後、VPNコネクションを確立する。VPNクライアントに割り当てられるIPアドレスは、アクセスポイントに接続するたびに変化するため、VPNゲートウェイ側ではVPNクライアントのIPアドレスを特定することができない。
そのため、リモートアクセス型VPNでは、メイン・モードは利用できず、アグレッシブ・モードを利用することになる。
*** ●接続先認証に使用するID [#b70a2fba]
リモートアクセス型VPNの接続先相手の[[認証]]に使用するIDは、サイト間接続型VPNと異なる要件を持つ。
サイト間接続型VPNでは、IDとしてVPNゲートウェイのIPアドレスを使用する。
&color(red){リモートアクセス型VPNでは、認証に使用するIDとして利用者個人を認証できる情報を使用する};必要がある。
つまり、利用者が使用するクライアントのIPアドレスをIDとしても、実際に認証対象となるのはあくまでもクライアントである。
認証の対象にする必要があるのは、そのクライアントを利用している利用者である。
そのため実際には、IDとして、&color(red){利用者のユーザー名やメールアドレス};を使用する。
*** ●リモートアクセス型VPNとIPSec標準 [#e98aef66]
前述したように、リモートアクセス型VPNでは利用者固有のIDを使用して接続先認証を実現する必要があるが、現在のIPSec標準(RFC)では、接続先相手の認証に利用者固有のIDを使用するフレームワークが含まれていない。
そのため、&color(red){IPSec標準のみを実装してもリモートアクセス型VPNが要求する技術要件には対応できない};のである。
そのため、リモートアクセス型VPNの場合にも、サイト間接続と同じように各クライアントのIPアドレスを固定にしたり、すべての利用者間で事前秘密鍵を同一にするなどして構築しなければならないVPN製品も見受けられる。
しかし、クライアントのIPアドレスの固定化や、事前秘密鍵の共有などは、実際のリモートアクセス環境が求める管理面とセキュリティ面の要件との隔たりが大きく現実的でない。
これを解決するために、IETF(The Internet Engineering Task Force)では、IKEプロトコルを拡張することにより、ユーザー固有のIDによる相手認証のフレームワークをインターネットドラフトとして提案している。
提案の1つに[[XAUTH]](Extended Authentication within ISAKMP/Oakley)がある。
&color(red){XAUTHは、IKEプロトコルを拡張することで、従来組織内で利用してきた[[ワンタイムパスワード]]や[[RADIUS]]などを使用した認証サービスを利用できる};ようにするものである。
実際に、XAUTHは多くのVPN製品で実装されているが、いまだにIPSec標準に組み込まれる予定はない。
なぜならば、IPSec標準を策定しているグループの基本ポリシーとして、IKEプロトコルを拡張すること自体を認めていないためである。
** リンク [#d5f8e330]
[[メインモード]]
[[アグレッシブモード]]
[[Diffie-Hellman]]
[[IPsec]]
[[VPN]]
[[ネゴシエーション]]
[[XAUTH]]
[[ワンタイムパスワード]]
[[RADIUS]]
IPsec - IKE:ISAKMPメッセージ
http://www.infraexpert.com/study/ipsec8.html
IPsec - IKE:IKEフェーズ1とIKEフェーズ2
http://www.infraexpert.com/study/ipsec9.html
技術解説:IT管理者のためのIPSec講座
http://www.atmarkit.co.jp/fpc/kaisetsu/ipsec/ipsec02.html
>鍵交換に使われるプロトコル「IKE」
#norelated