Découvrez PostScale -- API e-mail pour l'envoi transactionnel, la réception et les adresses masquées. PostScale

    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
    ComposantDescription
    v=spf1Identifiant de version (obligatoire)
    include:domaineAutoriser les serveurs approuves par le SPF d'un autre domaine
    aAutoriser l'IP de l'enregistrement A du domaine
    mxAutoriser les serveurs MX du domaine
    ip4:x.x.x.xAutoriser une adresse ou plage IPv4 specifique
    ip6:x::xAutoriser une adresse ou plage IPv6 specifique
    ~allEchec souple pour les expediteurs non autorises
    -allEchec strict pour les expediteurs non autorises

    Exemples SPF courants

    Google Workspace :

    v=spf1 include:_spf.google.com ~all

    Microsoft 365 :

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

    Plusieurs fournisseurs :

    v=spf1 include:_spf.google.com include:spf.protection.outlook.com ~all

    Serveur de messagerie personnalise :

    v=spf1 ip4:203.0.113.5 mx ~all

    Bonnes pratiques SPF

    1. Commencez par ~all (echec souple), passez a -all apres les tests
    2. Restez sous les 10 recherches DNS (limite SPF)
    3. 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

    1. Votre serveur de messagerie genere une signature cryptographique a l'aide d'une cle privee
    2. La signature est ajoutee aux en-tetes de l'e-mail
    3. Les serveurs recepteurs recherchent votre cle publique DKIM dans le DNS
    4. Ils verifient que la signature correspond au contenu de l'e-mail
    5. 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..."
    BaliseDescription
    v=DKIM1Identifiant de version
    k=rsaType 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 :

    • google pour Google Workspace
    • selector1, selector2 pour Microsoft 365
    • k1, k2, k3 pour les configurations personnalisees
    • mailjet, sendgrid pour les services tiers

    Obtenir vos cles DKIM

    Les cles DKIM sont generees par votre fournisseur de messagerie. Voici ou les trouver :

    Google Workspace :

    1. Console d'administration → Apps → Google Workspace → Gmail
    2. Authentifier les e-mails → Generer un nouvel enregistrement
    3. Copiez la valeur de l'enregistrement TXT

    Microsoft 365 :

    1. Microsoft 365 Defender → E-mail et collaboration → Politiques
    2. DKIM → Selectionnez le domaine → Creer les cles DKIM
    3. 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

    1. Utilisez des cles de 2048 bits - Les cles de 1024 bits sont de plus en plus vulnerables
    2. Effectuez une rotation des cles regulierement - Au moins annuellement pour la securite
    3. Gardez les cles privees securisees - Ne les exposez jamais dans le DNS ou les logs
    4. Utilisez des selecteurs uniques - Des selecteurs differents pour chaque service
    5. 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 :

    BaliseDescription
    v=DMARC1Identifiant de version
    p=none|quarantine|rejectPolitique pour les e-mails en echec

    Balises optionnelles :

    BaliseDescription
    rua=mailto:adresseDestination des rapports agreges
    ruf=mailto:adresseDestination des rapports forensiques
    pct=100Pourcentage auquel appliquer la politique (par defaut 100)
    sp=politiquePolitique pour les sous-domaines

    Options de politique DMARC

    PolitiqueActionQuand l'utiliser
    p=noneSurveillance uniquementConfiguration initiale
    p=quarantineEnvoyer en spamIntermediaire
    p=rejectBloquer completementProtection complete

    Exemples DMARC

    Mode surveillance :

    v=DMARC1; p=none; rua=mailto:dmarc-reports@votredomaine.com

    Mode quarantaine :

    v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@votredomaine.com; pct=100

    Mode rejet :

    v=DMARC1; p=reject; rua=mailto:dmarc-reports@votredomaine.com

    Deploiement recommande

    1. Semaine 1-2 : p=none pour surveiller
    2. Semaine 3-4 : Examiner les rapports, corriger les problemes
    3. Semaine 5-6 : p=quarantine avec pct=25
    4. Semaine 7-8 : Augmenter a pct=100
    5. Semaine 9+ : Passer a p=reject

    Configuration via le tableau de bord DNScale

    Creer un enregistrement SPF

    1. Connectez-vous sur dnscale.eu
    2. Selectionnez votre domaine
    3. Cliquez sur Add Record
    4. Configurez :
      • Name : Laissez vide (apex)
      • Type : TXT
      • Content : v=spf1 include:_spf.google.com ~all
      • TTL : 3600
    5. Cliquez sur Create Record

    Creer un enregistrement DKIM

    1. Obtenez votre cle publique DKIM aupres de votre fournisseur de messagerie (voir « Obtenir vos cles DKIM » ci-dessus)
    2. Cliquez sur Add Record
    3. Configurez :
      • Name : google._domainkey (ou le selecteur de votre fournisseur)
      • Type : TXT
      • Content : v=DKIM1; k=rsa; p=MIIBIjANBgkq... (votre cle publique)
      • TTL : 3600
    4. Cliquez sur Create Record

    Note : Pour Microsoft 365, vous devrez creer deux enregistrements (selector1 et selector2).

    Creer un enregistrement DMARC

    1. Cliquez sur Add Record
    2. Configurez :
      • Name : _dmarc
      • Type : TXT
      • Content : v=DMARC1; p=none; rua=mailto:dmarc@votredomaine.com
      • TTL : 3600
    3. 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

    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 +short

    Envoyer 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 :

    1. Envoyez un e-mail a un compte Gmail
    2. Ouvrez l'e-mail → Cliquez sur les trois points → « Afficher l'original »
    3. Recherchez :
      • spf=pass
      • dkim=pass
      • dmarc=pass

    Resume

    EnregistrementNomTypeExemple
    SPF@TXTv=spf1 include:_spf.google.com ~all
    DKIMselecteur._domainkeyTXTv=DKIM1; k=rsa; p=MIIBIjAN...
    DMARC_dmarcTXTv=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 :

    1. Configurez d'abord SPF (le plus simple)
    2. Configurez DKIM avec votre fournisseur de messagerie
    3. Ajoutez DMARC en mode surveillance (p=none)
    4. Examinez les rapports, corrigez les problemes
    5. Appliquez progressivement DMARC (p=quarantinep=reject)