Aller au contenu
ecdsa.com
OpenDKIM (Authentication-Results header added by the opendkim milter); mailauth reports the same as "bad signature"DKIM

Message d’erreur

dkim=fail reason="signature verification failed"

Également affiché sous la forme

  • dkim=fail (bad signature)

OpenDKIM écrit `dkim=fail reason="signature verification failed"` aussi bien pour les modifications des en-têtes que pour celles du corps (reproduit avec OpenDKIM 2.11.0). mailauth les distingue : « bad signature » pour les en-têtes, « body hash did not verify » pour le corps.

Ce que cela signifie

Le serveur destinataire a trouvé la clé DKIM et calculé la signature sur le message tel qu’il est arrivé, et elle ne correspondait pas : les en-têtes signés (ou, pour OpenDKIM, également le corps) ont changé après que l’expéditeur a signé le message, ou bien la clé publiée ne correspond pas à la clé de signature. DKIM signe les octets exacts après canonicalisation : toute réécriture par un relais (une étiquette dans l’objet, un pied de page, une partie MIME réencodée) la casse donc. Pour DMARC, cela compte comme une vérification DKIM échouée.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Comparer les en-têtes signés avec ceux reçus

    La balise `h=` liste ce qui a été signé. Comparez ces en-têtes dans la copie reçue avec une copie prise chez l’expéditeur (dossier des messages envoyés).

    bash
    # Which headers did the signature cover, and what do they look like now?
    grep -i "^DKIM-Signature" -A4 received.eml | grep -o "h=[^;]*"
    grep -iE "^(From|To|Subject|Date|Message-ID|Content-Type):" received.eml
  2. 2.

    Pour les listes et les services de transfert : ARC et nouvelle signature

    Les intermédiaires qui doivent modifier les messages devraient ajouter des en-têtes ARC et signer avec leur propre domaine, afin que les destinataires puissent encore évaluer l’authentification d’origine.

    text
    # Mailing list / forwarder: add ARC and re-sign with the list's own domain (Mailman 3 example)
    [ARC]
    enabled: yes
    authserv_id: lists.example.org
    domain: lists.example.org
    selector: arc2026
    privkey: /etc/mailman3/arc.private
  3. 3.

    Vérifier la clé DNS par rapport à la clé privée

    `opendkim-testkey` confirme que l’enregistrement publié pour le sélecteur correspond à la clé qu’utilise le signataire.

    bash
    opendkim-testkey -d example.com -s sel -k /etc/opendkim/keys/sel.private -vvv   # DNS record matches the private key?

Erreurs associées

Parcourir toute la base de données des erreurs de signature