8강 / 20강

도청 — 같은 와이파이에 앉은 사람

패킷 스니핑 · ARP 스푸핑 · 그래서 HTTPS

도청 — 같은 와이파이에 앉은 사람
암호화되지 않은 통신은 같은 네트워크의 누구나 읽을 수 있습니다.

6강에서 HTTPS 가 통신을 암호화한다고 했습니다. 그럼 암호화하지 않으면 정확히 무슨 일이 벌어질까요? 이번 강의는 도청을 직접 봅니다.

같은 카페 와이파이, 같은 사무실 랜 — 같은 네트워크에 있는 사람은 남의 트래픽을 엿볼 수 있습니다. 어떻게 가능한지, 그리고 왜 HTTPS 가 그걸 막는지 봅시다.

평문은 그대로 보입니다

먼저 tcpdump 로 우리 서버를 지나는 패킷을 들여다봅시다. 80 포트(http)와 443 포트(https)가 어떻게 다르게 보이는지 비교하는 게 핵심입니다.

GET 요청과 응답 본문이 글자 그대로 보입니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)
암호화되어 내용을 볼 수 없습니다 — 이것이 HTTPS 의 효과.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)

ARP 스푸핑 — '내가 게이트웨이다'라는 거짓말

그런데 공격자는 어떻게 남의 트래픽을 자기 쪽으로 끌어올까요? 여기서 ARP 의 약점이 등장합니다. ARP 는 "그 IP 주소 쓰는 사람 누구예요?"라고 네트워크에 묻는 규약인데, 인증이 없습니다. 아무나 "저요!" 하고 답할 수 있어요.

공격자가 "게이트웨이는 내 MAC 이야"라고 계속 방송하면, 같은 랜의 장비들이 인터넷으로 나가는 패킷을 공격자에게 보냅니다. 이것이 중간자(MITM)예요.

'게이트웨이는 내 MAC' 이라는 거짓 방송이 나갑니다.
🥷 공격자 브라우저 안에서 실행 (계산용)
한 MAC 이 두 IP 를 갖고 있으면 스푸핑입니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)
도청 실험실 — http vs https, 그리고 중간자가 무엇을 보는지
불러오는 중…

그래서, 어디서나 HTTPS

도청과 중간자를 막는 근본 방어는 암호화입니다. 공격자가 트래픽을 자기 쪽으로 끌어와도, 내용이 HTTPS 로 암호화돼 있으면 읽지도 바꾸지도 못해요. 게다가 인증서(6강) 덕분에 공격자가 가짜 서버로 위장해도 이름이 안 맞아 브라우저가 경고합니다.

ARP 스푸핑 자체를 줄이려면 스위치의 Dynamic ARP Inspection 같은 기능도 있지만, 현실적으로 가장 확실한 방어는 "어차피 다 암호화돼 있어서 훔쳐도 소용없게" 만드는 것입니다.

🤔 확인 문제
공격자가 ARP 스푸핑으로 내 트래픽을 전부 자기 쪽으로 끌어갔습니다. 하지만 나는 모든 사이트를 HTTPS 로만 씁니다. 공격자는?
🤔 확인 문제
ARP 스푸핑이 가능한 근본 원인은?