DKIM

Onderwerpen

  1. In het kort
  2. Hoe werkt het
  3. DKIM zelf instellen

1. In het kort

DKIM zorgt ervoor dat elke mail dat wordt uitgestuurd namens het domein digitaal verzegeld wordt. Het staat dus onomstotelijk vast dat de mail van het domein (zoals voorbeeld.nl) afkomstig is. Dit is niet per mailbox/mailadres, het geldt voor alle mailboxen binnen het domein.

2. Hoe werkt het

DKIM is onderdeel van de ‘drie-eenheid’ SPF, DKIM en DMARC. Het zit zo. In SPF (DNS record) staan de mailservers die uit naam van het domein mogen versturen, maar zoals met Google G Suite, Office 365 of TransIP en andere mail hostingproviders ben je niet de enige klant en gebruik je dezelfde uitgaande mailservers van dat hostingbedrijf. Wanneer je weet wie de andere (miljoenen) klanten (en hun domein) zijn, zou je dus ook namens hun domein kunnen versturen en vice versa.

2.1. Verzegeling van een mail

Met DKIM wordt elk e-mail bericht door de uitgaande mailserver voorzien van een digitale verzegeling wat uitsluitend door de houder van het domein kan worden verstuurd. De ontvangende mailserver controleert en leest de DKIM verzegeling. Is deze verzegeling niet in de e-mail aanwezig, dan kijkt de ontvangende mailserver in de DMARC regel (DNS) van dat domein van de afzender wat het met deze mail moet doen. Bijvoorbeeld markeren als SPAM of de mail direct verwijderen (en dus niet afleveren).

Ontvangen mail in GMail. GMail meldt hier dat de mail is verzonden door het domein geautoriseerde mailservers en dat het met DKIM is ondertekend.
Brief met wassen zegel dat in een ouderwetse brievenbus wordt gedaan.

2.2. Zo ziet de ontvanger DKIM

Een e-mail met digitale verzegeling van DKIM is in GMail of G Suite te herkennen aan “Ondertekend door” (zie afbeelding), gevolgd door het domein van de afzender.

Het “Verzonden door”, gevolgd door het domein van de zender geeft aan dat de mailserver die de mail heeft verstuurt in de SPF whitelist van dat domein aanwezig is.

2.1 DKIM bij externe mailers

Diensten of externe mailers zoals Mailchimp waar de mailservers namens tientallen miljoenen domeinen mag versturen. DKIM is ook dan een belangrijke toevoeging aan elk bericht, omdat het aantoont dat een campagne met jouw goedkeuring is verstuurd. Op de afbeelding is de extra regel “ondertekend door: ” zichtbaar.

2.2. DKIM validatie

Op DKIMvalidator.com kun je een analyze laten maken van de e-mail verzegeling. Stuur een mail naar het tijdelijke mail adres die zij opgeven en je krijgt op deze site een DKIM rapport in je browser. Probeer ook eens een testbericht vanuit Mailchimp.

Een ontvangen mail in GMail verstuurd door Mailchimp. De mail heeft een DKIM verzegeling dat aantoont dat de mail officieel van het domein afkomstig is.

3. DKIM zelf instellen

Onderstaand werkt bij deze hostingproviders. Niet elke hostingprovider levert standaard DKIM aan. In DNS kun je drie waarden instellen: Naam, TTL, Type en Waarde.

3.1. Google’s G Suite

De waarde hieronder is van Google’s G Suite genereer je vanuit https://admin.google.com, vervolgens klik je op Apps, G Suite en Instellingen voor Gmail. Dan onder “Email verifiëren” kies je jouw domein, en vervolgens “Nieuw record genereren“. Kopieer en plak de sleutel (de lange reeks karakters zoals hieronder) in je DNS administratie als hieronder en klik op “Authenticatie starten“.


+-------------------+-------+---------+------------------------------------------------+
| Naam              | TTL   | Type    | Waarde                                         |
+-------------------+-------+---------+------------------------------------------------+
| google._domainkey | 1 dag | TXT     | v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC |
|                   |       |         | AQ8AMIIBCgKCAQEAhnf3N1D6TCfaocYMWwnfG8IPG5m97a |
|                   |       |         | qrUe50/2/cJ0gYLrBHPswNMRl2kenwBpXAv98VwRwBlYPP |
|                   |       |         | q1EXH5CaxR7KthzWLOztXAHHNJ+gQzVRZrKF7VAGiQ3SLR |
|                   |       |         | CZgCnXJM/xXLDlpX1DqcLcJvMlfv5fMO5M/E6qWNaI/WxX |
|                   |       |         | hPvexGSDZ2/2wldwaT+4OG8JruRUunlcaum2OvEdI3w7g6 |
+-------------------+-------+---------+------------------------------------------------+

Bron: Google voor G Suite

3.2. Zelf een DKIM record opbouwen voor Microsoft Office 365

In DNS kun je drie waarden instellen: Naam, TTL, Type en Waarde. In dit voorbeeld hieronder staat de mail provider van dat domein bij Microsoft Office 365. Dit doe je vanuit de Admin, Exchange Admin Center, Protection, tabblad “dkim”. Selecteer jouw domein en klik op “Enable”.

Je ziet het verschil tussen de aanpak van Google en Microsoft.


+--------------------+-------+-------+-----------------------------------------------------+
| Naam               | TTL   | Type  | Waarde                                              |
+--------------------+-------+-------+-----------------------------------------------------+
|selector1._domainkey| 1 dag | CNAME | selector1-cadra-nl._domainkey.cadra.onmicrosoft.com.|
+--------------------+-------+-------+-----------------------------------------------------+
|selector2._domainkey| 1 dag | CNAME | selector2-cadra-nl._domainkey.cadra.onmicrosoft.com.|
+--------------------+-------+-------+-----------------------------------------------------+

Bron: Microsoft Office 365.

3.3. DKIM op kantoor mailserver

Hoe DKIM wordt ingesteld op een mailserver op kantoor verschilt per fabrikant. Staat jouw mail bij een hostingbedrijf, dan zal waarschijnlijk hun ‘help’ staan hoe dit in te stellen en anders zou de support hier antwoord op moeten geven.

Let op: Gebruik je een mail dienst dat geen DKIM ondersteunt? Denk aan online boekhoudprogramma’s die namens jouw bedrijf mails versturen (en in SPF zijn opgenomen), maar wat zuinig zonder DKIM werken. Zorg dan dat in de DMARC record de “fo=0” is opgenomen.

Uitgebreide opbouw:
+--------+-------+---------+--------------------------------------------------+
| Naam   | TTL   | Type    | Waarde                                           |
+--------+-------+---------+--------------------------------------------------+
| _dmarc | 1 dag | TXT     | v=DMARC1; p=reject; sp=reject; fo=0; pct=100     |
|        |       |         | rua=mailto:abcdefgh@ag.dmarcian-eu.com;          |
|        |       |         | ruf=mailto:ghfedcba@fr.dmarcian-eu.com           |
+--------+-------+---------+--------------------------------------------------+

Tech achtergrond

DKIM is geen domeinsleutel; het is voor elke host dat mails uitstuurt. De publieke sleutel wordt in DNS opgenomen en de privésleutel wordt op de uitgaande mailserver gateway of spamfilters ingesteld en de private sleutel ligt hier opgeslagen. Deze uitgaande mailer zal met de privésleutel een hash genereren van de hele mail en in de header van de mail opnemen. De ontvangende mailserver controleert de header en de publieke sleutel in de DNS. Deze artikelen van iSpam en Security.nl geven meer detail over dit onderwerp.

Heb je vragen, suggesties of een aanvulling / correctie op de artikelen? Stuur dan een bericht naar info@.