A DKIM olyan e-mail-hitelesítési eljárás, amelyben a küldő levelezőszerver digitális aláírást helyez a kimenő levél fejlécébe, a fogadó szerver pedig egy DNS-ben publikált nyilvános kulccsal ellenőrzi ezt az aláírást. Ha az aláírás érvényes, a levél bizonyítottan az aláíró domaintől származik, és a hitelesített részei útközben nem változtak meg.
Hogyan működik
A folyamat négy lépésből áll, és teljesen a háttérben zajlik:
- A küldő szerver hash-t készít a levél törzséből és néhány kijelölt fejlécből.
- A hash-t titkos kulccsal aláírja, majd
DKIM-Signature fejlécként beleteszi a levélbe.
- A fogadó szerver kiolvassa az aláírásból a
d= domaint és az s= selectort.
- Lekéri a
selector._domainkey.domain.hu TXT-rekordot, és a nyilvános kulccsal ellenőrzi az aláírást.
A titkos kulcs soha nem hagyja el a levelezőszervert. A DNS-ben csak a nyilvános kulcs van kint, bárki olvashatja.
Miben más, mint az SPF
Az SPF (Sender Policy Framework) azt nézi, hogy melyik IP-címről érkezett a levél. A DKIM azt nézi, hogy ki írta alá a tartalmat. Ennek gyakorlati következménye van: ha valaki továbbküldi a leveledet, az SPF eltörik, mert az IP megváltozik. A DKIM-aláírás viszont túléli a továbbítást, amíg a levél törzsét senki nem módosítja.
A DMARC mindkettőre épül. Ahhoz, hogy egy levél DMARC-szempontból átmenjen, az SPF vagy a DKIM közül legalább az egyiknek passzolnia kell, ráadásul illeszkednie kell a látható From: domainhez. Ezt hívják alignmentnek.
Mikor számít igazán
Akkor, amikor a szervered automata leveleket küld: rendelés-visszaigazolás, jelszó-visszaállítás, számlaértesítő, űrlap-értesítés. 2024 óta a Gmail és a Yahoo a nagyobb küldőktől elvárja az SPF-et, a DKIM-et és a DMARC-ot is. A riportokban azt látjuk, hogy a magyar KKV-oldalak jelentős részén az SPF megvan, a DKIM viszont hiányzik, mert azt már nem a domain-regisztrátor állította be automatikusan.
Röviden: a DKIM az a digitális pecsét, ami nélkül a DMARC csak félkarú, a tranzakciós leveleid pedig könnyen a spam mappában kötnek ki.
Miért fontos
Kézbesíthetőség
A DKIM az egyik legerősebb jel, amiből a fogadó szerver eldönti, hogy megbízik-e benned. Aláírás nélküli automata levélnél a Gmail és az Outlook lényegesen szigorúbb. A tipikus tünet: a webshop rendelés-visszaigazolója spambe kerül, a vevő pedig felhívja az ügyfélszolgálatot.
Domain-védelem
A DKIM önmagában nem akadályozza meg, hogy valaki a nevedben levelet küldjön. Azt viszont igen, hogy ez a hamis levél hitelesnek látsszon. Az SPF, DKIM és DMARC hármas együtt teszi lehetővé, hogy a fogadó eldobja a hamisított leveleket.
Reputáció és mérhetőség
A levelezőszolgáltatók domain-alapon építenek reputációt, és ehhez aláírt levélre van szükségük. DKIM nélkül minden küldésed névtelen forgalom marad. A DMARC jelentések is csak akkor használhatók, ha van mihez illeszteni az eredményt.
Technikai példa
A nyilvános kulcs egy TXT-rekord a selector._domainkey név alatt. Így kérdezed le és ilyen választ vársz:
dig +short TXT selector1._domainkey.example.hu
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7Yx2...IDAQAB"
A v a verzió, a k a kulcs típusa, a p maga a base64 kódolt nyilvános kulcs. Ha a p üres, az visszavont kulcsot jelent.
A kimenő levélbe ez a fejléc kerül be:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.hu; s=selector1; t=1716200000;
h=from:to:subject:date:message-id;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruD00lszZVoG4ZHRNiYzR
A d= az aláíró domain, az s= a selector, a h= a hitelesített fejlécek listája. A bh= a levéltörzs hash-e, a b= maga az aláírás. Ha a d= értéke megegyezik a From: domainnel, akkor a DKIM-alignment is teljesül.
Gyakori kérdések
Elég, ha csak SPF-em van?
Nem. Az SPF a küldő IP-címét ellenőrzi, és eltörik, amint valaki továbbküldi a leveledet. A DKIM az aláírás miatt túléli a továbbítást. A nagyobb levelezőszolgáltatók ma már mindkettőt elvárják a rendszeres küldőktől.
Hol kell beállítani a DKIM-et, a tárhelyen vagy a domainnél?
Mindkét helyen történik valami. A kulcsot a levelezőszolgáltatód generálja, a nyilvános részét viszont a domain DNS-zónájába kell felvenni. Ha a névszervereid nem a tárhelyszolgáltatónál vannak, akkor ott szerkeszd a rekordot, ahol a névszerverek futnak.
Több selectorom is lehet egyszerre?
Igen, és több küldőrendszernél kifejezetten ajánlott. Minden rendszer kapjon saját selectort és saját kulcsot. Így egy szolgáltató lecserélése nem rontja el a többi csatorna aláírását.
Mennyi idő alatt lép életbe?
A DNS-rekord terjedése általában néhány perctől pár óráig tart, a zóna TTL-jétől függően. Utána küldj tesztlevelet Gmailre, és az Eredeti megjelenítése nézetben ellenőrizd a dkim=pass sort. Ha még nem passzol, várj egy TTL-ciklust, és nézd meg újra.
Miért lesz fail az aláírás, ha a rekord jó?
A leggyakoribb ok a levéltörzs utólagos módosítása. Szerver oldali lábléc, vírusellenőrző szöveg vagy levelezőlista-kiegészítés elrontja a body hash-t. Ilyenkor a fejléc bodyhash did not verify hibát mutat, és az aláírás után beavatkozó rendszert kell megkeresni.