Что такое DomainKeys Identified Mail (DKIM)?
DKIM — это технология аутентификации электронной почты, которая позволяет отправителям подписывать свои сообщения с использованием цифровых подписей. Эти подписи служат для подтверждения, что письмо действительно отправлено с указанного домена и не менялось после отправки. Таким образом, почтовые системы могут удостовериться, что сообщение пришло от надежного источника, а не является фальшивкой, созданной злоумышленниками.
Аутентификация с помощью DKIM основана на криптографии с открытым ключом. В процессе отправки письма оно подписывается закрытым ключом отправителя, а на стороне получателя проверяется его подлинность с помощью открытого ключа, который доступен через DNS-запись домена.
Зачем использовать DKIM?
Использование DKIM помогает защитить домен от фишинга, спама и других угроз, связанных с электронной почтой. Хотя DKIM — не обязательный стандарт, его интеграция с другими технологиями безопасности — SPF и DMARC — обеспечивает дополнительный уровень защиты и значительно повышает доверие к исходящим сообщениям. Исследования показывают, что использование DKIM действительно улучшает доставку писем.
Со временем DKIM укрепляет репутацию отправителя. Интернет-провайдеры учитывают подписанные сообщения при оценке рассылки. Это повышает доставляемость при низком уровне спама и высокой вовлеченности получателя. Репутация важна для провайдера при долгосрочных email-кампаний.
Но технология не может зашифровать письмо — только доказать, что изменений не было. Поэтому даже если сообщение аутентифицировано, его содержимое остается незащищенным от перехвата.
Пример настройки
У технологии общий шаблон: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7EHFz6bZBvqMUlEV2qvT+8...; s=selector1
-
v=DKIM1 — это версия стандарта. Обычно всегда стоит "DKIM1", так как это текущая версия.
-
k=rsa — тип криптографического алгоритма, который используется для подписи. Обычно это RSA, один из наиболее распространенных алгоритмов.
-
p=ключ — сам открытый ключ, который используется для проверки подписи. Это длинная строка символов.
-
s=селектор — помогает выбрать правильную настройку, если у вас несколько ключей. Это название, которое позволяет серверу получателя найти нужную запись в DNS.
Как происходит проверка?
Система использует криптографию — два ключа. Закрытый и открытый. Включает два этапа.
-
Подпись на сервере отправителя. Когда отправляется письмо, сервер инициатора подписывает его с использованием закрытого ключа. Этот ключ хранится в безопасности на сервере отправителя или у почтового провайдера.
-
Проверка на сервере получателя. После того как письмо поступает на сервер получателя, тот с помощью открытого ключа проверяет подлинность подписи. Этот открытый ключ можно найти в DNS-записях домена отправителя.
На стороне сервера получателя почтовая система выполняет несколько проверок:
-
Подпись должна соответствовать установленной спецификации.
-
Домен отправителя должен совпадать с доменом, указанным в подписи.
-
Заголовок «From» должен быть в списке проверяемых элементов.
Ошибки в настройке
Настройка иногда вызывает трудности. Ниже собрали самые частые ошибки и способы их устранить.
Неверные данные в DNS-записях
Неправильный формат или неверные данные в записи приводят к тому, что почтовые серверы не могут найти открытый ключ для проверки. Ваши письма окажутся в спаме или вовсе не будут доставлены.
Решение:
-
Используйте инструменты для проверки корректности DNS-записей.
-
Убедитесь, что записи опубликованы для нужного домена и не содержат лишних пробелов или опечаток.
Истекшие или скомпрометированные ключи
Закрытые ключи могут устареть или попасть в руки злоумышленников. Это угрожает безопасности сообщений и снижает доставляемость.
Решение:
-
Регулярно обновляйте ключи, чтобы они оставались актуальными.
-
Создавайте новые ключи и плавно переходите на них без перерывов в отправке.
-
Храните закрытые ключи в безопасности и ограничьте доступ к ним.
Несовпадение доменов
Если домен в адресе отправителя не совпадает с доменом, указанным в настройках, это вызовет подозрения у почтовых сервисов.
Решение:
-
Убедитесь, что домен в адресе отправителя и домен в DKIM настроены одинаково. Особенно если вы отправляете письма от имени нескольких адресатов.
Ошибки при использовании селектора
Если селектор настроен неправильно или отсутствует, серверы не смогут найти открытый ключ для проверки подписей.
Решение:
-
Убедитесь, что для каждого сервера отправки и домена настроены уникальные селекторы и они правильно опубликованы в DNS.