emailmarketing.net

ARC (Authenticated Received Chain)

Référence RFC 8617 : les trois champs d’en-tête ARC, les balises d’instance et de validation de la chaîne, les règles de scellement et de validation, et la façon dont les serveurs de réception s’appuient sur une chaîne intacte pour passer outre les échecs DMARC causés par le transfert.

Référence6 min de lecture

À qui cela s’adresse Opérateurs ESP, Expéditeurs

S’applique aux expéditeurs, quelle que soit leur plateforme

Quand un message passe par un service de transfert ou une liste de diffusion, il peut échouer à DMARC chez le serveur de réception final alors que l’expéditeur d’origine l’avait correctement authentifié. Les services de transfert et les listes de diffusion cassent couramment SPF, parce que l’adresse IP d’envoi change, et cassent souvent DKIM, parce qu’ils ajoutent des balises d’objet ou des pieds de page, ou réécrivent le corps. C’est le problème du flux de messagerie indirect.

ARC, défini dans la RFC 8617 (statut expérimental), y répond. Chaque intermédiaire enregistre les résultats d’authentification qu’il a constatés à l’arrivée du message, et les scelle cryptographiquement, ce qui construit une chaîne de responsabilité vérifiable. Le serveur de réception final peut alors voir que le message était correctement authentifié avant que le service de transfert ne le modifie, et peut choisir de passer outre un échec DMARC.

ARC rapporte ce que les intermédiaires ont vu. C’est un signal supplémentaire, pas un remplacement de SPF, DKIM et DMARC, et il ne rend pas à lui seul un message digne de confiance. Un spammeur peut sceller son propre spam, donc la réputation de l’entité qui scelle compte.

L’ARC Set : trois champs d’en-tête par saut

Chaque intermédiaire qui participe (un « scelleur ARC ») ajoute un ARC Set de trois en-têtes, qui portent tous le même numéro d’instance i= :

En-tête Abrév. Contenu Signe
ARC-Authentication-Results AAR Les résultats SPF, DKIM et DMARC (et ARC) que ce saut a constatés à la réception du message, dans le même format que l’en-tête Authentication-Results. (pas une signature)
ARC-Message-Signature AMS Une signature semblable à celle de DKIM (avec la même syntaxe de balises : a=, b=, bh=, d=, s=, h=, …) sur les en-têtes et le corps du message tels que ce saut les a transmis. Par elle, le saut prend la responsabilité des modifications qu’il a apportées. Elle utilise la canonicalisation relaxed, et ne doit pas signer les champs ARC-Seal ou Authentication-Results existants. En-têtes et corps
ARC-Seal AS Scelle la chaîne elle-même. Il signe uniquement des champs d’en-tête (pas le corps) : tous les ARC Sets précédents plus l’AAR et l’AMS de ce saut, dans l’ordre AAR, AMS, AS pour chaque instance. Il porte le verdict de validation de la chaîne cv=. En-têtes ARC uniquement

Balises principales

Balise Sur Valeurs et règles
i= les trois Le numéro d’instance qui relie un ensemble : 1–50, augmenté de 1 à chaque saut. Les numéros d’instance doivent former une suite continue 1..N, avec exactement un champ de chaque type pour chaque instance. Plus de 50 ensembles, ou une suite rompue, font échouer la chaîne.
cv= ARC-Seal L’état de validation de la chaîne tel que ce scelleur l’a vu : none (aucune chaîne n’existait, il s’agit donc du premier saut), pass (la chaîne précédente a été validée) ou fail (la chaîne précédente a échoué à la validation).
d=, s=, a=, b=, t= AMS, AS Comme dans DKIM : le domaine de scellement, le sélecteur (la clé est publiée à <selector>._domainkey.<domain>), l’algorithme, la signature et l’horodatage.

Validation de la chaîne (algorithme du serveur de réception)

  1. Rassemblez tous les ARC Sets. La chaîne échoue s’il y en a plus de 50, ou si la suite d’instances 1..N est rompue, dupliquée ou incomplète.
  2. Si l’ARC-Seal de l’instance la plus élevée porte cv=fail, la chaîne échoue.
  3. Validez la signature de l’AMS la plus récente (l’instantané du message pris par le dernier responsable). Les signatures AMS plus anciennes peuvent aussi être vérifiées, pour trouver le point le plus ancien où le message passait encore.
  4. Validez chaque ARC-Seal, de l’instance la plus élevée à la plus basse. Chaque sceau doit être vérifié sur tous les ensembles qu’il couvre.
  5. Si toutes les vérifications réussissent, l’état de la chaîne est pass. Sinon, il est fail.

Une chaîne en échec ou absente signifie simplement qu’ARC n’apporte aucune information exploitable. Jugez le message sur ses résultats SPF, DKIM et DMARC habituels.

Règles de scellement

  • Un scelleur enregistre les résultats qu’il a constatés dans un nouvel AAR, signe le message avec une AMS, puis le scelle avec un AS dont la valeur cv= reflète l’état de la chaîne qu’il a trouvée.
  • Si le scelleur a trouvé une chaîne mal formée ou en échec, il ne doit pas la prolonger comme si elle était valide. Il scelle avec cv=fail, et la portée b= de l’AS DOIT couvrir uniquement l’ARC Set créé par le MTA qui a détecté l’échec (et non les ensembles précédents rompus).
  • Les scelleurs devraient sceller uniquement le courrier qu’ils ont réellement traité et évalué. Sceller revient à affirmer une responsabilité, garantie par la réputation du domaine de scellement.

Comment les serveurs de réception et les évaluateurs DMARC utilisent ARC

  • Un évaluateur DMARC peut, au titre de sa politique locale, accepter les résultats d’authentification d’une chaîne ARC validée. Si le message échoue maintenant à DMARC, mais que l’AAR le plus ancien montre un pass SPF ou DKIM aligné au premier saut et que le serveur de réception fait confiance à chaque scelleur de la chaîne, le serveur de réception peut livrer le message malgré p=reject ou p=quarantine.
  • C’est exactement la dérogation local_policy ou mailing_list que l’on voit dans les rapports agrégés DMARC. La RFC 8617 suggère d’indiquer, dans le commentaire du rapport sur la dérogation à la politique, l’état de validation de la chaîne, les valeurs d= et s= de chaque sceau, et l’adresse IP d’origine tirée du premier ARC Set.
  • La confiance accordée aux scelleurs repose sur la réputation et varie d’un serveur de réception à l’autre. Les grands fournisseurs tiennent des listes de services de transfert et d’opérateurs de listes dont ils honorent les sceaux. Un pass ARC venant d’un scelleur inconnu, ou d’un scelleur à la réputation faible, ne change généralement rien.

Ce qu’il faut retenir pour la délivrabilité

  • Les expéditeurs ne peuvent pas déployer ARC pour améliorer leur propre délivrabilité. Ce sont les intermédiaires (services de transfert, listes de diffusion, passerelles de sécurité) qui le mettent en œuvre, et les serveurs de réception qui l’honorent. Ce que les expéditeurs devraient faire, c’est publier des enregistrements SPF, DKIM et DMARC solides, pour que l’AAR du premier saut enregistre un pass aligné.
  • Les opérateurs de services de transfert, de listes de diffusion ou de passerelles de filtrage devraient sceller avec ARC (et conserver les en-têtes d’origine), pour que l’application de DMARC plus loin sur le trajet ne détruise pas leur trafic.
  • Dans le cadre de ses consignes pour les expéditeurs, Gmail exige des en-têtes ARC sur le trafic des services de transfert de gros volumes. Microsoft, Google et d’autres grands fournisseurs scellent et honorent ARC.

Voir aussi

  • DMARC, la couche de politique qu’ARC aide à préserver d’un saut à l’autre
  • En-tête Authentication-Results, le format que reprend l’AAR
  • DKIM, le mécanisme de signature sur lequel reposent l’AMS et l’AS

Vérifier votre propre enregistrement

Le diagnostic gratuit lit ce que votre domaine publie dans le DNS.

Dans ce thème

Les 13 articles du thème Authentification →