SOCKET_SECURITY_SETTINGS_IPSEC 構造体 (mstcpip.h)

SOCKET_SECURITY_SETTINGS_IPSEC構造では、IPsec に固有のさまざまなセキュリティ要件と設定を指定します。

構文

typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC {
  SOCKET_SECURITY_PROTOCOL SecurityProtocol;
  ULONG                    SecurityFlags;
  ULONG                    IpsecFlags;
  GUID                     AuthipMMPolicyKey;
  GUID                     AuthipQMPolicyKey;
  GUID                     Reserved;
  UINT64                   Reserved2;
  ULONG                    UserNameStringLen;
  ULONG                    DomainNameStringLen;
  ULONG                    PasswordStringLen;
  wchar_t                  AllStrings[0];
} SOCKET_SECURITY_SETTINGS_IPSEC;

メンバー

SecurityProtocol

種類: SOCKET_SECURITY_PROTOCOL

ソケット 使用するセキュリティ プロトコルの種類を識別するSOCKET_SECURITY_PROTOCOL値。 このメンバーは 、SOCKET_SECURITY_PROTOCOL_IPSECに設定する必要があります。

SecurityFlags

種類: ULONG

アプリケーションがソケットで特定のセキュリティ要件を設定できるようにするフラグのセット。 使用できる値は、 Mstcpip.h ヘッダー ファイルで定義されています。

意味
SOCKET_SETTINGS_GUARANTEE_ENCRYPTION
0x00000001
トラフィックの暗号化が保証されていることを示します。 既定のポリシーで暗号化を使用しない保護方法が優先される場合は、このフラグを設定する必要があります。 このフラグが設定されていて、何らかの理由で暗号化できない場合、パケットは送信されず、接続は確立されません。
SOCKET_SETTINGS_ALLOW_INSECURE
0x00000002
クリア テキスト接続が許可されることを示します。 このフラグが設定されている場合、送信されたパケットの一部または全部がクリア テキストで送信されます。特に、ピアとのセキュリティをネゴシエートできなかった場合です。
メモ このフラグが設定されていない場合、セキュリティ ネゴシエーションが失敗した場合でも、パケットがクリア テキストで送信されないことが保証されます。
 

IpsecFlags

種類: ULONG

IPsec セキュリティ設定のフラグ。 使用できる値は、 Mstcpip.h ヘッダー ファイルで定義されています。

意味
SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION
0x00000001
このフラグが設定されている場合、ソケットの IPsec フィルターのインスタンス化は省略されます。 このフラグは、アプリケーションがトラフィックに対して IPsec フィルターとポリシーが既に存在することを認識している場合に設定する必要があります。 IPsec ポリシーが設定されたドメインで実行されているアプリケーションでも、このフラグを設定できます。

AuthipMMPolicyKey

種類: GUID

AuthIP メイン モード プロバイダー コンテキストの Windows フィルター プラットフォーム キーの GUID。 アプリケーションでカスタム メイン モード ポリシーを使用する場合は、まず FwpmProviderContextAdd0 関数を使用して対応するプロバイダー コンテキストを追加し、このメンバーに返されるキーを指定する必要があります。 GUID が 0 の場合、このフィールドは無視されます。

AuthipQMPolicyKey

種類: GUID

AuthIp クイック モード プロバイダー コンテキストの Windows フィルター プラットフォーム キー。 アプリケーションでカスタム クイック モード ポリシーを使用する場合は、まず FwpmProviderContextAdd0 関数を使用して、対応するプロバイダー コンテキストを追加し、このフィールドに返されるキーを指定する必要があります。 GUID が 0 の場合、このフィールドは無視されます。

Reserved

種類: GUID

将来利用するために予約されています。

Reserved2

型: UINT64

将来利用するために予約されています。

UserNameStringLen

種類: ULONG

AllStrings メンバーのユーザー名の長さ (バイト単位)。

DomainNameStringLen

種類: ULONG

AllStrings メンバーのドメイン名の長さ (バイト単位)。

PasswordStringLen

種類: ULONG

AllStrings メンバーのパスワードの長さ (バイト単位)。

AllStrings[0]

種類: wchar_t[]

ユーザー名、ドメイン名、およびこの順序で連結されたパスワードを含む文字列。

注釈

SOCKET_SECURITY_SETTINGS_IPSEC構造は、Windows Vista 以降でサポートされています。

SOCKET_SECURITY_SETTINGS_IPSEC構造は、より柔軟性を必要とし、トラフィックの IPSec ポリシーをカスタマイズする高度なアプリケーションで使用することを意図しています。 WSASetSocketSecurity関数を呼び出してソケットにセキュリティを有効にして適用する場合は、SOCKET_SECURITY_SETTINGS_IPSEC構造体へのポインターをSOCKET_SECURITY_SETTINGS構造体型にキャストする必要があります。

SOCKET_SECURITY_SETTINGS_IPSEC構造体の SecurityProtocol メンバーは、SOCKET_SECURITY_PROTOCOL_DEFAULTではなく、SOCKET_SECURITY_PROTOCOL_IPSECに設定する必要があります。

インターネット プロトコル セキュリティ (IPsec) の展開を簡略化するために、Windows Vista 以降では、認証済みインターネット プロトコル (AuthIP) と呼ばれる拡張バージョンのインターネット キー交換 (IKE) プロトコルがサポートされています。 AuthIP では、多くの構成で簡略化された IPsec ポリシーの構成とメンテナンスが提供され、IPsec ピア認証の柔軟性が向上します。

SOCKET_SECURITY_SETTINGS_IPSEC構造で指定された IPsec 設定の一部が、ソケット上のネットワーク トラフィックに適用される実際の設定と異なる可能性があります。 たとえば、アプリケーションでカスタム メイン モードまたはクイック モード ポリシーを指定しているのに、優先度が高い別のポリシー (ドメイン ポリシーなど) で同じトラフィックに対して競合する設定が指定されている場合に発生する可能性があります。 このような競合を認識するために、アプリケーションは Windows フィルタリング プラットフォーム API を使用して、適用されているポリシーに対してクエリを実行し、通知をサブスクライブできます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header mstcpip.h

こちらもご覧ください

Windows フィルタリング プラットフォームについて

FwpmProviderContextAdd0

SOCKET_SECURITY_PROTOCOL

SOCKET_SECURITY_SETTINGS

Secure Socket Extensions の使用

WSASetSocketSecurity

Windows フィルタリング プラットフォーム

Windows フィルタリング プラットフォーム API 関数

Winsock Secure Socket Extensions