DMARC (аутентификация сообщений на основе домена)

Электронная почта и безопасность
DMARC проверяет, согласуется ли домен, аутентифицированный с помощью SPF или DKIM, с доменом в адресе From электронного письма, а затем позволяет владельцу домена опубликовать предпочтительную обработку и запросить отчёты.
← Вернуться к глоссарию

Что такое DMARC?

DMARC (Domain-based Message Authentication, Reporting & Conformance) представляет собой протокол аутентификации электронной почты, который проверяет, согласуется ли домен, аутентифицированный с помощью SPF или DKIM, с доменом в поле From сообщения. Владелец домена может опубликовать запрошенную политику обработки сообщений, не прошедших проверку DMARC, и запросить сводные отчёты или отчёты о сбоях отдельных сообщений.

Почему DMARC необходим

SPF и DKIM аутентифицируют идентификаторы отправителя. Сами по себе они не проверяют, согласуется ли аутентифицированный идентификатор с доменом в адресе From, и не определяют, как владелец домена предпочитает обрабатывать сообщения, не прошедшие проверку.

DMARC решает эту задачу следующим образом:

Как работает DMARC

1. Отправитель публикует политику DMARC в DNS (TXT-запись по адресу _dmarc.domain.com)

2. Отправляется электронное письмо с From: [email protected]

3. Получатель проверяет SPF и DKIM

4. Получатель проверяет согласование: соответствует ли аутентифицированный домен домену в заголовке From?

5. Решение об обработке: получатель учитывает запрошенную политику и другие сигналы

6. Могут быть отправлены отчёты: принимающие серверы могут отправлять запрошенные сводные отчёты или отчёты о сбоях отдельных сообщений

Согласование DMARC

DMARC требует согласования: домен в заголовке From должен согласовываться как минимум с одним аутентифицированным идентификатором в соответствии с режимом relaxed или strict, заданным в записи:

Без согласования SPF или DKIM могут пройти проверку, а DMARC завершится ошибкой. DMARC напрямую защищает от конкретных видов подделки с использованием точного домена From. Он не обнаруживает визуально похожие домены или злоупотребление отображаемым именем отправителя.

Формат записи DMARC

Записи DMARC являются TXT-записями по адресу _dmarc.yourdomain.com:

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

Теги DMARC

ТегОбязателенОписаниеПример
vДаВерсияv=DMARC1
pРекомендуется (необязательно)Запрошенная политика обработки почты, не прошедшей проверку DMARCp=none/quarantine/reject
ruaНетURI сводного отчётаrua=mailto:[email protected]
rufНетURI отчёта о сбое отдельного сообщенияruf=mailto:[email protected]
tНетТестовый режим политикиt=y or t=n
spНетЗапрошенная политика для существующих поддоменовsp=reject
npНетЗапрошенная политика для несуществующих поддоменовnp=reject
adkimНетРежим согласования DKIMadkim=s (strict) or adkim=r (relaxed)
aspfНетРежим согласования SPFaspf=s or aspf=r

Тег pct является историческим. Текущий стандарт DMARC больше не использует его для применения политики к определённому проценту сообщений, не прошедших проверку. Тег p рекомендуется, но необязателен; в остальном действительная запись без него обрабатывается как p=none.

Политики DMARC

p=none: Не задаёт предпочтительного способа обработки сообщений, не прошедших проверку. Владельцы доменов часто используют эту политику при анализе отчётов.
v=DMARC1; p=none; rua=mailto:[email protected]
p=quarantine: Запрашивает, чтобы получатели считали сообщения, не прошедшие DMARC, подозрительными.
v=DMARC1; p=quarantine; rua=mailto:[email protected]
p=reject: Запрашивает, чтобы получатели отклоняли сообщения, не прошедшие DMARC. Получатели учитывают это предпочтение вместе с другими сигналами, поэтому оно не гарантирует отклонение.
v=DMARC1; p=reject; rua=mailto:[email protected]

Путь внедрения DMARC

Этап 1: Мониторинг (p=none)

Начните с мониторинга, чтобы понять экосистему электронной почты:

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

Проанализируйте отчёты, чтобы выявить:

Этап 2: Карантин (p=quarantine)

После аутентификации легитимных источников:

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

Проверяйте отчёты и подтверждайте, что легитимная почта проходит аутентификацию, прежде чем выбирать более строгую политику. Текущий стандарт DMARC не определяет поэтапное внедрение по проценту сообщений.

Этап 3: Отклонение (p=reject)

Запросите отклонение сообщений, не прошедших DMARC:

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

Отчёты DMARC

Сводные отчёты (rua)

Принимающим серверам рекомендуется отправлять сводные отчёты в формате XML ежедневно или чаще. В отчётах обобщаются наблюдаемые потоки сообщений, поэтому доступность и охват зависят от серверов, отправляющих отчёты:

Отчёты о сбоях (ruf)

Отчёты о конкретных сообщениях могут включать заголовки или содержимое сообщения. Не все принимающие серверы отправляют такие отчёты, часто из-за соображений конфиденциальности:

Обработка отчётов

Сводные отчёты DMARC имеют формат XML, и их может быть трудно читать. Используйте такие сервисы, как:

Проверка DMARC

Аутентифицированный API DomScan Email Authentication стоит 3 кредита за домен и возвращает запись DMARC и разобранные теги.

dig _dmarc.example.com TXT
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email-auth?domain=example.com"

# Check dmarc.record and dmarc.tags in the JSON response

Распространённые проблемы DMARC

Отчёты не приходят: убедитесь, что адрес rua может принимать большие письма, поскольку некоторые провайдеры фильтруют их. Легитимные письма не проходят проверку: проверьте конфигурацию SPF/DKIM для всех служб отправки; убедитесь в наличии согласования. Сбои у сторонних служб: многие службы требуют настроить собственный DKIM для согласования DMARC.

DMARC добавляет к SPF и DKIM согласование, запрошенную политику обработки и отчётность. Проверьте источники отправки и отчёты, прежде чем запрашивать более строгую обработку.

Применяйте эти знания на практике

Используйте API DomScan для проверки доступности доменов, их состояния и многого другого.