DomainKeys Identified Mail (DKIM) – один из трех основных методов аутентификации электронной почты на сегодняшний день. Он отвечает за проверку того, что отправитель письма является тем, за кого себя выдает, путем проверки цифровой зашифрованной подписи, добавленной почтовым сервером-отправителем. Однако проверка подлинности DKIM часто оказывается неудачной, в результате чего письма полностью отклоняются или попадают в папку со спамом.
Проверка DKIM может не сработать по нескольким причинам. Когда это происходит, пользователи часто сообщают о следующей ошибке в заголовках результатов проверки подлинности (ARC) электронного письма:
DKIM Fail: Body hash did not verify
Часто ошибка может немного отличаться и начинаться с DKIM Neutral
. Однако остальная ошибка остается неизменной.

Почему хэш тела DKIM не прошел проверку
Как уже упоминалось в подробном посте о DKIM, аутентификация DKIM работает как двухкомпонентный механизм, одна часть которого находится в заголовке электронной почты, а другая – в DNS-записях DKIM. В записи DKIM хранится общедоступный ключ шифрования, а в заголовке DKIM – вычисленный хэш тела письма. Когда в заголовке письма появляется ошибка «Body hash did not verify», это означает, что вычисленное значение хэша тела сообщения не совпало со значением тега «bh» (body hash), хранящегося в заголовке письма. Однако это может произойти по разным причинам. Вот несколько распространенных причин, по которым проверка DKIM может не пройти:
- Электронное письмо было подделано в пути Вся цель DKIM заключается в том, чтобы убедиться, что содержимое электронного письма находится в исходном состоянии, как его отправил подлинный отправитель, и что содержимое не было доступно/манипулировано в пути.
Если содержимое тела письма было изменено после добавления подписи DKIM, проверка DKIM будет безусловно неудачной. Если это приводит к неудаче проверки DKIM, это также часто означает, что соединение Transport Layer Security (TLS) также не работает, поскольку его цель – создать зашифрованный туннель для связи между серверами. Кроме того, это означает, что MTA-STS, если он настроен, также потерпел неудачу. - Тело письма было изменено MTA Агенты передачи почты, или MTA, которые пересылают электронную почту, часто добавляют текст нижнего колонтитула к полученному письму, прежде чем автоматически переслать его получателю. В это время письмо уже подписано сервером отправки, а теперь его содержимое изменено. Это приводит к неудаче проверки DKIM, поскольку хэш тела в теге «bh» в заголовке DKIM не соответствует вычисленному хэшу. Сообщение об ошибке для такого DKIM-неудачника – «DKIM Neutral», что означает, что DKIM-проверка не прошла, но в ней также нет ничего плохого.
- Подписант неправильно рассчитал DKIM-подпись. Еще одна причина, по которой проверка DKIM может не пройти, заключается в том, что подписывающий сервер неправильно рассчитал зашифрованную подпись для вставки. В этом случае, даже если все настройки DKIM верны, проверка DKIM может завершиться с сообщением об ошибке «DKIM Fail: Body hash did not verify».
- Запись DKIM не существует Запись DKIM не является обязательной для проверки подлинности электронной почты, но рекомендуется. Возможно, домен-отправитель не создал DNS-запись DKIM для аутентификации. Другая возможность – неправильная конфигурация или неверный синтаксис записи DKIM. В этом случае для устранения ошибки необходимо исправить следующее.
- Неправильный открытый ключ в DNS-записи DKIM Также возможно, что DNS-записи настроены неправильно. TXT-запись DNS DKIM хранит открытый ключ с помощью тега
p
. Возможно, открытый ключ неверен, и когда принимающий почтовый сервер выполняет DNS-поиск для DKIM-записей, он использует неверный ключ для проверки подписи, и это никогда не приведет к получению соответствующего значения в качестве значения заголовка «bh». - DNS недоступен (перебои в работе DNS) Перебои в работе DNS или проблемы в сети приводят к нарушению связи между почтовыми серверами и серверами доменных имен. В этом случае поиск DNS не может быть выполнен, и записи DKIM не могут быть удалены. Эта проблема также может привести к ошибке «Body hash did not verify».
- Проблема с поставщиками услуг электронной почты Если вы пользуетесь услугами сторонних поставщиков услуг электронной почты, таких как Gmail, Outlook, Yahoo и т. д., то возможно, что их серверы испытывают проблемы или не могут обработать длину ключа DKIM. Обычно эту проблему можно решить, открыв тикет поддержки у вашего почтового провайдера. Более того, если это так, вы заметите, что сообщение об ошибке «Body hash did not verify» появляется только при отправке писем с помощью определенного почтового провайдера, в то время как остальные работают нормально и проверяют DKIM.
- DKIM не настроен для сторонних служб Если вы используете сторонний поставщик услуг электронной почты, убедитесь, что вы включили DKIM-запись, указанную им. Каждый ESP имеет свой собственный набор инструкций, которым необходимо следовать, и предоставляет пользователям открытый ключ, который они должны использовать для правильной DKIM-аутентификации при использовании своих почтовых серверов.
- Неправильный селектор DKIM. DKIM-аутентификация использует селекторы в заголовках электронной почты, которые указывают, какую DKIM DNS-запись использовать для конкретного почтового сервера. Возможно, ваш почтовый сервер использует неправильный селектор DKIM, который либо не существует, либо не содержит открытый ключ, необходимый для данного конкретного ESP.
Последствия сбоя DKIM
Если вы хорошо знаете, как работает проверка электронной почты, вы должны знать, что для положительного согласования DMARC требуется либо проверка SPF, либо проверка DKIM. Поэтому, если проверка DKIM не удалась, это повышает вероятность того, что проверка DMARC также не удастся, и в этом случае письмо не будет доставлено получателю или попадет в папку спама.
Если выравнивание DMARC неоднократно терпит неудачу, это увеличивает соотношение неаутентифицированных писем для вашего домена, повышая риск попадания в черный список. Теперь вы понимаете, что ошибка «Body hash did not verify» имеет эффект домино для вашего домена и его способности доставлять почту. Поэтому устранение этой ошибки должно быть приоритетной задачей.
Устранение ошибки «Body hash did not verify»
Поскольку существует несколько причин, по которым проверка DKIM может быть неудачной, вы должны следовать специальным инструкциям, чтобы сначала определить причину ошибки. Как только причина будет определена, устранить неполадки будет проще.
Проверьте, существуют ли правильные записи DKIM
В первую очередь необходимо проверить, существует ли запись DKIM для вашего домена или нет.
Проверка конфигурации почтовых переадресаторов/шлюзов
Как уже упоминалось ранее в этом посте, одной из причин сбоя проверки DKIM является добавление или изменение содержимого тела письма почтовыми шлюзами и форвардерами. Поскольку подпись DKIM уже включена, эти изменения приводят к тому, что значение заголовка DKIM «bh» не совпадает с вычисленным хэшем тела сообщения, что, в свою очередь, приводит к сбою проверки DKIM. Если у вас есть доступ к этим серверам, проверьте и запретите им добавлять содержимое в пересылаемые сообщения или настройте их на пересылку сообщений после их изменения.
Проверка DNS-записей DKIM
Вам также необходимо проверить, правильно ли настроены TXT-записи DKIM DNS для вашего домена. Это включает в себя синтаксис записи, используемые теги и установленные для них значения.
Кроме того, убедитесь, что вы используете Селектор и Открытый ключ, определенные поставщиком услуг электронной почты, если вы его используете. Убедитесь, что DKIM-ключ действителен и совпадает с ключом, указанным в ваших DNS-записях.
Используйте «Quoted-Printable» Content-Transfer-Encoding
Для передачи всех типов файлов через Интернет, чтобы все почтовые агенты передачи могли их обрабатывать, необходимо использовать определенную кодировку. Электронные письма используют различные типы кодировки для передачи содержимого между серверами.
Протокол SMTP накладывает ограничения на обработку различных типов кодировок некоторыми серверами. Однако кодировка «Quoted-Printable» хорошо работает для DKIM. Как сообщил один из пользователей здесь, изменение значения заголовка «Content-Transfer-Encoding» на «quoted-printable» устранило проблему «Body hash not verify», с которой они сталкивались на серверах Outlook. По словам пользователя, серверы Outlook не могли справиться с 8-разрядными стандартами кодирования.
Google и Yahoo недавно объявили, что все отправители должны иметь включенные SPF и DKIM. При этом уровень спама для вашего домена должен быть ниже 0,3%, иначе ваш домен может быть внесен в черный список.
При этом, если проверка DKIM не проходит, шансы на провал проверки DMARC также увеличиваются, что означает, что ваши письма могут быть отклонены или отправлены в папку спама. Если это будет продолжаться долгое время, ваш домен может попасть в черный список. Поэтому не воспринимайте сообщение «DKIM fail: Body hash did not verify», и решайте проблему как можно скорее.
Комментарии (0)