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
보안 소켓 확장 함수는 다음과 같습니다.
- WSADeleteSocketPeerTargetName
- WSAImpersonateSocketPeer
- WSAQuerySocketSecurity
- WSARevertImpersonation
- WSASetSocketPeerTargetName
- WSASetSocketSecurity
참고
보안 소켓 함수는 현재 IPsec 프로토콜만 지원하며 Windows Vista 이상에서 사용할 수 있습니다.
보안 소켓 함수에서 사용하는 구조체 및 열거형은 다음과 같습니다.
- SOCKET_PEER_TARGET_NAME
- SOCKET_SECURITY_PROTOCOL
- SOCKET_SECURITY_QUERY_INFO
- SOCKET_SECURITY_QUERY_TEMPLATE
- SOCKET_SECURITY_SETTINGS
- SOCKET_SECURITY_SETTINGS_IPSEC
보안 소켓 함수는 일반 애플리케이션에 사용하기 쉽고 보안에 대한 높은 수준의 제어가 필요한 애플리케이션에 충분히 유연합니다. 이러한 함수를 사용하면 기본 보안 메커니즘을 애플리케이션에서 숨길 수 있습니다. 애플리케이션은 일반 보안 요구 사항을 지정하고 관리자가 요구 사항을 지원하는 데 사용되는 보안 프로토콜을 제어하도록 할 수 있습니다. 이러한 함수를 확장하여 다른 보안 프로토콜을 추가할 수 있지만 현재는 IPsec만 보안 소켓 함수와 통합됩니다.
WSASetSocketSecurity 함수를 사용하면 애플리케이션이 연결을 설정하기 전에 보안을 사용하도록 설정하고 보안 설정을 적용할 수 있습니다.
WSASetSocketPeerTargetName 함수를 사용하면 애플리케이션에서 피어 엔터티에 해당하는 대상 이름을 지정할 수 있습니다. 선택한 보안 프로토콜은 피어를 인증할 때 이 정보를 사용합니다. 이 기능은 신뢰할 수 있는 중간자 공격에 대한 우려를 해결합니다.
WSADeleteSocketPeerTargetName 함수는 소켓에 대해 이전에 지정된 피어 이름을 삭제하는 데 사용됩니다.
연결이 설정되면 WSAQuerySocketSecurity 함수를 사용하면 애플리케이션이 피어 액세스 또는 컴퓨터 액세스 토큰을 포함할 수 있는 연결의 보안 속성을 쿼리할 수 있습니다.
연결이 설정되면 WSAImpersonateSocketPeer 함수를 사용하면 애플리케이션이 애플리케이션 수준 권한 부여를 수행하기 위해 소켓 피어에 해당하는 보안 주체를 가장할 수 있습니다.
WSARevertImpersonation을 사용하면 애플리케이션이 소켓 피어의 가장을 종료할 수 있습니다.
보안 소켓 아키텍처
- 애플리케이션은 보안 소켓 함수를 호출하여 소켓에 대한 보안 설정을 설정하거나 쿼리합니다.
- 보안 소켓 함수는 Windows Vista 이상에서 사용할 수 있는 dwIoControlCode 매개 변수에 대해 새로 정의된 값을 사용하여 WSAIoctl 함수에 대한 호출을 래핑하는 형식 안전 확장 함수 집합입니다. 이러한 IOCTL은 네트워크 스택에서 처리됩니다.
- 네트워크 스택은 엔드포인트 핸들과 함께 ALE(애플리케이션 계층 적용) 에 대한 호출을 전달합니다. WSADeleteSocketPeerTargetName, WSASetSocketPeerTargetName 및 WSASetSocketSecurity 함수의 경우 ALE은 로컬 엔드포인트에서 애플리케이션의 설정을 구성합니다. WSAQuerySocketSecurity 함수의 경우 ALE은 해당 로컬 및 원격 엔드포인트에서 요청된 정보를 읽습니다.
- 소켓 이벤트에 따라 ALE(애플리케이션 계층 적용)은 Windows 필터링 플랫폼을 사용하여 보안 소켓 아키텍처에 대한 정책을 적용합니다. 자세한 내용은 Windows 필터링 플랫폼 및 ALE(애플리케이션 계층 적용) 정보를 참조하세요.
관련 항목