Introduzione a DKIM

DKIM (DomainKeys Identified Mail) è un metodo di autenticazione delle email che consente a un’organizzazione di assumere la responsabilità per un messaggio di posta elettronica inviato. Viene fatto firmando digitalmente i messaggi di posta elettronica in modo che il destinatario possa verificare che i messaggi provengono effettivamente dal dominio dichiarato e che non sono stati alterati durante il transito.

Come Funziona DKIM

  1. Generazione della Coppia di Chiavi:
    • Chiave Privata: Utilizzata dal server di posta del mittente per firmare le email. Questa chiave deve essere mantenuta segreta.
    • Chiave Pubblica: Pubblicata nel DNS del dominio del mittente e utilizzata dal server ricevente per verificare la firma.
  2. Firma del Messaggio:
    • Quando un’email viene inviata, il server di posta del mittente utilizza la chiave privata per generare una firma digitale univoca per il messaggio.
    • Questa firma viene aggiunta all’intestazione dell’email sotto forma di una nuova intestazione DKIM-Signature.
  3. Verifica del Messaggio:
    • Quando il server di posta del destinatario riceve l’email, estrae la firma dall’intestazione e recupera la chiave pubblica dal DNS del dominio mittente.
    • Utilizzando la chiave pubblica, il server verifica la firma per assicurarsi che il messaggio non sia stato alterato e che provenga effettivamente dal dominio dichiarato.

Creazione e Pubblicazione di un Record DKIM

1. Generazione della Coppia di Chiavi

Puoi utilizzare strumenti come

openssl

per generare una coppia di chiavi.

openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048 openssl rsa -pubout -<span class="hljs-keyword">in</span> private.key -out public.key

2. Creazione del Record DNS DKIM

Il record DKIM è un record TXT che deve essere aggiunto alla configurazione DNS del tuo dominio. Ha il seguente formato:

_domainkey. IN TXT "v=DKIM1; k=rsa; p=public-key"
  • selector: Un identificatore univoco che consente di utilizzare più chiavi per lo stesso dominio.
  • yourdomain: Il tuo nome di dominio (es. example.com).
  • public-key: La chiave pubblica generata nel passaggio precedente, senza spazi o interruzioni di linea.
Esempio di Record DKIM

Supponiamo di avere un dominio example.com e di aver scelto il selettore default. Il record DNS DKIM potrebbe apparire così:

default._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7...2QIDAQAB"
3. Pubblicazione del Record DKIM nel DNS

Accedi al pannello di gestione DNS del tuo provider di dominio e aggiungi un nuovo record TXT con i seguenti dettagli:

  • Nome/Host: default._domainkey.example.com
  • Tipo: TXT
  • Valore: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7…2QIDAQAB
4. Configurazione del Server di Posta

Configura il tuo server di posta per utilizzare la chiave privata generata per firmare le email. La configurazione varia a seconda del software del server di posta in uso (Postfix, Sendmail, Exim, etc.). Di seguito è riportato un esempio di configurazione per Postfix utilizzando OpenDKIM.

Installazione di OpenDKIM (Esempio per Debian/Ubuntu)

sudo apt install opendkim opendkim-tools

Configurazione di OpenDKIM

Modifica il file di configurazione di OpenDKIM (/etc/opendkim.conf):

AutoRestart Yes
AutoRestartRate 10/1h
Syslog yes
SyslogSuccess Yes
LogWhy Yes

Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256

UserID opendkim

Socket inet:12345@localhost

Creazione dei File di Configurazione

/etc/opendkim/TrustedHosts: Elenca i server di posta autorizzati.

127.0.0.1
localhost
192.168.1.1/24

/etc/opendkim/KeyTable: Definisce le chiavi utilizzate per la firma.

default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private

/etc/opendkim/SigningTable: Specifica quali email firmare con quali chiavi.

*@example.com default._domainkey.example.com

Modifica di Postfix per Utilizzare OpenDKIM

Modifica il file di configurazione principale di Postfix (/etc/postfix/main.cf):

smtpd_milters = inet:localhost:12345
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 6

5. Riavvio dei Servizi

Riavvia i servizi OpenDKIM e Postfix per applicare le modifiche:

sudo systemctl restart opendkim
sudo systemctl restart postfix

Verifica del Record DKIM

Puoi utilizzare strumenti online come DKIM Core per verificare il tuo record DKIM. Inserisci il selettore e il dominio per controllare se il record è stato configurato correttamente.

Conclusione

Implementare DKIM è un passo fondamentale per migliorare la sicurezza delle tue comunicazioni email e prevenire lo spoofing. Configurando correttamente i record DKIM nel DNS e il server di posta, puoi assicurarti che le tue email siano autentiche e non siano state alterate. Segui questa guida per configurare DKIM e proteggere il tuo dominio e i tuoi utenti.

Se hai bisogno di aiuto o informazioni:

Prodotti e Servizi