diagnose · antwoord met bronnen

DKIM-fout 'body hash did not verify' diagnosticeren

De fout 'DKIM body hash did not verify' treedt op wanneer de body van de e-mail is gewijzigd nadat de DKIM-handtekening is aangebracht. De ontvangende server berekent de hash van de ontvangen body opnieuw en ziet dat die niet overeenkomt met de hash in de DKIM-Signature-header, waardoor de verificatie mislukt.

Oorzaken van wijzigingen aan de body

De meest voorkomende oorzaak is een tussenliggende mailserver of beveiligingsappliance die de inhoud van het bericht aanpast. Denk aan witruimte aan het einde toevoegen, trackingpixels invoegen, juridische disclaimers toevoegen of regeleinden wijzigen van CRLF naar LF. Zelfs één gewijzigd teken in de body of de MIME-structuur maakt de cryptografische hash ongeldig en levert een fail-resultaat op.

Instellingen voor canonicalisatie

DKIM gebruikt canonicalisatie-algoritmen om te bepalen hoeveel wijziging is toegestaan voordat een hash faalt. Simple-canonicalisatie is strikt en faalt bij elke wijziging. Relaxed-canonicalisatie negeert bepaalde wijzigingen in witruimte en verschillen in hoofdletters in headers. Worden je berichten vaak door relays aangepast, dan kan overstappen op relaxed-canonicalisatie onnodige fouten voorkomen.

Problemen met MIME en encoding

Een onjuiste verwerking van Content-Transfer-Encoding kan tot niet-overeenkomende hashes leiden. Zet een relay een bericht om van quoted-printable naar 8bit of wijzigt hij de charset, dan verandert de resulterende body hash. Zorg dat de ondertekenende agent en de transportlagen zich houden aan de standaarden uit RFC 2045, zodat de body intact blijft.

Stappen voor diagnose

Om dit op te lossen bekijk je de ruwe headers van het mislukte bericht. Vergelijk de oorspronkelijk verzonden body met de ontvangen body om precies te zien waar de wijziging plaatsvond. Je kunt SendHQ of de gratis tools (https://sendhq.cc/tools) gebruiken om je huidige DKIM-recordconfiguratie te controleren en na te gaan of de publieke sleutel correct in je DNS is gepubliceerd.

Strategieën om dit te voorkomen

Vermijd mailrelays die de inhoud wijzigen. Moet je een dienst gebruiken die footers toevoegt, zorg dan dat het ondertekenen bij de laatste hop van de bezorgketen gebeurt. Je kunt ook ARC (Authenticated Received Chain) implementeren om de oorspronkelijke authenticatieresultaten over meerdere hops te bewaren, zodat de uiteindelijke ontvanger de oorspronkelijke handtekening kan vertrouwen.

Vragen die teams stellen

Heeft een mislukte body hash invloed op SPF?

Nee, SPF en DKIM zijn onafhankelijk van elkaar. Een mislukte DKIM-body hash maakt een geslaagde SPF-controle niet ongeldig, maar kan wel de DMARC-alignment beïnvloeden als DKIM de primaire authenticatiemethode was.

Kan een toegevoegde footer deze fout veroorzaken?

Ja, een bedrijfsdisclaimer of mailinglijstfooter die na het ondertekenen wordt toegevoegd, verandert de inhoud van de body en maakt de DKIM-body hash ongeldig.

Wat is het verschil tussen simple- en relaxed-canonicalisatie?

Simple is strikt en faalt bij elke wijziging. Relaxed staat kleine wijzigingen in witruimte en hoofdletters in headers toe, waardoor het beter bestand is tegen aanpassingen door relays.

Veroorzaakt een gewijzigde onderwerpregel een mislukte body hash?

Nee, het onderwerp maakt deel uit van de header. Een gewijzigd onderwerp veroorzaakt een mislukte header-hash, geen mislukte body hash.

Primaire bronnen