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

Wat is DKIM?

DKIM (DomainKeys Identified Mail) is een e-mailauthenticatieprotocol dat publieke-sleutelcryptografie gebruikt om te verifiëren dat een e-mailbericht door een geautoriseerde server is verzonden en dat de inhoud onderweg niet is gewijzigd. De verzendende server ondertekent uitgaande berichten met een privésleutel, en de ontvangende server verifieert de handtekening met een publieke sleutel die in de DNS van de afzender is gepubliceerd. In tegenstelling tot SPF, dat alleen het IP-adres van de verzendende server verifieert, verifieert DKIM de berichtintegriteit en overleeft het doorsturen van e-mail. DKIM is gedefinieerd in RFC 6376.

Deze gids maakt deel uit van onze volledige gids over DKIM. Gerelateerd: het DKIM-record en hoe DKIM-handtekeningen werken.

DKIM - DomainKeys Identified Mail - is de tweede pijler van moderne e-mailauthenticatie. Terwijl SPF verifieert dat een bericht vanaf een geautoriseerde server is verzonden, gaat DKIM verder: het ondertekent het bericht zelf cryptografisch, wat bewijst dat de inhoud niet is gemanipuleerd en dat het beweerde verzendende domein het bericht daadwerkelijk heeft geautoriseerd.

RFC 6376 definieert DKIM als een methode om een domeinnaam aan een e-mailbericht te koppelen, waardoor een persoon, rol of organisatie enige verantwoordelijkheid voor het bericht kan opeisen. De handtekening overleeft het doorsturen van e-mail, wat een cruciaal voordeel is ten opzichte van SPF.

Het begrijpen van DKIM is essentieel voor iedereen die e-mailinfrastructuur beheert, omdat DKIM-uitlijning een van de twee wegen is om DMARC-authenticatie te laten slagen - en voor doorgestuurde mail is het vaak de enige weg.

Hoe DKIM werkt: het grote geheel

DKIM werkt volgens een eenvoudig cryptografisch principe: de verzendende server ondertekent het bericht met een privésleutel, en de ontvangende server verifieert de handtekening met een publieke sleutel die in DNS is gepubliceerd.

Het ondertekeningsproces (uitgaand)

  1. De verzendende mailserver genereert een hash van specifieke e-mailheaders en de berichtbody
  2. De server versleutelt deze hash met de DKIM-privésleutel van het domein
  3. De server voegt een DKIM-Signature-header aan het bericht toe die de versleutelde hash, de selectornaam, het ondertekenende domein en metadata over welke headers zijn ondertekend bevat
  4. Het bericht wordt naar de ontvangende server verzonden

Het verificatieproces (inkomend)

  1. De ontvangende server haalt de DKIM-Signature-header uit het bericht
  2. Het leest de waarden d= (domein) en s= (selector) uit de handtekening
  3. Het voert een DNS-lookup uit voor <selector>._domainkey.<domain> om de publieke sleutel op te halen
  4. Het gebruikt de publieke sleutel om de handtekening te ontsleutelen en de oorspronkelijke hash te herstellen
  5. Het hasht onafhankelijk dezelfde headers en body met het opgegeven algoritme
  6. Als de twee hashes overeenkomen, is de handtekening geldig - het bericht is authentiek en ongewijzigd

Voor een gedetailleerde technische uitleg van dit proces, zie Hoe DKIM werkt: een uitgebreide gids voor e-mailauthenticatie.

Voor de details van het verificatiealgoritme op RFC-niveau, zie Binnen RFC 6376: hoe DKIM-verificatie echt werkt.

De DKIM-Signature-header

Een DKIM-handtekeningheader ziet er zo uit:

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=selector1;
    c=relaxed/relaxed; q=dns/txt; t=1618884473;
    h=from:to:subject:date:message-id;
    bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
    b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...
TagBetekenis
v=1DKIM-versie (altijd 1)
a=rsa-sha256Ondertekeningsalgoritme
d=example.comOndertekenend domein (gebruikt voor DMARC-uitlijning)
s=selector1Selector - identificeert welke publieke sleutel te gebruiken
c=relaxed/relaxedCanonicalisatiemethode voor header/body
q=dns/txtQuerymethode voor de publieke sleutel
t=1618884473Tijdstempel van ondertekening
h=from:to:subject:...Lijst met headers die in de handtekening zijn opgenomen
bh=...Body-hash
b=...De handtekening zelf

DKIM-sleutels: publiek en privé

DKIM gebruikt asymmetrische cryptografie. De domeineigenaar genereert een sleutelpaar:

  • Privésleutel - Veilig opgeslagen op de verzendende mailserver. Nooit gedeeld of gepubliceerd. Gebruikt om uitgaande berichten te ondertekenen.
  • Publieke sleutel - Gepubliceerd in DNS als een TXT-record op <selector>._domainkey.<domain>. Gebruikt door ontvangende servers om handtekeningen te verifiëren.

DNS-recordformaat

Een DKIM DNS-record ziet er zo uit:

selector1._domainkey.example.com  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4..."
TagBetekenis
v=DKIM1Versie
k=rsaSleuteltype (RSA is de standaard; Ed25519 komt op)
p=...De publieke sleutel, base64-gecodeerd

U kunt de DKIM-publieke sleutel van elk domein opzoeken met de DKIM-lookuptool.

Sleutelgroottes

  • 1024-bit RSA - De minimaal aanbevolen sleutelgrootte. Wordt nog steeds veel gebruikt, maar wordt naar moderne maatstaven als zwak beschouwd.
  • 2048-bit RSA - De huidige aanbevolen standaard. Biedt sterke beveiliging, maar produceert langere DNS-records die mogelijk het opsplitsen van TXT-records vereisen.
  • Ed25519 - Een nieuwer, efficiënter algoritme dat kortere handtekeningen en sleutels produceert. Ondersteund door een groeiend aantal mailservers, maar nog niet universeel.

Uitgebreide gids: DKIM’s cryptografische algoritmen begrijpen: RS256 vs RS512 en opkomende trends

Selectors: meerdere sleutels beheren

DKIM-selectors stellen een domein in staat om meerdere DKIM-sleutels tegelijk te publiceren. Elke sleutel wordt geïdentificeerd door een selectorstring, en de s=-tag in de DKIM-Signature-header vertelt de ontvanger welke selector (en dus welke publieke sleutel) voor verificatie te gebruiken.

Selectors dienen verschillende doelen:

  • Meerdere verzenddiensten - Uw primaire mailserver en elke externe dienst (SendGrid, Mailchimp, enz.) kunnen elk hun eigen DKIM-sleutelpaar met een unieke selector hebben
  • Sleutelrotatie - Bij het roteren van sleutels kunt u de nieuwe sleutel onder een nieuwe selector publiceren terwijl de oude selector actief blijft tijdens de overgangsperiode
  • Departementale scheiding - Verschillende teams of afdelingen kunnen verschillende selectors gebruiken voor tracking- en beheerdoeleinden

Gangbare naamgevingsconventies voor selectors zijn s1, s2, google, sendgrid, k1 of op datum gebaseerde namen zoals 202604.

Canonicalisatie: omgaan met berichtwijzigingen

E-mailberichten worden onderweg vaak gewijzigd - witruimte wordt toegevoegd of verwijderd, headers worden herschreven en regeleindes kunnen veranderen. Canonicalisatie bepaalt hoe de onderteken- en verificatieprocessen het bericht normaliseren vóór het hashen, zodat kleine wijzigingen de handtekening niet breken.

Er zijn twee canonicalisatiemodi, onafhankelijk toegepast op headers en body:

  • simple - Vrijwel geen tolerantie voor wijzigingen. Headers moeten exact overeenkomen (behalve voor witruimte aan het einde). De body wordt alleen genormaliseerd voor lege regels aan het einde. Gebruik dit wanneer u het volledige afleveringspad beheert en geen tussenpersoon het bericht zal wijzigen.
  • relaxed - Toleranter. Headernamen worden in kleine letters gezet, witruimte wordt genormaliseerd en meerdere spaties worden tot één samengevoegd. In de body wordt witruimte aan het einde van elke regel verwijderd. Gebruik dit voor de meeste praktijksituaties.

De instelling c=relaxed/relaxed (relaxed voor zowel headers als body) is de meest gebruikelijke en aanbevolen configuratie.

DKIM-uitlijning

DKIM-uitlijning is een DMARC-concept dat bepaalt of het domein in de DKIM-handtekening (d=-waarde) overeenkomt met het domein in de zichtbare From-header. Dit is cruciaal omdat DMARC vereist dat ten minste een van SPF of DKIM zowel geldig als uitgelijnd is.

Relaxed uitlijning

De organisatiedomeinen moeten overeenkomen, maar subdomeinen zijn toegestaan. Bijvoorbeeld:

  • From: user@example.com met d=mail.example.com - Slaagt voor relaxed uitlijning (zelfde organisatiedomein)
  • From: user@example.com met d=example.com - Slaagt voor relaxed uitlijning

Strict uitlijning

De domeinen moeten exact overeenkomen:

  • From: user@example.com met d=example.com - Slaagt voor strict uitlijning
  • From: user@example.com met d=mail.example.com - Faalt voor strict uitlijning

Uitgebreide gids: DKIM-uitlijning beheersen: sleutels, handtekeningen en waarom e-mails verificatie niet halen

DKIM-sleutelrotatie

DKIM-privésleutels moeten periodiek worden geroteerd om de schade te beperken als een sleutel wordt gecompromitteerd. Het rotatieproces omvat:

  1. Een nieuw sleutelpaar met een nieuwe selector genereren
  2. De nieuwe publieke sleutel in DNS publiceren
  3. De verzendende server configureren om met de nieuwe privésleutel te ondertekenen
  4. Wachten op DNS-propagatie en handtekeningen met de nieuwe sleutel verifiëren
  5. De oude publieke sleutel na een overgangsperiode uit DNS verwijderen

Hoe vaak moet u roteren? Er is geen universele standaard, maar gangbare aanbevelingen variëren van elke 6 maanden tot jaarlijks. Omgevingen met hoge beveiligingseisen kunnen vaker roteren.

Uitgebreide gids: Wanneer moet u uw DKIM-sleutels roteren?

Waarom DKIM faalt

DKIM-verificatie kan om verschillende redenen mislukken:

Berichtwijziging onderweg

Als een ondertekende header of de berichtbody na ondertekening wordt gewijzigd, komt de hash niet overeen en mislukt de verificatie. Veelvoorkomende boosdoeners zijn:

  • Mailinglijsten die footers toevoegen of de onderwerpregel wijzigen
  • E-mailgateways die headers herschrijven voor compliance- of beveiligingsscans
  • Doorstuurdiensten die berichtheaders wijzigen

DNS-problemen

  • Het DKIM-publieke-sleutelrecord bestaat niet of is onbereikbaar
  • De selector in de handtekening komt niet overeen met een gepubliceerde sleutel
  • DNS-propagatievertragingen na een sleutelrotatie

Configuratiefouten

  • De privésleutel komt niet overeen met de gepubliceerde publieke sleutel
  • Het ondertekeningsalgoritme in de handtekening komt niet overeen met het sleuteltype
  • Headers vermeld in de h=-tag zijn niet meegenomen in de daadwerkelijke handtekeningberekening

Uitgebreide gidsen:

DKIM vs SPF: aanvullend, niet concurrerend

DKIM en SPF dienen verschillende doelen en hebben verschillende sterke punten:

KenmerkSPFDKIM
Wat het verifieertIP-adres van de verzendende serverBerichtintegriteit en herkomst
Hoe het werktDNS-lookup van geautoriseerde IP’sVerificatie van cryptografische handtekening
Overleeft doorsturenNee - doorsturen wijzigt het verzendende IPJa - handtekening reist mee met het bericht
Beschermt inhoudsintegriteitNeeJa - detecteert manipulatie
DNS-recordtypeTXT op het domeinTXT op selector._domainkey.domain
Basis voor DMARC-uitlijningReturn-Path-domeind=-domein in handtekening

Omdat SPF breekt bij het doorsturen van e-mail (het IP van de doorstuurserver staat niet in het SPF-record van het oorspronkelijke domein), is DKIM vaak de enige authenticatiemethode die slaagt voor doorgestuurde berichten. Dit maakt DKIM-uitlijning essentieel voor domeinen die mailinglijsten, doorstuurregels of enige relayinfrastructuur gebruiken.

Uitgebreide gidsen:

DKIM voor doorgestuurde en gerelayde mail

Een van DKIM’s belangrijkste praktische voordelen ten opzichte van SPF is het gedrag bij het doorsturen van e-mail. Wanneer een bericht via een tussenserver wordt doorgestuurd (een mailinglijst, een automatische doorstuurregel of een relaydienst), breekt SPF omdat het IP-adres van de doorstuurserver niet in het SPF-record van het oorspronkelijke domein staat. DKIM daarentegen overleeft het doorsturen zolang de berichtinhoud niet wordt gewijzigd. Als u dit voor het eerst configureert, beantwoordt de AutoSPF FAQ de meest voorkomende installatievragen.

Daarom is DKIM cruciaal voor DMARC-compliance in omgevingen met:

  • Mailinglijsten - Organisaties die deelnemen aan branchemailinglijsten of interne distributiegroepen
  • E-mail doorsturen - Gebruikers die e-mail van de ene provider naar de andere doorsturen (bijv. een universiteitsadres doorsturen naar Gmail)
  • Shared hosting - Omgevingen waar e-mail door gedeelde relayservers gaat
  • E-mailgateways - Beveiligingsapparaten die mail relayen zonder de inhoud te wijzigen

DKIM breekt echter als de tussenpersoon de ondertekende delen van het bericht wijzigt. Veelvoorkomende wijzigingen die DKIM breken, zijn het toevoegen van footers, het herschrijven van de onderwerpregel of het verwijderen van bijlagen. Mailinglijstsoftware zoals Mailman en LISTSERV voegt vaak lijstheaders en footers toe, wat op body gebaseerde DKIM-handtekeningen kan breken.

De oplossing is om DKIM te configureren met c=relaxed/relaxed-canonicalisatie (die kleine witruimtewijzigingen tolereert) en ervoor te zorgen dat alle mailinglijstsoftware die u gebruikt zo is geconfigureerd dat DKIM-handtekeningen waar mogelijk behouden blijven.

Veelvoorkomende DKIM-configuratiepatronen

Verschillende e-mailinfrastructuuropstellingen vereisen verschillende DKIM-configuratiebenaderingen:

Enkele provider

Als al uw e-mail via één provider gaat (bijv. Google Workspace), verzorgt die provider automatisch de DKIM-ondertekening. U hoeft alleen de publieke sleutel die ze aanleveren in uw DNS te publiceren.

Meerdere providers met afzonderlijke selectors

Wanneer meerdere diensten namens u e-mail versturen, krijgt elke dienst zijn eigen DKIM-sleutelpaar met een unieke selector. Bijvoorbeeld:

  • google._domainkey.example.com - DKIM-sleutel van Google Workspace
  • s1._domainkey.example.com - DKIM-sleutel van SendGrid
  • k1._domainkey.example.com - DKIM-sleutel van Mailchimp

Elke dienst ondertekent berichten met zijn eigen privésleutel, en ontvangers zoeken de juiste publieke sleutel op op basis van de selector in de DKIM-Signature-header.

On-premises ondertekening

Organisaties die hun eigen mailservers draaien (Exchange, Postfix, Exim) moeten hun eigen sleutelparen genereren, de privésleutel op de mailserver installeren en de publieke sleutel in DNS publiceren. U kunt een sleutelpaar aanmaken met onze gratis DKIM-generator. Dit geeft u volledige controle over het ondertekeningsproces, maar vereist dat u sleutelgeneratie, -rotatie en -opslag beheert.

DKIM en TLS: verschillende beveiligingslagen

DKIM en TLS (Transport Layer Security) dragen beide bij aan e-mailbeveiliging, maar werken op verschillende lagen:

  • TLS versleutelt de verbinding tussen mailservers tijdens verzending en voorkomt afluisteren onderweg. Het verifieert niet de identiteit van de afzender en beschermt niet tegen spoofing.
  • DKIM verifieert de identiteit van de afzender en de berichtintegriteit, maar versleutelt de berichtinhoud niet.

Beide zijn nodig voor uitgebreide e-mailbeveiliging.

Uitgebreide gids: TLS en DKIM: waarom u beide nodig hebt voor sterke e-mailbeveiliging

DKIM instellen voor uw platform

DKIM-configuratie verschilt per e-mailplatform. Het algemene proces is:

  1. Genereer een DKIM-sleutelpaar (uw e-mailplatform doet dit meestal)
  2. Publiceer de publieke sleutel als een DNS TXT-record op de juiste selectorlocatie
  3. Schakel DKIM-ondertekening in op het verzendende platform
  4. Verifieer de configuratie met een DKIM-lookup

Voor platformspecifieke instructies, zie deze gidsen:

DKIM in de authenticatiestack

DKIM is een van de drie protocollen die samenwerken om e-mail te authenticeren:

  • SPF - Verifieert dat de verzendende server geautoriseerd is
  • DKIM - Verifieert berichtintegriteit en levert een handtekening op domeinniveau (deze gids)
  • DMARC - Koppelt SPF en DKIM met uitlijningsvereisten, definieert het handhavingsbeleid en maakt rapportage mogelijk

DMARC vereist dat ten minste een van SPF of DKIM slaagt en is uitgelijnd met het From-headerdomein. In de praktijk maximaliseert het configureren van zowel SPF als DKIM uw kans om DMARC te laten slagen, want als de ene methode faalt (bijv. SPF faalt door doorsturen), kan de andere nog steeds een geldig uitgelijnd resultaat leveren.

Uitgebreide gidsen:

Diagnostische tools

Volgende stappen

  1. Verifieer uw huidige DKIM-opstelling - Gebruik de DKIM-lookuptool om te controleren of uw domein geldige DKIM-sleutels heeft gepubliceerd
  2. Controleer uitlijning - Zorg ervoor dat het d=-domein in uw DKIM-handtekeningen overeenkomt met uw From-headerdomein
  3. Beoordeel sleutelsterkte - Bevestig dat u ten minste 2048-bit RSA-sleutels gebruikt
  4. Plan sleutelrotatie - Stel een rotatieschema op en documenteer het proces
  5. Implementeer DMARC - Als u dat nog niet hebt gedaan, stel DMARC in om SPF- en DKIM-uitlijning af te dwingen en geaggregeerde rapporten te ontvangen
  6. Monitor met DMARC-rapporten - Gebruik DMARC-aggregaatrapporten om DKIM-fouten op alle ontvangende servers te identificeren
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.)