Jan Štráfelda - Průvodce internetovými projekty
celá ČR (přes video)  |  776 678 044  |  jan@strafelda.cz

DKIM

Zkratka DKIM pochází z anglického DomainKeys Identified Mail a označuje se tak internetový standard, podle kterého servery verifikují odesílatele a obsah e-mailů. Specifikace DKIM tedy slouží v e-mail marketingu podobně jako elektronický podpis a používá se ke zlepšení doručitelnosti e-mailů. Poštovní server příjemce e-mailu si může pomocí DKIM jednoduše ověřit pravost odesílatele a zároveň také fakt, že obsah e-mailu nebyl nikým modifikován.

E-book za mail

Získejte podrobný návod Jak na e-mail marketing (52 stran). Více informací.

Žádný spam, jen užitečný obsah. Newsletter posílám cca 8× ročně. Odhlásíte se kdykoliv.

Kdy se DKIM používá

Obecný problém

DKIM vlastně řeší zásadní problém e-mailové komunikace: ačkoliv si e-mail v hlavičce nese adresu odesílatele, ve skutečnosti může být odeslán z jakékoliv jiné domény. Toho často využívají spammeři a podvodníci, kteří se snaží získat třeba heslo nebo PIN ke kreditní kartě (tzv. phising).

Například vám přijde e-mail z adresy jan@strafelda.cz a vy se tedy myslíte, že odesílatelem byla má doména strafelda.cz. Ale zprávu mohl ve skutečnosti odeslat kdokoliv, jen tam mou e-mailovou adresu vložil jako odesílatele. To lze udělat třeba pomocí jazyka PHP během deseti minut.

Kdy DKIM potřebují marketéři

Typickým příkladem, kdy je DKIM potřeba, je rozesílání newsletterů pomocí nějaké externí služby, například známého maileru Mailchimp. Ten se tváří, že odesílatelem jste vy, tj. jako by e-mail odešel z vaší domény. Mailchimp ale ve skutečnosti zprávy rozesílá ze svých e-mailových serverů, které s vaší doménou nemají nic společného. Tedy úplně stejně, jako to dělají spammeři. To proto, aby se vaše e-mailová adresa zobrazila příjemci newsletteru jako odesílatel, nebo aby vám na něj mohl jednoduše odpovědět.

Z pohledu serveru příjemce to tedy nevypadá zrovna důvěryhodně. Zejména na freemailových službách, které se snaží všemožně bojovat s spamem. Značně se tím proto snižuje doručitelnost newsletteru. Freemaily takový e-mail snadno rozpoznají jako hromadnou poštu s možným falešným podpisem a zahodí ho tedy do složky „Spam“. Pokud tedy nevyužijete právě DKIM, pomocí kterého bude Mailchimp ověřen jako věrohodný rozesílatel pro vaši doménu.

Jak DKIM funguje

Technologie DKIM funguje na principu asymetrické kryptografie. Zkusím to vysvětlit co nejjednodušeji.

DKIM podpis e-mailu u odesílatele

Odesílající server, třeba výše zmíněný MailChimp, přidává podle specifikace DKIM do všech vašich e-mailů digitální podpis. Ten server vytvoří na základě soukromého klíče (je tajný) a hashe e-mailu (hlaviček i těla). Digitální podpis je do e-mailu uložen jako nová hlavička jménem DKIM-Signature.

Slovo hash znamená, že se e-mail před odesláním prožene jednosměrnou šifrovací funkcí, jejímž výsledkem je krátký shluk písmen a číslic. Slovo „jednosměrnou“ znamená, že z hashe nelze získat zpět podobu soukromého klíče ani obsah e-mailu. Lze ho ale použít k ověření pravosti. Hash tedy slouží jako otisk původního e-mailu – kdyby případný útočník něco v e-mailu změnil, hash by již neodpovídal. Hlavička DKIM obsahuje jak hash ostatních mailových hlaviček, tak i hash těla e-mailu. A k vytvoření hashe je použit právě soukromý klíč.

Verifikace podpisu u příjemce

Aby mohl server příjemce ověřit pravost digitálního podpisu e-mailu, potřebuje získat ještě tzv. veřejný klíč. Z něj si podobným způsobem jako server odesílatele vytvoří vlastní hash a ten pak s hashem e-mailu porovná. A kde veřejný klíč vezme? Jednoduše si ho stáhne z DNS vaší domény, kam ho vložíte do TXT záznamu. DKIM tedy nepotřebuje žádný certifikát ani jinou ověřovací autoritu – využívá faktu, že textový DNS záznam může vytvořit pouze majitel domény

Pokud se chcete do svých TXT záznamů podívat, zda nějaký veřejný klíč pro DKIM obsahují, hledejte slovo _domainkey.

Efektivita DKIM

Jak vidíte, k ověření e-mailu tedy stačí jediný dotaz navíc. Ten navíc řeší server příjemce v okamžiku přijetí zprávy, DKIM tedy nijak nezatěžuje koncového uživatele při čtení e-mailu. A pokud server příjemce metodu DKIM nepodporuje, jednoduše hlavičku e-mailu ignoruje a e-mail přijme, jako by nebyl podepsaný.

Specifikace DKIM je tedy dokonale zpětně kompatibilní a neklade na SMTP server příjemce žádné velké nároky. Zároveň – z výše popsané logiky věci – využití DKIM nemůže zhoršit doručitelnost e-mailu, může zůstat pouze stejná, nebo se zlepšit.

DKIM vs. SPF

Na rozdíl od SPF, jiné metody autentizace e-mailu, DKIM nenese žádná pravidla, jak má server příjemce se zprávou naložit. Výsledkem je pouze informace, zda digitální podpis sedí. Další chování pak záleží na nastavení daného serveru. Obvykle takový e-mail získává bonusové body, které ho zvýhodní ve filtrech proti spamu. Nebo zajistí, že bude e-mail vůbec doručen.

DKIM také funguje na přeposlané e-maily, se kterými má ověření pomocí SPF potíže. To proto, že technologie DKIM není vázaná na žádné konkrétní IP adresy (které by se přeposláním změnily), e-mail si pouze nese s sebou v hlavičce elektronický podpis.

Historie DKIM

  • rok 2004 – Yahoo začíná vyvíjet specifikaci nazývanou DomainKey.
  • rok 2007 – specifikace DomainKey byla rozšířena o podobné řešení společnosti Cisco (jmenovalo se „Identified Internet Mail“, odtud pochází název DKIM jako spojení obou názvů). Následně ho zavádí například Google Mail.
  • září 2011 – DKIM se stává internetovým standardem (RFC 6376).
  • leden 2015 – freemail Seznam zpřísnil antispamovou politiku a hromadné e-maily nepodepsané pomocí DKIM ukládá rovnou do složky SPAM.
  • leden 2018 – specifikace DKIM byla upravena k vyšší bezpečnosti, mění se například kryptografické funkce a délky klíčů.

O autorovi

Jsem Jan Štráfelda a působím jako průvodce online projekty. Potřebujete předělat web či e-shop? Nebo posunout internetový marketing? Poradím s obojím. 14 let budování vlastní digitální agentury mě skvěle vyškolilo – a rád se o zkušenosti podělím.

S čím také umím pomoci:

Své znalosti sdílím i na LinkedIn. Přidejte se k 2 811 marketérům, kteří z nich již pravidelně těží.