DKIM — la signature de vos e-mails, et pourquoi on ne peut pas la deviner
DKIM signe vos messages avec une clé publiée dans le DNS. Ses sélecteurs ne sont pas énumérables, ce qui rend tout diagnostic externe partiel par nature.
Le principe
Votre serveur d’envoi signe chaque message avec une clé privée. La clé publique correspondante est publiée dans le DNS. Le destinataire récupère la clé publique et vérifie la signature : si elle est valide, le message n’a pas été modifié en route et vient bien d’un serveur détenant la clé.
La clé se publie sur un nom de la forme <sélecteur>._domainkey.exemple.fr :
google._domainkey.exemple.fr. TXT "v=DKIM1; k=rsa; p=MIIBIjANBg..."
Pourquoi aucun outil ne peut prouver que DKIM est absent
Le DNS ne permet pas de lister les sous-domaines d’un nom. Il permet seulement de demander « que
vaut ce nom précis ? ». Or le sélecteur est choisi librement par chaque prestataire d’envoi :
google, selector1, k1, mail, s1, ovh, ou n’importe quelle chaîne arbitraire.
Conséquence directe : un outil externe ne peut que tester une liste de sélecteurs connus. S’il n’en trouve aucun, cela ne prouve rien. Votre DKIM peut parfaitement fonctionner avec un sélecteur que la liste ne contient pas.
C’est pour cette raison que Silently affiche « non vérifié » plutôt que « absent » quand aucun sélecteur ne répond, et que ce contrôle n’est pas compté dans la note. Un outil qui vous annonce « DKIM manquant » sur cette seule base vous raconte quelque chose qu’il ne peut pas savoir.
Pour connaître votre sélecteur avec certitude : ouvrez un message que vous avez envoyé, affichez la
source, et cherchez l’en-tête DKIM-Signature. La valeur s= est le sélecteur.
La taille de clé
| Taille | Statut |
|---|---|
| 512 ou 768 bits | Cassable. À remplacer immédiatement. |
| 1024 bits | Encore accepté, en fin de vie. À planifier. |
| 2048 bits | Le standard actuel. |
Une clé de 2048 bits produit un enregistrement TXT de plus de 255 caractères. Certaines interfaces d’hébergeur découpent alors la valeur en plusieurs morceaux entre guillemets : c’est normal et conforme, les morceaux sont recollés par le destinataire.
Le drapeau t=y
Un enregistrement contenant t=y déclare la clé en mode test : les destinataires sont invités
à ignorer un échec de vérification. C’est utile pendant un déploiement, et c’est un problème quand
on l’oublie — la signature devient décorative.
Rotation des clés
Changer de clé consiste à publier un nouveau sélecteur, basculer l’envoi dessus, puis vider
l’ancien (p= vide, ce qui signifie « clé révoquée »). Garder l’ancien sélecteur avec sa clé
intacte indéfiniment n’est pas dangereux en soi, mais un p= vide sur un sélecteur encore utilisé
pour signer casse la vérification.