중간자 공격(MITM)이란?

"내가 이 서버와 대화하고 있다"는 믿음은 무엇이 보증해 주는지, 그 보증이 무너진 실제 사건과 방어 장치를 개념 중심으로 살펴봅니다.

한눈에 보기

중간자 공격(MITM)은 통신하는 두 쪽 사이에 제3자가 끼어들어 내용을 엿보거나 바꾸는 공격의 총칭입니다. 이 글은 공격 방법이 아니라 개념과 방어를 다룹니다. 실행 절차나 도구 사용법은 적지 않습니다. 핵심은 "상대가 맞는지 확인하는 장치(인증서)"와 "내용을 가리는 장치(암호화)"가 어떻게 이 공격을 막고, 그 장치가 어디서 무너질 수 있는가입니다.

아래 카드는 정의 → 대표 유형 → 방어 순으로 이어집니다.

🕵️

중간자 공격(MITM)이란

통신하는 두 사람이 서로 직접 대화한다고 믿는 사이, 공격자가 몰래 그 사이에 끼어들어 내용을 엿보거나 조작하는 공격 방식입니다.

MITM(Man-in-the-Middle) 공격은 클라이언트와 서버 사이의 통신 경로 어딘가에 공격자가 자리를 잡고, 양쪽 모두는 상대방과 직접 통신하고 있다고 착각하게 만드는 방식입니다. 공격자는 오가는 데이터를 그대로 엿볼 수도 있고, 원한다면 내용을 슬쩍 바꿔서 전달할 수도 있어 도청과 위·변조가 동시에 가능한 위험한 공격 형태로 꼽힙니다.

🔀

ARP 스푸핑

같은 내부 네트워크 안에서 공격자가 자신의 MAC 주소를 게이트웨이나 다른 기기의 것인 양 속여, 트래픽이 자신을 거쳐 가도록 유도하는 방식입니다.

ARP(주소 결정 프로토콜)는 원래 IP 주소를 MAC 주소로 바꿔주는 역할을 하는데, 별다른 인증 절차 없이 응답을 그대로 신뢰하는 특성이 있습니다. 공격자는 이 점을 악용해 위조된 ARP 응답을 뿌려 자신을 게이트웨이인 것처럼 속이고, 다른 기기들이 인터넷으로 나가는 트래픽을 자신을 거쳐 흐르게 만들 수 있습니다. 자세한 원리는 별도의 ARP 프로토콜 가이드에서 다루고 있습니다.

📶

가짜 와이파이(로그 AP·에빌 트윈)

카페나 공항의 정상 와이파이 이름과 똑같거나 비슷한 가짜 무선 공유기를 만들어두고, 여기에 접속한 사용자의 트래픽을 공격자가 직접 들여다보는 방식입니다.

공격자가 "Airport_Free_WiFi" 같은 익숙한 이름의 개방형 와이파이를 자신의 장비로 직접 만들어두면, 사람들은 진짜 공식 와이파이인 줄 알고 별다른 의심 없이 접속하게 됩니다. 일단 접속하고 나면 그 순간부터 오가는 모든 트래픽이 공격자의 장비를 거쳐가게 되므로, 암호화되지 않은 통신은 그대로 노출될 위험이 큽니다.

🧭

DNS 스푸핑

도메인 이름을 실제와 다른 IP 주소로 응답하도록 속여, 사용자가 정상 주소를 입력했는데도 공격자가 만든 가짜 사이트로 연결되게 만드는 방식입니다.

사용자가 브라우저에 정확한 사이트 주소를 입력하더라도, 그 주소를 IP로 바꿔주는 DNS 응답 자체가 위조되어 있다면 전혀 다른(공격자가 준비한) 서버로 연결될 수 있습니다. 이렇게 연결된 가짜 사이트가 로그인 화면 등을 진짜처럼 흉내 내고 있으면 사용자는 눈치채지 못한 채 계정 정보를 그대로 입력하게 될 위험이 있습니다.

📉

SSL 스트리핑

원래는 HTTPS로 연결되어야 할 통신을 공격자가 중간에서 암호화되지 않은 HTTP로 몰래 바꿔치기해, 사용자 모르게 평문 통신을 하게 만드는 방식입니다.

많은 웹사이트가 처음에는 HTTP로 접속을 시작한 뒤 HTTPS로 자동 전환되는 흐름을 갖고 있는데, 공격자는 이 전환 순간을 노려 사용자에게는 계속 HTTP로만 응답하고 자신은 실제 서버와 HTTPS로 통신하는 식으로 중간에서 암호화를 벗겨낼 수 있습니다. 이런 공격을 막기 위해 만들어진 것이 브라우저에게 "이 사이트는 항상 HTTPS로만 접속하라"고 미리 알려주는 HSTS(HTTP 엄격 전송 보안) 정책입니다.

🛡️

중간자 공격 방어 방법

브라우저의 인증서 경고를 절대 무시하지 않고, 공용 와이파이에서는 VPN을 사용하며, 공유기 암호화를 최신 방식(WPA2·WPA3)으로 유지하는 것이 기본적인 방어책입니다.

주소창의 자물쇠 표시나 인증서 오류 경고는 연결 대상이 맞는지를 알려주는 중요한 신호이므로 절대 그냥 넘기지 않는 습관이 중요합니다. 신뢰할 수 없는 공용 와이파이를 이용할 때는 VPN으로 트래픽 전체를 암호화하는 것이 안전하고, 집이나 회사 공유기는 오래된 암호화 방식 대신 WPA2 이상, 가능하다면 WPA3를 사용하는 것이 좋습니다. 계정에 2단계 인증까지 함께 설정해두면 설령 로그인 정보가 노출되더라도 피해를 한 단계 더 막을 수 있습니다.

방어 장치 비교

장치막아 주는 것한계
TLS 암호화경로상의 도청과 변조접속 상대가 가짜 서버면 가짜와 암호화 통신을 하게 됨
인증서 검증상대 서버의 도메인 신원 확인인증서를 발급하는 기관이 뚫리면 신뢰가 흔들림
HSTS(RFC 6797)HTTP로 낮추는 공격첫 방문에는 적용되지 않음(첫 사용 시 신뢰)
VPN신뢰할 수 없는 로컬 네트워크 구간VPN 업체 구간 이후는 별도 문제
2단계 인증비밀번호만 노출됐을 때의 피해실시간으로 중계되는 경우까지 모두 막지는 못함

실제 사례 1: DigiNotar 인증서 사건(2011)

네덜란드의 인증기관 DigiNotar는 2011년 침입 사고를 겪었고, 위키백과(공개 보고서 기반) 기준으로 구글 도메인용 와일드카드 인증서가 2011년 7월 10일 발급되었으며 이란에서 이를 이용한 중간자 공격이 있었던 것으로 정리됩니다. 이후 DigiNotar는 야후, 모질라, 워드프레스, 토르 프로젝트 등을 포함한 부정 발급 인증서가 있었음을 인정했고, 확인된 총수는 최소 531개로 서술됩니다. 네덜란드 정부가 의뢰한 Fox-IT 조사는 약 30만 명의 이란 지메일 사용자가 주된 표적이었다고 보고했습니다. 이 보고서는 2012년 10월 공개되었습니다. 2011년 8월 말 무렵 모질라와 마이크로소프트 등이 DigiNotar 루트를 신뢰 목록에서 제거했고, 9월 20일 파산 선고가 발표되었습니다. 크롬은 인증서 고정(pinning) 기능으로 가짜 구글 인증서를 탐지했지만 그 보호는 구글 도메인에 한정되었다고 합니다. 배울 점은 HTTPS의 자물쇠가 "인증서를 발급한 기관을 믿는다"는 전제 위에 서 있다는 것, 그리고 신뢰 목록에서 해당 기관을 빼는 조치가 최종 대응이 되었다는 점입니다.

실제 사례 2: SSL 스트리핑의 공개와 HSTS의 등장

위키백과 HSTS 문서에 따르면 SSL 스트리핑은 2009년 블랙햇 강연에서 Moxie Marlinspike가 공개적으로 소개했습니다. 그 대응책으로 널리 쓰이게 된 HSTS는 RFC 6797(2012년)로 표준화되었습니다. 서버는 HTTPS 응답에 Strict-Transport-Security 헤더를 실어 보내고, max-age에 적힌 초 동안 브라우저는 그 사이트를 HTTPS로만 접속합니다. 예시로 든 31536000초는 365일입니다. 브라우저에 내장된 HSTS preload 목록은 첫 방문의 빈틈을 줄여 주지만, 목록에 없는 사이트의 첫 방문은 여전히 이 보호 밖에 있습니다. 배울 점은 방어 장치마다 "어디까지 막고 어디부터는 못 막는지"가 정해져 있다는 것입니다.

일상에서 확인할 것

흔한 오해와 정정

한계와 더 알아볼 점

사건 수치(부정 발급 인증서 수, 표적 규모)는 시점과 출처에 따라 서술이 조금씩 달라질 수 있어, 이 글은 위키백과에 정리된 범위로 한정했습니다. 최신 브라우저 정책(예: 인증서 투명성)은 각 브라우저 공식 문서에서 확인하세요. 인증서의 구조는 SSL/TLS 인증서 가이드에서 이어 볼 수 있습니다.

공용 와이파이가 특히 위험한 이유

카페나 공항 같은 공용 와이파이에서 주의해야 할 점을 더 자세히 알고 싶다면 공용 와이파이 안전하게 이용하는 방법도 확인해보세요.

ARP 스푸핑의 원리가 궁금하다면

내부 네트워크에서 벌어지는 ARP 스푸핑의 동작 원리를 더 자세히 알고 싶다면 ARP(주소 결정 프로토콜)란?도 참고해보세요.

자주 묻는 질문

HTTPS로 접속하면 무조건 안전한가요?

HTTPS는 브라우저와 실제로 접속한 서버 사이의 통신 구간을 암호화해줍니다. 다만 사용자가 피싱 등으로 공격자가 준비한 가짜 사이트에 접속하게 된 경우라면, 그 가짜 사이트 자체가 정상적인 인증서를 갖추고 있을 수도 있으므로 HTTPS 여부와 별개로 주소창의 도메인 이름을 꼼꼼히 확인하는 습관도 함께 필요합니다.

공용 와이파이에서 중간자 공격 위험이 왜 더 큰가요?

불특정 다수가 같은 개방형 네트워크를 공유하기 때문에, 같은 네트워크 안의 누군가가 트래픽을 가로채거나 가짜 접속점을 만들어 끼어들기가 상대적으로 더 쉬운 환경이기 때문입니다.

브라우저의 인증서 경고는 왜 무시하면 안 되나요?

경고는 접속한 서버의 신원 확인이 실패했다는 신호입니다. 만료 같은 단순 문제일 수도 있지만 중간에 누군가 끼어든 경우와 화면만으로 구별하기 어렵기 때문에 중요한 정보는 입력하지 않는 편이 안전합니다.

HSTS를 쓰는 사이트는 첫 방문도 안전한가요?

아닙니다. 위키백과 문서가 지적하듯 보호는 보통 첫 방문 이후부터 적용됩니다(첫 사용 시 신뢰). 브라우저 내장 preload 목록에 등록된 사이트는 이 빈틈이 줄어듭니다.

이 글에 공격 방법은 나오지 않나요?

이 글은 개념과 방어만 다룹니다. 실행 절차나 도구 사용법은 악용 우려가 있어 적지 않았습니다.