DKIM (DomainKeys Identified Mail) je mehanizam za autentifikaciju pošiljaoca i verodostojnost sadržaja imejl poruka koje on šalje.
Oba metoda autentifikacije, SPF i DKIM, dizajnirana su sa namerom da zaštite primaoce (ali i pošiljaoce) od SPAM-a i krivotvorenih imejlova. Ove metode omogućuju legitimnim pošiljaocima da dokažu verodostojnost poruka koje šalju, a što može preduprediti situaciju da legitimna imejl poruka završi u SPAM-u primaoca.
Kako radi DKIM?
Da bi DKIM funkcionisao, pošiljalac mora imati par generisanih ključeva. Par čine privatni ključ kojim se potpisuje poslat imejl i javni ključ za proveru validnosti ovog potpisa.
Mejl server za slanje poruka koristi ovaj privatni ključ da potpiše poslate imejlove. Dodatno zaglavlje DKIM-Potpisa (engl. Signature) – koje sadrži sâm potpis, heš kod (engl. hash code) sadržaja imejla (koji se može razumeti ukoliko je došlo do nekih izmena), informaciju sa kojeg domena je potpis, kao i još nekoliko drugih parametara – dodaje se ovim imejl porukama.
Javni ključ nalazi se u TXT zapisu, postavljen tamo od strane pošiljaoca, u DNS zoni njegovog domena. Ovo je domen na kojem se nalazi imejl adresa sa koje će se slati imejlovi.
Pošto primi imejl poruku sa DKIM potpisom, prijemno sanduče primaoca iskoristiće iz zaglavlja poruke informaciju sa kojeg domena potiče potpis i selektor da izvrši DNS proveru TXT zapisa. Zatim će upotrebiti javni ključ iz TXT zapisa za verifikaciju potpisa imejl poruke.
Primer zaglavlja imejl poruke sa DKIM-Potpisom generisanim privatnim ključem:
h=Message-ID:Subject:To:From:Date:Content-Transfer-Encoding:Content-Type:MIME-Version;
bh=VBzDnT2t7…7wIaobQ=; b=WDnta…s5fzCH18=;
DKIM-Signature: zaglavlje imejl poruke
v=1 : DKIM verzija
a=rsa-sha256 : algoritam korišćen za potpisivanje
q=dns/txt : metod upita
c=relaxed/relaxed : da li tolerisati minimalne promene u zaglavlju/sadržaju poruke; neki imejl sistemi kroz koje poruka prolazi na svom putu od pošiljaoca do primaoca, mogu napraviti manje izmene u zaglavlju; relaxed znači da su male izmene prihvatljive i da će uprkos njima, potpis ostati validan; druga moguća varijanta, simple, znači da nisu dozvoljene bilo kakve izmene u zaglavlju/sadržaju imejla. U protivnom, potpis ne bi bio validan; moguće je postaviti različite vrednosti ovog parametra za zaglavlje i sadržaj, kao npr. c = relaxed/simple.
d=mydomain.com : domen sa kojeg potiče potpis
s=default : selektor; na osnovu ovog parametra, mejl server dolaznih poruka će potražiti odgovarajući javni ključ u DNS zoni domena; ovaj dodatni parametar dozvoljava da domen ima veći broj privatnih/javnih ključeva (više od jednog legitimnog pošiljaoca, ili periodičnu promenu para ključeva);
h=Message-ID:Subject:To:From:Date:Content-Transfer-Encoding:Content-Type:MIME-Version : potpisana zaglavlja
bh=VBzDnT2t7l4E7ujx7wIaobQ= : heš (engl. hash) kod sadržaja imejla
b=WDntaGE…ds5fzCH18= : sâm elektronski potpis (zaglavlje i sadržaj)
Primer DKIM TXT zapisa iz DNS zone domena:
default._domainkey IN TXT “v=DKIM1; k=rsa; p=MIGfMA0GCSqG…YbiWDq1yESS5jSQbzpQIDAQAB;”
v=DKIM1: DKIM verzija
k=rsa: tip ključa
p=MIGfMA0GCSqG…YbiWDq1yESS5jSQbzpQIDAQAB: privatni ključ, dodatno kodiran metodom base64
Detaljan opis svih parametara TXT zapisa i zaglavlja mejla možete pronaći u DKIM specifikaciji: DKIM RFC 6376.
Primena DKIM
Neki od sistema gde je primenjen DKIM mogu se naći na sledećoj stranici: Izveštaji o primeni DKIM softvera i usluga.
Ukoliko potpis nije prošao verifikaciju, poruka može biti označena kao spam. Takve poruke se ne brišu automatski. Ovakve radnje, kao što je automatsko brisanje, nisu posledica DKIM specifikacija. Za dodatne radnje nad imejl porukama koje nisu prošle validaciju, potrebna je dodatna aplikacija (softver).
Jedna takva aplikacija je SpamAssassin. SpamAssassin je spam filter koji proverava DKIM potpise imejlova. Uz DKIM verifikaciju, ovaj filter primenjuje i druge vrste provera nad svakom pristiglom imejl porukom. Imejl poruke označene kao spam mogu biti ili automatski obrisane, ili premeštene u Spam folder.