Aller au contenu principal

Qu'est-ce qu'un enregistrement DKIM ? Le guide complet

Par CaptainDNS
Publié le 18 février 2026

Schéma du fonctionnement d'un enregistrement DKIM dans le DNS
TL;DR
  • Un enregistrement DKIM est un record DNS TXT qui publie la clé publique permettant de vérifier la signature cryptographique d'un email
  • Le serveur d'envoi signe chaque message avec sa clé privée, le serveur de réception vérifie la signature via le DNS
  • Les balises essentielles sont v=DKIM1 (version), k=rsa ou k=ed25519 (algorithme) et p= (clé publique encodée en Base64)
  • RSA 2048 bits est le standard actuel, Ed25519 est plus rapide mais pas encore supporté partout
  • DKIM seul ne protège pas contre le spoofing : il faut coupler avec DMARC pour vérifier l'alignement du domaine

Vous configurez l'authentification email de votre domaine et vous tombez sur DKIM. Vous savez que c'est important, mais les termes "signature cryptographique", "sélecteur" et "clé publique DNS" restent flous. Ce guide clarifie tout.

DKIM (DomainKeys Identified Mail) est un protocole d'authentification email défini par la RFC 6376. Il permet au serveur de réception de vérifier que le contenu d'un message n'a pas été altéré en transit. Il confirme aussi que le domaine du champ From: a bien autorisé cet envoi.

À la fin de ce guide, vous saurez configurer et maintenir DKIM correctement, du choix de l'algorithme à la rotation des clés.

Qu'est-ce que DKIM ? Le principe en 30 secondes

DKIM repose sur un mécanisme de cryptographie asymétrique (clé publique/clé privée). Le serveur d'envoi détient une clé privée qu'il utilise pour signer chaque email sortant. La clé publique correspondante est publiée dans le DNS sous forme d'enregistrement TXT, accessible à n'importe quel serveur de réception.

Quand un email arrive, le serveur de réception :

  1. Lit l'en-tête DKIM-Signature pour identifier le domaine (d=) et le sélecteur (s=)
  2. Construit la requête DNS : <sélecteur>._domainkey.<domaine>
  3. Récupère la clé publique depuis l'enregistrement TXT
  4. Vérifie que la signature correspond au contenu du message

Si la signature est valide, le message est authentifié. Sinon, il échoue la vérification DKIM.

Comment fonctionne DKIM : le cycle complet

Étape 1 : Signature par le serveur d'envoi

Quand un utilisateur envoie un email depuis captaindns.com, le serveur d'envoi effectue trois opérations :

  1. Sélectionne les en-têtes à signer : From, To, Subject, Date, Message-ID (définis par la balise h=)
  2. Calcule un hash du corps du message (algorithme SHA-256, stocké dans bh=)
  3. Signe le hash avec la clé privée RSA ou Ed25519, puis ajoute l'en-tête DKIM-Signature au message

Voici un exemple d'en-tête DKIM-Signature :

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=captaindns.com; s=google; t=1739800000;
  h=from:to:subject:date:message-id;
  bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
  b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...

Étape 2 : Vérification par le serveur de réception

Le serveur de réception extrait d=captaindns.com et s=google de l'en-tête, puis interroge le DNS :

dig TXT google._domainkey.captaindns.com +short

Résultat :

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC..."

Il utilise ensuite la clé publique (p=) pour vérifier la signature (b=). Si le hash recalculé correspond, la vérification est réussie.

Schéma du cycle de signature et vérification DKIM

Anatomie d'un enregistrement DKIM

L'enregistrement DKIM est publié sous forme de record DNS TXT à l'adresse <sélecteur>._domainkey.<domaine>.

Format DNS complet

google._domainkey.captaindns.com  IN  TXT  "v=DKIM1; k=rsa; t=s; p=MIIBIjANBgkq..."

Les balises obligatoires

BaliseRôleValeursExemple
v=Version du protocoleDKIM1 (seule valeur valide)v=DKIM1
p=Clé publique encodée en Base64Chaîne Base64p=MIIBIjANBgkq...

La balise p= est le cœur de l'enregistrement. Si elle est vide (p=), cela signifie que la clé a été révoquée. Le serveur de réception traitera alors toute signature utilisant ce sélecteur comme invalide.

Les balises optionnelles

BaliseRôleValeurs possiblesPar défaut
k=Algorithme de la clérsa, ed25519rsa
t=Drapeaux (flags)y (test), s (strict)aucun
h=Algorithmes de hash acceptéssha256, sha1tous
s=Type de serviceemail, ** (tous)
n=Notes lisibles par un humainTexte libreaucun

Détail des drapeaux t= :

  • t=y : mode test. Les serveurs de réception ne doivent pas pénaliser un échec DKIM. Utile pendant le déploiement initial.
  • t=s : mode strict. Le domaine de l'en-tête From: doit correspondre exactement au domaine d= de la signature (pas de sous-domaines).

Exemple complet déchiffré

selector1._domainkey.captaindns.com  IN  TXT  "v=DKIM1; k=rsa; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
ÉlémentSignification
selector1._domainkey.captaindns.comEmplacement DNS (sélecteur selector1, domaine captaindns.com)
v=DKIM1Protocole DKIM version 1
k=rsaClé RSA
t=sMode strict (pas de sous-domaines)
h=sha256Accepte uniquement SHA-256
p=MIIBIj...Clé publique RSA 2048 bits encodée en Base64

Anatomie d'un enregistrement DKIM avec toutes les balises

RSA vs Ed25519 : quelle clé choisir ?

La RFC 8463 (2018) a introduit le support d'Ed25519 comme alternative à RSA pour DKIM.

CritèreRSA 2048RSA 4096Ed25519
Taille de la clé publique~392 caractères~736 caractères~44 caractères
Taille de la signature256 octets512 octets64 octets
Performance de vérificationRapideMoyenneTrès rapide
SécuritéSolide (2030+)Très solideTrès solide
Support fournisseursUniverselUniverselPartiel (Google, Fastmail)
Compatibilité DNSOKPeut dépasser 255 octets TXTOK

Recommandations

  • RSA 2048 : choix par défaut. Supporté par tous les fournisseurs et serveurs. Suffisant pour la sécurité actuelle.
  • RSA 4096 : pour les organisations avec des exigences de sécurité élevées. Attention aux limites de taille des enregistrements TXT (peut nécessiter plusieurs chaînes de 255 octets).
  • Ed25519 : recommandé en double signature (Ed25519 + RSA 2048) pour la transition. Les serveurs qui ne supportent pas Ed25519 ignoreront la signature et utiliseront la signature RSA.

Ne plus utiliser RSA 1024 bits. Google, Microsoft et Yahoo considèrent les clés 1024 bits comme faibles depuis 2024.

DKIM et DMARC : le lien essentiel

DKIM authentifie le contenu d'un message, mais ne vérifie pas que le domaine affiché dans le From: est légitime. C'est le rôle de DMARC.

Alignement DKIM

DMARC vérifie que le domaine d= de la signature DKIM correspond au domaine du From:. Deux modes existent :

ModeComportementExemple
Relaxed (par défaut)Le domaine d= peut être un sous-domaine du From:d=mail.captaindns.com valide pour From: contact@captaindns.com
StrictLe domaine d= doit correspondre exactement au From:d=captaindns.com obligatoire pour From: contact@captaindns.com

Le mode d'alignement DKIM se configure dans l'enregistrement DMARC via la balise adkim :

_dmarc.captaindns.com  IN  TXT  "v=DMARC1; p=reject; adkim=s; rua=mailto:dmarc@captaindns.com"

Pourquoi DKIM seul ne suffit pas ?

Sans DMARC, un attaquant peut envoyer un email avec un From: contact@captaindns.com tout en signant avec son propre domaine DKIM (d=attacker.com). La signature DKIM sera valide, mais le destinataire verra un faux expéditeur. DMARC bloque ce scénario en exigeant l'alignement entre le domaine From: et le domaine d=.

Rotation des clés DKIM : pourquoi et comment

Pourquoi tourner les clés ?

Une clé DKIM utilisée trop longtemps présente des risques :

  • Compromission : plus une clé est exposée, plus elle est vulnérable aux attaques
  • Conformité : certains standards (PCI DSS, SOC 2) exigent une rotation régulière
  • Bonnes pratiques : Google recommande une rotation trimestrielle

Fréquence recommandée

Taille de cléFréquence minimaleRecommandation
RSA 1024ImmédiatMigrer vers 2048 bits
RSA 2048Tous les 6 moisTous les 3 mois
RSA 4096Tous les 12 moisTous les 6 mois
Ed25519Tous les 12 moisTous les 6 mois

Procédure pas à pas

  1. Générer une nouvelle paire de clés avec un nouveau sélecteur (ex: s202602)
  2. Publier la nouvelle clé publique dans le DNS : s202602._domainkey.captaindns.com
  3. Attendre la propagation DNS (24-48 heures)
  4. Configurer le serveur d'envoi pour utiliser le nouveau sélecteur
  5. Vérifier que les emails sortants sont signés avec le nouveau sélecteur
  6. Révoquer l'ancienne clé en publiant p= (vide) dans l'ancien enregistrement DNS
  7. Supprimer l'ancien enregistrement après 30 jours (le temps que les emails en transit soient traités)

Erreurs courantes dans les enregistrements DKIM

ErreurSymptômeSolution
Clé 1024 bitsWarning chez Google/YahooMigrer vers RSA 2048 bits
Balise p= videDKIM fail : key revokedRepublier la clé publique ou utiliser un nouveau sélecteur
Sélecteur introuvableDKIM fail : no key for signatureVérifier le DNS, la propagation et l'orthographe du sélecteur
Clé publique tronquéeDKIM fail : bad RSA signatureVérifier que l'enregistrement TXT n'est pas coupé (limite 255 octets par chaîne)
v=DKIM1 absentCertains serveurs ignorent l'enregistrementToujours inclure v=DKIM1 en première balise
En-tête From non signéDMARC échoue malgré DKIM valideAjouter from dans la balise h= de la signature
Mode test oubliét=y reste actif en productionRetirer t=y une fois DKIM validé

🎯 Plan d'action recommandé

  1. Vérifier l'existant : utilisez un DKIM Checker pour analyser vos enregistrements DKIM actuels
  2. Inventorier vos sélecteurs : identifiez tous les sélecteurs actifs sur votre domaine avec un outil de découverte automatique
  3. Vérifier la taille des clés : toute clé inférieure à 2048 bits doit être remplacée
  4. Configurer DMARC : publiez un enregistrement DMARC avec adkim=r (relaxed) pour commencer, puis passez en strict (adkim=s) quand tout est stable
  5. Planifier la rotation : notez dans votre calendrier une rotation trimestrielle des clés DKIM

FAQ

Qu'est-ce qu'un enregistrement DKIM ?

Un enregistrement DKIM est un record DNS de type TXT publié à l'adresse selecteur._domainkey.domaine.com. Il contient la clé publique qui permet aux serveurs de réception de vérifier la signature cryptographique ajoutée à chaque email sortant. Les balises essentielles sont v=DKIM1 (version), k= (algorithme) et p= (clé publique en Base64).

Comment fonctionne la signature DKIM ?

Le serveur d'envoi calcule un hash SHA-256 des en-têtes sélectionnés et du corps du message, puis signe ce hash avec sa clé privée. La signature est ajoutée dans l'en-tête DKIM-Signature. Le serveur de réception récupère la clé publique via le DNS et vérifie que la signature correspond au contenu reçu.

Quelles sont les balises d'un enregistrement DKIM ?

Les balises obligatoires sont v=DKIM1 (version) et p= (clé publique). Les balises optionnelles incluent k= (algorithme, rsa par défaut), t= (drapeaux : y pour test, s pour strict), h= (algorithmes de hash acceptés), s= (type de service) et n= (notes).

Quelle est la différence entre RSA et Ed25519 pour DKIM ?

RSA 2048 est le standard actuel, supporté par tous les fournisseurs. Ed25519 produit des signatures plus courtes (64 octets vs 256) et est plus rapide, mais n'est supporté que par quelques fournisseurs (Google, Fastmail). La meilleure approche est la double signature : Ed25519 + RSA 2048.

Comment vérifier un enregistrement DKIM ?

Utilisez la commande dig TXT selecteur._domainkey.domaine.com +short pour interroger le DNS. Si un enregistrement TXT contenant v=DKIM1 et p= est retourné, la clé publique est publiée. Pour une analyse complète (taille de clé, syntaxe, validité), utilisez un outil de vérification DKIM en ligne.

Pourquoi la rotation des clés DKIM est-elle importante ?

Une clé utilisée trop longtemps augmente le risque de compromission. Google recommande une rotation trimestrielle. La procédure consiste à créer un nouveau sélecteur avec une nouvelle paire de clés, publier la nouvelle clé dans le DNS, basculer le serveur d'envoi, puis révoquer l'ancienne clé en vidant sa balise p=.

Quel est le lien entre DKIM et DMARC ?

DKIM authentifie le contenu d'un message, DMARC vérifie que le domaine de la signature DKIM (d=) correspond au domaine du From:. Sans DMARC, un attaquant peut signer un email avec son propre domaine tout en usurpant le From:. DMARC bloque ce scénario via la vérification d'alignement.

📖 Glossaire

  • DKIM (DomainKeys Identified Mail) : protocole d'authentification email par signature cryptographique asymétrique, vérifiant l'intégrité des messages sortants.
  • Sélecteur DKIM : identifiant texte (ex: google, selector1) qui forme l'adresse DNS de la clé publique (selecteur._domainkey.domaine).
  • Clé publique : partie de la paire cryptographique publiée dans le DNS. Les serveurs de réception l'utilisent pour vérifier les signatures.
  • Alignement DKIM : vérification par DMARC que le domaine d= correspond au domaine du From:.
  • Ed25519 : algorithme de signature introduit par la RFC 8463 comme alternative à RSA. Signatures plus courtes, vérification plus rapide.
  • Rotation des clés : remplacement régulier des paires de clés DKIM pour limiter les risques de compromission.

Générez vos clés DKIM en quelques secondes : utilisez le Générateur DKIM pour créer une paire de clés RSA 2048 ou Ed25519 avec l'enregistrement DNS prêt à publier.


📚 Guides DKIM connexes

Sources

Articles similaires