Modul 4 · 4.3
DKIM v praxi: selectory, klíče a služby
Modul 4: Doručitelnost: SPF, DKIM a DMARC v praxi · Doba čtení: 12 minut
Cíl lekce: Po této lekci dokážete rozebrat hlavičku DKIM-Signature, nastavit DKIM s vlastní doménou pro jakoukoli odesílací službu, zkontrolovat, zda selector funguje, a vysvětlit, jak bezpečně vyměnit klíče.
Klíčové pojmy: DKIM-Signature, d= (podepisující doména), s= (selector), h= (podepsané hlavičky), bh= a b=, kanonikalizace (c=), <selector>._domainkey.<domein>, TXT s p= nebo CNAME na službu, délka klíče 2048 bitů (RFC 8301), úseky po 255 znacích, ed25519 (RFC 8463), výměna klíče, prázdné p= (zrušeno), DKIM a přesměrování
Proč je DKIM z těchto tří nejdůležitější
SPF určuje, které servery smí odesílat poštu, ale při přeposílání se rozbíjí a dívá se na Return-Path, který u mnoha služeb není Váš. DKIM vkládá podpis přímo do e-mailu. Tento podpis přežije přeposlání (pokud se zpráva nezmění) a je spojen s doménou, kterou si sami zvolíte. Proto je DKIM v praxi často jediné, díky čemu DMARC projde u newsletterů, faktur z účetního programu a přeposílané pošty.
Základy (jak klíč vypadá v DNS, co je selector) najdete v kurzu DNS, lekce 4.4. Zde půjdeme dál: co přesně obsahuje podpis a jak nastavit DKIM u každé služby?
Rozebrání podpisu
Otevřete hlavičky e-mailu, který jste přijali (lekce 1.5). Nahoře, pokud je e-mail podepsán, najdete něco jako:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=x;
t=1762588800; h=from:to:subject:date:message-id:mime-version:content-type;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=Gm7yW3q...dlouhá řada znaků...Qx9A==| Tag | Význam |
|---|---|
v=1 | Verze DKIM |
a=rsa-sha256 | Algoritmus: RSA klíč, SHA-256. Možné je také: ed25519-sha256 |
c=relaxed/relaxed | Kanonikalizace: jak striktně se zachází s drobnými změnami (mezery, velká písmena v názvech hlaviček), zvlášť pro hlavičky a text. relaxed je obvyklé a tolerantnější než simple |
d=example.com | Tzv. podepisující doména. Tato doména se zaručuje za e-mail. DMARC ji porovnává s adresou Od |
s=x | Tzv. selector: který klíč dané domény byl použit |
t= | Okamžik podpisu (sekundy od 1970) |
h= | Které hlavičky jsou podepsané. from tam musí být vždy |
bh= | Otisk (hash) textu e-mailu |
b= | Samotný podpis |
Příjemce si vyžádá veřejný klíč na adrese <s>._domainkey.<d>, zde tedy x._domainkey.example.com, a zkontroluje, zda b= odpovídá hlavičkám z h= a otisku bh=. Pokud se cestou změní jediné písmeno v textu nebo v podepsané hlavičce, kontrola selže.
Výsledek uvidíte v Authentication-Results, například dkim=pass header.d=example.com header.s=x. E-mail může mít více podpisů, například jeden od Vaší domény a jeden od samotné služby. Pro DMARC se počítá jen podpis, jehož d= patří k Vaší doméně v poli Od.
Každá služba vlastní selector
Doména může mít současně mnoho klíčů DKIM, každý pod vlastním selectorem. Přesně to je účel: každá služba, která za Vás odesílá poštu, podepisuje vlastním klíčem.
| Odesílatel | Selector (příklad) | Jak je to v DNS |
|---|---|---|
| Hostingový mailový server | x nebo default | TXT s klíčem, vytvořený panelem |
| Microsoft 365 | selector1, selector2 | dva CNAME záznamy směrem na Microsoft |
| Google Workspace | google (výchozí) | TXT s klíčem, který necháte vytvořit v administrační konzoli |
| Newsletterová služba | například k2, k3, mte1 | obvykle CNAME záznamy směrem na danou službu |
TXT, nebo CNAME?
- U TXT záznamu si veřejný klíč vkládáte do DNS sami. Pokud služba potřebuje nový klíč, musíte záznam upravit sami.
- U CNAME záznamu nasměrujete selector na název u dané služby, například
k2._domainkey.example.com CNAME dkim2.mailer.example.Službu pak spravuje klíč sama a může ho vyměnit, aniž byste museli cokoli dělat. Proto velké služby volí CNAME a často používají dva zároveň: umožňuje jim to přepínat mezi aktivním a novým klíčem.
Pozor: CNAME nesmí existovat vedle jiného záznamu na stejném názvu. Pokud už na selector1._domainkey máte TXT, odstraňte ho.
Nejdůležitější: zapnutí DKIM u dané služby
U mnoha služeb není DKIM s Vaší vlastní doménou zapnutý ve výchozím nastavení. Podepisují pak vlastní doménou (d=mailer.example). E-mail je sice podepsaný, ale není sladěný s Vaší adresou Od. Pro DMARC se to nepočítá. Ve správě služby se to často jmenuje „ověřit doménu“, „ověření domény“, „autentizace“ nebo „vlastní odesílací doména“. Teprve když nastavíte záznamy A ZÁROVEŇ to zapnete ve službě, začne podepisovat jako d=example.com.
Klíče: délka, úseky a algoritmus
- Délka. RFC 8301 stanovuje: minimálně 1024 bitů, odesílatelé by měli používat minimálně 2048 bitů. Používejte 2048. Klíč o délce 512 bitů příjemci považují za neplatný.
- Úseky po 255 znacích. TXT záznam se skládá z řetězců o maximální délce 255 znaků. Klíč o délce 2048 bitů má přibližně 400 znaků a nevejde se do jednoho řetězce. Záznam se pak skládá ze dvou nebo více řetězců za sebou (
"v=DKIM1; k=rsa; p=MIIBIj..." "...IDAQAB"), které příjemce spojí dohromady. Většina panelů to dělá automaticky. Pokud se to nepovede, dostanete useknutý klíč a selže každý podpis. Klíč proto vždy kopírujte celý, bez zbytečných mezer nebo uvozovek uprostřed. - ed25519 (RFC 8463) je modernější algoritmus s kratšími klíči. Zatím ho nekontrolují všichni příjemci. Kdo ho používá, proto podepisuje dvěma podpisy zároveň: RSA a ed25519.
Výměna klíče
Je dobré klíč čas od času vyměnit, a určitě pokud máte podezření, že unikl soukromý klíč (například po napadení serveru nebo odchodu správce). Postupujte takto:
- Vytvořte nový klíč pod novým selectorem, například
s2026, a vložte veřejný klíč do DNS. - Počkejte, až bude záznam viditelný všude (TTL, viz kurz DNS, lekce 6.1).
- Nechte server podepisovat novým selectorem.
- Starý klíč ponechte ještě několik dní: pošta, která byla již na cestě nebo se znovu kontroluje, na něj ještě odkazuje.
- Starý klíč zrušte vyprázdněním
p=(v=DKIM1; p=), nebo záznam odstraňte.
U služeb s CNAME záznamy to dělá služba sama.
Co způsobí selhání DKIM
- E-mail se cestou změní: mailing list, který do předmětu vloží
[nazevlistu]nebo přidá patičku, antivirový filtr, který připojí řádek pod e-mail, přeposílací server, který změní formátování. - Chybný nebo useknutý klíč v DNS.
- Selector neexistuje: překlep v názvu, nebo
selector1._domainkey.example.com.example.com(doména je zdvojená, protože ji panel sám přidal za ni). - Klíč je zrušený (prázdné
p=), zatímco server stále podepisuje tímto selectorem.
Kontrola funkčnosti
- Odešlete e-mail ze služby na adresu u Gmail nebo Outlook.com.
- Otevřete hlavičky a najděte
DKIM-Signature: poznamenejte sid=as=. - Zkontrolujte v
Authentication-Results, zda je uvedenodkim=passa zda jeheader.d=Vaše doména. - Vyhledejte selector:
dig TXT s._domainkey.example.com(nebo pomocí online nástroje). Musí tam býtp=s dlouhým klíčem, nebo CNAME vedoucí na takový záznam.
V praxi: jak to vypadá v panelu
U hostingového balíčku WebOké je DKIM ve výchozím stavu zapnutý, se selectorem x: záznam se jmenuje x._domainkey.<vašedoména>. V DirectAdmin ho najdete v sekci DNS, pokud máte DNS u jiného poskytovatele, zkopírujte tam tento záznam. V Mijn WebOké karta Nastavit e-mail ukazuje, jaká hodnota tam má být a zda byla nalezena. U jiných poskytovatelů se selector jmenuje jinak (default, mail, dkim), ale najdete ho stejným způsobem: v panelu nebo v poli s= podepsaného e-mailu.
Shrnutí
- DKIM je kontrola, která přežije přeposílání a kterou u každé služby propojíte s vlastní doménou; pro DMARC se počítá jen podpis s Vaší doménou v
d=. - V
DKIM-Signaturenajdeted=(doména) as=(selector); klíč je uložen na<s>._domainkey.<d>. - Každá služba dostane vlastní selector; CNAME záznamy umožňují službě vyměňovat klíče samostatně. Nezapomeňte DKIM s vlastní doménou ve službě skutečně zapnout.
- Používejte 2048 bitů; dávejte pozor na useknuté klíče při kopírování.
- Klíč vyměňte pomocí nového selectoru a starý zrušte až poté.
Kvíz
Úkol
Úkol Z4.3: Kontrola DKIM selectoru. Odešlete e-mail z vlastní domény (nebo ze služby, která odesílá poštu Vaším jménem) na vlastní adresu u jiného poskytovatele. Otevřete hlavičky a vyplňte hodnoty d= a s= z DKIM-Signature a to, co je uvedeno v Authentication-Results u dkim=. Program selector vyhledá v reálném čase, sleduje případný CNAME, zkontroluje klíč (přítomnost, zda není prázdný, délku) a sdělí, zda je d= sladěné s doménou, kterou uvádíte jako odesílatele.
Další čtení
Kroky v těchto článcích platí pro panely WebOké; u jiných poskytovatelů to funguje obdobně.
- Bezplatný DNS kurz 4.4: DKIM: podpis pod Vaší poštou
- Příručka k DirectAdmin 5.8: Zapnutí a kontrola DKIM
- Nastavení DKIM, když DNS běží na externím serveru
- Příručka WebOké 6.7: Karta Nastavení e-mailu (MX, SPF, DKIM, DMARC)
- RFC 6376 (DKIM), RFC 8301 (délka klíče a algoritmy), RFC 8463 (ed25519)
