DomainKeys Identified Mail (DKIM) is een techniek waarbij een organisatie verantwoordelijkheid kan nemen voor een bericht dat per e-mail wordt verzonden. DKIM is ontstaan uit DomainKeys van Yahoo! en Internet Identified Mail van Cisco. DKIM zelf is geen technologie tegen spam, maar biedt een basis voor authenticatie, waarmee bijvoorbeeld reputatieservices opgezet kunnen worden. Deze reputatieservices op hun beurt kunnen dan gebruikt worden door spamfilters.
Voordelen
Door DKIM te gebruiken kan spam bestreden worden. Ontvangende mailservers controleren de authenticiteit van een e-mail en kunnen deze op basis van het resultaat uit de DKIM-test blokkeren. Bovendien is een domein dat beschermd wordt door middel van DKIM minder interessant voor spammers omdat de kans dat hun spamberichten de inbox van een ontvanger bereiken kleiner is. Dit heeft als bijkomend voordeel dat met DKIM beschermde domeinen minder vaak misbruikt zullen worden.
Daarnaast biedt DKIM een middel om de juistheid van een e-mail (inclusief bijlagen) aan te tonen. E-mails die beschadigd zijn gedurende transport kunnen als zodanig worden gemarkeerd.
Hoe het werkt
DKIM voegt het veld "DKIM-Signature" toe aan de header van een e-mail. Dit veld bevat een digitale handtekening van de inhoud van de e-mail (op basis van zowel headers als de body van de e-mail). Deze handtekening wordt gemaakt door middel van de SHA-256hashfunctie, waarbij gebruik wordt gemaakt van RSA voor het berekenen van de handtekening van de hashwaarde.
De ontvangende SMTP-server gebruikt de domeinnaam van de afzender, de string "_domainkey" en een selector uit het veld DKIM-Signature om een DNS-aanvraag te doen. Als antwoord op het DNS-verzoek ontvangt de mailserver de publieke sleutel van de afzender. De ontvanger berekent de SHA-256 hashwaarde van het bericht op dezelfde manier als de verzender. Verder gebruikt hij de publieke sleutel om de handtekening te controleren met de waarde die meegestuurd was in het bericht. Als de controle slaagt betekent dat dat de e-mail daadwerkelijk afkomstig is van het desbetreffende domein en niet aangepast is gedurende het transport.
DKIM blokkeert een "vervalste" e-mail niet zelf. Het markeert deze enkel als ongeldig, waarna een spamfilter op basis daarvan de e-mail kan blokkeren of als verdacht kan beschouwen.
Om te voorkomen dat de publieke sleutel (het DKIM-record) kan worden gemanipuleerd, is het aan te raden om de zonefile van de betreffende domeinnaam te beveiligen met behulp van DNSSEC.