Dans un contexte où les cybermenaces comme le phishing et l'usurpation d'identité deviennent courantes, il est essentiel de garantir l'intégrité et l'authenticité des courriels. Trois mécanismes clés interviennent pour sécuriser les échanges d'emails : SPF, DKIM et DMARC. Ce document détaille clairement chacun de ces mécanismes, leur utilité, leur fonctionnement, et propose des exemples concrets de configuration et d'application.
Vue d’ensemble des 3 mécanismes
✉️ Exemple de courriel envoyé
Expéditeur : gabriel@exemple.com
Domaine utilisé : exemple.com
Serveur d’envoi : mail.exemple.com (IP : 192.0.2.10) [IP externe]
Logiciel d’envoi : Postfix configuré avec DKIM
SPF permet à un domaine (ex : exemple.com) d’indiquer clairement quels serveurs sont autorisés à envoyer des courriels en son nom. Cela aide à empêcher que des serveurs non autorisés puissent envoyer des emails frauduleux en utilisant l'identité du domaine.
SPF dit : “Voici les serveurs qui ont le droit d’envoyer des mails pour mon domaine.”
exemple.com. IN TXT "v=spf1 ip4:192.0.2.10 -all"
Quand le courriel arrive, le serveur destinataire :
Repère le domaine exemple.com dans l'adresse Return-Path ou MAIL FROM
Récupère l’enregistrement SPF
Vérifie si l’IP (192.0.2.10) est autorisée
Si oui → SPF passe
Sinon → SPF échoue
DKIM permet de signer numériquement le message avec une clé privée, et de publier une clé publique dans le DNS pour que les serveurs récepteurs puissent la valider.
selector1._domainkey.exemple.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNA..."
Ici, selector1 est un identifiant choisi par l’administrateur.
p= est la clé publique. La clé publique (p=) permet au serveur destinataire (receveur) de valider la signature générée par la clé privée stockée sur le serveur expéditeur.
Le serveur de messagerie signe le message avec la clé privée correspondante.
Quand le courriel arrive, le serveur récepteur :
Lit l’en-tête DKIM-Signature, qui contient :
Le sélecteur (selector1)
Le domaine signé (d=exemple.com)
Récupère la clé publique du domaine via DNS.
Vérifie si la signature est valide
Si oui → DKIM passe
Sinon → DKIM échoue
DMARC complète SPF et DKIM en permettant à un domaine de préciser une politique claire : que doit faire un serveur destinataire lorsqu’un courriel échoue aux vérifications SPF ou DKIM ?
DMARC exige aussi un "alignement" entre le domaine visible dans l'adresse d'expéditeur (From:) et les domaines utilisés par SPF et DKIM. Cela évite qu'un attaquant contourne les protections en utilisant des domaines différents.
_dmarc.exemple.com. IN TXT "v=DMARC1; p=reject; rua=mailto:rapport@exemple.com; adkim=s; aspf=s"
p=reject → Rejeter tout courriel qui échoue
rua= → Adresse de rapport agrégé
aspf=s → Alignement strict pour SPF
adkim=s → Alignement strict pour DKIM
Le serveur récepteur fait :
SPF passe ?
Est-ce que le domaine du Return-Path correspond au domaine du From ? (alignement)
DKIM passe ?
Est-ce que le domaine signé correspond au domaine du From ?
➡️ Si au moins un des deux passe et est aligné, DMARC passe ✅
➡️ Sinon, il applique la politique (reject/quarantine/none)