HTTPS 통신 원리

Seoyeon·2025년 9월 1일

백엔드

목록 보기
20/27

1. HTTPS란?

  • HTTP + SSL/TLS
  • 웹 브라우저와 서버가 중간에서 훔쳐보거나 위조하지 못하도록 암호화된 통신을 하는 프로토콜.
  • 우리가 흔히 주소창에서 보는 https\:// 가 바로 이 방식.

2. 핵심 요소

(1) SSL 인증서 = 서버의 "공인 신분증" 🆔

  • 서버가 진짜인지 증명하는 온라인 신분증 역할

  • 발급: 공인 인증 기관(CA, Certificate Authority)

  • 인증서에 담긴 내용:

    • 서버의 주인 정보 (도메인, 회사명 등)
    • 서버의 공개키 (암호화 자물쇠)
    • 발급 기관(CA)의 전자 서명

-> 브라우저(크롬, 사파리 등)는 유명 CA들의 정보를 이미 알고 있어서 인증서의 서명을 검증 가능.


(2) SSL Handshake = "비밀 악수"

인증서를 통해 서버의 신원을 확인한 뒤, 이제 둘만 아는 대칭키(비밀 열쇠)를 만드는 과정.

간단한 흐름

  1. 클라이언트 → 서버: "나 이런 암호화 방식들 쓸 수 있어."

  2. 서버 → 클라이언트: "좋아, 이 방식으로 하자. 그리고 내 신분증(SSL 인증서 + 공개키) 여기 있어."

  3. 클라이언트:

    • 서버 인증서가 진짜인지 CA를 통해 검증
    • 직접 새로운 **대칭키(비밀 열쇠)**를 생성
    • 대칭키를 서버의 **공개키(자물쇠)**로 잠가서 서버에 전달
  4. 서버:

    • 자신만 가진 **개인키(열쇠)**로 대칭키를 열어 확인

-> 결과: 클라이언트와 서버는 동일한 대칭키를 공유하게 됨.


3. HTTPS가 안전한 이유

  1. 기밀성 (Confidentiality)

    • 오가는 데이터는 대칭키로 암호화 → 중간에서 훔쳐도 해독 불가
  2. 무결성 (Integrity)

    • 데이터가 중간에 변조되면 브라우저가 감지하고 연결 끊음
  3. 인증 (Authentication)

    • SSL 인증서로 “내가 진짜 서버다”라는 걸 증명

4. 꼭 기억해야 할 흐름

서버 신분증(SSL 인증서) 확인
비밀 열쇠(대칭키) 공유
암호화 통신 시작


5. 추가로 알아두면 좋은 점

  • HTTPS 기본 포트: 443 (HTTP는 80)
  • 무료 인증서: Let's Encrypt 같은 서비스로 자동 발급/갱신 가능
  • HTTP/2, HTTP/3 같은 최신 프로토콜은 HTTPS를 전제로 설계됨 (속도/효율 ↑)
  • SSL은 옛 용어, 현재는 정확히 TLS(Transport Layer Security) 라고 부름

최종 흐름

    1. HTTPS = 안전한 HTTP
  • 2.SSL/TLS 인증서로 신원을 보장하고
  • 3.Handshake로 비밀 열쇠(대칭키)를 공유한 뒤
    1. 이후 모든 데이터는 암호화 통신으로 주고받음

0개의 댓글