DKIM (DomainKeys Identified Mail) est un protocole d'authentification email qui permet de prouver qu'un message n'a pas été modifié entre son envoi et sa réception, et qu'il provient bien du domaine affiché. C'est le deuxième pilier de l'authentification email, après SPF et avant DMARC. Depuis les nouvelles exigences de Gmail et Yahoo en 2024, DKIM est devenu indispensable pour garantir la délivrabilité de vos emails.
Comment fonctionne DKIM
DKIM repose sur la cryptographie asymétrique, c'est-à-dire un système de clé privée et clé publique. Le principe est simple, même si la mécanique technique est sophistiquée :
- Génération des clés - Une paire de clés est créée : une clé privée (secrète, stockée sur le serveur d'envoi) et une clé publique (publiée dans le DNS de votre domaine).
- Signature à l'envoi - Quand votre serveur envoie un email, il utilise la clé privée pour créer une signature numérique basée sur le contenu du message (en-têtes et corps). Cette signature est ajoutée dans un en-tête spécial :
DKIM-Signature. - Vérification à la réception - Le serveur destinataire lit l'en-tête
DKIM-Signature, extrait le domaine et le sélecteur indiqués, puis interroge le DNS pour récupérer la clé publique correspondante. - Validation - Avec la clé publique, le serveur vérifie que la signature correspond au contenu du message. Si c'est le cas, le résultat est
PASS. Sinon, le message a été altéré ou la signature est invalide.
Anatomie d'un en-tête DKIM
Voici à quoi ressemble un en-tête DKIM dans un email :
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=votre-domaine.fr; s=google;
h=from:to:subject:date:message-id;
bh=base64encodedBodyHash;
b=base64encodedSignature
Les champs importants :
d=- Le domaine qui signe l'email (votre domaine).s=- Le sélecteur, une chaîne qui identifie la clé utilisée. Permet d'avoir plusieurs clés DKIM pour un même domaine.a=- L'algorithme de signature (généralementrsa-sha256).h=- Les en-têtes du message inclus dans la signature.b=- La signature elle-même, encodée en base64.bh=- Le hash du corps du message.
L'enregistrement DNS DKIM
La clé publique DKIM est publiée dans le DNS sous forme d'un enregistrement TXT. Son nom suit le format :
[sélecteur]._domainkey.votre-domaine.fr
Par exemple, si votre sélecteur est google, l'enregistrement sera :
google._domainkey.votre-domaine.fr TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA..."
Les champs de la valeur :
v=DKIM1- Version du protocole DKIM.k=rsa- Type de clé (RSA est le standard).p=- La clé publique encodée en base64. Si ce champ est vide (p=), cela signifie que la clé a été révoquée.
Vérifiez votre DKIM
Notre diagnostic vérifie automatiquement si DKIM est configuré et valide pour votre domaine.
Entrez un nom de domaine valide (ex : monentreprise.fr)Activer DKIM selon votre fournisseur email
Google Workspace
- Connectez-vous à la console d'administration Google (admin.google.com).
- Allez dans Applications > Google Workspace > Gmail > Authentifier les emails.
- Sélectionnez votre domaine et cliquez sur "Générer un nouvel enregistrement".
- Choisissez la longueur de clé : 2048 bits (recommandé) ou 1024 bits.
- Google vous fournit un enregistrement TXT à ajouter dans votre DNS avec le sélecteur
google. - Ajoutez l'enregistrement dans votre DNS, attendez la propagation, puis revenez dans la console Google et cliquez sur "Démarrer l'authentification".
Microsoft 365
Microsoft 365 configure DKIM automatiquement pour les domaines utilisant les serveurs mail Microsoft. Cependant, la signature utilise par défaut le domaine onmicrosoft.com. Pour signer avec votre propre domaine :
- Connectez-vous au portail Microsoft Defender.
- Allez dans Stratégies > Règles de menace > Email authentification > DKIM.
- Sélectionnez votre domaine et activez la signature DKIM.
- Microsoft vous fournit deux enregistrements CNAME à ajouter dans votre DNS :
selector1._domainkey CNAME selector1-votre-domaine-fr._domainkey.votre-tenant.onmicrosoft.com
selector2._domainkey CNAME selector2-votre-domaine-fr._domainkey.votre-tenant.onmicrosoft.com
OVH
OVH active DKIM automatiquement pour les comptes email hébergés chez eux. Pour vérifier ou l'activer manuellement :
- Connectez-vous à l'espace client OVH.
- Allez dans Emails > votre domaine > DKIM.
- Si DKIM n'est pas actif, cliquez sur "Activer".
- OVH crée automatiquement l'enregistrement DNS nécessaire dans votre zone DNS OVH.
Autres hébergeurs
Pour Gandi, Infomaniak, o2switch et la plupart des hébergeurs français, la procédure est similaire : cherchez l'option DKIM dans la section Email de votre interface d'administration. Si votre hébergeur ne propose pas de gestion DKIM intégrée, vous devrez générer les clés manuellement et les ajouter dans votre DNS.
Générer des clés DKIM manuellement
Si votre hébergeur ne gère pas DKIM automatiquement, vous pouvez générer les clés avec OpenSSL :
# Générer une clé privée RSA de 2048 bits
openssl genrsa -out dkim_private.pem 2048
# Extraire la clé publique
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
La clé privée doit être installée sur votre serveur mail (dans la configuration d'OpenDKIM, par exemple). La clé publique doit être publiée dans votre DNS, dans un enregistrement TXT au format v=DKIM1; k=rsa; p=[clé publique en base64 sans les en-têtes].
Bonnes pratiques DKIM
- Utilisez des clés de 2048 bits - Les clés de 1024 bits sont encore acceptées mais considérées comme de plus en plus faibles. Les clés de 2048 bits offrent une sécurité bien supérieure.
- Effectuez une rotation régulière des clés - Changez vos clés DKIM au moins une fois par an. Utilisez un nouveau sélecteur à chaque rotation pour éviter les problèmes de cache DNS.
- Un sélecteur par service - Si vous utilisez plusieurs services d'envoi (Google Workspace, Mailjet, Sendinblue), chaque service doit avoir son propre sélecteur et sa propre paire de clés.
- Ne partagez jamais la clé privée - La clé privée ne doit être accessible qu'au serveur qui signe les emails. Ne l'envoyez jamais par email et ne la stockez pas dans un dépôt de code public.
- Signez les en-têtes importants - Assurez-vous que la signature inclut au minimum les en-têtes
From,To,SubjectetDate.
Erreurs courantes DKIM
- Clé publique tronquée dans le DNS - Les clés de 2048 bits sont longues et certains interfaces DNS les tronquent. Vérifiez que la clé complète est bien publiée.
- Mauvais sélecteur - Le sélecteur utilisé dans la signature doit correspondre exactement à celui de l'enregistrement DNS. Vérifiez la casse et l'orthographe.
- Propagation DNS incomplète - Après avoir ajouté l'enregistrement, attendez au moins 24 heures avant de diagnostiquer un problème. Certains serveurs DNS mettent du temps à propager les changements.
- Modification du message en transit - Si un serveur intermédiaire (relais, antivirus, liste de diffusion) modifie le corps du message après la signature, DKIM échouera. Utilisez la canonicalisation
relaxedpour tolérer les modifications mineures.
Vérifier que DKIM fonctionne
Après la configuration, envoyez un email de test vers une adresse Gmail. Ouvrez le message, cliquez sur les trois points, puis "Afficher l'original". Cherchez la ligne :
DKIM: 'PASS' with domain votre-domaine.fr
Si vous voyez PASS, votre DKIM est correctement configuré. Si vous voyez FAIL ou NONE, revérifiez votre enregistrement DNS et la configuration de votre serveur mail.
Besoin d'aide avec DKIM ?
DKIM est le protocole le plus technique des trois à configurer, surtout si votre hébergeur ne propose pas d'activation automatique. Notre équipe peut prendre en charge la configuration complète - génération des clés, publication DNS, vérification - en moins de 48 heures.
Pas le temps de configurer tout ça ?
On configure SPF, DKIM et DMARC sur votre domaine. Vous n'avez rien à faire.