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
- Inserite il dominio e un nome di selettore Il selettore è un nome a vostra scelta; usatene uno nuovo ogni volta che sostituite la chiave.
-
Incollate la chiave pubblica in formato PEM
È la chiave che comincia con
-----BEGIN PUBLIC KEY-----, non quella privata. - Rivedete il record generato Quando supera i 255 caratteri, l'uscita arriva divisa fra parentesi.
-
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
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.