Direct naar inhoud

DKIM

DKIM (DomainKeys Identified Mail) is een e-mailauthenticatiemethode die een cryptografische handtekening toevoegt aan de headers van uitgaande berichten, waardoor ontvangende mailservers kunnen verifiëren dat het bericht echt afkomstig is van het opgegeven domein en onderweg niet is gewijzigd.

Definitie

DKIM (DomainKeys Identified Mail) is een e-mailauthenticatiespecificatie die public-key cryptografie gebruikt om uitgaande berichten te ondertekenen, waardoor ontvangende mailservers kunnen bevestigen dat het bericht afkomstig is van het domein dat het beweert, en dat het berichtlichaam en geselecteerde headers onderweg niet zijn gewijzigd. Het ondertekenende domein publiceert zijn publieke sleutel in DNS; ontvangende servers halen die sleutel op en gebruiken hem om de handtekening te verifiëren die is ingebed in de DKIM-Signature e-mailheader.

DKIM werd ontwikkeld vanuit twee eerdere, overlappende voorstellen — Yahoo’s DomainKeys en Cisco’s Identified Internet Mail — en werd voor het eerst gepubliceerd als IETF RFC 4871 in 2007. De huidige gezaghebbende specificatie is RFC 6376, gepubliceerd in september 2011 en bijgewerkt door RFC 8301 (2018) en RFC 8463 (2018) om sterkere cryptografische algoritmen verplicht te stellen. DKIM is wijdverbreid ingezet in het e-mail-ecosysteem en is een vereist onderdeel van een DMARC beleid dat zinvolle bescherming biedt.

Hoe het werkt

Wanneer de mailserver van een organisatie een bericht verzendt, voert de DKIM-ondertekeningsmodule (ingebouwd in MTA’s zoals Postfix, Exim en Microsoft Exchange, of geleverd als dienst door transactionele providers zoals SendGrid, Mailgun, Amazon SES en Postmark) de volgende handelingen uit.

De ondertekenaar selecteert een subset van headers om in de handtekening op te nemen — meestal From, To, Subject, Date en Content-Type — en canoniseert ze met behulp van een van de twee gedefinieerde algoritmen: simple (minimale whitespace-normalisatie) of relaxed (toleranter, met aanvaarding van kleine header-herschrijvingen tijdens transport). Het berichtlichaam wordt op vergelijkbare wijze gecanoniseerd en gehasht met SHA-256 (het algoritme dat verplicht is sinds RFC 8301 het oudere SHA-1 afkeurde). De ondertekenaar berekent vervolgens een RSA- of Ed25519 digitale handtekening over de header-hash plus een gestructureerde reeks van ondertekeningsmetadata, en voegt een DKIM-Signature header bovenaan het bericht in.

De DKIM-Signature header bevat: v=1 (versie), a=rsa-sha256 (algoritme), d=example.com (ondertekenend domein, bekend als de d= tag), s=selector1 (selector, gebruikt om de specifieke publieke sleutel op te zoeken), h=from:to:subject (ondertekende headers), bh=<body hash>, en b=<base64 handtekening>.

De domeineigenaar publiceert de bijbehorende publieke sleutel op <selector>._domainkey.<domain> als een DNS TXT-record. Wanneer Gmail, Outlook, Yahoo Mail of een RFC 6376-conforme MTA het bericht ontvangt, doet hij een DNS-query voor dat record, haalt de publieke sleutel op, en verifieert de cryptografische handtekening. Een geldige handtekening produceert een DKIM-resultaat van pass. Een ontbrekende of ongeldige handtekening, of elke wijziging in de ondertekende headers of het lichaam tijdens transport, produceert een fail of neutral resultaat, dat vervolgens wordt doorgegeven aan de DMARC-evaluatie-engine.

Selectors (s= tag) maken het voor een domein mogelijk om meerdere DKIM-sleutels tegelijk te publiceren — handig voor het roteren van sleutels zonder service-onderbreking, of voor het isoleren van sleutels over verschillende verzendsystemen (bijv. marketing._domainkey.example.com versus transactional._domainkey.example.com).

Waar je het tegenkomt

DKIM is een fundamentele leverbaarheidsvereiste voor elke e-mail-afhankelijke dienst. Transactionele e-maildiensten zoals Amazon SES, SendGrid (onderdeel van Twilio), Mailgun (onderdeel van Sinch), Postmark en SparkPost nemen DKIM-ondertekening op als een verplichte configuratiestap tijdens domeinverificatie. De provider genereert een RSA-2048 of Ed25519 sleutelpaar, toont de publieke sleutel als een DNS TXT-record, en vraagt de domeineigenaar om het te publiceren voordat verzending vanaf dat domein wordt ingeschakeld.

Voor wedstrijdplatformen die e-mailbevestigingsstemmen versturen, is DKIM-ondertekening vooral belangrijk omdat bevestigingsmails de authenticatiecontroles moeten doorstaan die door grote mailbox-providers worden toegepast — Google Workspace / Gmail, Microsoft Outlook en Exchange Online Protection, Yahoo Mail, Apple iCloud Mail en ProtonMail. Niet-ondertekende berichten of berichten waarvan de handtekeningen falen, worden veel waarschijnlijker geleverd in spam of helemaal geblokkeerd, waardoor kiezers hun inzendingen niet kunnen bevestigen.

E-mailtest-tools zoals Mail-Tester, GlockApps en MXToolbox DKIM Lookup stellen verzenders in staat hun DKIM-configuratie te inspecteren en valideren voordat ze in productie gaan. Google Postmaster Tools en Microsoft SNDS bieden gegevens over leverbaarheid op aggregaat-niveau die DKIM-pas-percentages over tijd weerspiegelen.

Praktische voorbeelden

Een wedstrijdplatform geconfigureerd met een DKIM-selector s=contest voor het domein votes.example.com publiceert de publieke sleutel op contest._domainkey.votes.example.com. Elke uitgaande bevestigingsmail draagt een DKIM-Signature header ondertekend met de bijbehorende privésleutel. Wanneer het Gmail-account van een kiezer het bericht ontvangt, voert het inkomende filter van Gmail een DNS-query uit, verifieert de handtekening, registreert een pass, en geeft het resultaat door aan zijn spamclassificatie. De bevestigde DKIM-pass, gecombineerd met SPF-uitlijning, voldoet aan de voorwaarden voor DMARC-conformiteit.

Een wedstrijdadministrator roteert van een 1024-bit RSA-sleutel (niet langer cryptografisch toereikend) naar een 2048-bit RSA-sleutel na het lezen van RFC 8301. De oude selector wordt zeven dagen actief gehouden om eventuele berichten in transport te dekken, en wordt daarna uit DNS verwijderd. Alle nieuwe berichten gebruiken de bijgewerkte selector en sleutel.

Verwante begrippen

DKIM werkt samen met SPF Record — dat het IP-adres van de verzendserver authenticeert — en DMARC — dat een beleidsactie en rapportagemechanisme definieert op basis van SPF- en DKIM-resultaten. Beide signalen moeten samen worden begrepen; alleen DKIM laten slagen maakt een bericht niet DMARC-conform als het d= domein niet uitlijnt met het RFC5322.From-domein. Voor de wedstrijd-operatiecontext worden de praktische gevolgen van DKIM-fouten uitgelegd in E-mailbevestiging Stem, waar inbox-plaatsing van het bevestigingsbericht direct bepaalt of een uitgebrachte stem wordt geteld.

Van blog — gidsen & casestudies

Praktische gidsen, technische deep-dives en geanonimiseerde casestudies.60+ artikelen. Selectie roteert.

Victor Williams — founder of Buyvotescontest.com
Victor Williams
Online · meestal antwoord in 5 min

Hoi 👋 — stuur de URL van je wedstrijd en ik geef binnen een uur een prijs. Geen kaart nodig.