DKIM

DKIM (DomainKeys Identified Mail) is een e-mailprotocol waarmee verzendende partijen een digitale handtekening aan hun uitgaande mail toevoegen. Ontvangende mailsystemen kunnen daarmee beter controleren of een e-mailbericht daadwerkelijk afkomstig is van de in het bericht vermelde afzender. Naast SPF maakt ook DKIM spoofing en spamming een stuk lastiger. Het wordt vrijwel altijd gecombineerd met SPF en DMARC.

Hoe werkt het?

DKIM wordt ingesteld voor je uitgaande mail. Voordat je verzendende mailserver een e-mailbericht verstuurt, gebeurt het volgende:

  1. De verzendende mailserver berekent een ‘vingerafdruk’ (hashwaarde) van het e-mailbericht. Elke vingerafdruk is uniek; twee berichten die maar één letter van elkaar verschillen hebben compleet verschillende vingerafdrukken. Alle vingerafdrukken worden volgens dezelfde methode berekend. Ze zijn even groot, ongeacht de lengte van het e-mailbericht. Bovendien kun je er niet de originele data uit herleiden; de berekening werkt maar een richting op.
  2. De verzendende mailserver versleutelt de vingerafdruk met een unieke, geheime sleutel van de afzender. Het resultaat van de versleuteling is een digitale handtekening.
  3. De verzendende mailserver voegt de digitale handtekening toe aan het e-mailbericht in de header ‘DKIM-Signature’. Naast de handtekening zelf plaatst de server ook je domein in de header.

De geheime of privésleutel die bij stap (1) wordt gebruikt voor het versleutelen, is alleen bekend bij de afzender. Voor het ontsleutelen van de handtekening is een andere, publieke sleutel nodig. Elke privésleutel heeft een bijbehorende publieke sleutel; ze worden als een sleutelpaar gegenereerd. Een bijzondere eigenschap is dat informatie die door een privésleutel is versleuteld alleen ontsleuteld kan worden met de unieke bijpassende publieke sleutel – en andersom. We zullen zo zien dat ontvangende mailsystemen de publieke sleutel gebruiken om de vermelde afzender van het bericht te controleren.

Hoe weet een ontvangende mailserver wat de publieke sleutel is waarmee het de handtekening kan ontsleutelen? Doordat je die unieke publieke sleutel in een DKIM-record in het DNS van je e-maildomein zet. Daarna kan de mailserver als volgt checken of het bericht afkomstig is van de vermelde afzender:

  1. De ontvangende mailserver kijkt in het DKIM-record van de vermelde afzender wat de publieke sleutel is waarmee het de handtekening kan ontsleutelen.
  2. De ontvangende mailserver ontsleutelt de handtekening met de publieke sleutel uit stap (1) en krijgt zo de vingerafdruk die het verzendende systeem heeft berekend.
  3. De ontvangende mailserver berekent zelf ook de vingerafdruk van het e-mailbericht.
  4. De ontvangende mailserver vergelijkt de vingerafdrukken uit stap (2) en stap (3).

Als de vingerafdrukken identiek zijn, is de e-mail van de vermelde afzender afkomstig. De mailserver levert de e-mail dan af in de inbox van de ontvanger. Als de vingerafdrukken niet identiek zijn, markeert het systeem de e-mail als ‘ongeldig’.

Goed om te weten

  • Met DKIM kun je niet afdwingen wat ontvangende mailservers met ongeldige e-mails moeten doen. We raden aan om DKIM met DMARC te combineren. Dan kun je met DMARC wel de gewenste afhandeling instellen van e-mails die door DKIM als ongeldig zijn gemarkeerd.
  • Door het vergelijken van de vingerafdrukken kan een mailserver niet alleen vaststellen of het bericht van de vermelde afzender afkomstig is, maar ook of er tussen verzending en aflevering niet aan (een deel van) de inhoud van het e-mailbericht is gesleuteld. Als een bericht door de DKIM-check komt, weet je dus dat afzender klopt én dat het bericht niet onderweg is vervalst.
  • In tegenstelling tot SPF werkt DKIM ook als je e-mails van anderen doorstuurt. De header met de handtekening van de afzender blijft behouden en je eigen handtekening wordt – als je zelf ook DKIM hebt ingesteld – toegevoegd. Een e-mail heeft minimaal één geldige DKIM-handtekening nodig om door de DKIM-controle heen te komen.
  • Voor de veiligheid is het een goede gewoonte om periodiek het sleutelpaar voor DKIM te vervangen door een nieuwe. Op je verzendende mailserver moet je dan de nieuwe privésleutel gebruiken. Daarbij moet je niet vergeten om de bijbehorende publieke sleutel ook in het DKIM-record in je DNS te vervangen.

Controleer de DKIM instellingen van jouw domeinnaam

Met de gratis checktool van DMARCSaaS controleer je makkelijk en eenvoudig de DKIM instellingen van jouw e-maildomeinen. Je hoeft enkel je domeinnaam in te voeren en je ziet direct of je DKIM goed is ingesteld.

Controleer de huidige beveiliging van jouw domeinnaam: