DomainKeys Identified Mail

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

DKIM (DomainKeys Identified Mail) est une norme d'authentification fiable du nom de domaine de l'expéditeur d'un courrier électronique. Elle constitue une protection efficace contre le spam et l'hameçonnage.

En effet, DKIM fonctionne par signature cryptographique du corps du message et d'une partie de ses en-têtes. Une signature DKIM vérifie donc l'authenticité du domaine expéditeur et garantit l'intégrité du message. DKIM intervient au niveau de la couche application du modèle OSI, ainsi il constitue une double protection pour des protocoles de messagerie électronique tels que SMTP, IMAP et POP en plus de l'utilisation de ces protocoles en mode sécurisé (POPS, IMAPS).

Cette technologie a été normalisée par l'IETF dans le RFC 4871.

Historique[modifier | modifier le code]

DKIM a été produit par un consortium industriel en 2004. Il intégra et améliora DomainKeys, de Yahoo!, et Identified Internet Mail, de Cisco.

La spécification résultante est utilisée en production. Tous les courriels émanant de Yahoo, GMail, AOL et FastMail contiennent en principe une signature DKIM.

Il a également été pris en compte par le groupe de travail de l'IETF pour affinage et standardisation, ce qui a abouti à la RFC 6376.

Principe[modifier | modifier le code]

Il s'agit d'ajouter dans tous les emails sortant, une signature DKIM contenant une liste de "clé=valeur". Les clés sont courtes, généralement une ou deux lettres.

Les paramètres par défaut du mécanisme de facteur d'authentification sont d'utiliser SHA-256 comme fonction de hachage cryptographique, le chiffrement RSA pour la cryptographie asymétrique, et de coder le hachage avec Base64.

Le serveur SMTP utilise ensuite le nom de domaine et le sélecteur pour sa vérification de reverse DNS (en).

Exemple de signature jointe en en-tête d'un mail :

DKIM-Signature:
 v=1;
 a=rsa-sha256;
 d=example.net;
 s=brisbane;
 c=relaxed/simple;
 q=dns/txt;
 l=1234;
 t=1117574938;
 x=1118006938;
 h=from:to:subject:date:keywords:keywords;
 bh=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=;
 b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruD00lszZVoG4ZHRNiYzR

Les paramètres sont décrits dans la RFC 6376. Les plus pertinents sont :

  • b pour les véritables signature numériques des contenus (en-têtes et corps de mail) ;
  • bh pour le hachage du corps ;
  • d pour la signature de domaine ;
  • s pour le sélecteur.

Puis on trouve :

  • v pour la version ;
  • a pour l'algorithme de signature ;
  • c pour la canonicalisation d'algorithme(s) d'en-tête et corps ;
  • q pour la méthode de requête par défaut ;
  • l pour la taille de la partie du corps signé à la forme canonique ;
  • t pour l'horodatage de la signature ;
  • x pour la durée d'expiration ;
  • h pour la liste des champs d'en-tête signés, éventuellement répétés pour ceux qui apparaissent plusieurs fois (ex keywords ci-dessus). Il est à noter que le champ d'en-tête de la signature DKIM est lui-même toujours inclus implicitement dans h, avec la valeur du champ b, traité comme s'il était vide.

Un vérificateur teste l'enregistrement DNS TXT de brisbane._domainkey.example.net. Il n'y a ni autorité de certification, ni système de liste noire. Le sélecteur est une méthode directe pour autoriser un signataire à ajouter ou retirer des clés quand il le souhaite, sans archivage des signatures. Les données renvoyées par ce test sont également structurées en paires clé-valeur. Cela inclus la clé publique du domaine, ainsi que des tokens et flags. Le destinataire peut utiliser cela pour déchiffrer la valeur de hachage du champ en-tête et simultanément recalculer la valeur du hachage du mail reçu (en-tête et corps). Si les deux valeurs correspondent, cela prouve cryptographiquement que le mail a été signé par le domaine indiqué, et n'a pas été altéré pendant le transit.

L'échec de vérification de la signature n'impose pas de rejet systématique du message. En effet, ses raisons précises peuvent être rendues disponibles dans des processus en amont et en aval. Ces méthodes peuvent inclure un message FBL (en), ou ajouter des champs résultats d'authentification au message, comme décrit dans la RFC 7001.

Utilisation[modifier | modifier le code]

Microsoft Exchange utilise automatiquement la vérification DKIM pour tous les messages IPv6[1].

Références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]