Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
200-postfix-dovecot-etc:090-spf [le 30/05/2025 à 09:14] – supprimée - modification externe (Date inconnue) 127.0.0.1200-postfix-dovecot-etc:090-spf [le 04/10/2025 à 17:26] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. 66.249.69.2
Ligne 1: Ligne 1:
 +====== SPF ======
 +"Sender Policy Framework" est une norme de vérification du nom de domaine de l'expéditeur d'un courrier électronique, normalisée dans la [[https://www.rfc-editor.org/rfc/rfc7208|RFC 7208]]. L'adoption de cette norme est de nature à réduire le spam((Définition issue de [[https://fr.wikipedia.org/wiki/Sender_Policy_Framework|Wikipedia]].))
  
 +Sa mise en œuvre est assez simple, il suffit de créer un enregistrement TXT dans la zone DNS du domaine expéditeur, cet enregistrement indiquant les adresses IP (v4 comme v6) des serveurs SMTP "officiels" pour ce domaine, ainsi que les restrictions à appliquer si l'IP émettrice n'est pas dans la liste. Il est également possible pour un domaine donné, d'inclure le champ SPF d'un autre serveur.
 +===== Le principe =====
 +L'idée de base est de vérifier que l'émetteur du message a utilisé un serveur smtp sortant légitime pour le domaine annoncé dans l'adresse de l'émetteur. Celle qui est inscrite dans le champ ''Return-Path:'' et qui correspond à celle donnée dans le «RCPT TO» du dialogue smtp.
 +  - l'émetteur du message a une adresse @exemple.tld. Il envoie ce message @autrexemple.tld
 +  - Il utilise un smtp sortant légitime pour le domaine exemple.tld.
 +  - le smtp qui gère autrexemple.tld, lorsqu'il reçoit ce message va vérifier que le smtp que l'émetteur a utilisé pour envoyer son message est bien légitime pour le domaine exemple.tld. Par la suite, le paramètre "RCPT TO" indiquera l'adresse du destinataire. Tout ceci constitue l'enveloppe du message.
 +Un petit schéma ?
 +{{ 200-postfix-dovecot-etc:spf.svg?650 |processus SPF}}
 +Voici l'essentiel des en-têtes du message reçu par «untel@gmail.com» (seul les parties gauche des adresses ont été modifiées. Le reste est véridique):
 +<html><pre class="code">
 +Delivered-To: untel@gmail.com
 +...
 +<span class="bhly">Return-Path: &lt;untel@nain-t.net&gt;</span>
 +<span class="hlo">Received: from smtp.nain-t.net (smtp.nain-t.net. <b>[51.68.121.59]</b>)
 +       by mx.google.com with ESMTP id 4fb4d7f45d1cf-6005ae5205dsi257113a12.540.2025.05.15.11.51.10
 +        for &lt;untel@gmail.com&gt;;</span>
 +...
 +<span class="bhlr">Received-SPF: pass (google.com: domain of untel@nain-t.net designates 51.68.121.59 as permitted sender) client-ip=51.68.121.59;</span>
 +...
 +<span class="hlo">Received: from [192.168.60.47] ([82.65.67.204])
 + (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 + by smtp.nain-t.net (Postfix) with ESMTPSA id A879425237</span>
 +<span class="bhly">Reply-To: untel@nain-t.net</span>
 +Content-Language: fr
 +To: untel &lt;untel@gmail.com&gt;
 +<span class="bhly">From: untel &lt;untel@nain-t.net&gt;</span>
 +</pre></html>
 +Rappelons que le «Return-Path:» correspond au «MAIL FROM:» du dialogue smtp. Normalement cette adresse est la vraie adresse de l'émetteur du message. Toute erreur de transport de ce message sera notifiée à cette adresse.
 +
 +Rappelons également que la chronologie des étapes du relai est inversée dans l'en-tête. Il faut la suivre de bas en haut. Ainsi, les lignes surlignées orange  représentent l'itinéraire du message depuis le MUA situé sur 192.168.60.47, transmis via le routeur NAT à smtp.nain-t.net en utilisant TLSv1, ce qui sous-entend que le client a été authentifié par «smtp.nain-t.net», puisque ce dernier accepte de le transmettre à «mx.google.com».
 +
 +Ici «Return-Path:», «From:» et «Reply-to» pointent sur la même adresse. Avec un MUA «propre» «Return-Path:» et «From:» pointent la même adresse. «Reply-to» peut en revanche présenter légitimement une adresse différente.
 +
 +Le MTA de Google  recherche via DNS le champ SPF du domaine «nain-t.net» et constate que l'adresse du MTA qui lui a relayé le message est bien légitimée par SPF.
 +===== La syntaxe SPF =====
 +Du moins la plus fondamentale, car elle est assez riche.
 +SPF identifie des nœuds légitimes de  diverses manières:
 +  * leur adresse IP v4 comme v6;
 +  * les nœuds référencés dans son domaine comme étant des MX;
 +  * les nœuds référencés dans son domaine référencés par un champ A ou AAAA. Autrement dit, pas de CNAME.
 +Pour les autres, ne retenons que «all» qui signifie «tous les autres». (Pour étudier toutes les autres possibilités, voir [[http://www.open-spf.org/SPF_Record_Syntax/|Le site officiel]] du projet SPF)
 +
 +«all» représente donc le reste du monde et que faire avec ?
 +  - **?all** signifie que l'on ne se prononce pas («lavabo» en latin); 
 +  - **~all** signifie qu'ils ne sons pas autorisés, mais que l'on peut se tromper. Pratiquement, le message devrait passer, mais en étant marqué comme suspicieux.
 +  - **-all** veut dire que personne d'autre n'a le droit de relayer pour ce domaine. Autrement dit, il faut rejeter le message.
 +  - enfin, le **+** indique que ce qui suit est valide. Autrement dit, ce signe n'apparaît jamais devant le «all» ou alors, mieux vaut bloquer complètement ce domaine ! Pratiquement, ce signe peut être omis, puisqu'il ne peut apparaître que devant des nœuds autorisés.
 +
 +Exemple: ''v=spf1 +a +mx -all'', qui peut tout aussi bien s'écrire ''v=spf1 a mx -all'', ce qui veut dire que seuls les nœuds référencés dans un champ «A» ou «MX» sont autorisés à l'exclusion de tout autre.
 +
 +===== Fin du spam et du phishing ? =====
 +Pas vraiment. C'est certes mieux que rien puisqu'un spammeur doit théoriquement disposer d'une adresse dans le domaine dont le champ SPF valide le MTA qu'il utilise.
 +
 +Sauf que:
 +  * des erreurs de syntaxe dans la formulation du texte,
 +  * la permissivité plus ou moins relative («?all»,« ~all»
 +sont autant de portes d'entrées qui permettent, en utilisant un «MAIL FROM» avec une adresse forgée à partir d'un domaine compromis, de passer plus ou moins librement le filtrage SPF.
 +
 +Le problème qui demeure, concernant la tromperie du destinataire est la suivante:
 +MAIL FROM: Fait partie de l'enveloppe du message. Dans ce message, il y a le champ FROM:. Normalement, ces deux adresses devraient être identiques, c'est ce que produit un MUA convenablement éduqué. Mais rien n'empêche une personne mal intentionnée de forger un message où les deux adresses seraient différentes.
 +<note>Dans l'en-tête complet du message, «Mail From» apparaît sous l'étiquette «Return-Path», à ne pas confondre avec l'étiquette «Reply-To» qu'il peut être tout à fait légitime de différencier de «From:»   </note>
SPF: Dernière modification le: 01/01/1970 à 00:00 par