dkim подпись в MDaemon 16

Обновлено 01.09.2016

dkim подпись в MDaemon 16

Добрый день уважаемые читатели и подписчики, сегодня мы с вами продолжаем разбираться в тонкостях почтовых серверов, и поговорим о таком аспекте как безопасность, а точнее что такое dkim подпись, как она настраивается на примере почтового сервера MDaemon 16. Данная статья является дополнением к статье как повысить качество доставки почты, где мы еще по мимо dkim и его публичной генерации, рассматривали SPF записи.

dkim подпись это

Давайте сначала определимся с понятием dkim подписи - расшифровывается как DomainKeys Identified Mail - по сути это механизм аутентификации почтового ящика и сервера. Благодаря dkim записи почтовый сервер может удостовериться в том, что письмо пришедшее для адресата пришло именно от доверенного отправителя. Благодаря DomainKeys Identified Mail повышается уровень качества доставки почты, тут уже почтовый сервер вместо банальной проверки ip адреса отправителя, он проверяет цифровую подпись в нем, и сопоставляет ее с DNS записью домена отправителя, если она там присутствует, то репутация отправителя подтверждается и начинается проверка белых и черных списков.

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

Схема работы dkim подписи

Давайте рассмотрим как происходит проверка dkim записи, в упрощенном виде. И так сервер отправитель отправляет письмо подписанное закрытым ключом, в dns лежит txt запись с открытым ключом для всех, приходит письмо на сервер получателя он проверяет запись dkim в днс и сопоставляет открытый и закрытый ключи, если все ок, то рейтинг письма увеличивается так как пройдена верификация отправителя.

Схема работы dkim-1

А вот уже подробная схема описывающая принцип работы DKIM.

Схема работы dkim-2

И так вы теперь приблизительно понимаете как происходит проверка dkim, давайте я приведу пример его настройки на почтовом сервере MDaemon 16.

Настройка dkim подписи

Для работы с DKIM нам нужно:

  1. Поддержка DKIM почтовым сервером для подписывания отправляемой почты;
  2. Получение пары приватного и публичного ключа;
  3. Занесение в DNS домена необходимых записей о наличии поддержки DKIM.

Открываем ваш MDaemon в нем уже все сгенерировано при установке, вам лишь нужно зайти по вот такому пути

путь до папки MDaemon\Pem\MDaemon\dns_readme.txt

Вот так вот выглядит содержимое файла dns_readme.txt. За вас тут уже подготовили содержимое DNS в виде txt записи MDaemon._domainkey и _adsp._domainkey.

  • MDaemon._domainkey указывает содержимое открытого или как его еще называют публичного ключа, чтобы можно было расшифровывать полученные сообщения.
  • _adsp._domainkey указывает все ли сообщения должны быть подписаны

Значений dkim= может быть три:

  • all — Все письма должны быть подписаны
  • discardable — Не подписанные письма не должны приниматься
  • unknown — Аналогично отсутствию записи

Настройка dkim подписи

Теперь идете к себе в DNS сервер, где хранится ваша зона и создаете две txt записи с теми данными как в этом файле. У меня регистратор nic.ru у него это выглядит вот так.

dkim подпись в MDaemon 16

Забыл еще отметить, что впереди записи MDaemon._ это селектер или по правильному domain selector, с помощью нее вы на одном домене можете иметь несколько DKIM записей, все зависит от задачи, простой пример у вас два разных почтовых сервера.

Для других почтовых серверов мы настроили цифровую подпись. и нас они будут верифицировать как нужно, теперь позаботимся и о себе. Нажимаем CTRL+S в MDaemon и выбираем пункт Настройка DKIM. Давайте пробежимся по настройкам.

  • Подписи истекают после 7 дней (x=тэг, рекомендуется 7 дней) > тут задается время жизни электронной подписи DKIM. Как только оно проходит, ЭЦП становится не валидной, и если сообщение подписано такой электронной подписью, попадает либо в спам или отбрасывается.
  • Подписи включают метку времени создания (с тегом t=) > если стоит галка, то MDaemon в подпись добавляет время создания.
  • Подписи включают метод(ы) запроса (с тегом q=) > тут ваша подпись будет иметь некий тег, в котором будет метод запроса (пример q=dns)
  • Подписи включают счетчик длины тела (тег l=) > добавляет в DKIM тег с длиной текста в письме
  • Подписи включают оригинальное содержание заголовка (тег z=) > добавляется тег в котором есть копия оригинального заголовка письма.
  • Подписи включают запрошенную отчетность (тег r=y) > полезный тег, который будет опрашивать сервер получателя на предмет отказов AFRF, то ест ьсообщений которые выдают себя за письма пришедшие с вашего домена, и которые не смогли пройти верификацию DKIM. Для получения таких отчетов также можно настроить запись DKIM reporting TXT в DNS вашего домена и/или обновить запись ADSP TXT.
  • Приведение к каноническому виду (канонизация) > технология запрещающая изменять письма почтовыми серверами или системами пересылок. Параметр простой запрещает вносить в 99 процентах случаев изменения, а параметр Нестрогий допускает ее изменение.
  • Канонизировать заголовки, используя: Простой, Нестрогий > тут похоже на предыдущий пункт либо можно изменять заголовки либо нет.
  • Канонизировать тело, используя: Простой, Нестрогий > метод форматирования тела сообщения, перед тем как будет формирование эцп. При простом методе допускается всего лишь 1 изменение, данный метод не будет обращать внимание на пустые строки в конце текста сообщения. Второй метод будет игнорировать и не только пустые строки в конце текста сообщения, но и пробелы на концах строк, а также допускает замену нескольких последовательных строк с пробелами на одну строку с одним символ пробела.
  • Устройство верификации принимает подписи со счетчиком длины текста (тег l=) > тут задается как будет себя вести MDaemon в случае того, когда текущая длина сообщения отличается от той, что в DKIM. Если вы включаете данную опцию, то будет вот такой алгоритм, если настоящая длина больше, той что заявлена, то MDaemon будет считать, что был добавлен, какой то левый фрагмент и поэтому верифицирует только ту часть от начала сообщения, что указана в теге подписи. Если истинная длина меньше указанной, MDaemon считает, что часть письма подверглась не авторизованному удалению и сообщает об ошибке верификации, возвращая результат "FAIL".
  • Механизм верификации использует специальную строку отказа SMTP (тег rs= ) > данная опция включена по умолчанию, ваш почтовый сервер будет принимать тег rs=, который он видит в DKIM подписи входящего сообщения. С помощью rs= владельцы внешних доменов, могут изменить содержимое строки, которую выдает сервер MDaemon поясняя причину по которой отклонил сообщение, которое не прошло верификацию с его точки зрения в рамках SMTP-сеанса. Это сообщение чаще всего приходит с таким кодом 550 5.7.0 Message rejected per DKIM policy. После изменения в начале останется 550 5.7.0, а вот остальной текст будет изменен. Модифицированная строка не может начинаться с пробела или с цифры и включать в себя сочетания \r, \n, или \t. В случае несоблюдения этих условий сервер MDaemon не будет заменять строку. Отключите эту опцию, если не хотите разрешать модификацию строки.
  • Механизм верификации требует подпись для защиты заголовка ‘Subject’ (Тема) > тут вы будите явным образом требовать от отправителя DKIM подпись, чтобы защитить заголовок «Тема» (Subject).

dkim настройка-1

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

dkim настройка-2

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

dkim настройка-3

Далее отправляем с вашего почтового сервера письмо на gmail.com, так как известно, что он работает с DKIM и проверяет ее. Вам пришло письмо на gmail.com в правом углу есть меню из которого нужно выбрать Показать оригинал.
dkim подпись в MDaemon 16-2

Как только вы это сделаете у вас откроется письмо в том виде в котором его видит почтовый сервер, нас интересует два поля это dkim=pass то есть все хорошо и DKIM-Signature. В моем случае все настроено правильно и работает корректно, в результате этих действий вы увеличите доверие к вашему почтовому домену.

dkim подпись в MDaemon 16-3

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *