Что проще: «спалить» впустую рекламный бюджет или настроить DKIM для рассылок?

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

Для начала давайте разберемся — что такое DKIM?

Технология Domain Keys Identified Mail (DKIM) позволяет использовать цифровую подпись в электронных письмах.

В большинстве статей, которые вы встретите в рунете, DKIM описывается в паре с SPF, однако это совершенно разные технологии, отвечающие за различные задачи. Протокол SPF дает возможность проверить mail from поле (обратный путь) и аргумент helo (полное доменное имя) письма с помощью обращения непосредственно к серверу отправителя. Протокол DKIM добавляет цифровую подпись в письмо, что позволяет проверить подлинность письма уже на стороне получателя.

Как работает DKIM?

DKIM основан на системе Domain Keys, которая была спроектирована Yahoo! для проверки DNS отправителя и целостности письма.

Однако задачей DKIM не является обеспечение целостности сообщения или гарантии подлинности авторства сообщения. Подпись DKIM служит для подтверждения того, что полученное письмо исходит из домена, указанного в качестве отправителя.

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

Для начала генерируется одна или несколько пар ключей, затем они передаются в закрытом виде администратору источника сообщения (ADMD). Затем публикуются открытые ключи в DNS. Непосредственно перед отправкой сообщения через SMTP создается цифровая подпись, которая подтверждает выбранные поля заголовка и тела письма (например, начало письма). Подпись включает существенные поля заголовка, такие как From, To, Date, и Subject, и добавляется в сам заголовок сообщения. В результате подпись может быть проверена путем сравнения с открытым ключом в DNS.

схема dkim проверки

Что в итоге делает DKIM?

Владелец доменного имени, используемого для подписи DKIM, объявляет, что он несет ответственность за подлинность источника письма. Получатели, могут использовать информацию о подписанных письмах как часть собственных фильтров, чтобы ограничить спам, спуфинг и фишинг. Таким образом, например, могут полностью ограничиваться письма, не подтвержденные подписью.

Цифровая подпись напрямую влияет на репутацию отправителя и в итоге на доставляемость писем.

Что DKIM не делает?

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

В чем преимущество DKIM?

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

Как DKIM записывается в письме?

Подпись DKIM записывается как поле заголовка RFC2822 для подписанного письма.

Пример с сайта протокола dkim.org:

DKIM-Signature a=rsa-sha1; q=dns;
d=example.com;
i=user@eng.example.com;
s=jun2005.eng; c=relaxed/simple;
t=1117574938; x=1118006938;
h=from:to:subject:date;
b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSb
av+yuU4zGeeruD00lszZVoG4ZHRNiYzR

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

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

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

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

Настройка с помощью OpenSSL:

Секретный ключ (2048 здесь длина ключа)
openssl.exe genrsa -out tstpriv.pem 2048

Делаем публичный ключ из секретного
openssl.exe rsa -pubout -in tstpriv.pem -out tstpub.pem

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

_domainkey.site.ru. TXT "t=s; o=~;"
selector._domainkey.site.ru. TXT "k=rsa\; t=s\; p=public_key

где site.ru — сайт размещения,
public_key — это текст из сгенерированного публичного ключа,
selector — выбранный вами в настройках почтового сервера селектор.

Это минимальные настройки. Подробная информация доступна в технической документации. Дополнительно рекомендуем как минимум добавить ADSP запись:

_adsp._domainkey.site.ru. TXT "dkim=all"

all — все письма должны быть подписаны
discardable — письма без подписи отвергаются

В заключение, если возникли трудности с настройкой DKIM-подписи, вы можете воспользоваться подробными рекомендациями от хостинг-провайдеров, например, руководством Яндекс.

fin