Securite e-mail avec SPF, DKIM et DMARC
Apprenez a proteger votre domaine contre l'usurpation d'e-mail avec les enregistrements SPF, DKIM et DMARC. Guide etape par etape pour la configuration via le tableau de bord et l'API DNScale.
L'usurpation d'e-mail permet aux attaquants d'envoyer des messages qui semblent provenir de votre domaine. Sans authentification appropriee, n'importe qui peut envoyer un e-mail pretendant etre de ceo@votredomaine.com. SPF, DKIM et DMARC sont des standards bases sur le DNS qui aident les serveurs de messagerie recepteurs a verifier les e-mails legitimes.
Ce que vous apprendrez
- Comment SPF declare les serveurs de messagerie autorises
- Comment DKIM signe cryptographiquement les e-mails
- Comment DMARC definit les politiques pour les authentifications echouees
- La configuration des trois via le tableau de bord et l'API DNScale
- Les tests et la validation de votre configuration
SPF (Sender Policy Framework)
Ce que fait SPF
SPF vous permet de specifier quelles adresses IP et quels serveurs de messagerie peuvent envoyer des e-mails pour votre domaine. Les serveurs recepteurs verifient votre enregistrement SPF pour s'assurer que l'expediteur est autorise.
Syntaxe de l'enregistrement SPF
Un enregistrement SPF est un enregistrement TXT a l'apex de votre domaine :
v=spf1 [mecanismes] [qualificateur]all| Composant | Description |
|---|---|
v=spf1 | Identifiant de version (obligatoire) |
include:domaine | Autoriser les serveurs approuves par le SPF d'un autre domaine |
a | Autoriser l'IP de l'enregistrement A du domaine |
mx | Autoriser les serveurs MX du domaine |
ip4:x.x.x.x | Autoriser une adresse ou plage IPv4 specifique |
ip6:x::x | Autoriser une adresse ou plage IPv6 specifique |
~all | Echec souple pour les expediteurs non autorises |
-all | Echec strict pour les expediteurs non autorises |
Exemples SPF courants
Google Workspace :
v=spf1 include:_spf.google.com ~allMicrosoft 365 :
v=spf1 include:spf.protection.outlook.com ~allPlusieurs fournisseurs :
v=spf1 include:_spf.google.com include:spf.protection.outlook.com ~allServeur de messagerie personnalise :
v=spf1 ip4:203.0.113.5 mx ~allBonnes pratiques SPF
- Commencez par
~all(echec souple), passez a-allapres les tests - Restez sous les 10 recherches DNS (limite SPF)
- Incluez toutes les sources d'envoi : e-mails transactionnels, plateformes marketing, etc.
DKIM (DomainKeys Identified Mail)
Ce que fait DKIM
DKIM ajoute une signature numerique aux e-mails sortants. Votre serveur de messagerie signe chaque e-mail avec une cle privee, et vous publiez la cle publique correspondante dans le DNS. Les serveurs recepteurs utilisent cette cle publique pour verifier la signature, prouvant que l'e-mail n'a pas ete altere et provient d'un expediteur autorise.
Comment fonctionne DKIM
- Votre serveur de messagerie genere une signature cryptographique a l'aide d'une cle privee
- La signature est ajoutee aux en-tetes de l'e-mail
- Les serveurs recepteurs recherchent votre cle publique DKIM dans le DNS
- Ils verifient que la signature correspond au contenu de l'e-mail
- Si elle est valide, l'e-mail passe l'authentification DKIM
Syntaxe de l'enregistrement DKIM
Un enregistrement DKIM est un enregistrement TXT a selecteur._domainkey.votredomaine.com :
selecteur._domainkey.votredomaine.com. TXT "v=DKIM1; k=rsa; p=MIGfMA0GCS..."| Balise | Description |
|---|---|
v=DKIM1 | Identifiant de version |
k=rsa | Type de cle (generalement RSA) |
p=... | Cle publique (encodee en base64) |
t=s | (Optionnel) Mode strict - correspondance exacte du domaine requise |
t=y | (Optionnel) Mode test |
Selecteurs DKIM
Le selecteur est un nom qui identifie quelle cle utiliser. Cela permet :
- La rotation des cles sans interruption
- Des cles differentes pour differents services de messagerie
- Plusieurs cles actives simultanement
Modeles de selecteurs courants :
googlepour Google Workspaceselector1,selector2pour Microsoft 365k1,k2,k3pour les configurations personnaliseesmailjet,sendgridpour les services tiers
Obtenir vos cles DKIM
Les cles DKIM sont generees par votre fournisseur de messagerie. Voici ou les trouver :
Google Workspace :
- Console d'administration → Apps → Google Workspace → Gmail
- Authentifier les e-mails → Generer un nouvel enregistrement
- Copiez la valeur de l'enregistrement TXT
Microsoft 365 :
- Microsoft 365 Defender → E-mail et collaboration → Politiques
- DKIM → Selectionnez le domaine → Creer les cles DKIM
- Copiez les deux enregistrements selector1 et selector2
Services tiers (SendGrid, Mailjet, etc.) :
- Consultez le tableau de bord de votre fournisseur pour les parametres DNS
- Ils fourniront le nom du selecteur et la cle publique
Exemples d'enregistrements DKIM
Google Workspace :
google._domainkey.votredomaine.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."Microsoft 365 :
selector1._domainkey.votredomaine.com. TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNA..."
selector2._domainkey.votredomaine.com. TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNA..."Personnalise/Tiers :
mail._domainkey.votredomaine.com. TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3..."Bonnes pratiques DKIM
- Utilisez des cles de 2048 bits - Les cles de 1024 bits sont de plus en plus vulnerables
- Effectuez une rotation des cles regulierement - Au moins annuellement pour la securite
- Gardez les cles privees securisees - Ne les exposez jamais dans le DNS ou les logs
- Utilisez des selecteurs uniques - Des selecteurs differents pour chaque service
- Testez avant d'appliquer DMARC - Assurez-vous que DKIM passe avant
p=reject
DMARC (Domain-based Message Authentication)
Ce que fait DMARC
DMARC s'appuie sur SPF (et DKIM) pour fournir :
- Une politique indiquant aux recepteurs quoi faire avec les e-mails en echec
- Des rapports pour que vous puissiez surveiller les resultats d'authentification
Syntaxe de l'enregistrement DMARC
Un enregistrement DMARC est un enregistrement TXT a _dmarc.votredomaine.com :
v=DMARC1; p=politique; [balises optionnelles]Balises obligatoires :
| Balise | Description |
|---|---|
v=DMARC1 | Identifiant de version |
p=none|quarantine|reject | Politique pour les e-mails en echec |
Balises optionnelles :
| Balise | Description |
|---|---|
rua=mailto:adresse | Destination des rapports agreges |
ruf=mailto:adresse | Destination des rapports forensiques |
pct=100 | Pourcentage auquel appliquer la politique (par defaut 100) |
sp=politique | Politique pour les sous-domaines |
Options de politique DMARC
| Politique | Action | Quand l'utiliser |
|---|---|---|
p=none | Surveillance uniquement | Configuration initiale |
p=quarantine | Envoyer en spam | Intermediaire |
p=reject | Bloquer completement | Protection complete |
Exemples DMARC
Mode surveillance :
v=DMARC1; p=none; rua=mailto:dmarc-reports@votredomaine.comMode quarantaine :
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@votredomaine.com; pct=100Mode rejet :
v=DMARC1; p=reject; rua=mailto:dmarc-reports@votredomaine.comDeploiement recommande
- Semaine 1-2 :
p=nonepour surveiller - Semaine 3-4 : Examiner les rapports, corriger les problemes
- Semaine 5-6 :
p=quarantineavecpct=25 - Semaine 7-8 : Augmenter a
pct=100 - Semaine 9+ : Passer a
p=reject
Configuration via le tableau de bord DNScale
Creer un enregistrement SPF
- Connectez-vous sur dnscale.eu
- Selectionnez votre domaine
- Cliquez sur Add Record
- Configurez :
- Name : Laissez vide (apex)
- Type : TXT
- Content :
v=spf1 include:_spf.google.com ~all - TTL : 3600
- Cliquez sur Create Record
Creer un enregistrement DKIM
- Obtenez votre cle publique DKIM aupres de votre fournisseur de messagerie (voir « Obtenir vos cles DKIM » ci-dessus)
- Cliquez sur Add Record
- Configurez :
- Name :
google._domainkey(ou le selecteur de votre fournisseur) - Type : TXT
- Content :
v=DKIM1; k=rsa; p=MIIBIjANBgkq...(votre cle publique) - TTL : 3600
- Name :
- Cliquez sur Create Record
Note : Pour Microsoft 365, vous devrez creer deux enregistrements (selector1 et selector2).
Creer un enregistrement DMARC
- Cliquez sur Add Record
- Configurez :
- Name :
_dmarc - Type : TXT
- Content :
v=DMARC1; p=none; rua=mailto:dmarc@votredomaine.com - TTL : 3600
- Name :
- Cliquez sur Create Record
Configuration via l'API DNScale
Authentification
export DNSCALE_API_KEY="your-api-key"Obtenir l'ID de zone
curl -s "https://api.dnscale.eu/v1/zones" \
-H "Authorization: Bearer $DNSCALE_API_KEY" | jq '.data.zones[] | {id, name}'Creer un enregistrement SPF
curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
-H "Authorization: Bearer $DNSCALE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "@",
"type": "TXT",
"content": "v=spf1 include:_spf.google.com ~all",
"ttl": 3600
}'Creer un enregistrement DKIM
curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
-H "Authorization: Bearer $DNSCALE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "google._domainkey",
"type": "TXT",
"content": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...",
"ttl": 3600
}'Remplacez google._domainkey par votre selecteur et la cle publique par votre veritable cle DKIM.
Creer un enregistrement DMARC
curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
-H "Authorization: Bearer $DNSCALE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "_dmarc",
"type": "TXT",
"content": "v=DMARC1; p=none; rua=mailto:dmarc@votredomaine.com",
"ttl": 3600
}'Verifier les enregistrements
curl -s "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
-H "Authorization: Bearer $DNSCALE_API_KEY" | jq '.data.records[] | select(.type == "TXT")'Tests et validation
Outils en ligne
- MXToolbox SPF Check
- MXToolbox DKIM Check
- MXToolbox DMARC Check
- DMARC Analyzer
- Mail Tester - Envoyez un e-mail test pour verifier toute l'authentification
Ligne de commande
# Verifier SPF
dig TXT votredomaine.com +short
# Verifier DKIM (remplacez 'google' par votre selecteur)
dig TXT google._domainkey.votredomaine.com +short
# Verifier DMARC
dig TXT _dmarc.votredomaine.com +shortEnvoyer un e-mail de test
La meilleure facon de verifier que tout fonctionne est d'envoyer un e-mail de test et de verifier les en-tetes :
- Envoyez un e-mail a un compte Gmail
- Ouvrez l'e-mail → Cliquez sur les trois points → « Afficher l'original »
- Recherchez :
spf=passdkim=passdmarc=pass
Resume
| Enregistrement | Nom | Type | Exemple |
|---|---|---|---|
| SPF | @ | TXT | v=spf1 include:_spf.google.com ~all |
| DKIM | selecteur._domainkey | TXT | v=DKIM1; k=rsa; p=MIIBIjAN... |
| DMARC | _dmarc | TXT | v=DMARC1; p=none; rua=mailto:dmarc@example.com |
Comment ils fonctionnent ensemble :
- SPF verifie que le serveur d'envoi est autorise
- DKIM verifie que le contenu de l'e-mail n'a pas ete modifie
- DMARC indique aux recepteurs quoi faire lorsque SPF ou DKIM echoue
Ordre de mise en oeuvre recommande :
- Configurez d'abord SPF (le plus simple)
- Configurez DKIM avec votre fournisseur de messagerie
- Ajoutez DMARC en mode surveillance (
p=none) - Examinez les rapports, corrigez les problemes
- Appliquez progressivement DMARC (
p=quarantine→p=reject)