How SPF works
Come funziona SPF
Premessa
Questa pagina ha una impostazione tecnica. Si dà per scontata la conoscenza delle reti TCP/IP, di come funziona un DNS, l'autonomia nell'usare gli strumenti di configurazione relativi e una minima familiarità con la documentazione IETF.
Considerazioni di base
L'efficacia del Sender Policy Framework (SPF) dipende dalla collaborazione tra il sistema di invio e quello di ricezione delle email:
- Il sistema che invia un'email utilizza SPF per fornire al destinatario un metodo di verifica dell'autenticità del mittente. Ciò impedisce l'impersonificazione da parte di soggetti non autorizzati.
- Il sistema ricevente che, grazie a SPF, ha la possibilità di identificare e rifiutare messaggi da mittenti fraudolenti.
È fondamentale che entrambi i sistemi siano configurati per aderire alle regole di SPF. Solo in questo modo si può efficacemente prevenire l'esposizione a email da mittenti ingannevoli.
Tuttavia, è importante sottolineare che SPF opera a livello di dominio e non si applica all'indirizzo email specifico. Ciò significa che il Sender Policy Framework non impedisce a all'utente "paperino@example.com
" di inviare una email a nome di "presidente@example.com
". SPF è incentrato sulla validazione del dominio mittente, non sugli indirizzi specifici.
Oggetto del controllo
Abbiamo detto che il controllo viene effettuato sul dominio mittente. Questo NON corrisponde, come molti erroneamente pensano, al dominio che appare nel campo "From:
" ma al "MAIL FROM:
" come definito nella https://datatracker.ietf.org/doc/rfc5321/. I dettagli implementativi sono riportati nel punto "2.2. Checking Authorization".
Il "MAIL FROM:
" viene gestito come parte del protocollo SMTP e potrebbe non venir riportato negli header della mail ricevuta, tuttavia é possibile ricercarne il valore nel campo "Received-SPF: " che viene aggiunto dal sistema ricevente.
Modalità del controllo
Lo schema della verifica di un mittente può essere semplificato come dal diagramma sottostante:
Il server mittente.com
pubblica un record SPF sul suo dominio (Il record SPF è un record DNS di tipo TXT, comincia sempre con "v=spf1
", seguito da uno o più mechanism, prefissati da un qualifier. e.g. "v=spf1 mx ip4:139.257.1.0/24 include:servers.mcsv.net -all
" per la sintassi si veda la pagina Come configurare un record SPF.
[Note: Il tipo record tipo 99 (SPF) è stato deprecato ad aprile 2014 e non deve più essere utilizzato]
): In altre parole rende pubblico quali sono i mail server che sono autorizzati a spedire mail per suo conto. Nell'esempio sopra le mail provenienti da mittente.com
possono arrivare da un qualunque server nella rete 139.257.1.1 - 139.257.1.254
, inoltre dato che usa Mailchimp per spedire le sue newsletter include anche il record di quest'ultimo. Tutte le mail provenienti da altri server devono venir rigettate (-all
)
Il server destinatario.org
, quando riceve un messaggio da qualcuno che dice di essere mittente.com
va a confrontare l'indirizzo IP da cui proviene la connessione con il record pubblicato. Una volta trovato il record SPF l'indirizzo del mittente viene cercato nei mechanism, la ricerca ha termine non appena si trova una corrispondenza viene applicato il qualifier corrispondente (di default è il +
= pass
) e il controllo viene terminato. Per questo motivo si lascia sempre un mechanism all
al termine del record in modo da valutare tutti gli host che non hanno una corrispondenza definita.
Esempio pratico
Immaginiamo che il server mittente.com
abbia un record SPF pubblicato che include l'indirizzo IP 139.257.1.15
e altri meccanismi di autorizzazione. Questo record SPF potrebbe apparire come segue: v=spf1 ip4:139.257.1.0/24 include:servers.mcsv.net -all
.
Ora, supponiamo che un'email sia inviata dal server mittente.com
e che l'indirizzo IP della connessione in uscita sia 139.257.1.15
. Quando il server destinatario.org
riceve questa email, esegue i seguenti passaggi:
- Estrae il dominio del mittente dall'indirizzo "MAIL FROM:" dell'email.
- Cerca il record SPF associato a
mittente.com
nel DNS. - Confronta l'indirizzo IP da cui l'email è stata inviata (
139.257.1.15
) con gli indirizzi IP autorizzati nel record SPF. - Trova una corrispondenza con
139.257.1.15
all'interno della gamma autorizzata139.257.1.0/24
. - Applica il "qualifier" associato, che in questo caso è implicitamente
+
(pass), indicando che l'email proviene da un indirizzo IP autorizzato. - Accetta l'email, poiché proviene da un server autorizzato a inviare email per conto di
mittente.com
.
Se invece l'email provenisse da un indirizzo IP non incluso nel record SPF, ad esempio 139.258.2.10
, il server destinatario.org
applicherebbe il "qualifier" -all
al termine del record SPF, indicando che l'email dovrebbe essere rifiutata o contrassegnata come potenzialmente fraudolenta, poiché non corrisponde ad alcun indirizzo autorizzato dal record SPF di mittente.com
.
Riferimenti esterni
Bibliografia
- La pagina Wikipedia:Sender Policy Framework
- La documentazione ufficiale IETF https://datatracker.ietf.org/doc/html/rfc7208
- "Understanding SPF" su dmarcian https://dmarcian.com/what-is-spf/
Link utili
- SPF Surveyor https://dmarcian.com/spf-survey/
- SPF Record Check https://mxtoolbox.com/spf.aspx