Analyseur d'En-têtes de Mail
Analyse les en-têtes d'e-mail et trace les routes de livraison.
Vue d’ensemble
Chaque serveur de messagerie qui traite un message ajoute un en-tête Received en
tête. Lus dans l’ordre, ces en-têtes constituent le trajet de livraison : quel hôte
a remis le message à quel autre, et quand. Lus en regard des résultats
d’authentification, ils vous disent si le message provient bien de là où il le
prétend.
Cet outil déplie les en-têtes, reconstitue le trajet sous forme de liste numérotée de sauts avec les délais par saut, et fait remonter séparément les en-têtes d’authentification pour que vous n’ayez pas à les chercher au milieu du bruit.
Utilisation
- Dans votre client de messagerie, ouvrez le message original ou sa source brute. Dans Gmail, c’est Afficher l’original ; dans Outlook, Propriétés → En-têtes Internet ; dans Apple Mail, Présentation → Message → Source brute.
- Collez tout, du haut du message jusqu’à la première ligne vide. Le corps n’est pas nécessaire.
- Lisez la liste des sauts de haut en bas — le saut 1 est l’origine.
- Lisez les résultats d’authentification en dessous.
Lire la liste des sauts
Chaque ligne affiche l’hôte émetteur (from), l’hôte destinataire (by) et le
délai écoulé depuis le saut précédent. Une livraison normale compte deux à cinq
sauts et s’achève en quelques secondes.
Le sens importe. Les relais ajoutent en tête plutôt qu’à la fin, si bien que les en-têtes bruts se lisent du plus récent au plus ancien ; la liste présentée ici est inversée pour se lire dans le sens du voyage du message. Quand vous la comparez à la source brute, souvenez-vous qu’elles sont à l’envers l’une par rapport à l’autre.
Les délais proviennent de la date inscrite dans chaque en-tête Received, et ces
horodatages sont écrits par des machines différentes dont les horloges sont réglées
indépendamment. Un écart d’une ou deux secondes, y compris négatif, relève de la
dérive et ne prouve rien. Un trou de plusieurs minutes ou de plusieurs heures est
réel, et signifie presque toujours que le serveur destinataire a mis le message en
file d’attente — la mise en liste grise, qui diffère délibérément un expéditeur
inconnu, en est de loin la cause la plus fréquente.
Lire les résultats d’authentification
Quatre en-têtes comptent, et ils répondent à des questions différentes :
Received-SPF— l’adresse IP qui s’est connectée était-elle autorisée à envoyer pour le domaine de l’expéditeur d’enveloppe ? SPF contrôle l’enveloppe (MAIL FROM), qui n’est pas l’en-têteFrom:que votre destinataire voit. Un message peut passer SPF et afficher malgré tout un expéditeur falsifié.DKIM-Signature— une signature cryptographique portant sur des en-têtes sélectionnés et sur le corps, vérifiable avec une clé publique publiée dans le DNS du domaine signataire.d=est le domaine signataire ets=le sélecteur : les deux localisent ensemble la clé à<selector>._domainkey.<domain>.Authentication-Results— le verdict propre au serveur destinataire, combinant SPF, DKIM et DMARC. C’est la ligne à lire en premier, parce qu’elle est écrite par la seule machine de la chaîne à laquelle vous ayez une raison de faire confiance.ARC-Authentication-Results— le verdict enregistré par un intermédiaire avant qu’il ne modifie le message. Les listes de diffusion réécrivent les en-têtes et cassent DKIM par conception, et ARC existe pour que le résultat d’origine y survive.
DMARC est celui qui détermine ce que les destinataires font réellement. Il exige que
SPF ou DKIM passe et soit aligné — le domaine qui passe doit correspondre au
domaine de l’en-tête From: visible. L’alignement explique pourquoi un message peut
afficher spf=pass et dkim=pass et échouer tout de même à DMARC : les deux ont
passé, mais pour le mauvais domaine.
Exemples
- « Nos e-mails partent en spam. » Lisez
Authentication-Resultssur un message que vous vous êtes envoyé chez un autre fournisseur. Si DKIM passe mais que DMARC échoue, le problème est l’alignement, pas la signature. - Un message d’hameçonnage convaincant. Comparez le
fromdu saut 1 au domaine de l’en-têteFrom:visible. Falsifier un nom d’affichage est trivial ; falsifier un premier saut qui corresponde à la véritable infrastructure du domaine revendiqué ne l’est pas. - Une livraison qui prend vingt minutes. Trouvez le saut porteur du délai. S’il s’agit du premier serveur entrant du destinataire, la mise en liste grise est la réponse probable et elle se résout d’elle-même à la nouvelle tentative.
- Du courrier qui a cessé d’arriver après un changement DNS. Vérifiez SPF dans les résultats. Deux enregistrements SPF sur un même domaine, ou un enregistrement qui dépasse la limite de dix consultations, produisent tous deux un échec permanent qui a l’air d’un mystère.
- Une liste de diffusion qui casse votre signature. Cherchez les en-têtes ARC. Leur présence vous dit qu’un intermédiaire a modifié le message et a consigné le verdict antérieur.
Remarques
Les lignes de continuation sont dépliées avant l’analyse. Les en-têtes longs sont repliés sur plusieurs lignes précédées d’une espace, et un analyseur qui lit ligne par ligne sans les rejoindre tronquera précisément les en-têtes qui comptent le plus.
Les valeurs from et by sont lues uniquement en début de clause. Un en-tête
Received sans clause from contient souvent malgré tout la chaîne envelope-from
à l’intérieur d’un commentaire, et la traiter comme l’hôte connecté afficherait une
adresse fournie par l’attaquant comme origine du message — précisément le fait que
vous êtes venu vérifier ici.
Tout ce qui précède décrit ce que disent les en-têtes. Les en-têtes écrits avant la première machine que vous contrôlez peuvent être fabriqués intégralement : la chaîne est donc une preuve concernant votre propre infrastructure, et une simple affirmation concernant tout ce qui se trouve en amont.
Pour inspecter un message enregistré plutôt que ses seuls en-têtes, utilisez le visualiseur EML.