DKIM : signer les messages pour prouver leur origine et leur intégrité
DKIM ajoute une signature cryptographique aux messages, vérifiable via une clé publique en DNS. Sélecteurs, en-têtes signés, rotation des clés, erreurs.
Mis à jour le 01/10/2026
DKIM (DomainKeys Identified Mail) permet à un domaine de signer les messages qu'il émet. Le serveur émetteur calcule une signature sur une partie des en-têtes et sur le corps du message, puis l'insère dans un en-tête DKIM-Signature:. Le serveur de réception récupère la clé publique correspondante dans le DNS et vérifie que le message n'a pas été altéré en transit et qu'il a bien été signé par le domaine annoncé. DKIM est normalisé par la RFC 6376.
Comment fonctionne une signature
L'en-tête DKIM-Signature: contient plusieurs étiquettes, dont :
d=: le domaine signataire, celui qui engage sa réputation ;s=: le sélecteur, nom qui permet de publier plusieurs clés pour un même domaine ;h=: la liste des en-têtes couverts par la signature (From,Subject,Date,To,Message-ID…) ;bh=: le condensat du corps du message ;b=: la signature elle-même ;a=: l'algorithme, en pratiquersa-sha256oued25519-sha256;c=: la canonicalisation (simpleourelaxed) appliquée aux en-têtes et au corps, qui tolère ou non des modifications mineures d'espaces et de casse.
Le vérificateur interroge le nom <sélecteur>._domainkey.<domaine>, reconstruit le condensat et compare. Si tout concorde, le résultat est dkim=pass et l'identité d= est considérée comme authentifiée. Contrairement à SPF, DKIM survit aux transferts et aux réexpéditions tant que le message n'est pas modifié.
L'enregistrement DNS
La clé publique se publie dans un enregistrement TXT sous le label _domainkey :
s2026a._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...IDAQAB"
Étiquettes utiles :
v=DKIM1: version, facultative mais recommandée en première position ;k=rsaouk=ed25519: type de clé ;p=: la clé publique en base64 ; une valeur vide signifie que la clé est révoquée ;t=y: mode test, à ne pas laisser en production ;t=s: interdit l'usage de la clé pour des sous-domaines dud=.
Une clé RSA de 2048 bits produit une chaîne de plus de 255 caractères : elle doit être découpée en plusieurs chaînes dans le même enregistrement, ce que la plupart des interfaces DNS font automatiquement mais pas toutes. Les clés Ed25519 (RFC 8463) sont beaucoup plus courtes, mais tous les vérificateurs ne les acceptent pas encore ; la pratique courante est de signer deux fois, RSA et Ed25519.
Déployer DKIM
- Générer une paire de clés RSA 2048 bits (1024 bits est aujourd'hui considéré comme insuffisant par la plupart des routeurs).
- Choisir un sélecteur explicite, par exemple daté (
s2026a), pour faciliter la rotation. - Publier la clé publique en DNS, attendre la propagation, puis activer la signature sur le serveur ou la plateforme d'envoi.
- Pour un prestataire externe, le schéma habituel consiste à publier un
CNAMEde<sélecteur>._domainkey.votre-domainevers un nom hébergé par le prestataire, qui gère alors la clé et sa rotation. Dans ce cas, led=reste votre domaine, ce qui est indispensable pour l'alignement DMARC. - Signer au minimum
From,To,Subject,Date,Message-ID,MIME-VersionetContent-Type. Signer aussi, en les listant une fois de plus dansh=, les en-têtes qui ne doivent pas être ajoutés après coup (oversigning), notammentFrometSubject. - Faire tourner les clés régulièrement, idéalement tous les six à douze mois : publier la nouvelle clé sous un nouveau sélecteur, basculer la signature, conserver l'ancienne clé publiée quelques jours pour les messages encore en transit, puis la retirer.
Erreurs fréquentes
- Clé de 1024 bits ou moins : signature acceptée mais dévalorisée, voire ignorée.
d=sur le domaine du prestataire : la signature est valide mais ne s'aligne pas avec votreFrom:, donc ne compte pas pour DMARC.- Signer trop peu d'en-têtes : un message peut être rejoué avec un
Subjectou unTomodifié tout en gardant une signature valide. - Étiquette
l=(longueur du corps signée) : permet d'ajouter du contenu après la partie signée. À proscrire. - Modification après signature : pied de page ajouté par une passerelle, réécriture de liens, conversion de l'encodage. La signature casse et seul ARC peut en conserver la trace.
- Rejeu DKIM : un message légitimement signé, par exemple envoyé depuis un compte d'essai d'une plateforme partagée, est renvoyé massivement à d'autres destinataires avec sa signature intacte. Signer
DateetMessage-ID, limiter la durée de validité avecx=, et surveiller les comptes d'envoi réduisent le risque. Les travaux DKIM2 visent à traiter ce problème à la racine. - Clé jamais retirée : un sélecteur abandonné mais toujours publié reste utilisable si la clé privée a fuité.
Ce que SenderRadar en montre
SenderRadar liste les sélecteurs DKIM observés pour un domaine, le type et la taille de chaque clé, la présence éventuelle d'un mode test, les délégations par CNAME vers des prestataires, et signale les clés faibles ou révoquées. SenderRadar s'appuie sur sa propre base d'analyse pour indiquer, de façon progressive, l'évolution des sélecteurs dans le temps.