DKIM: что это, DKIM-запись и селектор
DKIM (DomainKeys Identified Mail) доказывает о письме две вещи: его отправил сервер, которому домен это разрешил, и по дороге письмо никто не изменил. Для этого используется пара ключей: закрытый хранится на сервере-отправителе, открытый публикуется в DNS. Разберём DKIM-запись, селекторы, длину ключа, ротацию и настройку в почтовых сервисах.
Как работает DKIM
- Сервер-отправитель берёт выбранные заголовки (From, Subject, Date и другие) и текст письма, считает хеш и подписывает его закрытым ключом.
- Добавляет заголовок
DKIM-Signatureс подписью и инструкцией, как её проверить. - Получатель читает заголовок, берёт открытый ключ из DNS и проверяет подпись. Если подписанная часть изменилась — проверка не проходит.
Сокращённый заголовок подписи:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=mail2025;
h=from:to:subject:date:message-id; bh=…; b=…
d=— домен, который подписал письмо. Для DMARC он должен совпадать с доменом «От кого».s=— селектор: подсказывает получателю, где искать ключ.h=— список подписанных заголовков;bh=— хеш текста;b=— сама подпись.
Как выглядит DKIM-запись
Открытый ключ публикуется TXT-записью по адресу селектор._domainkey.домен. Для подписи выше это:
mail2025._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…"
| Тег | Что значит |
|---|---|
v=DKIM1 | Версия; желательна, и если есть — стоит первой. |
k=rsa | Тип ключа. RSA — значение по умолчанию и надёжный выбор; ed25519 существует, но проверяется не везде. |
p= | Открытый ключ в base64. Пустое p= означает, что ключ отозван. |
t=y | Режим тестирования. На рабочих ключах не нужен. |
Ключ длиной 2048 бит длиннее 255 символов — предела одной строки в TXT-записи. DNS-панели ведут себя по-разному: одни делят значение сами, другие ждут, что вы вставите его несколькими строками в кавычках в одну запись. Если ключ «ломается», чаще всего его по ошибке разбили на две отдельные записи, а должна быть одна TXT-запись из нескольких строк.
Что такое DKIM-селектор и зачем их несколько
Селектор — просто имя, которое выбираете вы или провайдер: google, selector1, s1, mail2025. Он нужен, чтобы у одного домена могло быть много ключей одновременно:
- для почтового сервиса;
- для платформы рассылок;
- для службы поддержки или CRM;
- новый ключ на время ротации, пока старый ещё действует.
Получить список всех селекторов домена через DNS нельзя — можно только спросить конкретное имя. Поэтому сервисы проверки перебирают распространённые селекторы, а надёжный способ — прочитать селектор из настоящего письма.
Как найти селектор в заголовках письма
- Отправьте письмо из нужного сервиса на ящик, к которому у вас есть доступ.
- Откройте оригинал письма со всеми заголовками. В большинстве почтовых программ это пункт «Показать оригинал», «Исходный код» или «Заголовки» в меню письма.
- Найдите заголовок
DKIM-Signature: значениеs=— селектор,d=— домен. - Посмотрите и
Authentication-Results, который добавляет получатель: там написаноdkim=passилиfailи для какого домена. - Введите домен и селектор в проверку DKIM — увидите опубликованный ключ, его тип и длину. Без селектора инструмент переберёт около 30 распространённых.
Длина ключа: 1024 или 2048 бит
Стандарт DKIM требует от отправителей ключи не короче 1024 бит и рекомендует 2048. Ключи на 512 и 768 бит считаются взламываемыми, и получатели могут их игнорировать. На практике:
- Используйте 2048 бит везде, где это поддерживают провайдер и DNS-панель, — сегодня почти везде.
- 1024 бит ещё проверяется, но выбирать такую длину для нового ключа незачем.
- Более длинные ключи (4096) нужны редко, а некоторые DNS-панели плохо справляются с их длиной.
Для примера: promopilot.link подписывает письма с селектором mail и RSA-ключом на 2048 бит (проверено в октябре 2026).
Ключи через CNAME
Многие провайдеры не просят публиковать сам ключ. Вместо этого вы ставите CNAME, который направляет селектор на запись провайдера:
selector1._domainkey.example.com. CNAME selector1-example-com._domainkey.provider.example.net.
Плюс в том, что провайдер может менять ключи без вашего участия. Так устроен Microsoft 365 с двумя селекторами, selector1 и selector2: вы публикуете оба CNAME, а сервис чередует их при ротации. Многие платформы рассылок и транзакционной почты тоже выдают два-три CNAME. Всегда копируйте точные значения из админ-панели провайдера — в них есть имя вашего аккаунта, угадать их нельзя.
Как настроить DKIM
- Составьте список всех сервисов, которые отправляют почту от домена: почта, рассылки, CRM, поддержка, биллинг, формы на сайте.
- В админ-панели каждого сервиса найдите раздел аутентификации домена или DKIM и добавьте свой домен. Сервис сгенерирует пару ключей или CNAME-записи.
- Опубликуйте записи в DNS-панели точно как выдано: имя (селектор плюс
._domainkey), тип и значение. - Дождитесь обновления DNS, вернитесь в сервис и нажмите проверку или включение подписи. Некоторые провайдеры не начинают подписывать, пока вы этого не сделаете.
- Отправьте тестовое письмо и проверьте в заголовках
dkim=passс вашим доменом вd=. - Повторите для каждого сервиса, затем опубликуйте DMARC, чтобы увидеть общую картину, — см. как настроить DMARC.
Ротация ключей
Ключ, который никогда не меняется, может быть уже скомпрометирован. Чистая ротация выглядит так:
- Сгенерируйте новую пару ключей и опубликуйте открытый ключ под новым селектором.
- Переключите подпись на новый селектор.
- Оставьте старую запись хотя бы на несколько дней, чтобы задержавшиеся в очередях письма тоже проверялись.
- Отзовите старый ключ — опубликуйте запись с пустым
p=— или удалите её.
При ключах через CNAME шаги 1–3 провайдер делает сам. Если ключами управляете вы, обычная практика — ротация раз в 6–12 месяцев.
Частые проблемы с DKIM
- Запись не находится — неверное имя. Некоторые панели сами дописывают домен, и
mail._domainkey.example.comпревращается вmail._domainkey.example.com.example.com. Вводите толькоmail._domainkey. - Ключ испорчен — лишние пробелы, кавычки или переносы внутри
p=, либо ключ разбит на две записи. - Подпись не проходит после отправки — письмо меняют уже после подписи: шлюз добавляет подпись, список рассылки, антиспам-фильтр.
- DKIM проходит, а DMARC нет — сервис подписывает своим доменом. Включите подпись вашим.
Почему для DMARC DKIM важнее SPF
SPF привязан к IP, с которого доставлено письмо, поэтому ломается при любой пересылке: сервера, который переслал письмо, нет в вашей SPF-записи. Подпись DKIM едет внутри письма и переживает пересылку, пока подписанные части не меняют. Поэтому домен, который держится только на SPF, видит в отчётах DMARC провалы от пересланной почты, а домен с выровненным DKIM в каждом потоке — нет. Если у стороннего отправителя можно исправить только одно, включите DKIM с вашим доменом.
DKIM — одна из трёх частей. Как он работает вместе с SPF и DMARC, рассказано в статье SPF, DKIM и DMARC: что это и как настроить; остальную настройку почты проверят проверка SPF, проверка MX и проверка IP по чёрным спискам.