Hlavní navigace

Jak spammerům zabránit falšovat adresy? Je tu DKIM

Petr Krčmář 9. 3. 2011

Spam je velký internetový problém už mnoho let a doposud nikdo nenašel uspokojivé řešení. Existuje však několik zajímavých technologií, které pomáhají omezit některé dílčí problémy elektronické pošty a tím znesnadňují spammerům život. Jednou z nejnadějnějších je DKIM, kterou používá třeba Google.

Největším problémem elektronické pošty je fakt, že kdokoliv může při odesílání e-mailu použít libovolnou adresu, která mu nepatří. Existuje několik systémů, které pomáhají příjemcům pošty určit, zda je odesílatel oprávněn použít konkrétní adresu, nebo ne. Spammeři pak nemohou svobodně falšovat adresu odesílatele, jako je tomu teď, říká Tomáš Hála ze společnosti ACTIVE24. O technologii DKIM hovořil na letošní konferenci InstallFest.

DKIM není žádnou novinkou a někteří poskytovatelé jej už několik let používají. Jedná se o technologii podobnou známému SPF, o kterém jsme psali před dvěma lety. Proti staršímu systému má ale DKIM jednu zásadní výhodu. SPF má fatální problém. Pokud máte nastavené přeposílání mailů, pošta odchází z nového serveru, ale ten není uveden v SPF DNS záznamu, vysvětluje Hála. Přijímací server pak zjistí, že pošta přichází z nepovoleného serveru a obvykle ji označí za spam. Tímto problémem DKIM netrpí, protože pracuje na jiném principu.

Zatímco SPF svazuje doménu odesílatele s konkrétními IP adresami, ze které může pošta odcházet, DKIM používá elektronický podpis. Ten je také generován na serveru odesílatele, ale není pevně svázána s konkrétní IP adresou. Přeposílání jednou podepsané pošty tak nijak princip nenarušuje.

DKIM aneb klíče v DNS

DKIM vychází z technologií Yahoo a Cisco Systems a vytváří jednoduché rozšíření, které nijak nezasahuje do stávajícího mailového systému a je s ním plně kompatibilní. V poště se projevuje jen přidáním hlavičky DKIM-Signature. Ta obsahuje elektronický podpis generovaný SMTP serverem odesílatele.

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=domainkey-signature:mime-version:in-reply-to:references:from:date
         :message-id:subject:to:content-type;
        bh=Tle/+yGwxhSwYWAmxEJO6PiqZCq/TgujwpNT1flGz5M=;
        b=a/1+exyHaGt+FiN9s5Ozo5hk/qIGr602ZFz0/02bZ80aSBnYjriq/2rsTmKfYXaR3V
         14yebnEmNWyw/sEI2P5IYlKWoOz33dtKo0rr01GCoC6R3LYZH7agg4SmAt5d4+Ew/wV3
         33t0zySoc68ULoh2NyPYawQ1V/jAEdsp92p/c=

DKIM tedy neklade žádné nároky na koncového uživatele. Na rozdíl od klasických elektronických podpisů nemusí koncový uživatel vůbec nic řešit, vysvětluje hlavní výhody Tomáš Hála. Klasický privátní certifikát je třeba nejprve získat, provést konfiguraci a udržovat vše v chodu. Navíc jeho práci musí podporovat klient odesílatele i klienta. V případě DKIM nemusí uživatel vůbec nic tušit a přesto systém využívá.

Veřejná část klíče serveru je uložena jako TXT DNS záznam v doméně, pro kterou je pošta odesílána. Každý příjemce tak může snadno klíč z DNS získat a ověřit pravost přijatého e-mailu. Klíč je uložen ve zvláštní subdoméně, která začíná jedinečným selektorem a pokračuje povinnou částí _domainkey. Selektor je vždy součástí hlavičky mailu a příjemce jej nalezne za parametrem s=. DNS dotaz je možné sestavit až ve chvíli, kdy nám přijde nějaký mail a my známe selektor, kterým se pak zeptáme DNS na příslušný záznam. Dotaz na konkrétní klíče pak vypadá následovně:

$ dig TXT gamma._domainkey.gmail.com
...
gamma._domainkey.gmail.com. 300 IN  TXT "k=rsa\; t=y\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB"
...

Pro příjemce tak stačí zaslat jeden DNS dotaz navíc a ověřit podpis v hlavičce mailu. Podle výsledku tak může rozhodnout, co s konkrétní zprávou udělá.

Nasazení je bez rizika

Podle Tomáš Hály je testování DKIM na ostrém serveru bezpečnější než se zmíněným SPF. Pokud do DNS zadáte špatně SPF záznam, nebudou vám maily chodit. U DKIM nic takového nehrozí. Ověření může provádět server nebo klient, předpokládá se ale, že vše zařídí servery. Pokud strana příjemce DKIM vůbec nezná, může ho ignorovat a vůbec nic se nestane, vysvětluje zpětnou kompatibilitu Hála.

DKIM standard obsahuje také podporu pro testovací režim, který umožní bezpečně vše vyzkoušet. Při použití parametru t=y se podle specifikace musí s mailem na straně příjemce nakládat stejně, jako by podpis vůbec neobsahoval.

Jak server s ověřenou či neověřenou zprávou naloží, je na jeho administrátorovi. Pevná pravidla v tomto směru neexistují. To, jak se s e-mailem naloží, není součástí standardu. Protokol řeší jen samotné ověření. Obvykle správný DKIM podpis znamená například zvýhodnění na spamfiltru, bonusové body na SpamAssassinu a podobně. Klienti příjemců pak mohou uživateli zvýraznit ověřený e-mail. Je to podobné jako u HTTPS, dáte uživateli jasně najevo, že konkrétní mail je ověřený a pochází od správného uživatele, říká Hála.

Z hlediska uživatele by mělo s nasazením DKIM dojít vždy ke zlepšení situace nebo by měl být výsledek neutrální. Nikdy by výsledek neměl být pro poštu negativní. Uživatel obvykle pozná jen to, že mu regulérní pošta nepadá do spamu, pokud se to dříve stávalo, shrnul hlavní výhodu DKIM pro uživatele Tomáš Hála.

Existuje také nepovinné rozšíření DKIM zvané ADSP a to v DNS záznamu říká příjemci, jak by se měl k poště z naší domény chovat. Je možné nastavit tři různé politiky:

  1. unknown dává stejný výsledek, jako by ADSP nebylo použito
  2. all říká, že veškerá pošta je podepisována
  3. discardable je nejrestriktivnější; pokud podpis chybí, poštu zahazuj

Tomáš Hála také upozorňuje na to, že je dobré kombinovat DKIM s DNSSEC, aby nebylo možné podvrhnout falešné DNS záznamy. Celé podepisování by bylo k ničemu, pokud byste byli schopni DNS záznam podvrhnout a vyměnit tak klíče odesílatele za své, varuje Hála.

Kdo to umí

Tomáš Hála samozřejmě nezapomněl zmínit, že společnost ACTIVE24 je velkým podporovatelem DKIM. Jako jediná webhostingová společnost v ČR provozujeme DKIM na zákaznických doménách a to zcela zdarma, pochlubil se na InstallFestu. V případě příjmu podepsaných mailů je výrazně zvýhodňujeme na spamfiltru.

I řada dalších poskytovatelů e-mailových schránek automaticky pomocí DKIM podepisuje. DKIM není žádná novinka, existuje několik let a najdete ji i na některých free mailech, říká Hála. Na freemailech je implementace snadná, stačí nastavit DNS záznam pro jednu doménu. Na webhostingových službách je třeba, aby majitelé domén provedli patřičné změny ručně nebo musí webhoster provést úpravy všech domén za ně.

Hála samozřejmě také popsal, jak probíhá nasazení u velkého webhostera. My máme vlastní sadu skriptů, které kontrolují domény a provádějí příslušnou údržbu. Příjemné je, že výsledek neznamenal pro uživatele žádný problém. Nasazení nijak negativně neovlivnilo odchozí poštu a zákazníci ani nezaznamenali změ­nu.

Ze známých poskytovatelů freemailů DKIM podporuje například Seznam.cz či už zmíněný Gmail od Google. Gmail dokonce zvýrazňuje graficky přijaté maily, které byly prověřeny, vyzdvihl příkladnou práci Gmailu Tomáš Hála. Pro firmy je zajímavé, že Google umí DKIM nasadit i na Google Apps na vlastní doméně. Ve světě je DKIM velmi rozšířené, u nás tomu tak zatím bohužel není. Určitě je dobré tuto technologii dále rozšiřovat.

DKIM není antispam, ale pomáhá

Přestože není DKIM míněn primárně jako nástroj proti spamu, je využíván především jako nástroj pro boj s nevyžádanou poštou. DKIM není z principu antispamová technika. Jen umožňuje ověřit pravost odesílatele, říká Hála. Použití při filtraci spamu je podle něj jen bonus. Varuje, že i spamy by mohly být podepsány DKIM, ale byly by pak pevně svázané s konkrétní doménou a tu by bylo možné snadno třeba filtrovat. V praxi jsme zatím takový případ nezaznamenali.

Pokud by k něčemu takovému došlo, přibyla by i možnost, jak dohledat odesílatele nějakého spamu. Je možné dohledat zodpovědnou osobu a právně ji potrestat, vysvětluje Hála, ale zároveň dodává, že dnes často viry získávají přihlašovací údaje uživatelů a poštu odesílají skrze standardní servery. Přesto je díky DKIM pak možné uživatele dohledat a upozornit jej na problém.

Jak to nasadit v Linuxu

Pro nasazení na straně odesílatele i příjemce budete potřebovat balíček dkim-filter, který pod tímto názvem naleznete v Debianu a Ubuntu. Je možné, že v jiných distribucích se bude jmenovat jinak.

Poté si vygenerujete klíč se selektorem pro příslušnou doménu:

dkim-genkey -d domena.cz -s selektor

Tento příkaz vygeneruje dva soubory: selektor.txt obsahuje veřejný klíč přímo ve formátu pro DNS a je možné jej nakopírovat do zónového souboru BIND. Druhý soubor selektor.private pak obsahuje privátní klíč, který je používán podepisovacím serverem. Tento soubor zkopírujte do /etc/dkim. Poté editujte soubor /etc/dkim-filter.conf, aby obsahoval především následující informace:

Domain domena.cz
KeyFile /etc/dkim/selektor.private
Selector selektor

Poté ještě musíte editovat soubor /etc/default/dkim-filter a zadat do něj informaci o tom, kde má filtr poslouchat:

SOCKET="local:/var/run/dkim-filter/dkim-filter.sock"

Jako poslední nastavte Postfix tak, aby filtr začal používat. Do souboru /etc/postfix/main.cf vložte tyto řádky:

smtpd_milters = unix:/var/run/dkim-milter/dkim-filter.sock
non_smtpd_milters = unix:/var/run/dkim-milter/dkim-filter.sock

Ověření funkčnosti

Pokud máte vše spuštěné, měl by váš server automaticky pro danou doménu maily podepisovat pomocí privátního klíče. Výsledek byste měli vidět v hlavičce. Při přijmu pošty podepsané pomocí DKIM naleznete v hlavičce ověření dkim=pass, které značí, že se vše povedlo.

Pokud používáte na svém serveru SpamAssassin, můžete použít modul Mail::SpamAssassin::Plugin::DKIM, který provádí ověřování DKIM a vrací pravidla DKIM_SIGNED (podepsáno) a DKIM_VERIFIED (validní). Těmi můžete ovlivňovat příchozí poštu a přidělovat jí kladné body.

DKIM je technologie zajímavá především svou jednoduchostí a bezproblémovým nasazením. Výsledkem jejího nasazení je ověřování odeslaných mailů bez vedlejších účinků. I tento článek by měl pomoci v rozšíření DKIM na další české servery.

Odkazy

Našli jste v článku chybu?

9. 3. 2011 8:29

1. zvyhodnovani mailu s DKIM signaturou nahrava velmi spammerum. Dnes delaji bezne ze si zaregistruji domenu, rozeslou z ni spamy a dropnou ji za 2 dny aby jim nechodily bounce message nazpet, nekteri na to dokonce maji i automatizaci co vygeneruje domenu typu 5446445123.com a samo ji to regne a pak zrusi.

p27EcAhF075431 2942 Mon Mar 7 06:38 MAILER-DAEMON
8BITMIME (Deferred: Name server: 87654.com.: host name lookup failure)
<wertyu@87654.com>

2. Ziskat DKIM signaturu z googlu, yahoo je …



9. 3. 2011 14:27

Ale takoví přece mohou odesílat přes odchozí SMTP server, který PTR má. Odmítání pošty ze serverů bez správného PTR je dnes běžné.

Vitalia.cz: Pravda o přibírání na zimu

Pravda o přibírání na zimu

Podnikatel.cz: Nejenom EET, začaly platit další zákony

Nejenom EET, začaly platit další zákony

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Podnikatel.cz: Babiš: E-shopy z EET možná vyjmeme

Babiš: E-shopy z EET možná vyjmeme

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR