네트워크

Chapter 4.4. HTTPS, SSL, TLS 완전 정복

Juan_ 2025. 4. 18. 22:17
728x90

📚 Chapter 4.4: HTTPS, SSL, TLS 완전 정복

✅ HTTPS란?

HTTP + SSL/TLS = HTTPS

즉, 웹 통신 내용을 암호화해서 도청/변조/위조를 막는 버전의 HTTP다!

🔓 HTTP vs 🔐 HTTPS 차이

항목 HTTP HTTPS
암호화 ❌ 없음 ✅ 있음
포트 80 443
보안 낮음 높음
주소창 http:// https:// + 🔒 자물쇠 표시

https 주소 접속 = SSL/TLS로 보호된 안전한 통신이라는 뜻!

✅ 그럼 SSL이랑 TLS는 뭔데?

구분 설명
SSL (Secure Sockets Layer) 옛날 암호화 프로토콜 (현재는 쓰지 않음)
TLS (Transport Layer Security) SSL의 업그레이드 버전 (현재 사용 중)

요즘은 SSL이라고 부르지만 사실상 다 TLS임!

🎯 HTTPS 통신 흐름

클라이언트(브라우저) ↔ 서버 간 암호화된 연결 수립 절차

  1. 클라이언트 → 서버
    - "나 https 접속하고 싶소~" (Client Hello)
    - 가능한 암호화 방식 목록 전달
  2. 서버 → 클라이언트
    - "이 중에 이 방식 쓰자~" (Server Hello)
    - 서버 인증서 (인증서 + 공개키) 전달
  3. 클라이언트
    - 인증서 유효성 검사 (CA 신뢰 여부, 유효기간 등)
    - 공개키로 대칭키 암호화해서 서버에 전송
  4. 서버
    - 받은 대칭키를 개인키로 복호화
    → 이후부터는 대칭키로 통신 시작!

🔑 왜 공개키 → 대칭키로 바꾸나?

이유 설명
공개키 방식 안전하지만 느림
대칭키 방식 빠르지만 초기 키 공유가 불안함

→ 그래서 처음만 공개키로 대칭키를 전달하고, 이후엔 빠르고 안전한 대칭키 통신으로 전환!

🛡️ 인증서는 뭐고 왜 필요한가?

"이 서버 진짜 구글 맞아??" 이걸 증명해주는 게 인증서다!

  • 인증서는 CA (공인 인증기관)가 발급함
  • 브라우저는 신뢰할 수 있는 CA 목록을 갖고 있음
  • 인증서 내용:
    • 서버 도메인
    • 공개키
    • 발급자, 만료일
    • 서명 (위조 방지)

✅ 인증서 신뢰 안 되면?
→ 브라우저가 "주의 요함" 경고 뿜어냄!

💡 요약 흐름도

1. 클라이언트: HTTPS 요청
2. 서버: 인증서 + 공개키 제공
3. 클라이언트: 인증서 확인 후, 대칭키 암호화하여 전달
4. 서버: 대칭키 복호화 → 통신 시작
→ 이후부터는 대칭키 기반으로 암호화된 통신!

🔐 실무 보안 꿀팁

항목 실무 팁
인증서 만료 체크 자동 갱신 or 갱신 알림 설정
HSTS 강제로 HTTPS만 접속하도록 설정
Let's Encrypt 무료 인증서 발급 기관, 실무에서도 많이 씀
TLS 1.2/1.3 사용 TLS 1.0/1.1은 보안 취약, 비추천

✅ 정리 요약

개념 설명
HTTPS HTTP + TLS 암호화 통신
SSL/TLS 보안 프로토콜 (요즘은 TLS)
공개키 → 대칭키 전환 초기엔 안전하게, 이후엔 빠르게
인증서 진짜 서버임을 증명 + 위조 방지 역할

📦 다음 수업 예고 🎓

Chapter 4.5: IDS / IPS – 침입 탐지와 차단 시스템
"누가 몰래 네트워크에 침입하려 한다면?"
그걸 감지하고, 차단까지 하는 보안 시스템의 끝판왕!

728x90