C

HTTP와 HTTPS 차이 — 면접에서 정확히 설명하기

2026-05-18 · CS · 면접 · 네트워크 · 보안 · HTTPS

HTTP와 HTTPS 차이, 면접에서 꼭 나오는 보안 질문

HTTP와 HTTPS 차이는 네트워크·보안 CS 면접의 단골 질문입니다. 핵심만 말하면 HTTPS는 HTTP에 SSL/TLS라는 암호화 계층을 더한 것입니다. HTTP는 데이터를 평문(plain text)으로 주고받아 중간에서 가로채면 그대로 노출되지만, HTTPS는 TLS로 암호화해 도청·위변조·신원 위장을 막습니다.

HTTP와 HTTPS의 핵심 차이

구분HTTPHTTPS
암호화없음(평문 전송)SSL/TLS로 암호화
기본 포트80443
보안도청·변조에 취약기밀성·무결성·인증 보장
인증서불필요CA 발급 SSL 인증서 필요
속도약간 빠름(핸드셰이크 없음)핸드셰이크 오버헤드 존재(미미)
SEO/신뢰불리유리(브라우저 '안전함' 표시)

HTTPS가 보장하는 3가지

  • 기밀성(Confidentiality): 암호화되어 중간자가 내용을 볼 수 없음
  • 무결성(Integrity): 전송 중 데이터가 변조되면 감지됨(MAC/AEAD)
  • 인증(Authentication): 인증서로 서버가 진짜인지 확인, 피싱 방지

TLS의 핵심: 대칭키 + 비대칭키 조합

면접에서 가장 깊이 들어가는 부분입니다. TLS는 비대칭키와 대칭키를 영리하게 결합합니다.

  • 비대칭키(공개키/개인키): 안전하지만 느립니다. 그래서 '대칭키를 안전하게 교환'하는 용도로만 씁니다.
  • 대칭키: 빠르지만 키를 공유해야 합니다. 핸드셰이크에서 합의한 대칭키로 실제 데이터를 암호화합니다.

즉, 비대칭키로 대칭키를 안전하게 나눠 갖고, 이후 실제 통신은 빠른 대칭키로 암호화합니다.

TLS 핸드셰이크 흐름(개념)

1. Client Hello : 지원 암호 스위트, 랜덤값 전송
2. Server Hello : 암호 스위트 선택, 서버 인증서(공개키) 전송
3. 인증서 검증 : 클라이언트가 CA 서명으로 서버 진위 확인
4. 키 교환 : 비대칭키로 세션(대칭)키 재료를 안전하게 합의
5. 이후 통신 : 합의된 대칭키로 암호화하여 데이터 송수신

참고로 TLS 1.3에서는 핸드셰이크가 1-RTT로 단축되고, RSA 키 교환 대신 (EC)DHE 기반의 forward secrecy가 기본이 되어 보안과 속도가 모두 개선됐습니다.

실제 예시로 이해하기

카페 와이파이에서 HTTP 사이트에 로그인하면, 같은 네트워크의 누군가가 패킷을 캡처해 아이디·비밀번호를 평문으로 볼 수 있습니다. HTTPS라면 캡처해도 암호문만 보여 무용지물입니다. 그래서 로그인·결제가 있는 모든 사이트는 HTTPS가 필수입니다.

면접 답변 예시

"HTTP는 데이터를 평문으로 주고받기 때문에 도청과 변조에 취약합니다. HTTPS는 HTTP 아래에 SSL/TLS 계층을 추가해 기밀성, 무결성, 서버 인증을 보장합니다. TLS는 느린 비대칭키로 세션에 쓸 대칭키를 안전하게 교환하고, 이후 실제 데이터는 빠른 대칭키로 암호화합니다. 또 CA가 서명한 인증서로 서버가 진짜인지 검증해 피싱을 막습니다. 포트는 HTTP가 80, HTTPS가 443을 씁니다. 핸드셰이크로 약간의 오버헤드가 있지만 TLS 1.3에서 1-RTT로 개선됐고, 보안상 이점이 훨씬 큽니다."

면접 꼬리질문 대비

Q1. 왜 처음부터 대칭키만 쓰지 않나요?

대칭키는 빠르지만 '키를 어떻게 안전하게 상대에게 전달하느냐'가 문제입니다. 평문으로 보내면 가로채여 무용지물이 됩니다. 그래서 비대칭키로 대칭키(또는 그 재료)를 안전하게 교환한 뒤, 빠른 대칭키로 실제 통신을 암호화하는 하이브리드 방식을 씁니다.

Q2. SSL 인증서는 무엇을 검증하나요?

인증서는 '이 공개키가 이 도메인의 진짜 소유자 것'임을 신뢰할 수 있는 인증기관(CA)이 보증하는 문서입니다. 브라우저는 내장된 신뢰 루트 CA로 인증서의 서명 체인을 검증하고, 도메인 일치·유효기간·폐기 여부를 확인합니다. 이를 통해 중간자가 가짜 서버로 위장하는 것을 막습니다.

Q3. HTTPS면 100% 안전한가요?

아닙니다. HTTPS는 전송 구간의 보안만 보장합니다. 서버 자체가 해킹당하거나, 사용자가 가짜 도메인(피싱)에 접속하거나, 인증서가 잘못 발급되면 여전히 위험합니다. 또 HTTPS도 SNI나 트래픽 패턴 등 일부 메타데이터는 노출될 수 있습니다.

HTTP와 HTTPS 차이 — 면접에서 정확히 설명하기 | CodeMaster 블로그 | CodeMaster