DKIM - это стандарт проверки подлинности электронной почты, использующий криптографию с открытым и закрытым ключом для подписи почтовых сообщений. Записи DKIM помогают проверить, действительно ли входящее письмо было отправлено с домена, с которым связан ключ DKIM. Таким образом, запись DKIM позволяет узнать, не подвергалось ли письмо манипуляциям при пересылке и безопасно ли его открывать.
DKIM существует в DNS в виде TXT (текст) или CNAME (каноническое имя) DNS-записей. Следует ли вам использовать TXT или CNAME, зависит от ряда факторов, рассмотренных ниже.
Ключевые выводы
- DKIM - это стандарт проверки подлинности электронной почты, предназначенный для выявления поддельных адресов отправителей.
- DKIM-записи всегда являются TXT-записями. Однако некоторые провайдеры используют делегирование CNAME для указания вашего домена на TXT-запись, размещенную на их серверах.
- Каждый из этих методов имеет свои преимущества и ограничения.
- Выбор того или иного варианта зависит от того, что вы ставите во главу угла: контроль и безопасность или простоту и удобство.
- Среди распространенных ошибок - неправильный формат селектора, смешение TXT/CNAME для одного и того же селектора, а также задержки TTL при повороте ключа.
Понимание публикации записей DKIM
Давайте рассмотрим, из чего состоит запись DKIM.
Что содержится в записи DKIM?
Запись DKIM включает в себя селектор, открытый ключ и алгоритм. Вы можете сгенерировать свою DKIM-запись с помощью онлайн-инструмента PowerDMARC.
Селекторы DKIM
Селекторы DKIM позволяют почтовому серверу получателя находить и проверять открытый ключ отправителя. Они помогают определить, какой из нескольких открытых ключей DKIM следует использовать для проверки. Вы можете найти его в заголовке DKIM-Signature каждого подписанного письма. Это параметр "s=".
Открытый ключ
Открытый ключ DKIM публикуется в DNS вашего домена в виде записи TXT (или иногда CNAME, указывающей на ключ вашего провайдера). Он используется серверами-получателями для проверки хэша сообщения, созданного с помощью закрытого ключа отправителя, обеспечивая целостность и подлинность электронной почты.
Ключ, предоставленный организацией, отправляющей вашу электронную почту, будет вставлен прямо в вашу зону DNS в виде записи TXT. Или же это будет CNAME, указывающий на ключ в DNS вашего провайдера.
Алгоритм
Алгоритм, используемый для хэширования, определен в файле a= тега заголовка DKIM-Signature (не в DNS-записи). Поддерживаются следующие алгоритмы подписи DKIM:
- rsa-sha256 (рекомендуется и является наиболее распространенным)
- rsa-sha1 (устаревшая версия из-за более слабой безопасности)
Расположение и синтаксис DNS
Запись DKIM представляет собой TXT-запись, содержащую несколько пар тег-значение, обычно разделенных точками с запятой:
v=DKIM1; k=rsa; p=PUBLIC_KEY
- v=DKIM1 указывает версию DKIM.
- k=rsa, где "k" обозначает тип ключа (в настоящее время поддерживается только RSA)
- p=PUBLIC_KEY Фактический открытый ключ, используемый для проверки подписи
Вот пример: selector._domainkey.example.com
Здесь "selector" - это уникальный идентификатор для ключа DKIM, а example.com - ваш домен.
Метод 1 - DKIM в виде TXT-записи
При использовании этого метода ваш открытый ключ DKIM публикуется в виде TXT-записи DNS по адресу selector._domainkey.example.com. Исходящая почта подписывается закрытым ключом, а серверы-получатели используют открытый ключ в вашем DNS для проверки подписи.
Плюсы
- Полный контроль: Использование DKIM в качестве TXT-записи дает вам полный контроль над ключами DKIM и DNS.
- Отсутствие зависимости от сторонних производителей: При использовании этого метода вам не придется полагаться на сторонних провайдеров. Это обеспечит вам повышенную конфиденциальность и безопасность, поскольку вы сами являетесь владельцем своих данных.
Cons
- Ручная ротация ключей: Вы сами должны обновлять ключи, что может быть сложно для нетехнических пользователей.
- Повышенный риск неправильной конфигурации: Самостоятельная настройка повышает вероятность ошибок, которые могут ослабить безопасность электронной почты. Воспользуйтесь нашим бесплатную программу проверки DKIM чтобы избежать ошибок.
Метод 2 - DKIM через делегирование CNAME
Этот метод функционирует совершенно иначе, чем первый. Вместо того чтобы публиковать свой открытый ключ DKIM напрямую, вы создаете запись CNAME по адресу selector._domainkey.example.com, которая указывает на запись DKIM вашего поставщика услуг электронной почты (ESP).
Когда сервер-получатель находит ваш DKIM-ключ, DNS-запрос следует по CNAME к DNS ESP. Именно там размещается фактическая TXT-запись с открытым ключом. Это используют такие крупные провайдеры, как SendGrid, Mailchimp и Amazon SES.
Плюсы
- Автоматическое вращение клавиш: Этот метод не требует ручного обновления, а ротация ключей происходит автоматически.
- Простая настройка: Этот метод больше подходит для новичков или для управления несколькими доменами. Он позволяет легко управлять доменами без лишних усилий.
Cons
- Меньшая видимость: Более простая настройка достигается ценой ограниченного контроля и понимания ваших ключей DKIM и DNS.
- Ограничения CNAME: Глубоко вложенные или цепочечные CNAME могут превысить лимиты разрешения DNS или вызвать проблемы с производительностью. Некоторые провайдеры требуют особых форматов или не поддерживают делегирование CNAME, что может нарушить DKIM, если его не соблюдать.
TXT против CNAME - что лучше использовать?
При принятии решения о том, использовать ли DKIM в TXT или CNAME, следует руководствоваться некоторыми общими рекомендациями.
Используйте TXT, если...
- Вы самостоятельно размещаете свою электронную почту и обладаете техническими знаниями
- Вам нужен полный контроль над DKIM и DNS.
- Вы предпочитаете самостоятельно управлять ключами и чередовать их.
Примечание: В некоторых случаях провайдер может потребовать прямого ввода TXT, что делает этот метод неопциональным.
Используйте CNAME, если...
- Вы используете ESP, например Mailchimp, SES или SendGrid.
- Вы предпочитаете автоматическое управление DKIM.
- У вас нет времени или технических знаний для ручной настройки.
Смешивание TXT/CNAME для одного и того же селектора
DNS не допускает наличия записей TXT и CNAME в одном доменном имени (т. е. в одном селекторе DKIM). Используйте только один тип записи (TXT или CNAME) для каждого селектора. Выберите TXT для ручного управления или CNAME при делегировании ESP.
Примеры из реальной жизни
Если вы ищете примеры DKIM в TXT и CNAME, вот один из них с кратким описанием.
Пример DKIM TXT
google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG..."
Эта запись напрямую сохраняет открытый ключ DKIM в вашем DNS под указанным селектором и доменом.
Пример DKIM CNAME
em1234._domainkey.example.com. IN CNAME em1234.example.dkim.emailsvc.com.
Эта запись делегирует поиск DKIM-ключа стороннему провайдеру, указывая на его размещенную DKIM-запись.
Подведение итогов
Выбор DKIM в TXT против CNAME может показаться сложным. Оба метода прекрасно работают, и оба широко используются, так что решение чаще всего остается за вами. Ваш выбор будет зависеть от того, что для вас важнее - полный, прямой контроль над удобством или наоборот.
Каким бы ни был ваш окончательный выбор, всегда проверяйте текущую настройку DKIM на соответствие требованиям. Это поможет вам предотвратить пробелы в безопасности и обеспечить высочайший уровень безопасности ваших коммуникаций!
- DKIM в TXT и CNAME - основные различия и лучшие практики - 14 мая 2025 г.
- Адрес получателя отклонен: Доступ запрещен - Причины и способы устранения (SMTP 550 5.7.1) - 9 мая 2025 г.
- Все мои письма попадают в спам - вот что можно сделать - 1 мая 2025 г.