Vai al contenuto
Email DNS toolkit

Validatore email DNS (SPF, DKIM, DMARC)

Toolkit per audit di deliverability email: parser e validatore di record SPF, DKIM, DMARC; MX lookup via DNS over HTTPS; multi-resolver compare a 6 vie per identificare propagazione asimmetrica, cache stale o DNS poisoning (Cloudflare 1.1.1.1, Cloudflare Security 1.1.1.2, Cloudflare Family 1.1.1.3, Google 8.8.8.8, AliDNS 223.5.5.5, dns.sb). Estende il DoH query tester con focus specifico su email security. Pensato per audit pre-deploy e troubleshooting di email che non arrivano.

Come fare audit email deliverability

  1. 1

    Estrai i record DNS

    Da terminale: dig TXT esempio.com per SPF, dig TXT _dmarc.esempio.com per DMARC, dig TXT selettore._domainkey.esempio.com per DKIM (selettore = es. google, k1, default). Copia il contenuto della risposta TXT (fra le virgolette).

  2. 2

    Incolla nel tab corrispondente

    Tab SPF: incolla la stringa v=spf1.... Tab DKIM: incolla v=DKIM1; k=rsa; p=.... Tab DMARC: incolla v=DMARC1; p=...;.... Bottone 'Parsa': il tool mostra le findings.

  3. 3

    Leggi le findings

    Il parser identifica problemi comuni: SPF +all (troppo permissivo), troppi DNS lookups (>10), DMARC p=none (monitoring senza enforcement), DKIM p= vuoto (chiave revocata). Severity color-coded: rosso = critical, giallo = warning, verde = OK.

  4. 4

    MX lookup e multi-resolver

    Tab 'MX lookup' fa fetch via DoH e mostra i mail server con priorità. Tab 'Multi-resolver' fa la stessa query su 6 resolver pubblici diversi (4 unfiltered: Cloudflare/Google/AliDNS/dns.sb + 2 filtered Cloudflare Security/Family) e confronta le risposte. Differenze fra unfiltered = propagazione asimmetrica o cache stale. Differenza fra filtered e unfiltered = dominio bloccato dal DNS filter (malware/adult).

Perché un toolkit dedicato

Email deliverability è una catena di standard. SPF, DKIM e DMARC sono i tre RFC che governano l'autenticazione email moderna. Ognuno ha sintassi specifica e errori sottili che causano mail rifiutate o classificate come spam: SPF con +all invece di -all equivale a dichiarare 'anyone can send', DMARC con p=none mai promosso a p=reject resta in modalità monitoring senza enforcement, DKIM con chiavi RSA a 1024 bit è deprecato dal 2018 (M3AAWG e Microsoft impongono 2048 bit minimum). Identificare questi problemi richiede leggere RFC, calcolare lookups, decodificare chiavi: il tool automatizza la catena.

Multi-resolver compare a 6 vie. La maggior parte dei tool di lookup interroga un singolo resolver. Qui le query partono in parallelo verso 6 resolver pubblici, divisi in due gruppi: 4 unfiltered (Cloudflare 1.1.1.1, Google 8.8.8.8, AliDNS 223.5.5.5, dns.sb) per verificare propagazione e cache, e 2 content-filtering (Cloudflare Security 1.1.1.2 blocca malware, Cloudflare Family 1.1.1.3 blocca malware + adult) per block detection. Differenze fra unfiltered indicano cache stale o propagazione asimmetrica; differenza fra unfiltered e filtered indica un dominio classificato come malicious dai DNS filter di Cloudflare. Diagnostica utile in pre-deploy verification e nel detection di domini compromessi.

Audit operabile su domini sensibili. I parser SPF, DKIM e DMARC analizzano il testo che incolli in modo autonomo dal DNS effettivo del dominio: utile per validare un record prima di pubblicarlo, o per audit dove l'interrogazione stessa al DNS deve restare invisibile. Le interrogazioni MX e multi-resolver, quando servono, escono direttamente verso i resolver pubblici via DNS over HTTPS, senza intermediari commerciali che logghino il dominio analizzato. Scenari tipici: M&A, due diligence, pre-launch.

Cosa controlla il parser per ogni record

SPF
Versione (v=spf1), mechanisms (ip4, ip6, mx, a, include, exists, ptr, all), qualifiers (+, -, ~, ?), modificatori (redirect=, exp=). Findings: multiple all (errore), missing all (warning, default neutral = anyone-can-send), +all (critical, anyone-can-send esplicito), troppi DNS lookups (>10 = SPF permanent error per RFC 7208), uso di ptr (deprecato).
DKIM
Versione (v=DKIM1), key type (k=rsa o k=ed25519), public key (p=...), flags (t=), service type (s=), notes (n=). Findings: missing v=DKIM1 (warning), p= vuoto (chiave revocata, mail con questo selettore vengono rifiutate), key size estimate (1024 bit deprecato dal 2018, raccomandato 2048+).
DMARC
Versione (v=DMARC1), policy (p=none|quarantine|reject), subdomain policy (sp=), pct (pct=0..100), reporting addresses (rua=, ruf=), alignment (adkim=r|s, aspf=r|s), failure options (fo=). Findings: p=none (warning, solo monitoring no enforcement), missing rua (no aggregate reports), pct<100 (partial enforcement, comune in fase di rollout ma a regime deve essere 100), missing sp (subdomain default = p, ok).
MX lookup
Query DoH per record MX del dominio. Output: priorità + hostname per ogni mail server. Findings: niente record MX (dominio non riceve email), priorità duplicate (configurazione errata).
Multi-resolver compare
Stessa query (A, AAAA, MX, TXT, ecc.) verso 6 resolver pubblici. Unfiltered (Cloudflare 1.1.1.1, Google 8.8.8.8, AliDNS 223.5.5.5, dns.sb): mostrano la risposta DNS reale, differenze fra loro = cache stale o propagazione asimmetrica. Content-filtering (Cloudflare Security 1.1.1.2 blocca malware; Cloudflare Family 1.1.1.3 blocca malware + adult content): se non rispondono ma gli unfiltered si', il dominio è classificato come malicious/adult. Side-by-side comparison delle risposte con block detection automatico.

Glossario

Termini tecnici usati in questa pagina, spiegati in due righe.

SPF #
Sender Policy Framework, RFC 7208. Record TXT pubblicato dal dominio mittente che dichiara quali server IP sono autorizzati a inviare email a nome del dominio. Il receiver verifica l'IP del mittente contro la SPF policy per accettare/rifiutare.
DKIM #
DomainKeys Identified Mail, RFC 6376. Firma crittografica delle email via chiave privata del mittente. Receiver verifica con la chiave pubblica pubblicata nel DNS (TXT record sotto selettore._domainkey.dominio).
DMARC #
Domain-based Message Authentication, Reporting and Conformance, RFC 7489. Policy che dice al receiver cosa fare se SPF e/o DKIM falliscono: none (passa, monitoring), quarantine (spam folder), reject (rifiuto). Include reporting via rua.
MX record #
Mail Exchanger record DNS che dichiara i mail server del dominio (priorità + hostname). Senza MX, il dominio non può ricevere email. Tipico setup: 2-4 MX con priorità diverse per failover.
DNS lookup limit (SPF) #
RFC 7208 sez. 4.6.4 limita SPF a max 10 lookup DNS (include, a, mx, ptr, exists). Eccedere il limite causa permerror: il record viene trattato come invalido. Consolidare include in IP4/IP6 ranges per ridurre lookup.
DNS over HTTPS (DoH) #
Protocollo DNS che incapsula le query in HTTPS sulla porta 443, RFC 8484. Sostituisce il DNS tradizionale (UDP/TCP 53) con un canale cifrato che impedisce l'ispezione passiva delle query da parte di intermediari di rete. Il tool usa il formato JSON DoH (Accept: application/dns-json) supportato dai principali resolver pubblici: Cloudflare, Google, AliDNS e dns.sb.

Domande frequenti

Posso incollare il record con virgolette intorno?
Si', il parser rimuove automaticamente virgolette ai bordi e whitespace. SPF e DMARC sono spesso pubblicati con doppie virgolette in dig output (RFC 7208 segmentazione TXT). Anche concatenazione di stringhe TXT split (es. "v=spf1..." " include:...") viene gestita.
Il tool fa fetch del record dal DNS?
I parser SPF, DKIM e DMARC analizzano direttamente il testo che incolli; non interrogano il DNS del dominio. MX lookup e multi-resolver invece escono verso i 6 resolver pubblici via DNS over HTTPS (Cloudflare 1.1.1.1, Cloudflare Security 1.1.1.2, Cloudflare Family 1.1.1.3, Google 8.8.8.8, AliDNS 223.5.5.5, dns.sb). Ogni interrogazione ha timeout di 8 secondi per evitare di bloccarsi su resolver lenti.
Perché DKIM key size 1024 bit è deprecato?
M3AAWG (Messaging Anti-Abuse Working Group) raccomanda 2048+ bit dal 2018. Microsoft impone 2048 minimum dal 2024 per Outlook deliverability. RSA 1024 è considerato breakable con ~ $10K-100K compute (factoring), quindi non sicuro contro attaccanti motivati. Migration: genera nuova chiave 2048+, pubblica nuovo selettore, attendi 30 giorni, dismetti vecchia chiave.
DMARC p=none è sicuro?
No, è solo monitoring. Non blocca spoofing del tuo dominio. E' la fase iniziale di un rollout DMARC: pubblica p=none con rua, raccogli aggregate reports per 30-60 giorni, identifica i tuoi mail server legittimi che falliscono SPF/DKIM, fix la configurazione, poi promuovi a p=quarantine (3 mesi) e poi p=reject (target finale).
Multi-resolver: cosa indica una differenza?
Tipicamente: (1) cache stale: un resolver ha ancora cachato il record vecchio (TTL non scaduto). Aspetta TTL e ri-controlla. (2) propagazione asimmetrica: dopo un cambio recente, alcuni resolver hanno il nuovo, altri il vecchio. (3) regional answer: per CDN/Anycast, i resolver geograficamente diversi vedono IP diversi (e' normale, non è un bug). (4) raro: DNS poisoning di uno specifico resolver (improbabile su 1.1.1.1/8.8.8.8/9.9.9.9 ma teoricamente possibile).
Il tool supporta record DKIM ed25519?
Si', il parser riconosce k=ed25519 e k=rsa. Ed25519 è molto più compatto (la chiave pubblica è ~80 char base64 vs ~390 per RSA 2048), supportato da Gmail, Microsoft 365, Sendgrid, Mailgun. Fix per la lunghezza max TXT (255 char): ed25519 non richiede splitting.
Posso testare anche record BIMI?
BIMI (Brand Indicators for Message Identification) è un'estensione moderna di DMARC che pubblica logo via SVG nel DNS (record default._bimi.dominio). Il tool potrebbe essere esteso con un tab BIMI dedicato. Per ora, parsa BIMI manualmente come record TXT generico.

Le tue email finiscono in spam?

Se SPF, DKIM e DMARC non sono configurati a dovere, posso fare audit deliverability sul tuo dominio aziendale e setup corretto della catena anti-spoofing. Hardening DNS per business email professionali.

Audit deliverability email