SSL 서버 인증

SSL 서버 인증은 통신하는 사이트가 당사자인지 확인합니다. 인증은 공개 키 암호화의 표준 기술을 통해 서버의 ID를 확인하여 서버의 인증서와 공용 ID가 유효하고 클라이언트의 신뢰할 수 있는 CA 목록에 나열된 인증 기관에서 발급한 것인지 확인합니다.

인증 기관에서 발급한 인증 인증서를 보유한 "신뢰할 수 있는" 서버와의 통신은 보안 환경 설정에 중요합니다. 인증 인증서는 공개 키를 개인 키 소유자의 ID에 바인드하는 디지털 서명된 문서입니다. 인증은 연결 시 발생하며 애플리케이션 또는 애플리케이션 프로토콜과 관계없습니다. SSL을 사용하여 인증은 X.509 ITU-T 표준에 설명된 형식의 데이터 블록인 인증서 교환을 통해 수행됩니다. X.509 인증서는 인증 기관에서 발급하고 디지털 서명합니다.

그러나 SSL 사용이 클라이언트가 올바른 서버와 통신하고 있음을 보증하지는 않습니다. "Server1"와 "Server2" 둘 다 클라이언트("Client")가 신뢰하는 CA의 유효한 인증서를 갖고 있는 다음 시나리오를 고려하십시오. 클라이언트는 Server1과 보안 세션을 원하지만 Server2는 통신을 도청하고 싶어하고 물리적으로 이를 가능하게 하는 장소에 위치합니다.
  1. Client가 Server1로 SSL 세션에 대한 요청을 보냅니다. 대신에, 요청(및 모든 후속 트래픽)은 Server2를 통과합니다. Client의 요청을 Server1로 전달하는 대신 Server2는 Client로 자체 인증서를 전송하여 요청에 직접 응답합니다.
  2. Client가 Server2의 인증서를 수신하고, 신뢰할 수 있는 CA 목록을 확인합니다. Server2의 인증서가 Server1의 인증서와 동일한 CA에서 서명한 것이므로 Client는 인증서을 승인하고 Server2와 보안 세션을 작성합니다.
  3. Client와 보안 세션을 완료한 후 Server2는 Server1과 자체 SSL 세션을 요청하고 작성합니다. 이 시점에서 Client는 Server2로 암호화된 정보를 전송합니다. Server2는 정보를 복호화하고 다시 암호화한 후 Server1로 전송합니다. 반대 방향으로 플로우되는 정보의 경우도 마찬가지입니다. 그 결과 모든 데이터가 인터넷을 통해 플로우될 때 암호화되더라도 Server2는 정보를 읽을 수 있으며 심지어 변경할 수도 있습니다.

SSL 서버 인증은 이 결과를 방지하도록 디자인됩니다. 서버 인증을 사용할 수 있을 때 클라이언트는 서버의 인증서를 신뢰할 수 있다고 확인한 후 인증서의 인터넷 이름이 서버의 인터넷 이름과 일치하는지 확인합니다. 일치하면 SSL 협상이 계속됩니다. 일치하지 않으면 연결이 종료됩니다.

서버 인증을 사용하여 위에 설명된 보안 시나리오는 다음과 같이 진행됩니다.
  1. Client가 Server1로 SSL 세션에 대한 요청을 보냅니다. 요청(및 모든 후속 트래픽)은 실제로 Server2를 통과합니다. Client의 요청을 Server1로 전달하는 대신 Server2는 Client로 자체 인증서를 전송하여 Client의 요청에 직접 응답합니다.
  2. Client가 Server2의 인증서를 수신하고, 신뢰할 수 있는 CA 목록을 확인합니다. Server2의 인증서가 Server1의 인증서와 동일한 CA에서 서명한 것이므로 Client는 인증서을 승인하고 Server2와 보안 세션을 작성합니다.
  3. 보안 세션이 완료된 후 실제 데이터가 전송되거나 수신되기 전에 Client는 수신한 인증서의 인터넷 이름을 통신할 서버의 이름과 비교합니다. 이름이 일치하지 않기 때문에 Client는 연결을 계속해서는 안됨을 알고 연결을 끊습니다.



피드백 | 주의사항


시간소인 아이콘 마지막 업데이트 날짜: 2013년 11월 6일 수요일