保証された暗号化
保証された暗号化 IPsec ポリシー シナリオでは、一致するすべてのトラフィックに IPsec 暗号化が必要です。 このポリシーは、トランスポート モード ポリシー オプションの 1 つと組み合わせて指定する必要があります。
保証された暗号化は、通常、アプリケーションごとに機密性の高いトラフィックを暗号化するために使用されます。
"ICMP を除くすべてのユニキャスト データ トラフィックをセキュリティで保護し、IPsec トランスポート モードを使用してネゴシエーション検出を有効にし、TCP ローカル ポート 5555 に対応するすべてのユニキャスト トラフィックに対して暗号化を保証する必要がある" という保証された暗号化シナリオの例を示します。
この例をプログラムで実装するには、次の WFP 構成を使用します。
次の MM ポリシー プロバイダー コンテキストのいずれかまたは両方を追加します。
- IKE の場合、種類がFWPM_IPSEC_IKE_MM_CONTEXTのポリシー プロバイダー コンテキスト。
- AuthIP の場合、種類がFWPM_IPSEC_AUTHIP_MM_CONTEXTのポリシー プロバイダー コンテキスト。
Note
共通キーモジュールがネゴシエートされ、対応する MM ポリシーが適用されます。 IKE と AuthIP の両方がサポートされている場合は、AuthIP が優先されるキーモジュールです。
手順 1 で追加したコンテキストごとに、次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件 空白。 すべてのトラフィックがフィルターと一致します。 providerContextKey 手順 1 で追加された MM プロバイダー コンテキストの GUID。 次の QM トランスポート・モード・ポリシー・プロバイダー・コンテキストの一方または両方を追加し、 IPSEC_POLICY_FLAG_ND_SECURE フラグを設定します。
- IKE の場合、種類が FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXTのポリシー プロバイダー コンテキスト。
- AuthIP の場合、種類が FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXTのポリシー プロバイダー コンテキスト。 このコンテキストには、必要に応じて、AuthIP 拡張モード (EM) ネゴシエーション ポリシーを含めることができます。
Note
共通キー作成モジュールがネゴシエートされ、対応する QM ポリシーが適用されます。 IKE と AuthIP の両方がサポートされている場合は、AuthIP が優先されるキーモジュールです。
手順 1 で追加したコンテキストごとに、次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件 空白。 すべてのトラフィックがフィルターと一致します。 providerContextKey 手順 1 で追加された QM プロバイダー コンテキストの GUID。 次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V{4|6} rawContext FWPM_CONTEXT_IPSEC_INBOUND_PERSIST_CONNECTION_SECURITY 次のプロパティを持つフィルターを追加して、ICMP トラフィックを IPsec から除外します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast フィルター条件のFWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**これらの定数は winsock2.h で定義されています。 action.type FWP_ACTION_PERMIT weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS 次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6} rawContext FWPM_CONTEXT_IPSEC_OUTBOUND_NEGOTIATE_DISCOVER 次のプロパティを持つフィルターを追加して、ICMP トラフィックを IPsec から除外します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast フィルター条件のFWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**これらの定数は winsock2.h で定義されています。 action.type FWP_ACTION_PERMIT weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS 次のプロパティを含むフィルターを追加します。 このフィルターでは、受信接続の試行が IPsec によって保護されている場合にのみ許可されます。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6} 次のプロパティを持つフィルターを追加して、ICMP トラフィックを IPsec から除外します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast フィルター条件のFWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**これらの定数は winsock2.h で定義されています。 action.type FWP_ACTION_PERMIT weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS 次のプロパティを含むフィルターを追加します。 このフィルターでは、TCP ポート 5555 への受信接続が暗号化されている場合にのみ許可されます。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast フィルター条件のFWPM_CONDITION_IP_PROTOCOL IPPROTO_TCPこの定数は winsock2.h で定義されます。 フィルター条件のFWPM_CONDITION_IP_LOCAL_PORT 5555 action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6} rawContext FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_ENCRYPTION 次のプロパティを含むフィルターを追加します。 このフィルターでは、TCP ポート 5555 からの送信接続が暗号化されている場合にのみ許可されます。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast フィルター条件のFWPM_CONDITION_IP_PROTOCOL IPPROTO_TCPこの定数は winsock2.h で定義されます。 フィルター条件のFWPM_CONDITION_IP_LOCAL_PORT 5555 action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_ALE_CONNECT_V{4|6} rawContext FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_ENCRYPTION
FWPM_LAYER_IKEEXT_V{4|6} MM ネゴシエーション ポリシーのセットアップ時
FWPM_LAYER_IPSEC_V{4|6} で QM と EM ネゴシエーション ポリシーを設定する
FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} では、パケットごとの受信フィルター規則を設定します
FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} でパケットごとの送信フィルター規則を設定する
FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} では、接続ごとの受信フィルター規則を設定します
FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} では、接続ごとの送信フィルター規則を設定します