SPF est une norme liée au courrier électronique qui permet de lutter contre les usurpations d'adresse électronique, en rendant celles-ci détectables.
Pour brouiller les pistes, de nombreux spammeurs utilisent comme adresse d'expéditeur d'enveloppe une adresse falsifiée, qui n'est pas la leur. En cas d'échec de livraison, un rapport est alors transmis à quelqu'un qui n'a jamais envoyé le message non livré. Ces messages de non-livraison incohérents constituent une nuisance, appelée backscatter.
Enveloppe et en-tête
Les informations de l'enveloppe sont à l'usage des intermédiaires de livraison, et ne sont pas (facilement) lisibles par le destinataire ; en outre, l'adresse de l'expéditeur ne sert qu'à transmettre un rapport en cas d'échec de livraison, et peut être falsifiée. Les en-têtes sont à l'usage du destinataire, et ne doivent pas nécessairement correspondre à la réalité : le cas le plus courant d'une telle non-correspondance, c'est la transmission d'un message en copie cachée, à un destinataire qui ne figure pas dans l'en-tête.
Pour éviter le backscatter et dans une moindre mesure, le spam, la norme SPF permet aux administrateurs d'un nom de domaine de courrier électronique de publier une liste d'adresses IP autorisées à envoyer du courrier au nom de ce domaine. Ainsi, les serveurs recevant du courrier au nom d'un domaine example.com
peuvent déterminer :
Incompatibilité avec un relais de FAI
La politique SPF d'un nom de domaine se publie dans le DNS, au moyen d'un enregistrement de type SPF ou TXT. Ainsi, l'enregistrement suivant :
example.com. SPF "v=spf1 +a:mx.example.com -all"
signifie :
example.com
utilise une politique selon la norme SPF, version 1 ;mx.example.com
est autorisé à envoyer du courrier au nom de gens <@example.com>
;
Le premier composant d'un enregistrement SPF est obligatoirement « v=spf1
», qui indique la version de la norme SPF utilisée : aujourd'hui, il s'agit de la version 1.
Les composants suivants d'un enregistrements SPF sont appelés des mécanismes. Un mécanisme désigne un ensemble de serveurs. Voici les plus utiles :
a:mx.example.com
;Ils sont préfixés de qualificateurs :
Si aucun qualificateur n'est donné pour un mécanisme, cela décrit un cas de réussite (qualificateur +).
On construit un enregistrement DNS en juxtaposant des mécanismes préfixés de qualificateurs, pour indiquer comment doivent être considérés les messages provenant d'un serveur donné. Par exemple :
example.com SPF "v=spf1 +a:mx.example.com ?ip6:2001:db8:4212:4212::/64 -all"
se lit ainsi : les messages au nom de quelqu'un [at] example [dot] com
provenant de
mx.example.com
réussissent le test SPF ;2001:db8:4212:4212::/64
donnent un résultat neutre au test SPF ;
Pour publier une politique SPF sur votre nom de domaine example.com
, vous devez donc construire un enregistrement DNS, qui en pratique ressemblera à : “v=spf1 a:tintin.example.com ~all”
, où :
tintin.example.com
est le nom du serveur d'où vous envoyez votre courrier, que ce soit directement ou en l'utilisant comme relais ;~all
selon que vous souhaitez que les messages envoyés depuis ailleurs que votre serveur soient acceptés (qualificateur +
ou ?
), assortis d'un avertissement (qualificateur ~
) ou rejetés (qualificateur -
).Avant de passer à l'action, pensez à contrôler la syntaxe de vos enregistrement via un outil en ligne de contrôle SPF (qui permettra ensuite de simuler des vérifications de SPF en interrogeant directement votre nom de domaine).
Publiez cette politique dans votre zone DNS, sous la forme d'un enregistrement SPF et d'un enregistrement TXT :
example.com. SPF "v=spf1 a:tintin.example.com ~all" example.com. TXT "v=spf1 a:tintin.example.com ~all"