DMARC

[보안메일] DMARC, 도메인기반이메일인증


스팸, 피싱 등 의심스러운 이메일을 차단하기 위해 메일 서비스 업체들이 SPF와 DKIM 같은 기술을 적용하고 있지만, 그럼에도 사용자의 메일함에는 스팸이 쌓이고 있습니다. SPF와 DKIM로 해결되지 않는 상황이 있기 때문인데요.

발신자마다 다양한 메일 서비스를 이용하고 있고, 그만큼 메일을 보내는 환경도 다양합니다. 그러므로 SPF나 DKIM을 사용해 모든 메일의 인증 여부를 확인하는 것은 상당히 복잡한 작업입니다. 또한 메일이 반송되지 않는 한, 메일 발신자가 정상적으로 메일이 발송되었는지 확인하는데 제약이 있습니다. 이 문제를 해결하기 위해서는 발신자와 수신자가 서로 정보를 공유할 수 있어야 합니다.

DMARC(Domain-based Message Authentication, Reporting & Conformance)는 발신자가 자신의 메일이 SPF 및 DKIM에 의해 보호되고 있음을 나타내며, 수신자가 인증되지 않은 메일을 수신했을 때 수행할 작업을 알려주는 프로토콜입니다. DMARC를 사용하면 발신자는 인증에 실패한 메일에 대한 피드백을 얻을 수 있으며, 수신자는 메일의 인증 여부를 일관되게 평가할 수 있습니다. 또한 안전한 메시지 공유를 위해 발신자와 수신자가 해야 할 작업 프로세스를 최소화하고, 정상적인 메시지라는 것을 명확히 할 수 있습니다.

그러나 안타깝게도 국내에서 DMARC를 활용하는 사례는 많지 않습니다. 한국인터넷진흥원(KISA)에 따르면 미국 연방정부 기관의 87.2%가 DMARC 를 도입한 것과 달리 국내의 DMARC 적용률은 0.1% 그치고 있어 도입을 위한 노력이 필요합니다.

DMARC 작동 원리

DMARC 또한 SPF, DKIM과 같이 TXT 레코드를 도메인에 입력하여 적용합니다. DMARC는 SPF, DKIM 검사 결과 및 TXT 레코드 내용을 기반으로 메일 처리 방식을 결정합니다. 수신자에게 발송된 메일이 수신자가 발신자에 대해 알고 있는 내용과 일치하는지 검토한 후, 일치하지 않을 경우(non-aligned) DMARC에 포함된 메일 처리 방법에 따라 메일을 처리하는 것입니다.

예를 들어 수신자가 SPF, DKIM과 자체 스팸 필터를 가지고 있다면 메일 처리 프로세스는 다음과 같습니다.

출처: dmarc.org

DMARC 정책에 따라 인증을 통과한 메일은 수신자에게 전달되지만, 그렇지 않은 메일은 차단되며, 발신자에게는 리포트가 발송됩니다.

DMARC 레코드 예시는 다음을 참고하세요.

"v=DMARC1;p=reject;pct=100;rua=mailto:gabia@hiworks.com"

v, p, rua 같은 태그는 모두 목적을 가지고 있습니다. 내용을 해석하면 의심스러운 메일(non-aligned)에 대해 거부(반송)하며, 이에 관해 gabia@hiworks.com으로 리포트를 보낸다는 뜻입니다. ‘rua’를 ‘quarantine’으로 바꾸면 메일을 반송하는 것이 아닌, 스팸 폴더로 이동시킬 수 있습니다.

아래 DMARC 태그를 참고하여 정책을 정의할 수 있습니다.

태그설명예시
v프로토콜 버전v=DMARC1
pct 필터링 대상 메시지 비율(%) pct=20
rua DMARC 보고서를 수신할 메일 주소 rua=mailto:aggrep@example.com
p 도메인 정책: 의심스러운 메일을 처리하는 방법 p=quarantine
sp하위 도메인 정책 sp=reject
adkim메일 정보와 DKIM 서명의 일치 정도를 설정 adkim=s
aspf메일 정보와 SPF 서명의 일치 정도를 설정 aspf=r