Generatore del record DNS per DKIM

Basta inserire il nome del selettore e la chiave pubblica in formato PEM per generare automaticamente il record TXT necessario alla firma DKIM. Le chiavi pubbliche che superano i 255 caratteri vengono suddivise automaticamente secondo il formato dei file di zona BIND.

Comporre il record DNS per DKIM

Inserite un nome di selettore e una chiave pubblica in formato PEM e questo strumento compone il record TXT del DNS con cui si verificano le firme DKIM, nella forma v=DKIM1; k=rsa; p=.... Il suo posto è in selettore._domainkey.vostrodominio.

Ciò contro cui tutti urtano qui è il limite di 255 caratteri per stringa in un record TXT del DNS. Una chiave pubblica RSA a 2048 bit raggiunge circa 390 caratteri in Base64, sicché così com'è non entra in una sola stringa. In un file di zona la si scrive fra parentesi come più stringhe, e il lato ricevente le ricongiunge in un solo valore. Questo strumento compie quella divisione per voi. L'altra cosa che non si deve mai sbagliare è che ciò che va nel DNS è la chiave pubblica. Quella privata appartiene al solo server che firma e non deve mai lasciarlo.

Come si usa

  1. Inserite il dominio e un nome di selettore Il selettore è un nome a vostra scelta; usatene uno nuovo ogni volta che sostituite la chiave.
  2. Incollate la chiave pubblica in formato PEM È la chiave che comincia con -----BEGIN PUBLIC KEY-----, non quella privata.
  3. Rivedete il record generato Quando supera i 255 caratteri, l'uscita arriva divisa fra parentesi.
  4. Registratelo nel DNS Ponetelo come record TXT in selettore._domainkey.vostrodominio.

Consigli per sfruttarlo al meglio

  • Potete incollare direttamente il contenuto del file PEM generato con opendkim-genkey oppure con OpenSSL: le interruzioni di riga e le righe di intestazione vengono rimosse automaticamente.
  • Attivando la modalità di prova, i server riceventi che non riescono a verificare la firma possono trattarla con più indulgenza invece di respingerla: è prudente usarla nel periodo di verifica che precede il passaggio in produzione.
  • Dopo aver inserito il record nel DNS, conviene verificarne l'effettiva pubblicazione con il nostro strumento di diagnosi della recapitabilità della posta, che controlla SPF, DKIM e DMARC.
  • Le lunghezze di chiave più comuni sono 1024 e 2048 bit; con 2048 bit la stringa della chiave pubblica supera di norma i 255 caratteri e viene suddivisa in più stringhe. La suddivisione non è un errore.
  • Il nome del selettore è libero, ma se usate più servizi di invio per lo stesso dominio conviene includervi il nome del servizio, così da gestirli più facilmente.

Quando torna utile

Nell'adottare DKIM per la prima volta

Create le chiavi, vi mostra come scriverle nel DNS.

Nel ricambiare una chiave

Aggiungete un record sotto un nuovo selettore e togliete il vecchio dopo la commutazione.

Nell'accertare come si scriva la divisione

Come spezzare una chiave lunga è proprio ciò che si sbaglia facendolo a mano.

Nel verificare quanto vi ha indicato un servizio d'invio

Potete accertare che un record consegnato da un servizio esterno abbia la forma giusta.

Termini di DKIM

Selettore
Il nome che identifica una chiave. Apre selettore._domainkey.example.com, e ogni chiave ha il proprio.
Chiave pubblica
Quella che va nel DNS. Il lato ricevente vi verifica le firme.
Chiave privata
La chiave con cui si creano le firme. Appartiene al solo server mittente e non va mai pubblicata.
Il limite di 255 caratteri
Il tetto di una sola stringa entro un record TXT. Quanto eccede si scrive come più stringhe.
V=DKIM1
L'etichetta che dichiara la versione del record. Viene per prima.
K=rsa
Il tipo di chiave. Oltre a RSA esiste Ed25519, le cui chiavi sono assai più corte.

Domande frequenti

È l'identificativo che permette di usare più chiavi DKIM per lo stesso dominio. Nel DNS il record si pubblica con un nome nella forma «selettore._domainkey.dominio» e la firma viene verificata con la chiave pubblica del selettore indicato nell'apposito campo dell'intestazione della firma DKIM del messaggio.

Poiché nei record TXT ogni singola stringa non può superare i 255 byte, l'eccedenza va suddivisa in più stringhe fra virgolette, concatenate senza spazi in un unico record. Il formato BIND generato da questo strumento tiene già conto della suddivisione.

No. Lo strumento si limita a comporre il record da pubblicare nel DNS e non genera chiavi private. La chiave privata va generata e conservata in sicurezza nel vostro ambiente, con strumenti affidabili come opendkim-genkey o OpenSSL.

Nel periodo immediatamente successivo all'introduzione di DKIM, per verificare che firma e verifica funzionino correttamente nell'ambiente di invio reale. Poiché alcuni riceventi trattano con più indulgenza gli insuccessi di verifica dei domini che la dichiarano, funge da valvola di sicurezza prima del passaggio in produzione.

Allo stato attuale lo standard pratico è RSA, supportato da una gamma molto ampia di server. Ed25519, definito dalla RFC 8463, ha chiavi più corte e firme più rapide, ma non tutti i server di posta lo gestiscono: valutatelo solo se potete verificarne il funzionamento su entrambi i lati.
Tool-kun

A proposito — come la crittografia a chiave pubblica impedisce la contraffazione dei messaggi

DKIM è stato standardizzato nel 2004 unendo due tecnologie sviluppate separatamente da Yahoo! e da Cisco. Il cuore del meccanismo è la crittografia a chiave pubblica: chi invia calcola un'impronta a partire dalle intestazioni e da parte del corpo del messaggio, la cifra con la chiave privata e la allega in un'apposita intestazione di firma. Chi riceve verifica quella firma con la chiave pubblica pubblicata nel DNS e, se la coppia di chiavi corrisponde, ha la conferma matematica che il contenuto non è stato alterato dopo l'invio.

Mentre SPF verifica la legittimità a livello di rete, cioè l'indirizzo IP del mittente, DKIM appone una firma elettronica sul contenuto stesso del messaggio: è una differenza sostanziale. Anche quando un messaggio viene inoltrato più volte attraverso server intermedi — situazione in cui SPF è notoriamente debole — la firma DKIM resta valida finché il corpo non cambia. Per questo, in un semplice inoltro DKIM tende a conservare l'autenticazione meglio di SPF. Le liste di distribuzione sono però un caso diverso: spesso aggiungono un'etichetta all'oggetto o un piè di pagina, modificando intestazioni o corpo, e così anche la firma DKIM si rompe (RFC 6377). Per permettere ai risultati di autenticazione originali di attraversare questi intermediari è stato ideato ARC (RFC 8617).

Anche il meccanismo dei selettori è importante nella pratica. Quando un dominio usa più servizi di invio — server proprio, servizi di posta in cloud, piattaforme di invio massivo — assegnando a ciascuno una coppia di chiavi e un selettore distinto si possono revocare e rinnovare le chiavi in modo indipendente. Il fatto che la compromissione di una chiave non tocchi gli altri selettori è una delle ragioni per cui DKIM, pur essendo un meccanismo semplice fondato su un solo record DNS, è tuttora usato nelle grandi infrastrutture di posta.