SPF — à quoi ça sert, et pourquoi ça casse sans prévenir
SPF déclare quels serveurs ont le droit d’envoyer des e-mails pour votre domaine. Sa panne la plus fréquente est invisible : le dépassement de la limite de dix résolutions DNS.
Ce que SPF fait réellement
SPF (Sender Policy Framework) est un enregistrement TXT publié à la racine de votre domaine.
Il liste les serveurs autorisés à envoyer des messages en votre nom. Quand un serveur destinataire
reçoit un message qui prétend venir de contact@exemple.fr, il lit cet enregistrement et compare
l’adresse IP de l’expéditeur à la liste.
v=spf1 include:_spf.google.com include:spf.protection.outlook.com -all
Trois choses à retenir : SPF ne vérifie que l’enveloppe technique du message, pas l’adresse affichée dans le logiciel de messagerie ; il ne fait rien tout seul sans DMARC ; et il tombe en panne silencieusement.
La panne n°1 : plus de dix résolutions DNS
C’est de loin l’erreur la plus coûteuse, et la moins visible.
La norme impose une limite dure : évaluer un enregistrement SPF ne doit pas demander plus de
dix résolutions DNS. Chaque include, a, mx, ptr, exists et redirect en consomme une —
et les include comptent en cascade : si vous incluez _spf.google.com, les include contenus
dans cet enregistrement comptent aussi.
Au-delà de dix, le serveur destinataire ne se contente pas d’ignorer le dépassement : il répond
PERMERROR, et le résultat est le même que si vous n’aviez aucun SPF.
Le scénario typique : un domaine fonctionne pendant deux ans avec cinq prestataires d’envoi. Le
service marketing ajoute un sixième outil, ajoute un include, et le compteur passe de 9 à 11.
Rien ne change côté visible. Les messages continuent de partir. Mais une partie d’entre eux
commence à arriver en indésirable, chez certains destinataires seulement, sans qu’aucune alerte ne
se déclenche.
Comment réduire le compteur
- Supprimez les
includede prestataires que vous n’utilisez plus. C’est presque toujours là que se trouvent trois ou quatre résolutions gaspillées. - Remplacez un
includepar les plagesip4:/ip6:correspondantes quand le prestataire les publie et les fait rarement changer. Les mécanismesip4etip6ne coûtent aucune résolution. - Méfiez-vous des
includeimbriqués :include:spf.exemple.frqui contient lui-même troisincludevous coûte quatre résolutions, pas une.
Le deuxième piège : deux enregistrements SPF
Publier deux enregistrements TXT commençant par v=spf1 est une erreur de configuration fréquente,
généralement le résultat de deux personnes qui ajoutent chacune « leur » SPF. La norme est sans
appel : en présence de plusieurs enregistrements, le résultat est PERMERROR et SPF est
entièrement ignoré.
La correction consiste à fusionner les deux en un seul enregistrement, en veillant à ne pas dépasser la limite de dix résolutions au passage.
Que mettre à la fin : -all, ~all ou ?all
Le dernier mécanisme dit quoi faire des serveurs qui ne sont pas dans la liste.
| Politique | Sens | Recommandation |
|---|---|---|
-all | Rejet strict : tout serveur non listé est refusé. | La cible à atteindre. |
~all | Échec souple : accepté, mais marqué comme suspect. | Étape intermédiaire acceptable. |
?all | Neutre : aucune conséquence. | SPF ne sert alors à rien. |
+all | Tout le monde est autorisé. | À supprimer immédiatement. |
Passer de ~all à -all demande d’avoir recensé tous vos expéditeurs légitimes — y compris le
logiciel de facturation, le formulaire de contact du site et l’imprimante qui envoie les scans par
e-mail. Les rapports agrégés DMARC sont faits pour ça.
Ce que SPF ne protège pas
SPF valide l’adresse d’enveloppe (MAIL FROM), pas celle que voit le destinataire dans son
logiciel (From:). Un attaquant peut parfaitement faire passer un message SPF avec son propre
domaine tout en affichant le vôtre dans le champ visible. C’est exactement le trou que
DMARC vient combler, en exigeant que les deux soient alignés.
Autrement dit : SPF sans DMARC ne vous protège pas contre l’usurpation de votre marque.