E-mailauthenticatie: SPF, DKIM en DMARC uitgelegd
Kort antwoord
SPF, DKIM en DMARC zijn drie DNS-gebaseerde mechanismen waarmee ontvangende mailservers kunnen controleren of een bericht dat zegt van jouw domein te komen, ook echt van jou is. SPF geeft aan welke servers namens jouw domein mogen verzenden, DKIM ondertekent uitgaande mail cryptografisch, en DMARC koppelt die twee aan elkaar met een beleid dat ontvangers vertelt wat ze moeten doen als een check mislukt. Stel je alle drie correct in, dan verminder je zowel vervalste mail die zich voordoet als jou als het risico dat je eigen legitieme mail in de spam belandt.
SPF: wie mag namens jouw domein verzenden
SPF, Sender Policy Framework, is een TXT-record in de DNS van jouw domein dat aangeeft welke mailservers gemachtigd zijn om namens dat domein e-mail te versturen. Krijgt een ontvangende mailserver een bericht dat zegt van jouw domein te komen, dan kan die je SPF-record opzoeken en controleren of de server die het bericht daadwerkelijk verstuurde op de lijst staat. Staat die er niet op, dan is dat een signaal dat het bericht mogelijk niet legitiem is. De ontvangende server kan daar dan naar handelen, meestal door het te weigeren of te markeren.
SPF controleert alleen de identiteit van de verzendende server aan de hand van die lijst. Het zegt niets over de inhoud van het bericht, en het houdt bepaalde vormen van doorsturen niet goed stand. Dat is een van de redenen waarom SPF is bedoeld om samen met DKIM te werken, niet als losstaande oplossing.
DKIM: bewijzen dat het bericht niet is gewijzigd
DKIM, DomainKeys Identified Mail, werkt anders. Uitgaande mail krijgt een cryptografische handtekening mee, gegenereerd met een private key die de verzendende mailserver bezit. De bijbehorende publieke sleutel wordt gepubliceerd als TXT-record in DNS. Een ontvangende server kan die publieke sleutel ophalen en gebruiken om de handtekening te verifiëren. Dat bevestigt twee dingen tegelijk: het bericht is echt ondertekend door iets dat de private key van jouw domein bezit, en de ondertekende onderdelen van het bericht zijn onderweg niet gewijzigd.
Waar SPF de verzendende server controleert, controleert DKIM het bericht zelf. Het houdt de meeste vormen van doorsturen stand waar SPF op vastloopt, omdat de handtekening met het bericht meereist in plaats van af te hangen van welke server het doorstuurde.
DMARC: het beleid dat alles samenbrengt
SPF en DKIM beantwoorden allebei een smalle vraag, maar geen van beide vertelt een ontvangende server wat die moet doen als een check mislukt, en geen van beide bevestigt dat het domein in het zichtbare "Van"-adres overeenkomt met wat er gecontroleerd is. DMARC is een DNS TXT-record dat die beleidslaag toevoegt: het bepaalt wat een ontvangende server moet doen als een bericht faalt op SPF, faalt op DKIM, of faalt op de alignment-check tussen de twee. De opties zijn meestal: niets doen en alleen monitoren, het bericht in quarantaine zetten (meestal betekent dat spam), of het direct weigeren. DMARC bepaalt ook waar ontvangende servers geaggregeerde rapporten naartoe sturen, wat de domeineigenaar inzicht geeft in wie er mail verstuurt namens hun domein, inclusief eventuele pogingen tot spoofing.
Waarom alle drie samen belangrijk zijn
Deze drie mechanismen vullen elkaar aan, ze doen niet dubbel hetzelfde werk. SPF alleen is voor een aanvaller makkelijk te omzeilen door via een compleet andere weg te versturen, iets wat DKIM juist zou opvangen. DKIM alleen vertelt een ontvanger niet wat die moet doen bij een mislukte check. En DMARC zonder SPF of DKIM eronder heeft niets om daadwerkelijk af te dwingen. Samen ingesteld geven ze ontvangende mailservers een betrouwbare manier om echte mail van jouw domein te onderscheiden van mail die dat alleen beweert te zijn.
Het praktische voordeel zit op twee plekken. Ten eerste de afleverbaarheid: mailproviders wegen de status van SPF, DKIM en DMARC steeds zwaarder mee bij het bepalen of een bericht legitiem is, en ontbrekende of verkeerd geconfigureerde records zijn een veelvoorkomende, vermijdbare reden waarom legitieme mail in de spam belandt. Ten tweede anti-spoofing: een domein waarop alle drie correct zijn ingesteld, is voor iemand anders veel lastiger overtuigend na te bootsen in een phishingpoging, omdat vervalste mail eerder faalt op de checks en in quarantaine belandt of wordt geweigerd voordat die een inbox bereikt.