DKIM, che sta per “DomainKeys Identified Mail,” è un sistema di autenticazione delle email che aiuta a verificare che un’email provenga effettivamente dal dominio che dice di provenire e che non sia stata modificata durante il transito.
Ecco come funziona in breve:
- Firma del messaggio: Quando un’email viene inviata, il server di posta del mittente aggiunge una firma crittografica all’intestazione dell’email. Questa firma viene creata usando una chiave privata associata al dominio del mittente.
- Pubblicazione della chiave pubblica: Il dominio del mittente pubblica la sua chiave pubblica nel DNS (Domain Name System). Questa chiave pubblica è utilizzata dai server di posta destinatari per verificare la firma dell’email.
- Verifica della firma: Quando il server di posta destinatario riceve l’email, estrae la firma dall’intestazione e usa la chiave pubblica del dominio del mittente per verificare che la firma sia valida e che il contenuto dell’email non sia stato alterato.
Il vantaggio principale di DKIM è che aiuta a garantire l’integrità e l’autenticità delle email, riducendo il rischio di spoofing e phishing, e migliorando così la fiducia dei destinatari nelle email ricevute.
Esaminiamo DKIM (DomainKeys Identified Mail) in modo più tecnico, includendo esempi concreti.
1. Struttura di DKIM
A. Firma del messaggio
Quando un’email viene inviata, il server di posta del mittente (detto MTA, Mail Transfer Agent) crea una firma digitale basata sul contenuto dell’email. La firma è generata utilizzando una chiave privata. La firma viene poi inserita in un’intestazione DKIM specifica dell’email.
Esempio:
Supponiamo che tu stia inviando un’email da user@example.com
. La tua email ha un’intestazione DKIM che potrebbe apparire così:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=selector1;
h=from:to:subject:date;
b=MHJjRjJVMj0A
In questa intestazione:
v=1
indica la versione di DKIM.a=rsa-sha256
specifica l’algoritmo di firma utilizzato (RSA con SHA-256).d=example.com
è il dominio del mittente.s=selector1
è un identificatore della chiave pubblica, usato per recuperare la chiave dal DNS.h=from:to:subject:date
elenca gli header dell’email che sono stati inclusi nella firma.b=MHJjRjJVMj0A
è la parte della firma che rappresenta la firma crittografica vera e propria.
B. Pubblicazione della chiave pubblica
Il dominio del mittente pubblica la chiave pubblica nel DNS con un record TXT. Questo record è associato a un selettore, che consente di recuperare la chiave giusta.
Esempio:
Supponiamo che il selettore sia selector1
. Il record DNS TXT potrebbe apparire così:
selector1._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9..."
In questo record:
v=DKIM1
indica la versione del protocollo DKIM.k=rsa
specifica il tipo di chiave.p=MIIBIjANBgkqhkiG9...
è la chiave pubblica codificata in Base64.
2. Verifica della firma
Quando il server di posta destinatario riceve l’email, esegue i seguenti passaggi:
A. Estrazione della firma
Il server destinatario estrae l’intestazione DKIM dall’email.
B. Recupero della chiave pubblica
Il server destinatario consulta il DNS per ottenere la chiave pubblica utilizzando il selettore e il dominio specificati nell’intestazione DKIM.
Esempio:
Il server destinatario esegue una query DNS per selector1._domainkey.example.com
e ottiene il record TXT con la chiave pubblica.
C. Verifica della firma
Il server destinatario usa la chiave pubblica per decifrare la firma e confrontare il risultato con il contenuto dell’email. Se il risultato corrisponde, la firma è valida e l’email non è stata alterata.
Esempio:
Supponiamo che la chiave pubblica recuperata sia MIIBIjANBgkqhkiG9...
. Il server destinatario usa questa chiave per decifrare b=MHJjRjJVMj0A
. Se il risultato corrisponde al contenuto dell’email, la firma è verificata come valida.
3. Casi d’uso e benefici
A. Protezione contro lo spoofing
Se un’email ha una firma DKIM valida, i destinatari possono essere certi che l’email proviene dal dominio dichiarato e che non è stata alterata.
B. Maggiore fiducia
Le email firmate con DKIM hanno maggiori probabilità di superare i filtri anti-spam e di essere consegnate nella posta in arrivo.
Conclusione
DKIM aiuta a garantire che le email non vengano alterate durante il transito e che provengano effettivamente dal dominio dichiarato. Utilizzando la crittografia a chiave pubblica e privata, DKIM fornisce un modo sicuro e affidabile per autenticare le email.