982. SSL/TLS 핸드셰이크 - 전송 계층 보안 인증서 기반 세션키 교환 하이브리드 암호화 HTTPS 접속 과정 보안 프로토콜

핵심 인사이트: 인터넷 쇼핑몰(HTTPS)에서 신용카드 번호를 결제하려 한다. 내 컴퓨터가 카드 번호를 암호화하려면 '열쇠(대칭키)'가 필요한데, 이 열쇠를 서버와 어떻게 몰래 나눠 가질까? "야! 쇼핑몰 서버야, 네가 진짜 안전한 놈인지 국가 공인 인증서를 까봐! 오, 진짜네. 그럼 내가 지금 1회용 마스터키(세션키)를 하나 만들 테니까, 네가 준 인증서 자물쇠(공개키)로 이걸 꽉 잠가서 보낼게! 이제 우리 둘만 아는 열쇠가 생겼으니 지금부터 광속으로 암호화해서 통신하자!" 968번 TCP 악수 직후에 벌어지는 또 한 번의 숨 막히는 비밀번호 교환 의식, TLS 핸드셰이크다.

Ⅰ. SSL/TLS의 위상 (L4~L7 보안)

  • 개념: 브라우저(L7)와 TCP 전송 계층(L4) 사이에 딱 끼어들어서, 오가는 모든 데이터(HTTP 등)를 통째로 암호화(HTTPS)해 버리는 인터넷 보안의 절대 뼈대입니다. (현재는 SSL이 낡아서 폐기되고 TLS 1.2 / TLS 1.3이 표준입니다.)
  • 목적: 도청 방지(기밀성), 조작 방지(무결성), 서버 사칭 방지(인증).

Ⅱ. TLS 핸드셰이크 4단계 과정 🌟 핵심 🌟

면접과 시험에서 가장 많이 물어보는 937번(하이브리드 암호)의 실제 구현 과정입니다.

1단계: Client Hello (클라이언트 ➜ 서버) - "나 이런 암호화 방식 쓸 줄 아는데, 넌 뭐 쓸래?"

  • 내 브라우저가 접속을 시도하며, 브라우저가 지원하는 **암호화 방식 리스트(Cipher Suite)**와 랜덤 난수(Random 1)를 던집니다.

2단계: Server Hello & Certificate (서버 ➜ 클라이언트) - "이걸로 하자! 그리고 내 신분증 여깄어!"

  • 서버가 "그럼 AES-256 방식으로 하자!"라며 방식을 픽(Pick)해서 답장(서버 난수 2 포함)을 줍니다.
  • 인증서 전달 🌟: 서버가 자신의 공인 신분증인 X.509 인증서를 던집니다. 이 인증서 안에는 서버의 **'공개키(자물쇠)'**가 들어있습니다.

3단계: Client Key Exchange (클라이언트 ➜ 서버) - "비밀 열쇠 만들어서 잠가 보낼게!" 🌟

  • 브라우저는 받은 인증서가 진짜인지 확인(984번 PKI 검증)합니다. 진짜면 통과.
  • 브라우저는 1단계 난수와 2단계 난수를 섞어서, 앞으로 둘이 통신할 때 쓸 **'1회용 대칭키(세션키, Pre-Master Secret)'**를 뚝딱 만들어 냅니다.
  • 이 소중한 세션키를 아까 서버가 준 인증서 안의 '서버 공개키(자물쇠)'로 철컥 잠가버립니다(RSA 암호화). 그리고 서버로 쏩니다.
  • 해커가 중간에 가로채도 서버의 '개인키(마스터키)'가 없으므로 절대 열지 못합니다.

4단계: Finished (서버 ➜ 클라이언트) - "열쇠 잘 받았어! 이제부터 비밀 통화 시작!"

  • 서버가 자기 개인키로 금고를 열어 '세션키(대칭키)'를 얻어냅니다.
  • 이제 브라우저와 서버는 똑같은 세션키를 손에 쥐었습니다(키 교환 완료). 무겁고 느린 공개키 암호 방식은 버리고, 지금부터는 이 빠른 세션키(대칭키)를 이용해 영화와 텍스트를 광속으로 암호화하여 통신합니다.

Ⅲ. TLS 1.3의 진화 (0-RTT와 속도 혁명)

  • 과거 TLS 1.2는 위 악수를 하느라 왕복 2번(2-RTT)을 하며 시간이 질질 끌렸습니다.
  • TLS 1.3: 인사를 1번 왕복(1-RTT)으로 팍 줄였습니다. 게다가 972번 QUIC 문서처럼, 어제 접속했던 쇼핑몰이면 아예 인사 과정을 생략해버리는 0-RTT 마법을 도입하여 보안과 속도를 동시에 미친 듯이 끌어올렸습니다.

📢 섹션 요약 비유: TLS 핸드셰이크는 첩보원이 접선 장소에서 비밀 작전을 짜는 과정입니다. 첩보원(클라이언트)이 카페에 들어가 접선책(서버)에게 묻습니다. "암호는 스페인어, 프랑스어 중 뭘로 할까?(Client Hello)". 접선책이 답합니다. "프랑스어로 하자. 아, 그리고 내 경찰청 공무원증(인증서) 여기 있어. 확인해!(Server Hello)". 첩보원은 공무원증이 진짜인지 확인한 뒤, 서류 가방에서 앞으로 둘만 쓸 **'일회용 무전기 주파수(세션키)'**를 적은 쪽지를 꺼냅니다. 이 쪽지를 접선책이 준 절대로 안 부서지는 '특수 티타늄 금고(서버 공개키)'에 쏙 넣고 문을 잠가버립니다(Client Key Exchange). 이 금고는 오직 접선책만 열쇠(개인키)를 가지고 있어 스파이가 훔쳐도 못 엽니다. 접선책이 금고를 열어 주파수를 확인하면, 둘은 그날 하루 종일 그 무전기(대칭키 광속 암호화 통신)로만 쏼라쏼라 비밀 대화를 나누고 헤어질 때 무전기를 부숴버리는 완벽한 첩보 스릴러입니다.