← RFC Reference

RFC 6377 : DKIM et listes de diffusion

Listes de diffusion et champs d'en-tête Published March 2026
ELI5: Lorsque vous envoyez un email signé DKIM à une liste de diffusion, le logiciel de la liste modifie souvent votre message — en ajoutant des pieds de page, en modifiant le sujet, en réécrivant l'adresse De. Ces modifications cassent votre signature DKIM comme l'ouverture d'un sceau inviolable. RFC 6377 documente ce problème et conseille à la fois les opérateurs de liste et les expéditeurs sur la façon de minimiser les dégâts.

Pourquoi cela existe

DKIM (RFC 6376) signe les en-têtes et le contenu du corps des e-mails avec un hachage cryptographique. Toute modification après la signature invalide la signature. Les listes de diffusion, par conception, modifient les messages en transit. Cela crée une tension fondamentale :

Quand DMARC est entré en scène (exigeant l'alignement de DKIM ou SPF), cette tension est devenue une crise de délivrabilité. Les messages envoyés aux listes de diffusion par des domaines avec des politiques DMARC p=reject ont commencé à être rejetés pour tous les abonnés de la liste. La RFC 6377 a été publiée pour documenter le problème et recommander des stratégies d'atténuation.

Comment cela fonctionne

Ce que les listes de diffusion font aux messages

Un gestionnaire de liste de diffusion typique (Mailman, Sympa, LISTSERV, Google Groups) peut effectuer n'importe quelle combinaison de :

Modification Casse DKIM ? Détails
Ajouter des en-têtes List-* Uniquement si h= les couvre List-Unsubscribe, List-Id, List-Post, etc.
Ajouter/modifier le préfixe Objet Oui, si Objet est signé p. ex., [nom-liste] Objet original
Ajouter un pied de page au corps Oui Ajoute des instructions de désinscription ou des avertissements
Réécrire l'en-tête From Oui Change From à l'adresse de la liste (atténuation DMARC)
Changer Reply-To Uniquement si Reply-To est signé Définit Reply-To à l'adresse de la liste
Changer l'expéditeur d'enveloppe Non (DKIM signe les en-têtes, pas l'enveloppe) Change MAIL FROM pour la gestion des rebonds
Restructuration MIME Oui Enveloppe en multipart pour ajouter un pied de page texte

Le flux de vérification de signature

; Étape 1 : L'auteur envoie un message signé DKIM à la liste
From: alice@example.com
To: dev-list@lists.example.org
Subject: Proposed API change
DKIM-Signature: d=example.com; h=from:to:subject; ...

; Étape 2 : Le logiciel de liste modifie le message
From: alice@example.com            ← inchangé (ou réécrit)
To: dev-list@lists.example.org
Subject: [dev] Proposed API change  ← modifié : préfixe ajouté
List-Id: <dev-list.lists.example.org>  ← ajouté
DKIM-Signature: d=example.com; h=from:to:subject; ...

; Corps original + pied de page ajouté
The body text here...

--
To unsubscribe, visit https://lists.example.org/unsub  ← ajouté

; Étape 3 : Le serveur du destinataire vérifie DKIM
; Résultat : ÉCHEC (Objet et corps ont été modifiés après la signature)

Pratiques recommandées pour les opérateurs de listes

La RFC 6377 recommande que les listes de diffusion minimisent les modifications pour préserver les signatures DKIM :

  1. Ne pas modifier l'en-tête Objet. Éviter de préfixer [nom-liste]. Utiliser plutôt l'en-tête List-Id — les clients de messagerie peuvent filtrer dessus.
  2. Ne pas ajouter de pieds de page au corps. Utiliser l'encapsulation MIME si le contenu du pied de page est requis, ou ajouter le pied de page comme une partie MIME séparée plutôt que de l'ajouter au corps existant.
  3. Ajouter une nouvelle signature DKIM. La liste doit signer le message modifié avec sa propre clé DKIM (d=lists.example.org). Cela ne répare pas la signature originale, mais cela fournit une signature valide du domaine de la liste.
  4. Considérer la réécriture From pour DMARC. Quand le domaine de l'expéditeur original publie p=reject, réécrire l'en-tête From au domaine de la liste et mettre l'expéditeur original dans Reply-To. C'est largement implémenté comme « From munging ».

Pratiques recommandées pour les expéditeurs

  1. Utiliser la canonicalisation relaxed. Signer avec c=relaxed/relaxed plutôt que c=simple/simple. La canonicalisation relaxed tolère les petits changements d'espaces blancs que certains logiciels de liste introduisent.
  2. Signer uniquement les en-têtes essentiels. La balise h= doit couvrir les en-têtes qui vous intéressent (From, Subject, Date, To, Message-ID) mais pas les en-têtes que les listes ajoutent généralement (List-Id, List-Unsubscribe).
  3. Utiliser la balise l= de longueur de corps avec prudence. La balise l= limite la partie du corps qui est signée, de sorte que les pieds de page ajoutés ne cassent pas la signature. Cependant, cela a des implications de sécurité — un attaquant pourrait ajouter du contenu malveillant sous la portion signée.

Détails techniques clés

La complication DMARC

La RFC 6377 précède DMARC (RFC 7489), mais les problèmes qu'elle décrit sont devenus bien plus graves une fois DMARC déployé. Avec DMARC p=reject :

; Le domaine de l'auteur publie une DMARC stricte
_dmarc.example.com TXT "v=DMARC1; p=reject; ..."

; Le message passe par la liste de diffusion, DKIM se casse
; Le serveur du destinataire vérifie DMARC :
;   - SPF : ÉCHEC (expéditeur d'enveloppe est la liste, pas example.com)
;   - DKIM : ÉCHEC (signature cassée par les modifications de la liste)
;   - DMARC : ÉCHEC → REJETER
; Résultat : le message est rejeté pour tous les abonnés de la liste

C'est pourquoi ARC (RFC 8617) a été développé — pour préserver les résultats d'authentification à travers les intermédiaires comme les listes de diffusion.

ARC comme solution moderne

Le protocole de chaîne d'authentification reçue (ARC, Authenticated Received Chain) permet aux intermédiaires comme les listes de diffusion d'enregistrer les résultats d'authentification originaux avant de modifier le message. Le serveur du destinataire peut alors utiliser la chaîne ARC pour récupérer le passe DKIM/SPF original, même après que la liste ait cassé la signature originale.

Stratégies de réécriture From

L'atténuation DMARC la plus courante pour les listes de diffusion est la réécriture From :

; Message original
From: Alice Smith <alice@strict-dmarc.com>

; Après réécriture From de la liste
From: Alice Smith via Dev List <dev-list@lists.example.org>
Reply-To: Alice Smith <alice@strict-dmarc.com>

Cela préserve l'identité de l'expéditeur original dans le texte affiché et Reply-To tout en faisant correspondre le domaine From à la signature DKIM de la liste.

Erreurs courantes

Impact sur la délivrabilité

Related RFCs