0Pricing
Security+ Academy · Урок

Аутентификация электронной почты: SPF, DKIM и DMARC

Внедряйте и проверяйте политики Sender Policy Framework, DomainKeys Identified Mail и DMARC, предотвращающие подмену домена и фишинг.

«Аутентификация электронной почты: SPF, DKIM и DMARC» — бесплатный урок Security+ Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Security+ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Security+ Academy содержит 4 уроков всего.

Проблема подмены электронной почты

В базовом протоколе SMTP, разработанном в 1970-х годах, отсутствует встроенная аутентификация отправителя. Любой почтовый сервер может заявить, что отправляет письмо от имени любого домена — этот метод называется подменой электронной почты. Злоумышленники используют его для рассылки фишинговых писем, которые выглядят отправленными легитимными организациями (Вашим банком, Вашим CEO или известным поставщиком). Для решения этой проблемы были разработаны три стандарта аутентификации электронной почты на основе DNS: SPF, DKIM и DMARC. Каждый из них отвечает за отдельный аспект проблемы подмены, а лучше всего они работают вместе.

Sender Policy Framework (SPF)

SPF — это запись DNS TXT, в которой указано, какие почтовые серверы уполномочены отправлять электронную почту от имени домена. Когда принимающий почтовый сервер получает сообщение, якобы отправленное с example.com, он запрашивает запись SPF для example.com и проверяет, указан ли IP-адрес отправляющего сервера в списке. Если IP-адрес не авторизован, сообщение может быть помечено как спам или отклонено. SPF проверяет адрес From конверта (команду SMTP MAIL FROM), а не отображаемый пользователям заголовок From.

# SPF DNS TXT record for example.com
# Authorize Google Workspace + SendGrid + company IP
example.com.  TXT  'v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.10 -all'

# Mechanism meanings:
# include:  authorize another domain's SPF record
# ip4:      authorize specific IPv4 address/range
# ip6:      authorize specific IPv6 address
# -all      FAIL (reject) mail from non-listed sources
# ~all      SOFTFAIL (accept but mark as spam)
# ?all      NEUTRAL (no policy stated)

Ограничения SPF

У SPF есть два существенных ограничения. Во-первых, пересылка нарушает работу SPF: при пересылке электронной почты IP-адрес сервера пересылки отсутствует в записи SPF исходного домена, из-за чего проверка SPF завершается неудачей даже для легитимно пересланных писем. Во-вторых, SPF аутентифицирует только From конверта (невидимый пользователям), но не видимый в почтовых клиентах заголовок From. Злоумышленники по-прежнему могут подменить видимый заголовок From, используя при этом From конверта, успешно прошедший SPF, — поэтому одного SPF недостаточно. Эти пробелы устраняют DKIM и DMARC.

DomainKeys Identified Mail (DKIM)

DKIM добавляет к исходящим письмам криптографическую подпись. Отправляющий почтовый сервер использует закрытый ключ для подписи определённых заголовков и тела сообщения, добавляя заголовок DKIM-Signature. Открытый ключ публикуется в виде записи DNS TXT в поддомене селектора. Принимающие серверы получают открытый ключ и проверяют подпись, подтверждая, что письмо не было изменено при передаче и отправлено сервером, имеющим доступ к закрытому ключу. В отличие от SPF, подписи DKIM сохраняются при пересылке, поскольку передаются в заголовках электронной почты.

# DKIM DNS TXT record (selector: 'google')
google._domainkey.example.com.  TXT \
  'v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN...'

# DKIM-Signature header in email:
DKIM-Signature: v=1; a=rsa-sha256; d=example.com;
  s=google; h=from:to:subject:date;
  bh=<body_hash>; b=<signature>

# Verification:
# 1. Extract 'b=' (signature)
# 2. Fetch public key at google._domainkey.example.com
# 3. Verify signature over 'h=' headers + body hash

Селекторы DKIM и ротация ключей

DKIM использует селекторы, чтобы разрешить одновременное использование нескольких открытых ключей для одного домена. Это удобно при работе с несколькими почтовыми службами (Google Workspace и маркетинговая платформа) или при ротации ключей без перерывов в работе. Имя селектора включается в заголовок DKIM-Signature, чтобы принимающие серверы знали, какую запись DNS запрашивать. Организациям следует менять ключи DKIM ежегодно или при подозрении на компрометацию ключа. Длина ключа: рекомендуется использовать ключи RSA длиной не менее 2048 бит; ключи длиной 1024 бита считаются устаревшими и могут быть взломаны с помощью современных вычислительных ресурсов.

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

DMARC (аутентификация сообщений на основе домена, отчётность и соответствие требованиям) расширяет SPF и DKIM, добавляя проверку согласованности (домен в видимом заголовке From должен совпадать с доменом, аутентифицированным через SPF или DKIM) и политику, указывающую принимающим серверам, что делать с сообщениями, не прошедшими проверку. Политики DMARC бывают следующими: none (только мониторинг), quarantine (доставить в папку спама) или reject (не доставлять). DMARC также поддерживает агрегированные отчёты (RUA) и криминалистические отчёты (RUF), отправляемые владельцу домена, чтобы он видел, кто отправляет сообщения от его имени.

# DMARC DNS TXT record
_dmarc.example.com.  TXT \
  'v=DMARC1; p=reject; sp=reject; \
   pct=100; \
   rua=mailto:dmarc-reports@example.com; \
   ruf=mailto:forensic@example.com; \
   adkim=s; aspf=s'

# p=reject   : reject failing messages (strongest)
# pct=100    : apply to 100% of messages
# adkim=s    : strict DKIM alignment
# aspf=s     : strict SPF alignment
# rua=       : aggregate report destination

Выравнивание DMARC

Выравнивание — это механизм, благодаря которому DMARC эффективно защищает от подделки заголовков. При выравнивании SPF домен в SMTP-конверте From должен совпадать с доменом в видимом заголовке From. При выравнивании DKIM домен, выполняющий подпись (d= в DKIM-Signature), должен совпадать с доменом в заголовке From. В строгом режиме домены должны совпадать полностью. В ослабленном режиме допускаются поддомены. Сообщение проходит DMARC, если оно проходит SPF ИЛИ DKIM с корректным выравниванием — проходить оба механизма не требуется. Такое сочетание устраняет уязвимость, которую оставляет SPF, используемый отдельно, поскольку он не защищает от подделки видимого заголовка.

# DMARC alignment example
Envelope From: attacker@legit.com  <- SPF may PASS for legit.com
From header  : spoofed@example.com <- VISIBLE to user

# Without DMARC: SPF passes (envelope from legit.com)
# User sees spoofed@example.com and trusts it

# With DMARC on example.com:
# SPF alignment check: legit.com != example.com -> FAIL
# DKIM: attacker has no private key for example.com -> FAIL
# DMARC result: FAIL -> message rejected per policy

Поэтапное внедрение DMARC

Организациям следует внедрять DMARC постепенно, чтобы не нарушить доставку легитимной почты. Этап 1: внедрите SPF и DKIM для всех потоков почты. Этап 2: опубликуйте запись DMARC p=none с Reporting RUA. Анализируйте отчёты (инструменты: DMARC Analyzer, dmarcian), чтобы за 2–4 недели выявить все легитимные источники отправки. Этап 3: перейдите к p=quarantine; pct=10, постепенно увеличивая pct до 100%. Этап 4: перейдите к p=reject, когда все легитимные потоки начнут проходить проверку. Переход к reject до выявления всех потоков почты приведёт к отклонению легитимных сообщений.

# DMARC rollout stages
Stage 1: p=none; pct=100  (monitoring only)
Stage 2: p=quarantine; pct=10  (10% to spam)
Stage 3: p=quarantine; pct=100 (all to spam)
Stage 4: p=reject; pct=100     (block at MTA)

# Monitor RUA reports between each stage
# Look for legitimate sources failing alignment
# Common gotchas:
# - Marketing platforms sending as your domain
# - IT ticketing systems
# - Automated notification services
# - Third-party CRM tools

BIMI: индикаторы бренда для идентификации сообщений

BIMI — это развивающийся стандарт, основанный на DMARC. Если для домена установлена политика DMARC quarantine или reject, почтовые клиенты (Gmail, Apple Mail) могут отображать подтверждённый логотип бренда рядом с именем отправителя во входящих сообщениях. Для BIMI требуется сертификат Verified Mark Certificate (VMC) от одобренного поставщика, подтверждающий право собственности на товарный знак. Хотя BIMI пока не входит в экзамен Security+, он отражает направление развития аутентификации почты: подтверждённых отправителей можно будет с первого взгляда визуально отличить от поддельных.

Совместная работа SPF+DKIM+DMARC

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

# Email authentication check order
1. Receiving MTA receives message
2. SPF check: is sending IP authorized? (envelope From)
3. DKIM check: is signature valid? (using public key DNS)
4. DMARC check:
   a. Did SPF pass with alignment? OR
   b. Did DKIM pass with alignment?
   -> If YES: PASS (deliver normally)
   -> If NO: apply DMARC policy (none/quarantine/reject)
5. Reporting: send aggregate data to rua= address

Баннеры внешней почты

Практическая мера эшелонированной защиты от фишинга и BEC — добавление предупреждающего баннера внешней почты ко всем сообщениям, отправленным из-за пределов организации. Этот баннер, который обычно вставляет SEG, предупреждает сотрудников о том, что сообщение пришло от внешнего отправителя, даже если отображаемое имя похоже на имя коллеги или руководителя. Баннеры особенно эффективны для выявления попыток BEC, когда злоумышленник использует похожий домен или подделывает отображаемое имя. Баннер должен быть визуально заметным (цветной верхний или нижний колонтитул) и содержать инструкции по сообщению о подозрительных письмах.

# Example external email banner (SEG inserts this)
# --- EXTERNAL EMAIL ---
# This message was sent from outside the organization.
# Do not click links or open attachments unless
# you expected this email and trust the sender.
# Report suspicious email: phishing@company.com
# ----------------------

# Proofpoint SEG: add disclaimer via content filter
# Match: Header 'X-MS-Exchange-Organization-SCL' absent
# Action: Prepend HTML banner to message body

Быстрая проверка

Проверьте своё понимание концепций CompTIA Security+ (SY0-701), рассмотренных в этом уроке.

Итоги урока

В этом уроке Вы узнали, что SPF использует записи DNS TXT для авторизации IP-адресов отправки, но проверяет только envelope From, а не видимый заголовок; DKIM добавляет криптографические подписи, подтверждающие целостность сообщения и сохраняющиеся при пересылке; а DMARC связывает SPF и DKIM с видимым заголовком From с помощью проверок выравнивания и применяемой политики (none/quarantine/reject), а также предоставляет отчётность. Далее мы рассмотрим защищённые почтовые шлюзы и средства защиты от спама.

Часто задаваемые вопросы

Урок «Аутентификация электронной почты: SPF, DKIM и DMARC» бесплатный?

Да — полный текст урока «Аутентификация электронной почты: SPF, DKIM и DMARC» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Security+ Academy, подпишись на CoddyKit PRO. Курс Security+ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Аутентификация электронной почты: SPF, DKIM и DMARC»?

Внедряйте и проверяйте политики Sender Policy Framework, DomainKeys Identified Mail и DMARC, предотвращающие подмену домена и фишинг. Ты практикуешь Security+ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Security+ Academy?

Предыдущий опыт не требуется. Security+ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Аутентификация электронной почты: SPF, DKIM и DMARC»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Security+ Academy?

Да. Каждый урок Security+ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Аутентификация электронной почты: SPF, DKIM и DMARC
  2. Безопасные шлюзы электронной почты и защита от спама
  3. Фильтрация веб-контента и DNS-ловушки
  4. Проверка SSL/TLS и атаки типа «человек в браузере»
← Назад к Security+ Academy