ここにある文章は「コンピュータ&ネットワークLAN 1998/9月号」に掲載された記事です。 オーム社編集部の許可を得て公開しています。 WEBで公開するため若干手を加えているので、表現や言葉使いに相違があります。
1999/03/12 図3. の崩れを修正。
8 月に入って IPsec に関するドラフトの動きがありました。 基本となる仕様を記述したドラフトのステータスを Proposed Standard に すると言う勧告が IESG (※1)から出されたのです。 これにより IPsec をフルサポートしたルータやファイアウォールの製品化(※2)が 一層加速し、より身近で使用される機会が増えることでしょう。 さて、今回は前回説明できなかった鍵管理と IPsec の今後の動向を紹介します。
手動鍵管理とは、フロッピディスクやマスターカードなどの ネットワークを使った通信以外の手段を用いてパラメータを相手に伝えます。 鍵管理の責任はパラメータをシステムに設定して管理する部分だけなので、 実装も非常に単純で自動鍵管理に比べて簡単に実現できます。 ただし以下のような場合、その使用に限界があります。
図1は UNIX を想定した IKE の位置付けです。 他のOSやルータでも基本的には変わりありません。
+------------+ +--------+ +--------------+
! DOI ! ! ! ! Application !
! Definition ! <----> ! ISAKMP ! ! Process !
+------------+ --> ! ! !--------------!
+--------------+ ! +--------+ ! Appl Protocol!
! Key Exchange ! ! ^ ^ +--------------+
! Definition !<-- ! ! ^
+--------------+ ! ! !
! ! !
!----------------! ! !
v ! !
+-------+ v v
! API ! +---------------------------------------------+
+-------+ ! Socket Layer !
! !---------------------------------------------!
v ! Transport Protocol (TCP / UDP) !
+----------+ !---------------------------------------------!
! Security ! <----> ! IP !
! Protocol ! !---------------------------------------------!
+----------+ ! Link Layer Protocol !
+---------------------------------------------+
図1. IKE の位置付け
アプリケーションがカーネルに送信要求をし、
それを受けてカーネルは SA が確立されているか調べます。
対応した SA が存在しない場合、カーネルは IKE にパラメータ交換を依頼します。
IKE は IKE-SA を用いて安全にパラメータを交換し、それをカーネルに設定します。
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Initiator !
! Cookie !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Responder !
! Cookie !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Next Payload ! MjVer ! MnVer ! Exchange Type ! Flags !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Message ID !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図2. IKEヘッダ
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Next Payload ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Data !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
図3. IKEペイロード
IKE パケットは、IKE ヘッダ(図2)とIKE ペイロード(図3)から構成され、
IKE ペイロードは、ヘッダ部とデータ部に分けられます。
IKE ヘッダの始動者用クッキーと応答者用クッキーは、
通信している当事者同士のセッションを識別する重要なフィールドです。
IKE ヘッダと IKE ペイロードのヘッダ部には、次ペイロード・フィールドが存在し、
各ペイロードを数珠つなぎにできます。
次ペイロード・フィールドに 0 が指定されていれば、そのペイロードが
最後であることを意味します。
重要なペイロードに、SA のパラメータを含む SA ペイロード、 鍵交換のための情報を含む鍵交換(Key Exchange)ペイロード、 乱数情報(Nonce)ペイロード、自己情報(Identification)ペイロード、 認証情報(Hash)ペイロードがあります。
IKE はフェーズ 1 とフェーズ 2 に分けられます。 フェーズ 1 では通信を安全にするために IKE-SA を確立し、 フェーズ 2 では確立された IKE-SA の下で ESP や AH のための SA のパラメータを 交換します。 それぞれのフェーズの細かい説明は技術的に複雑なるので、 ここでは簡単に紹介することにします。(※14)
+---------------+
|Key Mgmt Daemon|
+---------------+
| |
| |
| | Applications
======[PF_KEY]====[PF_INET]==========================
| | OS Kernel
+------------+ +-----------------+
| Key Engine | | TCP/IP, |
| or SADB |---| including IPsec |
+------------+ | |
+-----------------+
|
+-----------+
| Network |
| Interface |
+-----------+
図4. PFKEYv2 の位置づけ
プロセスが通信をはじめる時、必要なセキュリティを定義したり、
自身の認証情報を定義したいと思うかもしれません。
この方法の一つとして Network Security API for Sockets (※16)があります。
しかし、この仕様については議論が十分でなく、
実装も少ないので、あくまでも候補という位置づけです。
図5. Proposed Standard になるドラフト一覧図6 のドラフトは Informational (※17)になります。
図6. Informational になるドラフト一覧これらは謝辞などが書き加えられ RFC として世に送り出されます。
古いですが S/WAN (※18)はオンラインでテスト可能なサイトのひとつです。 最近(※19)では Microsoft 社が主催したテストがシアトルで予定され 14 実装が 参加することになっています。 また 10 月後半には IBM が主催してニューヨークで行われます。 日本では NTT社やKAME プロジェクト(※20)等が主催して行われました。 IKEのテストに特化したサイトとしては、 National Institute of Standards and Technology (※21)や SSH IPSEC interoperability test node (※22)があります。
さらに次世代インターネットプロトコル (以降 IPv6 と略す) では IPsec は実装必須になっています。しかし IPv6 は開発途中のプロトコルです。 IPv6 上で IPsec を使用した場合の問題点は、IPv4 のそれよりも、 さらに明らかになっていません。 つまり目に見えない問題が残っている可能性があるのです。
8 月の後半に開催された第42回IETFの IPsec セッションでは、 IPsecond として今後 1 年の間で、モバイル環境における自動鍵管理の問題点や 様々な組織のポリシーを IPsec にどう翻訳するか等を議論することになりました。 ホテルのロビーを陣取って行われた IPsecond BOF では、 IKE フェーズ 1 の他のモードの必要性や 接続してきた相手の認証方式について議論されました。
こうしてみると問題だらけと思われるかも知れませんが、 しかし一方では便利になるのも事実です。 IPsec をサポートしたファイアウォールがあると、 相互接続性があるので予算にあわせた製品の組合せが可能となり、 部門間ファイアウォールやファイアクロス(Fire Cloth)として 幅広く利用できます。