소개
이 문서에서는 DMARC와 관련된 SPF(Sender Policy Framework) 및 DKIM(DomainKeys Identified Mail) 정렬 요건과 함께 일반 DMARC(Domain-based Message Authentication, Reporting and Conformance) 아키텍처 개념에 대해 설명합니다.
용어
이 섹션에서는 이 문서에서 사용되는 일부 주요 용어에 대해 설명하고 이에 대한 정의를 제공합니다.
- EHLO/HELO - RFC 5321에 정의된 대로 SMTP 세션을 초기화하는 동안 SMTP 클라이언트의 ID를 제공하는 명령입니다.
- From 헤더 - From: 필드는 메시지의 작성자를 지정합니다. 일반적으로 RFC 5322에 정의된 대로 표시 이름(메일 클라이언트에서 최종 사용자에게 표시하는 것)과 함께 로컬 부분 및 도메인 이름이 포함된 이메일 주소(예: "John Doe" <johndoe@example.com>)가 포함됩니다.
- MAIL FROM - SMTP 세션이 시작될 때 MAIL 명령에서 파생되며 RFC5321에 정의된 대로 발신자 ID를 제공합니다. 또한 봉투 발신자, 반환 경로 또는 반송 주소로 널리 알려져 있습니다.
DMARC - 식별자 정렬
DMARC는 DKIM 및 SPF가 인증한 항목을 From 헤더에 나열된 항목과 연결합니다. 이 작업은 정렬로 수행됩니다. 정렬하려면 SPF 및 DKIM에서 인증한 도메인 ID가 최종 사용자에게 표시되는 이메일 주소의 도메인과 일치해야 합니다.
식별자가 무엇이고 DMARC와 관련하여 식별자가 중요한 이유부터 살펴보겠습니다.
식별자
식별자는 인증할 도메인 이름을 식별합니다.
DMARC와 관련된 식별자:
- SPF:
SPF는 SMTP 대화의 MAIL FROM 또는 EHLO/HELO 부분 중 하나 또는 둘 다에 나타나는 도메인을 인증합니다. 이러한 도메인은 서로 다른 도메인일 수 있으며 일반적으로 최종 사용자에게 표시되지 않습니다.
- DKIM:
DKIM은 d= 태그 내의 서명에 첨부된 서명 도메인을 인증합니다.
이러한(SPF 및 DKIM) 식별자는 From 헤더에서 파생된 도메인 식별자에 대해 인증됩니다. From 헤더 도메인은 메시지 발신자에 대한 가장 일반적인 MUA(Mail User Agent) 필드이며 최종 사용자가 메시지 소스(발신자)를 식별하는 데 사용되므로 From 헤더가 악용의 주요 대상이 됩니다.
주의: DMARC는 유효한 From 헤더에서만 오용을 보호할 수 있습니다.
DMARC는 다음에 대해 작동할 수 없습니다.
- 잘못된 형식의 RFC 5322 헤더, 부재 또는 반복
- 규정준수 위반 헤더(검증되지 않음)
- 헤더에 도메인 ID가 두 개 이상인 경우(*)
따라서 호환되지 않는 형식이 잘못된 헤더가 있는 메시지를 식별하고 메시지를 표시하여 비 DMARC 적격 헤더로 표시할 수 있는 방법을 구현하려면 DMARC 이외의 프로세스가 있어야 합니다.
(*) DMARC는 헤더에서 단일 도메인 ID를 추출해야 합니다. 헤더에 이 헤더보다 많은 이메일 주소가 있는 경우 대부분의 DMARC 구현에서 이 헤더를 건너뜁니다. 둘 이상의 도메인 ID를 가진 처리 헤더는 DMARC 사양에서 범위 외로 명시됩니다.
Cisco ESA가 둘 이상의 도메인 ID를 탐지할 수 있는 경우 메일 로그에 적절한 메시지를 남깁니다.
(Machine esa.lab.local) (SERVICE)> grep -i "verification skipped" mail_logs
Tue Oct 16 14:13:52 2018 Info: MID 2003 DMARC: Verification skipped (Sending domain could not be determined)
식별자 정렬
식별자 정렬은 SPF 및/또는 DKIM으로 인증된 도메인과 From 헤더 간의 관계를 정의합니다. 정렬은 SPF 및/또는 DKIM을 성공적으로 확인한 후 추가로 충족해야 하는 일치 프로세스입니다. DMARC 인증 프로세스에서는 SPF 또는 DKIM에서 사용하는 식별자(도메인 ID) 중 하나 이상을 From 헤더 주소의 도메인 부분과 정렬해야 합니다.
DMARC에는 두 가지 정렬 모드가 도입되었습니다.
- strict 모드에서는 도메인 이름 간의 정확한 일치(정렬)가 필요합니다.
- 완화된 모드에서는 동일한 도메인의 하위 도메인 허용
메시지에 메일 목록 또는 잘못된 액터가 사용하는 도메인을 포함하여 모든 도메인의 유효한 서명이 포함될 수 있으므로 식별자 정렬이 필요합니다. 따라서 단지 유효한 서명을 하는 것만으로는 저자 도메인의 진정성을 추론할 수 없다.
DKIM 정렬
DKIM 도메인 식별자는 DKIM 시그니처에서 d= 태그를 검토하여 얻으며, DKIM 시그니처를 성공적으로 확인하기 위해 From 헤더 도메인과 비교됩니다.
예를 들어, 메시지는 도메인 d=blog.cisco.com을 대신하여 서명될 수 있으며, 이는 도메인 blog.cisco.com을 서명자로 식별합니다. DMARC는 이 도메인을 사용하여 From 헤더의 도메인 부분(예: noreply@cisco.com)과 비교합니다. 이러한 식별자 간의 정렬은 strict 모드에서는 실패하지만 relaxed 모드에서는 통과됩니다.
참고: 단일 이메일에는 여러 DKIM 서명이 포함될 수 있으며, DKIM 서명이 정렬되어 확인되면 DMARC "pass"로 간주됩니다.
SPF 정렬
SPF(spfv1) 메커니즘은 다음에서 제공되는 도메인 식별자를 인증합니다.
- MAIL FROM ID(MAIL FROM 명령)
- HELO/EHLO ID(HELO/EHLO 명령)
MAIL FROM 도메인 ID는 기본적으로 인증을 시도합니다. HELO 도메인 ID는 바운스 메시지와 같이 MAIL FROM ID가 비어 있는 메시지에 대해서만 DMARC에서 인증됩니다.
일반적인 예는 From 헤더(noreply@cisco.com)에 있는 것과 비교하여 다른 MAIL FROM 주소(noreply@blog.cisco.com)로 메시지를 보내는 경우입니다. noreply@blog.cisco.com의 MAIL FROM 도메인 ID 부분은 완화 모드에서 noreply@cisco.com의 From 헤더 도메인에 맞게 정렬되지만,차단 모드에서는 정렬되지 않습니다.
정렬 모드 태그
DMARC 정렬 모드는 adkim 및 aspf 정렬 모드 태그를 사용하여 DMARC 정책 레코드에서 정의할 수 있습니다. 이러한 태그는 DKIM 또는 SPF 식별자 정렬에 필요한 모드를 나타냅니다.
Mode(모드)는 relaxed(완화됨) 또는 strict(엄격함)로 설정할 수 있으며 태그가 없는 경우 relaxed(완화됨)가 기본값입니다. tag-value 아래에 다음과 같이 설정할 수 있습니다.
참조