DKIM (DomainKeys Identified Mail)

E-mail et Sécurité
Une méthode d'authentification des e-mails qui ajoute une signature numérique aux e-mails sortants, permettant aux destinataires de vérifier que le message n'a pas été modifié.
← Retour au Glossaire

Qu'est-ce que DKIM ?

DKIM (DomainKeys Identified Mail) est une méthode d'authentification par courriel qui permet au serveur d'envoi de signer numériquement les messages sortants. Le serveur récepteur peut alors vérifier cette signature à l'aide d'une clé publique publiée dans DNS, confirmant que le courriel n'a pas été modifié pendant son acheminement et provient bien du domaine revendiqué.

Comment fonctionne DKIM

1. Génération de clés : Le propriétaire du domaine génère une paire de clés publique et privée

2. Publication DNS : La clé publique est publiée sous forme d'enregistrement TXT

3. Signature du message : Les courriels sortants sont signés avec la clé privée

4. Vérification de la signature : Le serveur destinataire récupère la clé publique et vérifie la signature

Le processus de signature

Lorsqu'un courriel est envoyé :

1. Mail server calculates a hash of message headers and body

2. Hash is encrypted with the private key (creating the signature)

3. Signature is added as a DKIM-Signature header

4. Email is transmitted

Le processus de vérification

Lorsqu'un courriel est reçu :

1. Server extracts the DKIM-Signature header

2. Finds selector and domain (s=selector; d=domain.com)

3. Queries DNS for selector._domainkey.domain.com TXT record

4. Uses public key to decrypt the signature

5. Calculates its own hash of the message

6. Compares: match = pass, mismatch = fail

Format de l'enregistrement DKIM

Les enregistrements DKIM sont des enregistrements TXT dans un sous-domaine spécifique :

selector._domainkey.example.com.    IN    TXT    "v=DKIM1; k=rsa; p=MIGfMA0..."

Composants d'enregistrement

BaliseDescriptionExemple
vVersionv=DKIM1
kType de clék=rsa
pClé publique (base64)p=MIGfMA0GCSqG...
tDrapeaux (facultatif)t=y (mode test)
hAlgorithmes de hachageh=sha256

Sélecteurs

Les sélecteurs permettent plusieurs clés DKIM par domaine :

google._domainkey.example.com       # Google Workspace

s1._domainkey.example.com # Sendgrid

mailchimp._domainkey.example.com # Mailchimp

Chaque service de messagerie fournit son propre sélecteur et clé.

En-tête de signature DKIM

Une signature DKIM ressemble à :

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=google;

c=relaxed/relaxed; q=dns/txt;

h=from:to:subject:date:message-id;

bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;

b=AuUoFEfDxTDkHlLXSZEpZj79...

Champs principaux :

Mise en place de DKIM

Pour Google Workspace

1. Aller à la console Admin → Applications → Gmail → Authentifier l'email

2. Générer la clé DKIM (2048 bits recommandé)

3. Ajouter un enregistrement TXT fourni par Google

4. Activer la signature DKIM

Pour les services tiers

La plupart des services de messagerie (SendGrid, Mailchimp, etc.) fournissent :

1. Un enregistrement CNAME à ajouter (pour leur clé gérée)

2. Ou un enregistrement TXT contenant la clé publique

Exemple (SendGrid) :

s1._domainkey.example.com    CNAME    s1.domainkey.sendgrid.net

Vérification de DKIM

Envoyez un courriel de test à un service qui affiche les en-têtes (Gmail affiche les résultats d'authentification). Utilisation de la ligne de commande :
dig google._domainkey.example.com TXT
Utilisation de DomScan :
curl "https://domscan.net/v1/health?domain=example.com"

# Reports DKIM status based on common selectors

Meilleures pratiques DKIM

Utiliser des clés de 2048 bits

Les anciennes clés de 1024 bits sont de plus en plus vulnérables. La plupart des fournisseurs utilisent désormais par défaut des clés de 2048 bits.

Faire tourner les clés périodiquement

Faites tourner les clés DKIM chaque année ou après un incident de sécurité. Publiez une nouvelle clé avec un nouveau sélecteur avant de basculer.

Signer les en-têtes importants

Vérifier que les champs From, To, Subject, Date et Message-ID sont inclus dans les signatures.

Ne pas modifier les messages signés

Les listes de diffusion et les services de transfert qui modifient le contenu rendent DKIM invalide. Utilisez ARC (Authenticated Received Chain) pour les messages transférés.

Limitations DKIM

DKIM seul n'empêche pas l'usurpation : il prouve seulement qu'un message n'a pas été modifié. Un domaine peut avoir DKIM valide alors que les attaquants envoient un courriel usurpé non signé. Le DMARC aborde cette question en précisant ce qu'il faut faire des messages non signés.

Mettez Vos Connaissances en Pratique

Utilisez l'API de DomScan pour vérifier la disponibilité des domaines, la santé et bien d'autres choses.