HTTP/HTTPS 프로토콜

sunnyjjang·2025년 5월 22일

네트워크

목록 보기
12/26
post-thumbnail

1. HTTP 프로토콜

  • HTTP (HyperText Transfer Protocol)란?

웹 상에서 클라이언트 (웹 브라우저)와 서버 간의 데이터를 전송하기 위한 프로토콜

  • 특징

애플리케이션 계층 (Application Layer) 프로토콜

비연결성 (Connectionless): 각 요청은 독립적으로 처리

비상태성 (Stateless): 서버는 클라이언트의 이전 요청 상태를 기억하지 않음

주로 사용: 웹 페이지 요청 (HTML, CSS, JavaScript), 이미지, 파일, API 통신 등.

  • 동작 과정
  1. HTTP 요청: 클라이언트 → 서버

    웹 브라우저에서 사용자가 www.example.com에 접속
    클라이언트는 서버로 HTTP GET 요청 전송
  2. HTTP 응답: 서버 → 클라이언트

    서버는 요청된 페이지 (index.html)를 HTTP 응답으로 전송

2. SSL/TLS Handshake (SSL/TLS 핸드셰이크)

  • SSL/TLS Handshake (SSL/TLS 핸드셰이크)란?

클라이언트 (웹 브라우저)와 서버 간의 보안 연결을 설정하기 위해 사용하는 프로세스

  • 목적

안전한 통신을 위한 암호화된 연결 (HTTPS) 설정

  • 특징

TCP/IP 4계층 중 전송 계층 (Transport Layer) 프로토콜

웹 통신 (HTTPS), 이메일 (IMAP/SMTP), 파일 전송 (FTPS) 등에 사용

  • 용어

SSL (Secure Sockets Layer): 초기 버전의 보안 프로토콜
TLS (Transport Layer Security): SSL의 개선된 버전으로 현재 주로 사용

  • 동작 흐름
  1. Client Hello (클라이언트 인사)

    클라이언트 → 서버: 보안 연결 요청

    Client Hello
    - TLS Version: TLS 1.2
    - Cipher Suites: AES, RSA, ECC 등
    - Client Random: (임의의 랜덤 값)
    • TLS 버전 정보
    • 클라이언트가 지원하는 암호화 방식 제안
    • 클라이언트 랜덤 값 생성
  2. Server Hello (서버 응답) + Server Certificate (서버 인증서)

    서버: 클라이언트 요청 수락, 보안 설정 정보 전송

    Server Hello
    - TLS Version: TLS 1.2
    - Cipher Suite: AES-256-GCM (서버가 선택)
    - Server Random: (임의의 랜덤 값)
    - Certificate: (서버 인증서 + 공개 키)
    • 제안된 암호화 방식 중 서버가 지원하는 암호화 방식 선택
    • 서버 랜덤 값 생성
    • SSL/TLS 인증서 (Server Certificate) 전송: 서버의 공개 키 포함
  3. Client Key Exchange (클라이언트 키 교환)

    클라이언트: 세션 키를 생성하고, 서버의 공개 키로 암호화하여 서버에 전달

    Client Key Exchange
    - Encrypted Pre-Master Secret (서버 공개 키로 암호화)
    - Finished (대칭키로 암호화된 메시지)
    • 클라이언트: 대칭 키(Pre-Master Secret)생성
    • 서버의 공개 키로 암호화된 메세지
    • Finished 메시지: 클라이언트는 이 시점부터 대칭 키로 암호화된 통신 전환
  4. Server Finished (서버 확인)

    서버: 클라이언트가 보낸 Pre-Master Secret을 자신의 개인 키로 복호화

    Server Finished
    - Finished (대칭키로 암호화된 메시지)
    • Pre-Master Secret + Client Random + Server Random → Session Key (대칭키) 생성
    • Finished 메시지: 서버는 대칭키로 암호화된 메시지 전송

    → 이 시점부터 대칭키 (대칭 암호화)로 안전하게 통신

profile
지금 이 순간이 다시 넘겨볼 수 있는 한 페이지가 될 수 있게

0개의 댓글