diagnostic · réponse sourcée

Diagnostic de l’erreur DKIM « body hash did not verify »

L’erreur DKIM « body hash did not verify » se produit lorsque le corps de l’e-mail est modifié après l’application de la signature DKIM. Le serveur destinataire recalcule le hash du corps reçu et constate qu’il ne correspond pas au hash stocké dans l’en-tête DKIM-Signature, d’où l’échec de la vérification.

Causes de modification du corps

La cause la plus fréquente est un serveur de messagerie intermédiaire ou un équipement de sécurité qui modifie le contenu du message : ajout d’espaces en fin de ligne, insertion de pixels de suivi, ajout de mentions légales ou conversion des fins de ligne de CRLF en LF. La modification d’un seul caractère dans le corps ou dans la structure MIME suffit à invalider le hash cryptographique et à produire un résultat fail.

Paramètres de canonicalisation

DKIM utilise des algorithmes de canonicalisation pour déterminer le degré de modification toléré avant l’échec du hash. La canonicalisation simple est stricte et échoue à la moindre modification. La canonicalisation relaxed ignore certaines modifications d’espaces et les différences de casse dans les en-têtes. Si vos messages sont souvent modifiés par des relais, passer à la canonicalisation relaxed peut éviter des échecs inutiles.

Problèmes de MIME et d’encodage

Une mauvaise gestion du Content-Transfer-Encoding peut provoquer des incohérences de hash. Si un relais convertit un message de quoted-printable en 8bit ou modifie le jeu de caractères, le hash du corps obtenu changera. Assurez-vous que l’agent de signature et les couches de transport respectent les normes définies dans la RFC 2045 afin de préserver l’intégrité du corps.

Étapes de diagnostic

Pour résoudre le problème, examinez les en-têtes bruts du message en échec. Comparez le corps envoyé à l’origine avec le corps reçu pour identifier précisément où la modification a eu lieu. Vous pouvez utiliser SendHQ ou ses outils gratuits (https://sendhq.cc/tools) pour vérifier la configuration actuelle de votre enregistrement DKIM et vous assurer que la clé publique est correctement publiée dans votre DNS.

Stratégies de prévention

Évitez les relais de messagerie qui modifient le contenu. Si vous devez utiliser un service qui ajoute des pieds de page, veillez à ce que la signature ait lieu au dernier saut de la chaîne de livraison. Vous pouvez aussi mettre en œuvre ARC (Authenticated Received Chain) pour préserver les résultats d’authentification d’origine sur plusieurs sauts, afin que le destinataire final puisse faire confiance à la signature d’origine.

Les questions que posent les équipes

Un échec du hash du corps affecte-t-il SPF ?

Non, SPF et DKIM sont indépendants. Un échec du hash du corps DKIM n’invalide pas un résultat SPF pass, mais il peut affecter l’alignement DMARC si DKIM était la principale méthode d’authentification.

L’ajout d’un pied de page peut-il provoquer cette erreur ?

Oui, l’ajout d’une mention légale d’entreprise ou d’un pied de page de liste de diffusion après la signature du message modifie le contenu du corps, ce qui invalide le hash du corps DKIM.

Quelle est la différence entre la canonicalisation simple et relaxed ?

Simple est stricte et échoue à la moindre modification. Relaxed tolère de petites modifications d’espaces et de casse des en-têtes, ce qui la rend plus résistante aux modifications effectuées par les relais.

Modifier l’objet provoque-t-il un échec du hash du corps ?

Non, l’objet fait partie des en-têtes. Une modification de l’objet provoquerait un échec du hash des en-têtes, pas du hash du corps.

Sources primaires