Cos'è DKIM?
DKIM (DomainKeys Identified Mail) è un meccanismo di autenticazione email definito nella RFC 6376. Permette di firmare crittograficamente le email in uscita per provare la loro origine e integrità.
Perché configurare DKIM:
- Autenticare le tue email — Dimostra che l'email proviene realmente dal tuo dominio
- Proteggere contro la falsificazione — La firma rileva qualsiasi modifica del contenuto
- Migliorare la deliverability — Le email firmate DKIM sono meglio accettate da Gmail, Outlook, Yahoo
- Prerequisito per DMARC — DKIM è uno dei due pilastri dell'autenticazione DMARC (insieme a SPF)
Come funziona DKIM?
DKIM utilizza la crittografia asimmetrica (chiave pubblica/privata):
- Firma all'invio: Il tuo server mail calcola un hash del messaggio e lo firma con la chiave privata
- Pubblicazione DNS: La chiave pubblica viene pubblicata in un record TXT su
selector._domainkey.domain.com - Verifica alla ricezione: Il server destinatario recupera la chiave pubblica tramite DNS e verifica la firma
Invio: Messaggio → Hash → Firma (chiave privata) → Header DKIM-Signature
Ricezione: Header → Chiave pubblica (DNS) → Verifica firma → Pass/Fail
Sintassi di un record DKIM
Un record DKIM è un record DNS TXT pubblicato su <selector>._domainkey.<domain>:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
Tag DKIM
| Tag | Descrizione | Obbligatorio | Valori |
|---|---|---|---|
v | Versione | Consigliato | DKIM1 |
k | Tipo di chiave | No (default: rsa) | rsa, ed25519 |
p | Chiave pubblica | Sì | Base64 DER |
h | Algoritmi di hash | No | sha256, sha1 |
t | Flag | No | y (test), s (strict) |
s | Tipi di servizio | No | email, * |
n | Note | No | Testo libero |
Esempi di record
RSA 2048 bit (consigliato):
default._domainkey.captaindns.com TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."
Ed25519:
default._domainkey.captaindns.com TXT "v=DKIM1; k=ed25519; p=MCowBQYDK2Vw..."
RSA vs Ed25519: quale algoritmo scegliere?
| Criterio | RSA 2048 | RSA 4096 | Ed25519 |
|---|---|---|---|
| Sicurezza | Buona | Eccellente | Eccellente |
| Supporto | Universale | Universale | Parziale (~80%) |
| Lunghezza record | ~400 char | ~800 char | ~90 char |
| Prestazioni | Buone | Lente | Molto veloci |
| Raccomandazione | Produzione | Sensibile | Avanzato |
Raccomandazioni
- RSA 2048 bit: Standard attuale, compatibilità massima. Scegli questa opzione di default.
- RSA 4096 bit: Per ambienti molto sensibili. Attenzione alle limitazioni DNS.
- Ed25519: Per configurazioni avanzate. Valuta un doppio selettore (RSA + Ed25519).
- RSA 1024 bit: Deprecato dal 2020. Da evitare.
Lunghezza delle chiavi e limiti DNS
Il limite di 255 caratteri
I record DNS TXT sono limitati a 255 caratteri per stringa. Ecco l'impatto per algoritmo:
| Algoritmo | Lunghezza record | Compatibile DNS |
|---|---|---|
| Ed25519 | ~90 char | ✅ Sempre |
| RSA 1024 | ~230 char | ✅ Sempre |
| RSA 2048 | ~400 char | ⚠️ Suddivisione auto |
| RSA 4096 | ~800 char | ⚠️ Verifica provider |
Come i provider gestiscono i record lunghi
La maggior parte dei provider DNS (Cloudflare, AWS Route 53, Google Cloud DNS) suddivide automaticamente i record lunghi in più stringhe. Il protocollo DNS le concatena alla lettura.
Se il tuo provider non supporta i record lunghi, preferisci RSA 2048 bit o Ed25519.
Casi d'uso concreti
Nuovo dominio: prima configurazione DKIM
Contesto: Stai configurando un nuovo server mail (Postfix, ecc.)
Soluzione:
- Genera una chiave RSA 2048 bit con il selettore
default - Scarica la chiave privata e configura OpenDKIM
- Pubblica il record TXT nella tua zona DNS
- Verifica con il DKIM Checker
Rotazione della chiave DKIM
Contesto: La tua chiave DKIM ha più di 12 mesi o è stata compromessa
Soluzione:
- Genera una nuova chiave con un nuovo selettore (es: s2, 202602)
- Configura la nuova chiave nel tuo server mail
- Pubblica il nuovo record DNS
- Attendi 24-48h di propagazione DNS
- Elimina il vecchio record
Doppio selettore: RSA + Ed25519
Contesto: Vuoi sfruttare Ed25519 mantenendo la compatibilità RSA
Soluzione:
- Genera una chiave RSA 2048 con il selettore
rsa - Genera una chiave Ed25519 con il selettore
ed - Configura il tuo server per firmare con entrambe le chiavi
- I server moderni verificheranno Ed25519, quelli vecchi useranno RSA
Flag DKIM: modalità test e strict
Flag t=y (modalità test)
Attiva la modalità test DKIM. I fallimenti della verifica vengono trattati come neutri (né pass né fail).
Uso: Testa la tua configurazione senza rischiare rifiuti. Rimuovi il flag una volta validato.
Flag t=s (modalità strict)
Richiede un allineamento rigoroso tra il dominio della firma DKIM e il dominio From. Di default, l'allineamento relaxed autorizza i sottodomini.
Uso: Rafforza la sicurezza in produzione. Assicurati che tutte le tue email siano firmate dal dominio esatto.
FAQ - Domande frequenti
D: Come generare una chiave DKIM per il mio dominio?
R: Usa il nostro generatore: inserisci il tuo dominio e un selettore, scegli RSA 2048 bit, clicca su Genera. Scarica la chiave privata e pubblica il record TXT nel tuo DNS.
D: Qual è la differenza tra RSA ed Ed25519?
R: RSA è supportato da tutti i server. Ed25519 è più moderno con chiavi più corte, ma il supporto non è universale (~80%). Consiglio: RSA 2048 bit per la produzione.
D: Quale lunghezza di chiave RSA scegliere?
R: RSA 2048 bit è lo standard. RSA 1024 è deprecato. RSA 4096 offre più sicurezza ma genera record molto lunghi.
D: Cos'è un selettore DKIM?
R: Un identificatore che permette di avere più chiavi DKIM. Esempi: default, google, s1. Il record viene pubblicato su selector._domainkey.dominio.com.
D: La chiave privata viene memorizzata?
R: No. Generata una sola volta, trasmessa, poi eliminata. Scaricala immediatamente.
D: Perché il mio record supera i 255 caratteri?
R: RSA 4096 genera record di oltre 800 caratteri. La maggior parte dei provider li suddivide automaticamente. Altrimenti, preferisci RSA 2048 o Ed25519.
D: Come configurare DKIM con Google Workspace?
R: Google genera le proprie chiavi. Admin Console > Gmail > Authenticate email > Generate new record. Il nostro strumento è per server personalizzati.
Strumenti complementari
| Strumento | Utilità |
|---|---|
| DKIM Record Check | Verifica che il tuo DKIM sia pubblicato e valido |
| DKIM Syntax Check | Valida la sintassi di un record DKIM |
| SPF Generator | Crea il tuo record SPF |
| DMARC Generator | Configura DMARC per completare l'autenticazione |
| Mail Tester | Testa la deliverability delle tue email |
Risorse utili
- RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures — Specifica ufficiale DKIM
- RFC 8463 - A New Cryptographic Signature Method for DKIM (Ed25519) — Supporto Ed25519 per DKIM
- RFC 8301 - Cryptographic Algorithm and Key Usage Update to DKIM — Raccomandazioni di sicurezza attuali
- OpenDKIM - Configuration Guide — Documentazione per Postfix/OpenDKIM
- Google Workspace - Set up DKIM — Guida ufficiale Google
- Microsoft 365 - Use DKIM — Guida ufficiale Microsoft