인증을 사용하여 보안 연결 설정
클라이언트/서버 애플리케이션 프로토콜에서 서버는 소켓 또는 RPC 인터페이스와 같은 통신 포트에 바인딩됩니다. 그런 다음 서버는 클라이언트가 서비스에 연결하고 요청할 때까지 기다립니다. 연결 설정 시 보안 역할은 상호 인증의 경우 두 배입니다.
- 서버의 클라이언트 인증.
- 클라이언트에 의한 서버 인증.
전송 애플리케이션의 클라이언트 및 서버 구성 요소는 보안 패키지를 사용하여 메시지 전송을 위한 보안 연결을 설정합니다. 보안 연결을 설정하는 첫 번째 단계는 보안 컨텍스트를 만드는 것입니다. 즉, 세션 키 및 세션 기간과 같은 연결과 관련된 보안 데이터를 포함하는 불투명 데이터 구조입니다.
보안 컨텍스트는 기본적으로 클라이언트와 연결된 보안 패키지에서 서버와 연결된 보안 패키지로의 메시지입니다. 따라서 보안 컨텍스트를 만들려면 일반적으로 클라이언트와 서버 둘 다 해당 보안 패키지를 호출해야 합니다. 컨텍스트 함수에 대한 자세한 내용은 컨텍스트 관리를 참조하세요.
인증된 보안 연결을 설정하는 데 사용되는 프로토콜에는 클라이언트와 서버 간에 하나 이상의 "보안 토큰"이 교환됩니다. 이러한 토큰은 다른 애플리케이션 프로토콜 관련 정보와 함께 양측에 의해 불투명한 메시지로 전송됩니다. 불투명한 메시지로서 토큰은 해석하거나 변경할 수 없는 클라이언트가 보안 패키지 함수에서 수신하고 서버로 메시지로 전달됩니다. 토큰도 서버에 불투명하므로 토큰을 해석하거나 변경할 수 없습니다. 서버는 해석을 위해 불투명 토큰을 보안 패키지에 전달합니다. 그런 다음 패키지는 클라이언트 인증 또는 인증 실패를 서버에 알릴 수 있습니다.
클라이언트는 메시지에서 서버의 토큰을 수신하고, 받은 메시지에서 토큰을 검색하고, 해당 토큰을 보안 패키지 호출에 사용합니다. 그런 다음 클라이언트는 보안 연결이 설정되었는지 또는 보안 연결이 준비되기 전에 추가 교환이 필요한지 여부를 나타내는 보안 패키지를 다시 호출합니다. 이론적으로 필요한 보안 토큰 교환 수에는 제한이 없습니다. 실제로는 제한된 수의 교환만 필요합니다. NTLM 인증은 챌린지/응답 체계를 기반으로 하며, 세 개의 다리를 사용하여 클라이언트를 서버에 인증합니다. Kerberos 버전 5.0 프로토콜에는 추가 메시지 교환이 필요할 수 있습니다.
관련 항목