본문 바로가기

개발기술/보안

HTTPS 의 TLS 동작과정

1단계: 클라이언트 헬로 (Client Hello)

  • 클라이언트(예: 브라우저)가 서버에 요청을 보냅니다:
    • 지원하는 암호화 방식 목록(Cipher Suite).
    • 난수(Random Data) 1개.
    • 사용할 TLS 버전.

2단계: 서버 헬로 (Server Hello)

  • 서버는 클라이언트의 요청에 응답하며 다음 정보를 보냅니다:
    • 선택한 암호화 방식(예: AES-256-GCM).
    • 난수(Random Data) 1개.
    • 서버의 디지털 인증서(SSL/TLS 인증서):
      • 서버의 공개 키 포함.
      • 신뢰할 수 있는 인증 기관(CA)에 의해 서명됨.

3단계: 인증서 검증

  • 클라이언트는 서버가 보낸 디지털 인증서를 검증합니다:
    • 인증서가 신뢰할 수 있는 CA(인증 기관)에 의해 서명되었는지 확인.
    • 인증서에 포함된 도메인 이름과 접속한 도메인이 일치하는지 확인.
    • 인증서가 유효한 기간 내에 있는지 확인.

목적: 서버가 신뢰할 수 있는지 확인.

4단계: 세션 키 교환

  • 클라이언트와 서버는 서로 공유할 세션 키를 생성합니다.
    • 세션 키는 실제 데이터를 암호화하는 데 사용되는 대칭 키입니다.
    • 키 교환 방식:
      • RSA: 클라이언트가 서버의 공개 키를 사용해 세션 키를 암호화해 보냄.
      • ECDHE(TLS 1.3 기본): 클라이언트와 서버가 난수와 수학적 연산으로 세션 키를 안전하게 생성.

5단계: 완료 메시지

  • 클라이언트와 서버가 "Finished" 메시지를 주고받고, TLS 핸드셰이크가 완료됩니다.
  • 이후 모든 데이터는 세션 키를 사용하여 암호화됩니다.

'개발기술 > 보안' 카테고리의 다른 글