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 정책을 사용자 지정하려는 고급 애플리케이션에서 사용됩니다. SOCKET_SECURITY_SETTINGS_IPSEC 구조체에 대한 포인터는 WSASetSocketSecurity 함수를 호출하여 소켓에서 보안을 사용하도록 설정하고 적용할 때 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 [데스크톱 앱만 해당]
머리글 mstcpip.h

추가 정보

Windows 필터링 플랫폼 정보

FwpmProviderContextAdd0

SOCKET_SECURITY_PROTOCOL

SOCKET_SECURITY_SETTINGS

보안 소켓 확장 사용

WSASetSocketSecurity

Windows 필터링 플랫폼

Windows 필터링 플랫폼 API 함수

Winsock Secure Socket 확장