Главная • Глоссарий • DKIM: что это, зачем нужен и как настроить для домена

DKIM: что это, зачем нужен и как настроить для домена

Дата: 2025-06-02 | Время чтения: 7 минут (1305 слов)
DKIM (DomainKeys Identified Mail) — это технология email-аутентификации, которая связывает письмо с доменом, указанным в DKIM-подписи, и проверяет целостность подписанных частей сообщения. Когда вы отправляете письмо, сервер добавляет в него цифровую подпись, созданную с помощью закрытого ключа. Сервер получателя проверяет её с помощью открытого ключа, опубликованного в DNS.

Зачем нужна DKIM-подпись в email-маркетинге

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

  • Доверие со стороны почтовых систем. Gmail и другие почтовые сервисы используют DKIM как один из механизмов аутентификации отправителя. Письма без необходимой аутентификации могут быть отклонены или отмечены как спам.

  • Поддержка DMARC. DKIM участвует в email-аутентификации вместе с SPF и DMARC. Если DKIM-проверка проходит успешно и домен из подписи соответствует домену в поле From, это может обеспечить прохождение проверки DMARC.

Механизм DKIM-проверки

1. Генерация ключей и публикация DKIM-записи

Владелец домена генерирует пару криптографических ключей: закрытый (приватный) и открытый (публичный). Закрытый ключ используется отправляющей системой для создания подписи, а открытый публикуется в DNS и используется принимающей стороной для проверки.

Имя записи формируется из селектора и домена с _domainkey, например: selector1._domainkey.example.com. DKIM-запись может содержать параметры ключа, в том числе версию (v=DKIM1), тип ключа (k=rsa) и сам публичный ключ (p=...). Почтовый сервер получателя запрашивает эту запись при проверке подписи.

2. Подпись исходящего письма

На этом этапе сервер:

  • выбирает заголовки письма, которые войдут в подпись;

  • применяет заданный алгоритм канонизации к подписываемым данным;

  • вычисляет хеш тела письма;

  • формирует криптографическую подпись с помощью закрытого ключа;

  • добавляет результат в заголовок DKIM-Signature.
Заголовок DKIM-Signature содержит ключевые параметры:
  • v — версия DKIM;

  • d — домен, от имени которого создаётся DKIM-подпись;

  • s — селектор;

  • h — список подписанных заголовков;

  • bh — хеш тела письма (Body Hash);

  • b — цифровая подпись.

3. Проверка DKIM-подписи получателем

Почтовый сервер получателя ищет в письме заголовок DKIM-Signature. Найдя его, сервер:
  • формирует DNS-запрос, используя домен (d=) и селектор (s=) из подписи;

  • получает открытый ключ;

  • вычисляет хеш подписанных данных по правилам, указанным в DKIM-подписи;

  • с помощью открытого ключа проверяет криптографическую подпись и сравнивает необходимые значения.
Если проверка проходит успешно, DKIM получает результат pass. Если подпись не удаётся подтвердить, проверка может завершиться результатом fail или другой ошибкой в зависимости от причины.

4. Результат проверки и его значение

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

Результат DKIM также используется при проверке DMARC. Для успешного прохождения домен из d= должен соответствовать домену в поле From.

5. Ограничения DKIM

DKIM не подтверждает добросовестность владельца домена: злоумышленник тоже может зарегистрировать собственный домен и корректно настроить для него DKIM. Кроме того, валидная DKIM-подпись не означает, что домен подписи соответствует домену в видимом поле From.

Изменение подписанных частей письма после создания подписи может нарушить DKIM-проверку. Результат зависит в том числе от того, какие заголовки подписаны и какой режим канонизации используется. Например, канонизация relaxed допускает некоторые изменения форматирования, которые при более строгой канонизации могли бы нарушить подпись.

Как настроить DKIM для домена

Шаг 1. Генерация DKIM-ключей

Создайте пару ключей — публичный и приватный — для вашего домена. Если вы используете сервис email-рассылок или почтовый хостинг, он обычно предоставляет данные, необходимые для настройки DKIM.

Для DKIM используйте RSA-ключ длиной 2048 бит. Минимально допустимый размер — 1024 бита, если инфраструктура не поддерживает более длинный ключ. Выберите селектор, например dkim1, mail или default.

Шаг 2. Создание DKIM-записи в DNS

Опубликуйте данные DKIM в DNS вашего домена в соответствии с инструкцией используемой почтовой системы или сервиса. Как сделать это в Altcraft, описано в руководстве по настройке домена.
  • Имя записи строится на основе селектора и _domainkey, например default._domainkey.example.com.

  • Значение или целевая запись указывается в том виде, который предоставляет отправляющая система.

Конкретный тип DNS-записи и её содержимое зависят от схемы настройки сервиса. Например, публичный ключ DKIM может публиковаться непосредственно в TXT-записи, а некоторые сервисы используют CNAME для делегирования DKIM-записи.

Шаг 3. Настройка почтового сервера или сервиса

Настройте отправляющую систему так, чтобы она добавляла DKIM-подпись к исходящим письмам.

Если вы используете сервис email-рассылки (ESP), следуйте его инструкции по настройке DKIM. Обычно сервис предоставляет DNS-запись, которую нужно добавить для домена, а подпись исходящих сообщений формируется на стороне сервиса.

Шаг 4. Проверка настройки DKIM

Проверьте, работает ли DKIM правильно:

  • отправьте тестовый емейл на внешний почтовый ящик и проверьте результат DKIM в технических заголовках письма;

  • проверьте опубликованную DNS-запись для используемого селектора, например с помощью dig:
dig TXT default._domainkey.yourdomain.com
  • если для домена настроены DMARC-отчёты, их также можно использовать для контроля результатов DKIM-аутентификации.

Шаг 5. Поддержание DKIM

Следите за актуальностью DKIM-настроек. При смене почтового сервиса или отправляющей инфраструктуры проверяйте, что используются актуальные селекторы и ключи. Если сервис поддерживает ротацию DKIM-ключей, следуйте его рекомендациям по периодичности и процедуре замены.

Почему DKIM не проходит проверку: ошибки и решения

Если DKIM не проходит проверку, последовательно проверьте основные элементы настройки:

  1. Проверьте, опубликована ли нужная DNS-запись.

  2. Сверьте домен и селектор из заголовка DKIM-Signature с данными опубликованной записи.

  3. Убедитесь, что опубликованный публичный ключ соответствует ключу, которым отправляющая система подписывает сообщения.

  4. Проверьте, не изменились ли подписанные части письма после формирования подписи.

  5. Отправьте тестовое письмо и проверьте результат DKIM в технических заголовках.

DKIM-запись не найдена (No DKIM record)

Почтовый сервер не может получить открытый ключ для проверки подписи. Это может произойти, если нужная DNS-запись не опубликована, указано неверное имя записи или используется другой селектор.

Что делать: возьмите домен (d=) и селектор (s=) из заголовка DKIM-Signature и проверьте соответствующую DNS-запись. Убедитесь, что она опубликована в нужной зоне и содержит данные, предоставленные отправляющей системой. При недавнем изменении DNS учитывайте TTL и время распространения изменений.

Неверная DKIM-запись

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

Что делать: сравните опубликованную запись с данными, которые предоставляет отправляющая система. Проверьте имя селектора, домен и публичный ключ. Если сервис использует CNAME для настройки DKIM, проверьте корректность указанного им целевого адреса.

DKIM-подпись не проходит проверку (DKIM=fail)

Если запись опубликована, но подпись не проходит проверку, причиной может быть неправильный селектор или ключ, ошибка в настройке подписывающей системы либо изменение подписанных частей сообщения после создания подписи.

Что делать: проверьте домен и селектор из DKIM-Signature, соответствие ключей и путь письма после подписания. Если промежуточная система изменяет подписанные данные, это также может нарушить проверку.

Конфликт записей для одного селектора

Для конкретного имени селектора принимающая система должна получить корректные данные ключа. Ошибочные или конфликтующие DNS-записи могут нарушить проверку.

Что делать: проверьте DNS для конкретной комбинации селектора и домена. При ротации ключей удобно использовать новый селектор, а старую запись удалять после завершения перехода, если она больше не нужна.

Заключение

DKIM — технология email-аутентификации, которая связывает сообщение с доменом DKIM-подписи и проверяет целостность подписанных частей письма. Для этого отправляющая система создаёт цифровую подпись с помощью закрытого ключа, а принимающая проверяет её с помощью открытого ключа из DNS.

DKIM вместе с SPF и DMARC входит в систему аутентификации электронной почты. При корректном выравнивании доменов (DKIM alignment) успешная DKIM-проверка может обеспечить прохождение DMARC.

Изучите работу с email-рассылками и другими каналами прямой коммуникации на практическом курсе Altcraft и увеличьте отдачу от клиентской базы.
subscription, banner, email

Покажем платформу
и найдём решение под задачи вашего бизнеса