Что такое DMARC?
DMARC (Domain-based Message Authentication, Reporting & Conformance) представляет собой протокол аутентификации электронной почты, который проверяет, согласуется ли домен, аутентифицированный с помощью SPF или DKIM, с доменом в поле From сообщения. Владелец домена может опубликовать запрошенную политику обработки сообщений, не прошедших проверку DMARC, и запросить сводные отчёты или отчёты о сбоях отдельных сообщений.
Почему DMARC необходим
SPF и DKIM аутентифицируют идентификаторы отправителя. Сами по себе они не проверяют, согласуется ли аутентифицированный идентификатор с доменом в адресе From, и не определяют, как владелец домена предпочитает обрабатывать сообщения, не прошедшие проверку.
DMARC решает эту задачу следующим образом:
- Указание политики обработки: None, quarantine или reject для сообщений, не прошедших DMARC
- Проверка согласования: как минимум один аутентифицированный SPF- или DKIM-идентификатор должен согласовываться с доменом From
- Запрос отчётов: сводные отчёты и отчёты о сбоях отдельных сообщений позволяют понять наблюдаемые результаты аутентификации
Как работает 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: домен MAIL FROM, проверенный SPF, или домен HELO, если MAIL FROM отсутствует
- Согласование DKIM: домен d= в действительной подписи DKIM
Без согласования 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 | Рекомендуется (необязательно) | Запрошенная политика обработки почты, не прошедшей проверку DMARC | p=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 | Нет | Режим согласования DKIM | adkim=s (strict) or adkim=r (relaxed) |
| aspf | Нет | Режим согласования SPF | aspf=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]
Проанализируйте отчёты, чтобы выявить:
- Легитимные службы отправки, в которых отсутствует SPF/DKIM
- Несанкционированных отправителей (подделка)
- Проблемы согласования
Этап 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 ежедневно или чаще. В отчётах обобщаются наблюдаемые потоки сообщений, поэтому доступность и охват зависят от серверов, отправляющих отчёты:
- Объём электронной почты
- Доли успешных и неуспешных проверок SPF, DKIM и DMARC
- IP-адреса отправителей
- Организации получателей
Отчёты о сбоях (ruf)
Отчёты о конкретных сообщениях могут включать заголовки или содержимое сообщения. Не все принимающие серверы отправляют такие отчёты, часто из-за соображений конфиденциальности:
- Подробности сбоя аутентификации
Обработка отчётов
Сводные отчёты DMARC имеют формат XML, и их может быть трудно читать. Используйте такие сервисы, как:
- DMARC Analyzer
- Dmarcian
- Valimail
- Postmark DMARC
Проверка 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 согласование, запрошенную политику обработки и отчётность. Проверьте источники отправки и отчёты, прежде чем запрашивать более строгую обработку.