SSL/TLS 데이터 교환의 개요

SSL/TLS 데이터 교환을 사용하면 통신하는 TLS 클라이언트와 서버가 보안 키를 설정할 수 있습니다.

이 절에서는 TLS 클라이언트 및 서버가 서로 통신할 수 있도록 하는 단계의 요약을 제공합니다.

  • 사용하는 프로토콜 버전 동의.
  • 암호화 알고리즘 선택.
  • 디지털 인증서를 교환 및 유효성 검증하여 서로 인증.
  • 공유 보안 키 생성을 위한 키 분배 문제점을 막아주는 비대칭 암호화 기술 사용. 그러면 TLS는 메시지에 대해 비대칭 암호화보다 빠른 대칭 암호화의 공유 키를 사용합니다.

암호화 알고리즘 및 디지털 인증서에 대한 자세한 정보는 관련 정보를 참조하십시오.

대략적으로, TLS 데이터 교환에 연관된 단계는 다음과 같습니다.
  1. TLS 클라이언트가 TLS 버전과 클라이언트가 지원하는 CipherSuite(클라이언트 환경 설정 순서대로) 등의 암호화 정보를 나열하는 client hello 메시지를 송신합니다. 메시지에는 나중의 처리에서 사용되는 무작위 바이트 문자열도 포함됩니다. 프로토콜은 client hello가 클라이언트에서 지원되는 데이터 압축 메소드도 포함하도록 허용합니다.
  2. TLS 서버는 클라이언트가 제공하는 목록에서 서버가 선택한 CipherSuite, 세션 ID, 다른 무작위 바이트 문자열을 포함하는 server hello 메시지로 응답합니다. 서버는 해당 디지털 인증서도 송신합니다. 서버가 클라이언트 인증을 위해 디지털 인증서를 필요로 하면, 서버가 지원되는 인증서 유형 목록과 허용 가능한 인증 기관(CA)의 식별 이름을 포함하는 클라이언트 인증서 요청을 송신합니다.
  3. TLS 클라이언트는 서버의 디지털 인증서를 확인합니다. 자세한 정보는 TLS가 식별, 인증, 기밀성 및 무결성을 제공하는 방법을 참조하십시오.
  4. TLS 클라이언트는 클라이언트와 서버 모두가 후속 메시지 데이터 암호화에 사용되는 보안 키를 처리할 수 있도록 하는 무작위 바이트 문자열을 송신합니다. 무작위 바이트 문자열 자체는 서버의 공개 키로 암호화됩니다.
  5. TLS 서버가 클라이언트 인증서 요청을 송신하면 클라이언트는 클라이언트의 개인 키와 클라이언트의 디지털 인증서 또는 디지털 인증서 경보 없음을 같이 암호화한 무작위 바이트 문자열을 송신합니다. 이 경보는 단지 경고일 뿐이지만 일부 구현에서 클라이언트 인증이 필수인 경우에 데이터 교환은 실패합니다.
  6. TLS 서버는 클라이언트 인증서를 확인합니다. 자세한 정보는 TLS가 식별, 인증, 기밀성 및 무결성을 제공하는 방법을 참조하십시오.
  7. TLS 클라이언트는 데이터 교환의 클라이언트 측이 완료되었음을 표시하는 보안 키와 같이 암호화되는 완료됨 메시지를 서버에 송신합니다.
  8. TLS 서버는 데이터 교환의 서버 측이 완료되었음을 표시하는 보안 키와 같이 암호화되는 완료됨 메시지를 클라이언트에 송신합니다.
  9. 이제 TLS 세션 동안 서버와 클라이언트는 공유 보안 키로 대칭적으로 암호화되는 메시지를 교환할 수 있습니다.
그림 1 은 TLS 핸드쉐이크를 보여줍니다.
그림 1. TLS 데이터 교환의 개요
이 다이어그램은 다이어그램 앞의 텍스트에 설명된 대로 TLS 핸드쉐이크를 설명합니다.