Назначение DKIM и роль записи в аутентификации почты
Протокол DKIM (DomainKeys Identified Mail) является одним из базовых элементов защиты электронной почты от подделки. Он позволяет владельцу домена связать свое имя с отправляемым письмом с помощью криптографической подписи. Получатели используют открытый ключ, опубликованный в DNS-зоне домена в виде текстовой записи (TXT), для проверки подлинности этой подписи.
Инструмент «Проверка записей DKIM» предназначен для администраторов почтовых доменов, которым необходимо проверить формат, сегментацию, представление открытого ключа и выявить очевидные риски перед публикацией записи в DNS, а также для тех, кто занимается поиском и устранением неисправностей в существующих конфигурациях DKIM.
Локальный анализ структуры записи
Инструмент выполняет синтаксический разбор и анализ компонентов предоставленной записи. Важно учитывать, что обработка данных происходит локально в браузере пользователя. Сервис BroBroGo не загружает и не сохраняет введенные данные.
Поскольку это локальная проверка текста записи, инструмент не выполняет запросы к DNS и не проверяет подписи реальных писем. Результаты работы программы служат для обзора конфигурации, а не для подтверждения доставки сообщений.
Для анализа пользователь вводит значение DKIM TXT, длина которого ограничена 20 000 символов. Инструмент принимает и объединяет цитируемые фрагменты TXT и скобки файлов зоны. Если поле ввода остается пустым, отображается сообщение: «Сначала вставьте запись DKIM.».
Ограничения DNS и сегментация строк
При публикации записей в системе доменных имен (DNS) действуют строгие технические ограничения. Запись DNS TXT может содержать несколько символьных строк, при этом длина каждой отдельной строки ограничена 255 байтами. DNS автоматически объединяет эти строки в порядке их следования.
Инструмент проверяет соблюдение этих правил и может выдавать следующие сообщения при разборе структуры:
- «Цитированная презентация TXT имеет неправильный формат. Сохраняйте все цитируемые фрагменты и удаляйте текст вне кавычек.»
- «Объединены цитируемые фрагменты
‹detail›TXT перед проверкой записи.» - «Фрагмент TXT
‹detail›превышает ограничение в 255 байт для одной строки символов DNS.»
Правила валидации тегов и параметров DKIM
Каждая запись DKIM состоит из набора тегов и их значений, разделенных точкой с запятой. Инструмент проверяет корректность каждого поля по ряду строгих правил:
- Версия (
v): Если тег присутствует, он должен располагаться самым первым в записи. Его значение должно быть строго равноDKIM1. Нарушение этих правил вызывает ошибки: «Тег v=DKIM1 должен быть первым тегом, когда он присутствует.» или «Тег v должен быть точно DKIM1, а не «‹detail›».». - Тип ключа (
k): Допускаются только значенияrsaилиed25519. При использовании других вариантов выводится ошибка: «Тип ключа «‹detail›» не поддерживается. Используйте rsa или ed25519.». - Открытый ключ (
p): Этот тег является обязательным. Если он отсутствует, генерируется ошибка: «Отсутствует требуемый тег открытого ключа p.». Если значениеpпустое, это означает публикацию отозванного ключа, о чем сообщает предупреждение: «Значение p пустое, что публикует аннулированный ключ DKIM.». Также проверяется соответствие ключа выбранному типу, иначе выводится: «Значение p не является допустимым открытым ключом для выбранного типа ключа.». - Сервисы (
s): Допустимые значения должны содержатьemailили*. В противном случае возникает ошибка: «Значение s «‹detail›» содержит неподдерживаемый сервис. Используйте email или *.». - Хеш-алгоритмы (
h): Запись должна разрешать использование алгоритмаsha256. Если это условие не выполнено, выводится: «Тег h должен разрешать sha256 для текущих подписей DKIM.». Использование устаревшего алгоритмаsha1недопустимо и вызывает ошибку: «sha1 устарел для подписей DKIM и не должен использоваться.».
При разборе синтаксиса также контролируется уникальность тегов и корректность их написания. При обнаружении дубликатов или ошибок форматирования выводятся сообщения: «Тег ‹tag› встречается более одного раза.», «В поле «‹tag›» отсутствует знак равенства.» или «Имя тега «‹tag›» имеет неправильный формат.». Если в записи присутствует неизвестный параметр, инструмент сообщает: «Неопознанный тег ‹tag› сохраняется, но не интерпретируется.».
Требования к криптографическим ключам
Безопасность DKIM напрямую зависит от длины и типа используемых ключей. Инструмент распознает два типа ключей и предъявляет к ним следующие требования:
- RSA: Ключи размером менее 1024 бит считаются небезопасными и недействительными. В этом случае выводится ошибка: «Ключ RSA имеет размер
‹detail›бит. Для DKIM требуется как минимум 1024 бит.». Ключи размером менее 2048 бит признаются слабыми: «Ключ RSA имеет размер‹detail›бит. Рекомендуется 2048 бит или больше.». - Ed25519: Длина декодированного ключа Ed25519 должна составлять ровно 32 байта. Если это условие нарушено, система сообщает: «Ключ Ed25519 декодируется в
‹detail›байт вместо 32.».
Интерпретация результатов проверки
После обработки введенного текста инструмент выводит структурированный отчет. В разделе «Сводка DKIM» отображаются ключевые параметры:
- Версия
- Тип ключа
- Размер ключа
- Сервисы
Ниже формируется таблица «Разобранные поля» с колонками «Тег» и «Значение». В разделе «Примечания к записи» выводятся сведения о количестве частей TXT, использовании значений по умолчанию, отзыве ключа или неопределенном размере в битах.
Если запись составлена корректно, отображается статус: «Вставленное значение не содержит ошибок записи или предупреждений о ключе.». В конце отчета выводится итоговая строка: «Проверены поля ‹fields›: ошибки ‹errors› и предупреждения ‹warnings›.».
Часто задаваемые вопросы
Почему длинные записи DKIM разделяются на строковые литералы?
Запись DNS TXT может содержать несколько символьных строк, каждая строка ограничена 255 байтами. DNS объединяет строки в порядке следования, поэтому все фрагменты должны оставаться в одной записи TXT.
Какие типы ключей DKIM распознает этот проверяющий?
Он распознает открытые ключи RSA и Ed25519, проверяет их форму Base64 и сообщает, что ключи RSA с менее чем 1024 битами недействительны, а ключи с менее чем 2048 битами слабее рекомендуемых.
Доказывает ли чистый результат, что DKIM работает?
Нет. Эта страница проверяет только текст записи, который вы вставляете. Она не выполняет запрос к DNS, не проверяет подпись сообщения, не подтверждает имя селектора и не доказывает, что получатели почты могут получить запись.