Что такое DKIM-запись и как ее настроить

Что такое DKIM-запись и как ее настроить

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

Что такое DKIM-запись и из чего она состоит

DKIM (DomainKeys Identified Mail) — запись в системе доменных имен отправителя (DNS), которая подтверждает, что домен отправителя подлинный и почтовые сообщения приходят именно от него. Это стандарт защиты электронной почты и метод обнаружения подделки электронных писем.
Типичная DKIM-запись выглядит так:
mail.domainkey.company.com.TXT «v=DKIM1; k=rsa; p=<публичный ключ>»
Разберем на этом примере, что означают составляющие ее теги:
mail — селектор. Можно указать несколько записей с разными селекторами, где в каждой записи будет свой ключ. Для нашего примера это mail;
— версия DKIM, всегда принимает значение v=DKIM1. Это стандартное значение;
k — тип ключа, всегда k=rsa;
p — публичный ключ, который можно сгенерировать в сервисе рассылки.

Для чего настраивать DKIM-запись

DKIM-подпись важна для проверки подлинности отправителя и защиты писем от мошенников, потому что она:
  • Подтверждает подлинность домена отправителя — так сервер определяет, что письмо действительно пришло от указанного отправителя, и только после этого доставляет его. Без DKIM рассылки возможны, но их защиту никто не гарантирует. Например, она защищает письма от фишинга — вида интернет-мошенничества с целью захвата персональных данных пользователя.
  • Повышает репутацию отправителя — письма, подписанные DKIM, с меньшей вероятностью попадают в спам и с большей — в папку «входящие», поэтому их доставляемость выше. Если подписи нет, то доверие к домену уменьшается — такие письма попадут в спам с вероятностью 100%.
  • Дает возможность использовать постмастеры — сервисы статистики рассылок. Например, postmaster Mail.ru без DKIM-подписи доступ к своему функционалу не предоставит.

Как работает DKIM-запись

Условно работа DKIM-записи делится на два этапа: первый происходит на сервере-отправителе, второй — на сервере-получателе. Подлинность отправителя проверяют через публичный и приватный ключи.

Этап 1 — на сервере-отправителе

Письма подписываются DKIM-подписью, которая генерируется с помощью приватного ключа.
Картинка
DKIM-запись находится в графе signed-by. Запись и имя домена-отправителя ― в заголовке письма

Этап 2 — на сервере-получателе

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

Как настроить DKIM-запись

У каждого сервиса рассылок своя процедура настройки. Обычно ее описание можно найти в инструкциях или справочниках сервиса, например Sendsay, UniSender, Mindbox.
Рассмотрим, как настроить запись в Mindbox. Пара ключей генерируется отдельно для каждого сервера-рассыльщика.
  1. Ключи нужно сгенерировать в «Настройки» → «Рассылки» → «Настройки email». После добавления и сохранения отправителя появится кнопка «Сгенерировать DKIM».
Картинка
Интерфейс Mindbox в настройках email — кнопка «Сгенерировать DKIM»
Сгенерированная запись отображается у домена. Ее нужно положить в запись DNS клиента — панель управления к нему предоставляет хостинг-провайдер, у которого был куплен домен.
Картинка
Сгенерированную запись DKIM — _domainkey надо указать в поле «Имя»
Рядом кладем вторую запись _domainkey o=~;, которая говорит о том, что для этого домена могут рассылаться и неподписанные DKIM-сообщения.
Картинка
В одном из значений записи DKIM надо указать, что сообщения с этого домена могут рассылаться и без подписи
Дальше надо проверить корректность работы записи — убедиться, что она настроена правильно и все ключи совпадают. Это можно сделать с помощью специальных инструментов, например MXtoolbox.
Картинка
Интерфейс MXtoolbox, в котором можно проверить DKIM-запись на корректность работы
Важно, чтобы ключ, который высвечивается в MXtoolbox, полностью совпадал с тем, что показывается в настройках email в Mindbox, иначе запись настроена неверно.  Это совпадение нужно проверить вручную в настройках Mindbox, если обнаружилась такая проблема:
Картинка
В настройках Mindbox надо проверить совпадения вручную
Также важно, чтобы ключ обнаруживался с нужным селектором — для нашего примера это Mindbox:
Картинка
Ключ и селектор совпадают
Если ключ таким образом не обнаруживается, то либо DKIM вообще не настроен, либо есть ошибка в имени записи mindbox._domainkey.
Также для проверки можно отправить письмо на Gmail и открыть его оригинал.
Картинка
Посмотреть оригинал можно, кликнув на дополнительные функции в отправленном письме
Если в оригинале получилось найти dkim=pass, то все настроено правильно.
Картинка
Пример оригинала письма с dkim=pass
Если при попытке отправить письмо на mail.ru выдается ошибка вида dkim=invalidreason=pubkey_syntax, то надо проверить опубликованную запись DKIM на наличие пробелов и удалить их.
DKIM-запись работает в комплексе с проверкой SPF и политикой DMARC. SPF-запись тоже находится в системе DNS и несет информацию о цифровых адресах —
IP-адресах домена отправителя. Если письмо не пройдет проверку SPF и DKIM, политика DMARC укажет, что с ним сделать: пропустить во входящие или отправить в спам. Поэтому важно настраивать все три цифровые записи.