Posts

Courrier identifié par des clés de domaine (DKIM) est une méthode d'authentification des courriels qui permet à une organisation d'assumer la responsabilité d'un message qui a été envoyé. Elle utilise la cryptographie à clé publique pour "signer" numériquement les messages électroniques, prouvant ainsi aux destinataires que le message a été envoyé par le propriétaire du domaine. Les destinataires peuvent comparer la signature avec la clé publique publiée de leur domaine pour vérifier la signature.

Cet article examine DKIM en détail et vous donne un aperçu du fonctionnement de cette méthode d'authentification des e-mails.

Qu'est-ce que la signature DKIM ?

DKIM est l'abréviation de DomainKeys Identified Mail. Il s'agit d'un système d'authentification du courrier électronique qui assure l'intégrité et la non-répudiation en utilisant des signatures cryptographiques. Il est associé à DMARC peuvent vous aider à mettre en place une solide infrastructure de protection contre l'usurpation d'identité pour vos messages électroniques.

Le protocole DKIM crée une signature cryptographique pour chaque message envoyé aux destinataires, ainsi qu'une signature de domaine qui est ajoutée à l'en-tête du message.

Cette signature est utilisée par le récepteur pour vérifier que le message a bien été envoyé par le propriétaire du domaine et non par quelqu'un d'autre. Elle permet également de vérifier que le message n'a pas été altéré tout au long de son parcours entre l'expéditeur et le destinataire.

S'il ne correspond pas, alors soit :

  1. Le message a été altéré pendant la transmission, ou
  2. Le message est envoyé au nom d'une autre personne qui a accès à la clé privée du serveur d'envoi.

En cas de signatures non concordantes, DKIM empêchera la distribution de ces courriels à leurs destinataires, car ceux-ci ne seront pas en mesure de les valider comme des messages légitimes provenant de votre marque.

Comment fonctionne une signature DKIM ?

Les signatures DKIM fonctionnent en insérant une signature numérique dans l'en-tête d'un courriel. Cette signature peut être vérifiée par le serveur récepteur et utilisée pour déterminer si un courriel a été altéré ou non pendant son transit.

DKIM utilise la cryptographie à clé publique, qui repose sur une paire de clés : une privée et une publique. La clé publique est distribuée à toute personne qui le souhaite, tandis que la clé privée est gardée secrète (généralement par le propriétaire).

Lorsque vous signez un courriel à l'aide de DKIM, votre clé privée est utilisée pour créer un hachage du contenu du message, puis pour chiffrer ce hachage avec la clé publique du destinataire. Ce hachage chiffré est ensuite inséré dans l'en-tête de votre message, où il peut être validé par le destinataire.

Les clés de la signature DKIM

Les signatures DKIM sont générées à l'aide de deux clés cryptographiques, une publique et une privée. La clé publique est publiée dans le DNS, tandis que la clé privée est gardée secrète.

Lorsqu'un courriel est signé, la clé privée est utilisée pour générer un hachage du message. Ce hachage est ensuite crypté avec la clé publique et envoyé avec le message lui-même.

Lorsque le destinataire reçoit ces informations, il utilise sa clé privée pour déchiffrer le hachage et vérifier qu'il correspond au contenu original du message.

Les parties de la signature DKIM

Une signature DKIM se compose de deux parties : un en-tête et un corps. L'en-tête contient des informations sur l'identité de l'expéditeur, notamment son adresse électronique et sa clé publique. Le corps contient le message réel qui a été envoyé.

  1. Pour calculer une signature DKIM, vous prenez d'abord un hash MD5 de votre nom de domaine (par exemple, "exemple.com"), qui est votre clé publique.
  2. Ensuite, vous concaténerez votre nom de domaine avec un hachage SHA1 (par exemple, "sha1(exemple.com)") et l'ajouterez au message original qui a été envoyé.
  3. Vous prenez ensuite un autre hachage MD5 de cette chaîne combinée (par exemple, "md5(sha1(exemple.com))") et le joignez comme en-tête au début de votre message avant de l'envoyer pour livraison.

Étapes de la signature DKIM

Démarrer avec DKIM :

  1. La première étape consiste à créer une clé privée, qui est utilisée pour signer le message.
  2. La deuxième étape consiste à créer une clé publique, qui est utilisée lors de la vérification de la signature.
  3. La troisième étape consiste à générer deux enregistrements DNS TXT : un pour la clé publique, et un autre pour le nom du sélecteur.
  4. La quatrième étape consiste à publier ces enregistrements dans votre fichier de zone DNS.

Étapes de la signature DKIM :

1. L'expéditeur génère un message avec un identifiant unique appelé fonction de hachage cryptographique (généralement SHA-256). Cet identifiant unique est appelé champ d'en-tête DKIM-Signature et contient des informations sur la personne qui a signé le message et la date à laquelle elle l'a fait.

2. L'expéditeur ajoute des champs d'en-tête supplémentaires au message qui contiennent des informations sur :

  • la durée pendant laquelle le message doit être considéré comme valide
  • la fréquence à laquelle la validité de la signature doit être revérifiée
  • si les signatures doivent être validées à l'aide d'un service externe tel que SPF (Sender Policy Framework)
  • quelles clés ont été utilisées pour signer ce message

3. Enfin, les destinataires qui souhaitent vérifier ces signatures utiliseront leur copie de la clé publique de leur expéditeur à partir de leurs enregistrements DNS ou d'un service intermédiaire tel que SenderID ou Mailgun, puis l'utiliseront pour valider tout message auquel sont attachés des en-têtes DKIM.

Comprendre les balises utilisées dans la signature DKIM

Voici un exemple d'enregistrement de signature DKIM :

DKIM-Signature : v=1 ;

a=rsa-sha256 ;

s=jun2005.eng ;

c=relaxé/relaxé ;

d=exemple.com ;

s=dkim ;

t=1526555738 ;

bh=mhU6OJb5ldZf+z/pX9+0Nc4tj/lmyYHWbR8LgI2Q= ;

h=To:From:Subject:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding ;

b=s1sdZCzdX9vxocsMSlT7cOrYixl1g8wfkdzrVe7BGN6ZdPV9xu2A

v= Ce tag nous indique la version du DKIM.

a= Indique l'algorithme utilisé par le signataire pour générer sa clé publique. Il peut s'agir de RSA1_5, RSA-SHA1 ou RSASSA-PSS. Si cette balise est absente, on suppose que RSA-SHA1 est utilisé.

c= Spécifie l'algorithme de canonicalisation utilisé pour générer des hachages à partir des champs d'en-tête, comme l'exige la norme [BCP14]. Elle est suivie d'une liste de 1 ou plusieurs algorithmes de canonisation séparés par des virgules (par exemple, "c=relaxed"). Si cette balise est omise, la canonicalisation détendue est supposée.

d= Il indique le nom de domaine à utiliser lors de la génération des signatures pour les messages envoyés par ce serveur (ou un autre destinataire).

s= La balise "s" est la chaîne de sélection, qui est utilisée par un serveur récepteur pour déterminer quelle clé publique doit être utilisée pour vérifier la signature.

t= La balise timestamp est utilisée pour enregistrer la date de création de la signature et est généralement représentée par un timestamp Unix (le nombre de secondes depuis le 1er janvier 1970).

bh= Cette balise représente le hachage du corps, qui est une version chiffrée du contenu de votre message (y compris les en-têtes). Cela permet d'empêcher la falsification des messages après qu'ils ont été signés par DKIM et avant qu'ils ne parviennent à leurs destinataires.

h= La valeur de hachage de l'en-tête contient tous les en-têtes dans leur intégralité (y compris ceux signés par Sender Policy Framework ou DomainKeys Identified Mail), à l'exception de ceux qui ont été explicitement exclus en les incluant dans une liste d'exclusion. Cette valeur doit être calculée en utilisant SHA-1 ou MD5.

b= La balise "b" est la représentation codée en base64 d'une fonction de hachage cryptographique sur le corps canalisé du message (c'est-à-dire après suppression de l'encodage MIME).

Génération d'une signature DKIM

  1. Générer une clé publique et une clé privée.
  2. Générer un en-tête et un pied de page DKIM.
  3. Signez le contenu du courriel avec votre clé privée en utilisant l'algorithme sélectionné, par exemple RSA-SHA256 ou RSA-SHA512.
  4. Compresser le message en utilisant l'algorithme sélectionné, par exemple, deflate ou none.
  5. Insérez les en-têtes DKIM au début du message, avant les en-têtes MIME.
  6. Insérez le pied de page DKIM après les pieds de page MIME.

Assurer la validité de la signature DKIM

Certaines mesures peuvent être prises pour s'assurer que la signature DKIM est valide :

  1. Déterminez si vous souhaitez utiliser un algorithme de signature DKIM traditionnel ou un algorithme optimisé.
  2. Calculez une valeur de hachage pour l'en-tête et le corps de votre message (il s'agit généralement de SHA-256).
  3. Choisissez un algorithme de signature approprié (comme RSA ou ECDSA).
  4. Vérifiez que votre clé publique correspond au sélecteur que vous avez spécifié plus tôt à l'étape 1 (ceci est fait en utilisant le DNS).
  5. Signez votre message en utilisant votre clé privée et stockez-la sous forme de chaîne ASCII au format Base64 dans l'en-tête de votre message électronique (en plus de la placer dans le DNS).

Vérification d'une signature DKIM

La vérification de la signature DKIM est compliquée. Sa mise en place et sa maintenance requièrent beaucoup d'expertise et elle est souvent utilisée en conjonction avec d'autres systèmes comme SPF, qui sont également compliqués.

Par conséquent, la plupart des spécialistes du marketing par courriel utilisent un outil de vérification de la signature DKIM tel qu'un vérificateur d'enregistrement DKIM pour vérifier leurs signatures DKIM. Cet outil vérifie les clés DKIM qui ont été ajoutées à un courriel et les compare à une base de données publique. Si les clés sont valides et fiables, l'e-mail peut être considéré comme légitime.

C'est important pour plusieurs raisons : tout d'abord, cela permet de s'assurer que vos courriels ne sont pas considérés comme du spam par les FAI ou leurs clients ; ensuite, cela vous permet d'éviter que votre domaine soit mis sur une liste noire par d'autres domaines (c'est ce qu'on appelle l'empoisonnement de domaine) ; enfin, cela permet de s'assurer que vos courriels ne sont pas pris dans une attaque de type man-in-the-middle.

Conclusion

DKIM est une solution prometteuse qui permet à une organisation de valider la légitimité des courriels, en particulier ceux provenant d'expéditeurs extérieurs. Lorsqu'il est appliqué de manière cohérente dans un environnement de messagerie, il offre aux destinataires un degré élevé de confiance dans le fait qu'un courriel a été envoyé par un représentant autorisé du domaine de l'expéditeur. Il est toutefois important de noter que si DKIM fournit un mécanisme de vérification, il ne suffit pas à protéger contre les attaques de fraude par courrier électronique telles que l'usurpation d'identité et le phishing. Pour cela, une politique DMARC de rejet est obligatoire.

Besoin d'aide ?

L'authentification des e-mails est un élément indispensable de la stratégie de marketing numérique de toute entreprise. Avec tant d'emails envoyés et reçus chaque jour, il est facile pour votre marque de se perdre dans la masse. Mais avec les services d'authentification des e-mails de PowerDMARC, vous pouvez vous assurer que vos e-mails sont vus par les bonnes personnes. 

Notre solution d'authentification des e-mails vous aidera :

  • Augmentez la délivrabilité de vos e-mails en vérifiant votre nom de domaine et votre signature DKIM.
  • Améliorez votre image de marque en montrant aux destinataires que vous êtes une entreprise légitime.
  • Améliorer l'expérience globale des clients en veillant à ce qu'ils ne voient que des messages légitimes de votre part.