DKIM est une norme d'authentification du courrier électronique qui s'appuie sur la cryptographie à clé publique/privée pour signer les messages électroniques. Les enregistrements DKIM vous permettent de vérifier si un courriel entrant a bien été envoyé par le domaine auquel la clé DKIM est associée. Par conséquent, un enregistrement DKIM vous permet de voir si un courriel a été manipulé en transit et s'il est possible de l'ouvrir en toute sécurité.
DKIM existe dans votre DNS sous la forme d'un enregistrement TXT (texte) ou CNAME (nom canonique). La question de savoir si vous devez utiliser TXT ou CNAME dépend d'un certain nombre de facteurs, examinés ci-dessous.
Points clés à retenir
- DKIM est une norme d'authentification des courriels conçue pour identifier les adresses d'expéditeur falsifiées.
- Les enregistrements DKIM sont toujours des enregistrements TXT. Cependant, certains fournisseurs utilisent la délégation CNAME pour faire pointer votre domaine vers un enregistrement TXT hébergé sur leurs serveurs.
- Chacune de ces méthodes présente ses propres avantages et limites.
- Le choix de l'un ou de l'autre dépend de ce que vous privilégiez : le contrôle et la sécurité ou la facilité et la commodité.
- Les pièges les plus courants sont le mauvais format de sélecteur, le mélange TXT/CNAME pour le même sélecteur et les retards TTL lors de la rotation des touches.
Comprendre la publication d'enregistrements DKIM
Voyons en quoi consiste un enregistrement DKIM.
Que contient un enregistrement DKIM ?
Un enregistrement DKIM comprend un sélecteur, une clé publique et un algorithme. Vous pouvez générer votre enregistrement DKIM avec l'outil en ligne de PowerDMARC.
Sélecteurs DKIM
Les sélecteurs DKIM permettent au serveur de messagerie du destinataire de localiser et de vérifier la clé publique de l'expéditeur. Ils permettent d'identifier la clé publique DKIM à utiliser pour la vérification parmi plusieurs autres. Il se trouve dans l'en-tête DKIM-Signature de chaque courrier électronique signé. Il s'agit du paramètre "s=".
Clé publique
La clé publique DKIM est publiée dans le DNS de votre domaine sous la forme d'un enregistrement TXT (ou parfois d'un CNAME pointant vers la clé de votre fournisseur). Elle est utilisée par les serveurs de réception pour vérifier le hachage du message créé à l'aide de la clé privée de l'expéditeur, ce qui garantit l'intégrité et l'authenticité du courrier électronique.
La clé, fournie par l'organisation qui envoie votre courrier électronique, sera insérée directement dans votre zone DNS sous la forme d'un enregistrement TXT. Il s'agira également d'un CNAME qui pointera vers la clé dans le DNS de votre fournisseur.
Algorithme
L'algorithme utilisé pour le hachage est défini dans la section a= de l'en-tête DKIM-Signature (et non dans l'enregistrement DNS). Les algorithmes de signature DKIM pris en charge sont les suivants :
- rsa-sha256 (recommandé et le plus courant)
- rsa-sha1 (obsolète en raison d'une sécurité plus faible)
Emplacement et syntaxe du DNS
L'enregistrement DKIM est un enregistrement TXT contenant plusieurs paires balise-valeur, généralement séparées par des points-virgules :
v=DKIM1 ; k=rsa ; p=PUBLIC_KEY
- v=DKIM1 spécifie la version DKIM.
- k=rsa, où "k" fait référence au type de clé (RSA est le seul supporté actuellement)
- p=PUBLIC_KEY La clé publique utilisée pour vérifier la signature
Voici un exemple : selector._domainkey.example.com
Ici, "selector" est un identifiant unique pour la clé DKIM, et example.com est votre domaine.
Méthode 1 - DKIM sous forme d'enregistrement TXT
Avec cette méthode, votre clé publique DKIM est publiée sous la forme d'un enregistrement DNS TXT à l'emplacement selector._domainkey.example.com. Le courrier sortant est signé avec la clé privée et les serveurs de réception utilisent la clé publique de votre DNS pour vérifier la signature.
Pour
- Contrôle total : L'utilisation de DKIM en tant qu'enregistrement TXT vous permet d'exercer un contrôle total sur vos clés DKIM et sur le DNS.
- Pas de dépendance à l'égard de tiers: Vous n'aurez pas besoin de faire appel à des fournisseurs tiers lorsque vous utiliserez cette méthode. Elle vous donnera un sentiment accru de confidentialité et de sécurité, car vous êtes le propriétaire de vos données.
Cons
- Rotation manuelle des clés : Vous êtes responsable de la mise à jour des clés vous-même, ce qui peut s'avérer délicat pour les utilisateurs non techniques.
- Risque accru de mauvaise configuration : Une configuration bricolée augmente les risques d'erreurs qui peuvent affaiblir la sécurité du courrier électronique. Utilisez notre vérificateur DKIM gratuit pour éviter les erreurs.
Méthode 2 - DKIM par délégation CNAME
Cette méthode fonctionne très différemment de la première. Au lieu de publier directement votre clé publique DKIM, vous créez un enregistrement CNAME à selector._domainkey.example.com qui pointe vers l'enregistrement DKIM de votre fournisseur de services de messagerie (ESP).
Lorsqu'un serveur de réception consulte votre clé DKIM, la requête DNS suit le CNAME jusqu'au DNS de l'ESP. C'est là que l'enregistrement TXT avec la clé publique est hébergé. Les principaux fournisseurs comme SendGrid, Mailchimp et Amazon SES utilisent cette méthode.
Pour
- Rotation automatique des touches: Cette méthode ne nécessite pas de mises à jour manuelles et la rotation des clés se fait automatiquement.
- Installation facile : Cette méthode est plus adaptée aux débutants ou à la gestion de plusieurs domaines. Elle permet une gestion continue et transparente sans nécessiter de gros efforts.
Cons
- Moins de visibilité : La facilité de mise en place se fait au prix d'un contrôle et d'une visibilité limités de vos clés DKIM et de votre DNS.
- Restrictions concernant les CNAME : Les CNAME profondément imbriqués ou enchaînés peuvent atteindre les limites de résolution du DNS ou causer des problèmes de performance. Certains fournisseurs exigent des formats spécifiques ou ne prennent pas en charge la délégation de CNAME, ce qui peut compromettre la norme DKIM si elle n'est pas respectée.
TXT ou CNAME - Que faut-il utiliser ?
Lorsque vous décidez d'utiliser DKIM dans TXT ou CNAME, voici quelques conseils généraux à suivre.
Utilisez TXT si...
- Vous hébergez vous-même votre courrier électronique et vous disposez d'une expertise technique.
- Vous souhaitez avoir un contrôle total sur DKIM et DNS.
- Vous préférez gérer vous-même les clés et en assurer la rotation.
Note : Dans certains cas, votre fournisseur d'accès peut exiger la saisie directe d'un TXT, ce qui rend cette méthode non optionnelle.
Utilisez le CNAME si...
- Vous utilisez un ESP comme Mailchimp, SES ou SendGrid.
- Vous préférez la gestion automatisée de DKIM.
- Vous n'avez pas le temps ou les compétences techniques nécessaires pour effectuer une installation manuelle.
Mélange de TXT/CNAME pour le même sélecteur
Le DNS ne permet pas d'avoir à la fois un enregistrement TXT et un enregistrement CNAME pour le même nom de domaine (c'est-à-dire le même sélecteur DKIM). N'utilisez qu'un seul type d'enregistrement (TXT ou CNAME) par sélecteur. Choisissez TXT pour un contrôle manuel ou CNAME si vous le déléguez à un ESP.
Exemples concrets
Si vous cherchez des exemples de DKIM dans TXT ou CNAME, en voici un pour chaque cas, avec une description concise.
Exemple de TXT DKIM
google._domainkey.example.com. IN TXT "v=DKIM1 ; k=rsa ; p=MIIBIjANBgkqhkiG..."
Cet enregistrement stocke directement la clé publique DKIM dans votre DNS sous le sélecteur et le domaine spécifiés.
Exemple de CNAME DKIM
em1234._domainkey.example.com. IN CNAME em1234.example.dkim.emailsvc.com.
Cet enregistrement délègue la recherche de la clé DKIM à un fournisseur tiers en pointant vers son enregistrement DKIM hébergé.
Résumé
Le choix entre DKIM dans TXT et CNAME peut sembler difficile. Les deux méthodes fonctionnent bien et sont couramment utilisées, de sorte que la décision vous appartient le plus souvent. Votre choix dépendra souvent de la priorité que vous accordez à un contrôle total et direct par rapport à la commodité, ou vice versa.
Quel que soit votre choix final, vérifiez toujours la conformité de la configuration DKIM actuelle. Cela peut vous aider à éviter les failles de sécurité et à garantir le niveau de sécurité le plus élevé pour vos communications !