DKIM: l'impronta digitale delle tue email
DomainKeys Identified Mail (DKIM) è un protocollo di autenticazione email che utilizza la crittografia a chiave pubblica per garantire che un'email non sia stata alterata durante il transito. A differenza di SPF che verifica solo l'IP del server mittente, DKIM firma crittograficamente il contenuto dell'email, permettendo al destinatario di verificarne l'integrità e l'autenticità. Ogni email firmata con DKIM contiene un header DKIM-Signature con la firma digitale calcolata sul corpo del messaggio e su alcuni header selezionati.
Il meccanismo funziona con due chiavi: una chiave privata (custodita dal mail server che invia) e una chiave pubblica (pubblicata nel DNS del dominio). Quando il server invia un'email, calcola un hash del contenuto e lo crittografa con la chiave privata. Il server ricevente recupera la chiave pubblica dal DNS, decrittografa la firma e confronta l'hash con quello calcolato localmente. Se corrispondono, il messaggio è autentico e integro.
Come funziona il selector DKIM
Ogni record DKIM è identificato da un selector, un prefisso che permette di avere più chiavi DKIM per lo stesso dominio. Il record si trova all'indirizzo selector._domainkey.dominio.com. Ad esempio, se Google Workspace usa il selector "google", la chiave pubblica si trova in google._domainkey.esempio.com. Questo sistema permette di usare chiavi diverse per servizi diversi: una per il server aziendale, una per la piattaforma di marketing, una per il sistema di ticketing.
Nell'header DKIM-Signature, i parametri chiave sono: d= (dominio che firma), s= (selector), h= (header inclusi nella firma), bh= (hash del body), b= (la firma vera e propria). Il parametro a= specifica l'algoritmo (rsa-sha256 è lo standard attuale). Il parametro c= specifica la canonicalizzazione: relaxed è più tollerante con modifiche minori ai whitespace, strict richiede corrispondenza esatta.
Diagnostica e troubleshooting DKIM
Il problema DKIM più comune è una firma che fallisce la verifica. Le cause principali sono: chiave pubblica mancante o errata nel DNS (verificala con il nostro DKIM Lookup), modifiche al messaggio durante il transito (mailing list che alterano subject o body), chiave privata non corrispondente alla pubblica, e record DNS con errori di formattazione. Le mailing list sono particolarmente problematiche perché spesso aggiungono footer o modificano l'header Subject, invalidando la firma DKIM originale.
Per diagnosticare problemi DKIM, analizza gli header dell'email ricevuta con l'Email Header Analyzer. Cerca il campo Authentication-Results che mostra il risultato della verifica DKIM: dkim=pass significa che la firma è valida, dkim=fail indica un problema. L'header DKIM-Signature nell'email contiene il selector (s=) e il dominio (d=) necessari per la verifica manuale.
Dimensione della chiave e rotazione
La dimensione della chiave DKIM è un aspetto cruciale per la sicurezza. Le chiavi a 1024 bit, un tempo standard, sono ora considerate vulnerabili ad attacchi di fattorizzazione con hardware moderno. La raccomandazione attuale è usare chiavi a 2048 bit, che offrono un livello di sicurezza adeguato per i prossimi anni. Alcuni provider supportano chiavi a 4096 bit, ma queste possono causare problemi con i limiti di dimensione dei record TXT DNS (255 caratteri per stringa).
La rotazione periodica delle chiavi DKIM è una best practice spesso trascurata. Consiste nel generare una nuova coppia di chiavi, pubblicare la nuova chiave pubblica con un nuovo selector, configurare il server per firmare con la nuova chiave privata, e dopo un periodo di transizione rimuovere la vecchia chiave pubblica dal DNS. La rotazione ogni 6-12 mesi è consigliata per limitare l'esposizione in caso di compromissione della chiave privata.
DKIM nel contesto dell'autenticazione email
DKIM è il secondo pilastro dell'autenticazione email, tra SPF e DMARC. Mentre SPF verifica chi invia (l'IP del server), DKIM verifica cosa viene inviato (l'integrità del messaggio). DMARC poi unisce i risultati di entrambi verificando l'allineamento del dominio: il dominio nell'header From deve corrispondere al dominio autenticato da SPF (envelope from) o DKIM (dominio della firma). Senza DKIM, DMARC si basa solo su SPF, riducendo significativamente la protezione.
Per una verifica completa della tua configurazione DKIM, usa il nostro DKIM Lookup specificando dominio e selector. Lo strumento mostra la chiave pubblica, la dimensione in bit, l'algoritmo e segnala eventuali problemi. Combina il risultato con le verifiche SPF Lookup e DMARC Lookup per un quadro completo della tua autenticazione email.