Проверка DKIM записи домена так, как её находят принимающие почтовые серверы, или тест подписи вставленного письма: какие селекторы отвечают, кто подписывает, насколько надёжен каждый ключ и выровнен ли он с DMARC.
Источники: 140 распространённых селекторов 67 почтовых провайдеров через Google Public DNS (за ним Cloudflare) · проверки ключей по RFC 6376 и RFC 8301 · письма проверяются в вашем браузере · о вас ничего не сохраняется
Запрашивает те 140 селекторов, которые используют почтовые провайдеры, по имени selector._domainkey. плюс домен: DNS не умеет их перечислять
или перетащите файл .eml на это поле
Проверяется в браузере: письмо остаётся на этом устройстве, если только в нём нет подписи Ed25519, которую этот браузер проверить не может, и вы не решите отправить его на наш сервер. В публичный DNS уходит только имя ключа (s._domainkey.d), а домены From и подписи — на dnsrobot.net за их политикой DMARC.
Попробуйте
Что вы увидите
Каждую DKIM-Signature: кто подписал, каким ключом и какие заголовки
Хеш тела и подпись заголовков проверяются отдельно, поэтому футер, добавленный по пути, не принимают за подделку
Совпадает ли d= с доменом From для DMARC
Риски, которые может скрывать успешная проверка: l=, незащищённый From, ключ короче 2048 бит
Что покидает это устройство при проверке
Это устройство
ПисьмоПроверкиWebCrypto
selector._domainkey.d TXT?имя ключа
From · d=домены From и d=
Публичный DNS
Cloudflare, Google как запасной
dnsrobot.net
политика DMARC
Само письмо остаётся за зелёной линией: наружу уходят только имена, а ответы на них приходят обратно. Единственное исключение — на ваш выбор: подпись Ed25519, которую этот браузер проверить не может, можно отправить на наш сервер, который проверит её в памяти и ничего не сохранит.
Выдуманное письмо, подписанное example.com: чтобы увидеть каждую часть
Реклама
Как выполнить проверку DKIM записи домена?
Введите домен выше: проверка запросит 140 селекторов, которыми пользуются почтовые провайдеры, покажет каждый найденный ключ с размером и провайдером и честно скажет, если ничего не нашла. Знаете селектор? Выберите Домен + селектор, и он проверится первым.
Вручную нужен селектор, потому что DNS не умеет их перечислять: dig +short TXT selector._domainkey.example.com, а в Windows nslookup -type=TXT с тем же именем. Селектор — это s= в DKIM-Signature любого письма (RFC 6376 §3.6.2.1).
dig показывает текст, а не его смысл: он не декодирует размер ключа, не идёт по CNAME провайдера и не отличает резервный слот от сломанного. Это и добавляет эта проверка DKIM записи.
% dig +short TXT selector._domainkey.example.com
Все TXT-строки по этому имени: склейте их, чтобы прочитать ключ.
1Имя — selector._domainkey.domainНет селектора — нет ответа: в DNS нет команды «показать все ключи».
2Две строки, одна записьВ TXT-строке помещается 255 байт, поэтому ключ на 2048 бит разбит; получатели склеивают строки без разделителей.
3Реальный размер ключаopenssl декодирует p=: 2048 бит — то, чего просит RFC 8301.
4CNAME на провайдераЗа ним нет TXT: резервный слот Microsoft 365, а не ошибка.
Ключ google.com и selector1 домена microsoft.com в том виде, как их вернул Cloudflare DNS 25 октября 2026 г..
Как читать результат: перебор селекторов
Сначала идёт ответ одним предложением. Под ним — кто подписывает и сам ключ: каждый тег раскрашен поверх своих символов, а размер ключа показан на шкале RFC 8301; на тёмно-синем — каждый селектор, который запросила проверка, чтобы видно было, что пробовали.
Оценки нет: отозванный ключ или пустой резервный селектор провайдера — это нормально, а «не найдено среди распространённых селекторов» никогда не значит «нет DKIM».
ВердиктОдно предложение: сколько ключей и что нужно сделать.Кто подписываетОдна карточка на провайдера, найденного по CNAME или документированному селектору. Каждый селектор открывает свой ключ.КлючКаждый тег раскрашен поверх своих символов, а размер ключа показан на шкале RFC 8301.Перебор селекторовКаждое запрошенное имя загорается по мере ответа: зелёный — ключ, жёлтый — 1024 бита, пунктир — резервный слот.Выравнивание DMARCВыравнивается ли ключ с d= этого домена с его политикой DMARC.
Проверка DKIM для github.com: вердикт, кто подписывает, ключ, разобранный на теги, с его размером, и на тёмно-синем каждый селектор, который запросила проверка. Выберите номер, чтобы увидеть, что показывает каждая часть.
Реклама
Что такое DKIM?
DKIM (DomainKeys Identified Mail) — это подпись, которую отправляющий сервер добавляет к каждому письму, а получатели проверяют открытым ключом, опубликованным доменом в DNS (RFC 6376). Действительная подпись доказывает два факта: домен из d= подписал письмо, и подписанные части с тех пор не менялись.
Отправитель хеширует тело в bh= и подписывает выбранные заголовки вместе с этим хешем своим закрытым ключом в b=. Получатель читает d= и s=, берёт ключ из s._domainkey.d и повторяет обе операции. Один изменённый байт в теле или в подписанном заголовке — и подпись не проходит.
DKIM ничего не говорит о том, что делать при сбое, и подписать может любой домен. Это работа DMARC: он требует действительную подпись, чей d= совпадает с доменом From:.
Одно письмо: подписано у отправителя и проверено у получателя
Оба результата получены нашим движком: для примера письма на этой странице и для того же письма с Subject, изменённым после подписания. RFC 6376 §3.7, RFC 8301.
Что такое селектор DKIM и как найти свой?
Селектор — это имя одного ключа DKIM: s= в подписи и первая метка DNS-имени, по которому лежит ключ (s1._domainkey.github.com). У домена их может быть сколько угодно: по одному на провайдера, на сервер, на год (RFC 6376 §3.1).
Чтобы найти свой, откройте любое письмо, отправленное доменом, и посмотрите оригинал: в Gmail Ещё (⋮) › «Показать оригинал» показывает DKIM-Signature, и её s= — это селектор. Или вставьте письмо в Проверить письмо выше.
Большинство провайдеров используют фиксированные имена, поэтому перебор их находит. Amazon SES, Postmark, SparkPost и HubSpot создают имя для каждого аккаунта, и узнать его можно только из письма или панели провайдера.
От подписи к ключу и имена, которые используют провайдеры
s1 домена github.com в том виде, как его вернул Cloudflare DNS 25 октября 2026 г.. Имена провайдеров — из их собственной документации (67 провайдеров, 140 селекторов в переборе).
Формат записи DKIM: объяснение каждого тега
Запись DKIM — это TXT-запись из пар тег=значение, разделённых точкой с запятой; обязателен только p=, открытый ключ.v=DKIM1 необязателен, но если есть, должен идти первым (RFC 6376 §3.6.1).
k= задаёт тип ключа (rsa, если не указано ed25519), t= несёт флаги (y — тестирование, s — строгий), h= ограничивает хеши, а s= — службы. Пустой p= намеренно отзывает ключ.
Имена тегов чувствительны к регистру, а повторяющийся тег делает запись недействительной. Неизвестные теги игнорируются.
границы TXT-строк по 255 байт (считая «v=DKIM1; k=rsa; p=»)
Длины p= — это измеренные ключи SubjectPublicKeyInfo. yahoo.com публикует свой ключ на 2048 бит в 4 строках: подойдёт любое разбиение, потому что получатели склеивают их без разделителей (RFC 6376 §3.6.2.2).
Реклама
Ключи DKIM 1024 и 2048 бит и как их менять
Используйте RSA на 2048 бит. RFC 8301 по-прежнему требует от проверяющих принимать ключи в 1024 бита, но просит от подписывающих не менее 2048 и велит проверяющим отвергать ключи короче 1024 бит. M3AAWG называет 1024 бита «на грани взлома» и сообщает, что ключ на 512 бит взломали примерно за 72 часа и примерно за 75 долларов.
Ключ Ed25519 невелик (44 символа p=), и для обратной совместимости RFC 8463 позволяет подписывающим добавить рядом подпись RSA: два селектора, две подписи (RFC 8463).
Меняйте так: опубликуйте новый ключ в новом селекторе, переключите подпись, держите старый ключ от 7 до 30 дней для писем в пути, затем опустошите его p=. M3AAWG советует делать это раз в полгода. Провайдеры вроде Fastmail и Microsoft 365 делают это за вас с помощью резервных селекторов.
Где настоящие ключи лежат на шкале RFC 8301
5121 0242 0484 096
Не проходитДействителен, перейдите на 2048ХорошоМожет не пройти у части получателей
microsoft.com · selector2
github.com · k1
google.com · 20251104
fastmail.com · fm2
archlinux.org · dkim-rsa
archlinux.org · dkim-ed25519 (Ed25519)
Замена без перерыва (M3AAWG)
День 0Опубликуйте новый ключ в новом селекторе
День 1+Переключите подпись на него
+7–30 днейДержите старый ключ для писем в пути
ЗатемОпустошите старый p=; не используйте имя повторно
fastmail.comfm1пустой p=fm22 048fm3пустой p=три CNAME, заполнен один: ротация — это изменение DNS на стороне Fastmail
Размеры ключей прочитаны из DNS 25 октября 2026 г., декодированы из каждого p=. RFC 8301 §3.2; M3AAWG DKIM Key Rotation Best Common Practices (2019).
Почему DKIM не проходит? Хеш тела, пересылка и рассылки
DKIM не проходит, когда подписанные байты изменились, когда ключ не найден или когда ключ не подходит к подписи. Пересылка, которая не меняет письмо, сохраняет DKIM (в отличие от SPF); рассылки обычно его ломают, потому что добавляют футеры или помечают тему.
Проверка на этой странице смотрит хеш тела и подпись заголовков отдельно, поэтому отличает футер, добавленный по пути, от подделки.
Хеш тела не совпал
ключтелозаголовки
Рассылка добавила футер размером 153 Б. Заголовки по-прежнему проверяются ключом project.example, так что это не подделка.
Что делать Рассылки, которые не меняют тело, или ARC (RFC 8617), чтобы последующие получатели видели исходный результат.
body-hash-mismatch
Подпись не прошла
ключтелозаголовки
Подписанный заголовок изменили после подписания (рассылка дописала своё название в Subject) или в селекторе теперь другой ключ.
Что делать Не переписывайте подписанные заголовки; публикуйте новый ключ в новом селекторе, а не заменяйте имеющийся.
signature-mismatch
Нет ключа для подписи
ключтелозаголовки
s=2023old._domainkey.shop.example — NXDOMAIN: селектор удалили, пока письма с ним ещё были в пути.
Что делать Держите старые ключи опубликованными 7–30 дней после переключения; опустошайте p=, а не удаляйте.
key-not-found
Пересылка: пересылающий сервер, который передаёт письмо без изменений, сохраняет DKIM действительным, поэтому DMARC обычно переживает пересылку благодаря DKIM, даже когда SPF не проходит.
DKIM, SPF и DMARC: в чём разница
SPF говорит, какие серверы могут отправлять почту от имени домена, DKIM доказывает, что домен подписал письмо и оно не менялось, а DMARC привязывает оба к адресу From: и говорит, что делать при сбое.
Они отвечают на разные вопросы, поэтому нужны все три: Gmail и Yahoo требуют от массовых отправителей SPF и DKIM плюс запись DMARC, а RFC 9989 просит домены с p=reject подписывать DKIM, а не полагаться на SPF.
Три записи, три вопроса
Три записи, три вопроса
SPF
DKIM
DMARC
Что доказывает
Этот сервер может отправлять почту от домена MAIL FROM
Записи github.com в том виде, как они прочитаны 25 октября 2026 г..
Как прочитать заголовок DKIM-Signature в письме
Откройте исходное письмо и найдите заголовок DKIM-Signature: d= — кто подписал, s= — каким ключом, h= перечисляет подписанные заголовки, а bh= и b= — два хеша, которые проверяет получатель.
Вердикт получателя — отдельный заголовок, добавляемый при получении: Authentication-Results: … dkim=pass header.d=example.com header.s=dnsrobot-sample. Страница «Показать оригинал» в Gmail (на английском) резюмирует его как «DKIM: 'PASS' with domain example.com».
В письме может быть несколько подписей, по одной на каждого подписывающего (ваш домен и ваш почтовый сервис или рассылка). Для DMARC достаточно одной действительной подписи с выровненным d=.
Выдуманное письмо-пример, которое загружает эта страница (example.com, ключ, созданный для него), проверенное движком.
Проверка DKIM: частые вопросы
Что такое запись DKIM?
Запись DKIM — это TXT-запись, которая публикует открытый ключ домена по имени selector._domainkey.domain, например google._domainkey.example.com. В ней пары тег=значение: p= — ключ в base64, обязателен, k= — тип ключа, t= — флаги. Получатели берут её, чтобы проверить DKIM-Signature входящей почты. У домена их может быть много, по одной на селектор, обычно по одной на сервис отправки.
Как найти свой селектор DKIM?
Откройте любое письмо, отправленное доменом, посмотрите исходное сообщение и найдите заголовок DKIM-Signature: значение после s= — это селектор, а d= — домен. В Gmail: Ещё (⋮) › «Показать оригинал»; в Outlook в Интернете: View › View message source. Или вставьте письмо в «Проверить письмо» выше: оно само прочитает s= и d=.
Почему проверка не находит ключ, хотя почта подписана?
Потому что DNS не умеет перечислять селекторы: ключ находится, только если спросить его точное имя. Проверка спрашивает 140 имён, которыми пользуются провайдеры; если ваш домен подписывает другим (Amazon SES и Postmark создают по одному на аккаунт), перебор его не увидит. Добавьте селектор из s= письма, и он проверится первым, или проверьте само письмо.
Годится ли ещё ключ DKIM на 1024 бита?
Он ещё работает: RFC 8301 требует от проверяющих принимать ключи RSA от 1024 до 4096 бит, а Gmail и Yahoo задают 1024 бита как минимум. Но RFC 8301 просит от подписывающих не менее 2048 бит, а M3AAWG называет 1024 «на грани взлома». Запланируйте замену: Microsoft 365 и Google Workspace предлагают ключи на 2048 бит. RFC 8301 велит проверяющим отвергать ключи короче 1024 бит.
Что значит пустой p=?
Пустой p= означает, что ключ отозван: подписи с этим селектором не проходят, как будто ключа нет. Обычно это сделано намеренно. Google так хранит свои старые датированные селекторы, а Fastmail и Microsoft 365 держат пустые резервные селекторы, чтобы перейти на них при ротации. Проблема возникает, только если это тот селектор, которым ваша почта подписана сегодня.
Что значит t=y в записи DKIM?
t=y помечает ключ как тестовый: получатели должны считать почту с ним неподписанной, даже если подпись проверяется. Это нужно для первой настройки, и о нём часто забывают. t=s — другое: он значит «строгий», то есть i= в подписях должен быть в точности доменом подписи, а не поддоменом. Некоторые почтовые сервисы публикуют t=s в своих ключах; ключи SendGrid для github.com его содержат.
Почему DKIM не проходит с ошибкой «body hash did not verify»?
Тело, которое хешировал получатель, не совпадает со значением bh= в подписи, то есть тело изменилось после подписания. Это вызывают рассылки, добавляющие футер, защитные шлюзы, переписывающие ссылки, и дисклеймеры, которые добавляет сервер. Если подпись заголовков всё же проверяется, письмо подлинное, но изменённое; проверка на этой странице смотрит оба случая отдельно.
Переживает ли DKIM пересылку письма?
Обычно да. Пересылающий сервер, который передаёт письмо без изменений, сохраняет подпись действительной, потому что DKIM подписывает содержимое, а не путь. Этим он отличается от SPF, который не проходит на IP-адресе пересылающего сервера. Пересылки, меняющие письмо, например рассылки с футером или тегом в теме, ломают DKIM; ARC позволяет им поручиться за исходный результат.
Нужен ли DKIM, если уже есть SPF?
Да. SPF ломается при пересылке и охватывает только скрытый адрес MAIL FROM, а DKIM переживает пересылку и может выровняться с доменом From:, который проверяет DMARC. Gmail и Yahoo требуют оба от массовых отправителей, Outlook.com — с мая 2025 года, а RFC 9989 просит домены с p=reject подписывать почту DKIM.
Как часто менять ключи DKIM?
M3AAWG рекомендует не реже раза в полгода. Опубликуйте новый ключ в новом селекторе, переключите подпись на него, держите старый ключ опубликованным от 7 до 30 дней, чтобы письма в пути ещё проверялись, затем опустошите его p=, а не удаляйте. Никогда не используйте имя селектора повторно. Хостинг-провайдеры с селекторами CNAME меняют ключи за вас.
Загружается ли моё письмо, когда я проверяю его здесь?
Нет. Этот валидатор DKIM проверяет письмо в вашем браузере: публичный DNS спрашивают только об именах ключей (s._domainkey.d), а dnsrobot.net — только о политике DMARC домена From и доменов подписи. Единственное исключение — подпись Ed25519, которую браузер проверить не может: тогда страница спросит вас, прежде чем один раз отправить письмо на наш сервер, который проверит его в памяти и ничего не сохранит.
Можно ли использовать ключ DKIM Ed25519?
Да. RFC 8463 определяет его и требует от проверяющих его поддержки. Для обратной совместимости опубликуйте его в отдельном селекторе рядом с ключом RSA и подписывайте каждое письмо дважды, как archlinux.org с dkim-ed25519 и dkim-rsa: получатели, не умеющие проверять Ed25519, всё равно получат подпись RSA. Microsoft 365 и Google Workspace предлагают только ключи RSA.