Validazione DKIM: Una Best Practice per l'Autenticazione delle Email
·
8 apr 2017

Punti Chiave
DKIM (DomainKeys Identified Mail) è un metodo di autenticazione email basato sul contenuto che verifica se un messaggio è stato modificato dopo essere stato firmato.
Contrariamente a SPF, che valida il percorso di invio, DKIM valida il contenuto del messaggio stesso utilizzando firme crittografiche.
DKIM utilizza due chiavi: una chiave privata per firmare i messaggi in uscita e una chiave pubblica pubblicata nel DNS per consentire ai destinatari di convalidare le firme.
Una firma DKIM include hash di sia degli header che del corpo, selettori, timestamp e campi di identità — tutti elementi che il destinatario deve riprodurre e verificare.
La validazione DKIM si basa sul ricevere prima l'intero messaggio, il che significa che possono verificarsi errori in ritardo nel processo.
La risoluzione dei problemi di validazione DKIM non riuscita è spesso difficile perché mittenti e destinatari non possono riprodurre gli ambienti di firma/verifica reciproci.
Anche quando DKIM fallisce, tipicamente non causa direttamente problemi di consegna nella casella di posta da solo a meno che non sia combinato con altri segnali di reputazione negativa.
Punti salienti del Q&A
Cosa fa realmente DKIM?
DKIM allega una firma crittografica a un'email, consentendo al server di ricezione di confermare se il contenuto del messaggio è stato modificato dopo l'invio.
In che modo DKIM è diverso da SPF?
SPF convalida chi è autorizzato a inviare email per un dominio (basato su percorso).
DKIM convalida se il contenuto è integro (basato sul contenuto).
Entrambi servono a scopi diversi e si integrano a vicenda.
Cosa c'è all'interno di un'intestazione DKIM-Signature?
I campi chiave includono:
v= versione
a= algoritmo
c= regole di canonicalizzazione
d= dominio di firma
s= selettore
h= intestazioni incluse nella firma
bh= hash del corpo
b= dati della firma effettiva
Ogni parte contribuisce a come viene convalidata la firma.
Come convalida un server di ricezione il DKIM?
Estrae i valori di d= e s=.
Cerca la chiave pubblica presso:
Rigenera gli hash dell'intestazione e del corpo.
Li confronta con i valori bh= e b= nell'email.
Se corrispondono, il messaggio passa DKIM.
Cosa causa il fallimento di DKIM?
Messaggio alterato in transito (anche le modifiche degli spazi bianchi se si utilizza la canonicalizzazione rigorosa)
Chiave pubblica mancante o errata nel DNS
Errori di formattazione DNS
Selettore rimosso o ruotato in modo errato
Identità non corrispondenti (i= deve essere lo stesso dominio o sottodominio di d=)
Perché i fallimenti di DKIM possono essere difficili da risolvere?
Poiché il firmatario e il validatore operano in ambienti completamente diversi, nessuna delle due parti può ricostruire le condizioni di hashing o lo stato della firma dell'altra.
Ciò rende i fallimenti opachi per "mismatch di hash" i più frustranti da diagnosticare.
Un fallimento DKIM significa che l'email finirà nello spam?
Non necessariamente.
DKIM è solo un segnale. Se il dominio ha una forte reputazione e supera altri controlli (allineamento SPF, DMARC, tassi di reclamo bassi), i fallimenti DKIM isolati di solito non influiscono sull'inserimento nella posta in arrivo da soli.
Perché usare DKIM?
Protegge l'integrità dei messaggi
Costruisce la reputazione del dominio
Abilita l'allineamento DMARC
Aiuta i fornitori di caselle di posta a distinguere i mittenti legittimi dagli impostori
DKIM è considerato una prassi consigliata per tutti i mittenti di email seri.
Quando parliamo di “Autenticazione Email”, ci riferiamo a una tecnica che fornisce al destinatario di un messaggio un certo livello di certezza che il messaggio provenga realmente dalla sorgente dichiarata del messaggio. L'idea dietro tali tecniche è di raggiungere un certo livello di difesa contro le email fraudolente, come il phishing e lo spoofing, email che potrebbero erodere la fiducia di un destinatario nel ricevere email. Detto ciò, l'atto di inviare email authenticate non afferma che l'email sia buona o desiderata; significa solo che l'email è tale che una reputazione per la parte autenticata può essere stabilita in modo affidabile e utilizzata nelle decisioni di accettazione e collocamento delle email.
Ci sono due forme di autenticazione email in uso oggi:
Sender Policy Framework (SPF)
Domain Keys Identified Mail (DKIM)
Nel post di oggi, parlerò di cosa sia DKIM e di come funzioni.
Panoramica di DKIM
Contrariamente al suo controparte di autenticazione SPF, che fornisce un modo per un dominio di autorizzare un host a inviare email per conto suo, DKIM fornisce un modo per un'entità (dominio, organizzazione, persona, ecc.) di assumersi la responsabilità di un messaggio, indipendentemente dall'entità che ha effettivamente inviato il messaggio. Sebbene in molti casi l'entità responsabile e l'entità mittente siano le stesse, o almeno strettamente correlate, con DKIM non c'è alcun requisito che ciò sia così.
I miei obiettivi per te con questo post sono che tu impari e comprenda i seguenti concetti su DKIM:
DKIM è un'autenticazione “basata sul contenuto”, a differenza dello SPF “basato sul percorso”.
L'entità responsabile afferma la propria responsabilità “firmando” il messaggio con una coppia di hash crittografici inseriti nell'intestazione di un messaggio.
La validazione DKIM viene eseguita dal dominio ricevente che tenta di generare gli stessi due hash.
La validazione DKIM non può essere completata in molti casi fino a quando l'intero messaggio non è stato trasmesso dal server di invio.
Le anomalie nella validazione possono essere difficili da risolvere.
Autenticazione basata sul contenuto
DKIM è definito come autenticazione “basata sul contenuto”, piuttosto che “basata sul percorso”, poiché se un messaggio passa o meno la validazione DKIM dipende esclusivamente dal fatto che il contenuto sia cambiato tra il momento in cui è stato firmato e il momento in cui è stata tentata la validazione.
Firma e Validazione DKIM
Le organizzazioni che desiderano firmare le email con DKIM genereranno prima due chiavi crittografiche. Una delle chiavi deve rimanere privata e disponibile per il server di invio per la firma delle email, e l'altra deve essere resa pubblica nel DNS per l'uso da parte dei domini riceventi nei tentativi di convalida della firma. I metodi per generare queste chiavi e installarle dipendono dalla piattaforma e sono al di là dell'ambito di questo post, anche se più avanti descriverò la pubblicazione nel DNS della chiave DKIM pubblica.
L'intestazione DKIM-Signature
Validazione DKIM
Errore di convalida e risoluzione dei problemi
Ho menzionato sopra che i fallimenti di DKIM possono essere difficili da risolvere, e spiegherò perché è così qui.
Alcuni fallimenti di convalida DKIM hanno cause ovvie, come il messaggio non firmato, la chiave pubblica del dominio di firma non trovata nel DNS o non sintatticamente corretta, o forse il messaggio è stato ovviamente alterato durante il transito. Quando si verificano quel tipo di fallimenti, è facile capire il problema e raccomandare una soluzione. Quelli difficili, però, e quelli che portano alla parte di supporto più frustrante, sono i casi in cui il messaggio è stato firmato, la chiave pubblica esiste nel DNS, e il messaggio non è stato ovviamente alterato, ma il validatore riporta che la firma non è riuscita a convalidare.
Il motivo per cui questi sono difficili da risolvere è che non c'è un vero modo per nessuna delle due parti di riprodurre le condizioni sotto le quali il messaggio è stato firmato e convalidato. Il messaggio ha nel suo'intestazione DKIM-Signature gli hash che sono stati generati dal firmatario al momento della firma, ma il validatore probabilmente non ha accesso all'infrastruttura del firmatario e quindi non può provare a riprodurre la firma nelle condizioni del firmatario. Allo stesso modo, il firmatario probabilmente non ha accesso all'infrastruttura del validatore e quindi non ha modo di provare a convalidare il messaggio nel modo in cui lo ha fatto il validatore.
Fallimenti come quelli che sto descrivendo qui sono eventi rari, e i fallimenti di convalida DKIM da soli di solito non hanno un impatto sul posizionamento della consegna. Mentre DKIM gestisce l'autenticazione dei messaggi, l'implementazione di tecniche di convalida e-mail complete assicura che stai inviando a indirizzi legittimi che possono effettivamente ricevere e autenticare i tuoi messaggi. È stata la mia esperienza che tali fallimenti generano più ticket di supporto rispetto a qualsiasi altro tipo di problema DKIM.



