セキュリティ管理 ‐ 2004 年 12 月 15 日

ネットワーク保護に IPsec を使用 : 第 1 回 (全 2 回)

Steve Riley Senior Program Manager, Security Business and Technology

他のセキュリティ管理のコラムも参照してください。

インターネット プロトコル セキュリティ (IPsec) は、私の知る限りで、最も役に立つセキュリティ技術の 1 つであるといえます。しかし、IPsec は、理解と構成が多少困難であるため、あまりよく理解されておらず、十分に活用されていません。今月の記事ではその技術を紹介し、来月は現在のセキュリティ上の問題を解決するために役立つシナリオを見ていきたいと思います。

トピック

IPsec のオペレーション IPsec モードとメソッド IKE IPSec over NAT 来月の予告

IPsec のオペレーション

2 台のコンピュータ (ピア) で、IPsec を使用して通信する場合、2 種類のセキュリティ アソシエーションを作成します。1 つは、ドメインモデルまたはフェーズ 1 と呼ばれ、ピアは相互に認証を行い、コンピュータ間の信頼を確立します。2 番目は、クイックモデルまたはフェーズ 2 と呼ばれ、ピアはデジタル署名およびピア間での暗号トラフィックの方法などのセキュリティ アソシエーションの詳細をネゴシエートします。パケット署名により、その通信でデータが改ざんされていないかを確認し、パケットの暗号化により、データ傍受の攻撃による影響を受けないようにします。

コンピュータに対して一度に割り当てられる IPsec ポリシーは 1 つです。ポリシーは、規則をいくつでも持つことができ、規則はそれぞれにフィルタ一覧とフィルタ操作を持ちます。フィルタ一覧には、規則が処理する必要があるトラフィックの特徴 (ソース、宛先アドレス、ソースと宛先ポート番号、プロトコル タイプ) を指定する 1 つまたは複数のフィルタが含まれます。フィルタ操作は、トラフィックを許可するか、ブロックするか、または IPsec セキュリティ アソシエーションのペアをネゴシエートするか、などといった規則のビヘイビアを指定します。セキュリティのネゴシエーションを指定するアクションには、暗号スイート、パケットごとの認証方法、新規のキーを生成する頻度、受信するセキュリティで保護されていないリクエストへの応答方法、IPsec をサポートしないコンピュータと通信を行うかどうかなど、多くのオプションがあります。

IPsec ポリシーのそれぞれの規則は、フィルタ一覧とフィルタ操作の組み合わせになります。特定のフィルタと一致するトラフィックは、リンクされたフィルタ操作の設定にしたがって処理されます。また、規則により、セキュリティ アソシエーションのモード (トランスポートまたはトンネルに関しては、後半で説明します。) および認証方法も指定することができます。

  • 事前共有キー : RFC に準拠。IPsec ポリシーのテスト時にのみ使用することをお勧めします。同じセキュリティ ポリシーが適用されるすべてのピアで同じ事前共有キーが必要です。共有された秘密は、秘密として長く続きません!また、事前共有キーはレジストリに保存され、そのコンピュータの管理者特権があるすべてのユーザーに明らかになってしまいます。

  • デジタル証明書 : それぞれのピアが IPsec または他のピアが信頼する機関によって署名されたコンピュータ証明書を所有する限り、ピアは相互に認証を行います。証明書の信頼性を判断するには、証明書の署名者を確認するよう注意してください。証明書の実際の名前は、この場合重要ではありません。デジタル証明書は事前共有キーよりも好まれます。なぜなら、それぞれのピアが独自の証明書を持つことと、証明書の複数レベルにわたる階層構造により、より細かな IPsec ポリシーを作成することができるためです。たとえば、非常に高度なセキュリティで保護されたコンピュータ A は、信頼性の高い認証機関 X によって署名された証明書のみを受付け、適度に高度なセキュリティで保護されたコンピュータ Bは、信頼性の高い認証機関 X または中レベルの信頼性を得ている認証機関 Y のいずれかによって署名された証明書を受けつけます。

  • Kerberos バージョン 5 プロトコル : 両方のピアが同じ Active Directory のフォレストにある場合、Windows Server 2003 オペレーティング システムを実行するコンピュータの IPsec は、最初のコンピュータ間認証に Kerberos プロトコルも使用します。公開キー基盤 (PKI) が使用されていない場合および異なるフォレストに存在するコンピュータ間の IPsec セキュリティ アソシエーションを確立する必要が無い場合には、Kerberos は適切な認証方法です。

ページのトップへ

IPsec モードとメソッド

“IPsec トンネル” などというものはありません。繰り返します。“IPsec トンネル” などというものはありません。そうです、これは非常に一般的なフレーズであり、皆さんがその意味を理解していると思いこんでいますが、実は、これだけでは漠然としていて意味のない言葉なのです。フェーズ 1 のセキュリティ アソシエーションでは次の 2 つのモードが利用可能です。

  • トランスポートモード: もう 1 つのモードに比べ、より一般的で、 “IPsec トンネル” と言った時にみなさんがよく思い浮かべるモードです。トランスポート モードでは、2 つのピアが相互に認証を行い (フェーズ 1)、トラフィック署名、暗号パラメータを確立します (フェーズ 2)。フィルタ一覧に指定された特性が一致したコンピュータ間のトラフィックは、リンクされたフィルタ操作の詳細に従って署名、または暗号化されます。トランスポート モードにより、2 台のコンピュータ間の通信は改ざんから守られプライベートの状態を保ちます。トランスポート モードでは、新たなパケットは作成されず、既存のパケットがセキュリティで保護されます。面白いことに、L2TP+IPsec VPN では、トンネル モードではなくトランスポート モードにより、クライアントと VPN サーバー間の L2TP トラフィックがセキュリティで保護されます。

  • トンネルモード : トンネル モードは、信頼されないネットワーク上のサイト間通信をセキュリティで保護する目的で使用されます。それぞれのサイトには、他のサイトへトラフィックをルートするように構成された IPsec ゲートウェイがあります。1 つのサイトのコンピュータが、その他のサイトのコンピュータとの通信をする必要がある場合、そのトラフィックは、IPsec ゲートウェイを介して渡されます。(また、ローカルのゲートウェイに到達する前に、それぞれのサイトの介在するルータを介する可能性もあります。) ゲートウェイでの送信トラフィックは、別の完全なパケット内で、IPSec 規則のフィルタ操作で指定された詳細に従ってカプセル化され、セキュリティで保護されます。もちろん、ゲートウェイは、フェーズ 1 の認証を完了し、フェーズ 2 の署名または暗号のセキュリティ アソシエーションを確立しています。Windows Server 2003 の IPsec では、トンネル モードがルーティングおよびリモート アクセス サービス (Routing and Remote Access Service) (RRAS) ゲートウェイのサイト間の VPN のみサポートされ、その他の種類のクライアント間またはクライアント - サーバー間の通信はサポートされません。

フィルタ操作では、トラフィックの許可、トラフィックのブロック、またはセキュリティのネゴシエートの 3 つの挙動のうちの 1 つを指定することができます。トラフィックの許可、トラフィックのブロックは、セキュリティの処理を実際には行いません。トラフィックが、”許可” のフィルタ操作にリンクされているフィルタ一覧と一致する場合、そのトラフィックは通過が許可され、トラフィックが ”ブロック” の フィルタ操作にリンクされているフィルタ一覧と一致する場合、そのトラフィックは切断されます。セキュリティをネゴシエートするフィルタ操作は、2 つの異なるフェーズ 2 セキュリティ メソッドのうちの 1 つまたは両方を選択することができます。

  • AH (認証ヘッダー) : AH のセキュリティ アソシエーションは、要件が統合のみで、機密性ではない場合に役に立ちます。AH は、全体のパケットに対して SHA1 または MD5 のデジタル署名 (ソースと宛先アドレスが含まれる IP ヘッダを含む) を処理し、この署名をパケットに追加します。受信者は、その署名の独自のバージョンを処理し、それをヘッダに保存された署名と比較します。それらが一致する場合、パケットは変更されていないことになります。

  • ESP (カプセル化セキュリティペイロード) : 機密性が必要な場合、ESP セキュリティ アソシエーションを使用します。ESP は、ピア間のトラフィックの暗号化のために交換、使用される DES または 3DES (トリプル DES) のセッション キーをネゴシエートします。また、ESP の SHA1 または MD5 のデジタル署名を指定することができます。デジタル署名が全体のパケットをカバーする AH に比較して、ESP 暗号化および署名の処理の両方には、それぞれのパケットのペイロードおよび TCP/UDP ヘッダ ポーションが含まれますが、IP ヘッダは含まれません。

モードとメソッドの間には依存関係はありません。トランスポート モードとトンネル モードのセキュリティ アソシエーションの両方で、AH か ESP、または AH および ESP を一緒に使用などの選択が可能です。

ページのトップへ

IKE

インターネット キー交換 (IKE) プロトコルは、IPsec セキュリティ アソシエーションによる保護スイートのネゴシエート、および署名または暗号化キーの交換を解決するメカニズムです。IKE は、ピアがポリシー情報を通信する方法および認証メッセージの構築、交換の方法を定義します。その他の 3 つのプロトコル (ISAKMP、Oakley、および SKEME) の複合である IKE は、IPsec の要件にとって理想的であるといえます。IKE はかなり複雑で、完璧に理解するには数学および暗号化に関する複数の修士または博士課程修了程度の知識が必要でしょう。また、詳細で非常に多くのリソースを多量に読む必要があります。

ページのトップへ

IPSec over NAT

IPsec の展開を妨げる最も大きな要因のひとつとして、Network Address Translator (NAT) があります。IPsec はコンピュータの認証を行いますが、NAT はコンピュータを隠してしまいます。つまり、この点を考えると IPsec と NAT の目的は一致していないことがあるのです。しかし、ほとんどの IPv4 ネットワークは NAT に大きく依存しているため、IPsec を NAT デバイス上で適切に実行させることが非常に求められます。実際、2 つを同時に動作させることにより、IPsec の使用が急速に加速します。

IPsec を NAT をトラバースさせるのは、考える以上に困難なことです。IPsec および NAT に、以下の 3 つの問題が発生します。

  • AHの統合の違反 : AH は、デジタル署名のパケットを送信元のピアに渡す前に処理します。そのパケットが NAT (ローカルまたはリモート) を通過すると、その IP ヘッダは変更されます。受信するピアは、そのパケットの署名の独自のバージョンを処理する際、NAT によってソースのアドレスが変更されるため、異なる結果を生成します。そのため、受信するピアは、パケットをドロップします。

  • IPsec helper : 小規模オフィスまたはホーム オフィスで使用されるNAT ゲートウェイの多くは、“IPsec helper” (別名 “IPsec passthrough”) と呼ばれる機能が含まれています。この機能はもともとトンネル モード向けに設計されていますが、トランスポート モードでも機能します。ゲートウェイの背後に位置する複数のコンピュータが、ゲートウェイの外部に位置する送信先に IPsec セキュリティ アソシエーションを作成する場合、そのゲートウェイは、そのセキュリティ アソシエーションを作成した最初のコンピュータに、すべての受信の IPsec トラフィックを転送します。ヘルパー機能は単純に、内部のコンピュータが IPsec 通信を開始したコンピュータを記憶し、受信トラフィックのすべてを変更しないで転送します。

  • IKE の断片化 : デジタル証明書のペイロードが IP フレームのサイズを超えることは一般的にあることです。アプリケーションが IP フレームより大きなデータ パケットを生成する際は常に、IP は、それぞれの断片が 1 つのフレームに適合するように、パケットを断片化します。これは、ローカル ネットワークの内部では問題ないですが、綿密な細工がされた不正なフラグメントが、ファイアウォールを回避するのによく悪用される方法であるため、ネットワーク境界デバイスは (多くの NAT を含む) フラグメントパケットをドロップします。フラグメントパケットをドロップする NAT により、IKE が適切に動作しなくなります。

しかし、UDP の内部で ESP (AH ではない) をカプセル化するメカニズムを定義することによって、NAT への IPsec トラフィックの転送を拒否されないようにすることが可能であるとわかります。それぞれが、互いにディスカバリ パケットのいくつかを送信し、ローカルの NAT が存在するか、また両方が NAT トラバーサル (NAT-T) を実行することができるかどうかを確認します。両方、または片方が NAT の背後にあり、両方が NAT-T を実行することができる場合、IPsec は、最初に IKE 交換を UDP ポート 4500 にシフトし (IPsec Helper の競合を回避するため) 次に同じ UDP 通信内の IPsec セキュリティ アソシエーションの全体をカプセル化します。NAT では、トラフィックは通常の UDP トラフィックと同様に認識されるため、NAT はそのトラフィックを問題なく処理することができます。また、それぞれが受信したトラフィックの IP ヘッダを適切に再構築することができるように、NAT の詳細をもう一方と交換します。NAT はヘッダを変更するため、受信者はトラフィックの暗号化解除および署名のチェックをする前に、元のヘッダを再生する必要があります。NAT-T のセットアップ プロセスにより、それぞれに、これを行うために必要な情報が提供されます。

UDP-ESP (この仕様) は、単一の NAT デバイスの背後で作成される複数の IPsec セキュリティ アソシエーションの処理方法を認識します。複数のコンピュータが同じプロトコルを使用して外部への接続を行う場合、NAT デバイスはそれぞれのコンピュータに一意のソース ポート番号を使用します。これが、NAT が受信のリターン トラフィックを転送する場所を認識する方法となります。それぞれのクライアントでは、NAT-T はソース ポートとセキュリティ アソシエーションのペアのテーブルを管理し、トラフィックの流れに従って、うまく調和させます。

このコラムの執筆時点では、NAT-T はまだインターネット ドラフトの状態です。ドラフト作成者は、機能と相互運用性を向上させるためのマイナー チェンジを継続的に行っています。AH 統合の違反の問題を効果的に回避する方法が無いため、NAT-T は AH に対して定義されていません。IETF は、3 番目の問題 (IKE 断片化の問題) の先送りを決定しました。1 つのピアが断片をブロックする場合、そのピアの管理者は、NAT のプログラミングを変更する必要があります。またはそのピアは単純に NAT-T に参加することができません。マイクロソフトの NAT-T の実装には、両方のピアでサポートされている場合に行われる断片化前の回避策が含まれています。IKE は、データを IP レイヤに送信する前によりサイズの小さいキーに断片化します。その後、それぞれの部分が完全な IP パケットに配置され送信されます。受信先は断片化されたキーの受信に対応して、その一部を再構築し完全なキーを作成します。また、NAT のディスカバリ フェーズで、IKE の断片化のサポートがされているかどうかチェックされ、両方のデバイスが使用可能である場合にのみ断片化が使用されます。

ページのトップへ

来月の予告

IPsec に関しては、今回説明したよりもさらに多くの情報があります。しかし、今のところは所属している組織で役立てるのに必要な情報を知るだけで十分でしょう。来月は、IPsec (ワームの阻止、サーバーの保護、ドメインの分離) にあわせたすばらしい 3 つのシナリオに関してお話していきます。


この記事は、マイクロソフト セキュリティ ニュースレターで配信しました。

ページのトップへ