← Tutti gli articoli
Deliverability22/10/20269 min di letturaRedazione Liberatori

DKIM cos'è: firma, chiave nel DNS, rotazione e cosa succede se manca

DKIM è la firma che lega un'email al dominio che l'ha spedita e mostra se il messaggio è stato modificato per strada. Un esempio reale, la chiave nel DNS, la rotazione e i guasti più comuni.

DKIM cos'è: firma, chiave nel DNS, rotazione e cosa succede se manca

DKIM cos'è in parole semplici

DKIM (DomainKeys Identified Mail) è una firma digitale che il tuo server di posta aggiunge a ogni email in uscita. Il destinatario la verifica con una chiave pubblica pubblicata nel DNS del tuo dominio. Se la firma torna, il messaggio è stato davvero firmato da quel dominio e non è stato alterato dopo l'invio.

Il punto da tenere a mente: DKIM non dice che la tua email è buona, dice che è autentica e integra. Sono due cose diverse. Chi le confonde rischia di cercare nel posto sbagliato il motivo per cui i messaggi finiscono in spam, magari rivedendo il testo quando il guasto è in un record DNS.

Cos'è una firma DKIM: un esempio passo per passo

Immagina che esempio.it mandi un'email a un potenziale cliente. Succede questo, senza che nessuno se ne accorga.

  1. Il server di posta prende alcune intestazioni del messaggio (mittente, destinatario, oggetto, data) e il corpo.
  2. Ne calcola un'impronta, cioè un riassunto matematico. Cambia una virgola nel testo e l'impronta cambia completamente.
  3. Firma quell'impronta con la chiave privata, che resta sul server e non esce mai.
  4. Il risultato viene aggiunto al messaggio in un'intestazione chiamata DKIM-Signature, insieme al dominio che firma e al selettore, una sigla che indica quale chiave pubblica usare.
  5. Il server del destinatario legge dominio e selettore, cerca la chiave pubblica nel DNS, ricalcola l'impronta e confronta. Se coincide, la verifica passa.

L'intestazione, ridotta all'osso, ha questo aspetto:

DKIM-Signature: v=1; a=rsa-sha256; d=esempio.it; s=selezione1; h=from:to:subject:date; bh=(impronta del corpo); b=(la firma)

Si legge così: d è il dominio che firma, s il selettore, h l'elenco delle intestazioni coperte dalla firma, bh l'impronta del corpo, b la firma vera e propria. Il campo mittente deve essere tra quelli firmati, altrimenti la firma non vale a proteggerlo.

Se qualcuno intercetta il messaggio e cambia un solo carattere, o prova a spacciarsi per il tuo dominio senza la chiave privata, il confronto fallisce. Il meccanismo è semplice. I guai nascono quasi sempre nella configurazione.

La chiave DKIM nel DNS: cosa pubblichi e dove

La chiave pubblica sta in un record TXT con un nome costruito così: selettore, poi ._domainkey, poi il dominio. Nel nostro esempio il nome è selezione1._domainkey.esempio.it. Il contenuto somiglia a questo:

v=DKIM1; k=rsa; p=MIIBIjANBgkqh... (la chiave, una lunga sequenza di caratteri)

v è la versione, k il tipo di chiave, p la chiave pubblica. Non la scrivi a mano: la genera il servizio di posta o la piattaforma di invio e ti dice quale record creare. Tu copi e incolli. Ed è qui che si rompe buona parte delle configurazioni, perché una chiave a 2048 bit supera la lunghezza di una singola stringa TXT e va spezzata in più pezzi. Alcuni pannelli lo fanno da soli, altri no.

Gli errori tipici:

  • Chiave troncata o con spazi in più. Il pannello taglia la stringa o aggiunge a capo. La chiave sembra a posto ma non è più quella.
  • Selettore sbagliato. Il record esiste, ma con un nome diverso da quello che il server scrive nella firma. Il destinatario cerca un record che non c'è.
  • Dominio sbagliato. Il record è sul dominio principale mentre la firma usa un sottodominio, o viceversa.
  • Chiave troppo corta. Per le chiavi RSA oggi si consigliano 2048 bit; se il pannello ti propone ancora 1024, cerca l'opzione per salire.

C'è poi un trabocchetto che confonde molti: parecchie piattaforme di invio firmano di default con il loro dominio, non con il tuo. La verifica DKIM passa, ma la firma non è allineata al dominio che compare come mittente, quindi non ti serve per DMARC. Cerca nelle impostazioni la voce per firmare con il tuo dominio, di solito basta pubblicare uno o due record che la piattaforma ti indica.

Un dettaglio che conta se fai cold email: ogni dominio da cui spedisci ha la sua chiave. Noi mandiamo gli invii a freddo da domini dedicati e da più caselle, mai dal dominio principale dell'azienda, quindi ogni dominio dedicato va configurato per conto suo. Se ne dimentichi uno, quello parte senza firma, e sarà l'unico a soffrirne.

Rotazione della chiave: quando e come si fa

Una chiave che non cambia mai, se un giorno viene copiata, resta valida finché qualcuno non la toglie dal DNS. La rotazione limita il danno. Non esiste una scadenza obbligatoria, ma ha senso farla a intervalli regolari e subito dopo ogni sospetto: un collaboratore che se ne va con accesso al server, una piattaforma dismessa, un pannello condiviso con troppe persone.

La procedura giusta usa un secondo selettore, e l'ordine conta più di tutto.

  1. Genera una nuova coppia di chiavi con un selettore diverso, per esempio selezione2.
  2. Pubblica nel DNS il nuovo record, lasciando in piedi quello vecchio.
  3. Aspetta la propagazione e verifica che il nuovo record sia leggibile dall'esterno.
  4. Fai firmare i messaggi con il nuovo selettore.
  5. Tieni il vecchio record ancora per qualche giorno: i messaggi già partiti, o fermi in coda da qualche parte, si verificano ancora con la vecchia chiave.
  6. Rimuovi il vecchio record.

L'errore classico è fare il contrario: sostituire il record esistente con la chiave nuova mentre il server firma ancora con la vecchia. Da quel momento ogni email parte con una firma che nessuno riesce a verificare. Il mittente non vede nessun errore, le consegne peggiorano e le risposte calano senza una causa evidente. Lo noti solo se guardi le intestazioni di un messaggio arrivato o i rapporti DMARC.

Cosa succede se DKIM manca o non passa

Dipende da come è configurato il resto, e per questo la risposta onesta non è «finisci per forza in spam». Una singola email senza firma, da un dominio con una buona storia, può arrivare lo stesso. Ma stai spedendo con un segnale di fiducia in meno, e su un dominio nuovo o dedicato alle campagne quel segnale pesa di più.

Concretamente perdi due cose.

  • Un controllo che regge all'inoltro. Quando un'email viene inoltrata, il controllo SPF spesso salta perché il server che inoltra non è tra quelli autorizzati. La firma DKIM invece viaggia con il messaggio e continua a funzionare, a patto che il corpo non venga modificato.
  • Metà del lavoro di DMARC. Per superare il controllo, DMARC chiede che almeno uno fra SPF e DKIM passi e sia allineato al dominio visibile. Senza DKIM ti appoggi a un solo pilastro. Inoltre i grandi provider di posta chiedono ormai autenticazione a chi spedisce volumi, e una firma assente è uno dei primi motivi per guardare il mittente con sospetto.

Poi c'è il caso subdolo: la firma c'è, ma si rompe. Succede quando qualcosa tocca il messaggio dopo che è stato firmato: un sistema che aggiunge un piè di pagina, riscrive i link per il tracciamento, cambia l'oggetto. Il corpo non corrisponde più all'impronta e la verifica fallisce, pur con tutti i record a posto. Se hai più strumenti nella catena di invio, chiediti sempre chi firma per ultimo e chi modifica dopo.

DKIM, SPF e DMARC: come stanno insieme

Chi cerca «spf dkim dmarc» di solito vuole sapere se ne serve uno solo. Ne servono tutti e tre, ognuno con il suo compito. SPF dice quali server possono spedire per il tuo dominio, DKIM dimostra che il messaggio è autentico e integro, DMARC decide cosa fare quando i controlli non tornano e ti manda i rapporti. Per l'ordine di configurazione c'è la guida su SPF, DKIM e DMARC: cosa fanno e come verificarli; per i dettagli di ciascuno parti dal record SPF e dal record DMARC.

Noi facciamo così: prima SPF e DKIM, poi DMARC, partendo da una politica che si limita a osservare. Mettere subito una politica severa senza aver controllato che le firme passino significa bloccare le tue stesse email.

Come controllare che la firma DKIM funzioni

Non fidarti della spunta verde nel pannello. Il test vero è guardare un messaggio arrivato.

  1. Spedisci un'email di prova a una casella tua su un altro provider.
  2. Apri il messaggio e scegli «mostra originale» (o la voce equivalente).
  3. Cerca nelle intestazioni il risultato dell'autenticazione: accanto a DKIM deve esserci pass.
  4. Controlla che il dominio indicato nella firma sia quello che compare come mittente, non quello della piattaforma di invio.
  5. Ripeti per ogni casella e ogni dominio da cui spedisci.

Se vedi fail o none, leggi il motivo che accompagna l'esito: di solito dice se la chiave non è stata trovata (selettore o record sbagliato) o se la firma non corrisponde (messaggio modificato, chiave diversa). None vuol dire che il messaggio non aveva nessuna firma.

Prima di aumentare un solo invio, manda una prova da ciascun dominio che usi per le campagne, apri le intestazioni e annota quali non mostrano DKIM in pass. Sono i domini da sistemare per primi, anche prima di cominciare il warm up.

Domande frequenti

DKIM cos'è e a cosa serve in una frase?

È una firma digitale applicata a ogni email in uscita e verificabile tramite una chiave pubblica nel DNS del dominio. Serve a dimostrare che il messaggio è stato firmato da quel dominio e non è stato modificato in viaggio.

Ogni quanto va ruotata la chiave DKIM?

Non c'è una scadenza obbligatoria: conviene farlo a intervalli regolari e subito dopo ogni sospetto di accesso non autorizzato. L'importante è usare un nuovo selettore e tenere per qualche giorno il vecchio record, così i messaggi già in viaggio si verificano ancora.

Se SPF è a posto, DKIM serve lo stesso?

Sì. SPF spesso salta quando un'email viene inoltrata, mentre la firma DKIM resta valida se il corpo non cambia. Inoltre DMARC richiede che passi almeno uno dei due controlli, allineato al dominio visibile: con entrambi attivi hai un margine in più.

Continua la lettura