Retour aux articles

SPF, DKIM et DMARC : comment arrêter les usurpations d'email

6 min de lecture

**En bref** : SPF vérifie l'IP d'envoi contre une liste DNS (max 10 lookups). DKIM signe chaque email avec une clé privée/publique. DMARC combine les deux avec une politique (none → quarantine → reject) et un mécanisme de reporting. Pour l'explication simple, voir notre [guide néophyte](/blog/spf-dkim-dmarc-explication-simple).

**Vous avez lu l'explication simple. Maintenant, la vraie technique.**

Vous avez lu notre [explication simple](/blog/spf-dkim-dmarc-explication-simple) et vous voulez aller plus loin. Cet article est la **version technique complète**.

SPF : vérification d'IP par DNS

Vous publiez un enregistrement DNS TXT : `v=spf1 include:mx.ovh.com include:_spf.google.com -all`

Traduction : les serveurs d'OVH et Google envoient pour mon domaine. **`-all`** = hard fail (rejeté). **`~all`** = soft fail (suspect).

**Erreurs courantes.** Trop d'inclusions — SPF est limité à **10 lookups DNS**. Au-delà, il casse silencieusement. Oublier un service d'envoi (Brevo pas dans SPF). Utiliser `+all` qui autorise tout le monde.

DKIM : signature cryptographique sur chaque email

Votre serveur signe **chaque email** avec une **clé privée**. La **clé publique** est dans votre DNS : `selector._domainkey.votre-domaine.fr TXT "v=DKIM1; k=rsa; p=MIGfMA0GCS..."`

Le sélecteur identifie la clé — vous pouvez en avoir plusieurs. La signature couvre le body et certains headers. Si quelqu'un modifie le contenu, la signature est **invalide**. Pour [configurer DKIM](/blog/configurer-dkim-ovh-ionos), c'est 5 minutes maximum.

DMARC : combinaison intelligente + reporting

`_dmarc.votre-domaine.fr TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@votre-domaine.fr; pct=100"`

**Stratégie recommandée.** `p=none` pendant 2-4 semaines (observation). Puis `p=quarantine`. Quand tout est propre, `p=reject`. Les rapports XML quotidiens montrent qui envoie avec votre domaine — **mine d'or pour détecter le [spoofing](/blog/protection-anti-spam-usurpation)**.

→ **Vérifiez votre configuration complète** : **uptix.dev/mailcheck**