HTTP & HTTPS 동작 과정(with 인증서 발급)

yshjft·2022년 1월 11일
0

네트워크

목록 보기
6/18

HTTP 동작 과정

  1. 사용자가 브라우저에 URL 주소 입력
  2. DNS 서버에 웹 서버의 호스트 이름을 IP 주소로 변경 요청
  3. 3 way-handshaking(웹 서버와 TCP 연결 시도)
  4. 클라이언트가 서버에 요청
  5. 서버가 클라이언트에 응답
  6. 4 way-handshaking(서버 클라이언트 간 연결 종료)
  7. 웹 브라우저가 웹 문서 출력

HTTPS를 위한 인증서 발급

SSL 방식을 적용하기 위해서는 인증서를 CA(Certificate Authority, 인증기관)로 부터 발급 받아야 한다.

✔︎ 서버에서 public key와 private key를 만들고 CA에 서버의 정보와 public key를 관리를 요청

✔︎ CA는 서버로 부터 제출된 데이터를 검증하고 CA의 private key로 데이터를 암호화해 인증서를 만들어 서버에 발급

✔︎ CA는 클라이언트(웹 브라우저)에게 CA의 public key를 제공

HTTPS 동작 과정

1. TCP 3-way Handshaking

2. SSL Handshaking

✔︎ Client hello: 클라이언트가 서버에 전송할 데이터

  • 랜덤 데이터(클라이언트에서 생성)
  • 클라이언트가 사용할 수 있는 암호화 방식
  • 이전에 이미 Handshaking 기록이 있다면 자원 절약을 위해 기존 세션을 재활용하기 위한 세션 아이디

✔︎ Server hello: Client Hello에 대한 응답

  • 랜덤 데이터(서버에서 생성)
  • 서버가 선택한 암호화 방식
  • SSL 인증서

✔︎ Client 인증 확인

  • 서버로 부터 받은 인증서 확인
    CA의 public key로 인증서를 해독하고 검증 → 이를 통해 서버의 정보서버의 public key를 확인

  • 클-서 각각의 랜덤 데이터를 조합하여 pre master secret 값 생성

  • pre master secret 값을 서버의 public key로 암호화하여 서버로 전송

✔︎ Server 인증 확인

  • 서버는 private키로 복호화하여 pre master secret 값 취득하고 master secret 값으로 저장
  • master secret값을 이용하여 session key 생성(대칭키 암호화 방식)

✔︎ Handshaking 종료

3. 데이터 전송

서버와 클라이언트는 session key를 활용해 데이터를 암/복호화(대칭키 암호화 방식)하여 데이터 송수신

4. 연결 종료 및 session key 폐기

참고

profile
꾸준히 나아가자 🐢

0개의 댓글