중간자 공격 (Man-in-the-Middle Attack, MITM)

중급보안수정일

중간자 공격(Man-in-the-Middle Attack, MITM 또는 MitM)은 공격자가 통신하는 두 당사자 사이에 몰래 끼어들어 오가는 데이터를 가로채고, 필요하면 조작한 뒤 원래 목적지로 전달하는 공격입니다. 목적은 트래픽 내용을 알아내거나, 공격 사실이 드러나지 않게 내용을 바꾸는 것입니다. 양쪽 당사자는 서로 직접 통신한다고 믿지만 실제로는 각자 공격자와 통신하고 있습니다.

작동 방식

  1. 경로 장악: 공격자는 통신 경로 한가운데에 자리를 잡습니다. 같은 네트워크에서 ARP 스푸핑으로 게이트웨이를 사칭하거나, DNS 응답을 위조해 사용자를 가짜 서버로 보내거나, 공용 장소에 가짜 Wi-Fi 접속점을 열어 두는 방식이 쓰입니다. 더 큰 규모에서는 BGP 경로 하이재킹으로 트래픽 자체를 우회시키기도 합니다.
  2. 키 바꿔치기: 암호화된 통신이라도 키 교환이 인증되지 않으면 공격자가 양쪽과 각각 따로 키를 교환해 둘 수 있습니다. 예를 들어 인증 없는 디피–헬먼 키 교환에서 공격자는 A와 한 키, B와 다른 키를 맞춘 뒤 메시지를 복호화했다가 다시 암호화해 전달합니다. 위조 인증서를 제시하거나 HTTPS 연결을 HTTP로 낮추는(SSL 스트리핑) 방식도 같은 원리입니다.
  3. 가로채기·조작·릴레이: 공격자는 단순히 엿들을 수도 있고 데이터를 변조할 수도 있으며, 결과를 원래 수신자에게 전달하므로 통신은 정상처럼 보입니다.

실제 사례

  • 공용 Wi-Fi 도청: 공격자가 사용자와 네트워크 사이에 끼어들어 암호화되지 않은 비밀번호와 개인 정보를 가로챕니다.
  • 이메일 가로채기: 공격자가 두 거래처 사이의 이메일에 접근해 청구서의 결제 계좌 정보를 바꾸면, 대금이 공격자의 계좌로 송금될 수 있습니다.
  • 스푸핑된 웹사이트: 사용자는 은행 웹사이트에 로그인한다고 생각하지만 실제로는 공격자가 꾸민 가짜 사이트에 로그인 정보를 입력하게 됩니다.

암호화폐에서의 중간자 공격

블록체인 트랜잭션은 개인 키로 서명되므로, 중간자가 서명된 트랜잭션의 내용을 바꾸면 서명이 깨져 노드가 거부합니다. 그래서 공격은 주로 서명 이전 단계, 즉 사용자가 보고 승인하는 정보를 노립니다.

  • 주소 바꿔치기: 공격자가 웹 페이지나 통신 내용을 조작해 사용자가 보는 입금 주소를 자신의 주소로 바꿉니다. 블록체인 송금은 되돌릴 수 없으므로 피해 회복이 어렵습니다. 복사한 입금 주소를 몰래 바꾸는 클립보드 악성코드도 같은 결과를 노립니다.
  • 프런트엔드·DNS 탈취: 탈중앙화 서비스의 도메인이나 웹 화면이 탈취되면, 스마트 계약은 그대로여도 사용자는 공격자가 만든 화면에서 자산 이전 권한을 승인하게 됩니다(이른바 드레이너).
  • 악성 RPC 노드: 지갑이 신뢰할 수 없는 RPC 엔드포인트에 연결되면 잔액이나 거래 정보가 조작되어 보일 수 있습니다.
  • 노드 간 경로 공격: 인터넷 경로(BGP)를 조작해 특정 노드의 트래픽을 우회시키면 블록 전파를 늦추거나 네트워크를 분할할 수 있다는 연구가 있습니다. 비트코인은 BIP 324로 노드 간 P2P 연결을 암호화해 수동적 도청과 일부 조작을 어렵게 했습니다.

방어

  • 인증된 암호화: TLS처럼 서버 인증서를 검증하는 프로토콜을 쓰고, 인증서 경고를 무시하지 않습니다. HSTS는 HTTP로의 강등을 막습니다.
  • 인증된 키 교환: 키 교환 값에 서명하거나 공개 키 지문을 별도 경로로 확인하거나 인증서를 고정(pinning)해 키 바꿔치기를 막습니다. 공개 키 암호를 쓰더라도 상대 공개 키가 진짜인지 확인하지 않으면 중간자 공격에 그대로 노출됩니다.
  • 독립 채널 확인: 하드웨어 지갑의 기기 화면에 표시된 받는 주소처럼, 조작될 수 없는 별도 경로로 중요한 정보를 대조합니다.
  • 접속 습관: 지갑과 거래소는 북마크한 공식 주소로만 접속하고, 의심스러운 Wi-Fi에서는 접속하지 않습니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.