CS 정리

HTTPS(HyperText Transfer Protocol + SSL/TLS)

문쿼리 2025. 7. 23. 21:12

HTTPS란?

  • HTTP(HyperText Transfer Protocol)에 보안 계층(SSL/TLS)을 추가하여 데이터의 암호화인증을 지원하는 프로토콜
  • port : HTTPS 443, HTTP 80

 

HTTPS 주요 구성요소

  • HTTP: 웹 콘텐츠를 주고받는 프로토콜
  • SSL/TLS: 데이터를 암호화하고 인증하는 프로토콜
  • 공개키/개인키 암호화 방식(비대칭키)
  • 대칭키 암호화 방식(공유된 하나의 암호키)
  • 디지털 인증서: 서버의 신원 확인과 공개키 제공에 사용

 

HTTPS 연결 절차 (SSL/TLS Handshake 과정)

① 클라이언트가 HTTPS 연결 요청

② 서버가 인증서 전달 (서버 인증)

  • 서버는 자신의 공개키가 포함된 디지털 인증서를 클라이언트에게 전송
  • 인증서는 CA (Certificate Authority, 인증기관)가 서명한 것

③ 클라이언트가 인증서 검증

  • 브라우저가 받은 인증서의 유효성을 검사
    1) 신뢰할 수 있는 CA가 발급한 인증서인지
    2) 인증서의 유효기간이 지났는지
    3) 인증서의 도메인이 요청한 도메인과 일치하는지 확인합니다.
  • 검증이 실패 시 브라우저는 경고를 표시하고 연결 차단
    -> 보안 경고 페이지(Security Warning Page) "안전하지 않음!"

④ 암호화 방식 및 세션 키 생성

  • 클라이언트가 대칭키(세션 키)를 생성
  • 클라이언트는 서버 인증서의 공개키로 세션 키를 암호화하여 서버로 전달

⑤ 서버가 세션 키 복호화

  • 서버는 자신의 개인키를 사용하여 세션 키를 복호화
  • 이후 클라이언트와 서버는 이 세션 키(대칭키)를 이용해 데이터를 암/ 복호화 진행
클라이언트가 HTTPS 요청 → 서버가 디지털 인증서 전달 → 클라이언트 인증서 검증 → 세션 키 생성 → 세션 키 암호화 전달 → 서버가 복호화 → 이후 대칭키 방식의 암호화 통신 수행

 

암호화된 데이터 통신

  • SSL/TLS Handshake가 완료된 후, HTTP 요청/응답 데이터는 모두 암호화된 형태로 전달
  • 암호화된 데이터는 오직 클라이언트와 서버만 복호화할 수 있으며,
    중간에 공격자가 데이터를 가로채더라도 내용을 볼 수 없음

 

HTTPS의 장점과 단점

장점

  • 데이터의 기밀성 보장
  • 데이터의 무결성 유지 (위변조 방지)
  • 웹사이트 신원 인증
  • 사용자 신뢰성 증가

단점

  • 암호화 및 복호화 과정에서 성능 오버헤드 발생 (최근 하드웨어 성능 향상으로 영향도 낮음)
  • SSL 인증서 발급 비용 (무료 인증서 서비스로 부담 낮음)