セキュリティで保護されたデータを交換するには、あらかじめ 2 つのコンピューター間で契約が結ばれなければなりません。この契約はセキュリティ アソシエーション (SA) と呼ばれ、両方のコンピューターが情報の交換方法と保護方法に合意します。

キーは、セキュリティで保護されたデータの読み取り、変更、または検証に必要な秘密のコードまたは数値です。キーは、データをセキュリティ保護する目的で、アルゴリズム (数学的な処理) と共に使用されます。IPsec では、キーを使用するフェーズ (モード) が 2 つあります。メイン モードは最初のモードで、共有マスター キーを生成します。この共有マスター キーを使用して、2 台のコンピューターがセキュリティで保護された方法でキー生成情報を交換します。クイック モードはこの共有マスター キーを使用して、データの整合性の確保または暗号化に使用されるセッション キーの確立をセキュリティで保護します。

Windows は、キー生成を自動的に処理し、最大限の保護を提供する次のキー生成プロパティを実装します。

重要

[IP セキュリティ ポリシー] スナップインを使って、Windows Vista 以降のバージョンの Windows を実行するコンピューターに適用できる IPsec ポリシーを作成することはできますが、このスナップインを使った場合、これらの新しいバージョンの Windows で利用できる新しいセキュリティ アルゴリズムや他の新機能は使用されません。これらの新しいバージョンの Windows を実行するコンピューター用に IPsec ポリシーを作成するには、[セキュリティが強化された Windows ファイアウォール] スナップインを使用してください。[セキュリティが強化された Windows ファイアウォール] スナップインで作成したポリシーは、以前のバージョンの Windows には適用できません。

動的なキー更新

IPsec は、動的なキー更新という方法を使って、通信中に新しいキーを生成する頻度を制御します。通信はブロック単位で送信され、各データ ブロックは異なるキーによって保護されます。そのため、攻撃者は、通信の一部とそれに対応するセッション キーを入手しても、通信のそれ以外の部分は取得できません。このオンデマンド セキュリティ ネゴシエーションと自動的なキー管理サービスは、RFC 2409 で規定されているように、インターネット キー交換 (IKE) を使って提供されます。

IPsec を使うと、新しいキーを生成する頻度を制御できます。値が設定されていない場合は、既定の間隔でキーが自動的に再生成されます。

キーの長さ

キーの長さが 1 ビット増えるたびに、考えられるキーの数は倍になるので、キーを見破るのは指数関数的に難しくなります。IPsec には複数のアルゴリズムが用意されているため、さまざまな長さのキーに対応できます。

キー生成情報の生成: Diffie-Hellman アルゴリズム

セキュリティで保護された通信を有効にするには、ネットワーク経由でキーを送信して秘密を危険にさらすことなく、2 台のコンピューターが同一の共有キー (クイック モード、つまりセッション キー) を取得できなければなりません。

Diffie-Hellman (DH) アルゴリズムは、キー交換の分野では最も早い時期に提唱され、最も高いセキュリティを実現するアルゴリズムです。通信にかかわる両者は公開された方法でキー生成情報を交換します。そして、Windows はハッシュ関数による署名を使ってその情報をさらに保護します。どちらも実際のキーを交換することはありませんが、キー生成情報を交換すると、どちらも同一の共有キーを生成できるようになります。

両者が交換する DH キー生成情報は、DH グループと呼ばれる 768 ビット、1,024 ビット、または 2,048 ビットのキー生成情報に基づいたものにすることができます。DH グループの強度は、DH 交換から計算されたキーの強度に比例します。強力な DH グループを長いキーと組み合わせると、キーの解析における計算難度が高まります。

[IKE セキュリティ アルゴリズム] ダイアログ ボックスでは、768 ビットは [低 (1)] 設定に対応し、1,024 ビットは [中 (2)] 設定に対応しています。

IPsec は DH アルゴリズムを使用して、他の暗号化キーすべてのキー生成情報を提供します。DH は認証を提供しません。Microsoft Windows の IPsec 実装では、DH 交換の実行後に ID を認証することで、man-in-the-middle 攻撃から保護されます。

キーの保護

次の機能は、マスター キーおよびセッション キーに関して基本素数 (キー生成情報) とキーの強度を拡張します。

キーの有効期間

キーの有効期間では、新しいキーの生成方法ではなく、生成される頻度を決定します。動的なキー更新またはキー再生成とも呼ばれるキーの有効期間を使うと、指定した間隔でキーを強制的に再生成できます。たとえば、通信に 10,000 秒かかり、キーの有効期限に 1,000 秒を指定した場合、その通信を完了するために 10 個のキーが生成されます。これにより、攻撃者が通信の一部を解読しても、その通信の残りの部分は保護されます。キーの有効期間は、マスター キーとセッション キーの両方に対して指定できます。キーの有効期間が切れるたびに、SA も再度ネゴシエートされます。さらに、キーも更新されるか、または再度ネゴシエートされます。1 つのキーで処理されるデータ量は、100 MB を超えないようにしてください。

セッション キーの更新制限

1 つのクイック モードのセッション キーからのキー更新を繰り返すと Diffie-Hellman 共有シークレットが侵害される可能性があるため、クイック モードのセッション キーの更新制限を使用します。

たとえば、コンピューター A のアリスがコンピューター B のボブにメッセージを送信し、その数分後に別のメッセージをボブに送信したとします。SA は最近確立されたため、同じセッション キー生成情報が再利用される可能性があります。この再利用が行われる回数を制限する場合は、セッション キーの更新制限を小さい値に設定します。

マスター キーの PFS (Perfect Forward Secrecy) を有効にしている場合、クイック モードのセッション キーの更新制限は使われません。セッション キー更新制限を 1 に設定すると、マスター キーの PFS を有効にした場合と同じことになります。メイン モードのマスター キーの有効期間とクイック モードのセッション キーの更新制限を両方指定すると、先に制限に達したものによってその後のキー更新が行われます。既定では、IPsec ポリシーにセッション キー更新制限は指定されていません。

Diffie-Hellman グループ

Diffie-Hellman (DH) グループは、DH 交換に使われる基本素数 (キー生成情報) の長さを決定するために使います。DH 交換から派生したキーの強度は、素数の基になっている DH グループの強度に部分的に依存しています。

各 DH グループは、使われるキー生成情報の長さを定義します。Group 1 では 768 ビット、Group 2 では 1,024 ビット、Group 3 では 2,048 ビットのキー生成情報が保護されます。大きなグループが使われた場合、DH 交換から決定されて得られたキーも大きくなり、攻撃者による解読が困難になります。

IKE は、[IKE セキュリティ アルゴリズム] ダイアログ ボックスで構成した設定に基づいて使用するグループをネゴシエートするので、2 つのピア間で DH グループが一致しないことが原因でネゴシエーションに失敗することがありません。

セッション キーの PFS が有効になっている場合、最初のクイック モード SA ネゴシエーションで新しい DH キーがネゴシエートされます。この新しい DH キーによって、マスター キーに対して実行される DH 交換にセッション キーが依存しなくなります。

発信側がセッション キーの PFS を使っている場合、応答側はセッション キーの PFS を使う必要がありません。ただし、発信側がセッション キーの PFS を使っておらず、応答側がセッション キーの PFS を使っている場合、ネゴシエーションに失敗します。

メイン モード SA ネゴシエーションとクイック モード SA ネゴシエーションの両方とも、DH グループは同じです。セッション キーの PFS が有効になっている場合、DH グループは、メイン モード SA ネゴシエーションの一部として設定されていても、クイック モードのセッション キーを確立するためのキー更新に影響を与えます。

PFS (Perfect Forward Secrecy)

キー更新とは異なり、PFS は新しいキーが生成される頻度ではなく生成される方法を決定します。特に、PFS は単一のキーによるアクセスをそのキーで保護されたデータだけに限定するため、通信全体が危害を受けることがありません。これを実現するために、PFS では、転送の保護に使われるキーは、どちらのモードでも追加キーの生成に使用できません。また、使われたキーが特定のキー生成情報から派生した場合、その情報は他のキーの生成に使用できません。

メイン モードのマスター キーの PFS では再認証が必要で、リソースも大量に消費されます。これが有効になっている場合、IKE は ID を再認証しなければならず、認証に Kerberos V5 認証プロトコルを使用している場合はドメイン コントローラーのオーバーヘッドが増加します。クイック モード ネゴシエーションが行われるたびに、新しいメイン モード ネゴシエーションが必要になります。

クイック モードのセッション キーの PFS は再認証せずに使うことができ、リソースの消費も多くありません。セッション キーの PFS では、DH 交換で新しいキー生成情報が生成されます。必要なメッセージは 4 つだけで、認証は必要ありません。

PFS は SA ネゴシエーションに含まれないため、PFS を両方のピアで有効にする必要はありません。応答側が PFS を必要とし、送信側のクイック モード SA の有効期間が切れた場合は、単に送信側のメッセージが拒否され、新しいネゴシエーションが必要になるだけです。送信側はメイン モード SA を有効期間切れにしてから、再度ネゴシエートします。PFS は、マスター キー (メイン モード) とセッション キー (クイック モード) の両方に対して個別に設定できます。

キー交換

セキュリティで保護されたデータを交換するには、あらかじめ 2 つのコンピューター間で契約が結ばれなければなりません。この契約 (SA) では、両方のコンピューターが情報の交換方法と保護方法に合意します。

2 台のコンピューター間でこの契約を成立させるために、インターネット技術標準化委員会 (IETF) によって、セキュリティ アソシエーションとキー交換の解決に関する IKE 方式が規定されています。IKE は次のことを行います。

  • セキュリティ アソシエーションを集中管理して、接続時間を短縮します。

  • 情報をセキュリティで保護するために使う、共有された共通キーを生成および管理します。

この処理では、コンピューター間の通信が保護されるだけでなく、会社のネットワークへのセキュリティで保護されたアクセスを要求するリモート コンピューターも保護されます。また、最終的な宛先コンピューターに対するネゴシエーションがセキュリティ ゲートウェイによって実行されるたびに、この処理が行われます。

定義されたセキュリティ アソシエーション

SA は、ネゴシエートされたキー、セキュリティ プロトコル、およびセキュリティ パラメーター インデックス (SPI) の組み合わせです。これらのものによって、送信側から受信側への通信の保護に使われるセキュリティを定義します。SPI は、受信側のコンピューターに存在する複数のセキュリティ アソシエーションを区別するために使われる、SA 内の一意の識別値です。たとえば、あるコンピューターが同時に複数のコンピューターとセキュリティで保護された通信を行っている場合、複数のアソシエーションが存在します。この状況が発生するのは、そのコンピューターが複数のクライアントと通信するファイル サーバーまたはリモート アクセス サーバーである場合がほとんどです。このような状況では、受信側のコンピューターは SPI を使って、受信パケットの処理に使う SA を判定します。

メイン モード SA

セキュリティで保護された正常な通信を保証するため、IKE は 2 フェーズの操作を実行します。セキュリティ ネゴシエーション中に 2 台のコンピューター間で合意された暗号化アルゴリズムと認証アルゴリズムを使うことで、各フェーズでの機密性と認証が保証されます。作業を 2 つのフェーズに分離することで、キーの作成が高速に行われます。

最初のフェーズでは、2 台のコンピューターが、セキュリティで保護され認証済みチャネルを確立します。これをメイン モード SA と呼びます。この交換中に、IKE は必要な ID 保護を自動的に提供します。

メイン モード ネゴシエーションの手順の説明を次に示します。

  1. ポリシーのネゴシエーション次の 4 つの必須パラメーターは、メイン モード SA の一部としてネゴシエートされます。

    • 暗号化アルゴリズム (DES または 3DES)。

    • ハッシュ アルゴリズム (MD5 または SHA1)。

    • 認証方法 (Kerberos V5 認証プロトコル、証明書、または事前共有キー認証)。

    • 基本的なキー生成情報 (低の 768 ビット (Group 1)、中の 1,024 ビット (Group 2)、または高の 2,048 ビット (Group 3)) として使われる Diffie-Hellman (DH) グループ。

    • 証明書または事前共有キーを認証に使うと、コンピューターの ID が保護されます。ただし、Kerberos V5 認証プロトコルを使う場合、認証中に ID ペイロード全体が暗号化されるまで、コンピューター ID は暗号化されません。

  2. DH 交換 (公開値)。実際のキーが交換されることはありません。共有された共通キーを生成するために、DH キー決定アルゴリズムで必要な情報だけが交換されます。この交換が終わると、各コンピューターの IKE サービスは認証の保護に使われるマスター キーを生成します。

  3. 認証。コンピューターは、DH キーの交換を認証しようとします。DH キー交換を認証しない場合、通信は中間一致攻撃に対して無防備な状態になります。認証が成功しないと、通信を続行することはできません。マスター キーは、ID を認証するために、ネゴシエーション アルゴリズムおよびネゴシエーション方法と関連して使用されます。2 番目の手順の DH 交換から生成されたキーを使って、ID ペイロード全体 (ID の種類、ポート、およびプロトコルを含む) がハッシュされ、暗号化されます。使われた認証方法には関係なく、ID ペイロードは変更と読み取りから保護されます。

    送信側は、受信側に対して、可能なセキュリティ アソシエーションのオファーを提示します。応答側のピアは、そのオファーを変更できません。オファーが変更されると、開始側のピアは応答側のピアのメッセージを拒否します。応答側のピアは、オファーの受諾応答を送信するか、または別の応答を送信します。

    このフェーズで送信されるメッセージは自動再試行サイクルを持ち、5 回繰り返されます。再試行サイクルが終わる前に応答を受信すると、標準の SA ネゴシエーションが開始されます。IPsec ポリシーで許可されている場合は、少し間を置いて、セキュリティで保護されていない通信が開始されます。この動作は、フォールバック ツー クリアといいます。通信がセキュリティで保護されない状態に戻っても、セキュリティで保護された通信のネゴシエーションが、5 分間隔で試行されます。

    交換を行う回数に制限はありません。確立される SA の数は、システム リソースによってのみ制限されます。

クイック モード SA

このフェーズでは、IP セキュリティ ドライバーに代わって SA がネゴシエートされます。

クイック モード ネゴシエーションの手順の説明を次に示します。

  1. ポリシー ネゴシエーションが行われます。IPsec コンピューターは、データ転送をセキュリティで保護するために次の条件を交換します。

    • IPsec プロトコル (AH または ESP)

    • 整合性および認証用のハッシュ アルゴリズム (MD5 または SHA1)

    • 要求があった場合は、暗号化用のアルゴリズム (DES または 3DES)

    共通の合意に達すると、2 つの SA が確立されます。1 つは着信通信用の SA で、もう 1 つは発信通信用の SA です。

  2. セッション キーの生成に使用した情報が更新または交換されます。IKE がキー生成情報を更新し、パケットの整合性、認証、および暗号化 (ネゴシエートされた場合) 用に新しい共有キーが生成されます。キー更新が必要な場合、2 回目の DH 交換が (メイン モード ネゴシエーションで説明したとおり) 行われるか、または元の DH キーの更新が使われます。

  3. SA およびキーが SPI と共に IP セキュリティ ドライバーに渡されます。セキュリティ設定およびキー生成情報のクイック モード ネゴシエーション (データのセキュリティ保護が目的) は、メイン モード SA によって保護されます。最初のフェーズで ID 保護が提供されるため、2 番目のクイック モード フェーズではデータ送信前にキー生成情報を更新することで、保護が提供されます。IKE は、キー更新が必要になった場合に、追加の DH 交換用のキー交換ペイロードに対応できます。つまり、マスター キーの PFS が有効になっています。それ以外の場合、IKE はメイン モードで完了した DH 交換を元に、キー生成情報を更新します。

    クイック モードではセキュリティ アソシエーションのペアが作成され、それぞれが固有の SPI とキーを持ちます。1 つの SA は着信通信に使われ、もう 1 つは発信通信に使われます。

    メッセージ用の再試行アルゴリズムは、メイン モード ネゴシエーションで説明した処理に似ています。ただし、同じメイン モード SA の 2 番目以降のネゴシエーション中に、何らかの理由でこの処理がタイムアウトすると、メイン モード SA の再ネゴシエーションが試行されます。メイン モード SA が確立されていない状態で、このフェーズのメッセージが受信されると、そのメッセージは拒否されます。

    複数のクイック モード SA ネゴシエーションに対して単一のメイン モード SA を使用すると、処理速度が向上します。そのメイン モード SA の有効期間が切れない限り、再ネゴシエーションおよび再認証は必要ありません。実行可能なクイック モード SA ネゴシエーションの数は、IPsec ポリシーの設定で決まります。

    同じメイン モード SA から繰り返しキー更新を行うと、共有された共通キーが既知プレーンテキスト攻撃 (known plaintext attack) に対して無防備になります。既知プレーンテキスト攻撃とはスニッファ攻撃の 1 つで、攻撃者は既知のプレーンテキスト形式に基づいて、暗号化されたデータから暗号化キーを割り出そうとします。

SA の有効期間

メイン モード SA はキャッシュされるため、複数のクイック モード SA ネゴシエーションが可能です (マスター キー PFS が有効になっている場合を除く)。マスター キーまたはセッション キーの有効期間が切れると、SA が再度ネゴシエートされます。さらに、キーも更新されるか、または再度ネゴシエートされます。

メイン モード SA の既定のタイムアウト期間が経過するか、あるいはマスター キーまたはセッション キーの有効期間が切れると、応答側に削除メッセージが送信されます。IKE 削除メッセージは、メイン モード SA を有効期間切れにするように応答側に通知します。これにより、有効期間が切れたメイン モード SA から、新しいクイック モード SA をさらに作成することが防止されます。IKE はクイック モード SA を有効期間切れにしません。キーを有効期間切れにする秒数またはバイト数を含んでいるのは、IPsec ドライバーだけだからです。

マスター キーとセッション キーで、大幅に異なる有効期間を設定する場合は注意が必要です。たとえば、メイン モードのマスター キーの有効期間を 8 時間、クイック モードのセッション キーの有効期間を 2 時間に設定すると、メイン モード SA の有効期間が切れた後も、クイック モード SA がほぼ 2 時間にわたって使われる場合があります。このようになるのは、メイン モード SA の有効期間が切れる直前にクイック モード SA が生成された場合です。