다음을 통해 공유


Winsock Secure Socket 확장

Winsock에 대한 보안 소켓 확장을 사용하면 소켓 애플리케이션이 네트워크를 통해 트래픽의 보안을 제어할 수 있습니다. 이러한 확장을 통해 애플리케이션은 네트워크 트래픽에 대한 보안 정책 및 요구 사항을 제공하고 적용된 보안 설정을 쿼리할 수 있습니다. 예를 들어 애플리케이션은 이러한 확장을 사용하여 애플리케이션 수준 액세스 검사를 수행하는 데 사용할 수 있는 피어 보안 토큰을 쿼리할 수 있습니다.

보안 소켓 확장은 IPsec 및 기타 보안 프로토콜에서 제공하는 서비스를 Winsock 프레임워크와 통합하기 위한 것입니다. Windows Vista 이전에는 Windows Server 2003 및 Windows XP에서 관리자가 로컬 및 도메인 정책을 통해 IPsec을 구성했습니다. Windows Vista에서 보안 소켓 확장을 사용하면 애플리케이션이 소켓 수준에서 네트워크 트래픽의 보안을 완전히 또는 부분적으로 구성하고 제어할 수 있습니다.

애플리케이션은 IPsec 관리, Windows 필터링 플랫폼 및 SSPI(보안 지원 공급자 인터페이스)와 같은 공용 API를 사용하여 이미 네트워크 트래픽을 보호할 수 있습니다. 그러나 이러한 API를 사용하면 애플리케이션을 개발하기가 더 어려워질 수 있으며 구성 및 배포가 더 어려워질 수 있습니다. Winsock 보안 소켓 확장은 Winsock이 대부분의 복잡성을 처리하도록 하여 보안 네트워크 트래픽이 필요한 네트워크 애플리케이션의 개발을 간소화하도록 설계되었습니다.

이러한 보안 소켓 확장은 Windows Vista 이상에서 사용할 수 있습니다.

Secure Socket Functions

보안 소켓 확장 함수는 다음과 같습니다.

참고

보안 소켓 함수는 현재 IPsec 프로토콜만 지원하며 Windows Vista 이상에서 사용할 수 있습니다.

 

보안 소켓 함수에서 사용하는 구조체 및 열거형은 다음과 같습니다.

보안 소켓 함수는 일반 애플리케이션에 사용하기 쉽고 보안에 대한 높은 수준의 제어가 필요한 애플리케이션에 충분히 유연합니다. 이러한 함수를 사용하면 기본 보안 메커니즘을 애플리케이션에서 숨길 수 있습니다. 애플리케이션은 일반 보안 요구 사항을 지정하고 관리자가 요구 사항을 지원하는 데 사용되는 보안 프로토콜을 제어하도록 할 수 있습니다. 이러한 함수를 확장하여 다른 보안 프로토콜을 추가할 수 있지만 현재는 IPsec만 보안 소켓 함수와 통합됩니다.

WSASetSocketSecurity 함수를 사용하면 애플리케이션이 연결을 설정하기 전에 보안을 사용하도록 설정하고 보안 설정을 적용할 수 있습니다.

WSASetSocketPeerTargetName 함수를 사용하면 애플리케이션에서 피어 엔터티에 해당하는 대상 이름을 지정할 수 있습니다. 선택한 보안 프로토콜은 피어를 인증할 때 이 정보를 사용합니다. 이 기능은 신뢰할 수 있는 중간자 공격에 대한 우려를 해결합니다.

WSADeleteSocketPeerTargetName 함수는 소켓에 대해 이전에 지정된 피어 이름을 삭제하는 데 사용됩니다.

연결이 설정되면 WSAQuerySocketSecurity 함수를 사용하면 애플리케이션이 피어 액세스 또는 컴퓨터 액세스 토큰을 포함할 수 있는 연결의 보안 속성을 쿼리할 수 있습니다.

연결이 설정되면 WSAImpersonateSocketPeer 함수를 사용하면 애플리케이션이 애플리케이션 수준 권한 부여를 수행하기 위해 소켓 피어에 해당하는 보안 주체를 가장할 수 있습니다.

WSARevertImpersonation을 사용하면 애플리케이션이 소켓 피어의 가장을 종료할 수 있습니다.

보안 소켓 아키텍처

winsock 보안 소켓 확장의 기본 아키텍처

  • 애플리케이션은 보안 소켓 함수를 호출하여 소켓에 대한 보안 설정을 설정하거나 쿼리합니다.
  • 보안 소켓 함수는 Windows Vista 이상에서 사용할 수 있는 dwIoControlCode 매개 변수에 대해 새로 정의된 값을 사용하여 WSAIoctl 함수에 대한 호출을 래핑하는 형식 안전 확장 함수 집합입니다. 이러한 IOCTL은 네트워크 스택에서 처리됩니다.
  • 네트워크 스택은 엔드포인트 핸들과 함께 ALE(애플리케이션 계층 적용) 에 대한 호출을 전달합니다. WSADeleteSocketPeerTargetName, WSASetSocketPeerTargetNameWSASetSocketSecurity 함수의 경우 ALE은 로컬 엔드포인트에서 애플리케이션의 설정을 구성합니다. WSAQuerySocketSecurity 함수의 경우 ALE은 해당 로컬 및 원격 엔드포인트에서 요청된 정보를 읽습니다.
  • 소켓 이벤트에 따라 ALE(애플리케이션 계층 적용)은 Windows 필터링 플랫폼을 사용하여 보안 소켓 아키텍처에 대한 정책을 적용합니다. 자세한 내용은 Windows 필터링 플랫폼ALE(애플리케이션 계층 적용) 정보를 참조하세요.

Windows 필터링 플랫폼 정보

보안 소켓 확장을 사용하는 고급 Winsock 샘플

ALE(애플리케이션 계층 적용)

IPsec 구성

IPsec 함수

보안 Winsock 프로그래밍

SSPI(보안 지원 공급자 인터페이스)

보안 소켓 확장 사용

Windows 필터링 플랫폼

Windows 필터링 플랫폼 API 함수