Devi controllare una chiave DKIM, ruotarla o capire perché le firme falliscono, e la prima cosa che ogni strumento ti chiede è il selettore, un nome breve che nessuno ha annotato. Il selettore decide quale record DNS contiene la chiave pubblica, quindi senza di esso non puoi cercare il record. Questa guida mostra come leggere il selettore da un messaggio reale, cosa provare quando non hai un messaggio, quanto dovrebbe essere lunga la tua chiave e come ruotare una chiave senza interruzioni nella firma.
La risposta breve#
Il selettore è il valore del tag s= nell'intestazione DKIM-Signature di qualsiasi messaggio inviato dal tuo dominio. Apri le intestazioni complete di un messaggio, trova DKIM-Signature: e leggi s= per il selettore e d= per il dominio firmatario. La chiave pubblica si trova poi in un record TXT su selector._domainkey.d, per esempio mail._domainkey.example.com. Se non hai un messaggio sottomano, chiedi al tuo provider di invio il record DNS che ti ha detto di pubblicare, perché il selettore è la prima parte del suo nome. La tua chiave dovrebbe essere RSA a 2048 bit: l'RFC 8301 richiede almeno 1024 e dice che i firmatari dovrebbero usarne almeno 2048. L'analizzatore di intestazioni email mostra se DKIM è passato e se è presente una firma, ma s= e d= li leggi tu dalla riga DKIM-Signature. Poi conferma il lato DNS con il verificatore SPF, DKIM e DMARC.
Leggere il selettore dall'intestazione di un messaggio#
Invia a te stesso un'email da ciascun sistema che invia a nome del tuo dominio, come il provider di posta, la piattaforma di marketing, il servizio transazionale e l'helpdesk. Apri il sorgente originale o le intestazioni della copia ricevuta. In Gmail usa il menu del messaggio e scegli "Mostra originale". Trova la riga che inizia con DKIM-Signature:.
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.com; s=mail2026; t=1730700000;
h=from:to:subject:date; bh=...; b=...
Qui d=example.com è il dominio che ha firmato e s=mail2026 è il selettore. La chiave si trova quindi in:
mail2026._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqh..."
Interrogalo direttamente per confermare:
dig +short TXT mail2026._domainkey.example.com
Due cose a cui fare attenzione. Un messaggio può avere più di una DKIM-Signature, per esempio una del tuo dominio e una del dominio del servizio di invio. Guarda ogni valore d=. E controlla se d= è davvero il tuo dominio. Molte piattaforme firmano di default con il proprio dominio, il che supera DKIM ma non si allinea con il tuo indirizzo From per DMARC. Se d= non sei tu, il mittente non è ancora configurato per il tuo dominio, e i fallimenti di allineamento che ne derivano si scambiano facilmente per un problema di DNS.
Cosa fare quando non hai un messaggio#
A volte non c'è nulla da aprire: hai ereditato un dominio, il mittente è inattivo o vuoi fare un audit prima di inviare. Hai tre opzioni.
- Controlla la pagina di configurazione del provider. Quando hai autenticato un dominio con un mittente, ti ha detto di pubblicare un record CNAME o TXT. Il suo nome inizia con il selettore, per esempio
selector._domainkey. Quel record, ancora presente nella tua zona DNS, è la risposta. - Leggi la tua zona DNS. Cerca i nomi che terminano con
._domainkey. L'etichetta che li precede è un selettore. L'elenco dei record del tuo host DNS, o un'esportazione della zona, li mostra tutti, ed è l'unico posto in cui puoi enumerare ciò che esiste. - Prova con i nomi più comuni. I provider usano valori predefiniti prevedibili e uno strumento può provarli per te. Il monitoraggio check-up del dominio di Qualisend prova 25 nomi comuni quando non hai configurato alcun selettore:
google,selector1,selector2,k1,k2,s1,s2,dkim,default,mail,smtp,mandrill,sendgrid,krs,protonmail,zendesk1,zendesk2,mxvault,everlytickey1,hs1,hs2,pm,fm1,fm2efm3. Un riscontro ti dice che esiste una chiave. Un mancato riscontro non ti dice nulla, perché i selettori personalizzati comemail2026sono invisibili a questo tipo di tentativi.
Provare a indovinare è un ripiego. Tutto ciò su cui fai affidamento va annotato insieme al suo selettore, ed è per questo che il primo passo di una routine di salute del dominio è elencare ogni mittente e il suo selettore.
Anatomia di un record di chiave DKIM#
Il record nel DNS è un elenco di tag ed è utile sapere a cosa serve ciascuno.
| Tag | Significato | Cosa cercare |
|---|---|---|
v=DKIM1 | Versione | Facoltativo, ma se presente deve essere DKIM1 |
k= | Tipo di chiave | Il valore predefinito è rsa; si vede anche ed25519 |
p= | Chiave pubblica, in base64 | Deve contenere dati. Un p= vuoto significa che la chiave è revocata |
t=y | Flag di test | Segna il dominio come in fase di test DKIM; rimuovilo quando vai in produzione |
Molti provider pubblicano un CNAME sul nome del selettore che punta a una chiave da loro ospitata, quindi il record che vedi può essere un alias. È normale: permette al provider di ruotare le chiavi per te. Significa anche che se il provider rimuove la destinazione, il tuo selettore smette di risolversi senza avvisare.
Lunghezza della chiave: 1024 o 2048#
L'RFC 8301 stabilisce le regole. I firmatari devono usare chiavi RSA di almeno 1024 bit e dovrebbero usarne almeno 2048. I verificatori non devono considerare valide le chiavi sotto i 1024. Le linee guida di Google per i mittenti concordano: 1024 è il minimo e 2048 è raccomandato. Quindi una chiave da 1024 bit funziona ancora, ed è proprio per questo che spesso sopravvive per anni: è la prima cosa da aggiornare.
C'è una complicazione pratica. Una chiave pubblica da 2048 bit è più lunga dei 255 caratteri che una singola stringa DNS può contenere. Il record deve essere pubblicato come più stringhe tra virgolette all'interno di un unico record TXT, che il DNS riunisce.
mail2026._domainkey.example.com. TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
"...rest-of-the-key..." )
La maggior parte degli host DNS lo fa in automatico quando incolli il valore completo, ma non tutti, e i guasti sono silenziosi: una chiave troncata o con caratteri estranei non supera la verifica anche se il record esiste. Dopo la pubblicazione, interrogalo e confronta la lunghezza. Le guide per i provider DNS mostrano come i singoli host gestiscono i valori lunghi.
Se è un servizio a generare la tua chiave, di solito scegli la lunghezza nelle sue impostazioni quando la crei, e cambiarla significa generare una nuova chiave e un nuovo selettore, cioè una rotazione.
Ruotare una chiave senza interruzioni#
La rotazione consiste nel sostituire una chiave con una nuova su un nuovo selettore. Non c'è alcuna regola su quanto spesso farlo. Il consiglio che sosteniamo è di ruotare quando una chiave è sotto i 2048 bit, quando se ne va qualcuno con accesso alla chiave privata, dopo qualsiasi sospetta esposizione e, per il resto, con una cadenza che il tuo team rispetterà davvero, per esempio una o due volte l'anno. La procedura conta più della cadenza.
- Genera la nuova chiave presso il tuo provider, o sul tuo server di posta, con un nuovo nome di selettore, come
mail2027. Non riutilizzare mai il vecchio nome. - Pubblica il nuovo record nel DNS e aspetta che i resolver pubblici lo restituiscano. Verifica con
digprima di fare altro. - Passa alla firma con il nuovo selettore nel sistema di invio. Da quel momento i messaggi riportano
s=mail2027. - Lascia il vecchio record al suo posto per un po'. I messaggi firmati con la vecchia chiave possono essere ancora in transito o in coda, e i riceventi verificano quando ricevono, non quando hai inviato. Una settimana è un'attesa comune e prudente.
- Ritira la vecchia chiave eliminando il record, oppure pubblicalo con un
p=vuoto per mostrare che è stato revocato di proposito. - Conferma inviando un messaggio di prova e controllando che
s=mostri il nuovo selettore e che DKIM passi.
L'errore più comune è eseguire il passo 5 prima del passo 3, o saltare del tutto il passo 2, il che significa posta firmata con un selettore che non ha alcuna chiave.
Tenere d'occhio un selettore nel tempo#
Un record DKIM è facile da rompere e nessuno se ne accorge. Una vecchia chiave rimossa troppo presto, un CNAME la cui destinazione è sparita, una chiave revocata da una pulizia troppo zelante: ognuno lascia la posta firmata con un selettore che non si risolve più. Il monitoraggio check-up del dominio ti permette di elencare fino a 10 selettori DKIM per un dominio e li controlla ogni giorno. Per ciascuno conferma che una chiave sia presente, legge la dimensione della chiave RSA e segnala una chiave mancante o revocata come problema "bad", una chiave da 1024 bit come avvertimento, qualunque chiave più corta come "bad" e il flag di test t=y come avvertimento. Se non ne configuri nessuno, ripiega sui 25 nomi comuni indicati sopra e ti avvisa quando nessuno restituisce una chiave.
Ricorda la conseguenza per la rotazione. Quando ritiri un vecchio selettore, rimuovilo anche dall'elenco monitorato, altrimenti segnalerà una chiave mancante. E un limite: legge il DNS, quindi non può vedere con quale selettore la tua posta firma davvero, e non avvisa sull'età della chiave. Il quadro più ampio, compresi SPF e DMARC, è in monitoraggio della salute del dominio email, e il lato SPF degli stessi controlli è in SPF: troppe query DNS. Configurare DMARC spiega come l'allineamento usa il dominio d=.
Domande frequenti
01Come trovo il mio selettore DKIM?
Apri le intestazioni complete di un messaggio inviato dal tuo dominio e leggi il tag s= nell'intestazione DKIM-Signature. La chiave è pubblicata su selector._domainkey.yourdomain.com. Se non hai un messaggio, controlla il record DNS che il tuo mittente ti ha detto di pubblicare.
02Che lunghezza di chiave DKIM dovrei usare?
Usa RSA a 2048 bit. L'RFC 8301 richiede ai firmatari almeno 1024 bit e dice che dovrebbero usarne almeno 2048, e Google raccomanda 2048. Una chiave da 1024 bit funziona ancora ma è la prima da aggiornare.
03Ogni quanto dovrei ruotare le chiavi DKIM?
Non c'è un intervallo obbligatorio. Ruota quando una chiave è più corta di 2048 bit, quando se ne va qualcuno con accesso, dopo una sospetta esposizione e, per il resto, con una cadenza che rispetterai, come una o due volte l'anno. Sovrapponi la chiave vecchia e quella nuova.
04Posso elencare tutti i selettori DKIM di un dominio?
No. Il DNS non permette di elencare i nomi sotto _domainkey. Puoi leggere i selettori dalle intestazioni dei messaggi, dalle pagine di configurazione dei mittenti o dalla tua zona DNS, e un verificatore può solo provare i nomi comuni, quindi i selettori personalizzati non verranno trovati.
DKIM dimostra che un messaggio proviene davvero dal tuo dominio, non che l'indirizzo dall'altra parte sia reale. Il verificatore email gratuito testa un indirizzo alla volta per sintassi, record MX ed errori di battitura. Per ripulire un'intera lista, il piano gratuito nella pagina dei prezzi include 100 crediti che eseguono la verifica completa, perché un messaggio firmato correttamente ha comunque bisogno di una lista in salute per guadagnarsi la inbox.



