Cos'è MTA-STS?
MTA-STS (Mail Transfer Agent Strict Transport Security) è uno standard di sicurezza email definito nella RFC 8461. Permette a un proprietario di dominio di dichiarare che i suoi server di posta supportano la crittografia TLS e di imporre ai server mittenti di rifiutare la consegna invece di inviare un messaggio in chiaro.
Il problema che risolve è vecchio. SMTP negozia TLS in modo opportunistico: se il comando STARTTLS fallisce, il messaggio parte comunque, non crittografato. Un attaccante posizionato sul percorso di rete sfrutta questa tolleranza: rimuove STARTTLS e forza un invio in chiaro che intercetta, è il cosiddetto attacco di downgrade. MTA-STS elimina questo ripiego. Senza un TLS valido verso i tuoi server MX, l'email semplicemente non viene consegnata.
Oltre alla protezione contro l'intercettazione e gli attacchi man-in-the-middle, pubblicare MTA-STS segnala che il tuo dominio applica le best practice di crittografia in transito. Google e Microsoft 365 lo supportano lato mittente e lo abbinano a TLS-RPT per riportare i fallimenti di connessione.
Componenti MTA-STS
Una configurazione MTA-STS si basa su due elementi pubblicati separatamente: un record DNS che annuncia la policy, e la policy stessa, ospitata in HTTPS. I due devono restare coerenti perché un server mittente applichi le tue regole.
1. Record DNS
Un record TXT pubblicato su _mta-sts.tuodominio.it annuncia che il tuo dominio supporta MTA-STS:
_mta-sts.esempio.it. IN TXT "v=STSv1; id=20240115120000"
- v=STSv1: versione del protocollo (sempre
STSv1) - id: identificatore della versione corrente; modificalo a ogni aggiornamento della policy
2. File di policy
La policy è un file di testo ospitato su https://mta-sts.tuodominio.it/.well-known/mta-sts.txt:
version: STSv1
mode: enforce
mx: mail.esempio.it
mx: *.backup-mail.esempio.it
max_age: 604800
La direttiva mx può comparire più volte per elencare tutti i tuoi server di ricezione. Il campo mode accetta enforce, testing o none.
Checklist di deployment
Distribuisci MTA-STS in questo ordine: prima la policy e il suo certificato HTTPS, solo dopo il record DNS. Finché la policy non è raggiungibile, il record non ha alcun effetto: i server mittenti non hanno nulla da applicare.
Passo 1: Configura l'host della policy
- Crea un sottodominio:
mta-sts.tuodominio.it - Ottieni un certificato HTTPS (Let's Encrypt funziona)
- Configura il tuo server web per servire il file di policy
Passo 2: Crea e ospita il file di policy
- Genera la policy con lo strumento qui sopra
- Salvala con il nome
mta-sts.txt - Ospitala su
/.well-known/mta-sts.txt
Passo 3: Aggiungi il record DNS
- Genera il record DNS con lo strumento qui sopra
- Aggiungilo al tuo DNS come record TXT su
_mta-sts
Passo 4: Testa e monitora
- Valida la tua configurazione con il Verificatore MTA-STS
- Resta in modalità testing il tempo necessario per individuare i problemi
- Passa alla modalità enforce una volta confermata la configurazione
FAQ - Domande frequenti
D: Cos'è MTA-STS e perché ne ho bisogno?
R: MTA-STS (Mail Transfer Agent Strict Transport Security) è uno standard definito nell'RFC 8461 che permette a un proprietario di dominio di dichiarare che i suoi server di posta richiedono TLS. Senza, SMTP ripiega in chiaro non appena la negoziazione TLS fallisce, cosa che un attaccante può provocare per intercettare la posta. MTA-STS elimina questo ripiego e protegge le tue email in entrata dall'intercettazione e dagli attacchi man-in-the-middle.
D: Qual è la differenza tra le modalità testing ed enforce?
R: In modalità testing, i server mittenti segnalano i fallimenti via TLS-RPT ma consegnano comunque la posta se TLS fallisce: nulla viene bloccato, tu osservi. In modalità enforce, devono stabilire una connessione TLS valida o rifiutare la consegna. Inizia sempre con testing per verificare che tutti i tuoi server MX rispondano in TLS, poi passa a enforce.
D: Come distribuisco il file di policy MTA-STS?
R: Ospita il file di policy su https://mta-sts.tuodominio.it/.well-known/mta-sts.txt. Il sottodominio mta-sts deve presentare un certificato HTTPS valido, servire il file con l'header Content-Type: text/plain e restare accessibile senza reindirizzamenti. Basta che manchi una sola di queste condizioni e la policy viene ignorata.
D: Quale valore max_age dovrei usare?
R: La direttiva max_age fissa la durata, in secondi, per cui i mittenti mantengono in cache la tua policy. I valori comuni vanno da 86400 (1 giorno) in fase di testing a 604800 (1 settimana) in produzione, fino a 31557600 (1 anno) per una configurazione stabile. Evita di scendere sotto 86400: alcuni provider come Gmail ignorano una policy con cache troppo breve.
D: Posso usare wildcard nei pattern MX?
R: Sì. MTA-STS accetta un asterisco (*) come etichetta più a sinistra di un pattern MX. Per esempio, *.mail.esempio.it copre qualsiasi sottodominio di mail.esempio.it, il che evita di elencare ogni server uno per uno.
D: Ho bisogno anche di un record TLS-RPT?
R: Non è obbligatorio, ma è caldamente raccomandato. Un record TLS-RPT (RFC 8460) chiede ai server mittenti di inviarti un report quotidiano dei fallimenti di connessione TLS. È la tua unica visibilità su ciò che MTA-STS blocca o lascia passare: senza, un problema di certificato passa inosservato.
D: Come configuro MTA-STS per Microsoft 365 / Office 365?
R: Inserisci il tuo dominio nel generatore, scegli la modalità (inizia con testing) e aggiungi il pattern MX *.mail.protection.outlook.com, che copre i server Exchange Online. Copia il record DNS TXT, poi ospita il file di policy sul sottodominio mta-sts del tuo dominio.
D: Come configuro MTA-STS per Google Workspace?
R: Inserisci il tuo dominio, poi aggiungi i pattern MX che il tuo dominio pubblica davvero: smtp.google.com per un dominio Workspace recente (MX unico con priorità 1 dal 2023), oppure il set storico aspmx.l.google.com per l'MX principale, *.aspmx.l.google.com per i quattro MX alternativi e *.googlemail.com per quelli di backup. Il generatore produce il record DNS TXT e il file di policy pronti per il deployment.
Pronto a blindare la tua crittografia in transito? Genera la tua configurazione qui sopra, distribuisci la policy, poi valida tutto con il Verificatore MTA-STS.
Strumenti complementari
| Strumento | Descrizione |
|---|---|
| Verificatore MTA-STS | Valida la configurazione MTA-STS che hai pubblicato |
| Validatore sintassi MTA-STS | Controlla la sintassi MTA-STS offline |
| Generatore DMARC | Crea il record DMARC del tuo dominio |
| Hosting MTA-STS | Ospita gratuitamente la tua policy MTA-STS |
Risorse utili
- RFC 8461 - SMTP MTA Strict Transport Security (specifica ufficiale di MTA-STS)
- RFC 8460 - SMTP TLS Reporting (TLS-RPT, il reporting raccomandato con MTA-STS)
- Documentazione MTA-STS Google (guida Google Workspace per attivare MTA-STS)