SPF, DKIM et DMARC : Protéger ses mails du Spoofing

SPF, DKIM et DMARC : Protéger ses mails du Spoofing

C'est quoi le Spoofing ?

Le Spoofing, que l’on peut traduire facilement par “Usurpation d’identité” en Français, est utilisé par les méchants hackers dans le but de tromper une cible en se faisant passer pour une autre personne, ou toute autre entité.

Le Spoofing est étroitement lié au Phishing, dans le sens où l’émetteur va tenter de vous faire cliquer sur un élément contenu dans l’e-mail pour finalement vous dérober des informations, voir plus.

Le prince sénégalais qui vous envoi un e-mail, indiquant qu’il vous lègue toute sa fortune si vous lui envoyez 50 euros pour débloquer les fonds, c’est du Spoofing, si en plus de ça l’e-mail contient un lien vers “votre banque”, c’est du Phishing. Pourquoi ?

Par ce que la personne qui vous a envoyé cet e-mail n’est bien entendu pas la personne qu’il prétend être… Enfin, je crois, je vais tout de même aller vérifier mes mails moi… Et, en plus de ça, le lien ne va certainement pas vous rediriger vers votre banque (phishing) !

Si vous souhaitez en apprendre plus sur le Phishing, je vous invite à vous rendre sur cette adresse. Pour le Spoofing c’est ici que ça se passe.

Comment se protéger du Spoofing ?

En réalité, il n’y a pas grand-chose à faire en tant qu’utilisateur (excepté d’être vigilant).

Ici, je ne suis pas là pour vous expliquer comment détecter un e-mail frauduleux, mais plutôt de comment empêcher une personne d’utiliser votre domaine pour envoyer des mails, en se faisant passer pour votre organisation !

Imaginez un instant qu’un de vos clients reçoit un e-mail contenant dans le champ “From :” une adresse contenant votre nom de domaine, il va certainement cliquer dessus…

Et, là, vous vous dites probablement "Oui. Pourtant, ce n’est pas nous qui avons envoyé cet email, c’est à la personne qui le reçoit à faire attention !". Dans un sens, vous avez raison… Mais, c'est aussi à vous (ou votre organisation) de protéger votre domaine contre le Spoofing.

C’est donc ici que rentre en jeu les protocoles SPF, DKIM et DMARC !

C'est quoi SPF, DKIM et DMARC ?

SPF, DKIM et DMARC sont trois protocoles qui vont nous permettre de protéger notre domaine des usurpations d’identité.

Pour parler simplement, lorsque le serveur destinataire va recevoir votre mail, il va procéder à plusieurs vérifications afin de vérifier son authenticité et vérifier qu’il (le mail) provient bien de vous (de votre domaine).

Vous comprendrez donc que ces trois protocoles ne vont pas vous protéger directement, mais plutôt protéger le destinataire de vos e-mails. Après quelques vérifications réalisées par le serveur, ce dernier se rendra compte de si l’e-mail provient bien de vous (ou non), et si le mail a été modifié.

SPF

Le Sender Policy Framework (SPF) est un protocole permettant de vérifier si l’email provient bien d’une adresse IP autorisée. Parmi les trois protocoles cités plus haut, c’est le plus important à implémenter !

Pour ce faire, le serveur destinataire va consulter le DNS du domaine émetteur et va rechercher un enregistrement TXT contenant les IP autorisées à envoyer des e-mails. Si les IPs ne correspondent pas, l’email est rejeté.

Configurer SPF

En tant qu’administrateur du domaine securitricks.com, voici l’enregistrement TXT pour le SPF se trouvant dans le DNS :

v=spf1 include:spf.protection.outlook.com -all

Ma boîte e-mail étant géré par Outlook, c’est bien entendu à partir de leurs serveurs de messagerie que tous mes e-mails sont envoyés. Je vais vous donner d’autres exemples d’enregistrement SPF juste après ce schéma :

Exemples de record SPF

v=spf1 ip4:192.168.25.65 ~all

  • ip4 : Défini l’adresse IP (ou le range (192.168.25.0/24)) ciblée par la politique.
  • ~all : Autorise uniquement l’adresse IP à envoyer des mails, interdit toutes les autres adresses.
v=spf1 a:mail.securitricks.com ~all

a : Indique un enregistrement A à vérifier dans le DNS pour l’envoi des mails. L’enregistrement A contiendra une paire de valeurs comme celle-ci :

mail.securitricks.com -> 192.168.5.65.
  • ~all : Autorise seulement l’adresse IP contenue dans le record DNS à envoyer des mails.
v=spf1 +all
  • +all : Autorise les mails de n’importe où. Cette valeur est à éviter
v=spf1 -all
  • -all : Le domaine n’envoi pas de mails, donc impossible que vous en receviez.

Si vous souhaitez plus d’informations sur la création d’enregistrements SPF, je vous invite à vous rendre à cette adresse.

DKIM

Le Domain Keys Identified Mail (DKIM) est une sécurité supplémentaire au SPF, ce protocole va permettre au destinataire de l’email de vérifier que ce dernier n’a pas été modifié en cours de route. Par conséquent, de vérifier son intégrité.

Ce protocole permet aussi de vérifier l’identité du destinataire, car s’il possède un enregistrement DNS contenant la clef publique, c’est que le nom de domaine lui appartient.

Pour implémenter le DKIM, l’administrateur aura un peu plus de boulot que de simplement mettre un record sur le DNS. Voici les étapes (condensées) :

  1. Installer un utilitaire DKIM sur le(s) serveur(s) de messagerie
  2. Générer une paire de clefs publique/privée (pour chaque serveur de messagerie)
  3. Choisir un Selector
  4. C’est lui qui va indiquer au serveur destinataire se trouve l’enregistrement contenant la clef publique
  5. Le Selector se trouve dans la signature DKIM présent dans le mail
  6. Publier la clef publique dans l’enregistrement DKIM sur le DNS

Fonctionnement du DKIM

Chaque email sortant du serveur de messagerie émetteur va être signé via la clef privée liée à la clef publique se trouvant sur le DNS. Plus précisément, un hash va être calculé à partir du contenu de l’email, une signature va être générée depuis le hash et la clef privée. Finalement, le mail va être envoyé (contenant le hash, la signature et l’information d’où trouver la clef publique).

Lorsque le serveur de destination va recevoir le mail, il va aller récupérer la clef publique se trouvant sur le DNS, ensuite, il va déchiffrer la signature en utilisant la clef puis comparer les 2 hashs.

Si les hashs ne correspondent pas, cela signifie que le mail a été signé avec la mauvaise clef OU que le mail a été modifié durant son acheminement vers le serveur.

Enregistrement DNS

L’enregistrement DNS (default._domainkey.securitricks.com) pour le DKIM est plutôt simple :

v=DKIM1; k=rsa; p=Djk=lkjd3+dF4GmnL=
  • k : Indique le type de clef utilisé.
  • p : Contient la clef publique.

DMARC

Et, finalement, le Domain-based Message Authentication Reporting and Conformance (DMARC) est un protocole permettant de spécifier quelles sont les actions à effectuer lorsque le SPF et le DKIM ne sont pas respectés par un email reçu.

Il va également permettre de spécifier une adresse email pour envoyer un rapport des différentes adresses emails usurpant le domaine. Si ça, ce n'est pas beau !

Le DMARC signe la fin de la configuration, il sera implémenté une fois que le SPF et le DKIM le seront également.

Configuration du DMARC

La configuration du DMARC est assez simple, c’est simplement un enregistrement TXT sur le DNS, spécifiant les actions à effectuer par le serveur destinataire et une adresse email pour les rapports.

Il faut bien sûr avoir implémenté le SPF et le DKIM avant le DMARC, sinon ça ne sert à rien !

Voici à quoi va ressembler un enregistrement DMARC sur le DNS :

v=DMARC1; p=reject; rua=mailto:dmarc@securitricks.local pct=100; adkim=s; aspf=s
  • p=reject : Défini la politique lorsque le mail ne respecte pas les conditions. Dans ce cas-ci, on rejette le mail. Les autres valeurs possibles sont quarantine et none.
  • rua=mailto:dmarc@securitricks.local : Spécifie une adresse email pour envoyer les rapports DMARC contenant les tentatives d’usurpation.
  • pct=100 : Défini le pourcentage d’email filtré par la politique, si cette valeur est définie sur 25 alors 25 % des emails vont être testés et rejetés (si invalide), les 75 % restants seront mis en quarantaine (s’ils ne respectent pas la politique).
  • adkim=s : Si le mail ne respecte pas le DKIM que se passe-t-il ? Les valeurs possibles sont s (strict) et r (relaxed).
    • En mode strict, si le domaine du champ “From :” du DKIM ne respecte pas PRÉCISÉMENT le champ “From :” du header alors l’email est rejeté.
      • Exemple :
        securitricks.com | securitricks.com > OK
        mail.securitricks.com | securitricks.com > NOT OK
    • En mode relaxed, si le domaine principal du champ “From :” du DKIM est le même que le champ “From : ” du header alors l’email est autorisé.
      • Exemple :
        securitricks.com | securitricks.com > OK
        mail.securitricks.com | securitricks.com > OK
  • aspf=s : Pareil que pour adkim mais pour le SPF.

Voici finalement notre schéma complété avec les 3 protocoles :

Conclusion

Voilà, maintenant, vous connaissez les trois protocoles permettant de protéger votre domaine des usurpations d’identité, il ne vous reste plus qu’à les implémenter !

Retenez bien que le plus important est de les implémenter un à un, de tester si tout fonctionne correctement puis de passer au suivant, en commençant par SPF et en finissant par DMARC.

About the author
Julien B.

Securitricks

Up-to-Date Cybersecurity Insights & Malware Reports

Securitricks

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Securitricks.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.