Dans les parties précédentes, nous avons parlé des flux de messagerie, de la manière dont un serveur de messagerie se présente et des différents en-tête que composent un message.
SPF
SPF est l’acronyme de “Sender Policy Framework”, que l’on pourrait traduire vulgairement par “Cadre de politique d’expéditeur”.
Il s’agit d’un mécanisme de validation qui permet de vérifier la cohérence entre le nom de domaine de l’expéditeur et le serveur de messagerie qui a émit le courrier.
Ce mécanisme a pour vocation de protéger le destinataire et aussi l’expéditeur, mais de manière indirecte.
Comment fonctionne SPF ?
Le principe de SPF est de référencer tous les serveurs de messagerie qui sont autorisés à relayer du courrier pour votre nom de domaine.
Prenons l’exemple d’Apples EveryWhere qui utilise le nom de domaine appleseverywhere.com. La société dispose d’un serveur de messagerie hébergé en local, mais utilise aussi une solution de messagerie Brevo pour envoyer ses camapagnes d’emailing.
Elle doit donc référencer son serveur de messagerie, ainsi que tous ceux qu’utilisent Mailjet pour que son SPF soit correct.
La configuration se fait à l’aide d’un enregistrement TXT à ajouter sur le domaine appleseverywhere.com:
@    TXT     "v=spf1 a:mailserver.appleseverywhere.com include:spf.mailjet.com -all"Que veut dire ce charabia?
- “v=spf1” est le préfixe indiquant qu’il s’agit d’un enregistrement SPF à la version 1 ;
- “a:mailserver.appleseverywhere.com” indique que l’on définit l’hôte (A) correspondant comme autorisé ;
- “include:spf.mailjet.com” indique que l’on ajoute à la liste des serveurs autorisés tous les serveurs définis dans l’enregsitrement SPF du domaine “spf.mailjet.com”
- “-all” il indique que tout le reste n’est pas autorisé à expédier du courrier pour notre domaine.
Syntaxe complète:
Qualificatifs :
---------------
 + : pass  (L’enregistrement SPF désigne l’hôte autorisé à envoyer)
 - : fail (L’enregistrement SPF a désigné l’hôte comme N’ÉTANT PAS autorisé à envoyer)
 ~ : SoftFail (L’enregistrement SPF a désigné l’hôte comme n’étant PAS autorisé à envoyer mais est en transition)
 ? : Neutral (Le enregistrement SPF indique explicitement que rien ne peut être dit sur la validité)
Si rien n'est précisé, c'est + (pass) qui est défini par défaut.
 a       : Défini seul, désigne le nom de domaine lui-même (appleseverywhere.com).
 a:fqdn  : Défini avec un FQDN, désigne les enregistrements 'A' du domaine concerné comme autorisés
 mx      : Généralement utilisé sans définir de FQDN, désigne les MX du domaine comme autorisés
 include : Permet d'inclure la liste des serveurs autorisés par le FQDN correspondant comme autorisés (ex: include:spf.sendinblue.com)
 ip4/ip6 : Permet d'autoriser une IP (v4 ou v6)
Exemple complet : v=spf1 a:webserver.hoster.com ip4:1.2.3.4 ip6:2a06:12ad::22d7 include:protection.outlook.com -allRéférence : https://dmarcadvisor.com/fr/syntaxe-enregistrements-spf/
Comment est déterminé le résultat du contrôle par SPF ?
L’évaluation de SPF est en général effectuée par l’antispam du destinataire au moment de la réception de l’email (et avant de l’accepter).
Pour cela, sont collectés:
- L’IP (v4 et v6) de l’hôte en communication ;
- Le FQDN fourni en EHLO ;
- L’adresse de retour (Return-Path) ;
En premier lieu, la RFC recommande que SPF vérifie l’adresse fournie dans le “EHLO”. Pour cela, l’algorithme va comparer l’IP (v4 ou v6) avec l’enregistrement du domaine présenté dans le EHLO.
Par exemple, si le serveur émetteur pour appleseverywhere.com est un serveur de Microsoft (PA5P264CU001.outbound.protection.outlook.com), l’algorithme va vérifier que l’IP est bien autorisée pour le domaine PA5P264CU001.outbound.protection.outlook.com en récupérant le SPF de ce domaine.
Si l’identité de l’EHLO a été testée et qu’elle est autorisée pour le domaine, le second test concerne le “MAIL FROM”. De la même manière, après extraction du nom de domaine (partie à droite du ‘@’), l’enregistrement SPF du domaine est évalué et comparé à l’IP (v4 ou v6) appelante.
On voit donc ici qu’il y a 2 tests SPF :
- Un pour le domaine fourni dans le EHLO (testé avec le nom de domaine du EHLO) ;
- Un pour le domaine spécifié dans l’adresse de l’enveloppe (MAIL FROM).
L’algorithme rend enfin son verdict : None, Neutral, Pass, Fail, Temperror, Permerror.
Temperror correspond généralement à un problème temporaire de résolution de noms.
Permerror est généralement répondu en cas d’erreur de syntaxe dans l’enregistrement SPF.
Note: étant donné que SPF évalue de manière récursive les domaines, si vous utilisez une profondeur importante de noms de domaine (ex: 1224b.smtp.out.protection.domain.com), il est recommandé de placer un enregistrement SPF au niveau le plus bas pour accélérer l’évaluation.
Dans la Partie 4, nous verrons plus en détail à quoi sert et comment fonctionne DKIM.