Skip to main content
New SPF lookups must resolve in milliseconds — why a DMARC tool's add-on isn't enough Learn Why → →

DKIM-handtekening

Een DKIM-handtekening is een cryptografische handtekening toegevoegd aan de headers van een e-mail (de DKIM-Signature-header) waarmee ontvangers kunnen verifiëren dat het bericht door het verzendende domein is geautoriseerd en onderweg niet is gewijzigd. Belangrijke tags zijn d (domein), s (selector), b (handtekening) en bh (body-hash).

Deze gids maakt deel uit van onze volledige gids over DKIM. Gerelateerd: het DKIM-record en waarom DKIM faalt.

Een DKIM-handtekening is een cryptografische handtekening die aan de headers van een e-mail wordt toegevoegd — meegedragen in de DKIM-Signature-header — waarmee een ontvangende server kan verifiëren dat het bericht door het verzendende domein is geautoriseerd en onderweg niet is gewijzigd. De handtekening wordt gegenereerd met een privésleutel die de afzender bezit en gecontroleerd aan de hand van een bijbehorende publieke sleutel die in DNS is gepubliceerd.

Hoe de DKIM-Signature-header eruitziet

De handtekening reist als een enkel headerveld dat aan het bericht wordt voorgevoegd. Het verpakt alles wat een ontvanger nodig heeft — het ondertekenende domein, de selector, welke headers zijn ondertekend, een hash van de body en de handtekening zelf — in een reeks tag=value-paren gescheiden door puntkomma’s.

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
    d=example.com; s=selector1; t=1700000000;
    h=from:to:subject:date;
    bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
    b=Cg5Xje8kY0m5xT1pW2qL4vN8rH6dF3aZ9cU7bE0iQoR2sT4uV6wX8yZ1
    aB3cD5eF7gH9jK2lM4nP6qR8sT0uV2wX4yZ6aB8cD0eF2gH4jK6l=

De header wordt door de mailserver van de afzender ingevoegd voordat het bericht het domein verlaat. Regeleindes en inspringing zijn er alleen voor het vouwen — de waarde is logisch gezien één doorlopende string.

De tags in een DKIM-handtekening

Elke tag draagt één stuk van de verificatiepuzzel. De ondertekenaar kiest deze waarden; de verifier leest ze terug om de handtekening te reconstrueren en te controleren.

TagNaamDoel
vVersieDKIM-versie. Altijd 1.
aAlgoritmeHash- en ondertekeningsalgoritme, bijv. rsa-sha256 of ed25519-sha256.
dDomeinHet ondertekenende domein — de identiteit die DKIM authenticeert.
sSelectorBenoemt welke publieke sleutel uit de DNS van het domein moet worden opgehaald.
hOndertekende headersDoor dubbelepunt gescheiden lijst van headervelden die door de handtekening worden gedekt.
bhBody-hashHash van de (gecanonicaliseerde) berichtbody.
bHandtekeningDe daadwerkelijke cryptografische handtekening, base64-gecodeerd.
cCanonicalisatieHoe headers/body worden genormaliseerd vóór het hashen, bijv. relaxed/relaxed.
t / xTijdstempelst is wanneer het bericht is ondertekend; x is wanneer de handtekening verloopt.

Hoe ondertekenen werkt (bij verzending)

Wanneer een bericht de verzendende server verlaat, doet DKIM twee dingen. Eerst canonicaliseert en hasht het de body en slaat het resultaat op in bh. Vervolgens canonicaliseert het de headers die in h worden genoemd — samen met de DKIM-Signature-header zelf (met een lege b) — hasht dat blok en ondertekent de hash met de privésleutel van het domein. De resulterende handtekening wordt de b-waarde. Omdat de privésleutel de afzender nooit verlaat, kan alleen de echte domeineigenaar een handtekening produceren die zal valideren.

Hoe verificatie werkt (bij ontvangst)

De ontvangende server leest de DKIM-Signature-header om het domein (d) en de selector te achterhalen. Het vraagt DNS op op <selector>._domainkey.<domain> om de publieke sleutel uit het DKIM-record op te halen. Vervolgens herhaalt het het werk van de afzender: het canonicaliseert en hasht de body, vergelijkt dat met bh, canonicaliseert en hasht de ondertekende headers, en gebruikt de publieke sleutel om b tegen die header-hash te controleren. Als zowel de body-hash overeenkomt als de handtekening verifieert, slaagt DKIM. De bh-controle is wat elke manipulatie van de berichtbody opvangt — zelfs een enkel gewijzigd teken produceert een andere hash en laat de controle mislukken.

Wanneer handtekeningen falen

Een DKIM-handtekening faalt wanneer het bericht dat de ontvanger ziet niet langer overeenkomt met wat de afzender heeft ondertekend. De meest voorkomende oorzaken zijn:

  • Wijziging onderweg — mailinglijsten, forwarders en sommige gateways herschrijven onderwerpen, voegen footers toe of hercoderen de body, wat de body-hash breekt.
  • Body-hash-mismatch — elke wijziging aan het ondertekende deel van de body verandert bh, dus de verificatie faalt zelfs als de sleutel correct is.
  • Verkeerde of ontbrekende sleutel — de selector verwijst naar een DNS-record dat afwezig, verlopen of met de verkeerde publieke sleutel is.

Voor een uitgebreidere uiteenzetting van de oorzaken en oplossingen, zie waarom DKIM faalt, en gebruik de gratis DKIM-lookuptool om te bevestigen dat de publieke sleutel van een selector is gepubliceerd en goed opgemaakt is.

Veelgestelde vragen

Wat is een DKIM-handtekening?

Een DKIM-handtekening is een cryptografische handtekening die aan de headers van een e-mail wordt toegevoegd in het DKIM-Signature-veld. De afzender genereert deze met een privésleutel over geselecteerde headers en een hash van de body. Ontvangers verifiëren deze aan de hand van een publieke sleutel in DNS, wat bewijst dat het bericht van het domein kwam en niet is gewijzigd.

Wat betekent de b=-tag in een DKIM-handtekening?

De b=-tag bevat de daadwerkelijke handtekening: een base64-gecodeerde waarde geproduceerd door een hash van de gecanonicaliseerde ondertekende headers te ondertekenen met de privésleutel van het verzendende domein. De ontvanger decodeert deze en verifieert het aan de hand van de publieke sleutel die uit DNS is opgehaald. Als de ondertekende headers onderweg zijn gewijzigd, faalt de b=-controle.

Waarom faalt een DKIM-handtekening na doorsturen?

Forwarders en mailinglijsten wijzigen het bericht vaak — footers toevoegen, het onderwerp herschrijven of de body hercoderen. Omdat DKIM de exacte body en geselecteerde headers ondertekent, verandert elke dergelijke wijziging de berekende hash zodat deze niet langer overeenkomt met de ondertekende bh of header-hash. De handtekening faalt dan bij verificatie, ook al was de oorspronkelijke geldig.

Wat is de body-hash (bh) in DKIM?

De bh=-tag is een hash van de berichtbody na canonicalisatie, berekend met het algoritme dat in a wordt genoemd. Bij ontvangst herberekent de verifier de body-hash en vergelijkt deze met bh. Een mismatch betekent dat de body onderweg is gewijzigd, dus de handtekening wordt afgewezen voordat de cryptografische handtekening in b= überhaupt wordt gecontroleerd.

Rated 5/5 on G2 · Trusted since 2018

Trusted by 50,000+ domains

"AutoSPF Flattens SPF Records Seamlessly & Keeps Changes Logged - I am quite pleased with the product"

It does what it promises to do, and does it very well. I appreciate that it keeps a log of changes made, which prevents many mistakes. A client's SPF record would have way too many lookups, but AutoSPF makes that problem go away. The length of the SPF record is typically not the issue; it's the amount of lookups in the record that are. AutoSPF "flattens" the record, automatically expanding the defined lookups to IP addresses or ranges. And it auto-updates the record when the un-flattened lookups change.
PJ

Peter J.

President · Small-Business (50 or fewer emp.)

"Helped us go beyond capacity"

AutoSPF did exactly as described, it helped us get past our 10 lookup limit. Afterwards, we hit another limit regarding overall capacity and when contacted, they quickly provided us with a new solution to eliminate capacity issues entirely going forward, so now we can add as many SPF records as needed. They also provided us with a personalized support video explaining their new method in its entirety using our instance as the example.
VU

Verified User

Financial Services · Mid-Market (51-1000 emp.)

"Great service and great support"

AutoSPF was easy to initially set up on our own and a great cost effective entry into spf flattening. Needed our first support assistance today and got great response including a video demonstrating the issue I was trying to solve, a quick fix, and more detailed followup.
GF

Greg F.

Mid-Market (51-1000 emp.)