Definizione

Il DKIM (DomainKeys Identified Mail) è un protocollo grazie al quale un'organizzazione è in grado di garantire che un’email proviene realmente dai propri domini, grazie a una firma che permette ai provider di posta elettronica di verificarne l'autenticità tramite l'autenticazione crittografica.

Implementare tecnologie di autenticazione delle email come il DKIM costituisce uno dei migliori metodi per proteggere i tuoi clienti e dipendenti dagli attacchi via email. Di recente, abbiamo pubblicato un articolo che analizza che cos'è l'SPF (Sender Policy Framework) e perché è così importante. Ora analizziamo invece un altro protocollo di autenticazione email, il DKIM (DomainKeys Identified Mail).

Come funziona il DKIM?

Il processo di firma DKIM prevede tre passaggi principali. Per prima cosa, il mittente definisce quali campi desidera includere nella propria firma del record DKIM. I campi possono essere ad esempio l'indirizzo del mittente “da”, il corpo della mail, l'oggetto e molti altri. Essi devono rimanere invariati durante la trasmissione, altrimenti l'autenticazione DKIM non andrà a buon fine.

Successivamente, la piattaforma di posta elettronica del mittente genera un hash dei campi di testo inclusi nella firma DKIM. I seguenti campi di testo ad esempio:

From: Mario Rossi <mario.rossi@proofpoint.com>

Subject: Aggiornamenti

saranno associati alla stringa:

3303baf8986f910720abcfa607d81f53

Una volta generata la stringa hash, essa viene crittografata utilizzando una chiave privata accessibile soltanto al mittente.

Infine, una volta che l'email viene inviata, sarà compito del gateway email o del provider di posta del destinatario convalidare la firma DKIM individuando la chiave pubblica che corrisponde esattamente alla chiave privata. La firma DKIM viene in questo modo decifrata nella sua stringa hash originale.

Dopo di che, il destinatario genera il proprio hash dei campi inclusi nella firma DKIM e lo confronta con la stringa hash appena decifrata. Se corrispondono significa due cose: primo, che i campi della firma DKIM non hanno subito modifiche durante la trasmissione e secondo, che l'email proviene veramente dal mittente in questione.

Cos'è la firma DKIM?

La firma DKIM è l'elemento principale della convalida. La firma è un hash creato da vari elementi all'interno del messaggio. Il mittente può utilizzare il dominio, il corpo del messaggio, e altre parti della mail per creare una firma. Gli elementi da utilizzare vengono decisi in fase di invio del messaggio, e non possono essere modificati dopo l'invio.

Per generare la firma, il mittente utilizza la chiave privata del dominio per crittografare il messaggio e creare un hash. Il server di posta del destinatario crittografa gli stessi elementi del messaggio, utilizzando la chiave pubblica del mittente. Con la stringa di hash così generata, il destinatario la confronta con l'hash del mittente decrittografato. Se le stringhe corrispondono, la convalida DKIM viene superata con successo. Qualsiasi modifica, anche ad uno solo dei caratteri presenti nel messaggio, causerà una mancata corrispondenza tra l'hash inviata dal server di posta del mittente e quella generata crittografando il messaggio con la chiave pubblica.

Se la convalida della firma DKIM non dovesse andare a buon fine, significa che un soggetto esterno potrebbe aver manipolato il messaggio. Il processo di firma e crittografia DKIM garantisce quindi l'integrità del messaggio consentendo ai destinatari di difendersi da attacchi di phishing e malware sferrati tramite la manipolazione dei messaggi email intercettati.

Cos'è il DKIM selector?

La voce DKIM è memorizzata sul server DNS del dominio, ma il server di posta elettronica del destinatario deve essere in grado di individuarla tra le altre voci TXT. Il selettore DKIM, in Inglese DKIM selector, indica al server di posta elettronica del destinatario dove si trova la chiave pubblica del dominio. La chiave pubblica viene utilizzata per generare l'hash e confrontarlo con l'hash generato con la chiave privata, quindi è un elemento necessario per la convalida DKIM.

Ogni messaggio email inviato con i parametri di configurazione DKIM include un header DKIM completo di selettore e altre informazioni. Ecco un esempio di firma DKIM:

DKIM-Signature: v=1; a=rsa; c=relaxed/relaxed; d=miodominio.com; s=s837fhs;

Il valore specificato dal parametro “s” rappresenta il selettore DKIM. Esso viene generato nel momento in cui viene creata la coppia di chiavi privata/pubblica. Dopo aver configurato il DKIM sul proprio server di posta, è possibile conoscere il DKIM selector semplicemente auto inviandosi una mail. Analizzando l'header del messaggio, sulla sezione DKIM-Signature basterà individuare il parametro “s” con il valore del selettore DKIM.

DKIM e SPF

Il DKIM e l'SPF lavorano in sinergia, con l'obiettivo comune di proteggere la posta elettronica, impedire l'intercettazione dei messaggi durante la trasmissione ed evitare la manipolazione dei dati. Fanno entrambi parte del sistema DMARC (DMARC (Domain-based Message Authentication Reporting and Conformance), ma hanno funzioni differenti. Mentre il DKIM ha il compito di verificare che nessun soggetto esterno abbia manipolato le informazioni contenute in un messaggio e-mail, l'SPF, serve a bloccare i messaggi che presentano il dominio del mittente falsificato.

Così come il proprietario di un dominio registra un record TXT sui propri server DNS contenente le informazioni del DKIM, allo stesso modo potrà creare un record TXT per l'SPF, sul quale saranno elencati tutti i server autorizzati all'invio di messaggi di posta elettronica per conto del proprio dominio. Se un soggetto esterno dovesse falsificare gli header delle email, il record SPF permetterebbe al server di posta elettronica del destinatario di riconoscere immediatamente tali messaggi come non autentici, impedendo che vengano recapitati nella casella di posta della vittima.

Il record SPF garantisce che le email contraffatte non vengano recapitate ai destinatari, ma non permette di capire se un messaggio sia stato o meno manipolato durante la trasmissione. Per questo è così importante che anche il DKIM record sia correttamente configurato. Altrimenti, senza il DKIM, un soggetto esterno potrebbe dirottare i messaggi, inviando poi un messaggio modificato al destinatario. Il DKIM funziona in sinergia con l'SPF garantendo che il mittente sia legittimo e che il messaggio non sia stato manipolato durante la trasmissione.

Protezione offerta dalla combinazione DKIM e SPF

Il DKIM e l'SPF insieme rendono più sicuro il sistema di posta elettronica, che costituisce da sempre uno strumento di comunicazione fondamentale su Internet, ma che, a causa della sua scarsa sicurezza, viene da sempre sfruttato dai cybercriminali per sottrarre identità e credenziali alle proprie vittime. Questi due sistemi invece, applicati alle regole del DMARC, permettono di definire che cosa fare di un messaggio nel caso in cui non superi l'autenticazione.

Nel caso delle grandi aziende e organizzazioni, grazie alle regole DMARC i messaggi possono essere messi in quarantena per la revisione da parte di un amministratore. I messaggi in quarantena non saranno recapitati al destinatario finché l'amministratore non darà il via libera alla consegna. I falsi positivi possono essere inoltrati al destinatario in modo da scongiurare il rischio che messaggi importanti possano finire erroneamente per essere ignorati ed eliminati. Una volta che è stata effettuata un'attenta analisi delle minacce e dei rischi dell'infrastruttura aziendale, si potrà impostare il DMARC in modo che scarti ed elimini automaticamente i messaggi che non superano la convalida DKIM e SPF.

DKIM e DMARC

I termini DKIM, SPF e DMARC vengono spesso usati in modo intercambiabile; tuttavia, rappresentano tre distinti strumenti che lavorano in sinergia per aumentare la sicurezza dei messaggi di posta elettronica. Possiamo pensare al DMARC come ad un insieme di regole che determinano che cosa fare di un'email quando non supera la convalida DKIM e SPF.

Nel caso di mancata convalida DKIM, il DMARC permette di definire tre possibili azioni da intraprendere: quarantine (quarantena), reject (rifiuto) e none (nessuna). In base a come l'amministratore del server di posta configurerà il DMARC, sarà applicata una di queste tre azioni ai messaggi che non superano la convalida.

L'impostazione “none” vuol dire esattamente che non deve essere intrapresa alcuna azione e le email dovranno normalmente essere recapitate nella casella di posta del destinatario. Solitamente si utilizza questa impostazione per gli addetti alla sicurezza, o anche i normali dipendenti, che desiderano analizzare i messaggi sospetti.

Protezione degli utenti tramite gli strumenti DKIM, SPF e DMARC

La “quarantena” permette agli amministratori di analizzare i messaggi che non superano la convalida. Il sistema di posta elettronica colloca questi messaggi in un luogo sicuro accessibile soltanto all'amministratore, ma non ai normali utenti, per una successiva valutazione. L'analisi dei messaggi in quarantena permette all'amministratore di comprendere se la propria organizzazione si trova alle prese con una campagna di phishing contro la propria infrastruttura. L'analisi di questi messaggi può anche aiutare a comprendere se le impostazioni SPF o DKIM sono state configurate correttamente. Alcuni sistemi di sicurezza per la posta elettronica utilizzano l'intelligenza artificiale (AI), che viene addestrata e migliorata ogni volta che l'amministratore segnala un falso positivo.

Se un messaggio non supera la convalida DKIM e il DMARC è impostato per rifiutare i messaggi, il server di posta elettronica elimina direttamente l'email senza inoltrarla a nessuno. I server di posta elettronica di servizi pubblici come Gmail utilizzano normalmente questa impostazione. Ogni giorno Google elimina definitivamente milioni di messaggi che non superano la convalida DKIM e SPF, così da salvaguardare la sicurezza dei propri clienti e impedire che cadano vittime di phishing, hacking e furti di identità.

Il DKIM è necessario?

Specificare un record DKIM permette di tutelare i destinatari delle email, informandoli nel caso in cui i messaggi in entrata siano potenzialmente pericolosi o contengano spam. Garantisce inoltre che i dati inclusi nella firma DKIM non siano stati modificati durante la trasmissione. Tuttavia, poiché configurare il DKIM risulta un compito piuttosto arduo, sono pochi i mittenti che adottano ad oggi questo sistema di sicurezza. Inoltre, il DKIM non consente di capire se il mittente di un messaggio ha falsificato il campo “da” e l'indirizzo e-mail da cui sembra provenire il messaggio, così come il nome mittente visualizzato e il dominio, pertanto non è efficace contro l’email spoofing. Quindi, come per l'SPF, anche nel caso del DKIM da solo non è sufficiente a proteggere un'organizzazione da sofisticati attacchi di phishing.

Combinando i due sistemi SPF e DKIM, lo standard di autenticazione DMARC (Domain-based Message Authentication Reporting and Conformance) è attualmente l'unica tecnologia in grado di garantire la legittimità delle email che utilizzano l'intestazione “from” di un'azienda.