Guides Sécurité

L'authentification e-mail : SPF, DKIM et DMARC

Ce que vérifient SPF, DKIM et DMARC, à quoi ressemblent leurs enregistrements DNS, comment fonctionne l'alignement et comment déployer sans risque.

Dernière vérification:

AdSense Placeholder
Slot: header_reference_page
Sur cette page

Le courrier électronique a été conçu sans aucune vérification qu'un message vient réellement de l'adresse affichée. N'importe qui peut écrire From: [email protected]. Trois normes reposant sur le DNS comblent cette lacune : SPF, DKIM et DMARC. Elles fonctionnent ensemble et chacune répond à une question différente. Sans elles, votre courrier a plus de chances de finir en spam et des criminels peuvent usurper votre domaine.

SPF : quels serveurs peuvent envoyer pour ce domaine ?

Le titulaire d'un domaine publie la liste des serveurs d'envoi autorisés sous forme d'enregistrement TXT :

example.com.  IN TXT  "v=spf1 ip4:203.0.113.0/24 include:_spf.example.net -all"

À l'arrivée d'un message, le serveur destinataire recherche l'enregistrement SPF du domaine de l'expéditeur d'enveloppe (l'adresse cachée MAIL FROM, pas la ligne From visible) et vérifie si l'IP du serveur qui se connecte figure dans la liste. La fin indique que faire de tout le reste :

Préfixe Signification
+all Réussite (valeur par défaut si omis)
-all Échec : rejette le courrier des autres sources
~all Échec souple : accepte mais traite comme suspect
?all Neutre : aucun avis

SPF a deux limites célèbres : un enregistrement peut déclencher au plus 10 requêtes DNS (chaque include: et a/mx compte) et un domaine ne doit publier qu'un seul enregistrement SPF. SPF est aussi mis en défaut par le transfert de courrier, car l'IP du transmetteur n'est pas dans votre liste.

Construisez un enregistrement avec le Générateur d'Enregistrement SPF.

DKIM : le message a-t-il été altéré et le domaine s'en porte-t-il garant ?

Le serveur émetteur signe avec une clé privée des en-têtes choisis et le corps, et ajoute un en-tête comme celui-ci :

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=example.com;
 [email protected]; q=dns/txt; s=selector1; t=1791022872; h=from : to :
 subject : date; bh=Ba3gj8+xBPQLJTahTfzW6RbWQ/XPgESxkCi2B66PSQg=;
 b=<signature>

d= est le domaine signataire, s= le sélecteur qui indique quelle clé publique utiliser, h= les en-têtes signés, bh= un hachage du corps et b= la signature. La clé publique correspondante se trouve dans le DNS à sélecteur._domainkey.domaine :

selector1._domainkey.example.com.  IN TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."

Le destinataire récupère la clé et vérifie la signature. Changez un seul caractère du corps signé et la vérification échoue : c'est ainsi que la falsification est détectée. DKIM survit au transfert, car la signature voyage avec le message. Créez une paire de clés et son enregistrement avec le Générateur d'Enregistrement DKIM.

DMARC : que faire quand les vérifications échouent ?

SPF et DKIM prouvent un domaine, mais pas forcément celui que le lecteur voit dans la ligne From. DMARC relie le tout par l'alignement : pour que le courrier passe, SPF ou DKIM doit réussir et le domaine qu'ils ont authentifié doit correspondre au domaine visible de From. L'enregistrement se trouve à _dmarc.domaine :

_dmarc.example.com.  IN TXT  "v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100"
Politique p= Effet sur le courrier en échec
none Surveillance seule : ne rien faire, mais envoyer des rapports
quarantine Traiter le courrier en échec comme suspect (en général le dossier spam)
reject Refuser purement et simplement le courrier en échec

rua= indique où envoyer les rapports agrégés quotidiens, qui montrent qui envoie du courrier au nom de votre domaine et si cela passe. Créez un enregistrement avec le Générateur d'Enregistrement DMARC.

Un déploiement sans risque

  1. Faites l'inventaire de tout ce qui envoie du courrier pour le domaine : votre fournisseur de messagerie, le service de newsletters, le CRM, le système de facturation, les formulaires du site.
  2. Publiez un SPF qui les liste et activez la signature DKIM chez chaque service.
  3. Publiez DMARC avec p=none et une adresse rua, et lisez les rapports pendant quelques semaines.
  4. Corrigez tout expéditeur légitime qui échoue à l'alignement.
  5. Passez à p=quarantine, puis à p=reject, en augmentant pct progressivement si possible.

Lire le résultat d'un vrai message

Dans un message reçu, l'en-tête Authentication-Results indique les verdicts, par exemple spf=pass dkim=pass dmarc=pass. Collez les en-têtes complets dans l'Analyseur d'en-têtes et de sécurité des e-mails pour les lire, ou testez toute votre configuration avec le Vérificateur de délivrabilité des e-mails.

Voyez aussi SPF, DKIM, DMARC et Hameçonnage (phishing).

Essayez ces outils

Voir aussi

  • Glossaire SPF
    Le SPF (Sender Policy Framework) est un enregistrement DNS qui liste les serveurs autorisés à envoyer du courrier pour un domaine.
  • Glossaire DKIM
    Le DKIM (DomainKeys Identified Mail) ajoute une signature numérique au courrier sortant que les destinataires vérifient avec une clé.
  • Glossaire DMARC
    Le DMARC est une politique DNS qui indique aux destinataires que faire du courrier qui échoue à l'alignement SPF et DKIM.
  • Glossaire Hameçonnage (phishing)
    Le hameçonnage (phishing) est une arnaque dans laquelle des attaquants se font passer pour une organisation ou une personne de confiance.
  • Guide Comment fonctionne le DNS
    Comment un nom devient une adresse IP via résolveurs et serveurs racine, de TLD et faisant autorité, les types d'enregistrement.

Questions fréquemment posées

Oui. SPF et DKIM prouvent chacun quelque chose sur le message, et DMARC fait agir le destinataire selon le résultat et remonter des rapports. Les grands fournisseurs de messagerie attendent désormais les trois des expéditeurs en masse.

AdSense Placeholder
Slot: footer_leaderboard