본문 바로가기
재밌는 Tech.

🌐 매일 쓰는 HTTPS 와 HTTP 는 뭐가 다른거야?

by 잡학&단어 2025. 12. 6.
반응형

 

1. HTTPS 한 줄 정의 🧐

  • HTTP: 웹 브라우저와 서버가 그냥 평문으로 이야기하는 방식
  • HTTPS: 그 위에 보안 층(TLS/SSL) 을 씌워서
    • 내용은 암호화 🔒
    • 상대 신분 확인 🪪
    • 중간에 내용이 바뀌지 않았는지 확인 ✅
    • 하는 통신 방식입니다.

즉, “HTTP over TLS/SSL” = HTTPS 라고 생각하시면 됩니다.

 


2. 먼저 HTTP부터 이해해보기 (보안 없는 버전) 🌐

주소창에 http://example.com 을 입력하면:

  1. 브라우저가 서버에 “이 페이지 좀 주세요!” 하고 요청을 보냅니다.
  2. 서버가 HTML, CSS, 이미지 같은 데이터를 그대로(평문으로) 보내 줍니다.
  3. 이 과정에서 누구든 중간에서 엿볼 수 있고, 바꿔치기할 수도 있습니다.

비유하자면:

HTTP = 엽서에 적은 글을 우편으로 보내는 것 우체국 직원, 배달원, 중간에 가로채는 사람 모두 내용을 볼 수 있습니다.

 

그래서 로그인, 결제정보, 개인정보 같은 민감한 정보를 HTTP로 보내면 아주 위험합니다.

 


 

3. HTTPS는 뭐가 다른가? 🔒

 

이제 주소가 https:// 로 시작하면 이야기가 달라집니다.

 

3-1. HTTPS의 핵심 세 가지

  • 암호화 (Encryption)
    • 주고받는 내용을 암호문으로 바꿔 전송
    • 중간에서 훔쳐봐도 무슨 내용인지 알 수 없음
  • 인증 (Authentication)
    • 이 사이트가 진짜 네이버/구글/은행이 맞는지 확인
    • 가짜 피싱 사이트를 구별하는 데 도움
  • 무결성 (Integrity)
    • 데이터가 중간에 몰래 수정되지 않았는지 확인
    • 누군가 광고 코드, 악성코드를 끼워 넣는 걸 방지

비유하자면:

HTTPS = 잠금 장치가 달린 금고(암호화)에 편지를 넣고, 금고에는 공인된 회사 로고와 봉인 스티커(인증서)가 붙어 있는 상태로 배송하는 것

 


4. HTTPS가 동작하는 원리 (쉽게 풀이) 🧩

 

4-1. 1단계 – “안녕하세요?” (접속 & 인사)

  1. 사용자가 https://example.com 입력
  2. 브라우저가 서버에 “안녕하세요, 보안 통신(HTTPS)로 이야기해요!” 라고 먼저 인사(handshake)를 보냅니다.

 


 

4-2. 2단계 – 서버 신분 확인 (인증서 교환) 🪪

  • 서버는 브라우저에게 디지털 인증서(SSL/TLS 인증서) 를 보여줍니다.
    • 인증서 안에는 다음 내용이 들어 있습니다.
      • 이 서버의 공개키(public key)
      • 사이트 도메인 정보(example.com)
      • 인증서 발급 기관(CA)의 전자 서명
  • 브라우저는 신뢰할 수 있는 인증 기관(CA) 목록을 이미 가지고 있습니다.
  • 브라우저는 인증서에 찍힌 전자 서명을 확인하면서:
    • 이 인증서가 위조된 건 아닌지 도메인 이름이 내가 접속한 주소와 일치하는지 를 검증합니다.

이 과정을 통과하면:

“아, 이 서버는 진짜 example.com 이고, 공인된 기관이 확인해 준 사이트구나!”

 

라고 신뢰하게 됩니다.

 


 

4-3. 3단계 – 비밀 대화용 열쇠 만들기 🔑

 

서버 신분을 믿게 되면, 이제 둘만 아는 비밀 열쇠(세션 키) 를 만듭니다.

  1. 브라우저는 잠깐 비밀 정보를 서버의 공개키로 암호화해서 보냅니다.
  2. 공개키로 암호화된 내용은 서버만 가진 비밀키(private key) 로만 풀 수 있습니다.
  3. 이렇게 교환한 정보를 바탕으로, 브라우저와 서버는
    • 대칭키(세션 키) 라고 하는, 둘만 아는 공통 비밀 열쇠 를 하나 만들어냅니다.

그 이후부터는 이 세션 키를 사용해서 빠르게 암호화/복호화를 하며 데이터를 주고받습니다.

 


 

4-4. 4단계 – 이제부터는 모두 암호화된 데이터로만 통신 🔐

 

이제 페이지를 주고받을 때는 전부 이렇게 동작합니다.

  • 브라우저 → 서버: 세션 키로 데이터 암호화 → 전송
  • 서버 → 브라우저: 세션 키로 응답 암호화 → 전송

중간에 누가 패킷을 훔쳐가도:

  • 내용은 암호문일 뿐이라 의미를 알 수 없습니다.
  • 조작하려 해도 무결성 체크에 걸립니다.

 


 

5. HTTPS를 쓰면 좋은 이유 👍

 

  1. 로그인/비밀번호/카드번호 보호
  2. 공용 와이파이에서도 비교적 안전 (물론 100%는 아님, 피싱 사이트 주의)
  3. 피싱 사이트를 어느 정도 구별
    • 주소창 https:// + 올바른 도메인 + 브라우저 보안 경고 없음
  4. 검색엔진 SEO에도 유리
    • 구글 등은 HTTPS 사이트를 더 신뢰하는 편
  5. 사용자에게 신뢰감을 줌
    • 주소창 자물쇠 아이콘 🔒, “안전함” 표시 등

 


6. 초보자용 요약 정리 📝

  • http:// : 평문 편지 = 엽서
  • https:// : 자물쇠 달린 금고 + 신분증 + 봉인 스티커 (도중에 훔쳐봐도 내용을 알 수 없고, 바꿔치기하면 들킵니다.)
  • 원리는
    • 서버 신분 확인(인증서)
    • 둘만 아는 비밀 열쇠 만들기(키 교환)
    • 그 열쇠로 모든 데이터 암호화
반응형