SSL MITM 공격의 작동 방식과 인증서 검증 방어 전략

SSL/TLS 통신을 가로채는 MITM 공격의 흐름과 인증서 위조 조건, 핀닝·HSTS·TLS 설정을 통한 방어 방안을 정리한다.

2026-08-14 · 최초 발행 2025-05-27

HTTPS 보호가 끊기는 지점

SSL(Secure Socket Layer)과 TLS(Transport Layer Security)는 네트워크 통신을 암호화하는 프로토콜이다. 브라우저의 자물쇠 아이콘과 HTTPS 표시는 적용 여부를 확인하는 대표적인 신호다.

이 통신 계층은 세 가지 역할을 맡는다. 전송 내용을 제3자가 읽지 못하게 하는 암호화, 이동 중인 데이터의 변조를 막는 무결성, 그리고 통신 상대의 신원을 확인하는 인증이다. SSL/TLS 연결은 보통 다음과 같은 핸드셰이크를 거쳐 준비된다.

ServerClientServerClientClient Hello (지원 암호화 방식 전달)Server Hello (암호화 방식 선택, 인증서 전달)서버 인증서 검증대칭키 생성 및 전송 (서버 공개키로 암호화)암호화 통신 준비 완료암호화된 데이터 통신

이 과정에서 인증서 검증이 제대로 이뤄지지 않으면, 암호화 자체가 존재해도 상대방을 잘못 신뢰하는 문제가 생긴다.

통신 양쪽에 끼어드는 중간자

MITM(Man-In-The-Middle) 공격은 통신 당사자 사이에 제3자가 들어가 데이터를 엿보거나 바꾸는 공격 기법이다. 공격자는 클라이언트에는 서버인 것처럼, 서버에는 클라이언트인 것처럼 보이게 만들어 통신 내용을 탈취한다.

원래 통신 경로변조된 통신변조된 통신클라이언트서버공격자

중간자 위치를 만들기 위해 쓰이는 방식은 여러 가지다. ARP Spoofing은 로컬 네트워크에서 MAC 주소를 속여 트래픽을 중간에 가져오고, DNS Spoofing은 DNS 응답을 조작해 사용자를 가짜 사이트로 보낸다. 신뢰할 수 있는 무선 네트워크를 가장하는 Wi-Fi 스푸핑도 같은 목적에 쓰일 수 있다. SSL MITM은 이런 선행 장악을 바탕으로 SSL/TLS 통신까지 가로채려는 고급 공격 기법이다.

가짜 인증서가 개입하는 흐름

SSL MITM에서는 공격자가 클라이언트와 서버 사이에 각각 별도의 암호화 통신을 만든다. 클라이언트가 가짜 인증서를 받아들이는 순간, 공격자는 데이터를 복호화한 뒤 확인하거나 변조하고 다시 암호화해 서버로 전달할 수 있다.

서버공격자클라이언트서버공격자클라이언트클라이언트가 가짜 인증서 수락할 경우Client Hello (원래 서버로 전송 의도)Client Hello (클라이언트 대신 전송)Server Hello (인증서 포함)가짜 인증서를 포함한 Server Hello대칭키 전송 (공격자 공개키로 암호화)새 대칭키 전송 (서버 공개키로 암호화)암호화된 데이터데이터 복호화, 확인, 재암호화재암호화된 데이터응답 데이터변조 가능한 응답 데이터

공격이 성립하려면 네트워크 트래픽을 통제할 수 있어야 하며, 가짜 인증서를 생성·설치하고 클라이언트의 인증서 경고를 무시하거나 우회해야 한다. ARP 스푸핑이나 DNS 스푸핑은 첫 번째 조건을 만드는 데 활용될 수 있다.

공격과 점검에 쓰이는 도구

SSLstrip은 HTTPS 연결을 HTTP로 다운그레이드하는 방식으로 공격에 사용된다. Burp Suite는 프록시 기능을 제공하는 웹 애플리케이션 보안 테스트 도구이며, mitmproxy는 오픈소스 TLS/HTTP 프록시다. Wireshark는 네트워크 패킷 분석에, Ettercap은 네트워크 중간자 공격과 콘텐츠 필터링에 사용된다.

예를 들어 공격자가 카페 와이파이 네트워크를 제어한 뒤 DNS 스푸핑으로 유명 은행 사이트 접속 트래픽을 빼돌리고, 가짜 인증서로 SSL 세션을 중간에서 차단할 수 있다. 이 경우 로그인 정보 탈취와 세션 하이재킹으로 이어질 수 있다.

사건과 조직 내 HTTPS 검사

2011년 DigiNotar 인증서 유출 사건에서는 해커가 네덜란드 인증기관 DigiNotar 시스템에 침투해 구글, 야후 등 주요 사이트에 대한 가짜 인증서를 발급했다. 이란 내 Gmail 사용자 30만 명 이상이 공격 영향을 받았다.

2017년에는 이집트 ISP가 사용자 트래픽을 Coinhive 암호화폐 채굴 스크립트로 리다이렉트한 MITM 공격 사례가 있었다. 광고 수익 창출을 위해 국가 수준의 MITM 공격이 수행된 사례다.

반대로 기업 환경에서는 Blue Coat, Forcepoint 등의 모니터링 도구로 직원 HTTPS 트래픽을 검사하는 경우도 있다. 이는 합법적인 MITM 기술 활용에 해당할 수 있지만, 프라이버시와 보안 모니터링 사이의 문제가 남는다.

인증서와 전송 정책으로 막는 방법

인증서 핀닝은 앱이나 브라우저에 특정 서비스의 인증서 정보를 미리 저장해 두는 방식이다. 예상한 인증서와 실제 인증서가 다르면 연결을 차단한다. Android 설정 예시는 다음과 같다.

// 네트워크 보안 구성 XML (res/xml/network_security_config.xml)
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <pin-set expiration="2022-01-01">
            <pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
            <!-- 백업 핀 -->
            <pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
        </pin-set>
    </domain-config>
</network-security-config>

HSTS(HTTP Strict Transport Security)는 웹 서버가 브라우저에게 HTTPS만 사용하도록 지시하는 보안 헤더다.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

max-age는 브라우저가 HTTPS 사용 정책을 기억하는 시간(초)이며, includeSubDomains는 모든 하위 도메인에도 정책을 적용한다. preload는 브라우저 HSTS 프리로드 목록에 포함하는 옵션이다.

인증서 검증 측면에서는 더 엄격한 신원 확인 절차를 거치는 EV(Extended Validation) 인증서 사용, 인증서 폐기 상태를 실시간으로 확인하는 OCSP(Online Certificate Status Protocol) 스테이플링, 브라우저 기본 인증서 저장소만 신뢰하는 설정을 검토할 수 있다.

클라이언트는 브라우저 보안 경고를 무시하지 않아야 하며, VPN으로 안전한 네트워크 터널을 구성하고 공용 Wi-Fi 사용 시 추가로 주의할 필요가 있다. Wireshark 같은 네트워크 모니터링 도구도 사용할 수 있다.

서버에서는 현재 TLS 1.3 사용이 권장된다. 취약한 암호화 알고리즘을 비활성화하고, Perfect Forward Secrecy를 지원하는 암호화 스위트를 사용하며, 적절한 키 길이와 강력한 암호화 알고리즘을 적용해야 한다.

허가된 검사와 불법 감청의 경계

SSL MITM 기술은 기업 네트워크 모니터링, 보안 감사와 취약점 테스트, 침투 테스트와 보안 연구에 활용될 수 있다. 그러나 사용자 동의 없이 트래픽을 감청하는 행위는 대부분 국가에서 불법이다.

기업이 네트워크를 모니터링할 때는 명확한 정책과 고지가 필요하다. 보안 테스트 역시 적절한 허가와 정해진 범위 안에서 수행해야 한다.

국내에서는 정보통신망법 제49조가 정보통신망 침해행위를 금지하고, 개인정보보호법은 개인정보의 불법 수집을 금지한다. 통신비밀보호법은 불법 감청을 금지한다.

인증 체계가 향하는 방향

양자 컴퓨터에 대비한 새로운 암호화 알고리즘으로 양자 암호화가 개발되고 있다. TLS 1.3은 보안과 성능을 개선하고 핸드셰이크를 단순화해 MITM 공격 난이도를 높인다.

인증서 투명성(Certificate Transparency)은 모든 인증서를 공개 로그에 기록해 가짜 인증서 탐지를 쉽게 한다. DNSSEC는 DNS 스푸핑 방지를 위한 DNS 보안 확장이며, Zero Trust 아키텍처는 모든 사용자와 디바이스를 잠재적 위협으로 간주하는 보안 모델이다.

SSL/TLS는 인터넷 통신 보안의 핵심이지만 MITM 공격으로부터 완전히 안전하지는 않다. 방어 기법은 공격 기술의 변화에 맞춰 발전해야 하며, 다중 레이어 보안 접근법(Defense in Depth)이 필요하다. 사용자, 개발자, 시스템 관리자 모두 최신 보안 동향과 취약점 정보를 지속적으로 모니터링해야 한다.

SSL/TLS중간자 공격인증서 보안네트워크 보안HTTPS