Как попасть в Inbox: технология DKIM

Как попасть в Inbox: технология DKIM

В цикле статей «Как попасть в Inbox» рассказываем о SPF-записи, протоколе DMARC, чёрных списках, тактиках прогрева и многом другом. Эта статья цикла посвящена DKIM‑технологии. Рассказываем, как она работает, зачем её использовать и как настраивать.

Что такое DKIM

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

Принцип работы

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

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

Зачем нужен DKIM

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

Как создать ключи

Пару ключей можно сгенерировать с помощью онлайн-сервисов, например, DKIM Core.

Либо без использования сторонних сервисов — с помощью OpenSSL:

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

Структура DKIM-заголовка

Заголовок, добавляемый сервером-отправителем, называется DKIM-Signature. Он состоит из списка тегов вида «тег=значение».

Основные теги и их значения:

  • b — содержимое письма (тело + заголовки, закодированные в Base64)
  • bh — хэш канонизированного тела письма (также в Base64)
  • d — доменное имя отправителя
  • h — список подписанных заголовков
  • a — основной алгоритм для генерации сигнатуры
  • v — версия системы
  • s — селектор для разделения пространства имен для «d=» тега
  • c — алгоритм для приведения тела письма и заголовков к каноническому виду
  • q — список алгоритмов для получения публичного ключа
  • x — время истечения сигнатуры
  • i — подпись клиента, проставившего DKIM-подпись
  • l — размер тела письма в байтах, включённых в криптографический хэш
  • t — таймстамп проставленной сигнатуры
  • z — копии заголовков на момент проставления сигнатуры

Таким образом, получив письмо с заголовком из примера, почтовый провайдер обратится к DNS-записи expertsender1k._domainkey.news.emailmatrix.ru для получения публичного ключа. Содержимое данной записи следующее:

Как настроить

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

Крупные ESP предоставляют возможность настройки подписи для вашего домена. В некоторых это является стандартной процедурой при открытии аккаунта, в некоторых дополнительной опцией. В обоих случаях платформа предоставляет сгенерированный публичный ключ, который необходимо разместить в DNS‑записи. После чего подпись писем настроится автоматически.

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

Как проверить настройку

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

Для этого после перехода на сайт введите адрес по следующей структуре — *селектор*._domainkey.*рассылающий домен* и выберите тип записи TXT.

Если содержимое данной записи отображается верно, приступайте к живому тесту подписи, а именно к отправке тестового письма. Рассмотрим на примере веб-интерфейса Mail.ru.

Получив тестовое емейл-сообщение, открываем его. В меню ищем пункт «Служебные заголовки».

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

Немного выше над ним в блоке Authentication-Results при успешной проверке должна быть строка dkim=pass:

Если вместо значения pass там будет fail, проверьте правильность ключей.

Что будет, если не настроить DKIM

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

Несмотря на это, емейл-сообщения, не подписанные DKIM, могут быть доставлены, но придут они в папку «Спам». Поэтому не стоит игнорировать данное требование, тем более что, единожды настроив его, вы также обезопасите себя и своих подписчиков от действий злоумышленников.

Кроме того, на основе DKIM работает протокол DMARC, о котором рассказали в одной из статей цикла.

📎📎📎📎📎📎📎📎📎📎