Cos'è un record DKIM? La guida completa
Di CaptainDNS
Pubblicato il 18 febbraio 2026

- Un record DKIM è un record DNS TXT che pubblica la chiave pubblica per verificare la firma crittografica di un'email
- Il server di invio firma ogni messaggio con la propria chiave privata, il server di ricezione verifica la firma tramite il DNS
- I tag essenziali sono
v=DKIM1(versione),k=rsaok=ed25519(algoritmo) ep=(chiave pubblica codificata in Base64) - RSA 2048 bit è lo standard attuale, Ed25519 è più veloce ma non ancora supportato ovunque
- DKIM da solo non protegge dallo spoofing: va abbinato a DMARC per verificare l'allineamento del dominio
Stai configurando l'autenticazione email del tuo dominio e ti imbatti in DKIM. Sai che è importante, ma i termini "firma crittografica", "selettore" e "chiave pubblica DNS" restano poco chiari. Questa guida ti spiega tutto.
DKIM (DomainKeys Identified Mail) è un protocollo di autenticazione email definito dalla RFC 6376. Permette al server di ricezione di verificare che il contenuto di un messaggio non sia stato alterato tra l'invio e la ricezione, e che il dominio indicato nel campo From: abbia effettivamente autorizzato quell'invio.
Questa guida copre il funzionamento completo: il ciclo di firma, la struttura del record DNS, i tag disponibili, la scelta tra RSA ed Ed25519, l'integrazione con DMARC e la rotazione delle chiavi. Che tu sia un amministratore di sistema, un responsabile marketing o uno sviluppatore, avrai tutte le informazioni per configurare e mantenere DKIM correttamente.
Cos'è DKIM? Il principio in 30 secondi
DKIM si basa su un meccanismo di crittografia asimmetrica (chiave pubblica/chiave privata). Il server di invio possiede una chiave privata che utilizza per firmare ogni email in uscita. La chiave pubblica corrispondente è pubblicata nel DNS sotto forma di record TXT, accessibile a qualsiasi server di ricezione.
Quando un'email arriva, il server di ricezione:
- Legge l'header
DKIM-Signatureper identificare il dominio (d=) e il selettore (s=) - Costruisce la query DNS:
<selettore>._domainkey.<dominio> - Recupera la chiave pubblica dal record TXT
- Verifica che la firma corrisponda al contenuto del messaggio
Se la firma è valida, il messaggio è autenticato. In caso contrario, fallisce la verifica DKIM.
Come funziona DKIM: il ciclo completo
Fase 1: firma da parte del server di invio
Quando un utente invia un'email da captaindns.com, il server di invio esegue tre operazioni:
- Seleziona gli header da firmare:
From,To,Subject,Date,Message-ID(definiti dal tagh=) - Calcola un hash del corpo del messaggio (algoritmo SHA-256, memorizzato in
bh=) - Firma l'hash con la chiave privata RSA o Ed25519, poi aggiunge l'header
DKIM-Signatureal messaggio
Ecco un esempio di header DKIM-Signature:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=captaindns.com; s=google; t=1739800000;
h=from:to:subject:date:message-id;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...
Fase 2: verifica da parte del server di ricezione
Il server di ricezione estrae d=captaindns.com e s=google dall'header, poi interroga il DNS:
dig TXT google._domainkey.captaindns.com +short
Risultato:
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC..."
Utilizza poi la chiave pubblica (p=) per verificare la firma (b=). Se l'hash ricalcolato corrisponde, la verifica è riuscita.

Anatomia di un record DKIM
Il record DKIM è pubblicato come record DNS TXT all'indirizzo <selettore>._domainkey.<dominio>.
Formato DNS completo
google._domainkey.captaindns.com IN TXT "v=DKIM1; k=rsa; t=s; p=MIIBIjANBgkq..."
I tag obbligatori
| Tag | Funzione | Valori | Esempio |
|---|---|---|---|
v= | Versione del protocollo | DKIM1 (unico valore valido) | v=DKIM1 |
p= | Chiave pubblica codificata in Base64 | Stringa Base64 | p=MIIBIjANBgkq... |
Il tag p= è il cuore del record. Se è vuoto (p=), significa che la chiave è stata revocata. Il server di ricezione tratterà qualsiasi firma che utilizza quel selettore come non valida.
I tag opzionali
| Tag | Funzione | Valori possibili | Default |
|---|---|---|---|
k= | Algoritmo della chiave | rsa, ed25519 | rsa |
t= | Flag | y (test), s (strict) | nessuno |
h= | Algoritmi di hash accettati | sha256, sha1 | tutti |
s= | Tipo di servizio | email, * | * (tutti) |
n= | Note leggibili da un umano | Testo libero | nessuno |
Dettaglio dei flag t=:
t=y: modalità test. I server di ricezione non devono penalizzare un fallimento DKIM. Utile durante il deploy iniziale.t=s: modalità strict. Il dominio dell'headerFrom:deve corrispondere esattamente al dominiod=della firma (nessun sottodominio).
Esempio completo spiegato
selector1._domainkey.captaindns.com IN TXT "v=DKIM1; k=rsa; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
| Elemento | Significato |
|---|---|
selector1._domainkey.captaindns.com | Posizione DNS (selettore selector1, dominio captaindns.com) |
v=DKIM1 | Protocollo DKIM versione 1 |
k=rsa | Chiave RSA |
t=s | Modalità strict (nessun sottodominio) |
h=sha256 | Accetta solo SHA-256 |
p=MIIBIj... | Chiave pubblica RSA 2048 bit codificata in Base64 |

RSA vs Ed25519: quale chiave scegliere?
La RFC 8463 (2018) ha introdotto il supporto di Ed25519 come alternativa a RSA per DKIM.
| Criterio | RSA 2048 | RSA 4096 | Ed25519 |
|---|---|---|---|
| Dimensione chiave pubblica | ~392 caratteri | ~736 caratteri | ~44 caratteri |
| Dimensione firma | 256 byte | 512 byte | 64 byte |
| Performance di verifica | Veloce | Media | Molto veloce |
| Sicurezza | Solida (2030+) | Molto solida | Molto solida |
| Supporto provider | Universale | Universale | Parziale (Google, Fastmail) |
| Compatibilità DNS | OK | Può superare 255 byte TXT | OK |
Raccomandazioni
- RSA 2048: scelta predefinita. Supportato da tutti i provider e server. Sufficiente per la sicurezza attuale.
- RSA 4096: per le organizzazioni con requisiti di sicurezza elevati. Attenzione ai limiti di dimensione dei record TXT (può richiedere più stringhe da 255 byte).
- Ed25519: consigliato in doppia firma (Ed25519 + RSA 2048) per la transizione. I server che non supportano Ed25519 ignoreranno la firma e utilizzeranno quella RSA.
Non utilizzare più RSA 1024 bit. Google, Microsoft e Yahoo considerano le chiavi da 1024 bit come deboli dal 2024.
DKIM e DMARC: il legame essenziale
DKIM autentica il contenuto di un messaggio, ma non verifica che il dominio indicato nel From: sia legittimo. Questo è il ruolo di DMARC.
Allineamento DKIM
DMARC verifica che il dominio d= della firma DKIM corrisponda al dominio del From:. Esistono due modalità:
| Modalità | Comportamento | Esempio |
|---|---|---|
| Relaxed (default) | Il dominio d= può essere un sottodominio del From: | d=mail.captaindns.com valido per From: contact@captaindns.com |
| Strict | Il dominio d= deve corrispondere esattamente al From: | d=captaindns.com obbligatorio per From: contact@captaindns.com |
La modalità di allineamento DKIM si configura nel record DMARC tramite il tag adkim:
_dmarc.captaindns.com IN TXT "v=DMARC1; p=reject; adkim=s; rua=mailto:dmarc@captaindns.com"
Perché DKIM da solo non basta?
Senza DMARC, un attaccante può inviare un'email con From: contact@captaindns.com firmando con il proprio dominio DKIM (d=attacker.com). La firma DKIM sarà valida, ma il destinatario vedrà un falso mittente. DMARC blocca questo scenario richiedendo l'allineamento tra il dominio From: e il dominio d=.
Rotazione delle chiavi DKIM: perché e come
Perché ruotare le chiavi?
Una chiave DKIM utilizzata troppo a lungo presenta dei rischi:
- Compromissione: più una chiave è esposta, più è vulnerabile agli attacchi
- Conformità: alcuni standard (PCI DSS, SOC 2) richiedono una rotazione regolare
- Best practice: Google raccomanda una rotazione trimestrale
Frequenza consigliata
| Dimensione chiave | Frequenza minima | Raccomandazione |
|---|---|---|
| RSA 1024 | Immediato | Migrare a 2048 bit |
| RSA 2048 | Ogni 6 mesi | Ogni 3 mesi |
| RSA 4096 | Ogni 12 mesi | Ogni 6 mesi |
| Ed25519 | Ogni 12 mesi | Ogni 6 mesi |
Procedura passo per passo
- Generare una nuova coppia di chiavi con un nuovo selettore (es.:
s202602) - Pubblicare la nuova chiave pubblica nel DNS:
s202602._domainkey.captaindns.com - Attendere la propagazione DNS (24-48 ore)
- Configurare il server di invio per utilizzare il nuovo selettore
- Verificare che le email in uscita siano firmate con il nuovo selettore
- Revocare la vecchia chiave pubblicando
p=(vuoto) nel vecchio record DNS - Eliminare il vecchio record dopo 30 giorni (il tempo necessario perché le email in transito vengano elaborate)
Errori comuni nei record DKIM
| Errore | Sintomo | Soluzione |
|---|---|---|
| Chiave 1024 bit | Warning da Google/Yahoo | Migrare a RSA 2048 bit |
Tag p= vuoto | DKIM fail: key revoked | Ripubblicare la chiave pubblica o usare un nuovo selettore |
| Selettore non trovato | DKIM fail: no key for signature | Verificare il DNS, la propagazione e l'ortografia del selettore |
| Chiave pubblica troncata | DKIM fail: bad RSA signature | Verificare che il record TXT non sia troncato (limite 255 byte per stringa) |
v=DKIM1 assente | Alcuni server ignorano il record | Includere sempre v=DKIM1 come primo tag |
Header From non firmato | DMARC fallisce nonostante DKIM valido | Aggiungere from nel tag h= della firma |
| Modalità test dimenticata | t=y resta attivo in produzione | Rimuovere t=y una volta che DKIM è stato validato |
Piano d'azione consigliato
- Verificare la situazione attuale: usa un DKIM Checker per analizzare i tuoi record DKIM attuali
- Inventariare i selettori: identifica tutti i selettori attivi sul tuo dominio con uno strumento di scoperta automatica
- Verificare la dimensione delle chiavi: qualsiasi chiave inferiore a 2048 bit deve essere sostituita
- Configurare DMARC: pubblica un record DMARC con
adkim=r(relaxed) per iniziare, poi passa a strict (adkim=s) quando tutto è stabile - Pianificare la rotazione: segna nel calendario una rotazione trimestrale delle chiavi DKIM
FAQ
Cos'è un record DKIM?
Un record DKIM è un record DNS di tipo TXT pubblicato all'indirizzo selettore._domainkey.dominio.com. Contiene la chiave pubblica che permette ai server di ricezione di verificare la firma crittografica aggiunta a ogni email in uscita. I tag essenziali sono v=DKIM1 (versione), k= (algoritmo) e p= (chiave pubblica in Base64).
Come funziona la firma DKIM?
Il server di invio calcola un hash SHA-256 degli header selezionati e del corpo del messaggio, poi firma questo hash con la propria chiave privata. La firma viene aggiunta nell'header DKIM-Signature. Il server di ricezione recupera la chiave pubblica tramite il DNS e verifica che la firma corrisponda al contenuto ricevuto.
Quali sono i tag di un record DKIM?
I tag obbligatori sono v=DKIM1 (versione) e p= (chiave pubblica). I tag opzionali includono k= (algoritmo, rsa di default), t= (flag: y per test, s per strict), h= (algoritmi di hash accettati), s= (tipo di servizio) e n= (note).
Qual è la differenza tra RSA ed Ed25519 per DKIM?
RSA 2048 è lo standard attuale, supportato da tutti i provider. Ed25519 produce firme più corte (64 byte vs 256) ed è più veloce, ma è supportato solo da alcuni provider (Google, Fastmail). L'approccio migliore è la doppia firma: Ed25519 + RSA 2048.
Come verificare un record DKIM?
Usa il comando dig TXT selettore._domainkey.dominio.com +short per interrogare il DNS. Se viene restituito un record TXT contenente v=DKIM1 e p=, la chiave pubblica è pubblicata. Per un'analisi completa (dimensione della chiave, sintassi, validità), usa uno strumento di verifica DKIM online.
Perché la rotazione delle chiavi DKIM è importante?
Una chiave utilizzata troppo a lungo aumenta il rischio di compromissione. Google raccomanda una rotazione trimestrale. La procedura consiste nel creare un nuovo selettore con una nuova coppia di chiavi, pubblicare la nuova chiave nel DNS, aggiornare il server di invio, poi revocare la vecchia chiave svuotando il tag p=.
Qual è il legame tra DKIM e DMARC?
DKIM autentica il contenuto di un messaggio, DMARC verifica che il dominio della firma DKIM (d=) corrisponda al dominio del From:. Senza DMARC, un attaccante può firmare un'email con il proprio dominio pur falsificando il From:. DMARC blocca questo scenario tramite la verifica di allineamento.
Glossario
- DKIM (DomainKeys Identified Mail): protocollo di autenticazione email che utilizza la crittografia asimmetrica per firmare i messaggi in uscita e permettere ai destinatari di verificarne l'integrità.
- Selettore DKIM: identificativo testuale (es.:
google,selector1) che, combinato con il dominio, forma l'indirizzo DNS della chiave pubblica (selettore._domainkey.dominio). - Chiave pubblica: parte della coppia crittografica pubblicata nel DNS, utilizzata dai server di ricezione per verificare le firme DKIM.
- Allineamento DKIM: verifica da parte di DMARC che il dominio
d=della firma DKIM corrisponda al dominio delFrom:dell'email. - Ed25519: algoritmo di firma digitale introdotto dalla RFC 8463 come alternativa a RSA per DKIM, che offre firme più corte e una verifica più rapida.
- Rotazione delle chiavi: processo di sostituzione regolare delle coppie di chiavi DKIM per limitare i rischi di compromissione.
Genera le tue chiavi DKIM in pochi secondi: usa il Generatore DKIM per creare una coppia di chiavi RSA 2048 o Ed25519 con il record DNS pronto da pubblicare.
Guide DKIM correlate
- Come trovare il selettore DKIM: 4 metodi: estrarre il selettore dagli header, dalla console admin, dal DNS o con uno strumento automatico
- DKIM fail: tutte le cause e come correggerle (in arrivo)


