L’intérêt de SPF, DKIM et DMARC

L’intérêt de SPF, DKIM et DMARC
Photo by Mathyas Kurmann / Unsplash

Vous avez sûrement déjà reçu un email frauduleux où l’expéditeur usurpait l’identité d’une société connue, souvent une banque, pour vous inviter à cliquer sur un lien. C’est ce qu’on appelle le phishing. Pour usurper l’identité d’un tiers, nul besoin d’être un génie de l’informatique. Le protocole d’envoi des emails (SMTP), ne prévoit à la base aucun mécanisme d’authentification. On peut envoyer un email au nom de n’importe qui sans aucune difficulté.
Enfin, c’était surtout vrai au début des années 2000. L’augmentation du nombre d’emails envoyés, en particulier les emails non désirés, a incité les FAI à mettre en place des normes de vérification comme SPF, DKIM et DMARC.

SPF, DKIM et DMARC : définitions et objectifs

Le protocole SPF

SPF, pour Sender Policy Framework, est un moyen de limiter l’usurpation d’identité en publiant dans les DNS de votre nom de domaine la liste des serveurs, ou plus précisément des adresses IP, qui sont autorisés à envoyer du courrier avec ce domaine.

Concrètement, cela ne veut pas dire que tous vos mails passeront désormais la barrière des filtres anti-spams. SPF est loin d’être le seul critère utilisé par les filtres anti-spam. L’intérêt est surtout d’éviter que son nom de domaine soit détourné. Un nom de domaine disposant d’un enregistrement SPF configuré correctement sera plus difficile à exploiter par les spammeurs. Néanmoins, un email qui ne dispose pas d’une signature SPF ne sera pas pour autant considéré comme un spam.

Prenons un exemple simple. Supposons que nous souhaitions publier un enregistrement TXT sur le serveur DNS du nom de domaine borismallach.fr.
Voilà ce que ce cela donnerait :

borismallach.fr IN TXT « v=spf1 a ip4:IP du serveur -all »

Quelques petites explications. Les serveurs ayant pour adresse IP du serveur ont le droit d’envoyer des emails au nom de ce serveur et uniquement. Le “a” devant l’adresse UP signifie que toutes les adresses IP de l’enregistrement A ont également le droit d’envoyer des emails pour ce nom de domaine. Enfin, le “-all” signifie que toutes les autres IP doivent être rejetées.

Pour vérifier que cela fonctionne correctement, assurez-vous de retrouver la mention « spf=pass » dans l’en-tête des emails que vous envoyez.

Le protocole DKIM

Né de la fusion des protocoles DomainKeys (Yahoo) et Identified Internet Mail (Cisco), le protocole DKIM, DomainKeys Identified Mail, fait le lien entre le nom de domaine expéditeur et le message. L’objectif du protocole DKIM n’est pas uniquement de prouver que le nom de domaine n’a pas été usurpé, mais que le message n’a pas été altéré durant sa transmission.

Ce protocole repose sur une procédure cryptographique, avec une clé publique publiée dans le zone DNS du domaine émetteur, et une clé privée, utilisée pour encoder le message. Pour mettre en place une signature DKIM, vous devez :

– Créer un couple clé privée / clé publique au format RSA 1024 bits,
– Publier dans les DNS de votre domaine la clé publique,
– Configurer l’envoi de vos messages pour l’encodage avec la clé privée.

Pour aller plus loin :

Tutoriel détaillé pour la mise en place du protocole DKIM,
Outil de vérification de la signature DKIM.

Le protocole DMARC

Mis en place en 2011 par un consortium de grandes sociétés d’Internet, comme Google, Yahoo ou Microsoft, DMARC est avant tout un complément à SPF et DKIM. En quelques mots, le protocole DMARC permet à l’expéditeur de recevoir les résultats de l’authentification de ses envois auprès des principaux opérateurs (Gmail, Hotmail, AOL, etc.), et à la messagerie du destinataire de savoir comment il doit traiter les messages qui n’ont pas passé le test de l’authentification. DMARC ne permet pas de savoir directement si un message est frauduleux ou non. DMARC nécessite que le message soit conforme aux validations SPF et DKIM, et par ailleurs que le message soit « aligné » (correspondance des noms de domaines).

Là, c’est le jackpot !

Voir le site Mail Tester pour vérifier sa délivrabilité

Il vous suffit ensuite de vérifier que les mentions « spf=pass », « dkim=pass », « dmarc=pass » sont bien présentes.

Tout cela peut paraître un peu fastidieux et compliqué, mais à l’heure où on estime le nombre de spam par jour à 260 milliards, il est vraiment indispensable de mettre en place ces protocoles.