DKIM

Le DKIM, signifiant “DomainKeys Identified Mail, est un protocole email permettant de garantir l’authenticité d’un domaine expéditeur, et ainsi de se prémunir contre les tentatives d’usurpation d’identité de ce dernier.

 

Dans la lignée du protocole SPF, le DKIM a été conçu dans le but de protéger les domaines expéditeurs (et par effet de conséquence les email destinataires) contre les risques d’usurpation d’identité numérique au travers des emails. Il permet donc, tout comme le SPF, de certifier que l’email reçu provient bien du domaine annoncé par l’adresse expéditrice, et permet ainsi de fortement limiter les tentatives de phishing et de spam au travers de ce domaine source.

 

Le protocole DKIM, décrit dans la RFC 6376, est plus récent que le SPF, et a été créé dans le but de pallier à certains manques de ce dernier.
A la différence du SPF qui permet de certifier l’authenticité d’un domaine au travers de l’adresse IP expéditrice utilisée, le DKIM repose quant à lui sur un mécanisme plus sécurisé de signature numérique du contenu de l’email envoyé.
Ainsi au travers de DKIM, les emails envoyés par un domaine fournissent une signature (au travers d’une clé secrète) qui sera intégrée dans l’email envoyé et qui permettra de certifier que le contenu a bien été émis par lui-seul.

 

Afin de valider que le contenu et l’expéditeur de l’email reçu, le domaine de réception ira lire la clé publique définie dans le DNS du domaine expéditeur.
La correspondance entre signature DKIM déchiffrée au travers de cette clé publique et le contenu réel du message reçu permettra ainsi de certifier à la fois l’authenticité de la provenance de l’email (authenticité du domaine expéditeur), mais également l’intégrité du contenu envoyé (c’est à dire prouver que le contenu n’a pas été altéré entre le moment de sa création et la réception finale)

 

Note: de la même manière que le SPF, le DKIM permet ici aussi de valider que le domaine expéditeur est bien celui annoncé, mais garanti pas qu’il ne puisse pas y avoir un spoofing sur l’adresse email utilisée au sein de ce domaine spécifique. Contrairement au SPF, certains modes de fonctionnement “strictes” du DKIM peuvent toutefois diminuer ce risque.

 

Afin de mettre en place le DKIM sur un domaine émetteur, les étapes suivantes doivent être réalisées :

 

– créer une clé DKIM (1024 ou 2048 bits)

– créer une entrée DNS (de type TXT) correspondant au connecteur voulu et contenant la partie publique de la clé DKIM. Certaines options de customisation sur le comportement attendu sur la signature des emails peuvent etre définies dans cette entrée DNS.


Voici un exemple de contenu d’un connecteur DKIM défini au niveau DNS pour le domaine yahoo.com:

 

Entrée DNS TXT : s2048._domainkey.yahoo.com

 

"k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuoWufgbWw58MczUGbMv176RaxdZGOMkQmn8OOJ/HGoQ6dalSMWiLaj8IMcHC1cubJx2gz" "iAPQHVPtFYayyLA4ayJUSNk10/uqfByiU8qiPCE4JSFrpxflhMIKV4bt+g1uHw7wLzguCf4YAoR6XxUKRsAoHuoF7M+v6bMZ/X1G+viWHkBl4UfgJQ6O8F1ckKKoZ5K" "qUkJH5pDaqbgs+F3PpyiAUQfB6EEzOA1KMPRWJGpzgPtKoukDcQuKUw9GAul7kSIyEcizqrbaUKNLGAmz0elkqRnzIsVpz6jdT1/YV5Ri6YUOQ5sN5bqNzZ8TxoQlkb" "VRy6eKOjUnoSSTmSAhwIDAQAB;"

 

– activer la signature des emails sortants avec cette clé DKIM

 

La majorité des ESP offrant un service de messagerie professionnel (gsuite, office365, etc) proposent nativement de générer la clé DKIM et d’activer son utilisation au travers de leur partie d’administration. Pour cela il faut donc avoir configuré son domaine émetteur pour fonctionner avec un de ces ESP (sur la partie réception et envoi des emails), et aller dans la partie d’administration pour gérer simplement les tâches d’authentification des emails décrites ci-dessus.
La procédure se fait en quelques étapes simples, mais nécessite néanmoins d’avoir des accès suffisants à la partie DNS du domaine afin de positionner l’entrée nécessaire au fonctionnement de la clé DKIM générée.

 

Il est tout à fait possible d’avoir plusieurs clés DKIM sur un même domaine : cette configuration peut-être utile notamment pour signer avec une clé différente les emails en provenance de sources différentes. On peut par exemple utiliser la clé DKIM généré par son ESP pour les communications sortantes au travers de ce dernier, et utiliser une autre clé DKIM pour signer les messages de masse (bulk email ou newsletter par exemple) qui sont envoyés au travers d’un routeur email donné (Brevo, Mailjet, Mailchimp, etc).

 

Note : que ce soit pour le SPF ou le DKIM, il n’est pas nécessaire pour une personne utilisant sa messagerie personnelle de devoir gérer ces éléments là, car les principaux ESP (gmail, outlook, yahoo, etc) gèrent déjà ces aspects là en incluant automatiquement les éléments d’authentification nécessaires (SPF et DKIM) lors de l’envoi des messages via leur interface webmail. La configuration du SPF et DKIM n’est nécessaire que pour les domaines customs / professionnels, lesquels n’ont pas ces fonctions de nativement définies et qui nécessitent donc une configuration volontaire pour les activer.

 

Bien qu’étant un peu plus complexe à configurer que le SPF, il est fortement recommandé pour tout domaine personnalisé / professionnel de définir également un enregistrement DKIM. Ce dernier pourra pallier aux manques de SPF et de surcroît ajouter de la confiance sur l’authenticité des emails envoyés si les deux métriques (SPF et DKIM) sont tous les deux valides. Ces éléments seront par ailleurs analysés par les différents filtres antispam des domaines email en réception et permettront d’aider à une meilleure délivrabilité des emails (meilleur positionnement en Inbox au lieu de spam).
Il est donc toujours une best practice de l’emailing que de procéder à la mise en place conjointe de DKIM et de SPF dans le setup email d’un nouveau domaine.