diagnostica · risposta con fonti

Errore DKIM "body hash did not verify": diagnosi e soluzione

L'errore DKIM "body hash did not verify" si verifica quando il corpo dell'email viene modificato dopo l'applicazione della firma DKIM. Il server ricevente ricalcola l'hash del corpo ricevuto e scopre che non corrisponde all'hash memorizzato nell'intestazione DKIM-Signature, con conseguente fallimento della verifica.

Cause della modifica del corpo

La causa più comune è un server di posta intermedio o un'appliance di sicurezza che altera il contenuto del messaggio: aggiunta di spazi finali, inserimento di pixel di tracciamento, accodamento di disclaimer legali o conversione dei fine riga da CRLF a LF. Anche la modifica di un solo carattere nel corpo o nella struttura MIME invalida l'hash crittografico e genera un risultato fail.

Impostazioni di canonicalizzazione

DKIM usa algoritmi di canonicalizzazione per stabilire quante modifiche sono ammesse prima che l'hash fallisca. La canonicalizzazione simple è rigida e fallisce a qualsiasi modifica. La canonicalizzazione relaxed ignora alcune modifiche agli spazi e le differenze di maiuscole/minuscole nelle intestazioni. Se i tuoi messaggi vengono spesso modificati dai relay, passare alla canonicalizzazione relaxed può evitare fallimenti inutili.

Problemi di MIME e codifica

Una gestione errata del Content-Transfer-Encoding può causare hash non corrispondenti. Se un relay converte un messaggio da quoted-printable a 8bit o modifica il charset, il body hash risultante cambia. Assicurati che l'agente di firma e i livelli di trasporto rispettino gli standard definiti nella RFC 2045 per preservare l'integrità del corpo.

Passaggi di diagnosi

Per risolvere il problema, esamina le intestazioni raw del messaggio fallito. Confronta il corpo inviato originale con quello ricevuto per individuare esattamente dove è avvenuta la modifica. Puoi usare SendHQ o i suoi strumenti gratuiti (https://sendhq.cc/tools) per verificare la configurazione attuale del record DKIM e accertarti che la chiave pubblica sia pubblicata correttamente nel DNS.

Strategie di prevenzione

Evita i relay di posta che modificano il contenuto. Se devi usare un servizio che aggiunge footer, assicurati che la firma avvenga all'ultimo passaggio della catena di consegna. In alternativa, implementa ARC (Authenticated Received Chain) per preservare i risultati di autenticazione originali attraverso più passaggi, così il destinatario finale può fidarsi della firma originale.

Le domande dei team

Un fallimento del body hash influisce su SPF?

No, SPF e DKIM sono indipendenti. Un fallimento del body hash DKIM non invalida un esito pass di SPF, ma può influire sull'allineamento DMARC se DKIM era il metodo di autenticazione principale.

L'aggiunta di un footer può causare questo errore?

Sì, aggiungere un disclaimer aziendale o il footer di una mailing list dopo la firma del messaggio cambia il contenuto del corpo e invalida il body hash DKIM.

Qual è la differenza tra canonicalizzazione simple e relaxed?

Simple è rigida e fallisce a qualsiasi modifica. Relaxed tollera piccole modifiche agli spazi e alle maiuscole/minuscole delle intestazioni, quindi resiste meglio alle modifiche dei relay.

Cambiare l'oggetto causa un fallimento del body hash?

No, l'oggetto fa parte delle intestazioni. Una modifica dell'oggetto causerebbe un fallimento dell'hash delle intestazioni, non del body hash.

Fonti primarie