Créez votre enregistrement DKIM

Utilisez DKIM en plus du SPF pour éviter que les usurpateurs n'envoient des messages qui semblent provenir de votre domaine.

DKIM vous permet d'ajouter une signature numérique aux messages électroniques dans l'en-tête du message.

Lorsque vous configurez DKIM, vous autorisez votre domaine à associer, ou à signer, son nom à un message électronique en utilisant une authentification de chiffrement.

Les systèmes de courrier électronique qui reçoivent des messages de votre domaine peuvent utiliser cette signature numérique pour déterminer si le courrier électronique qu'ils reçoivent est légitime.

Le service d'envoi de courrier électronique ajoute une signature DKIM au courrier électronique sortant. Le service de courrier électronique récepteur utilise la clé publique pour vérifier la correspondance de la signature DKIM.

Si c'est le cas, il transmet le courrier électronique à la boîte de réception du destinataire. Si elle ne correspond pas, le service de courrier électronique récepteur échoue ou rejette le courrier électronique non valide.

 

Vous devez donc créer un record DKIM TXT en incluant votre domaine, le sélecteur et votre clé publique: <sélecteur(s=)._cléde-domaine.domaine(d=)>.   TXT v=DKIM1 ; k=rsa ; p=<clé publique>

 

Le header du mail prendra dès lors cette forme (par example):

Dkim-Signature:          v=1; a=rsa-sha256; c=relaxed/relaxed; d=cert.europa.eu; s=maple; t=1582617907; bh=OlHvsp/RvV59stiQtr1pcYwioCXmPGBwSzHj2iNmxO0=; h=MIME-Version:Content-Type:Content-Transfer-Encoding:Subject:From: To:CC:Message-ID:Date; b=dTvC/XbYiCBV7HV+wT8o/ESBiM7bGIXHdIXzvxb4YzSCAKHqgO6m4aEXe3Ot+y4It 6dNOYXIzLDSoM8dZi7n0UyXbLAxx6RO4qM5oBFFt6jJNbjTUm/6auVKMqeKNCOuG35 VjkiVlusNqcAiIEe/NhpLmHxrO/w8BI97g4ow7dbINZwocFrvKa4rjKLhhz7sUWH61 fdnx9R4fKhOLcynvdns8h3eLz0MnCZ4+CoQVyr9xMlLEceC59LDpyP0zB6v2XCJij4 Lj/IH1wJNnxmECM5wcl7gd0bvfSdHf9NsNvDksKy9t7RLb2i7KI+xcjWHdVtht9WKV rLdGkoArvVfJg==

Balises requises

Vous trouverez ci-dessous les balises requises pour le header d'une signature DKIM. Toute signature DKIM ne comportant pas ces balises rencontrera une erreur lors du processus de vérification.

    v= indique la version de la spécification de la signature. La valeur doit toujours être fixée à 1.  

    a= indique l'algorithme utilisé pour générer la signature. La valeur doit être rsa-sha256. Les expéditeurs ayant des capacités CPU réduites peuvent utiliser rsa-sha1. Toutefois, l'utilisation de rsa-sha1 est déconseillée en raison des risques potentiels pour la sécurité.

    s= indique le nom de l'enregistrement sélecteur utilisé avec le domaine pour localiser la clé publique dans le DNS. La valeur est un nom ou un numéro créé par l'expéditeur.

    b= est la donnée de hachage des en-têtes énumérés dans la balise h= ; ce hachage est également appelé signature DKIM et encodé en Base64.

    bh= est le hachage calculé du corps du message. La valeur est une chaîne de caractères représentant le hachage déterminé par l'algorithme de hachage.

    d= indique le domaine utilisé avec l'enregistrement du sélecteur (s=) pour localiser la clé publique. La valeur est un nom de domaine appartenant à l'expéditeur.

    h= est une liste d'en-têtes qui seront utilisés dans l'algorithme de signature pour créer le hachage trouvé dans la balise b=. L'ordre des en-têtes dans la balise h= est l'ordre dans lequel ils ont été présentés lors de la signature DKIM, et est donc également l'ordre dans lequel ils doivent être présentés lors de la vérification. La valeur est une liste de champs d'en-tête qui ne seront pas modifiés ou supprimés.

Balises facultatives et recommandées

Vous trouverez ci-dessous les balises facultatives que nous vous recommandons d'inclure dans l'en-tête d'une signature DKIM. Les signatures DKIM qui ne comportent pas ces balises ne rencontreront pas d'erreur lors de la vérification, mais elles sont recommandées comme moyen d'aider à identifier le spam.

Les spammeurs ne fixent normalement pas de valeurs de temps. Des valeurs de temps vides ou incorrectes, telles qu'une date d'expiration antérieure à l'horodatage du courriel, entraîneront le rejet du message par certains fournisseurs de boîtes de messagerie.

    t= est l'horodatage de la signature DKIM. Il est destiné à indiquer l'heure d'envoi du message. Le format est le nombre de secondes à partir de 00:00:00 le 1er janvier 1970 dans le fuseau horaire UTC.

    x= est l'heure d'expiration de la signature DKIM dans le même format que ci-dessus. La valeur de cette balise doit être supérieure à la valeur de la balise d'horodatage si les deux sont utilisées dans la signature DKIM. Les signatures DKIM peuvent être considérées comme non valables si l'heure de vérification chez le vérificateur est postérieure à la date d'expiration, il faut donc veiller à ne pas fixer la date d'expiration trop tôt.

Effectuez des tests pour vous assurer que ces balises fonctionnent correctement et que la date d'expiration n'est pas fixée trop tôt après le déploiement.

Balises facultatives

Vous trouverez ci-dessous les balises facultatives qui ne sont pas requises dans la signature DKIM.

    c= est l'algorithme de canonisation qui définit pour un fournisseur de boîte aux lettres le niveau de modifications qui peut être présent lorsque le courrier électronique est en transit vers le fournisseur de la boîte de messagerie. Les modifications peuvent inclure des espaces ou des retours à la ligne. Certains serveurs de courrier électronique apportent des modifications mineures au courrier électronique pendant le transit, ce qui peut invalider la signature.

        Voici la valeur qui définit le niveau de tolérance que doit avoir le serveur de destination lorsqu'un message présente ces modifications mineures : valeur1/valeur2.

La valeur 1 représente l'en-tête du message et la valeur 2 représente le corps du message. Valeur1 et valeur2 peuvent être qualifiées de "simple" (simples), qui tolèrent très peu de modifications, voire aucune, ou de "relaxed" (relâchées), qui tolèrent les modifications courantes.

    i= indique l'identité de l'utilisateur ou de l'agent. La valeur est une adresse électronique contenant le domaine ou le sous-domaine tel que défini dans la balise d=.

Balises facultatives et non recommandées

    l= est le nombre de caractères du corps du message qui ont été utilisés pour calculer le hachage du corps (bh=).  Si cette valeur n'existe pas, alors on suppose que le corps du message a été utilisé dans son intégralité. Nous vous recommandons de ne pas utiliser cette balise car elle peut être difficile à contrôler et peut entraîner des erreurs de vérification.

    z= est une liste des en-têtes originaux du message et peut être différent des en-têtes énumérés dans la balise h=. Cette balise peut être utilisée par certains fournisseurs de boîtes de messagerie dans le processus de diagnostic d'une erreur de vérification. Sa valeur n'est pas bien définie.

Balises non reconnues

Toute balise non spécifiée dans le RFC 6376 ne fait pas partie du protocole DKIM et doit être ignorée pendant le processus de vérification. Tous les fournisseurs de boîtes de messagerie n'ignorent pas les balises non reconnues, de sorte que vous pourriez constater une erreur lors du processus de vérification.