Dkim подпись что это
DKIM — это просто
Хочу поделиться своим небольшим опытом прикручивания DKIM (DomainKeys Identified Mail) к своему домену и почтовому серверу.
DomainKeys Identified Mail метод E-mail аутентификации.
Технология DomainKeys Identified Mail (DKIM) объединяет несколько существующих методов антифишинга и антиспама с целью повышения качества классификации и идентификации легитимной электронной почты. Вместо традиционного IP-адреса, для определения отправителя сообщения DKIM добавляет в него цифровую подпись, связанную с именем домена организации. Подпись автоматически проверяется на стороне получателя, после чего, для определения репутации отправителя, применяются «белые списки» и «чёрные списки».
В технологии DomainKeys для аутентификации отправителей используются доменные имена. DomainKeys использует существующую систему доменных имен (DNS) для передачи открытых ключей шифрования.
Теперь необходимо найти, как сформировать пару секретного и публичного ключа. После перебора нескольких вариантов я остановился на web-утилите сервиса port25.com которая, кроме формирования необходимых ключей, так же генерирует и подсказку по DNS записям:
www.port25.com/support/support_dkwz.php
Небольшое пояснение по поводу некого поля «domain selector». Данное поле позволяет привязать к одному домену несколько DKIM записей для разных нужд (например для разных почтовых серверов). В моём случае у меня только один почтовый сервер и у меня нет необходимости в селекторе, так что в роли селектора я выбрал просто «mail».
Полученный приватный ключ сохраняем на сервер в папку, к которой имеет доступ почтовый сервер. Публичный ключ в принципе можно не сохранять в виде файла. Он нам пригодится только для внесения необходимой записи в DNS. В конфигурации домена в hMailServer нам необходимо указать путь к приватному файлу ключа, а так же указать выбранный селектор (напомню, я в виде селектора взял «mail»).
В файле DNS-зоны нам необходимо указать записи вида:
;»
mail._domainkey.example.com. TXT «k=rsa\; t=s\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQmO9AuWRbWPgl/jzDPQodrLfFLFqYYi6bCBnsTOCOJQrFbGgiR1C01j4zLw8XgG3rQ0WAaeg6Z/y39Ah7IONfs5gQuK6eGZMmYwIsZyz2dQoUDmDLCb1WygpkrqsCbyPw3SWGihM4iChOwo7Ovo2mTOWOf5ejeZcP2qqNb9nRMQIDAQAB»
Где «mail» перед _domainkey во второй записи — это не что иное, как наш выбранный селектор, а длинный набор символов в той же записи идущий после «p=» — это наш публичный ключ.
Вроде бы всё. Теперь попробуем отправить письмо с нашего почтового сервера на почту gmail, так как доподлинно известно, что gmail проверяет DKIM. Смотрим в полученное письмо в gmail и видим заветные строки:
Authentication-Results: mx.google.com; spf=pass (google.com: domain of example@example.com designates 123.123.123.123 as permitted sender) smtp.mail=example@example.com; dkim=pass header.i=@example.com
Поздравляем меня с успешным покорением DKIM ))), чего и вам желаю. Удачи.
UPD: Для получения пары ключей без использования внешних сервисов можно воспользоваться OpenSSL:
Спасибо lorc за дополнение.
UPD 2: Небольшое дополнение от nshopik:
Так же можно у домена прописать ADSP запись (RFC5617) — это позволит принимающему серверу понять, должно ли ваше письмо быть подписано или нет.
Запись выгладит таким образом:
_adsp._domainkey.example.com. TXT «dkim=all»
Что такое DKIM
Мария Смирнова-Матрос
Создайте рассылку в конструкторе за 15 минут. Отправляйте до 1500 писем в месяц бесплатно.
Отправить рассылку
Технология DKIM (DomainKeys Identified Mail) вычисляет поддельные электронные адреса и помогает бороться со спамом и кражей персональных данных (логинов, паролей).
DKIM добавляет в письмо цифровую подпись. Благодаря ей, почтовые провайдеры (Mail.ru, Gmail) могут проверить, что сообщение пришло именно от вашего домена.
Подпись DKIM — это TXT-запись, которую нужно внести в настройки DNS-зоны сайта. Сама запись выглядит так:
Где XXXXXXXXXXXXXXXXXXXXX — уникальный код, который можно сгенерировать в сервисе рассылки. Далее мы рассмотрим, как получить DKIM-запись в UniSender и добавить ее на сайт.
Зачем нужна DKIM-подпись
Защищает от мошенников
DKIM-подпись не даст мошенникам отправлять письма от имени вашего домена. Вместе с SPF и DMARC эта технология защищает ваших подписчиков и ваши рассылки.
Повышает доставляемость
DKIM улучшает репутацию домена. По DKIM сервер-получатель определяет подлинность отправителя и его общий рейтинг. Письма с хорошей репутацией имеют больше шансов оказаться во «Входящих».
DKIM работает как паспорт: вы предъявляете его почтовому провайдеру, а он пропускает вас в инбокс.
Дает доступ к постмастерам
Постмастеры — сервисы почтовых служб для аналитики рассылок. Они помогают следить за доставляемостью, открытиями, отписками и жалобами на спам. Чтобы подключить статистику в постмастере, у вас должна быть настроена email-аутентификация. DKIM — одна из составляющих email-аутентификации.
Как настроить DKIM-подпись
Чтобы настроить DKIM, вам нужен доступ к DNS-зоне сайта и корпоративная почта. В разных сервисах рассылок настройка DKIM отличается. Рассмотрим ее на примере UniSender.
Зайдите в свой аккаунт, в правом верхнем углу нажмите «Настройки аккаунта». Далее выберете на вкладках пункт — «Аутентификация домена», и напишите в поле ввода свой домен.
Во всплывающем окне введите домен еще раз.
Появляется окно, которое показывает, какие записи нужно ввести в панели управления DNS.
Верхняя запись — SPF. Нижняя — DKIM. Теперь нужно перейти в панель управления доменом сайта и внести эти записи. Обратите внимание, что внешний вид панели может отличаться от вашего, но общий принцип везде одинаковый.
Выбираем «Добавить запись TXT» и вносим полученные записи из UniSender:
Подтверждение DKIM-записей занимает от часа до нескольких дней.
Проверка DKIM подписи
После того, как вы закончили настройку DKIM-подписи, можно проверить правильно ли она настроена.
Для этого вы можете использовать один из бесплатных инструментов, например DKIMCore. Заполняем два поля — «Selector» и «Domain name», нажимаем Check. Если все в порядке, вы увидите запись «This is a valid DKIM key record».
MailTester.com — еще один полезный сервис для проверки DKIM-подписи.
Сайт поддерживает русский язык, с его помощью можно протестировать письмо, которое вы собираетесь отправить. MailTester дает полный отчет по доставляемости, а также проверяет настройки email-аутентификации.
Сначала сервис предлагает отправить тестовое письмо на указанный адрес:
После того, как вы отправили письмо для проверки, нажимаем на кнопку «Затем проверьте оценку». Сервис оценивает сообщение по шкале от 1 до 10 баллов в зависимости от того, с какой вероятностью оно попадёт во «Входящие».
Если у письма низкий рейтинг, скорее всего, оно попадет в «Спам». Об этом сервис оповещает в таком забавном формате:
Если же рейтинг письма высокий, вы успешно попадете во «Входящие»:
Ниже можно посмотреть полный отчет по письму и анализ рейтинга отправителя.
Во втором пункте можно посмотреть информацию о DKIM подписи домена:
Что такое DKIM подпись: все, что нужно о ней знать
Что значит DKIM – подпись?
Внешне DKIM подпись выглядит так:
В этом рандомном (на первый взгляд) наборе цифр, букв и математических знаков скрыт тайный смысл, который разшифровывается следующим образом:
Зачем нужна DKIM подпись?
DKIM защищает от интернет-преступлений
На уровне почтового сервера заменить адрес отправителя – проще пареной репы. Этим часто промышляют мошенники. Выдав себя за компанию с хорошей репутацией, они прикарманивают личные данные и деньги пользователей. Этот процесс называется фишингом, и считается популярным видом интернет-преступления.
DKIM улучшает репутацию домена
Уровень доверия к отправителю влияет на Open Rate. Open Rate влияет на репутацию домена. Настроенный DKIM репутацию домен «обеляет».
По подписи сервер-получатель определяет не только подлинность, но и его общий рейтинг отправителя. Если подписи нет – кредит лояльности к домену уменьшается, как и вероятность доставки сообщения.
Скрывает домен отправителя (при использовании email сервисов для рассылок)
Визуально это выглядит следующим образом:
Эта опция дополнительная, но выгодная для интернет-магазинов. «Палиться», что каждое индивидуальное предложение создано автоматически в рамках массовой рассылки через email сервис не хочется. DKIM подпись в этом случае выручает 🙂
Как работает DKIM?
Условно, сфера влияния DKIM делится на 2 части: то, что происходит на сервере-отправителе, и то, что происходит на сервере-получателе. Всем процессом заправляют приватный и публичный ключ.
Приватный ключ (private key) – секретный уникальный код, который хранится под семью печатями на сервере или под надзором email сервиса.
Этап #1: на сервере-отправителе.
При отправке каждое сообщение подписывается цифровой подписью, используя ваш приватный ключ DKIM. Он прячется в заголовке письма, и выглядит примерно так (см.пункт «Подписан» на рисунке). В графе должно находиться имя домена-отправителя: по нему происходит идентификация.
Этап #2: на сервере-получателе.
Затем делает запрос в своеобразную библиотеку доменных имен – DNS: подлинный ли домен отправителя?
Ответ положительный – email не меняется и идет дальше в почтовый ящик получателя. Если нет – отправляется в СПАМ.
Как настроить DKIM подпись?
Каждый сервис рассылок имеет свою процедуру настройки DKIM подписи. Обычно их можно найти в инструкциях, справочниках или мануалах. В Estismail, к примеру, это “Настройка DKIM записи на домене”. Если у вас возникают вопросы – спрашивайте в службы поддержки.
Как проверить DKIM?
Почтовые сервисы делают проверку DKIM незаметно для пользователя. Некоторые же, не скрывают работу в этом направлении: Google подтверждает надежность отправителя знаком ключа возле адреса:
Включить поддержку этой функции можно в Настройки (Settings)→ Лаборатория (Labs)→ «Значок проверенного сообщения» (Authentication icon for verified senders).
DKIM-подпись
С помощью DKIM-подписи получатель письма может удостовериться в том, что оно действительно пришло от предполагаемого отправителя. Чтобы установить DKIM-подпись для писем, отправляемых с вашего домена, создайте для вашего домена TXT-запись с публичным ключом подписи.
Общая инструкция по настройке DKIM-подписи
Если нужного домена нет в списке, убедитесь, что он подключен и подтвержден.
В блоке Настройка DKIM-подписи скопируйте значение публичного ключа для вашего домена.
Войдите в панель управления доменом (зоной DNS) на сайте компании, которая предоставляет вам DNS-хостинг.
Если вы делегировали домен на серверы Яндекса, перейдите в DNS-редактор в Яндекс.Коннекте.
Создайте TXT-запись со следующими значениями полей (в разных панелях управления названия полей могут отличаться):
Значение — текст публичного ключа, который вы скопировали из блока Настройка DKIM-подписи в настройках домена.
Например, v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSEBtaCOteH4EBqJlKpe.
Подождите, пока изменения вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Инструкции по настройке DKIM-подписи у некоторых хостинг-провайдеров
Откройте страницу https://reg.ru и войдите в ваш аккаунт.
Text — значение публичного ключа, полученное на странице настройки домена в Почте для бизнеса.
Например, v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSEBtaCOteH4EBqJlKpe.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Откройте страницу https://cp.masterhost.ru и войдите в ваш аккаунт.
значение (IP/host.) — значение публичного ключа, полученное на странице настройки домена в Почте для бизнеса.
Например, v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSEBtaCOteH4EBqJlKpe.
Поле MX preference оставьте пустым.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Откройте страницу https://mcp.sweb.ru и войдите в ваш аккаунт.
В выпадающем списке выберите нужный домен.
Имя поддомена — mail._domainkey
TXT — значение публичного ключа, полученное на странице настройки домена в Почте для бизнеса.
Например, v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSEBtaCOteH4EBqJlKpe.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
DKIM-подпись
С помощью DKIM-подписи получатель письма может удостовериться в том, что оно действительно пришло от предполагаемого отправителя. Чтобы установить DKIM-подпись для писем, отправляемых с вашего домена, создайте для вашего домена TXT-запись с публичным ключом подписи.
Если вы делегировали домен на серверы Яндекса, DKIM-подпись с публичным ключом будет настроена автоматически.
Общая инструкция по настройке DKIM-подписи
Получите TXT-запись с публичным ключом в настройках Почты:
Если нужного домена нет в списке, убедитесь, что он подключен и подтвержден.
В блоке Добавление DKIM-подписи скопируйте значение публичного ключа для вашего домена.
Войдите в панель управления на сайте компании, которая предоставляет вам DNS-хостинг.
Если вы делегировали домен на серверы Яндекса, перейдите в DNS-редактор Коннекта.
Создайте TXT-запись со следующими значениями полей (в разных панелях управления названия полей могут отличаться):
Например, v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSEBtaCOteH4EBqJlKpe.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Инструкции по настройке DKIM-подписи у некоторых хостинг-провайдеров
Перейдите на страницу Почты в Яндекс.Коннекте и скопируйте значение публичного ключа для вашего домена (см. в общей инструкции по настройке DKIM-подписи).
Откройте страницу https://reg.ru и войдите в ваш аккаунт.
Text — параметры DKIM с публичным ключом, полученные в настройках Почты.
Например, v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSEBtaCOteH4EBqJlKpe.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Перейдите на страницу Почты в Яндекс.Коннекте и скопируйте значение публичного ключа для вашего домена (см. в общей инструкции по настройке DKIM-подписи).
Откройте страницу https://cp.masterhost.ru и войдите в ваш аккаунт.
значение (IP/host.) — параметры DKIM с публичным ключом, полученные в настройках Почты.
Например, v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSEBtaCOteH4EBqJlKpe.
Поле MX preference оставьте пустым.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Перейдите на страницу Почты в Яндекс.Коннекте и скопируйте значение публичного ключа для вашего домена (см. в общей инструкции по настройке DKIM-подписи).
Откройте страницу https://mcp.sweb.ru и войдите в ваш аккаунт.
В выпадающем списке выберите нужный домен.
Имя поддомена — mail._domainkey
TXT — параметры DKIM с публичным ключом, полученные в настройках Почты.
Например, v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSEBtaCOteH4EBqJlKpe.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Перейдите на страницу Почты в Яндекс.Коннекте и скопируйте значение публичного ключа для вашего домена (см. в общей инструкции по настройке DKIM-подписи).