In breve: DKIM body hash did not verify: significa che l’hash calcolato dal destinatario sul corpo del messaggio non coincide con il valore `bh=` nella firma DKIM.
Indice dei contenuti
DKIM body hash did not verify
Questa guida approfondisce DKIM body hash did not verify con verifiche progressive e reversibili. Non inviare password, cookie, token, chiavi private, codici 2FA o file di configurazione completi nei ticket.
Che cosa significa
DKIM firma header selezionati e il corpo secondo una canonicalization definita in `c=`. Modifiche apparentemente minime, come footer, riscrittura HTML o conversione delle linee, possono invalidare la firma.
Il record DNS può essere perfettamente disponibile: key not found e body hash mismatch sono errori differenti e richiedono diagnosi diverse.
Come riconoscere il problema
- Authentication-Results mostra dkim=fail body hash did not verify.
- Il selector e la chiave DNS vengono trovati.
- Messaggi diretti passano ma inoltrati falliscono.
- Un gateway aggiunge disclaimer o footer.
- Solo messaggi HTML o con allegati mostrano il problema.
Cause più frequenti
1. Footer aggiunto dopo la firma
Gateway o mailing list modifica il corpo. Confronta questa ipotesi con il messaggio completo e con i log dell’orario interessato, evitando conclusioni basate soltanto sulla schermata mostrata dal client.
2. Riscrittura HTML
Antivirus, antispam o sistema di tracking altera link e markup.
3. Conversione line ending o encoding
Un relay modifica la rappresentazione.
4. Firma generata troppo presto
L’applicazione firma prima delle trasformazioni finali.
5. Canonicalization non adatta
La modalità simple è sensibile a modifiche.
6. Messaggio corrotto
Trasferimento o software produce un corpo differente.
Diagnosi passo per passo
- Conserva il messaggio originale `.eml`. Non inoltrarlo come testo. Salva il risultato prima di passare al controllo successivo, così potrai individuare il punto preciso nel quale il comportamento cambia.
- Leggi DKIM-Signature. Controlla d=, s=, c=, bh= e h=. Salva il risultato prima di passare al controllo successivo, così potrai individuare il punto preciso nel quale il comportamento cambia.
- Confronta percorso diretto e inoltrato. Individua il relay che modifica. Salva il risultato prima di passare al controllo successivo, così potrai individuare il punto preciso nel quale il comportamento cambia.
- Controlla footer e disclaimer. Verifica quando vengono aggiunti. Salva il risultato prima di passare al controllo successivo, così potrai individuare il punto preciso nel quale il comportamento cambia.
- Esamina gateway e antivirus. Cerca riscrittura link o contenuto. Salva il risultato prima di passare al controllo successivo, così potrai individuare il punto preciso nel quale il comportamento cambia.
- Invia un messaggio semplice. Solo testo, poi HTML e allegato. Salva il risultato prima di passare al controllo successivo, così potrai individuare il punto preciso nel quale il comportamento cambia.
- Confronta header Received. Localizza il punto della trasformazione. Salva il risultato prima di passare al controllo successivo, così potrai individuare il punto preciso nel quale il comportamento cambia.
Procedura di risoluzione
- Firma dopo tutte le modifiche. Il DKIM signer deve essere l’ultimo componente che altera il corpo. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Sposta footer prima della firma. Configura gateway e applicazione. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Evita riscritture non necessarie. Disabilita solo la funzione responsabile, non la sicurezza globale. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Usa canonicalization appropriata. `relaxed` tollera alcune differenze di spaziatura. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Configura il provider di invio. Usa la sua firma DKIM allineata. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Mantieni una firma aggiuntiva. Un relay può firmare nuovamente dopo la modifica. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Ritesta con messaggi reali. Controlla Authentication-Results su più destinatari. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
Domande frequenti
Che cosa significa DKIM body hash did not verify?
Modifiche apparentemente minime, come footer, riscrittura HTML o conversione delle linee, possono invalidare la firma. In pratica, dKIM firma header selezionati e il corpo secondo una canonicalization definita in `c=`.
Quali controlli fare per diagnosticare DKIM body hash did not verify?
Procedi in ordine: Conserva il messaggio originale `.eml`. Non inoltrarlo come testo; Leggi DKIM-Signature. Controlla d=, s=, c=, bh= e h=; Confronta percorso diretto e inoltrato. Individua il relay che modifica; Controlla footer e disclaimer. Verifica quando vengono aggiunti.
Guide Xlogic correlate
- DKIM selector not found: cause e correzione DNS
- Errori SMTP 421, 450 e 451: problemi temporanei
- Errori SMTP 550, 552 e 554: significato e soluzioni