Outils pour utilisateurs

Outils du site


services:spf

Sender Policy Framework

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.

Description

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

Tout comme le courrier papier, un message électronique se compose :
  • d'une enveloppe, sur laquelle figure l'adresse de l'expéditeur et celle du destinataire ;
  • d'un en-tête, sur lequel figurent des informations comme l'expéditeur, le destinataire, les destinataires en copie, le sujet et la date ;
  • d'un corps, qui constitue le contenu effectif du message.

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 :

  • s'il provient d'une adresse IP autorisée, l'adresse d'expéditeur n'a pas été usurpée ;
  • s'il provient d'une adresse IP non autorisée, l'adresse d'expéditeur a été usurpée : le message peut éventuellement être jeté, et en cas d'échec de livraison, il ne faut pas envoyer de rapport au prétendu expéditeur.

Incompatibilité avec un relais de FAI

Attention, l'utilisation de ces mécanismes n'est pas compatible avec l'utilisation d'un relais SMTP tiers, tel que celui de votre fournisseur d'accès. Le serveur destinataire recevant le courrier identifierait le serveur relais comme un usurpateur.

Syntaxe

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 :

  • que le nom de domaine example.com utilise une politique selon la norme SPF, version 1 ;
  • que le serveur nommé mx.example.com est autorisé à envoyer du courrier au nom de gens <@example.com> ;
  • que les autres serveurs ne sont pas autorisés à le faire.

Version de la norme

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.

Mécanismes

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 :

  • ip4:IP le serveur dont l'adresse IPv4 est IP, ou les serveurs dont l'adresse IPv4 est située dans la plage IP ;
  • ip6:IP le serveur dont l'adresse IPv6 est IP, ou les serveurs dont l'adresse IPv6 est située dans la plage IP ;
  • a:NOM les serveurs dont l'adresse IP (v4 ou v6) figure dans le nom DNS NOM (enregistrement DNS A ou AAAA – attention, c'est un FQDN qui est attendu comme a:mx.example.com ;
  • all tous les serveurs d'Internet.

Ils sont préfixés de qualificateurs :

  • + réussite ;
  • ? neutre ;
  • ~ échec partiel ;
  • - échec.

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

  • le serveur de nom mx.example.com réussissent le test SPF ;
  • les serveurs dont l'adresse IPv6 est située dans la plage 2001:db8:4212:4212::/64 donnent un résultat neutre au test SPF ;
  • tous les serveurs (sauf les précédemment mentionnés, qui ont déjà passé le test SPF) échouent au test SPF.

Mise en œuvre

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 ;
  • vous ajusterez le qualificateur ~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"
services/spf.txt · Dernière modification: Sat Jun 4 16:12:50 2016 par samael