Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Module 4 · 4.3

Nederlands

DKIM in de praktijk: selectors, sleutels en diensten

Module 4: Afleverbaarheid: SPF, DKIM en DMARC in de praktijk · Leestijd: 12 minuten

Leerdoel: Na deze les kun je een DKIM-Signature-kopregel ontleden, voor elke verzenddienst DKIM met je eigen domein instellen, controleren of een selector werkt, en uitleggen hoe je sleutels veilig vervangt.

Kernbegrippen: DKIM-Signature, d= (tekenend domein), s= (selector), h= (ondertekende kopregels), bh= en b=, canonicalisatie (c=), <selector>._domainkey.<domein>, TXT met p= of CNAME naar de dienst, sleutellengte 2048 bit (RFC 8301), stukken van 255 tekens, ed25519 (RFC 8463), sleutelwissel, lege p= (ingetrokken), DKIM en doorsturen

Waarom DKIM het belangrijkste van de drie is

SPF zegt welke servers mogen mailen, maar breekt bij doorsturen en kijkt naar het Return-Path, dat bij veel diensten niet van jou is. DKIM zet een handtekening in de mail zelf. Die handtekening overleeft doorsturen (zolang de mail niet wordt veranderd) en is gekoppeld aan een domein dat jij kiest. Daardoor is DKIM in de praktijk vaak het enige dat DMARC laat slagen voor nieuwsbrieven, facturen uit een boekhoudprogramma en doorgestuurde mail.

De basis (hoe de sleutel in de DNS staat, wat een selector is) staat in de DNS-cursus, les 4.4. Hier gaan we verder: wat staat er precies in een handtekening, en hoe regel je DKIM voor elke dienst?

Een handtekening ontleden

Open de kopregels van een mail die je hebt ontvangen (les 1.5). Bovenaan staat, als de mail getekend is, iets als:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=x;
	t=1762588800; h=from:to:subject:date:message-id:mime-version:content-type;
	bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
	b=Gm7yW3q...lange reeks tekens...Qx9A==
TagBetekenis
v=1DKIM-versie
a=rsa-sha256Algoritme: RSA-sleutel, SHA-256. Ook mogelijk: ed25519-sha256
c=relaxed/relaxedCanonicalisatie: hoe streng kleine wijzigingen (spaties, hoofdletters in kopregelnamen) worden behandeld, voor de kopregels en de tekst. relaxed is gebruikelijk en vergevingsgezinder dan simple
d=example.comHet tekenende domein. Dit domein staat in voor de mail. DMARC vergelijkt dit met het Van-adres
s=xDe selector: welke sleutel van dat domein is gebruikt
t=Tijdstip van ondertekenen (seconden sinds 1970)
h=Welke kopregels zijn ondertekend. from moet er altijd in staan
bh=Een vingerafdruk (hash) van de tekst van de mail
b=De handtekening zelf

De ontvanger haalt de publieke sleutel op bij <s>._domainkey.<d>, hier dus x._domainkey.example.com, en controleert of b= past bij de kopregels uit h= en de vingerafdruk bh=. Is er onderweg één letter in de tekst of in een ondertekende kopregel veranderd, dan faalt de controle.

In Authentication-Results zie je de uitkomst, bijvoorbeeld dkim=pass header.d=example.com header.s=x. Een mail kan meerdere handtekeningen hebben, bijvoorbeeld een van jouw domein en een van de dienst zelf. Voor DMARC telt alleen een handtekening waarvan d= bij jouw Van-domein hoort.

Elke dienst zijn eigen selector

Een domein kan veel DKIM-sleutels tegelijk hebben, elk onder een eigen selector. Dat is precies de bedoeling: elke dienst die namens jou mailt, tekent met een eigen sleutel.

VerzenderSelector (voorbeeld)Hoe het in de DNS staat
Hostingmailserverx of defaultTXT met de sleutel, door het paneel aangemaakt
Microsoft 365selector1, selector2twee CNAME-records naar Microsoft
Google Workspacegoogle (standaard)TXT met een sleutel die je in de beheerconsole laat maken
Nieuwsbriefdienstbijvoorbeeld k2, k3, mte1meestal CNAME-records naar de dienst

TXT of CNAME?

  • Bij een TXT-record zet je zelf de publieke sleutel in je DNS. Wil de dienst een nieuwe sleutel, dan moet jij het record aanpassen.
  • Bij een CNAME-record wijs je de selector door naar een naam bij de dienst, bijvoorbeeld k2._domainkey.example.com CNAME dkim2.mailer.example. De dienst beheert de sleutel dan zelf en kan hem vervangen zonder dat jij iets hoeft te doen. Daarom kiezen grote diensten voor CNAME, en gebruiken ze er vaak twee: zo kunnen ze wisselen tussen een actieve en een nieuwe sleutel.

Let op: een CNAME mag niet naast een ander record op dezelfde naam staan. Staat er al een TXT op selector1._domainkey, haal die dan weg.

Het belangrijkste: DKIM aanzetten bij de dienst

Bij veel diensten is DKIM met je eigen domein niet standaard aan. Ze tekenen dan met hun eigen domein (d=mailer.example). De mail is dan wel getekend, maar niet uitgelijnd met jouw Van-adres. Voor DMARC telt dat niet. In het beheer van de dienst heet het vaak "domein verifiëren", "domeinverificatie", "authenticatie" of "eigen afzenderdomein". Pas als je de records hebt gezet én het in de dienst hebt aangezet, tekent hij met d=example.com.

Sleutels: lengte, stukken en algoritme

  • Lengte. RFC 8301 zegt: minstens 1024 bit, en verzenders horen minstens 2048 bit te gebruiken. Gebruik 2048. Een sleutel van 512 bit wordt door ontvangers als ongeldig gezien.
  • Stukken van 255 tekens. Een TXT-record bestaat uit tekenreeksen van maximaal 255 tekens. Een 2048-bit-sleutel is ongeveer 400 tekens en past daar niet in één reeks. Het record bestaat dan uit twee of meer reeksen achter elkaar ("v=DKIM1; k=rsa; p=MIIBIj..." "...IDAQAB"), die de ontvanger aan elkaar plakt. De meeste panelen doen dat automatisch. Gaat het mis, dan krijg je een afgekapte sleutel en faalt elke handtekening. Kopieer een sleutel dus altijd in zijn geheel, zonder extra spaties of aanhalingstekens in het midden.
  • ed25519 (RFC 8463) is een moderner algoritme met korte sleutels. Nog niet alle ontvangers controleren het. Wie het gebruikt, tekent daarom met twee handtekeningen: een RSA en een ed25519.

Een sleutel vervangen

Het is goed om een sleutel af en toe te vervangen, en zeker als je denkt dat de privésleutel is uitgelekt (bijvoorbeeld na een hack van de server of een vertrokken beheerder). Doe het zo:

  1. Maak een nieuwe sleutel onder een nieuwe selector, bijvoorbeeld s2026, en zet de publieke sleutel in de DNS.
  2. Wacht tot het record overal zichtbaar is (de TTL, zie DNS-cursus les 6.1).
  3. Laat de server tekenen met de nieuwe selector.
  4. Laat de oude sleutel nog een paar dagen staan: mail die al onderweg was of opnieuw wordt gecontroleerd, verwijst er nog naar.
  5. Trek de oude sleutel in door p= leeg te maken (v=DKIM1; p=), of haal het record weg.

Bij diensten met CNAME-records doet de dienst dit zelf.

Wat DKIM laat falen

  • Mail wordt onderweg veranderd: een mailinglijst die [lijstnaam] in het onderwerp zet of een voettekst toevoegt, een virusscanner die een regel onder de mail plakt, een doorstuurserver die de opmaak omzet.
  • Verkeerde of afgekapte sleutel in de DNS.
  • Selector bestaat niet: een typfout in de naam, of selector1._domainkey.example.com.example.com (de domeinnaam dubbel, omdat het paneel hem er zelf al achter zet).
  • Sleutel ingetrokken (lege p=) terwijl de server nog met die selector tekent.

Controleren of het werkt

  1. Stuur een mail vanuit de dienst naar een adres bij Gmail of Outlook.com.
  2. Open de kopregels en zoek de DKIM-Signature: noteer d= en s=.
  3. Kijk in Authentication-Results of er dkim=pass staat, en of header.d= jouw domein is.
  4. Zoek de selector op: dig TXT s._domainkey.example.com (of met een online tool). Er moet een p= met een lange sleutel staan, of een CNAME die naar zo'n record leidt.

In de praktijk: zo ziet het eruit in een paneel

Bij een hostingpakket van WebOké staat DKIM standaard aan, met de selector x: het record heet x._domainkey.<jouwdomein>. In DirectAdmin zie je het in DNS Beheer; staat je DNS bij een andere partij, dan kopieer je dat record daarheen. In Mijn WebOké toont de kaart E-mail instellen welke waarde er moet staan en of die gevonden wordt. Bij andere aanbieders heet de selector anders (default, mail, dkim), maar je vindt hem op dezelfde manier: in het paneel of in de s= van een ondertekende mail.

Samenvatting

  • DKIM is de controle die doorsturen overleeft en die je per dienst aan je eigen domein koppelt; voor DMARC telt alleen een handtekening met jouw domein in d=.
  • In de DKIM-Signature vind je d= (domein) en s= (selector); de sleutel staat op <s>._domainkey.<d>.
  • Elke dienst krijgt een eigen selector; CNAME-records laten de dienst zelf sleutels vervangen. Zet DKIM met je eigen domein ook echt aan in de dienst.
  • Gebruik 2048 bit; let op afgekapte sleutels bij het kopiëren.
  • Vervang een sleutel met een nieuwe selector en trek de oude pas daarna in.

Quiz

1. In een DKIM-Signature staat d=mailer.example; s=k1, terwijl het Van-adres info@example.com is. Wat betekent dat voor DMARC?



2. Waarom gebruiken diensten als Microsoft 365 twee CNAME-records voor DKIM?



3. Na het kopiëren van een DKIM-sleutel naar je DNS faalt elke handtekening. De sleutel in de DNS is 255 tekens lang. Wat is de waarschijnlijke oorzaak?



4. Een mailinglijst zet [leden] voor het onderwerp. Je handtekening ondertekende subject. Wat gebeurt er met je DKIM bij de eindontvanger?



5. Wat is de veilige volgorde bij het vervangen van een DKIM-sleutel?



Opdracht

Opdracht Z4.3: Een DKIM-selector controleren. Stuur een mail vanuit je eigen domein (of vanuit een dienst die namens je mailt) naar een eigen adres bij een andere aanbieder. Open de kopregels en vul de waarden van d= en s= uit de DKIM-Signature in, en wat er in Authentication-Results bij dkim= staat. Het programma zoekt de selector live op, volgt een eventuele CNAME, controleert de sleutel (aanwezig, niet leeg, lengte) en vertelt of d= uitgelijnd is met het domein dat jij als afzender opgeeft.

Opdracht Z4.3: Een DKIM-selector controleren

Neem d= en s= uit de DKIM-Signature van een mail van je eigen domein (of van een dienst die namens je mailt).





Wat je invult en wat we vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Verder lezen

De stappen in deze artikelen gelden voor de panelen van WebOké; bij andere aanbieders werkt het vergelijkbaar.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…