Aller au contenu
emailmarketing.net

Déploiement de DMARC en détail

Déploiement opérationnel de DMARC : référence complète des balises, politique des sous-domaines, échantillonnage pct, rigueur de l’alignement, traitement des rapports, échecs liés au transfert et aux listes de diffusion, et progression none → quarantine → reject.

Opérationnelesp-operatorsender

Cet article complète DMARC (notions, alignement, enregistrement de base) avec les détails opérationnels dont le propriétaire d’un domaine a besoin pour déployer DMARC sans risque : l’ensemble des balises, la politique des sous-domaines, l’échantillonnage par pourcentage, la rigueur de l’alignement, le traitement des rapports, les scénarios d’échec courants et le chemin vers une politique contraignante. Le contenu provient de dmarc.org, le site de référence de la spécification DMARC.

État de la spécification

Document Rôle Statut
RFC 7489 (mars 2015) Spécification DMARC d’origine (statut informatif) Obsolète
RFC 9989 (mai 2026) Protocole DMARC de base (« DMARCbis », voie des normes) En vigueur
RFC 9990 (mai 2026) Rapports agrégés En vigueur
RFC 9991 (mai 2026) Rapports d’échec En vigueur

Principales évolutions des nouvelles RFC (sans rupture : les enregistrements commencent toujours par v=DMARC1) :

  • Balises supprimées : pct, rf, ri. pct a été supprimée parce que sa définition dans la RFC 7489 était ambiguë dès le départ (« pourcentage des messages du flux de courrier du propriétaire du domaine auxquels la politique DMARC doit être appliquée »).
  • Nouvelles balises : np (politique des sous-domaines inexistants), psd (indicateur de domaine de suffixe public), t (indicateur de test, qui remplace l’usage de type pct=0, « surveiller sans appliquer »).
  • Découverte du domaine organisationnel : la Public Suffix List est remplacée par un DNS Tree Walk — le serveur de réception interroge _dmarc.<author-domain>, puis _dmarc.<parent>, et ainsi de suite en remontant l’arborescence, dans la limite de huit requêtes.

Comme la sémantique de la RFC 7489 reste celle qu’utilisent la plupart des enregistrements déployés et des serveurs de réception, la référence des balises ci-dessous couvre les deux.

Référence complète des balises

Les enregistrements DMARC utilisent la syntaxe extensible balise-valeur empruntée à DKIM. Toutes les balises autres que v et p sont facultatives.

Balise Rôle Exemple Remarques
v Version du protocole ; doit être en premier v=DMARC1 Seule valeur valide
p Politique du domaine organisationnel p=quarantine none / quarantine / reject
sp Politique des sous-domaines du domaine organisationnel sp=reject Prend la valeur de p en son absence
pct Pourcentage des messages en échec auxquels la politique p s’applique pct=20 RFC 7489 uniquement ; supprimée dans la RFC 9989
rua URI des rapports agrégés rua=mailto:aggrep@example.com Séparer plusieurs URI par des virgules
ruf URI des rapports d’échec par message (« forensiques ») ruf=mailto:authfail@example.com
adkim Mode d’alignement DKIM adkim=s r (souple, par défaut) / s (strict)
aspf Mode d’alignement SPF aspf=r r (souple, par défaut) / s (strict)
fo Options des rapports d’échec fo=1 0 les deux échouent (par défaut), 1 l’un ou l’autre échoue, d échec DKIM, s échec SPF
rf Format des rapports d’échec rf=afrf RFC 7489 uniquement ; supprimée dans la RFC 9989
ri Intervalle demandé entre les rapports agrégés (en secondes) ri=86400 RFC 7489 uniquement ; supprimée dans la RFC 9989
np Politique des sous-domaines inexistants np=reject Nouveauté de la RFC 9989
psd Signale un enregistrement publié sur un domaine de suffixe public psd=y Nouveauté de la RFC 9989
t Indicateur de test — évaluer sans appliquer t=y Nouveauté de la RFC 9989 ; remplace le rôle d’échantillonnage de pct

Exemple d’enregistrement :

_dmarc.example.com. IN TXT "v=DMARC1; p=reject; pct=100; rua=mailto:postmaster@example.com"

Politique des sous-domaines (sp=)

Sans sp=, les sous-domaines héritent de la politique p= du domaine organisationnel. Publier sp= permet d’appliquer des règles différentes selon les niveaux de l’organisation, par exemple :

  • p=none; sp=reject — le domaine apex est encore en surveillance, mais les messages qui usurpent des sous-domaines n’envoyant jamais d’emails sont rejetés.
  • p=reject; sp=none — l’apex est verrouillé pendant que les flux d’envoi d’un sous-domaine sont encore en cours d’alignement (un point faible que les attaquants peuvent exploiter ; comblez-le dès que possible).

L’éligibilité à BIMI exige une politique contraignante sur les deux : p=quarantine|reject sans sp=none (voir BIMI). À noter : la RFC 9989 ajoute np= pour que les sous-domaines inexistants puissent être rejetés même lorsque les sous-domaines réels sont soumis à une politique plus souple.

Échantillonnage par pourcentage (pct=, RFC 7489)

pct définit le pourcentage des messages en échec auxquels la politique p= s’applique ; les messages restants sont traités avec la politique immédiatement inférieure :

  • p=reject; pct=60 → 60 % du trafic en échec est rejeté, 40 % est mis en quarantaine.
  • p=quarantine; pct=25 → 25 % mis en quarantaine, 75 % traités comme none.

Ce dosage intégré permet une application progressive : augmentez pct par paliers à chaque niveau de politique et surveillez les rapports avant d’atteindre 100. Avec la RFC 9989, pct disparaît ; l’indicateur de test t=y couvre le cas « publier l’intention d’appliquer sans effet », et le déploiement progressif se fait en passant d’un niveau de politique à l’autre.

Rigueur de l’alignement (adkim= / aspf=)

Les deux balises d’alignement acceptent :

  • r (souple, par défaut) — le domaine authentifié (d= de DKIM ou RFC5321.MailFrom de SPF) doit seulement avoir le même domaine organisationnel que le domaine RFC5322.From. news.example.com est aligné avec example.com.
  • s (strict) — les domaines doivent correspondre exactement.

Le mode souple est le bon choix par défaut pour presque tous les expéditeurs ; le mode strict s’adresse aux propriétaires de domaines qui veulent empêcher même des sous-domaines frères d’authentifier du courrier les uns pour les autres (par exemple pour isoler des unités commerciales, ou pour se protéger d’un tiers compromis qui signe au nom d’un sous-domaine délégué). N’utilisez pas s avant que les rapports agrégés confirment que chaque flux légitime s’authentifie avec le domaine From exact.

Traitement des rapports

Rapports agrégés (rua=)

  • Documents XML, généralement produits chaque jour par chaque serveur de réception qui envoie des rapports ; attendez-vous aux premiers rapports 24 heures ou plus après la publication de l’enregistrement.
  • Ils contiennent, par adresse IP source, des décomptes avec les résultats bruts SPF/DKIM, l’évaluation de l’alignement et le traitement appliqué.
  • Ils sont livrés compressés en gzip à des URI mailto: : utilisez une boîte aux lettres dédiée et une analyse automatisée, jamais la boîte de réception d’une personne.
  • C’est le jeu de données principal pour les décisions de déploiement : il révèle toutes les sources (y compris des tiers oubliés) qui utilisent votre domaine dans le RFC5322.From.

Rapports d’échec (ruf=)

  • Envoyés immédiatement, pour chaque message en échec : leur volume « pourrait représenter plusieurs fois le volume de vos emails légitimes » si le domaine est usurpé à grande échelle.
  • Ils permettent une analyse forensique au niveau du message, mais de nombreux serveurs de réception ne les envoient pas (confidentialité), et ils exigent de prévoir la capacité nécessaire. Ne déployez ruf= qu’après avoir compris votre trafic grâce aux rapports agrégés, voire pas du tout.

Destinations de rapports externes

Si rua=/ruf= pointent vers un autre domaine que celui qui publie l’enregistrement DMARC, les serveurs de réception vérifient l’autorisation. Le domaine qui reçoit les rapports doit publier :

example.com._report._dmarc.thirdparty.com. IN TXT "v=DMARC1"

(ce qui signifie : thirdparty.com accepte de recevoir des rapports concernant example.com). Une forme générique (wildcard) accepte les rapports pour n’importe quel domaine, mais cela ouvre la porte aux abus :

*._report._dmarc.thirdparty.com. IN TXT "v=DMARC1"

Les services de traitement des rapports DMARC s’appuient sur ce mécanisme : c’est pourquoi faire pointer rua= vers l’adresse d’un prestataire fonctionne sans qu’il contrôle votre DNS.

Outils

dmarc.org tient à jour des répertoires d’outils de déploiement (générateurs et assistants d’enregistrement : dmarcian, EasyDMARC, DMARCLY, Fortra/Agari, Kitterman, Proofpoint, Global Cyber Alliance ; vérificateurs d’enregistrement : les mêmes éditeurs, plus Sendmarc, Valimail, Mimecast ; réflecteurs et validateurs de messages : autoreply@dmarctest.org, aboutmy.email, Red Sift Investigate) et de code et bibliothèques (milter OpenDMARC, Mail::DMARC en Perl, mail-auth en Rust, scripts d’analyse de rapports rddmarc, dmarc-report-processor pour la conversion en CSV, Lafayette pour le stockage des rapports, entre autres). Les solutions commerciales de traitement des rapports sont recensées dans la rubrique produits et services.

Scénarios d’échec courants

Transfert

Le transfert simple réécrit le RFC5321.MailFrom (ou réutilise celui d’origine depuis une nouvelle IP), de sorte que l’alignement SPF est perdu. DKIM ne résiste au transfert que si le service de transfert ne modifie pas le contenu signé : en général, ajouter de nouveaux en-têtes ne pose pas de problème ; toucher à l’en-tête Subject ou au corps casse la signature. C’est l’une des principales raisons de s’authentifier avec les deux protocoles et de faire reposer l’essentiel sur le DKIM aligné : un message dont la signature DKIM reste intacte passe DMARC après le transfert, même si SPF échoue.

Listes de diffusion

Les listes traditionnelles modifient les messages (étiquettes dans l’objet, pieds de page), ce qui casse DKIM, et les envoient depuis leur propre infrastructure, ce qui casse l’alignement SPF. Les messages postés depuis un domaine en p=reject rebondissent alors chez tous les abonnés. Parades connues :

Parade Mécanisme Contrepartie
Transfert strict La liste conserve le message intact pour que la signature DKIM d’origine reste valide Perte des étiquettes d’objet et des pieds de page auxquels les membres de la liste s’attendent
Original Authentication Results (OAR) / ARC La liste consigne l’état d’authentification qu’elle a constaté à la réception, afin que les serveurs de réception puissent s’y fier Nécessite l’adoption par les serveurs de réception ; limitée mais en progression (ARC est le successeur moderne)
Réécriture du From (transfert de responsabilité) La liste réécrit le RFC5322.From avec son propre domaine et signe elle-même avec DKIM Le message vient désormais « de » la liste ; les réponses et les carnets d’adresses en sont affectés

La réécriture du From est ce que font aujourd’hui la plupart des grands logiciels de listes lorsque le domaine de l’auteur est en politique contraignante. Si vos utilisateurs publient sur des listes de diffusion, attendez-vous à ce comportement dès que vous dépasserez p=none.

Le chemin de déploiement : none → quarantine → reject

Le processus de déploiement en cinq étapes proposé par dmarc.org aux expéditeurs :

  1. Déployer DKIM et SPF sur chaque flux d’envoi légitime (messagerie d’entreprise, plateforme marketing, CRM, système de facturation, service client : tous, sans exception).
  2. Garantir l’alignement : vérifier que les identifiants de chaque flux sont alignés avec le domaine RFC5322.From (d= de DKIM et/ou RFC5321.MailFrom).
  3. Publier p=none avec rua= pointant vers une boîte aux lettres ou un service de traitement de rapports dédiés. Aucun effet sur la livraison : vous ne faites que collecter des données.
  4. Analyser les rapports et corriger les flux. Chaque source en échec est soit (a) un expéditeur légitime à aligner, soit (b) un abus que la politique contraignante arrêtera. Répétez jusqu’à ce que les rapports agrégés montrent que tout le courrier légitime passe.
  5. Durcir : passer à p=quarantine, d’abord avec un échantillonnage pct faible (serveurs de réception RFC 7489), en montant progressivement jusqu’à pct=100 ; surveiller dans les rapports le courrier légitime mis en quarantaine. Quand il n’y en a plus, passer à p=reject, là encore en augmentant éventuellement pct par paliers.

Recommandations opérationnelles pour chaque phase :

  • Phase p=none : comptez des semaines, pas des jours. Les expéditeurs tiers (facturation, RH, plateformes événementielles) apparaissent lentement dans les rapports, car certains envoient rarement.
  • Phase p=quarantine : le courrier légitime en échec atterrit dans le dossier spam au lieu de disparaître, si bien que les destinataires peuvent encore le récupérer ; c’est ce filet de sécurité qui fait de la quarantaine l’étape intermédiaire obligatoire. Surveillez le trafic transféré et celui des listes de diffusion (voir plus haut), qui échouera par construction.
  • Phase p=reject : uniquement lorsque les rapports agrégés ne montrent plus aucun message légitime mis en quarantaine. Le rejet est visible par l’expéditeur (rebond), ce qui aide à détecter les flux défaillants, mais signifie aussi la perte du courrier pour tout ce qui vous aurait échappé.
  • Pensez à sp= à chaque étape : une migration de politique sur l’apex ne protège pas (ni ne casse) les sous-domaines que vous avez exclus.

Une politique contraignante (quarantine ou reject à 100 %) est aussi la condition d’accès à BIMI.

Voir aussi

#authentification#dmarc#dns#alignement#rapports#déploiement#transfert#listes-de-diffusion#dmarcbis