조회수: 134

MOZILLA_PKIX_ERROR_MITM_DETECTED 해결

MOZILLA_PKIX_ERROR_MITM_DETECTED: 내 컴퓨터의 무언가가 TLS를 가로채는 것입니다. 백신 HTTPS 검사인지 실제 공격인지 3단계로 구분합니다. 무료 즉시 진단으로 바로 확인.

내 도메인에 이 문제가 있는지 지금 확인

무료, 가입 불필요. 이 가이드가 다루는 항목을 바로 검사하고 조치 방법을 알려드립니다.

Problem

Firefox가 Warning: Potential Security Risk Ahead와 코드 MOZILLA_PKIX_ERROR_MITM_DETECTED로 페이지를 차단합니다. 고발처럼 읽히고, 사실 고발이 맞습니다: Firefox는 이 연결의 인증서가 자기가 신뢰하는 공개 CA에서 발급된 게 아니며, 그 대체물이 TLS를 가로채는 무언가의 작품처럼 보인다고 말하는 것입니다. 서버의 진짜 인증서는 멀쩡합니다. 당신과 서버 사이의 무언가가 그것을 바꿔치기한 것입니다. 관건은 하나뿐입니다 — 그 무언가가 당신 자신의 백신인가, 아니면 실제 공격자인가.

Symptoms

  • 전체 화면 경고에 MOZILLA_PKIX_ERROR_MITM_DETECTED가 표시됩니다. 이건 Firefox의 구체적인 라벨이며, 같은 실패의 일반 버전은 SEC_ERROR_UNKNOWN_ISSUER입니다.
  • 한 사이트가 아니라 거의 모든 HTTPS 사이트에서 발생합니다. 이게 결정적 단서입니다. 한 사이트만 깨지면 서버 문제이고, 사이트를 옮겨 다녀도 따라오는 오류는 내 컴퓨터나 네트워크의 가로채기입니다.
  • 같은 컴퓨터의 Chrome·Edge에서는 같은 사이트가 정상적으로 열립니다.
  • 다른 네트워크의 Firefox(집 vs 회사)나 셀룰러 데이터의 휴대폰에서는 같은 사이트가 정상입니다.

MITM_DETECTED가 실제로 뜻하는 것

모든 HTTPS 연결은 인증서를 제시하고, Firefox는 그것을 리프 → 중간 → 신뢰된 루트로 자기 저장소의 CA까지 체인으로 이어야 합니다. 그 체인이 실패하면 Firefox는 보통 SEC_ERROR_UNKNOWN_ISSUER를 띄웁니다. 하지만 Firefox 61(2018)이 검사를 하나 추가했습니다: 연결이 실패하고 동시에, 문제의 루트가 운영체제 인증서 저장소를 읽었다면 검증됐을 것이라고 판단되면 — 그건 로컬 가로채기의 지문입니다. 어떤 제품이 자기 CA를 OS에 설치해 트래픽을 재서명하고 있는 것이죠. Firefox는 그 경우에 MOZILLA_PKIX_ERROR_MITM_DETECTED라는 이름을 붙여, 당신이 유령 같은 “unknown issuer”를 디버깅하지 않게 합니다.

“detected(감지됨)“라는 단어가 많은 일을 합니다. Firefox는 해커가 연결에 있다고 주장하는 게 아니라, 실패의 형태가 중간자와 일치한다고 주장하는 것입니다. 백신 HTTPS 검사가 정확히 그 형태를 만듭니다. 회사 검사 프록시도 그렇습니다. 악성 CA를 든 실제 공격자도 그렇습니다. 이 오류는 그 모호함에 대해 정직하고, 그것을 해소하는 게 당신의 일입니다.

Top 3 Causes

  1. 백신 HTTPS/SSL 검사 - 압도적으로 가장 흔한 원인. Avast/AVG(“웹 실드”), ESET(“SSL/TLS 프로토콜 필터링”), Kaspersky, Bitdefender(“Scan SSL”) 같은 제품이 HTTPS를 복호화해 검사한 뒤 자기 CA로 재암호화합니다. 그 CA는 OS 저장소로 들어가고 — Chrome은 신뢰하지만 Firefox는 신뢰하지 않아 가로채기를 표시합니다.
  2. 회사 MITM / 검사 프록시 - 관리되는 네트워크에서는 보안 장비(Zscaler, Palo Alto, SSL bump를 켠 Squid 프록시 등)가 네트워크 경계에서 똑같은 일을 합니다. 그 루트는 도메인 가입된 컴퓨터의 OS 저장소엔 배포되지만 Firefox의 NSS 저장소엔 없어서 Firefox만 반발합니다.
  3. 실제 공격자 또는 예상치 못한 루트 - 드물지만, 이 경고가 존재하는 이유입니다. 악성코드, 악의적 Wi-Fi 캡티브 포털, 또는 당신이 모르게 설치된 CA가 이걸 유발할 수 있습니다. 무엇이 트래픽을 가로채는지 설명할 수 없다면, 이걸 형식이 아니라 실재하는 가능성으로 취급하세요.

Diagnose with DechoNet

  • SSL 검사는 서버가 실제로 서빙하는 인증서를 우리 네트워크에서 — 당신의 백신·프록시를 거치지 않고 — 검사합니다. SSL 검사가 해당 도메인에 대해 유효하고 공개 신뢰되는 인증서를 보여주는데 당신의 Firefox는 다른 발급자를 보여준다면, 바꿔치기가 서버가 아니라 당신 쪽에서 로컬로 일어나고 있음을 확인한 것입니다.
  • HTTP 검사는 인증서 문제와 무관하게 사이트 자체가 도달 가능하고 정상임을 확인해, 있지도 않은 서버 장애를 쫓지 않게 합니다.

Resolution Checklist

  • 범위를 확인하세요. 거의 모든 HTTPS 사이트에서 뜨나요, 한 사이트만인가요? 여러 사이트 → 내 컴퓨터나 네트워크의 가로채기(이 가이드). 한 사이트 → 서버 체인 문제이고 SEC_ERROR_UNKNOWN_ISSUER가 더 맞습니다.
  • 신뢰하기 전에 가로채는 주체를 식별하세요. Firefox 경고에서 고급을 클릭하고 발급자 이름을 읽으세요 — 보통 제품 이름이 그대로 나옵니다(예: “Avast Web/Mail Shield Root”, “ESET SSL Filter CA”, “Kaspersky Anti-Virus Personal Root”). 그 이름이 무엇이 설치됐는지 알려줍니다.
  • SSL 검사로 교차 확인하세요. 우리 SSL 검사가 같은 도메인에 대해 정상적인 공개 CA(Let’s Encrypt, DigiCert, Google Trust Services)를 보여준다면, 당신의 Firefox가 보는 발급자 이름이 가로채는 주체입니다 — 로컬이라는 증거입니다.
  • 당신의 백신이고 알아본다면, HTTPS/SSL 검사 기능을 끄거나 또는 그대로 두고 Firefox가 신뢰하게 하세요: about:configsecurity.enterprise_roots.enabledtrue로 → 재시작. 그러면 Firefox가 백신 루트가 이미 있는 OS 저장소를 읽습니다.
  • 회사 프록시라면, 기업 루트는 IT가 Firefox에 배포해야 합니다(기업 정책 또는 security.enterprise_roots.enabled). 이건 개별 컴퓨터가 아니라 엔드포인트 관리 작업입니다.
  • 무엇이 가로채는지 식별할 수 없다면 — 설치한 적 없는 백신, 관리 네트워크도 아님 — 멈추고 공격 가능성으로 취급하세요. 네트워크를 끊고, 악성코드를 검사하고, OS 인증서 저장소에서 모르는 CA를 확인하세요.

When to Escalate

  • SSL 검사가 깨끗한 공개 인증서를 보여주는데도 백신·기업 루트를 배제한 뒤에도 Firefox가 여전히 MITM_DETECTED를 보고한다면, OS 루트 저장소를 직접 확인하세요(Windows는 certmgr.msc, macOS는 키체인 접근). 원치 않는 가로채기 주체가 숨는 곳이 거기입니다.
  • 회사 네트워크에서는 클릭해서 넘어가지 말고 IT에 문의하세요. 검사가 정책이라면 그들이 루트를 올바르게 배포합니다. 사이트마다 “위험을 감수함”을 클릭하는 것은 실제 가로채기를 잡으려고 만든 유일한 통제를 무시하도록 당신을 길들입니다.
  • 가로채는 주체가 당신이 설치한 적 없는 무언가로 밝혀지면, 인증서 성가심이 아니라 침해로 취급하세요 — 이 오류의 존재 이유가 바로 그 경우를 보이게 하는 것입니다.

관련 도구

관련 가이드

가이드 공유

[Ad] Guide Detail Inline
← 전체 가이드 보기