Moodul 4 · 4.3
DKIM praktikas: selektorid, võtmed ja teenused
Moodul 4: Kohaletoimetatavus: SPF, DKIM ja DMARC praktikas · Lugemisaeg: 12 minutit
Õpieesmärk: pärast seda tundi oskad analüüsida DKIM-Signature päist, seadistada igas saatmisteenuses DKIM-i oma domeeniga, kontrollida, kas selektor töötab, ja selgitada, kuidas võtmeid turvaliselt vahetada.
Põhimõisted: DKIM-Signature, d= (allkirjastav domeen), s= (selektor), h= (allkirjastatud päised), bh= ja b=, kanoniseerimine (c=), <selector>._domainkey.<domein>, TXT väärtusega p= või CNAME teenusele, võtme pikkus 2048 bitti (RFC 8301), 255-tähemärgised tükid, ed25519 (RFC 8463), võtmevahetus, tühi p= (tühistatud), DKIM ja suunamine
Miks DKIM on kolmest kõige olulisem
SPF ütleb, millised serverid tohivad kirju saata, kuid see läheb katki suunamisel ja vaatab Return-Pathi, mis paljude teenuste puhul ei kuulu sinule. DKIM paneb allkirja kirja enda sisse. See allkiri jääb alles ka suunamise korral (kui kirja ei muudeta) ja on seotud domeeniga, mille sa ise valid. Seetõttu on DKIM praktikas sageli ainus, mis aitab DMARC-il läbida uudiskirjade, raamatupidamisprogrammist saadetud arvete ja edasisaadetud kirjade puhul.
Põhialused (kuidas võti DNS-is seisab, mis on selektor) on kirjas DNS-kursuse tunnis 4.4. Siin läheme edasi: mis täpselt allkirjas kirjas on ja kuidas seadistada DKIM igas teenuses?
Allkirja analüüsimine
Ava saadud kirja päised (tund 1.5). Kui kiri on allkirjastatud, näed ülal midagi sellist:
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...pikk tähemärgijada...Qx9A==| Silt | Tähendus |
|---|---|
v=1 | DKIM versioon |
a=rsa-sha256 | Algoritm: RSA-võti, SHA-256. Võimalik ka: ed25519-sha256 |
c=relaxed/relaxed | Kanoniseerimine: kui rangelt väikeseid muudatusi (tühikud, päisenimede suurtähed) käsitletakse, nii päiste kui ka teksti puhul. relaxed on tavaline ja leebem kui simple |
d=example.com | See on allkirjastav domeen. See domeen vastutab kirja eest. DMARC võrdleb seda Kust-aadressiga (From) |
s=x | See on selektor: millist selle domeeni võtit on kasutatud |
t= | Allkirjastamise ajahetk (sekundites alates 1970. aastast) |
h= | Millised päised on allkirjastatud. from peab alati sees olema |
bh= | Kirja teksti sõrmejälg (hash) |
b= | Allkiri ise |
Saaja hangib avaliku võtme aadressilt <s>._domainkey.<d>, siin seega x._domainkey.example.com, ja kontrollib, kas b= klapib h=-is loetletud päiste ja sõrmejäljega bh=. Kui teel on muutunud kas või üks täht tekstis või mõnes allkirjastatud päises, siis kontroll ebaõnnestub.
Authentication-Results-is näed tulemust, näiteks dkim=pass header.d=example.com header.s=x. Kirjal võib olla mitu allkirja, näiteks üks sinu domeenilt ja üks teenuselt endalt. DMARC-i jaoks loeb ainult allkiri, mille d= vastab sinu From-domeenile.
Igal teenusel oma selektor
Ühel domeenil võib olla korraga palju DKIM-võtmeid, igaüks oma selektori all. Just see ongi mõte: iga teenus, mis sinu nimel kirju saadab, allkirjastab oma võtmega.
| Saatja | Selektor (näide) | Kuidas see DNS-is kirjas on |
|---|---|---|
| Majutuse meiliserver | x või default | TXT koos võtmega, paneeli poolt loodud |
| Microsoft 365 | selector1, selector2 | kaks CNAME-kirjet Microsofti suunas |
| Google Workspace | google (vaikimisi) | TXT koos võtmega, mille loote halduskonsoolis |
| Uudiskirjateenus | näiteks k2, k3, mte1 | enamasti CNAME-kirjed teenuse suunas |
TXT või CNAME?
- TXT-kirje puhul paned ise avaliku võtme oma DNS-i. Kui teenus soovib uut võtit, pead sina kirjet muutma.
- CNAME-kirje puhul suunad selektori edasi teenuse enda nime juurde, näiteks
k2._domainkey.example.com CNAME dkim2.mailer.example.Siis haldab teenus võtit ise ja saab seda vahetada ilma, et sa pead midagi tegema. Seetõttu eelistavad suured teenused CNAME-i ja kasutavad tihti kahte: nii saavad nad vahetada aktiivse ja uue võtme vahel.
Tähele pane: CNAME ei tohi seista sama nime all koos mõne teise kirjega. Kui aadressil selector1._domainkey on juba TXT, eemalda see.
Kõige tähtsam: lülita DKIM teenuses sisse
Paljudes teenustes ei ole DKIM oma domeeniga vaikimisi sees. Nad allkirjastavad siis oma domeeniga (d=mailer.example). Kiri on küll allkirjastatud, aga ei ole joondatud sinu From-aadressiga. DMARC-i jaoks see ei loe. Teenuse halduses nimetatakse seda tihti "domeeni kinnitamine", "domeeni verifitseerimine", "autentimine" või "oma saatjadomeen". Alles siis, kui kirjed on seatud JA funktsioon teenuses sisse lülitatud, allkirjastab teenus väärtusega d=example.com.
Võtmed: pikkus, tükid ja algoritm
- Pikkus. RFC 8301 ütleb: vähemalt 1024 bitti, ja saatjad peaksid kasutama vähemalt 2048 bitti. Kasuta 2048. Saajad peavad 512-bitist võtit kehtetuks.
- 255-tähemärgised tükid. TXT-kirje koosneb kuni 255-tähemärgistest jadadest. 2048-bitine võti on umbes 400 tähemärki pikk ega mahu ühte jadasse. Kirje koosneb siis kahest või enamast järjestikusest jadast (
"v=DKIM1; k=rsa; p=MIIBIj..." "...IDAQAB"), mille saaja kokku liidab. Enamik paneele teeb seda automaatselt. Kui see läheb valesti, saad poolikuks jäänud võtme ja iga allkiri ebaõnnestub. Kopeeri võti seega alati tervikuna, ilma lisatühikute või jutumärkideta keskel. - ed25519 (RFC 8463) on moodsam algoritm lühikeste võtmetega. Veel mitte kõik saajad ei kontrolli seda. Kes seda kasutab, allkirjastab seetõttu kahe allkirjaga: RSA ja ed25519.
Võtme vahetamine
On hea aeg-ajalt võtit vahetada, ja kindlasti siis, kui kahtlustad, et privaatvõti on lekkinud (näiteks serveri häkkimise või lahkunud halduri järel). Toimi nii:
- Loo uus võti uue selektori all, näiteks
s2026, ja pane avalik võti DNS-i. - Oota, kuni kirje on kõikjal nähtav (TTL, vaata DNS-kursuse tundi 6.1).
- Lase serveril allkirjastada uue selektoriga.
- Jäta vana võti veel paariks päevaks alles: juba teel olnud või uuesti kontrollitavad kirjad viitavad veel sellele.
- Tühista vana võti, tehes
p=tühjaks (v=DKIM1; p=), või eemalda kirje.
CNAME-kirjetega teenuste puhul teeb teenus seda ise.
Mis paneb DKIM-i ebaõnnestuma
- Kiri muudetakse teel: meililist, mis lisab teemareale
[listinimi]või lisab jaluse, viirusetõrje, mis lisab kirja alla rea, suunamisserver, mis muudab vormingut. - Vale või poolik võti DNS-is.
- Selektorit ei eksisteeri: nimes on kirjaviga, või
selector1._domainkey.example.com.example.com(domeeninimi topelt, sest paneel lisab selle juba automaatselt). - Võti tühistatud (tühi
p=), kuid server allkirjastab endiselt sama selektoriga.
Kontrollimine, kas see töötab
- Saada teenusest kiri enda aadressile Gmailis või Outlook.com-is.
- Ava päised ja leia
DKIM-Signature: pane kirjad=jas=. - Vaata, kas
Authentication-Results-is ondkim=passja kasheader.d=on sinu domeen. - Otsi selektor üles:
dig TXT s._domainkey.example.com(või veebipõhise tööriistaga). Seal peaks olemap=koos pika võtmega, või CNAME, mis sellise kirjeni viib.
Praktikas: kuidas see paneelis välja näeb
WebOké majutuspaketi puhul on DKIM vaikimisi sees, selektoriga x: kirje nimi on x._domainkey.<sinudomeen>. DirectAdminis näed seda DNS Administration all; kui sinu DNS asub mõne teise pakkuja juures, kopeeri see kirje sinna. Minu WebOké kaart Set E-mail näitab, milline väärtus peaks olemas olema ja kas see on leitud. Teiste pakkujate puhul on selektori nimi teine (default, mail, dkim), kuid leiad selle samal moel: paneelist või allkirjastatud kirja s= väärtusest.
Kokkuvõte
- DKIM on kontroll, mis jääb alles ka suunamisel ja mille sidud iga teenuse puhul oma domeeniga; DMARC-i jaoks loeb ainult allkiri, mille
d=on sinu domeen. DKIM-Signature-is leiadd=(domeen) jas=(selektor); võti asub aadressil<s>._domainkey.<d>.- Igal teenusel on oma selektor; CNAME-kirjed lubavad teenusel ise võtmeid vahetada. Lülita teenuses DKIM oma domeeniga ka tegelikult sisse.
- Kasuta 2048 bitti; jälgi võtme kopeerimisel, et see ei jääks poolikuks.
- Vaheta võti uue selektori all ja tühista vana alles pärast seda.
Test
Ülesanne
Ülesanne Z4.3: DKIM-selektori kontrollimine. Saada kiri oma domeenilt (või teenusest, mis saadab sinu nimel kirju) oma aadressile mõnes teises teenuses. Ava päised ja sisesta DKIM-Signature-ist väärtused d= ja s=, ning see, mis on kirjas Authentication-Results-is välja dkim= juures. Programm otsib selektori reaalajas üles, järgib võimalikku CNAME-i, kontrollib võtit (olemasolev, mitte tühi, pikkus) ja ütleb, kas d= on joondatud domeeniga, mille sa saatjana märgid.
Lisalugemist
Nende artiklite sammud kehtivad WebOké paneelide kohta; teiste pakkujate puhul toimib see sarnaselt.
- Tasuta DNS-kursus 4.4: DKIM: allkiri sinu e-kirja all
- DirectAdmin juhend 5.8: DKIM sisselülitamine ja kontrollimine
- DKIM-i seadistamine, kui DNS asub välises serveris
- WebOké juhend 6.7: Kaart E-posti seadistamine (MX, SPF, DKIM, DMARC)
- RFC 6376 (DKIM), RFC 8301 (võtme pikkus ja algoritmid), RFC 8463 (ed25519)
