DMARC(도메인 기반 메시지 인증)

이메일 및 보안
SPF 및 DKIM을 기반으로 하는 이메일 인증 프로토콜로, 도메인 소유자가 인증되지 않은 이메일을 어떻게 처리할지 지정할 수 있게 합니다.
← 용어집으로 돌아가기

DMARC란?

DMARC(도메인 기반 메시지 인증, 보고 및 준수)는 SPF와 DKIM을 기반으로 하는 이메일 인증 프로토콜입니다. 도메인 소유자는 인증에 실패한 메시지를 수신 서버가 어떻게 처리할지 정책으로 게시하고 인증 결과를 보고받을 수 있습니다.

DMARC가 중요한 이유

SPF와 DKIM만으로는 실패한 메시지를 어떻게 처리할지 수신자에게 알려 주지 못합니다. 공격자가 SPF/DKIM 없이 위조 메일을 보내도 수신 서버가 따를 지침이 없습니다.

DMARC는 다음 방식으로 이 문제를 해결합니다.

DMARC의 작동 방식

1. 발신자가 정책 게시: DNS의 _dmarc.domain.com에 TXT 레코드로 DMARC 정책을 게시합니다.

2. 이메일 발송: From: [email protected]으로 메일을 보냅니다.

3. 수신자가 SPF와 DKIM 확인: 두 인증 방식을 검사합니다.

4. 수신자가 정렬 확인: 인증된 도메인이 From 헤더와 일치하는지 확인합니다.

5. 정책 적용: DMARC 레코드의 none, quarantine, reject 정책을 적용합니다.

6. 보고서 발송: 지정된 주소로 집계 보고서를 보냅니다.

DMARC 정렬

DMARC의 정렬은 From 헤더 도메인이 다음 중 하나와 일치해야 한다는 뜻입니다.

정렬이 없으면 SPF와 DKIM은 통과해도 DMARC는 실패합니다.

DMARC 레코드 형식

DMARC 레코드는 _dmarc.yourdomain.com에 있는 TXT 레코드입니다.

_dmarc.example.com.    IN    TXT    "v=DMARC1; p=reject; rua=mailto:[email protected]"

DMARC 태그

태그필수 여부설명예시
v버전v=DMARC1(버전 식별자)
p정책p=none/quarantine/reject(처리 방식)
rua아니요집계 보고서 URIrua=mailto:[email protected](보고 주소)
ruf아니요포렌식 보고서 URIruf=mailto:[email protected](실패 보고 주소)
pct아니요정책 적용 비율pct=100(적용 비율)
sp아니요하위 도메인 정책sp=reject(하위 도메인 거부)
adkim아니요DKIM 정렬 모드adkim=s (strict) 또는 adkim=r (relaxed)
aspf아니요SPF 정렬 모드aspf=s 또는 aspf=r(정렬 방식)

DMARC 정책

p=none: 모니터링만 하며 실패한 메시지에 조치하지 않습니다.
v=DMARC1; p=none; rua=mailto:[email protected]
p=quarantine: 실패한 메시지를 스팸 또는 정크 폴더로 보냅니다.
v=DMARC1; p=quarantine; rua=mailto:[email protected]
p=reject: 실패한 메시지를 완전히 거부합니다.
v=DMARC1; p=reject; rua=mailto:[email protected]

DMARC 적용 단계

1단계: 모니터링(p=none)

이메일 생태계를 파악하기 위해 모니터링부터 시작합니다.

v=DMARC1; p=none; rua=mailto:[email protected]

2~4주 동안 보고서를 분석해 정상 발신 서비스, 승인되지 않은 발신자(스푸핑), 정렬 문제를 확인합니다.

2단계: 격리(p=quarantine)

정상적인 발신처를 인증한 뒤 다음과 같이 설정합니다.

v=DMARC1; p=quarantine; pct=10; rua=mailto:[email protected]

처음에는 pct=10으로 10%만 격리하고 점차 비율을 높입니다.

3단계: 거부(p=reject)

완전한 보호를 적용합니다.

v=DMARC1; p=reject; rua=mailto:[email protected]

DMARC 보고서

집계 보고서(rua)

모든 메일의 인증 결과를 보여 주는 일일 XML 보고서입니다.

포렌식 보고서(ruf)

개별 실패 보고서입니다(개인정보 보호 때문에 모든 수신자가 보내지는 않습니다).

보고서 처리

원시 DMARC 보고서는 XML이라 읽기 어렵습니다. DMARC 보고서를 해석하려면 DMARC Analyzer, Dmarcian, Valimail, Postmark DMARC 같은 분석 서비스를 사용할 수 있습니다.

DMARC 확인

dig _dmarc.example.com TXT
curl "https://domscan.net/v1/health?domain=example.com"

# Returns hasDMARC status

일반적인 DMARC 문제

보고서가 오지 않음: rua 주소가 대용량 이메일을 받을 수 있는지 확인합니다. 정상 메일이 실패함: 모든 발신 서비스의 SPF/DKIM 구성과 정렬을 확인합니다. 제3자 서비스가 실패함: 많은 서비스에서 DMARC 정렬을 위한 사용자 지정 DKIM 설정이 필요합니다.

DMARC는 이메일 인증의 마지막 단계입니다. SPF와 DKIM이 올바르게 작동한 뒤 DMARC를 적용하세요.

이 지식을 활용하세요

DomScan의 API를 사용하여 도메인 가용성, 상태 등을 확인하세요.