DMARC란 무엇인가요?
DMARC는 RFC 7489에 정의되어 있습니다. SPF와 DKIM을 기반으로 두 가지 핵심 기능을 추가합니다. 하나는 인증되지 않은 메일을 처리하는 방법(모니터링, 격리, 또는 거부)을 수신자에게 지시하는 정책이며, 다른 하나는 귀하의 도메인으로 누가 메일을 보내고 인증 통과 여부가 어떠한지에 대한 XML 보고서를 받는 보고 메커니즘입니다.
무엇보다 DMARC는 **정렬(Alignment)** 개념을 추가합니다. 이메일의 가시적인 "From" 헤더에 있는 도메인이 SPF 또는 DKIM에 의해 인증된 도메인과 일치해야 합니다. 이를 통해 공격자가 From 헤더는 귀하의 도메인으로 속이면서, 다른 도메인으로 SPF/DKIM 인증을 통과하는 것을 방지합니다.
DMARC가 왜 필요한가요?
1헤더 From 보호
SPF와 DKIM만으로는 가시적인 From 주소를 보호할 수 없습니다. DMARC는 정렬을 통해 이 간극을 메웁니다.
2강제 정책 시행
인증 실패 메일을 모니터링할지, 스팸으로 보낼지, 아니면 아예 거부할지 직접 결정합니다.
3요약 보고(RUA)
매일 발송되는 XML 보고서를 통해 도메인 발신 IP 전체와 인증 성공/실패율을 파악할 수 있습니다.
4포렌식 보고(RUF)
실패 보고서를 통해 개별 실패 메시지의 일부 정보를 받아 조사할 수 있습니다.
5Google/Yahoo 필수 요건
2024년 2월부터 대량 발신자는 Gmail/Yahoo 수신함에 도달하기 위해 최소 p=none 이상의 DMARC 정책이 필요합니다.
6브랜드 보호
브랜드를 사칭한 피싱 이메일이 고객에게 전달되는 것을 방지합니다.
DMARC 작동 원리 — 단계별 안내
`_dmarc.yourdomain.com`에 정책과 보고서 주소를 지정한 DMARC TXT 레코드를 게시합니다.
메시지가 수신 서버에 도착하면 SPF 및 DKIM 검사가 독립적으로 수행됩니다.
DMARC 정렬 테스트: 인증된 도메인(SPF 또는 DKIM)이 헤더 From 도메인과 일치하는지 확인합니다.
SPF+정렬 또는 DKIM+정렬 중 하나라도 통과하면 해당 메시지는 DMARC를 통과합니다.
둘 다 실패하면 수신자는 귀하의 정책(none: 전달, quarantine: 스팸함, reject: 반송)을 적용합니다.
수신자는 인증 데이터를 수집하여 지정된 주소로 요약(RUA) 또는 포렌식(RUF) 보고서를 보냅니다.
DMARC 레코드 구문
v=DMARC1; p=quarantine; pct=100; sp=reject;
rua=mailto:dmarc-reports@yourdomain.com;
ruf=mailto:dmarc-failures@yourdomain.com;
adkim=s; aspf=s; fo=1태그 참조
v=DMARC1— 버전, 필수p=— 도메인에 대한 정책sp=— 하위 도메인에 대한 정책pct=— 정책이 적용될 실패 메일의 백분율(%)rua=— 요약 보고서 수신처 (mailto:)ruf=— 포렌식 보고서 수신처 (mailto:)adkim=— DKIM 정렬: r=relaxed(완화), s=strict(엄격)aspf=— SPF 정렬: r=relaxed(완화), s=strict(엄격)fo=— 실패 보고 옵션 (0, 1, d, s)ri=— 보고 간격(초 단위, 기본값 86400)세 가지 DMARC 정책
DMARC 정렬 설명
일반적인 DMARC 실패 및 해결 방법
SPF 정렬 실패
봉투 From(리턴 패스) 도메인이 헤더 From과 일치하지 않는 경우입니다. 자체 리턴 패스를 사용하는 서비스(ESP)에서 흔히 발생합니다.
DKIM 정렬 실패
DKIM 서명의 d= 도메인이 가시적인 From 도메인과 일치하지 않는 경우입니다. ESP가 귀하의 도메인으로 서명하도록 설정하세요.
RUA 주소 누락
rua= 태그가 없으면 보고서를 받을 수 없고 가시성을 확보할 수 없습니다. 항상 하나 이상의 보고 주소를 포함하세요.
하위 도메인 미적용
`sp=reject`를 추가하여 정책을 하위 도메인까지 확장하거나, 하위 도메인별로 별도의 DMARC 레코드를 게시하세요.
자주 묻는 질문(FAQ)
DMARC(도메인 기반 메시지 인증, 보고 및 일치)는 SPF 및 DKIM과 함께 작동하는 중요한 이메일 인증 프로토콜입니다. 인증에 실패한 이메일을 처리하는 방법을 수신 서버에 지시하여 권한이 없는 제3자가 도메인을 사칭하는 것을 방지하고 브랜드 평판을 보호합니다.
DMARC 체커는 레코드가 올바르게 구성되어 DNS 설정에 게시되었는지 확인합니다. 활성 정책(가급적 p=reject)을 유지함으로써 Google이나 Outlook 같은 ISP에 이메일의 정당성을 알리고, 스팸으로 분류되거나 차단될 확률을 크게 낮춥니다.
'quarantine'(격리)은 실패한 이메일을 수신자의 스팸함으로 보내도록 하고, 'reject'(거부)는 이메일을 완전히 차단하여 수신자에게 전달되지 않도록 합니다. 두 정책 모두 도메인 보안의 핵심 단계입니다.
'From' 헤더의 도메인이 SPF 또는 DKIM으로 검증된 도메인과 일치하는 것을 의미합니다. 정렬이 맞지 않으면 SPF/DKIM 인증을 통과하더라도 DMARC 실패가 발생할 수 있습니다.
레코드의 'rua' 태그에 유효한 mailto: 주소가 있는지 확인하세요. 또한 DNS 전파 여부와 수신 이메일 주소가 외부 보고서를 받을 수 있게 설정되어 있는지 확인이 필요합니다.
DNS의 TTL 설정에 따라 다르지만, 전 세계적으로 전파되는 데 보통 몇 분에서 최대 48시간이 소요됩니다.