DMARC의 정의와 정책 및 설정 방법에 대해 알아보도록 하겠습니다.
- 목차
- DMARC이란 무엇이고 왜 필요한가?
- SPF와 DKIM이란 무엇인가?
- 정합성(Alignment)이란 무엇인가?
- DMARC 정책과 보고서란 무엇인가?
- DMARC 정책을 설정하는 방법
- DMARC 보고서를 해석하고 관리하기 위한 도구나 서비스는 어떤 것이 있나요?
- 결론
DMARC이란 무엇이고 왜 필요한가?
이메일은 인터넷에서 가장 많이 사용되는 통신 수단 중 하나입니다. 하지만 이메일은 보안 측면에서 많은 문제점을 가지고 있습니다. 예를 들어, 공격자는 이메일 발송자의 도메인을 위조하여, 수신자에게 신뢰할 수 있는 발송자로 위장할 수 있습니다. 이를 스푸핑(Spoofing)이라고 합니다. 스푸핑은 이메일 기반의 사기와 남용의 주요 원인이며, 피싱(Phishing), 랜섬웨어(Ransomware), 스팸(Spam) 등의 공격에 이용될 수 있습니다. 스푸핑은 발송자와 수신자 모두에게 피해를 입힐 수 있습니다. 발송자는 자신의 도메인의 신뢰도가 떨어지고, 수신자는 민감한 정보를 유출하거나 악의적인 작업을 수행하도록 유도될 수 있습니다.
이러한 문제를 해결하기 위해, 이메일 발송자를 인증하고 스푸핑과 피싱을 방지하기 위한 이메일 프로토콜이 개발되었습니다. 그 중 하나가 DMARC입니다. DMARC는 Domain-based Message Authentication, Reporting and Conformance의 약자로, SPF(Sender Policy Framework)와 DKIM(DomainKeys Identified Mail)이라는 두 가지 이메일 인증 방식과 함께 작동합니다. DMARC는 도메인 소유자가 DNS에 TXT 레코드로 정책을 게시하여, 이메일 수신자에게 SPF나 DKIM 검증에 실패한 메시지를 어떻게 처리할지 지시할 수 있습니다. 또한, DMARC는 수신자가 발송자에게 검증에 성공하거나 실패한 메시지에 대한 보고서를 보낼 수 있도록 합니다.
DMARC는 이메일 발송자와 수신자가 협력하여 이메일의 진위 여부를 판단하고, 스푸핑과 피싱으로부터 도메인을 보호할 수 있도록 도와줍니다. DMARC는 이메일의 스팸 여부나 사기 여부를 직접 판단하지는 않지만, SPF나 DKIM 뿐만 아니라 정합성(Alignment)도 검사하여, 이메일 인증의 정확도를 높여줍니다.
SPF와 DKIM이란 무엇인가?
DMARC는 SPF와 DKIM이라는 두 가지 이메일 인증 방식과 함께 작동합니다. SPF와 DKIM은 각각 다른 방법으로 이메일 발송자의 도메인을 인증합니다.
- SPF는 Sender Policy Framework의 약자로, DNS에 발송 가능한 IP 주소를 목록으로 등록하여, 이메일 발송자의 도메인을 인증합니다. SPF는 이메일의 “Mail From” 주소를 기준으로 검증합니다. “Mail From” 주소는 이메일의 발송자를 식별하고, 이메일의 전송에 문제가 발생했을 때 반환 알림을 보내는 주소입니다. “Mail From” 주소는 이메일의 헤더에 있는 “Return-Path” 필드에 표시되며, 일반적으로 이메일 애플리케이션에서는 보이지 않습니다.
- DKIM은 DomainKeys Identified Mail의 약자로, 이메일에 디지털 서명을 추가하여, 이메일 발송자의 도메인과 이메일의 무결성을 인증합니다. DKIM은 이메일의 “From” 주소를 기준으로 검증합니다. “From” 주소는 이메일의 작성자를 식별하고, 이메일 애플리케이션에서 보이는 주소입니다. DKIM은 이메일의 헤더와 내용을 암호화하여, 이메일이 전송 중에 변조되지 않았음을 증명합니다.
SPF와 DKIM은 각각 다른 이메일 주소를 기준으로 검증하기 때문에, 둘 다 통과하려면 두 주소가 일치하거나 관련되어 있어야 합니다. 그러나, 실제로는 두 주소가 다를 수도 있습니다. 예를 들어, 메일링 리스트나 포워딩 서비스를 사용하는 경우, “Mail From” 주소와 “From” 주소가 다를 수 있습니다. 이런 경우, SPF나 DKIM 검증에 실패할 수 있습니다. 이를 방지하기 위해, DMARC는 SPF와 DKIM의 정합성(Alignment)을 검사합니다.
정합성(Alignment)이란 무엇인가?
정합성(Alignment)은 DMARC에서 SPF와 DKIM의 검증 결과가 이메일의 “From” 주소와 일치하는지 확인하는 과정입니다. 정합성은 엄격(strict) 또는 완화(relaxed)로 설정할 수 있습니다.
- 엄격한 정합성은 SPF 인증 도메인과 DKIM 서명 도메인이 “From” 주소의 도메인과 정확히 일치해야 한다는 것을 의미합니다. 예를 들어, “From” 주소가 “user@example.com”이라면, SPF 인증 도메인과 DKIM 서명 도메인도 “example.com”이어야 합니다.
- 완화한 정합성은 SPF 인증 도메인과 DKIM 서명 도메인이 “From” 주소의 최상위 조직 도메인(Organizational Domain)과 일치하면 된다는 것을 의미합니다. 조직 도메인은 공개 DNS 접미사 목록을 확인하고, 다음 DNS 레이블을 추가하여 찾을 수 있습니다. 예를 들어, “user@sub.example.com”의 조직 도메인은 “example.com”입니다.
정합성을 검사하는 이유는 SPF와 DKIM이 검증하는 이메일 주소와 수신자가 보는 이메일 주소가 일치하거나 관련되어 있음을 보장하기 위해서입니다. 정합성을 통과하면, DMARC 검증에 성공하고, 정합성을 통과하지 못하면, DMARC 검증에 실패합니다.
DMARC 정책과 보고서란 무엇인가?
DMARC는 도메인 소유자가 DNS에 TXT 레코드로 정책을 게시하여, 이메일 수신자에게 SPF나 DKIM 검증에 실패한 메시지를 어떻게 처리할지 지시할 수 있습니다. DMARC 정책은 다음과 같은 세 가지 옵션을 제공합니다.
- none: 검증에 실패한 메시지에 대해 아무 조치도 취하지 않고 보고만 합니다. 이 옵션은 DMARC을 처음 도입할 때, 도메인의 이메일 트래픽을 모니터링하고 분석하기 위해 사용합니다.
- quarantine: 검증에 실패한 메시지를 스팸 폴더로 이동하거나 표시합니다. 이 옵션은 DMARC을 점진적으로 적용할 때, 스푸핑과 피싱으로부터 도메인을 부분적으로 보호하기 위해 사용합니다
- reject: 검증에 실패한 메시지를 거부하거나 삭제합니다. 이 옵션은 DMARC을 완전히 적용할 때, 스푸핑과 피싱으로부터 도메인을 최대한 보호하기 위해 사용합니다.
DMARC 정책은 도메인 소유자가 원하는 비율과 모드로 설정할 수 있습니다. 예를 들어, pct=10; p=quarantine; sp=reject; adkim=s; aspf=r; 라는 DMARC 정책은 다음과 같은 의미를 가집니다.
- pct=10: DMARC 정책을 10%의 메시지에만 적용합니다.
- p=quarantine: 검증에 실패한 메시지를 스팸 폴더로 이동하거나 표시합니다.
- sp=reject: 부속 도메인(subdomain)에 대해서는 검증에 실패한 메시지를 거부하거나 삭제합니다.
- adkim=s: DKIM 정합성 모드를 엄격(strict)으로 설정합니다.
- aspf=r: SPF 정합성 모드를 완화(relaxed)로 설정합니다.
- DMARC는 이메일 수신자에게 발송자에게 검증에 성공하거나 실패한 메시지에 대한 보고서를 보낼 수 있도록 합니다. DMARC 보고서에는 다음과 같은 두 가지 유형이 있습니다.
- 집계 보고서(Aggregate Report): 일정 기간 동안 도메인으로 발송된 모든 메시지의 SPF, DKIM, DMARC 검증 결과를 통계적으로 요약한 보고서입니다. 집계 보고서는 XML 형식으로 제공되며, 도메인 소유자가 지정한 메일 주소로 정기적으로 발송됩니다.
- 실패 보고서(Failure Report): SPF, DKIM, DMARC 검증에 실패한 개별 메시지에 대한 상세한 정보를 제공하는 보고서입니다. 실패 보고서는 AFRF(Authentication Failure Report Format) 또는 IODEF(Incident Object Description Exchange Format) 형식으로 제공되며, 도메인 소유자가 지정한 메일 주소로 즉시 발송됩니다.
- DMARC 보고서를 통해 도메인 소유자는 자신의 도메인을 사용하는 이메일 발송자와 수신자의 상태를 모니터링하고 분석할 수 있습니다. DMARC 보고서를 해석하고 관리하기 위해, 다양한 도구와 서비스를 사용할 수 있습니다.
DMARC 정책을 설정하는 방법
- 먼저 SPF(Sender Policy Framework)와 DKIM(DomainKeys Identified Mail)을 설정해야 합니다. SPF는 DNS에 발송 가능한 IP 주소를 목록으로 등록하여, 이메일 발송자의 도메인을 인증합니다. DKIM은 이메일에 디지털 서명을 추가하여, 이메일 발송자의 도메인과 이메일의 무결성을 인증합니다. SPF와 DKIM의 설정 방법은 각 도메인 호스팅 서비스에 따라 다를 수 있으므로, 해당 서비스의 문서나 고객 지원을 참고하십시오.
- 다음으로 DMARC TXT 레코드를 생성하고 DNS에 추가해야 합니다. DMARC TXT 레코드는 도메인 소유자가 이메일 수신자에게 SPF나 DKIM 검증에 실패한 메시지를 어떻게 처리할지 지시하는 정책을 포함합니다. 또한, DMARC TXT 레코드는 수신자가 발송자에게 검증에 성공하거나 실패한 메시지에 대한 보고서를 보낼 수 있도록 합니다. DMARC TXT 레코드는 다음과 같은 형식을 따릅니다.
v=DMARC1; p=none/quarantine/reject; pct=percentage; rua=mailto:address; ruf=mailto:address; adkim=s/r; aspf=s/r; fo=0/1/d/s; rf=afrf/iodef; ri=interval; sp=none/quarantine/reject- v: DMARC 버전을 나타냅니다. 현재는 DMARC1만 사용 가능합니다.
- p: 도메인의 DMARC 정책을 나타냅니다. none은 검증에 실패한 메시지에 대해 아무 조치도 취하지 않고 보고만 합니다. quarantine는 검증에 실패한 메시지를 스팸 폴더로 이동하거나 표시합니다. reject는 검증에 실패한 메시지를 거부하거나 삭제합니다.
- pct: DMARC 정책을 적용할 메시지의 비율을 나타냅니다. 0에서 100 사이의 정수로 표시하며, 기본값은 100입니다.
- rua: DMARC 집계 보고서를 받을 메일 주소를 나타냅니다. 메일 주소는 mailto: 접두사를 붙여야 하며, 여러 개의 주소를 쉼표로 구분할 수 있습니다. 보고서를 받을 주소의 도메인은 반드시 DMARC TXT 레코드를 게시한 도메인과 동일하거나 하위 도메인이어야 합니다.
- ruf: DMARC 실패 보고서를 받을 메일 주소를 나타냅니다. 메일 주소는 mailto: 접두사를 붙여야 하며, 여러 개의 주소를 쉼표로 구분할 수 있습니다. 보고서를 받을 주소의 도메인은 반드시 DMARC TXT 레코드를 게시한 도메인과 동일하거나 하위 도메인이어야 합니다.
- adkim: DKIM 정합성(Alignment) 모드를 나타냅니다. s는 엄격(strict) 모드로, DKIM 서명 도메인과 From: 필드 도메인이 정확히 일치해야 합니다. r은 완화(relaxed) 모드로, DKIM 서명 도메인과 From: 필드 도메인이 최상위 조직 도메인(Organizational Domain)이 일치하면 됩니다. 기본값은 r입니다.
- aspf: SPF 정합성(Alignment) 모드를 나타냅니다. s는 엄격(strict) 모드로, SPF 인증 도메인과 From: 필드 도메인이 정확히 일치해야 합니다. r은 완화(relaxed) 모드로, SPF 인증 도메인과 From: 필드 도메인이 최상위 조직 도메인(Organizational Domain)이 일치하면 됩니다. 기본값은 r입니다.
- fo: DMARC 실패 보고서를 생성할 조건을 나타냅니다. 0은 SPF와 DKIM이 모두 실패한 경우에만 보고서를 생성합니다. 1은 SPF나 DKIM 중 하나라도 실패한 경우에 보고서를 생성합니다. d는 DKIM이 실패한 경우에 보고서를 생성합니다. s는 SPF가 실패한 경우에 보고서를 생성합니다. 여러 개의 조건을 쉼표로 구분할 수 있습니다. 기본값은 0입니다.
- rf: DMARC 실패 보고서의 형식을 나타냅니다. afrf는 인증 실패 보고서 형식을 의미하며, iodef는 사고 교환 형식을 의미합니다. 기본값은 afrf입니다.
- ri: DMARC 집계 보고서의 발송 간격을 나타냅니다. 초 단위로 표시하며, 기본값은 86400(하루)입니다.
- sp: 도메인의 부속 도메인(subdomain)에 대한 DMARC 정책을 나타냅니다. none, quarantine, reject 중 하나를 선택할 수 있습니다. 이 태그가 없으면 부속 도메인은 도메인의 DMARC 정책을 따릅니다.
- DMARC TXT 레코드를 생성하고 DNS에 추가한 후에는 DMARC 검증 툴을 사용하여 레코드가 올바르게 작동하는지 확인할 수 있습니다4 또한, DMARC 보고서를 통해 도메인을 사용하는 이메일 발송자와 수신자의 상태를 모니터링하고 분석할 수 있습니다.
DMARC 보고서를 해석하고 관리하기 위한 도구나 서비스는 어떤 것이 있나요?
DMARC 보고서를 해석하고 관리하기 위한 도구나 서비스는 다양하게 있습니다. 예를 들면, 다음과 같은 것들이 있습니다.
- PowerDMARC: PowerDMARC는 DMARC 보고서를 사람이 읽을 수 있는 형식으로 변환하고, 필터링, 정렬, 시각화, 다운로드 등의 기능을 제공하는 클라우드 기반 SaaS 플랫폼입니다. PowerDMARC는 DMARC 집계 보고서와 포렌식 보고서 모두를 지원하며, PGP 암호화를 통해 보고서의 개인 정보 보호를 보장합니다. PowerDMARC는 또한 SPF, DKIM, BIMI, MTA-STS, TLS-RPT 등의 다른 이메일 인증 프로토콜도 제공합니다.
- DMARC Analyzer: DMARC Analyzer는 DMARC 보고서를 분석하고, 이메일 인증 상태를 모니터링하고, DMARC 정책을 관리하고, 이메일 전달률을 개선하기 위한 온라인 도구입니다. DMARC Analyzer는 DMARC 집계 보고서를 지원하며, 대시보드, 알림, 보고서 생성기 등의 기능을 제공합니다. DMARC Analyzer는 무료 플랜과 유료 플랜을 모두 제공합니다.
- MxToolbox: MxToolbox는 DMARC 보고서를 생성하고, 검증하고, 해석하고, 관리하기 위한 온라인 도구입니다. MxToolbox는 DMARC 집계 보고서를 지원하며, DMARC 레코드 생성기, DMARC 레코드 검사기, DMARC 보고서 리더 등의 기능을 제공합니다. MxToolbox는 무료 플랜과 유료 플랜을 모두 제공합니다.
결론
DMARC는 SPF와 DKIM이라는 두 가지 이메일 인증 방식과 함께 작동하여, 이메일 발송자를 인증하고 스푸핑과 피싱을 방지하기 위한 이메일 프로토콜입니다. DMARC는 도메인 소유자가 DNS에 TXT 레코드로 정책을 게시하여, 이메일 수신자에게 SPF나 DKIM 검증에 실패한 메시지를 어떻게 처리할지 지시할 수 있습니다. 또한, DMARC는 수신자가 발송자에게 검증에 성공하거나 실패한 메시지에 대한 보고서를 보낼 수 있도록 합니다. DMARC는 이메일 발송자와 수신자가 협력하여 이메일의 진위 여부를 판단하고, 스푸핑과 피싱으로부터 도메인을 보호할 수 있도록 도와줍니다.