Проверка DKIM: найти DKIM-ключ домена

Найдите открытый ключ DKIM, который домен публикует для селектора, или попробуйте селекторы по умолчанию популярных почтовых провайдеров и посмотрите, разбирается ли ключ, какой он длины и не отозван ли он.

Почему для DKIM нужен селектор

Ключ DKIM публикуется как TXT-запись по имени selector._domainkey.ваш-домен. Селектор — это метка, которую выбирает тот, кто отправляет почту, и у домена их может быть много: по одному на каждого почтового провайдера, со сменой во времени. DNS не даёт способа их перечислить, поэтому для поиска DKIM нужен селектор.

Его можно найти в любом письме, отправленном с домена: откройте исходный текст письма и прочитайте заголовок DKIM-Signature. Тег s= — это селектор, а d= — подписывающий домен. Если оставить селектор пустым, OrbitProbe перебирает фиксированный список селекторов, которые крупные провайдеры используют по умолчанию. Если по этому списку ничего не найдено, это не значит, что у домена нет DKIM.

Как читать результат

v=DKIM1 идентифицирует запись, k= задаёт тип ключа (RSA, если не указано иное, либо ed25519), а p= содержит открытый ключ. Для RSA-ключей инструмент декодирует ключ и сообщает его длину: 2048 бит — текущая норма, 1024 ещё проходит проверку, но ключ стоит заменить, а всё, что короче, крупные получатели отклоняют. Пустой p= означает, что ключ намеренно отозван. t=y помечает, что домен ещё тестирует DKIM.

Корректный ключ в DNS — это половина DKIM. Вторая половина в том, что отправляющий сервер действительно подписывает письма соответствующим закрытым ключом, а это может показать только реальное письмо. Проверьте в заголовке Authentication-Results доставленного письма наличие dkim=pass.

Как пользоваться этим инструментом

  1. Введите домен. Введите или вставьте доменное имя, например example.com. Подойдёт и полный URL: схема, путь и начальное www будут отброшены.
  2. Укажите селектор, если знаете его. Селектор — это тег s= в заголовке DKIM-Signature. Если его не указать, инструмент перебирает список распространённых селекторов почтовых провайдеров.
  3. Посмотрите ключ. Вы увидите тип и длину ключа, флаги тестового режима и отзыва. Ключ в DNS показывает, что DKIM настроен, но не что письма подписываются.

То же самое в командной строке

Та же проверка из терминала. В командах используется example.com: замените его своим именем.

  • DKIM-ключ селектораdig selector1._domainkey.example.com TXT +short
  • Windowsnslookup -type=TXT selector1._domainkey.example.com

Замените selector1 на селектор из тега s= настоящего письма.

Частые вопросы

Как найти свой селектор DKIM?

Откройте исходный текст письма, отправленного с домена, и найдите заголовок DKIM-Signature. Значение после s= и есть селектор. Почтовые провайдеры также показывают его на странице аутентификации домена.

DKIM-запись не найдена. Значит, домен не использует DKIM?

Не обязательно. Без селектора перебираются только распространённые значения по умолчанию. Возьмите селектор из реального письма и проверьте снова.

Какую длину DKIM-ключа использовать?

RSA 2048 бит. Некоторым DNS-хостингам нужно, чтобы запись была разбита на несколько строк в кавычках, потому что одна строка ограничена 255 символами; это нормально и здесь учитывается.

Что означает пустой p=?

Ключ отозван. Письма, подписанные с этим селектором, больше не проходят проверку. Это стандартный способ вывести ключ из употребления.

Достаточно ли DKIM, чтобы остановить подделку адреса?

Нет. DKIM доказывает, что письмо подписано доменом. Требовать, чтобы подписывающий домен совпадал с видимым адресом From, и указывать, что делать при несовпадении, получателям предписывает именно DMARC.