Configurare il record DKIM (DomainKeys Identified Mail) per una migliore capacità di recapito delle e-mail

Tutti i server mail tentano di bloccare le e-mail con mittenti falsificati. I truffatori falsificano gli indirizzi di mittenti affidabili e conosciuti dal destinatario, ad esempio per infiltrare un trojan o indurre l’utente a rivelare dati sensibili (phishing).

Un metodo per verificare l’autenticità del mittente è il DKIM, un sistema che permette di apporre una firma digitale alle e-mail. DKIM è l’acronimo di “DomainKeys Identified Mail”.

Il DKIM attualmente in uso è stato sviluppato nel 2004 come progetto congiunto di un consorzio di aziende. DKIM integra i precedenti sistemi “DomainKeys” di Yahoo e “Identified Internet Mail” di Cisco. Questo spiega l’acronimo DKIM: DK = DomainKeys, IM = Identified Internet Mail.

Il principio di funzionamento di DKIM

DKIM si basa sulla comunicazione tra il server mail mittente e il server mail di destinazione, senza che l’utente finale se ne accorga.

Semplificando al massimo, possiamo dire che il server mail mittente aggiunge all’e-mail una firma digitale che viene verificata dal server di destinazione. A questo scopo, il server di destinazione richiama presso il server mail che dichiara di essere il mittente la chiave pubblica associata alla firma.

I motivi per cui la chiave pubblica non corrisponde alla firma possono essere i seguenti:

  • L’e-mail non è stata inviata dal server mail dichiarato nell’header dell’e-mail, ma da un altro server, molto probabilmente illecito.
  • L’e-mail è stata alterata durante il percorso dal server mail “autentico” al destinatario. Ad esempio, potrebbe essere stata intercettata da un hacker, modificata e successivamente reinviata.

I componenti tecnici di DKIM

Per comprendere DKIM è utile conoscere i singoli “componenti” sui quali si basa il sistema.

Hashing

Utilizzando un determinato algoritmo, dai contenuti dell’e-mail viene calcolata una sequenza di caratteri denominata valore di hash. Questo valore viene aggiunto all’header dell’e-mail.

N.B.

L’hashing si basa sullo stesso principio della cifra di controllo di un bollettino di versamento, in cui dalle cifre del numero di riferimento viene calcolato un valore che viene aggiunto come ultima cifra al numero di riferimento.

Se il destinatario calcolasse il valore di hash dell’e-mail ricevuta utilizzando lo stesso algoritmo, dovrebbe ottenere esattamente la sequenza di caratteri aggiunta all’header dell’e-mail. Se il valore di hash non corrisponde, il destinatario deduce che l’e-mail è stata falsificata.

Crittografia asimmetrica

Per avere la certezza che il valore di hash deriva effettivamente dal mittente originario, è necessaria un’altra misura: la firma digitale.

Per l’autenticazione del mittente si utilizza la crittografia asimmetrica. Essa si basa su una coppia di chiavi: quello che è stato crittografato con la chiave A può essere decrittografato solo con la chiave B. All’interno della coppia, una chiave rimane segreta (“chiave privata”), mentre l’altra è resa pubblica (“chiave pubblica”).

Consiglio

Informazioni dettagliate sulla crittografia sono disponibili in questo articolo riassuntivo sui metodi di crittografia.

Il procedimento è il seguente:

  1. Il mittente crittografa il valore di hash calcolato con la chiave privata.
  2. Aggiunge quindi il valore di hash crittografato all’header dell’e-mail (“firma”).
  3. Il destinatario richiama sul Domain Name Server del mittente la relativa chiave pubblica e la utilizza per decrittografare la firma.
  4. Esegue quindi il calcolo di controllo del valore di hash decrittografato: se il valore di hash calcolato autonomamente corrisponde a quello decrittografato, è tutto a posto.

Record TXT sul name server

Affinché il server mail di destinazione possa richiamare la chiave pubblica del mittente, questa deve essere pubblicata come record di risorse TXT nella zona DNS del dominio.

Il record DKIM contiene gli elementi seguenti:

  • La versione, spesso codificata come v=DKIM1.
  • L’algoritmo di crittografia, che è sempre RSA (k=rsa).
  • La chiave pubblica (p=), costituita da una lunga catena di caratteri.
  • Il selettore, che è diverso da un provider all’altro. Esempio: default._domainkey oppure k1._domainkey.

Il record DKIM può essere generalmente richiamato solo mediante l’header dell’e-mail. Per poterlo richiamare è necessario non solo il nome del dominio, ma anche il selettore. Nella maggior parte dei casi, il selettore non è noto o può essere estrapolato solo con complesse ricerche.

Creare un record DKIM

Per creare un record DKIM è necessario generare una coppia di chiavi RSA e inserirla nel punto giusto sul server. La maggior parte dei provider e-mail si fa carico di questo compito.

Consiglio

Per comprendere ancora meglio il funzionamento di DKIM, potete provare a creare un record manualmente. A questo scopo, in Internet potete trovare diversi strumenti gratuiti, ad esempio DKIM Record Generator di EasyDMARC. Immettete in alto un selettore di vostra scelta (esempio: k1) e a destra un dominio a vostra scelta. Il generatore restituisce una chiave privata e una chiave pubblica. La chiave privata (“private key”) deve essere salvata sul server mail (questa azione può essere eseguita solo dal vostro provider e-mail), la chiave pubblica deve essere inserita nel record DKIM.

Verificare il record DKIM

Per verificare se è davvero possibile richiamare il record DKIM pubblicamente, potete utilizzare un DKIM checker, ad esempio DKIM Record Lookup di EasyDMARC.

Il modo più semplice consiste tuttavia nell’auto-inviarsi un’e-mail e successivamente analizzare l'header. Lì trovate il record “DKIM-Signature”:

Consiglio

Copiando l'header in un Headline Analyzer Tool è possibile ottenere informazioni chiare e dettagliate al riguardo.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.