HTTP/ HTTPS

신정범·2026년 4월 7일

CS

목록 보기
1/1

1. HTTP란?

HTTP (HyperText Transfer Protocol) 는
클라이언트(브라우저)와 서버 간 데이터를 주고받기 위한 통신 규약(프로토콜)이다.
• 기본 포트: 80번
• 특징: 암호화 없음 (평문 통신)

2. HTTPS란?(HTTPS over SSL)

HTTPS (HTTP Secure) 는 HTTP에 SSL/TLS 암호화 계층이 추가된 프로토콜이다.
로그인 자격 증명이 필요한 웹사이트는 HTTPS를 사용해야 한다.
HTTP 프로토콜을 사용하기 위해서는 인증기관(CA) 로부터 인증서를 발급받아야 한다.
• 기본 포트: 443번
• 특징: 데이터 암호화

3. 암호화 방식

대칭키 방식


하나의 같은 키로 암호화와 복호화를 모두 수행하는 방식

특징

  • 속도가 매우 빠르다.
  • 대량데이터 처리에 적합하다.

단점

  • 키를 안전하게 전달하기 어려움 (가장 큰 문제)
    ex) AES

비대칭키 방식

공개키 + 개인키 두 개의 키를 사용하는 방식
• 공개키: 누구나 볼 수 있음
• 개인키: 서버만 가지고 있음

특징
• 키 교환이 안전함
• 보안성이 높음

단점
• 속도가 느림

ex) RSA

하리브리드 방식

실제 HTTPS는 이걸 사용합니다.
동작 방식
1. 비대칭키로 대칭키를 안전학 전달
2. 이후 통신은 대칭키로 빠르게 처리
보안 + 성능 둘 다 잡음

4. SSL 인증서 동작 원리

1) SSL인증서 발급 과정

흐름
1. 서버 → 공개키 생성
2. 서버 → CSR (인증서 요청) 생성
3. 서버 → CA(인증기관)에 요청
4. CA → 도메인 검증
5. CA → 디지털 서명 후 인증서 발급

2) CA의 서명

CA는 서버의 공개키를 검증하고
자신의 개인키로 서명을 한다.

클라이언트는 CA 공개키를 검증

3) Self-Signed SSL

서버가 자기 자신이 서명한 인증서

특징

  • 무료
  • 테스트용으로 사용

단점

  • 브라우저에서 "신뢰할 수 없음" 경고

4) SSL 인증서를 통한 암호화된 통신 원리

핵심 흐름

1.	클라이언트 → 서버 접속
2.	서버 → SSL 인증서 전달
3.	클라이언트 → CA로 인증서 검증
4.	안전하다고 판단하면 통신 시작

5) SSL Handshake

단계별 흐름
1. Client Hello
• 지원 가능한 암호화 방식 전달
2. Server Hello
• 사용할 암호화 방식 선택
• SSL 인증서 전달
3. 인증서 검증
• CA를 통해 서버 신뢰 여부 확인
4. 키 교환
• 대칭키 생성 후 공개키로 암호화하여 전달
5. 세션 생성
• 이후 통신은 대칭키 사용

profile
성장하는 개발자가 되겠습니다

0개의 댓글