"HTTPS가 뭔지 아시죠?" 단순히 '보안' 얘기만 하실 건가요? 면접관이 원하는 진짜 답변

TeamGrit·2025년 12월 18일

Interview-Question

목록 보기
8/12
post-thumbnail

안녕하세요, 이력서 기반 면접 준비를 도와드리는 QueryDaily 팀입니다.
.
.
.

"HTTP랑 HTTPS 차이가 뭔가요?"
"HTTPS는 보안이 적용된 HTTP입니다!"

여기까지는 누구나 대답할 수 있습니다. 그런데 면접관이 고개를 끄덕이며 이렇게 묻는다면요?

"그럼 어떻게 보안이 적용되는 건가요? 구체적으로 설명해주실 수 있나요?"

혹시 "SSL/TLS를 사용해서요..."라고 말하고 멈칫한 경험, 없으신가요? 오늘은 HTTPS의 동작 원리를 면접관 앞에서 자신 있게 설명할 수 있도록, 암호화의 핵심 개념부터 TLS Handshake 과정까지 깊이 파헤쳐 보겠습니다.


HTTP의 치명적인 약점

먼저 왜 HTTPS가 필요한지부터 짚어봅시다. HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 주고받는 프로토콜입니다. 문제는 HTTP가 평문(Plain Text)으로 데이터를 전송한다는 것입니다.

[사용자] ---> "id=admin&password=1234" ---> [서버]
                    ↑
            중간에서 훔쳐볼 수 있음! 👀

공용 와이파이에서 로그인할 때, 누군가 네트워크 패킷을 도청한다면? 여러분의 아이디와 비밀번호가 그대로 노출됩니다. 이것이 바로 Man-in-the-Middle(MITM) 공격의 시작입니다.

HTTPS는 이 문제를 해결하기 위해 TLS(Transport Layer Security) 프로토콜을 HTTP 위에 얹어, 데이터를 암호화합니다.


암호화의 두 가지 방식: 대칭키 vs 비대칭키

HTTPS를 이해하려면 먼저 암호화의 두 가지 핵심 개념을 알아야 합니다.

1. 대칭키 암호화 (Symmetric Key)

하나의 키로 암호화와 복호화를 모두 수행합니다.

암호화: "Hello" + [비밀키] → "X#@!2"
복호화: "X#@!2" + [비밀키] → "Hello"
  • 장점: 속도가 빠름 (실제 데이터 전송에 적합)
  • 단점: 키를 어떻게 안전하게 공유할 것인가? (핵심 문제!)

비유하자면, 같은 열쇠로 잠그고 여는 자물쇠와 같습니다. 문제는 그 열쇠를 상대방에게 어떻게 안전하게 전달하느냐입니다.

2. 비대칭키 암호화 (Asymmetric Key)

두 개의 키(공개키 + 개인키)를 사용합니다.

암호화: "Hello" + [공개키] → "X#@!2"
복호화: "X#@!2" + [개인키] → "Hello"
  • 공개키: 누구에게나 공개해도 됨 (암호화 전용)
  • 개인키: 오직 나만 가지고 있음 (복호화 전용)
[클라이언트]                              [서버]
    |                                        |
    |   "서버야, 공개키 좀 줘"                   |
    | -------------------------------------> |
    |                                        |
    |   "여기 내 공개키야"                       |
    | <------------------------------------- |
    |                                        |
    | "비밀 메시지" + [공개키] = "암호화됨"         |
    | -------------------------------------> |
    |                                        |
    |        "암호화됨" + [개인키] = "비밀 메시지"
  • 장점: 키 교환 문제 해결! 공개키는 훔쳐가도 상관없음
  • 단점: 속도가 느림 (대칭키 대비 약 100~1000배)

비유하자면, 누구나 편지를 넣을 수 있는 우체통(공개키)과 오직 집주인만 열 수 있는 열쇠(개인키)의 관계입니다.


TLS Handshake: 두 방식의 하이브리드

여기서 핵심 질문이 나옵니다.

"그럼 HTTPS는 대칭키와 비대칭키 중 뭘 사용하나요?"

정답은 둘 다 사용합니다!

  • 비대칭키: 처음에 '대칭키'를 안전하게 교환하는 용도
  • 대칭키: 실제 데이터를 빠르게 암호화/복호화하는 용도

이 과정을 TLS Handshake라고 부릅니다. 클라이언트와 서버가 "악수"를 통해 신뢰를 확인하고, 암호화 통신을 위한 준비를 마치는 과정입니다.

TLS Handshake 과정 (간소화 버전)

[클라이언트]                                        [서버]
    |                                                   |
    | 1. Client Hello                                   |
    |   (지원하는 암호화 방식 목록, 랜덤 데이터)                 |
    | ------------------------------------------------> |
    |                                                   |
    | 2. Server Hello                                   |
    |   (선택한 암호화 방식, 서버 인증서, 랜덤 데이터)            |
    | <------------------------------------------------ |
    |                                                   |
    | 3. 인증서 검증                                       |
    |   (CA를 통해 서버가 진짜인지 확인)                       |
    |                                                   |
    | 4. 대칭키 재료 전송                                   |
    |   (Pre-Master Secret을 서버 공개키로 암호화)            |
    | ------------------------------------------------> |
    |                                                   |
    | 5. 양쪽 모두 동일한 대칭키(Session Key) 생성             |
    |   (랜덤 데이터들 + Pre-Master Secret 조합)            |
    |                                                   |
    | 6. "Finished" - 이제부터 암호화 통신 시작!              |
    | <---------------------------------------------->  |

각 단계 상세 설명

1~2. Hello 단계

  • 클라이언트와 서버가 서로 지원하는 암호화 방식(Cipher Suite)을 협상합니다.
  • 각자 랜덤 데이터를 교환합니다. (나중에 대칭키 생성에 사용)

3. 인증서 검증

  • 서버는 자신의 신원을 증명하는 SSL/TLS 인증서를 보냅니다.
  • 클라이언트는 이 인증서가 신뢰할 수 있는 CA(Certificate Authority)에서 발급된 것인지 확인합니다.
  • 마치 신분증을 정부 기관에서 발급받았는지 확인하는 것과 같습니다.

4~5. 대칭키 생성

  • 클라이언트는 Pre-Master Secret이라는 랜덤 값을 생성합니다.
  • 이 값을 서버의 공개키로 암호화해서 전송합니다. (비대칭키 사용)
  • 오직 서버만 개인키로 이 값을 복호화할 수 있습니다.
  • 양쪽 모두 동일한 세션 키(대칭키)를 만들어냅니다.

6. 암호화 통신 시작

  • 이제부터 모든 데이터는 대칭키로 암호화되어 빠르게 전송됩니다.

면접관의 꼬리 질문

자, 이제 면접관의 깊이 있는 질문들에 대비해 봅시다.

Q1. "대칭키가 빠른데, 왜 비대칭키를 함께 사용하나요?"
A: "대칭키는 암호화/복호화 속도가 빠르지만, 키를 안전하게 공유하는 것이 어렵습니다. 반면 비대칭키는 공개키를 누구에게나 공개해도 되지만 속도가 느립니다. 따라서 TLS는 처음에 비대칭키로 대칭키를 안전하게 교환한 뒤, 이후 통신은 빠른 대칭키로 진행하는 하이브리드 방식을 사용합니다."

Q2. "CA(인증기관)는 왜 필요한가요?"
A: "공개키만으로는 서버가 '진짜 네이버'인지 '가짜 피싱 사이트'인지 구분할 수 없습니다. CA는 신뢰할 수 있는 제3자로서, 서버의 신원을 검증하고 인증서를 발급합니다. 브라우저는 미리 설치된 Root CA 목록을 통해 인증서의 유효성을 검증하여, MITM 공격을 방어합니다."

Q3. "HTTPS를 사용하면 성능이 떨어지나요?"
A: "과거에는 TLS Handshake 오버헤드로 인해 성능 저하가 있었습니다. 하지만 TLS 1.3에서는 Handshake가 1-RTT로 단축되었고, 세션 재개(Session Resumption) 시에는 0-RTT까지 가능합니다. 또한 HTTP/2와 HTTP/3은 HTTPS를 기본으로 요구하면서도 멀티플렉싱 등으로 오히려 성능을 개선했습니다."

Q4. "SSL과 TLS의 차이는 뭔가요?"
A: "SSL(Secure Sockets Layer)은 TLS의 전신입니다. SSL 3.0 이후 TLS 1.0으로 이름이 바뀌었고, 현재 SSL은 보안 취약점으로 인해 사용이 권장되지 않습니다. 하지만 관습적으로 'SSL 인증서', 'SSL/TLS'라는 표현이 혼용되고 있습니다. 실제로는 TLS 1.2 또는 TLS 1.3을 사용해야 안전합니다."


마무리

✅ HTTP는 평문 통신으로 도청과 변조에 취약합니다.
✅ HTTPS는 TLS 프로토콜을 통해 암호화된 통신을 제공합니다.
✅ TLS는 비대칭키로 대칭키를 교환하고, 대칭키로 데이터를 암호화하는 하이브리드 방식입니다.
CA 인증서를 통해 서버의 신원을 검증하여 MITM 공격을 방어합니다.

오늘 다룬 내용처럼, "HTTPS는 보안이 적용된 HTTP예요"라는 답변에서 한 걸음 더 나아가 동작 원리까지 설명할 수 있다면, 면접관에게 깊은 인상을 남길 수 있습니다. 이력서에 적힌 기술 스택 하나하나에서 이런 꼬리 질문들이 이어질 수 있다는 것, 알고 계시죠? QueryDaily는 여러분의 이력서를 분석하여 이런 깊이 있는 질문들을 매일 제공해 드립니다.


👉 팀그릿 더 알아보기


#HTTPS #TLS #SSL #네트워크 #보안 #백엔드면접 #CS기초

profile
우리는 당신의 가능성을 믿는 사람들입니다. '되는 사람'이 되는 방법을 이야기합니다.

2개의 댓글

comment-user-thumbnail
2025년 12월 26일

좋은 글 잘 보고 갑니다~!

답글 달기
comment-user-thumbnail
2025년 12월 30일

너무 좋네요 글 ~~

답글 달기