Modul 4 · 4.3
DKIM a gyakorlatban: selectorok, kulcsok és szolgáltatások
Modul 4: Kézbesíthetőség: SPF, DKIM és DMARC a gyakorlatban · Olvasási idő: 12 perc
A lecke célja: E lecke után képes lesz elemezni egy DKIM-Signature fejlécet, beállítani a DKIM-et saját domainnel bármely küldő szolgáltatásnál, ellenőrizni, hogy egy selector működik-e, és elmagyarázni, hogyan cserélje le biztonságosan a kulcsokat.
Kulcsfogalmak: DKIM-Signature, d= (aláíró domain), s= (selector), h= (aláírt fejlécek), bh= és b=, kanonikalizáció (c=), <selector>._domainkey.<domain>, TXT rekord p= értékkel vagy CNAME a szolgáltatás felé, 2048 bites kulcshossz (RFC 8301), 255 karakteres darabok, ed25519 (RFC 8463), kulcscsere, üres p= (visszavonva), DKIM és átirányítás
Miért a DKIM a legfontosabb a három közül
Az SPF azt mondja meg, mely szerverek küldhetnek levelet, de átirányításnál megszakad, és a Return-Path fejlécet nézi, ami sok szolgáltatásnál nem az Ön címe. A DKIM egy digitális aláírást helyez el magában a levélben. Ez az aláírás túléli az átirányítást (amíg a levél tartalma nem változik), és egy olyan domainhez kapcsolódik, amelyet Ön választ. Emiatt a DKIM a gyakorlatban gyakran az egyetlen, ami átviszi a DMARC-ellenőrzést hírlevelek, könyvelőprogramból küldött számlák és átirányított levelek esetében.
Az alapok (hogyan szerepel a kulcs a DNS-ben, mi az a selector) a DNS-tanfolyam 4.4. leckéjében találhatók. Itt továbblépünk: pontosan mi szerepel egy aláírásban, és hogyan állítja be a DKIM-et bármely szolgáltatásnál?
Egy aláírás elemzése
Nyissa meg egy kapott levél fejléceit (1.5. lecke). Ha a levél alá van írva, a tetején valami ilyesmit talál:
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...hosszú karaktersor...Qx9A==| Jelölő | Jelentés |
|---|---|
v=1 | DKIM verzió |
a=rsa-sha256 | Algoritmus: RSA kulcs, SHA-256. Lehet még: ed25519-sha256 |
c=relaxed/relaxed | Kanonikalizáció: mennyire szigorúan kezelik a kisebb változtatásokat (szóközök, nagybetűk a fejlécnevekben) a fejlécekre és a szövegre nézve. A relaxed a szokásos, és megengedőbb, mint a simple |
d=example.com | Az aláíró domain. Ez a domain áll jót a levélért. A DMARC ezt veti össze a Feladó (From) címmel |
s=x | A selector: melyik kulcsot használták az adott domainnél |
t= | Az aláírás időpontja (másodpercben, 1970 óta) |
h= | Mely fejlécek vannak aláírva. A from-nak mindig szerepelnie kell |
bh= | A levél szövegének ujjlenyomata (hash) |
b= | Maga az aláírás |
A fogadó fél lekéri a nyilvános kulcsot a <s>._domainkey.<d> címről, itt tehát a x._domainkey.example.com címről, és ellenőrzi, hogy a b= illeszkedik-e a h=-ban felsorolt fejlécekhez és a bh= ujjlenyomathoz. Ha útközben akár egyetlen betű is megváltozott a szövegben vagy egy aláírt fejlécben, az ellenőrzés sikertelen lesz.
Az Authentication-Results fejlécben látható az eredmény, például dkim=pass header.d=example.com header.s=x. Egy levélnek több aláírása is lehet, például egy az Ön domainjétől és egy magától a szolgáltatástól. A DMARC szempontjából csak az az aláírás számít, amelynek d= értéke megegyezik az Ön Feladó-domainjével.
Minden szolgáltatásnak saját selectora
Egy domainnek egyszerre sok DKIM-kulcsa lehet, mindegyik saját selectorral. Pontosan ez a cél: minden szolgáltatás, amely az Ön nevében küld levelet, saját kulccsal ír alá.
| Küldő | Selector (példa) | Hogyan szerepel a DNS-ben |
|---|---|---|
| Tárhelyszolgáltató levelezőszervere | x vagy default | TXT rekord a kulccsal, amelyet a panel hoz létre |
| Microsoft 365 | selector1, selector2 | két CNAME-rekord a Microsoft felé |
| Google Workspace | google (alapértelmezett) | TXT rekord egy kulccsal, amelyet a felügyeleti konzolban hoz létre |
| Hírlevélszolgáltatás | például k2, k3, mte1 | általában CNAME-rekordok a szolgáltatás felé |
TXT vagy CNAME?
- Egy TXT-rekordnál Ön maga helyezi el a nyilvános kulcsot a DNS-ében. Ha a szolgáltatás új kulcsot szeretne használni, Önnek kell módosítania a rekordot.
- Egy CNAME-rekordnál a selectort egy, a szolgáltatásnál lévő névre irányítja át, például
k2._domainkey.example.com CNAME dkim2.mailer.example.Ekkor a szolgáltatás maga kezeli a kulcsot, és le tudja cserélni anélkül, hogy Önnek bármit is tennie kellene. Ezért választják a nagy szolgáltatások a CNAME-megoldást, és gyakran kettőt is használnak: így tudnak váltani egy aktív és egy új kulcs között.
Figyelem: egy CNAME nem állhat egy másik rekord mellett ugyanazon a néven. Ha már van TXT rekord a selector1._domainkey néven, azt törölje.
A legfontosabb: a DKIM bekapcsolása a szolgáltatásnál
Sok szolgáltatásnál a saját domainnel történő DKIM-aláírás nincs alapértelmezetten bekapcsolva. Ilyenkor a szolgáltatás a saját domainjével ír alá (d=mailer.example). A levél ekkor ugyan alá van írva, de nincs összehangolva (aligned) az Ön Feladó-címével. A DMARC szempontjából ez nem számít. A szolgáltatás felügyeleti felületén ezt gyakran "domain hitelesítése", "domainellenőrzés", "authentikáció" vagy "saját feladó domain" néven találja. Csak azután ír alá d=example.com értékkel, hogy beállította a rekordokat ÉS bekapcsolta ezt a szolgáltatásnál.
Kulcsok: hossz, darabok és algoritmus
- Hossz. Az RFC 8301 előírja: legalább 1024 bit, és a küldőknek legalább 2048 bitet kell használniuk. Használjon 2048 bitet. Az 512 bites kulcsot a fogadók érvénytelennek tekintik.
- 255 karakteres darabok. Egy TXT-rekord legfeljebb 255 karakteres karakterláncokból áll. Egy 2048 bites kulcs körülbelül 400 karakter, ami nem fér el egyetlen láncban. A rekord ekkor két vagy több, egymás után következő láncból áll (
"v=DKIM1; k=rsa; p=MIIBIj..." "...IDAQAB"), amelyeket a fogadó fél összefűz. A legtöbb panel ezt automatikusan megteszi. Ha ez elromlik, egy megcsonkított kulcsot kap, és minden aláírás sikertelen lesz. Ezért a kulcsot mindig teljes egészében másolja, extra szóközök vagy középen lévő idézőjelek nélkül. - Az ed25519 (RFC 8463) egy modernebb algoritmus, rövid kulcsokkal. Még nem minden fogadó fél ellenőrzi. Aki ezt használja, ezért két aláírással ír alá: egy RSA-val és egy ed25519-cel.
Kulcs lecserélése
Érdemes időnként lecserélni egy kulcsot, különösen ha gyanítja, hogy a privát kulcs kiszivárgott (például a szerver feltörése vagy egy távozó rendszergazda miatt). Így járjon el:
- Hozzon létre egy új kulcsot egy új selector alatt, például
s2026, és helyezze el a nyilvános kulcsot a DNS-ben. - Várja meg, amíg a rekord mindenhol látható lesz (a TTL, lásd a DNS-tanfolyam 6.1. leckéjét).
- Állítsa be, hogy a szerver az új selectorral írjon alá.
- Hagyja az régi kulcsot még néhány napig fennmaradni: az útközben lévő vagy újra ellenőrzött levelek még arra hivatkoznak.
- Vonja vissza a régi kulcsot úgy, hogy a
p=értéket üresre állítja (v=DKIM1; p=), vagy törölje a rekordot.
A CNAME-rekordokat használó szolgáltatásoknál ezt a szolgáltatás maga végzi el.
Mi okozza a DKIM meghiúsulását
- A levél útközben megváltozik: egy levelezőlista, amely
[listanév]szöveget illeszt a tárgyba vagy egy lábjegyzetet ad hozzá, egy vírusellenőrző, amely egy sort illeszt a levél alá, egy átirányító szerver, amely átalakítja a formázást. - Hibás vagy megcsonkított kulcs a DNS-ben.
- A selector nem létezik: elgépelés a névben, vagy
selector1._domainkey.example.com.example.com(a domainnév megduplázva, mert a panel már maga is hozzáfűzte). - A kulcsot visszavonták (üres
p=), miközben a szerver még mindig azzal a selectorral ír alá.
Ellenőrzés, hogy működik-e
- Küldjön egy levelet a szolgáltatásból egy Gmail vagy Outlook.com címre.
- Nyissa meg a fejléceket, és keresse meg a
DKIM-Signaturesort: jegyezze fel ad=éss=értékét. - Nézze meg az
Authentication-Resultsfejlécben, hogy szerepel-edkim=pass, és hogy aheader.d=az Ön domainje-e. - Keresse meg a selectort:
dig TXT s._domainkey.example.com(vagy egy online eszközzel). Egyp=értéknek egy hosszú kulccsal kell szerepelnie, vagy egy CNAME-nek, amely egy ilyen rekordra mutat.
A gyakorlatban: így néz ki egy panelben
A WebOké tárhelycsomagjainál a DKIM alapértelmezetten be van kapcsolva, az x selectorral: a rekord neve x._domainkey.<az Ön domainje>. A DirectAdminben ezt a DNS adminisztráció alatt találja; ha a DNS-e egy másik szolgáltatónál van, onnan kell átmásolnia ezt a rekordot. A Fiókom felületen az E-mail cím megadása kártya mutatja, milyen értéknek kell szerepelnie, és hogy megtalálható-e. Más szolgáltatóknál a selector neve eltérő (default, mail, dkim), de ugyanúgy megtalálja: a panelben vagy egy aláírt levél s= értékében.
Összefoglalás
- A DKIM az az ellenőrzés, amely túléli az átirányítást, és amelyet szolgáltatásonként kapcsol a saját domainjéhez; a DMARC szempontjából csak az olyan aláírás számít, amelynek
d=értéke az Ön domainje. - A
DKIM-Signaturetartalmazza ad=(domain) éss=(selector) értékét; a kulcs a<s>._domainkey.<d>címen található. - Minden szolgáltatás saját selectort kap; a CNAME-rekordok lehetővé teszik, hogy a szolgáltatás maga cserélje le a kulcsokat. Kapcsolja be ténylegesen is a saját domainnel történő DKIM-aláírást a szolgáltatásnál.
- Használjon 2048 bitet; figyeljen a megcsonkított kulcsokra másoláskor.
- Cserélje le a kulcsot egy új selectorral, és csak azután vonja vissza a régit.
Kvíz
Feladat
Feladat Z4.3: DKIM-szelektor ellenőrzése. Küldjön egy levelet a saját domainjéről (vagy egy olyan szolgáltatásból, amely az Ön nevében küld leveleket) egy másik szolgáltatónál lévő saját címre. Nyissa meg a fejléceket, és adja meg a DKIM-Signature-ben szereplő d= és s= értékét, valamint azt, hogy mi szerepel az Authentication-Results-ban a dkim= mellett. A program élőben megkeresi a selectort, követi az esetleges CNAME-et, ellenőrzi a kulcsot (megvan-e, nem üres-e, milyen hosszú), és megmondja, hogy a d= összhangban van-e azzal a domainnel, amelyet Ön feladóként megad.
További olvasnivaló
Az ezekben a cikkekben leírt lépések a WebOké paneljeire vonatkoznak; más szolgáltatóknál hasonlóan működik.
- Ingyenes DNS-tanfolyam 4.4: DKIM: az aláírás a leveled alatt
- DirectAdmin útmutató 5.8: DKIM bekapcsolása és ellenőrzése
- DKIM beállítása, ha a DNS külső szerveren fut
- WebOké útmutató 6.7: Az E-mail beállítása kártya (MX, SPF, DKIM, DMARC)
- RFC 6376 (DKIM), RFC 8301 (kulcshossz és algoritmusok), RFC 8463 (ed25519)
